<?php

//Arithmetic Mean
function mean$set )
{
    
$n   count$set );
    
$sum array_sum$set ); 
    return 
$sum/$n
}

//Median
function median$set )
{
    
$n count($set);
    if( 
$n )
    {
        return 
$set[ ($n-1)/]; 
    }
    else
    {
        
//Mean of two middle values
        
return mean( Array($set[$n/1], $set[$n/2]) ); 
    }
}

//Mode / Modal Score
function mode$set )
{
    
$n count($set);
    
$frequencies = Array();
        
    foreach( 
$set as $number )
    {
        if( isset(
$frequencies[$number]) )
        { 
$frequencies[$number] ++; }
        else
        { 
$frequencies[$number] = 1; }
    }
    
    
arsort($frequencies);
    
reset$frequencies );
    if( 
current($frequencies) == && $n != )
    { return 
null; }
    else
    { return 
key($frequencies); }
}

//Geometric Mean
function geometric_mean$set )
{
    
$n count($set);
    
$product array_product($set);
    return 
pow$product1/$n );
}

//Basic Range
function stat_range$set )
{
    
$n count$set );
    if( 
$n == )
    {
        return 
0
    }
    else
    {
        return 
end$set ) - reset$set );
    }
}

//Sample Variance
function sample_variance$set )
{
    
$n count$set );
    
    if( 
$n == )
    {
        return 
0;
    }
    else
    {
        
$numerator   0;
        
$mean        mean$set );
        foreach( 
$set as $number )
        {
            
$numerator += pow$number-$mean);
        }
        return 
$numerator / ($n-1);
    }
}

//Standard Deviation of a sample
function standard_deviation$set )
{
    return 
sqrtsample_variance$set ) );
}

//Coefficient of Variation
function coefficient_of_variation$set )
{
    
$mean mean($set);
    if( 
$mean == )
    {
        return 
null
    }
    else
    {
        return ( 
standard_deviation($set)/$mean ) * 100
    }
}