$samples[$current_sample] * $samples[$current_sample]
будет быстрее, чем
pow($samples[$current_sample], 2)
, потому что у него нет накладных расходов на вызов функции.
Тогда вы также можете упростить
pow((array_sum($samples) / $sample_count), 2));
для предотвращения повторного вызова функции pow ()
Чтобы избежать повторного вызова array_sum ($ samples) в результате этого изменения, вычислите его один раз и сохраните в переменную перед циклом, а затем простоссылка на эту переменную в формуле.
РЕДАКТИРОВАТЬ
function calcStandardDev($samples){
$sample_count = count($samples);
$sumSamples = array_sum($samples);
for ($current_sample = 0; $sample_count > $current_sample; ++$current_sample)
$sample_square[$current_sample] = $samples[$current_sample] * $samples[$current_sample];
return sqrt(array_sum($sample_square) / $sample_count - ( ($sumSamples / $sample_count) *
($sumSamples / $sample_count)
)
);
}