Files
DP44/DataPRO/ExocortexDSP/Polynomial.cs
2026-04-17 14:55:32 -04:00

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];
}
}
}