from __future__ import annotations from typing import overload from docplex.mp.basic import Expr from docplex.mp.dvar import Var from docplex.mp.linear import LinearExpr from docplex.mp.operand import LinearOperand from docplex.mp.quad import QuadExpr class _FunctionalExpr(Expr, LinearOperand): def __sub__(self, e: Var | float) -> LinearExpr: ... def __rsub__(self, e: Var | float) -> LinearExpr: ... def __neg__(self) -> LinearExpr: ... def __add__(self, other: Var | float) -> LinearExpr: ... def __radd__(self, other: Var | float) -> LinearExpr: ... @overload def __mul__(self, other: float) -> LinearExpr: ... @overload def __mul__(self, other: Var) -> QuadExpr: ... @overload def __mul__(self, other: Expr) -> LinearExpr: ... @overload def __rmul__(self, other: float) -> LinearExpr: ... @overload def __rmul__(self, other: Expr) -> LinearExpr: ... def __div__(self, other: float) -> LinearExpr: ... def __truediv__(self, other: float) -> LinearExpr: ... class UnaryFunctionalExpr(_FunctionalExpr): ... class AbsExpr(UnaryFunctionalExpr): ... class _SequenceExpr(_FunctionalExpr): ... class MinimumExpr(_SequenceExpr): ... class MaximumExpr(_SequenceExpr): ... class LogicalNotExpr(UnaryFunctionalExpr): ... class _LogicalSequenceExpr(_SequenceExpr): ... class LogicalAndExpr(_LogicalSequenceExpr): ... class LogicalOrExpr(_LogicalSequenceExpr): ... class PwlExpr(UnaryFunctionalExpr): ...