// Independent finite-field gate algebra. Generated by scripts/generate_quantum_baseline.py.
// Arguments/results use source coordinate order: first deepest.
__complex_zero:
push 0
push 0
return
__complex_one:
push 1
push 0
return
__complex_add:
dup 3
dup 2
add
dup 3
dup 2
add
pick 2
pop 1
pick 2
pop 1
pick 2
pop 1
pick 2
pop 1
return
__complex_sub:
dup 3
dup 2
push -1
mul
add
dup 3
dup 2
push -1
mul
add
pick 2
pop 1
pick 2
pop 1
pick 2
pop 1
pick 2
pop 1
return
__complex_mul:
dup 3
dup 2
mul
dup 3
dup 2
mul
push -1
mul
add
dup 4
dup 2
mul
dup 4
dup 4
mul
add
pick 2
pop 1
pick 2
pop 1
pick 2
pop 1
pick 2
pop 1
return
__complex_scale:
dup 2
dup 2
mul
dup 3
dup 2
mul
pick 2
pop 1
pick 2
pop 1
pick 2
pop 1
return
__complex_conj:
push -1
mul
return
__complex_norm_sq:
dup 1
dup 2
mul
dup 1
dup 2
mul
add
pick 1
pop 1
pick 1
pop 1
return
__init_zero:
push 1
push 0
push 0
push 0
return
__init_one:
push 0
push 0
push 1
push 0
return
__paulix:
swap 3
swap 1
swap 3
swap 2
return
__pauliz:
swap 1
push -1
mul
swap 1
push -1
mul
return
__pauliy:
swap 3
swap 2
swap 1
swap 2
swap 2
push -1
mul
swap 2
swap 1
push -1
mul
swap 1
return
__hadamard:
dup 3
dup 2
add
dup 3
dup 2
add
dup 5
dup 4
push -1
mul
add
dup 5
dup 4
push -1
mul
add
pick 4
pop 1
pick 4
pop 1
pick 4
pop 1
pick 4
pop 1
return
__sgate:
swap 1
swap 1
push -1
mul
swap 1
return
__tgate:
dup 3
dup 3
dup 3
dup 3
push -1
mul
add
dup 4
dup 4
add
pick 4
pop 1
pick 4
pop 1
pick 4
pop 1
pick 4
pop 1
return
__two_qubit_product:
dup 7
dup 4
mul
dup 7
dup 4
mul
push -1
mul
add
dup 8
dup 4
mul
dup 8
dup 6
mul
add
dup 9
dup 4
mul
dup 9
dup 4
mul
push -1
mul
add
dup 10
dup 4
mul
dup 10
dup 6
mul
add
dup 9
dup 8
mul
dup 9
dup 8
mul
push -1
mul
add
dup 10
dup 8
mul
dup 10
dup 10
mul
add
dup 11
dup 8
mul
dup 11
dup 8
mul
push -1
mul
add
dup 12
dup 8
mul
dup 12
dup 10
mul
add
pick 8
pop 1
pick 8
pop 1
pick 8
pop 1
pick 8
pop 1
pick 8
pop 1
pick 8
pop 1
pick 8
pop 1
pick 8
pop 1
return
__cnot:
swap 3
swap 1
swap 3
swap 2
return
__cz:
swap 1
push -1
mul
swap 1
push -1
mul
return
__swap:
swap 5
swap 3
swap 5
swap 4
swap 2
swap 4
return
__measure_deterministic:
dup 3
dup 4
mul
dup 3
dup 4
mul
add
dup 2
dup 3
mul
dup 2
dup 3
mul
add
push -1
mul
add
pick 1
pop 1
pick 1
pop 1
pick 1
pop 1
pick 1
pop 1
split
pop 1
push 2147483647
swap 1
lt
return
__apply_single_gate:
push 1099511627786 write_mem 1 pop 1 push 1099511627785 write_mem 1 pop 1 push 1099511627784 write_mem 1 pop 1 push 1099511627783 write_mem 1 pop 1 push 1099511627782 write_mem 1 pop 1 push 1099511627781 write_mem 1 pop 1 push 1099511627780 write_mem 1 pop 1 push 1099511627779 write_mem 1 pop 1 push 1099511627778 write_mem 1 pop 1 push 1099511627777 write_mem 1 pop 1 push 1099511627776 write_mem 1 pop 1
push 1099511627776 read_mem 1 pop 1 split swap 1 push 0 eq assert pop 1
push 1099511627777 read_mem 1 pop 1 split swap 1 push 0 eq assert pop 1
push 1099511627778 read_mem 1 pop 1 split swap 1 push 0 eq assert pop 1
push 13 push 1099511627777 read_mem 1 pop 1 lt assert
push 1099511627777 read_mem 1 pop 1 push 1099511627778 read_mem 1 pop 1 lt assert
push 1 push 1099511627787 write_mem 1 pop 1
push 0 push 1099511627789 write_mem 1 pop 1
call __qram_size
push 1099511627776 read_mem 1 pop 1 push 1099511627787 read_mem 1 pop 1 push 2 mul add push -1 add split swap 1 push 0 eq assert pop 1
push 1 push 1099511627788 write_mem 1 pop 1
push 0 push 1099511627789 write_mem 1 pop 1
call __qram_bit
push 0 push 1099511627789 write_mem 1 pop 1
call __qram_apply
return
__qram_size:
push 1099511627777 read_mem 1 pop 1 push 1099511627789 read_mem 1 pop 1 lt push 0 eq skiz return
push 1099511627787 read_mem 1 pop 1 push 2 mul push 1099511627787 write_mem 1 pop 1
push 1099511627789 read_mem 1 pop 1 push 1 add push 1099511627789 write_mem 1 pop 1
recurse
__qram_bit:
push 1099511627778 read_mem 1 pop 1 push 1099511627789 read_mem 1 pop 1 lt push 0 eq skiz return
push 1099511627788 read_mem 1 pop 1 push 2 mul push 1099511627788 write_mem 1 pop 1
push 1099511627789 read_mem 1 pop 1 push 1 add push 1099511627789 write_mem 1 pop 1
recurse
__qram_apply:
push 1099511627787 read_mem 1 pop 1 push 1099511627789 read_mem 1 pop 1 lt push 0 eq skiz return
push 1099511627789 read_mem 1 pop 1 push 1099511627788 read_mem 1 pop 1 and push 0 eq skiz call __qram_pair
push 1099511627789 read_mem 1 pop 1 push 1 add push 1099511627789 write_mem 1 pop 1
recurse
__qram_pair:
push 1099511627776 read_mem 1 pop 1 push 1099511627789 read_mem 1 pop 1 push 2 mul add push 1099511627790 write_mem 1 pop 1
push 1099511627790 read_mem 1 pop 1 push 1099511627788 read_mem 1 pop 1 push 2 mul add push 1099511627791 write_mem 1 pop 1
push 1099511627790 read_mem 1 pop 1 push 0 add read_mem 1 pop 1 push 1099511627792 write_mem 1 pop 1
push 1099511627790 read_mem 1 pop 1 push 1 add read_mem 1 pop 1 push 1099511627793 write_mem 1 pop 1
push 1099511627791 read_mem 1 pop 1 push 0 add read_mem 1 pop 1 push 1099511627794 write_mem 1 pop 1
push 1099511627791 read_mem 1 pop 1 push 1 add read_mem 1 pop 1 push 1099511627795 write_mem 1 pop 1
push 1099511627779 read_mem 1 pop 1 push 1099511627792 read_mem 1 pop 1 mul push 1099511627780 read_mem 1 pop 1 push 1099511627793 read_mem 1 pop 1 mul push -1 mul add push 1099511627781 read_mem 1 pop 1 push 1099511627794 read_mem 1 pop 1 mul push 1099511627782 read_mem 1 pop 1 push 1099511627795 read_mem 1 pop 1 mul push -1 mul add add push 1099511627790 read_mem 1 pop 1 write_mem 1 pop 1
push 1099511627779 read_mem 1 pop 1 push 1099511627793 read_mem 1 pop 1 mul push 1099511627780 read_mem 1 pop 1 push 1099511627792 read_mem 1 pop 1 mul add push 1099511627781 read_mem 1 pop 1 push 1099511627795 read_mem 1 pop 1 mul push 1099511627782 read_mem 1 pop 1 push 1099511627794 read_mem 1 pop 1 mul add add push 1099511627790 read_mem 1 pop 1 push 1 add write_mem 1 pop 1
push 1099511627783 read_mem 1 pop 1 push 1099511627792 read_mem 1 pop 1 mul push 1099511627784 read_mem 1 pop 1 push 1099511627793 read_mem 1 pop 1 mul push -1 mul add push 1099511627785 read_mem 1 pop 1 push 1099511627794 read_mem 1 pop 1 mul push 1099511627786 read_mem 1 pop 1 push 1099511627795 read_mem 1 pop 1 mul push -1 mul add add push 1099511627791 read_mem 1 pop 1 write_mem 1 pop 1
push 1099511627783 read_mem 1 pop 1 push 1099511627793 read_mem 1 pop 1 mul push 1099511627784 read_mem 1 pop 1 push 1099511627792 read_mem 1 pop 1 mul add push 1099511627785 read_mem 1 pop 1 push 1099511627795 read_mem 1 pop 1 mul push 1099511627786 read_mem 1 pop 1 push 1099511627794 read_mem 1 pop 1 mul add add push 1099511627791 read_mem 1 pop 1 push 1 add write_mem 1 pop 1
return