![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/vendor/bjeavons/zxcvbn-php/src/Math/Impl/ |
<?php declare(strict_types=1); namespace ZxcvbnPhp\Math\Impl; use TypeError; class BinomialProviderInt64 extends AbstractBinomialProviderWithFallback { protected function initFallbackProvider(): AbstractBinomialProvider { return new BinomialProviderFloat64(); } protected function tryCalculate(int $n, int $k): ?float { try { $c = 1; for ($i = 1; $i <= $k; $i++, $n--) { // We're aiming for $c * $n / $i, but the $c * $n part could overflow, so use $c / $i * $n instead. The caveat here is that in // order to get a precise answer, we need to avoid floats, which means we need to deal with whole part and the remainder // separately. $c = intdiv($c, $i) * $n + intdiv($c % $i * $n, $i); } return (float)$c; } catch (TypeError $ex) { return null; } } }