[Quantproject-developers] QuantProject/b1_ADT/Statistics BasicFunctions.cs,1.2,1.3
Brought to you by:
glauco_1
|
From: Marco M. <mi...@us...> - 2004-08-04 22:49:38
|
Update of /cvsroot/quantproject/QuantProject/b1_ADT/Statistics In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29350/b1_ADT/Statistics Modified Files: BasicFunctions.cs Log Message: Added overloaded methods to the class Index: BasicFunctions.cs =================================================================== RCS file: /cvsroot/quantproject/QuantProject/b1_ADT/Statistics/BasicFunctions.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** BasicFunctions.cs 2 Aug 2004 23:20:26 -0000 1.2 --- BasicFunctions.cs 4 Aug 2004 22:49:27 -0000 1.3 *************** *** 30,35 **** public class BasicFunctions { ! static public double Sum( double[] data ) { double sum = 0; --- 30,44 ---- public class BasicFunctions { + static public double Sum( double[] data ) + { + double sum = 0; + for( int i = 0; i < data.Length ; i ++ ) + { + sum += data[ i ]; + } + return sum; + } ! static public double Sum( float[] data ) { double sum = 0; *************** *** 40,44 **** return sum; } ! static public double SumOfSquares( double[] data ) { double sumOfSquares = 0; --- 49,63 ---- return sum; } ! static public double SumOfSquares( double[] data ) ! { ! double sumOfSquares = 0; ! for( int i = 0; i < data.Length ; i ++ ) ! { ! sumOfSquares += data[ i ]*data[ i ]; ! } ! return sumOfSquares; ! } ! ! static public double SumOfSquares( float[] data ) { double sumOfSquares = 0; *************** *** 49,59 **** return sumOfSquares; } ! static public double SimpleAverage( double[] data ) { return BasicFunctions.Sum(data)/data.Length; } ! ! static public double Variance( double[] data ) { double sum = BasicFunctions.Sum(data); --- 68,88 ---- return sumOfSquares; } + + static public double SimpleAverage( double[] data ) + { + return BasicFunctions.Sum(data)/data.Length; + } ! static public double SimpleAverage( float[] data ) { return BasicFunctions.Sum(data)/data.Length; } ! static public double Variance( double[] data ) ! { ! double sum = BasicFunctions.Sum(data); ! double sumOfSquares = BasicFunctions.SumOfSquares(data); ! return (sumOfSquares - sum*sum/data.Length)/data.Length; ! } ! static public double Variance( float[] data ) { double sum = BasicFunctions.Sum(data); *************** *** 61,70 **** return (sumOfSquares - sum*sum/data.Length)/data.Length; } ! ! static public double StdDev( double[] data ) { return System.Math.Sqrt(BasicFunctions.Variance(data)); } ! static public double PearsonCorrelationCoefficient( double[] firstDataVariable, double[] secondDataVariable ) --- 90,102 ---- return (sumOfSquares - sum*sum/data.Length)/data.Length; } ! static public double StdDev( double[] data ) ! { ! return System.Math.Sqrt(BasicFunctions.Variance(data)); ! } ! static public double StdDev( float[] data ) { return System.Math.Sqrt(BasicFunctions.Variance(data)); } ! static public double PearsonCorrelationCoefficient( double[] firstDataVariable, double[] secondDataVariable ) *************** *** 73,76 **** --- 105,120 ---- double simpleAvgOfProduct = BasicFunctions.SimpleAverageOfProduct(firstDataVariable, secondDataVariable); double productOfSimpleAvgs = BasicFunctions.SimpleAverage(firstDataVariable) * + BasicFunctions.SimpleAverage(secondDataVariable); + double stdDevOfFirst = BasicFunctions.StdDev(firstDataVariable); + double stdDevOfSecond = BasicFunctions.StdDev(secondDataVariable); + + return (simpleAvgOfProduct - productOfSimpleAvgs)/(stdDevOfFirst*stdDevOfSecond); + } + static public double PearsonCorrelationCoefficient( float[] firstDataVariable, + float[] secondDataVariable ) + { + BasicFunctions.checkLengthOfDataVariables(firstDataVariable, secondDataVariable); + double simpleAvgOfProduct = BasicFunctions.SimpleAverageOfProduct(firstDataVariable, secondDataVariable); + double productOfSimpleAvgs = BasicFunctions.SimpleAverage(firstDataVariable) * BasicFunctions.SimpleAverage(secondDataVariable); double stdDevOfFirst = BasicFunctions.StdDev(firstDataVariable); *************** *** 81,85 **** static public double SimpleAverageOfProduct( double[] firstDataVariable, ! double[] secondDataVariable ) { BasicFunctions.checkLengthOfDataVariables(firstDataVariable, secondDataVariable); --- 125,129 ---- static public double SimpleAverageOfProduct( double[] firstDataVariable, ! double[] secondDataVariable ) { BasicFunctions.checkLengthOfDataVariables(firstDataVariable, secondDataVariable); *************** *** 93,98 **** return BasicFunctions.SimpleAverage(productDataVariable); } static private void checkLengthOfDataVariables(double[] firstDataVariable, ! double[] secondDataVariable) { if(firstDataVariable.Length !=secondDataVariable.Length) --- 137,161 ---- return BasicFunctions.SimpleAverage(productDataVariable); } + static public double SimpleAverageOfProduct( float[] firstDataVariable, + float[] secondDataVariable ) + { + BasicFunctions.checkLengthOfDataVariables(firstDataVariable, secondDataVariable); + double[] productDataVariable = new double[firstDataVariable.Length]; + + for( int i = 0; i < firstDataVariable.Length ; i ++ ) + { + productDataVariable[i]= firstDataVariable[i]*secondDataVariable[i]; + } + + return BasicFunctions.SimpleAverage(productDataVariable); + } + static private void checkLengthOfDataVariables(float[] firstDataVariable, + float[] secondDataVariable) + { + if(firstDataVariable.Length !=secondDataVariable.Length) + throw new Exception("The two variables haven't the same length!"); + } static private void checkLengthOfDataVariables(double[] firstDataVariable, ! double[] secondDataVariable) { if(firstDataVariable.Length !=secondDataVariable.Length) |