extern crate num;
extern crate qip;
use qip::*;
fn main() -> Result<(), CircuitError> {
let mut b = OpBuilder::new();
let q = b.qubit();
let ra = b.register(3)?;
let rb = b.register(3)?;
let ha = ra.handle();
let hb = rb.handle();
let q = b.hadamard(q);
let (q, _, _) = b.cswap(q, ra, rb)?;
let q = b.hadamard(q);
let (q, m1) = b.measure(q);
qip::run_debug(&q)?;
let initial_state = [ha.make_init_from_index(0)?, hb.make_init_from_index(1)?];
let (_, measured) = run_local_with_init::<f64>(&q, &initial_state)?;
println!("{:?}", measured.get_measurement(&m1));
Ok(())
}