Skip to content

FedericoStra/polyeval

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.