Skip to content

Latest commit

 

History

History
47 lines (35 loc) · 1.3 KB

README.md

File metadata and controls

47 lines (35 loc) · 1.3 KB

Low-level functions for evaluating and manipulating polynomials.

Examples

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])

Further reading

This package is a Python interface for the Rust crate nutils-poly using PyO3.

This package is part of the Nutils project.