[−][src]Macro qip::invert_fn
Wrap a function to create a version compatible with program!
as well as an inverse which is
also compatible.
Example
use qip::*; let n = 3; let mut b = OpBuilder::new(); let ra = b.register(n)?; let rb = b.register(n)?; wrap_fn!(wrap_cy, UnitaryBuilder::cy, ra, rb); invert_fn!(inv_cy, wrap_cy); let (ra, rb) = program!(&mut b, ra, rb; wrap_cy ra, rb[2]; inv_cy ra, rb[2]; )?; let r = b.merge(vec![ra, rb])?;