Skip to content
/ poly-py Public

Low-level functions for evaluating and manipulating polynomials

Notifications You must be signed in to change notification settings

nutils/poly-py

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Low-level functions for evaluating and manipulating polynomials

Topics

Resources

Stars

Watchers

Forks