def graph_implementation(arg_objs, size, data=None): """Kronecker product of two matrices. Parameters ---------- arg_objs : list LinOp for each argument. size : tuple The size of the resulting expression. data : Additional data required by the atom. Returns ------- tuple (LinOp for objective, list of constraints) """ return (lu.kron(arg_objs[0], arg_objs[1], size), [])
def graph_implementation(self, arg_objs, shape: Tuple[int, ...], data=None) -> Tuple[lo.LinOp, List[Constraint]]: """Kronecker product of two matrices. Parameters ---------- arg_objs : list LinOp for each argument. shape : tuple The shape of the resulting expression. data : Additional data required by the atom. Returns ------- tuple (LinOp for objective, list of constraints) """ return (lu.kron(arg_objs[0], arg_objs[1], shape), [])