diff options
Diffstat (limited to 'src/rps/rps-test_util.c')
-rw-r--r-- | src/rps/rps-test_util.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/rps/rps-test_util.c b/src/rps/rps-test_util.c index 077750329..fcb4f59a0 100644 --- a/src/rps/rps-test_util.c +++ b/src/rps/rps-test_util.c | |||
@@ -487,4 +487,42 @@ store_prefix_file_name (const struct GNUNET_PeerIdentity *peer, | |||
487 | return file_name; | 487 | return file_name; |
488 | } | 488 | } |
489 | 489 | ||
490 | |||
491 | /** | ||
492 | * @brief Factorial | ||
493 | * | ||
494 | * @param x Number of which to compute the factorial | ||
495 | * | ||
496 | * @return Factorial of @a x | ||
497 | */ | ||
498 | uint32_t fac (uint32_t x) | ||
499 | { | ||
500 | if (1 >= x) | ||
501 | { | ||
502 | return x; | ||
503 | } | ||
504 | return x * fac (x - 1); | ||
505 | } | ||
506 | |||
507 | /** | ||
508 | * @brief Binomial coefficient (n choose k) | ||
509 | * | ||
510 | * @param n | ||
511 | * @param k | ||
512 | * | ||
513 | * @return Binomial coefficient of @a n and @a k | ||
514 | */ | ||
515 | uint32_t binom (uint32_t n, uint32_t k) | ||
516 | { | ||
517 | //GNUNET_assert (n >= k); | ||
518 | if (k > n) return 0; | ||
519 | /* if (0 > n) return 0; - always false */ | ||
520 | /* if (0 > k) return 0; - always false */ | ||
521 | if (0 == k) return 1; | ||
522 | return fac (n) | ||
523 | / | ||
524 | fac(k) * fac(n - k); | ||
525 | } | ||
526 | |||
527 | |||
490 | /* end of gnunet-service-rps.c */ | 528 | /* end of gnunet-service-rps.c */ |