Skip to content

Instantly share code, notes, and snippets.

@kitek
Last active January 3, 2016 15:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kitek/5690671 to your computer and use it in GitHub Desktop.
Save kitek/5690671 to your computer and use it in GitHub Desktop.
Wyliczanie błędów względnych i bezwzględny dla uBenchmarka.
<?php
// Dane wejściowe (wklej tutaj kolejne)
$dane = "0.23110198974609
0.23308801651001
0.23321080207825
0.23291993141174";
// Koszt petli + liczba iteracji
$kosztPetli = 0.05070698261261;
$liczbaIteracjiPetli = 1000000;
$dane = trim($dane);
$multiSeries = strpos($dane, "|") !== false;
$dane = str_replace("\n", "|", $dane);
$parsed = explode("|", $dane);
$seria1 = array();
$seria2 = array();
$liczbaPomiarow = 0;
$bladSumS1 = 0;
$bladSumS2 = 0;
foreach ($parsed as $key => $value) {
if(false == $multiSeries) {
$liczbaPomiarow++;
$seria1[] = (floatval(trim($value))-$kosztPetli) / $liczbaIteracjiPetli;
} else {
if($key % 2 === 0) {
$liczbaPomiarow++;
$seria1[] = (floatval(trim($value))-$kosztPetli) / $liczbaIteracjiPetli;
} else {
$seria2[] = (floatval(trim($value))-$kosztPetli) / $liczbaIteracjiPetli;
}
}
}
// Na wyjściu sredni czas:
$avg1 = (array_sum($seria1) / count($seria1));
$avg2 = @(array_sum($seria2) / count($seria2));
foreach($seria1 as $item) {
$bladSumS1+= abs($avg1 - $item);
}
foreach($seria2 as $item) {
$bladSumS2+= abs($avg2 - $item);
}
$bladBezwzgS1 = ($bladSumS1 / $liczbaPomiarow);
$bladWzglednyS1 = round(($bladBezwzgS1/$avg1) * 100, 2);
$sigmaS1 = ($bladBezwzgS1/0.8);
$bladBezwzgS2 = ($bladSumS2 / $liczbaPomiarow);
$bladWzglednyS2 = @round(($bladBezwzgS2/$avg2) * 100, 2);
$sigmaS2 = ($bladBezwzgS2/0.8);
echo "\n";
echo "--------------\n";
echo "Seria 1\n";
echo "Średnia wartość pomiaru: ".$avg1."\n";
echo "Średni bład bezwzględny: ".$bladBezwzgS1."\n";
echo "Błąd względny: ".$bladWzglednyS1."%\n";
echo "sigma: ".$sigmaS1." 3sig > bladBezwzgS1 = ".(3*$sigmaS1 < $bladBezwzgS1 ? 'odrzucamy' : 'ok')."\n";
echo "\n";
echo "--------------\n";
echo "Seria 2\n";
echo "Średnia wartość pomiaru: ".$avg2."\n";
echo "Średni bład bezwzględny: ".$bladBezwzgS2."\n";
echo "Błąd względny: ".$bladWzglednyS2."%\n";
echo "sigma: ".$sigmaS2." 3sig > bladBezwzgS1 = ".(3*$sigmaS2 < $bladBezwzgS2 ? 'odrzucamy' : 'ok')."\n";
echo "\n";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment