Vendor/phpspreadsheet/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical.php
private static function betaFraction($x, $p, $q)
    {
        $c = 1.0;
        $sum_pq = $p + $q;
        $p_plus = $p + 1.0;
        $p_minus = $p - 1.0;
        $h = 1.0 - $sum_pq * $x / $p_plus;
        if (abs($h) < self::XMININ) {
            $h = self::XMININ;
        }
        $h = 1.0 / $h;
        $frac = $h;
        $m = 1;
        $delta = 0.0;
        while ($m <= self::MAX_ITERATIONS && abs($delta - 1.0) > Functions::PRECISION) {
            $m2 = 2 * $m;
            // even index for d
            $d = $m * ($q - $m) * $x / (($p_minus + $m2) * ($p + $m2));
            $h = 1.0 + $d * $h;
            if (abs($h) < self::XMININ) {
                $h = self::XMININ;
            }
            $h = 1.0 / $h;
            $c = 1.0 + $d / $c;
            if (abs($c) < self::XMININ) {
                $c = self::XMININ;
            }
            $frac *= $h * $c;
            // odd index for d
            $d = -($p + $m) * ($sum_pq + $m) * $x / (($p + $m2) * ($p_plus + $m2));
            $h = 1.0 + $d * $h;
            if (abs($h) < self::XMININ) {
                $h = self::XMININ;
            }
            $h = 1.0 / $h;
            $c = 1.0 + $d / $c;
            if (abs($c) < self::XMININ) {
                $c = self::XMININ;
            }
            $delta = $h * $c;
            $frac *= $delta;
            ++$m;
        }

        return $frac;
    }
private static function betaFraction($x, $p, $q)
    {
        $c = 1.0;
        $sum_pq = $p + $q;
        $p_plus = $p + 1.0;
        $p_minus = $p - 1.0;
        $h = 1.0 - $sum_pq * $x / $p_plus;
        if (abs($h) < self::XMININ) {
            $h = self::XMININ;
        }
        $h = 1.0 / $h;
        $frac = $h;
        $m = 1;
        $delta = 0.0;
        while ($m <= self::MAX_ITERATIONS && abs($delta - 1.0) > Functions::PRECISION) {
            $m2 = 2 * $m;
            // even index for d
            $d = $m * ($q - $m) * $x / (($p_minus + $m2) * ($p + $m2));
            $h = 1.0 + $d * $h;
            if (abs($h) < self::XMININ) {
                $h = self::XMININ;
            }
            $h = 1.0 / $h;
            $c = 1.0 + $d / $c;
            if (abs($c) < self::XMININ) {
                $c = self::XMININ;
            }
            $frac *= $h * $c;
            // odd index for d
            $d = -($p + $m) * ($sum_pq + $m) * $x / (($p + $m2) * ($p_plus + $m2));
            $h = 1.0 + $d * $h;
            if (abs($h) < self::XMININ) {
                $h = self::XMININ;
            }
            $h = 1.0 / $h;
            $c = 1.0 + $d / $c;
            if (abs($c) < self::XMININ) {
                $c = self::XMININ;
            }
            $delta = $h * $c;
            $frac *= $delta;
            ++$m;
        }

        return $frac;
    }
private static function betaFraction ( $ x , $ p , $ q ) { $ c = 1.0 ; $ sum_pq = $ p + $ q ; $ p_plus = $ p + 1.0 ; $ p_minus = $ p - 1.0 ; $ h = 1.0 - $ sum_pq * $ x / $ p_plus ; if ( abs ( $ h ) < self :: XMININ ) { $ h = self :: XMININ ; } $ h = 1.0 / $ h ; $ frac = $ h ; $ m = 1 ; $ delta = 0.0 ; while ( $ m <= self :: MAX_ITERATIONS && abs ( $ delta - 1.0 ) > Functions :: PRECISION ) { $ m2 = 2 * $ m ; // even index for d $ d = $ m * ( $ q - $ m ) * $ x / ( ( $ p_minus + $ m2 ) * ( $ p + $ m2 ) ) ; $ h = 1.0 + $ d * $ h ; if ( abs ( $ h ) < self :: XMININ ) { $ h = self :: XMININ ; } $ h = 1.0 / $ h ; $ c = 1.0 + $ d / $ c ; if ( abs ( $ c ) < self :: XMININ ) { $ c = self :: XMININ ; } $ frac *= $ h * $ c ; // odd index for d $ d = - ( $ p + $ m ) * ( $ sum_pq + $ m ) * $ x / ( ( $ p + $ m2 ) * ( $ p_plus + $ m2 ) ) ; $ h = 1.0 + $ d * $ h ; if ( abs ( $ h ) < self :: XMININ ) { $ h = self :: XMININ ; } $ h = 1.0 / $ h ; $ c = 1.0 + $ d / $ c ; if ( abs ( $ c ) < self :: XMININ ) { $ c = self :: XMININ ; } $ delta = $ h * $ c ; $ frac *= $ delta ; ++ $ m ; } return $ frac ; }
Evaluates of continued fraction part of incomplete beta function.
Based on an idea from Numerical Recipes (W.H. Press et al, 1992).

@author Jaco van Kooten

@param mixed $x
@param mixed $p
@param mixed $q

@return float
Evaluates of continued fraction part of incomplete beta function . Based on an idea from Numerical Recipes ( W . H . Press et al 1992 ) .