Math functions in VB (or even a dll somewhere) Options

  • Thread starter Thread starter Nondisclosure007
  • Start date Start date
N

Nondisclosure007

Hello. If this is the wrong group for this, please let me know.
I'll
post it somewhere else.

I've been doing data imports into MS Excel (ver 2007) and using the
CORREL function. What I was wondering was is there anything like
this
in Visual Basic or C#? Or even a DLL? I've got VS2008 and I really
don't want to code the CORREL function by hand if I can just pass off
2 or more array's to a function that already exists.


I've googled and went through the MSDN library and didn't find
anything. Maybe I'm searching wrong, I don't know. Any help would
be
greatly appreciated.


TIA!
 
Hi,


If you are using C# this is the correct group.

First of all you should try to explain what Correl does. Make it easy to the
person trying to help you ;)
 
Correlation Coefficient (C#):

public double GetCorrelation(double[] num1, double[] num2)
{
double denominator = (num1.Length - 1) * GetStandardDeviation(num1) *
GetStandardDeviation(num2);
double sumxy = 0;
for (int i=0; i<num1.Length; i++)
{
sumxy += num1 * num2;
}
double numerator = sumxy - num1.Length * GetAvg(num1) * GetAvg(num2);
return numerator / denominator;
}

public static double GetStandardDeviation(ArrayList num)
{
double SumOfSqrs = 0;
double avg = GetAvg(num);
for (int i=0; i<num.Count; i++)
{
SumOfSqrs += Math.Pow(((double)num - avg), 2);
}
double n = (double)num.Count;
return Math.Sqrt(SumOfSqrs/(n-1));
}

public static double GetStandardDeviation(double[] num)
{
double Sum = 0.0, SumOfSqrs = 0.0;
for (int i=0; i<num.Length; i++)
{
Sum += num;
SumOfSqrs += Math.Pow(num, 2);
}
double topSum = (num.Length * SumOfSqrs) - (Math.Pow(Sum, 2));
double n = (double)num.Length;
return Math.Sqrt( topSum / (n * (n-1)) );
}

public static double GetStandardDeviation(double[,] num, int col)
{
double Sum = 0.0, SumOfSqrs = 0.0;
int len = num.GetLength(0);
for (int i=0; i<len; i++)
{
Sum += num[i,col];
SumOfSqrs += Math.Pow(num[i,col], 2);
}
double topSum = (len * SumOfSqrs) - (Math.Pow(Sum, 2));
double n = System.Convert.ToDouble(len);
return Math.Sqrt( topSum / (n * (n-1)) );
}

public double GetAvg(double[] num)
{
double sum = 0.0;
for (int i=0; i<num.Length; i++)
{
sum += num;
}
double avg = sum / System.Convert.ToDouble(num.Length);

return avg;
}

public double GetAvg(int[] num)
{
double sum = 0.0;
for (int i=0; i<num.Length; i++)
{
sum += num;
}
double avg = sum / System.Convert.ToDouble(num.Length);

return avg;
}

public double GetAvg(ArrayList num)
{
double sum = 0.0;
for (int i=0; i<num.Count; i++)
{
sum += (double)num;
}
double avg = sum / System.Convert.ToDouble(num.Count);

return avg;
}

-- Have fun!
--Peter
"Inside every large program, there is a small program trying to get out."
http://www.eggheadcafe.com
http://petesbloggerama.blogspot.com
http://www.blogmetafinder.com
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top