Ejemplo n.º 1
0
def add_variable_copy(f, var, graph):
    m, n = dims(var.expr)
    old_var_id = var.expr.variable.variable_id
    new_var_id = "separate:%s:%s" % (old_var_id, f.node_id)

    new_var = graph.add_node(
        expression.variable(m, n, new_var_id), VARIABLE, new_var_id)
    f.expr = replace_var(f.expr, old_var_id, new_var.expr)
    graph.remove_edge(f, var)
    graph.add_edge(f, new_var)

    eq_constr = graph.add_node(linear.transform_expr(
        expression.eq_constraint(new_var.expr, var.expr)), CONSTRAINT)
    graph.add_edge(eq_constr, new_var)
    graph.add_edge(eq_constr, var)
Ejemplo n.º 2
0
def add_variable_copy(f, var, graph):
    m, n = dims(var.expr)
    old_var_id = var.expr.variable.variable_id
    new_var_id = "separate:%s:%s" % (old_var_id, f.node_id)

    new_var = graph.add_node(expression.variable(m, n, new_var_id), VARIABLE,
                             new_var_id)
    f.expr = replace_var(f.expr, old_var_id, new_var.expr)
    graph.remove_edge(f, var)
    graph.add_edge(f, new_var)

    eq_constr = graph.add_node(
        linear.transform_expr(expression.eq_constraint(new_var.expr,
                                                       var.expr)), CONSTRAINT)
    graph.add_edge(eq_constr, new_var)
    graph.add_edge(eq_constr, var)
Ejemplo n.º 3
0
def epi_var(expr, name, size=None):
    if size is None:
        size = expr.size.dim
    name += ":%x" % random.getrandbits(32)
    return expression.variable(size[0], size[1], name)
Ejemplo n.º 4
0
def convert_variable(expr):
    m, n = expr.size
    return expression.variable(m, n, variable_id(expr))
Ejemplo n.º 5
0
def epi_var(expr, name, size=None):
    if size is None:
        size = expr.size.dim
    name += ":%x" % random.getrandbits(32)
    return expression.variable(size[0], size[1], name)
Ejemplo n.º 6
0
def convert_variable(expr):
    m, n = expr.size
    return expression.variable(m, n, variable_id(expr))