static public function ll(array $ngram, int $totalNgrams) : float
    {
        $var = self::setStatVariables($ngram, $totalNgrams);

        $logLikelihood = 0;

        if($var['jointFrequency']) {
            $logLikelihood += $var['jointFrequency'] * self::computePMI ( $var['jointFrequency'], $var['e111'] );
        }

        if($var['n112']) {
            $logLikelihood += $var['n112'] * self::computePMI( $var['n112'], $var['e112'] );
        }

        if($var['n121']) {
            $logLikelihood += $var['n121']  * self::computePMI( $var['n121'], $var['e121'] );
        }

        if($var['n122']) {
            $logLikelihood += $var['n122'] * self::computePMI( $var['n122'], $var['e122'] );
        }

        if($var['n211']) {
            $logLikelihood += $var['n211'] * self::computePMI( $var['n211'], $var['e211'] );
        }

        if($var['n212']) {
            $logLikelihood += $var['n212'] * self::computePMI( $var['n212'], $var['e212'] );
        }

        if($var['n221']) {
            $logLikelihood += $var['n221'] * self::computePMI( $var['n221'], $var['e221'] );
        }

        if($var['n222']) {
            $logLikelihood += $var['n222'] * self::computePMI( $var['n222'], $var['e222'] );
        }

        return ($logLikelihood * 2);
    }