improve var creation for SumProdCircuit
This commit is contained in:
@@ -6,10 +6,10 @@ use circuit_cas::circuit::dag::CircuitExt;
|
||||
fn main() {
|
||||
let circuit: Rc<RefCell<ProbCircuit>> = ProbCircuit::new();
|
||||
|
||||
// Build (x + y) * (x + z)
|
||||
let x = circuit.var("x");
|
||||
let y = circuit.var("y");
|
||||
let z = circuit.var("z");
|
||||
// vars accept anything that implements Into<StaticVar>: &'static str, (&str, u32), (&str, u32, u32)
|
||||
let x = circuit.var("x");
|
||||
let y = circuit.var(("y", 1)); // indexed variable y_1
|
||||
let z = circuit.var(("z", 0, 1)); // doubly-indexed variable z_{0,1}
|
||||
|
||||
let x_plus_y = circuit.var("x") + y;
|
||||
let x_plus_z = circuit.var("x") + z;
|
||||
@@ -19,7 +19,7 @@ fn main() {
|
||||
let x2 = circuit.var("x");
|
||||
assert_eq!(x.id, x2.id);
|
||||
|
||||
println!("(x + y) * (x + z) root node id: {:?}", expr.id);
|
||||
println!("(x + y_1) * (x + z_{{0,1}}) root node id: {:?}", expr.id);
|
||||
println!("x node id: {:?}", x.id);
|
||||
println!("x deduplicated node id: {:?}", x2.id);
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ fn main() {
|
||||
let quotient: Rc<RefCell<QuotientCircuit>> = idem.into();
|
||||
|
||||
// Build x * x̄ + x in the DAG
|
||||
// var accepts anything that implements Into<StaticVar>: &'static str, (&str, u32), (&str, u32, u32)
|
||||
let xn = quotient.var("x");
|
||||
let nxn = quotient.var("x\u{0304}");
|
||||
let prod = xn * nxn;
|
||||
|
||||
Reference in New Issue
Block a user