|
/* Copyright (c) 2006-2007 Coskun Oba
* *****************************************************************************
*
* SCI - Scientific Software Platform
* Copyright (c) 2006-2007
* All rights reserved.
*
* Coskun Oba
* oba.coskun@hotmail.com
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the <organization> nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY COSKUN OBA ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL COSKUN OBA BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* *****************************************************************************/
using System;
using System.Collections.Generic;
using System.Text;
namespace Sci.Math
{
#region Function
/// <summary>
/// Provides access to widely used mathematical functions.
/// </summary>
public static class Function
{
#region Min
/// <summary>
/// Returns the minimum value in a given array.
/// </summary>
/// <param name="array">array of numbers.</param>
/// <returns>Returns the minimum value in a given array.</returns>
public static double Min(double[] array)
{
double min = array[0];
foreach (double value in array)
min = System.Math.Min(min, value);
return min;
}
/// <summary>
/// Returns the minimum value in a given array.
/// </summary>
/// <param name="array">array of numbers.</param>
/// <returns>Returns the minimum value in a given array.</returns>
public static int Min(int[] array)
{
int min = array[0];
foreach (int value in array)
min = System.Math.Min(min, value);
return min;
}
#endregion
#region Max
/// <summary>
/// Returns the maximum value in a given array.
/// </summary>
/// <param name="array">array of numbers.</param>
/// <returns>Returns the maximum value in a given array.</returns>
public static double Max(double[] array)
{
double max = array[0];
foreach (double value in array)
max = System.Math.Max(max, value);
return max;
}
/// <summary>
/// Returns the maximum value in a given array.
/// </summary>
/// <param name="array">array of numbers.</param>
/// <returns>Returns the maximum value in a given array.</returns>
public static int Max(int[] array)
{
int max = array[0];
foreach (int value in array)
max = System.Math.Max(max, value);
return max;
}
#endregion
#region Sum
/// <summary>
/// Returns the sum of all the values in a given array.
/// </summary>
/// <param name="array">array of numbers.</param>
/// <returns>Returns the sum of all the values in a given array.</returns>
public static double Sum(double[] array)
{
double sum = 0;
foreach (double value in array)
sum += value;
return sum;
}
/// <summary>
/// Returns the sum of all the values in a given array.
/// </summary>
/// <param name="array">array of numbers.</param>
/// <returns>Returns the sum of all the values in a given array.</returns>
public static int Sum(int[] array)
{
int sum = 0;
foreach (int value in array)
sum += value;
return sum;
}
#endregion
#region Product
/// <summary>
/// Returns the pruduct of all the values in a given array.
/// </summary>
/// <param name="array">array of numbers.</param>
/// <returns>Returns the pruduct of all the values in a given array.</returns>
public static double Product(double[] array)
{
double product = 1;
foreach (double value in array)
product *= value;
return product;
}
/// <summary>
/// Returns the pruduct of all the values in a given array.
/// </summary>
/// <param name="array">array of numbers.</param>
/// <returns>Returns the pruduct of all the values in a given array.</returns>
public static int Product(int[] array)
{
int product = 1;
foreach (int value in array)
product *= value;
return product;
}
#endregion
#region SumNthPow
/// <summary>
/// Returns the sum of nth power of values in a given array.
/// </summary>
/// <param name="array">array of numbers.</param>
/// <param name="n">nth power.</param>
/// <returns>Returns the sum of nth power of values in a given array.</returns>
public static double SumNthPow(double[] array, double n)
{
double sum = 0;
foreach (double value in array)
sum += System.Math.Pow(value, n);
return sum;
}
#endregion
#region GCD(Greatest Common Divisor)
/// <summary>
/// Returns the greatest common divisor.
/// The greatest common divisor (gcd) of two non-zero integers,
/// is the largest positive integer that divides both numbers
/// without remainder.
/// </summary>
/// <param name="m">Non-Zero integer.</param>
/// <param name="n">Non-Zero integer.</param>
/// <returns>
/// Returns the largest positive integer that divides both numbers
/// without a remainder.
/// </returns>
public static int GCD(int m, int n)
{
return (n == 0) ? System.Math.Abs(m) : GCD(n, m % n);
}
#endregion
#region Angle Conversion
/// <summary>
/// Converts the given angle in degrees to radians.
/// </summary>
/// <param name="angleInDegrees">Angle in degrees.</param>
/// <returns>Returns the given angle in units of radians.</returns>
public static double ToRad(double angleInDegrees)
{
return angleInDegrees / (180.0 / System.Math.PI);
}
/// <summary>
/// Converts the given angle in radians to degrees.
/// </summary>
/// <param name="angleInRadians">Angle in radians.</param>
/// <returns>Returns the angle in units of degrees.</returns>
public static double ToDeg(double angleInRadians)
{
return angleInRadians * (180.0 / System.Math.PI);
}
#endregion
}
#endregion
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.