| Crates.io | nutils-poly |
| lib.rs | nutils-poly |
| version | 1.0.0 |
| created_at | 2023-01-18 10:10:57.233636+00 |
| updated_at | 2023-01-18 10:10:57.233636+00 |
| description | Low-level functions for evaluating and manipulating polynomials |
| homepage | |
| repository | https://github.com/nutils/poly-rs |
| max_upload_size | |
| id | 761627 |
| size | 74,221 |
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:
use nutils_poly;
let coeffs = [0, 3, 0, 1, 0, 0];
assert_eq!(nutils_poly::eval(&coeffs, &[1, 0], 2), Ok( 1)); // f(1, 0) = 1
assert_eq!(nutils_poly::eval(&coeffs, &[1, 1], 2), Ok( 4)); // f(1, 1) = 4
assert_eq!(nutils_poly::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]):
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();
assert_eq!(Vec::from_iter(pd.apply(coeffs)?), vec![3, 2, 0]);
# Ok::<_, nutils_poly::Error>(())
See the crate documentation for a detailed description.
This crate is part of the Nutils project.