View source code
Display the source code in std/math/algebraic.d from which this page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone.

Function std.math.algebraic.poly

Evaluate polynomial A(x) = a0 + a1x + a2x2 + a3x3; ...

Unqual!(CommonType!(T1,T2)) poly(T1, T2) (
  T1 x,
  in T2[] A
) pure nothrow @nogc @trusted
if (isFloatingPoint!T1 && isFloatingPoint!T2);

Unqual!(CommonType!(T1,T2)) poly(T1, T2, int N) (
  T1 x,
  const ref T2[N] A
) pure nothrow @nogc @safe
if (isFloatingPoint!T1 && isFloatingPoint!T2 && (N > 0) && (N <= 10));

Uses Horner's rule A(x) = a0 + x(a1 + x(a2 + x(a3 + ...)))

Parameters

NameDescription
x the value to evaluate.
A array of coefficients a0, a1, etc.

Example

real x = 3.1L;
static real[] pp = [56.1L, 32.7L, 6];

writeln(poly(x, pp)); // (56.1L + (32.7L + 6.0L * x) * x)

Authors

Walter Bright, Don Clugston, Conversion of CEPHES math library to D by Iain Buclaw and David Nadlinger

License

Boost License 1.0.