50 lines
1.6 KiB
Python
50 lines
1.6 KiB
Python
|
from __future__ import annotations
|
||
|
|
||
|
from typing import Final, overload
|
||
|
|
||
|
from docplex.mp.basic import Expr
|
||
|
from docplex.mp.linear import LinearExpr, MonomialExpr
|
||
|
from docplex.mp.model import Model
|
||
|
from docplex.mp.operand import LinearOperand
|
||
|
from docplex.mp.quad import QuadExpr
|
||
|
from docplex.mp.vartype import VarType
|
||
|
|
||
|
class Var(LinearOperand):
|
||
|
lb: float
|
||
|
ub: float
|
||
|
vartype: Final[VarType]
|
||
|
|
||
|
def __init__(
|
||
|
self,
|
||
|
model: Model,
|
||
|
vartype: VarType,
|
||
|
name: str,
|
||
|
lb: float | None = None,
|
||
|
ub: float | None = None,
|
||
|
) -> None: ...
|
||
|
def has_free_lb(self) -> bool: ...
|
||
|
def has_free_ub(self) -> bool: ...
|
||
|
def is_free(self) -> bool: ...
|
||
|
def set_lb(self, ub: float | None) -> None: ...
|
||
|
def set_ub(self, ub: float | None) -> None: ...
|
||
|
def is_binary(self) -> bool: ...
|
||
|
def is_integer(self) -> bool: ...
|
||
|
def is_continuous(self) -> bool: ...
|
||
|
def is_discrete(self) -> bool: ...
|
||
|
def __sub__(self, e: Var | float) -> LinearExpr: ...
|
||
|
def __rsub__(self, e: Var | float) -> LinearExpr: ...
|
||
|
def __neg__(self) -> MonomialExpr: ...
|
||
|
def __add__(self, other: Var | float) -> LinearExpr: ...
|
||
|
def __radd__(self, other: Var | float) -> LinearExpr: ...
|
||
|
@overload
|
||
|
def __mul__(self, other: float) -> MonomialExpr: ...
|
||
|
@overload
|
||
|
def __mul__(self, other: Var) -> QuadExpr: ...
|
||
|
@overload
|
||
|
def __mul__(self, other: Expr) -> Expr: ...
|
||
|
@overload
|
||
|
def __rmul__(self, other: float) -> MonomialExpr: ...
|
||
|
@overload
|
||
|
def __rmul__(self, other: Expr) -> Expr: ...
|
||
|
def __truediv__(self, other: float) -> MonomialExpr: ...
|