10 unstable releases (3 breaking)

0.4.3 Feb 4, 2024
0.4.2 Feb 4, 2024
0.4.0 Jan 29, 2024
0.3.1 Jan 29, 2024
0.1.2 Jan 26, 2024

#634 in Algorithms

MIT license

22KB
315 lines

polyeval

Evaluate polynomials.

crates.io docs.rs GitHub GitHub Workflow Status Dependencies status MIT license

Contents

This crate provides four macros (horner!, horner_fma!, estrin!, and estrin_fma!) to evaluate a polynomial using either Horner's method or Estrin's scheme. The _fma variants use "fused multiply-add" instructions where applicable.

It provide also two functions (horner and horner_array) that work with slices and arrays respectively.

The crate can be no-std; the features std (enabled by default) and libm are passed through to num-traits.

Other crates

On https://crates.io there are several crates related to polynomial evaluation:

  • horner: provides two functions to evaluate polynomials of known and unknown order;
  • horner-eval: provides a macro to evaluate polynomials with known coefficients and a function to evaluate polynomials of unknown order;
  • fast_polynomial: provides two functions to evaluate polynomials of known and unknown order, implementing a hybrid Estrin's/Horner's method exploiting instruction-level parallelism;
  • polynomen: general arithmetic with polynomials (possibly incomplete?);
  • horny and horny_macro are "Reserved for future use (seriously)", but are completely empty and haven't received an update in 3+ years.

Dependencies

~215KB