Low-level functions for evaluating and manipulating polynomials.
The vector of coefficients for the polynomial f(x, y) = 3 x y + x^2
is
[0, 3, 0, 1, 0, 0]
.
With eval()
we can evaluate this polynomial:
```rust use nutils_poly;
let coeffs = [0, 3, 0, 1, 0, 0]; asserteq!(nutilspoly::eval(&coeffs, &[1, 0], 2), Ok( 1)); // f(1, 0) = 1 asserteq!(nutilspoly::eval(&coeffs, &[1, 1], 2), Ok( 4)); // f(1, 1) = 4 asserteq!(nutilspoly::eval(&coeffs, &[2, 3], 2), Ok(22)); // f(2, 3) = 22 ```
PartialDerivPlan::apply()
computes the coefficients for the partial
derivative of a polynomial to one of the variables. The partial derivative
of f
to x
, the first variable, is ∂_x f(x, y) = 3 y + 2 x
(coefficients: [3, 2, 0]
):
```rust use nutils_poly::PartialDerivPlan;
let coeffs = [0, 3, 0, 1, 0, 0]; let pd = PartialDerivPlan::new( 2, // number of variables 2, // degree 0, // variable to compute the partial derivative to ).unwrap(); asserteq!(Vec::fromiter(pd.apply(coeffs)?), vec![3, 2, 0]);
```
See the [crate documentation] for a detailed description.
This crate is part of the [Nutils project].