- LSB bit ordering convention similar to Qiskit
- Control bit ordering is contiguous starting from the MSB
- All qubits are initialized to [0, 1].
- Identity (I)
- Pauli (X, Y, Z)
- Hadamard (H)
- Toffoli
- Controlled Swap (CSwap)
- Controlled Phase (CP)
- Sqrt X (rX)
- Phase shift: (S, T, Sdg, Tdg)
- Swap and variations: (sqrt, imaginary)
- Modified gates:
- Conjugate-transpose (dg)
- Multi-targeted single bit gates (MT)
- Multi-controlled gates (MC)
- Gates with arguments:
- Phase shift gate
- Rotational gates: (Rx, Ry, Rz)
- Ising Coupling gates: (Rxx, Ryy, Rzz)
- Custom gates:
- Single black box gate created from a Sim
- Instantiate a Sim with the desired number of qubits.
- Add gates sequentially with add_gate(gate, i_qbits). a. gate: Gate object describing the gate used b. i_qbits: Ordered set of indices of qubits to be used for the gate
- Call print_statevector(), print_prob_dist(), print_sim() to print Sim info.
- Create a Sim with desired gates
- Call to_gate() to return a Gate object of the Sim
- Can now use the Gate object in another Sim