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:
import nutils_poly
import numpy
coeffs = numpy.array([0, 3, 0, 1, 0, 0], dtype=float)
# array of three `x` and `y` pairs (last axis)
values = numpy.array([[1, 0], [1, 1], [2, 3]], dtype=float)
numpy.testing.assert_allclose(nutils_poly.eval(coeffs, values), [1, 4, 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]
):
import nutils_poly
import numpy
coeffs = numpy.array([0, 3, 0, 1, 0, 0], dtype=float)
pd = nutils_poly.PartialDerivPlan(
2, # number of variables
2, # degree
0, # variable to compute the partial derivative to
)
numpy.testing.assert_allclose(pd(coeffs), [3, 2, 0])
This package is a Python interface for the Rust crate
nutils-poly
using PyO3.
This package is part of the Nutils project.