quantum Fredkin gate