code from the PROJ.4 pj_mlfn.c file;  this may be useful for other projections

@param float $es
@return float
485518
public static function pj_enfn($es)
    {
        $en = array();
        $en[0] = static::C00 - $es * (static::C02 + $es * (static::C04 + $es * (static::C06 + $es * static::C08)));
        $en[1] = $es * (static::C22 - $es * (static::C04 + $es * (static::C06 + $es * static::C08)));
        $t = $es * $es;
        $en[2] = $t * (static::C44 - $es * (static::C46 + $es * static::C48));
        $t *= $es;
        $en[3] = $t * (static::C66 - $es * static::C68);
        $en[4] = $t * $es * static::C88;

        return $en;
    }
553142
public function addMarginX(float $x): float
    {
        $m = $this->getMargins();
        if ($this->getRTL()) {
            $x += $m['right'];
        } else {
            $x += $m['left'];
        }
        $this->SetX($x);

        return $x;
    }
1078431
public function getFloat(string $index, $default = null, array $options = []) : ?float
    {
        return $this->getCastedValue('float', $index, $default, $options);
    }
1158477
public function getY() : ?float 
    {
        if ( ! $this->hasY()) {
            $this->setY($this->getDefaultY());
        }
        return $this->y;
    }
698271
public function toFloat(): float
    {
        $frac = $this->numerator / $this->denominator;
        $sum  = $this->whole + $frac;
        return $sum;
    }
605701
public function getAsFloat($column, $default = false, $decimals = null, $point = null, $thousands = null)
  {
    if (is_null($decimals)) {
      $decimals = 2;
    }
    if (is_null($point)) {
      $point = '.';
    }
    if (is_null($thousands)) {
      $thousands = '';
    }
    $v = $this->get($column);

    return $v ? number_format($v, $decimals, $point, $thousands) : $default;
  }
14272
public function compute(Tensor $expected, Tensor $output) : float
    {
        $expected = $expected->clip(EPSILON, 1.);
        $output = $output->clip(EPSILON, 1.);

        return $expected->divide($output)->log()
            ->multiply($expected)->sum()->mean();
    }
954919
public function sum($callback = null): float
    {
        return $this->reduce(function ($carry, $value, $key) use ($callback) {
            $value = $callback === null ? $value : $this->accessKey($value, $callback, $key);
            return $carry + $value;
        }, 0);
    }
592889
public function getAmount(): float
    {
        $amounts = $this->map(
            function (CalculatedTax $calculatedTax) {
                return $calculatedTax->getTax();
            }
        );

        return array_sum($amounts);
    }
141043
public function getCoverage() : float
    {
        $processor = new Processor();
        $result    = $processor->run($this->phpUnit . ' --coverage-text|grep Classes|cut -d " " -f 4|cut -d "%" -f 1');
        $output    = $result->getStdOut();
        if (!$result->isSuccessful() || empty($output)) {
            throw new RuntimeException('Error while executing PHPUnit: ' . $result->getStdErr());
        }
        return (float) $output;
    }
1098365
public function multiply(array $e):Polynomial{
		$n = \array_fill(0, \count($this->num) + \count($e) - 1, 0);

		foreach($this->num as $i => $vi){
			$vi = $this->glog($vi);

			foreach($e as $j => $vj){
				$n[$i + $j] ^= $this->gexp($vi + $this->glog($vj));
			}

		}

		$this->setNum($n);

		return $this;
	}
702946
function scalartyp()
		{
			reset($this->me);
			list($a,)=each($this->me);
			if($a==$GLOBALS['xmlrpcI4'])
			{
				$a=$GLOBALS['xmlrpcInt'];
			}
			return $a;
		}
1040383
public function getFloatValue($name):?float
    {
        $value = $this->offsetGet($name);
        if (is_null($value)) {
            return null;
        }

        return (float)$value;
    }
1101403
public static function evaluateModel(float $x, array $params): float
    {
        $V = $params[self::$V];
        $K = $params[self::$K];

        return ($V * $x) / ($K + $x);
    }
210330
public function readFloat($isCollectionElement = false) {
		if ($isCollectionElement) {
				$this->readShort();
		}
		return unpack('f', strrev($this->read(4)))[1];
	}
513426
public function getNextNumber() : float
    {
        $token = $this->nextToken();

        if ($token === null) {
            throw new GeometryIOException("Expected number but encountered end of stream");
        }
        if ($token[0] !== static::T_NUMBER) {
            throw new GeometryIOException("Expected number but encountered '" . $token[1] . "'");
        }

        return (float) $token[1];
    }
1056340
private function bSlope() {
        return (float) (($this->sumXY($this->data) / $this->count) - 
        (($this->sum($this->xVector) / $this->count) * 
        ($this->sum($this->yVector) / $this->count))) / 
        $this->dispersion('x');
    }