15    define(
"NAN_HANDLING_REMOVE", 0);
 
   16    define(
"NAN_HANDLING_ZERO", 1);
 
   46        $this->stat_data = array();
 
  109        if (
count($this->stat_data)) {
 
  110            $min = 
min($this->stat_data);
 
  126        if (
count($this->stat_data)) {
 
  127            $max = 
max($this->stat_data);
 
  142        return count($this->stat_data);
 
  155        if (
count($this->stat_data)) {
 
  157            foreach ($this->stat_data as $value) {
 
  158                $sum_n += pow((
double) $value, (
double) 
$n);
 
  172        return $this->
sum_n(1);
 
  184        return $this->
sum_n(2);
 
  197        if (
count($this->stat_data)) {
 
  198            if ($this->
min() === 0) {
 
  202            foreach ($this->stat_data as $value) {
 
  203                $prod_n *= pow((
double) $value, (
double) 
$n);
 
  231        if ($sum === 
false) {
 
  234        $count = $this->
count();
 
  238        return (
double) ($sum / $count);
 
  255        if (($prod === 
false) or ($prod === 0)) {
 
  258        $count = $this->
count();
 
  262        return pow((
double) $prod, (
double) (1 / $count));
 
  275        if (($min === 
false) or ($min === 0)) {
 
  278        $count = $this->
count();
 
  283        foreach ($this->stat_data as $value) {
 
  286        return $count / $sum;
 
  298        if (
count($this->stat_data)) {
 
  300            $count = $this->
count();
 
  301            if ((
count($this->stat_data) % 2) == 0) {
 
  302                $median = ($this->stat_data[($count / 2) - 1] + $this->stat_data[($count / 2)]) / 2;
 
  304                $median = $this->stat_data[(($count + 1) / 2) - 1];
 
  318        if (!is_numeric($value)) {
 
  321        $rank = array_search($value, $this->stat_data);
 
  322        if ($rank !== 
false) {
 
  323            $rank = $this->
count() - $rank;
 
  340        $count = $this->
count();
 
  345        if (($count % 2) == 0) {
 
  346            $rank_median = ($count + 1) / 2;
 
  348            $rank_median = ($count + 1) / 2;
 
  362        $count = $this->
count();
 
  366        $nprod = (
$n / 100) * $count;
 
  367        if (intval($nprod) == $nprod) {
 
  370                return $this->stat_data[$k];
 
  371            } elseif ($k == $count) {
 
  372                return $this->stat_data[$k - 1];
 
  374                return ($this->stat_data[$k - 1] + $this->stat_data[$k]) / 2;
 
  378            return $this->stat_data[$k - 1];
 
  393        foreach ($this->stat_data as 
$key => $value) {
 
  394            if (!is_numeric($value)) {
 
  395                switch ($this->nan_handling) {
 
  397                        unset($this->stat_data[
$key]);
 
  400                        $this->stat_data[
$key] = 0;
 
  407        sort($this->stat_data);
 
An exception for terminatinating execution or to throw for unit testing.
const NAN_HANDLING_REMOVE
This class provides mathematical functions for statistics.
sum()
Calculates the sum of x_1 + x_2 + ... + x_i.
setNANHandling($nan_handling=NAN_HANDLING_REMOVE)
Set the handling of elements which are not a number.
product_n($n)
Calculates the product of x_1^n * x_2^n * ... * x_i^n.
product($n)
Calculates the product of x_1 * x_2 * ... * x_i.
quantile($n)
n-Quantile of the data values
arithmetic_mean()
Arithmetic mean of the data values xbar = (1/n)*∑x_i.
getData()
Returns the numeric value array containing the data.
sum_n($n)
Calculates the sum of x_1^n + x_2^n + ... + x_i^n.
setData($stat_data)
Sets the data and checks for invalid values.
harmonic_mean()
Harmonic mean of the data values harmonic_mean = n/(1/x_1 + 1/x_2 + ... + 1/x_n)
__construct($nan_handling=NAN_HANDLING_REMOVE)
Constructor of ilStatistics class.
geometric_mean()
Geometric mean of the data values geometric_mean = (x_1 * x_2 * ... * x_n)^(1/n)
median()
Median of the data values.
rank($value)
Returns the rank of a given value.
getNANHandling()
Get the handling of elements which are not a number.
rank_median()
Returns the rank of the median.
min()
Calculates the minimum value.
max()
Calculates the maximum value.
count()
Calculates number of data values.
sum2()
Calculates the sum of x_1^2 + x_2^2 + ... + x_i^2.
validate()
Validates the numeric data and handles values which are not a number according to the $nan_handling v...