]> git.donarmstrong.com Git - biopieces.git/blobdiff - code_perl/Maasha/Calc.pm
migrating read_ tools
[biopieces.git] / code_perl / Maasha / Calc.pm
index 34959a08cbeddd48374864ee1150ebaf6b459614..51f841f6e251a647ab6a16665ff2dc5811a890e4 100644 (file)
@@ -184,6 +184,39 @@ sub median
 }
 
 
+sub standard_deviation
+{
+    # Martin A. Hansen, September 2008
+
+    # Given a list of numbers calculate and return the standard deviation:
+    # http://en.wikipedia.org/wiki/Standard_deviation
+
+    my ( $numbers,   # list of numbers
+       ) = @_;
+
+    # Returns a float.
+
+    my ( $mean_num, $num, $div, $div_sum, $mean_div, $std_div );
+
+    $mean_num = mean( $numbers );
+
+    $div_sum  = 0;
+
+    foreach $num ( @{ $numbers } )
+    {
+        $div = ( $num - $mean_num ) ** 2;
+    
+        $div_sum += $div;
+    }
+
+    $mean_div = $div_sum / scalar @{ $numbers };
+
+    $std_div  = sqrt( abs( $mean_div ) );
+
+    return $std_div;
+}
+
+
 sub min
 {
     # Martin A. Hansen, August 2006.
@@ -316,6 +349,21 @@ sub sum
 }
 
 
+sub log10
+{
+    # Martin A. Hansen, August 2008.
+
+    # Calculate the log10 of a given number.
+
+    my ( $num,   # number
+       ) = @_;
+
+    # Returns a float.
+
+    return log( $num ) / log( 10 );
+}
+
+
 sub overlap
 {
     # Martin A. Hansen, November 2003.