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: int | float | DecisionVariable | Parameter | Linear | Quadratic | Polynomial) Polynomial#
__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: int | float | DecisionVariable | Parameter | Linear | Quadratic | Polynomial) Polynomial#
__neg__() Polynomial#

Negation operator

__new__(terms: Mapping[Sequence[int], float]) Polynomial#
__radd__(lhs: int | float | DecisionVariable | Parameter | Linear | Quadratic | Polynomial) Polynomial#
__repr__() str#
__rmul__(lhs: int | float | DecisionVariable | Parameter | Linear | Quadratic | Polynomial) Polynomial#
__rsub__(lhs: int | float | DecisionVariable | Parameter | Linear | Quadratic | Polynomial) Polynomial#
__sub__(rhs: int | float | DecisionVariable | Parameter | Linear | Quadratic | Polynomial) Polynomial#
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#
from_bytes(bytes: bytes) Polynomial#
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#
to_bytes() bytes#