Vendor/phpspreadsheet/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical.php
public static function HYPGEOMDIST($sampleSuccesses, $sampleNumber, $populationSuccesses, $populationNumber)
    {
        $sampleSuccesses = floor(Functions::flattenSingleValue($sampleSuccesses));
        $sampleNumber = floor(Functions::flattenSingleValue($sampleNumber));
        $populationSuccesses = floor(Functions::flattenSingleValue($populationSuccesses));
        $populationNumber = floor(Functions::flattenSingleValue($populationNumber));

        if ((is_numeric($sampleSuccesses)) && (is_numeric($sampleNumber)) && (is_numeric($populationSuccesses)) && (is_numeric($populationNumber))) {
            if (($sampleSuccesses < 0) || ($sampleSuccesses > $sampleNumber) || ($sampleSuccesses > $populationSuccesses)) {
                return Functions::NAN();
            }
            if (($sampleNumber <= 0) || ($sampleNumber > $populationNumber)) {
                return Functions::NAN();
            }
            if (($populationSuccesses <= 0) || ($populationSuccesses > $populationNumber)) {
                return Functions::NAN();
            }

            return MathTrig::COMBIN($populationSuccesses, $sampleSuccesses) *
                   MathTrig::COMBIN($populationNumber - $populationSuccesses, $sampleNumber - $sampleSuccesses) /
                   MathTrig::COMBIN($populationNumber, $sampleNumber);
        }

        return Functions::VALUE();
    }
public static function HYPGEOMDIST($sampleSuccesses, $sampleNumber, $populationSuccesses, $populationNumber)
    {
        $sampleSuccesses = floor(Functions::flattenSingleValue($sampleSuccesses));
        $sampleNumber = floor(Functions::flattenSingleValue($sampleNumber));
        $populationSuccesses = floor(Functions::flattenSingleValue($populationSuccesses));
        $populationNumber = floor(Functions::flattenSingleValue($populationNumber));

        if ((is_numeric($sampleSuccesses)) && (is_numeric($sampleNumber)) && (is_numeric($populationSuccesses)) && (is_numeric($populationNumber))) {
            if (($sampleSuccesses < 0) || ($sampleSuccesses > $sampleNumber) || ($sampleSuccesses > $populationSuccesses)) {
                return Functions::NAN();
            }
            if (($sampleNumber <= 0) || ($sampleNumber > $populationNumber)) {
                return Functions::NAN();
            }
            if (($populationSuccesses <= 0) || ($populationSuccesses > $populationNumber)) {
                return Functions::NAN();
            }

            return MathTrig::COMBIN($populationSuccesses, $sampleSuccesses) *
                   MathTrig::COMBIN($populationNumber - $populationSuccesses, $sampleNumber - $sampleSuccesses) /
                   MathTrig::COMBIN($populationNumber, $sampleNumber);
        }

        return Functions::VALUE();
    }
public static function HYPGEOMDIST ( $ sampleSuccesses , $ sampleNumber , $ populationSuccesses , $ populationNumber ) { $ sampleSuccesses = floor ( Functions :: flattenSingleValue ( $ sampleSuccesses ) ) ; $ sampleNumber = floor ( Functions :: flattenSingleValue ( $ sampleNumber ) ) ; $ populationSuccesses = floor ( Functions :: flattenSingleValue ( $ populationSuccesses ) ) ; $ populationNumber = floor ( Functions :: flattenSingleValue ( $ populationNumber ) ) ; if ( ( is_numeric ( $ sampleSuccesses ) ) && ( is_numeric ( $ sampleNumber ) ) && ( is_numeric ( $ populationSuccesses ) ) && ( is_numeric ( $ populationNumber ) ) ) { if ( ( $ sampleSuccesses < 0 ) || ( $ sampleSuccesses > $ sampleNumber ) || ( $ sampleSuccesses > $ populationSuccesses ) ) { return Functions :: NAN ( ) ; } if ( ( $ sampleNumber <= 0 ) || ( $ sampleNumber > $ populationNumber ) ) { return Functions :: NAN ( ) ; } if ( ( $ populationSuccesses <= 0 ) || ( $ populationSuccesses > $ populationNumber ) ) { return Functions :: NAN ( ) ; } return MathTrig :: COMBIN ( $ populationSuccesses , $ sampleSuccesses ) * MathTrig :: COMBIN ( $ populationNumber - $ populationSuccesses , $ sampleNumber - $ sampleSuccesses ) / MathTrig :: COMBIN ( $ populationNumber , $ sampleNumber ) ; } return Functions :: VALUE ( ) ; }
HYPGEOMDIST.

Returns the hypergeometric distribution. HYPGEOMDIST returns the probability of a given number of
sample successes, given the sample size, population successes, and population size.

@param float $sampleSuccesses Number of successes in the sample
@param float $sampleNumber Size of the sample
@param float $populationSuccesses Number of successes in the population
@param float $populationNumber Population size

@return float
HYPGEOMDIST .