def apply(self, problem): inverse_data = InverseData(problem) real2imag = { var.id: lu.get_id() for var in problem.variables() if var.is_complex() } constr_dict = { cons.id: lu.get_id() for cons in problem.constraints if cons.is_complex() } real2imag.update(constr_dict) inverse_data.real2imag = real2imag leaf_map = {} real_obj, imag_obj = self.canonicalize_tree(problem.objective, inverse_data.real2imag, leaf_map) assert imag_obj is None constrs = [] for constraint in problem.constraints: # real2imag maps variable id to a potential new variable # created for the imaginary part. real_constrs, imag_constrs = self.canonicalize_tree( constraint, inverse_data.real2imag, leaf_map) if real_constrs is not None: constrs.extend(real_constrs) if imag_constrs is not None: constrs.extend(imag_constrs) new_problem = problems.problem.Problem(real_obj, constrs) return new_problem, inverse_data
def __init__(self, problem): varis = problem.variables() self.id_map, self.var_offsets, self.x_length, self.var_shapes = ( self.get_var_offsets(varis)) self.id2var = {var.id: var for var in varis} self.real2imag = {var.id: lu.get_id() for var in varis if var.is_complex()} constr_dict = {cons.id: lu.get_id() for cons in problem.constraints if cons.is_complex()} self.real2imag.update(constr_dict) self.id2cons = {cons.id: cons for cons in problem.constraints} self.cons_id_map = dict()
def __init__(self, rows=1, cols=1, name=None): self.id = lu.get_id() if name is None: self._name = "%s%d" % (s.VAR_PREFIX, self.id) else: self._name = name self.primal_value = None self._dcp_attr = u.DCPAttr(u.Sign.UNKNOWN, u.Curvature.AFFINE, u.Shape(rows, cols))
def __init__(self, shape=(), name=None, value=None, **kwargs): self.id = lu.get_id() if name is None: self._name = "%s%d" % (s.PARAM_PREFIX, self.id) else: self._name = name # Initialize with value if provided. self._value = None super(Parameter, self).__init__(shape, value, **kwargs)
def __init__(self, rows=1, cols=1, name=None): self._rows = rows self._cols = cols self.id = lu.get_id() if name is None: self._name = "%s%d" % (s.VAR_PREFIX, self.id) else: self._name = name self.primal_value = None self.init_dcp_attr()
def __init__(self, rows=1, cols=1, name=None, sign="unknown"): self.id = lu.get_id() self._rows = rows self._cols = cols self.sign_str = sign if name is None: self._name = "%s%d" % (s.PARAM_PREFIX, self.id) else: self._name = name self.init_dcp_attr()
def __init__(self, rows=1, cols=1, name=None): self._rows = rows self._cols = cols self.id = lu.get_id() if name is None: self._name = "%s%d" % (s.VAR_PREFIX, self.id) else: self._name = name self.primal_value = None super(Variable, self).__init__()
def __init__(self, args, constr_id=None): # TODO cast constants. # self.args = [cvxtypes.expression().cast_to_const(arg) for arg in args] self.args = args if constr_id is None: self.constr_id = lu.get_id() else: self.constr_id = constr_id self.dual_variables = [cvxtypes.variable()(arg.shape) for arg in args] super(Constraint, self).__init__()
def __init__(self, rows=1, cols=1, name=None): self._rows = rows self._cols = cols self.id = lu.get_id() if name is None: self._name_given = False self._name = "%s%d" % (s.VAR_PREFIX, self.id) else: self._name_given = True self._name = name self.primal_value = None super(Variable, self).__init__()
def __init__(self, shape=(), name=None, var_id=None, **kwargs): if var_id is None: self.id = lu.get_id() else: self.id = var_id if name is None: self._name = "%s%d" % (s.VAR_PREFIX, self.id) else: self._name = name self._value = None super(Variable, self).__init__(shape, **kwargs)
def __init__(self, *args) -> None: self.id = lu.get_id() # Throws error if args is empty. if len(args) == 0: raise TypeError("No arguments given to %s." % self.__class__.__name__) # Convert raw values to Constants. self.args = [Atom.cast_to_const(arg) for arg in args] self.validate_arguments() self._shape = self.shape_from_args() if len(self._shape) > 2: raise ValueError("Atoms must be at most 2D.")
def __init__(self, rows=1, cols=1, name=None, sign="unknown", value=None): self.id = lu.get_id() self._rows = rows self._cols = cols self.sign_str = sign if name is None: self._name = "%s%d" % (s.PARAM_PREFIX, self.id) else: self._name = name self.init_dcp_attr() # Initialize with value if provided. if value is not None: self.value = value
def __init__(self, shape=(), name=None, var_id=None, **kwargs): if var_id is None: self.id = lu.get_id() else: self.id = var_id if name is None: self._name = "%s%d" % (s.VAR_PREFIX, self.id) elif isinstance(name, str): self._name = name else: raise TypeError("Variable name %s must be a string." % name) self._value = None super(Variable, self).__init__(shape, **kwargs)
def __init__(self, rows=1, cols=1, name=None, sign="unknown", value=None): self.id = lu.get_id() self._rows = rows self._cols = cols self._sign_str = sign if name is None: self._name = "%s%d" % (s.PARAM_PREFIX, self.id) else: self._name = name # Initialize with value if provided. self._value = None if value is not None: self.value = value super(Parameter, self).__init__()
def __init__(self, shape=(), name=None, value=None, id=None, **kwargs): if id is None: self.id = lu.get_id() else: self.id = id if name is None: self._name = "%s%d" % (s.PARAM_PREFIX, self.id) else: self._name = name # Initialize with value if provided. self._value = None self.delta = None self.gradient = None super(Parameter, self).__init__(shape, value, **kwargs) self._is_constant = True
def __init__(self, y, parent): """ Parameters ---------- y : cvxpy.expressions.expression.Expression Must satisfy ``y.is_affine() == True``. parent : cvxpy.transforms.suppfunc.SuppFunc The object containing data for the convex set associated with this atom. """ self.id = lu.get_id() self.args = [Atom.cast_to_const(y)] self._parent = parent self._eta = None # store for debugging purposes self._shape = tuple() self.validate_arguments()
def __init__( self, shape=(), name: Optional[str] = None, var_id: Optional[int] = None, **kwargs: Any ) -> None: if var_id is None: self.id = lu.get_id() else: self.id = var_id if name is None: self._name = "%s%d" % (s.VAR_PREFIX, self.id) elif isinstance(name, str): self._name = name else: raise TypeError("Variable name %s must be a string." % name) self._variable_with_attributes: Optional["Variable"] = None self._value = None self.delta = None self.gradient = None super(Variable, self).__init__(shape, **kwargs)
def __init__(self, shape: Tuple[int, ...] = (), name: Optional[str] = None, value=None, id=None, **kwargs) -> None: if id is None: self.id = lu.get_id() else: self.id = id if name is None: self._name = f"{s.PARAM_PREFIX}{self.id}" else: self._name = name # Initialize with value if provided. self._value = None self.delta = None self.gradient = None super(Parameter, self).__init__(shape, value, **kwargs) self._is_constant = True
def __init__(self, x, q, axis=None, keepdims=False): self.q = q self.id = lu.get_id() super(quantile, self).__init__(x, axis=axis, keepdims=keepdims)
def __init__(self): self.constr_id = lu.get_id() super(Constraint, self).__init__()
def __init__(self, lh_exp, rh_exp): self.id = lu.get_id() self.lh_exp = lh_exp self.rh_exp = rh_exp self._expr = self.lh_exp - self.rh_exp self._dual_value = None
def __init__(self, constr_id=None): if constr_id is None: self.constr_id = lu.get_id() else: self.constr_id = constr_id super(Constraint, self).__init__()
def new_edge(start_node, end_node, edges): """Create a new edge and add it to edges. """ edge_id = lu.get_id() edges[edge_id] = (start_node, end_node) return edge_id