Polynomial

Polynomial#

class Polynomial#

Polynomial function of decision variables.

A polynomial function of arbitrary degree with terms of the form \(c \cdot x_1^{a_1} \cdot x_2^{a_2} \cdots\) where \(x_i\) are decision variables and \(c\) is a coefficient.

Examples#

Create via DecisionVariable operations:

>>> x = DecisionVariable.integer(1)
>>> y = DecisionVariable.integer(2)
>>> p = x * x * y + x * y * y + 1  # Cubic polynomial

Note that ==, <=, >= create Constraint objects:

>>> constraint = p == 0  # Returns Constraint
__add__(rhs: ScalarLike | LinearLike | Parameter | Quadratic | Polynomial) → Polynomial#
__add__(rhs: Function) → Function
__copy__() → Polynomial#
__deepcopy__(_memo: Any) → Polynomial#
__eq__(other: ToFunction) → Constraint#

Create an equality constraint: self == other → Constraint with EqualToZero

__ge__(other: ToFunction) → Constraint#

Create a greater-than-or-equal constraint: self >= other → Constraint

__iadd__(rhs: Polynomial) → Polynomial#
__le__(other: ToFunction) → Constraint#

Create a less-than-or-equal constraint: self <= other → Constraint

__mul__(rhs: ScalarLike | LinearLike | Parameter | Quadratic | Polynomial) → Polynomial#
__mul__(rhs: Function) → Function
__neg__() → Polynomial#

Negation operator

__new__(terms: Mapping[Sequence[int], float]) → Polynomial#
__radd__(lhs: ScalarLike | LinearLike | Parameter | Quadratic | Polynomial) → Polynomial#
__radd__(lhs: Function) → Function
__repr__() → str#
__rmul__(lhs: ScalarLike | LinearLike | Parameter | Quadratic | Polynomial) → Polynomial#
__rmul__(lhs: Function) → Function
__rsub__(lhs: ScalarLike | LinearLike | Parameter | Quadratic | Polynomial) → Polynomial#
__rsub__(lhs: Function) → Function
__sub__(rhs: ScalarLike | LinearLike | Parameter | Quadratic | Polynomial) → Polynomial#
__sub__(rhs: Function) → Function
add_assign(rhs: Polynomial) → None#
add_linear(linear: Linear) → Polynomial#
add_quadratic(quadratic: Quadratic) → Polynomial#
add_scalar(scalar: float) → Polynomial#
almost_equal(other: Polynomial, atol: float = 1e-06) → bool#
evaluate(state: ToState, *, atol: Optional[float] = None) → float#
mul_linear(linear: Linear) → Polynomial#
mul_quadratic(quadratic: Quadratic) → Polynomial#
mul_scalar(scalar: float) → Polynomial#
partial_evaluate(state: ToState, *, atol: Optional[float] = None) → Polynomial#
random(rng: Rng, num_terms: int = 5, max_degree: int = 3, max_id: int = 10) → Polynomial#
terms() → dict#