Quantum Simulation C++ API Reference
qsim
Classes |
|
---|---|
qsim::BasicGateFuser |
Stateless object with methods for aggregating
Gate
s into
GateFused
.
|
qsim::BasicGateFuser::Parameter | User-specified parameters for gate fusion. |
qsim::CircuitQsimParser | Parser for the (deprecated) qsim file input format . |
qsim::Fuser | A base class for fuser classes with some common functions. |
qsim::SimulatorAVX | Quantum circuit simulator with AVX vectorization. |
qsim::SimulatorBasic | Quantum circuit simulator without vectorization. |
qsim::SimulatorSSE | Quantum circuit simulator with SSE vectorization. |
qsim::StateSpace | Abstract class containing context and routines for general state-vector manipulations. |
qsim::StateSpace::MeasurementResult | The observed state from a Measurement gate. |
qsim::StateSpaceAVX | Object containing context and routines for AVX state-vector manipulations. |
qsim::StateSpaceBasic | Object containing context and routines for unoptimized state-vector manipulations. |
qsim::StateSpaceSSE | Object containing context and routines for SSE state-vector manipulations. |
Structs |
|
---|---|
qsim::Circuit | A collection of gates. |
qsim::Gate | A generic gate to make it easier to use qsim with external gate sets. |
qsim::GateCNot | The controlled-X (CX or CNOT) gate. |
qsim::GateCP | The controlled phase gate. |
qsim::GateCZ | The controlled-Z (CZ) gate. |
qsim::GateFS | The fermionic simulation (FSim) gate family. |
qsim::GateFused | A collection of "fused" gates which can be multiplied together before being applied to the state vector. |
qsim::GateHd | The Hadamard gate. |
qsim::GateHZ2 | A pi / 2 rotation around the X + Y axis. |
qsim::GateId1 | The one-qubit identity gate. |
qsim::GateId2 | The two-qubit identity gate. |
qsim::GateIS | The ISWAP gate. |
qsim::GateRX | A gate that rotates around the X axis of the Bloch sphere. |
qsim::GateRXY | A gate that rotates around an arbitrary axis in the XY-plane. |
qsim::GateRY | A gate that rotates around the Y axis of the Bloch sphere. |
qsim::GateRZ | A gate that rotates around the Z axis of the Bloch sphere. |
qsim::GateS | The S gate, equivalent to "square root of Z". |
qsim::GateSwap | The SWAP gate. |
qsim::GateT |
The T gate, equivalent to
Z ^ 0.25
.
|
qsim::GateX | The Pauli X (or "NOT") gate. |
qsim::GateX2 | The "square root of X" gate. |
qsim::GateY | The Pauli Y gate. |
qsim::GateY2 | The "square root of Y" gate. |
qsim::GateZ | The Pauli Z gate. |
qsim::HybridSimulator | Hybrid Feynman-Schrodinger simulator. |
qsim::HybridSimulator::HybridData | Contextual data for hybrid simulation. |
qsim::HybridSimulator::Parameter | User-specified parameters for gate fusion and hybrid simulation. |
qsim::IO | Controller for output logs. |
qsim::IOFile | Controller for output logs with methods for writing to file. |
qsim::ParallelForT | Helper struct for executing for-loops in parallel across multiple threads. |
qsim::QSimHRunner | Helper struct for running qsimh. |
qsim::QSimRunner | Helper struct for running qsim. |
qsim::QSimRunner::Parameter | User-specified parameters for gate fusion and simulation. |
qsim::SequentialFor | Helper struct for executing for loops in series. |
qsim::
Cirq
Structs |
|
---|---|
qsim::Cirq::CCX |
The
(exponent = 1, global_shift = 0)
instance of
CCXPowGate
.
|
qsim::Cirq::CCXPowGate | A gate that applies a doubly-controlled power of an X gate. |
qsim::Cirq::CCZ |
The
(exponent = 1, global_shift = 0)
instance of
CCZPowGate
.
|
qsim::Cirq::CCZPowGate | A gate that applies a phase to the |111⟩ state of three qubits. |
qsim::Cirq::CSwapGate | A controlled swap gate (the Fredkin gate). |
qsim::Cirq::CX |
The
(exponent = 1, global_shift = 0)
instance of
CXPowGate
.
|
qsim::Cirq::CXPowGate | A gate that applies a controlled power of an X gate. |
qsim::Cirq::CZ |
The
(exponent = 1, global_shift = 0)
instance of
CZPowGate
.
|
qsim::Cirq::CZPowGate | A gate that applies a phase to the |11⟩ state of two qubits. |
qsim::Cirq::FSimGate | The fermionic simulation gate family. |
qsim::Cirq::givens |
The
(phase_exponent = 0.25, exponent = 2*phi/pi)
instance of
PhasedISwapPowGate
.
|
qsim::Cirq::H |
The
(exponent = 1, global_shift = 0)
instance of
HPowGate
.
|
qsim::Cirq::HPowGate | A gate that rotates around the X+Z axis of the Bloch sphere. |
qsim::Cirq::I | A multi-qubit identity gate. |
qsim::Cirq::I1 | A one-qubit identity gate. |
qsim::Cirq::I2 | A two-qubit identity gate. |
qsim::Cirq::ISWAP |
The
(exponent = 1, global_shift = 0)
instance of
ISwapPowGate
.
|
qsim::Cirq::ISwapPowGate | Rotates the |01⟩ vs |10⟩ subspace of two qubits around its Bloch X-axis. |
qsim::Cirq::MatrixGate | A multi-qubit gate defined entirely by its matrix. |
qsim::Cirq::MatrixGate1 | A one-qubit gate defined entirely by its matrix. |
qsim::Cirq::MatrixGate2 | A two-qubit gate defined entirely by its matrix. |
qsim::Cirq::PhasedISwapPowGate | An ISwapPowGate conjugated by ZPowGate s. |
qsim::Cirq::PhasedXPowGate | An XPowGate conjugated by ZPowGate s. |
qsim::Cirq::PhasedXZGate | A PhasedXPowGate followed by a ZPowGate . |
qsim::Cirq::riswap |
The
(exponent = 2*phi/pi, global_shift = 0)
instance of
ISwapPowGate
.
|
qsim::Cirq::rx |
The
(exponent = phi/pi, global_shift = -0.5)
instance of
XPowGate
.
|
qsim::Cirq::ry |
The
(exponent = phi/pi, global_shift = -0.5)
instance of
YPowGate
.
|
qsim::Cirq::rz |
The
(exponent = phi/pi, global_shift = -0.5)
instance of
ZPowGate
.
|
qsim::Cirq::S |
The
(exponent = 0.5, global_shift = 0)
instance of
ZPowGate
.
|
qsim::Cirq::SWAP |
The
(exponent = 1, global_shift = 0)
instance of
SwapPowGate
.
|
qsim::Cirq::SwapPowGate | The SWAP gate, possibly raised to a power. |
qsim::Cirq::T |
The
(exponent = 0.25, global_shift = 0)
instance of
ZPowGate
.
|
qsim::Cirq::ThreeQubitDiagonalGate | A three-qubit diagonal gate. |
qsim::Cirq::TwoQubitDiagonalGate | A two-qubit diagonal gate. |
qsim::Cirq::X |
The
(exponent = 1, global_shift = 0)
instance of
XPowGate
.
|
qsim::Cirq::XPowGate | A gate that rotates around the X axis of the Bloch sphere. |
qsim::Cirq::XX |
The
(exponent = 1, global_shift = 0)
instance of
XXPowGate
.
|
qsim::Cirq::XXPowGate | The tensor product of two X gates, possibly raised to an exponent. |
qsim::Cirq::Y |
The
(exponent = 1, global_shift = 0)
instance of
YPowGate
.
|
qsim::Cirq::YPowGate | A gate that rotates around the Y axis of the Bloch sphere. |
qsim::Cirq::YY |
The
(exponent = 1, global_shift = 0)
instance of
YYPowGate
.
|
qsim::Cirq::YYPowGate | The tensor product of two Y gates, possibly raised to an exponent. |
qsim::Cirq::Z |
The
(exponent = 1, global_shift = 0)
instance of
ZPowGate
.
|
qsim::Cirq::ZPowGate | A gate that rotates around the Z axis of the Bloch sphere. |
qsim::Cirq::ZZ |
The
(exponent = 1, global_shift = 0)
instance of
ZZPowGate
.
|
qsim::Cirq::ZZPowGate | The tensor product of two Z gates, possibly raised to an exponent. |
qsim::
gate
Structs |
|
---|---|
qsim::gate::Measurement | A gate that simulates measurement of one or more qubits, collapsing the state vector and storing the measured results. |
qsim::
unitary
Classes |
|
---|---|
qsim::unitary::UnitaryCalculatorBasic | Quantum circuit unitary calculator without vectorization. |
qsim::unitary::UnitarySpace | Abstract class containing routines for general unitary matrix manipulations. |
Structs |
|
---|---|
qsim::unitary::UnitarySpaceBasic | Object containing context and routines for unitary manipulations. |