44 lines
1.2 KiB
C#
44 lines
1.2 KiB
C#
namespace Exocortex.DSP
|
|
{
|
|
public class SimplePolynomial : Polynomial
|
|
{
|
|
public SimplePolynomial(params double[] coefficients) : base(coefficients) { }
|
|
|
|
public override double Evaluate(double value)
|
|
{
|
|
var retval = coefficients[0];
|
|
var f = value;
|
|
|
|
for (int i = 1; i < coefficients.Length; i++)
|
|
{
|
|
retval += coefficients[i] * f;
|
|
f *= value;
|
|
}
|
|
return retval;
|
|
}
|
|
}
|
|
public abstract class Polynomial
|
|
{
|
|
public Polynomial(params double[] coefficients)
|
|
{
|
|
this.coefficients = new double[coefficients.Length];
|
|
|
|
for (int i = 0; i < coefficients.Length; i++)
|
|
this.coefficients[i] = coefficients[i];
|
|
}
|
|
|
|
public abstract double Evaluate(double value);
|
|
|
|
protected double[] coefficients = null;
|
|
|
|
public double GetCoefficient(int index)
|
|
{
|
|
if (null == coefficients || index < 0 || index >= coefficients.Length)
|
|
{
|
|
return double.NaN;
|
|
}
|
|
return coefficients[index];
|
|
}
|
|
}
|
|
}
|