packages feed

quipper-demos-0.9.0.0: Quipper/Demos/Decompose_test.hs

import Quipper
import Quipper.Libraries.Decompose

toffoli :: (Qubit,Qubit,Qubit) -> Circ (Qubit,Qubit,Qubit)
toffoli (q1,q2,q3) = do
 qnot_at q3 `controlled` (q1,q2)
 return (q1,q2,q3)

boxed :: (Qubit,Qubit,Qubit) -> Circ (Qubit,Qubit,Qubit)
boxed = box "Toffoli" toffoli


tof :: (Qubit,Qubit,Qubit,Qubit,Qubit) -> Circ ()
tof (q1,q2,q3,q4,q5) = do
 boxed (q3,q4,q5) `controlled` (q1,q2)
 return ()
 
main :: IO ()
main = do
  print_simple Preview tof
  print_simple Preview (decompose_generic Logical tof)
  print_simple Preview (decompose_generic Toffoli tof)
  print_simple Preview (decompose_generic Binary tof)