sizeof($xArray) || $dataPairs > sizeof($yArray)) { // Error! Not enough data } $delta = $xArray[1] - $xArray[0]; if (($dataPairs % 2) == 1) { for ($i = 0; $i < $dataPairs; $i++) { if ($i == 0 || ($i + 1) == $dataPairs) { $ySum += $yArray[$i]; } else if (($i % 2) == 1) { $ySum += 4 * $yArray[$i]; } else { $ySum += 2 * $yArray[$i]; } } return $ySum * $delta / 3; } else { for ($i = 0; $i < $dataPairs - 1; $i++) { if ($i == 0 || ($i + 2) == $dataPairs) { $ySum += $yArray[$i]; } else if (($i % 2) == 1) { $ySum += 4 * $yArray[$i]; } else { $ySum += 2 * $yArray[$i]; } } return ($ySum * $delta / 3) + ($yArray[$dataPairs - 2] + $yArray[$dataPairs - 1]) * $delta / 2; } } /* Test: for ($i = -5; $i <= 5; $i++) { echo $i." -> ".gaussianCumulativeProbability($i,0,1)."
"; } */