Crate polynomen

source ·
Expand description

Polynomials Library

Polynomial implementation

  • builder from coefficients or roots
  • degree
  • extend by adding 0 coefficients to higher order terms
  • transformation to monic form
  • rounding to zero for small coefficients
  • coefficient indexing
  • zero and unit polynomials
  • arithmetic operations between polynomials (addition, subtraction, multiplication, division, reminder, negation)
  • arithmetic operations with floats (addition, subtraction, multiplication, division)
  • multiplication using fast fourier transform
  • polynomial exponentiation
  • differentiation and integration
  • polynomial evaluation
  • evaluation of polynomial ratios that reduces overflows
  • greatest common divisor between two polynomials
  • polynomial norms (l1, l2, l∞)
  • roots finding (real and complex) using eigenvalues of the companion matrix or iterative method

Modules

Macros

  • Macro shortcut to crate a polynomial from its coefficients.

Structs

  • Polynomial object

Traits

  • Absolute value trait
  • Constants trait
  • Cosine of a number trait
  • Trait that defines the constants used in the Eigen solver.
  • Epsilon trait
  • Reciprocal of a number trait
  • Logarithm of a number trait
  • Maximum of two numbers trait
  • Type conversion
  • Multiplicative identity trait
  • Exponent of a number trait
  • Sign of a number trait
  • Sine of a number trait
  • Square root of a number trait
  • Additive identity trait

Functions

  • Calculate the complex roots of the quadratic equation x^2 + b*x + c = 0.
  • Evaluate the ratio between to polynomials at the given value. This implementation avoids overflow issues when evaluating the numerator and the denominator separately.
  • Calculate the real roots of the quadratic equation x^2 + b*x + c = 0.