improve api and simplify SumProdCircuit creation

This commit is contained in:
2026-04-27 23:15:06 +02:00
parent 627a2d88f4
commit 3fbd7e3773
7 changed files with 132 additions and 132 deletions

View File

@@ -1,5 +1,8 @@
use circuit_cas::circuit::quotient::Quotient;
use circuit_cas::poly::var::StaticVar;
use std::cell::RefCell;
use std::rc::Rc;
use circuit_cas::circuit::dag::CircuitExt;
use circuit_cas::circuit::quotient::QuotientCircuit;
use circuit_cas::circuit::traits::Circuit;
use circuit_cas::var;
fn main() {
@@ -12,7 +15,15 @@ fn main() {
1 * ((&x ^ 1) * (&nx ^ 1)) - 1 * (&x ^ 1),
];
let quotient: Quotient<StaticVar> = idem.into_iter().collect();
let quotient: Rc<RefCell<QuotientCircuit>> = idem.into_iter().collect();
println!("{quotient:?}");
// Build x * x̄ + x in the DAG
let xn = quotient.var("x");
let nxn = quotient.var("x\u{0304}");
let prod = xn * nxn;
let xn2 = quotient.var("x");
let expr = prod + xn2;
println!("dag size: {}", quotient.borrow().len());
println!("expr node id: {:?}", expr.id);
}