public function progression($startIterations, $startSize, $numOfBenchmarks = 4, $base = 2)
    {
        $factor = 1;
        for ($i = 1; $i <= $numOfBenchmarks; $i++) {
            $this->benchmark((int) ($startIterations / $factor), $startSize * $factor);
            $factor *= $base;
        }
    }
public function progression($startIterations, $startSize, $numOfBenchmarks = 4, $base = 2)
    {
        $factor = 1;
        for ($i = 1; $i <= $numOfBenchmarks; $i++) {
            $this->benchmark((int) ($startIterations / $factor), $startSize * $factor);
            $factor *= $base;
        }
    }
public function progression ( $ startIterations , $ startSize , $ numOfBenchmarks = 4 , $ base = 2 ) { $ factor = 1 ; for ( $ i = 1 ; $ i <= $ numOfBenchmarks ; $ i ++ ) { $ this -> benchmark ( ( int ) ( $ startIterations / $ factor ) , $ startSize * $ factor ) ; $ factor *= $ base ; } }
The aim of this function is to perform a multiple set of benchmarks with different iterations and
input sizes, but trying to keep the same execution time for each set.

For each iteration input size is multiplied by $base and $iterations are devided by $base
(in respect of the previous benchmark)

@param int $startIterations  This is intended as the number of iterations of a linear-time algorithm
@param int $startSize        The input size to start with
@param int $numOfBenchmarks  The total number of benchmarks to launch.
@param int $base             The base to multiply $startSize with
The aim of this function is to perform a multiple set of benchmarks with different iterations and input sizes but trying to keep the same execution time for each set .