Qrack
9.9
General classical-emulating-quantum development framework
|
NOTE: Dyadic operation angle sign is reversed from radian rotation operators and lacks a division by a factor of two. More...
Functions | |
virtual void | Qrack::QInterface::UniformlyControlledRY (const std::vector< bitLenInt > &controls, bitLenInt qubit, real1 const *angles) |
Apply a "uniformly controlled" rotation of a bit around the Pauli Y axis. More... | |
virtual void | Qrack::QInterface::UniformlyControlledRZ (const std::vector< bitLenInt > &controls, bitLenInt qubit, real1 const *angles) |
Apply a "uniformly controlled" rotation of a bit around the Pauli Z axis. More... | |
virtual void | Qrack::QInterface::RT (real1_f radians, bitLenInt qubit) |
Phase shift gate. More... | |
virtual void | Qrack::QInterface::RX (real1_f radians, bitLenInt qubit) |
X axis rotation gate. More... | |
virtual void | Qrack::QInterface::RY (real1_f radians, bitLenInt qubit) |
Y axis rotation gate. More... | |
virtual void | Qrack::QInterface::RZ (real1_f radians, bitLenInt qubit) |
Z axis rotation gate. More... | |
virtual void | Qrack::QInterface::CRZ (real1_f radians, bitLenInt control, bitLenInt target) |
Controlled Z axis rotation gate. More... | |
virtual void | Qrack::QInterface::CRY (real1_f radians, bitLenInt control, bitLenInt target) |
Controlled Y axis rotation gate. More... | |
virtual void | Qrack::QInterface::RTDyad (int numerator, int denomPower, bitLenInt qubit) |
Dyadic fraction phase shift gate. More... | |
virtual void | Qrack::QInterface::RXDyad (int numerator, int denomPower, bitLenInt qubit) |
Dyadic fraction X axis rotation gate. More... | |
virtual void | Qrack::QInterface::Exp (real1_f radians, bitLenInt qubit) |
(Identity) Exponentiation gate More... | |
virtual void | Qrack::QInterface::Exp (const std::vector< bitLenInt > &controls, bitLenInt qubit, const complex *matrix2x2, bool antiCtrled=false) |
Imaginary exponentiation of arbitrary 2x2 gate. More... | |
virtual void | Qrack::QInterface::ExpDyad (int numerator, int denomPower, bitLenInt qubit) |
Dyadic fraction (identity) exponentiation gate. More... | |
virtual void | Qrack::QInterface::ExpX (real1_f radians, bitLenInt qubit) |
Pauli X exponentiation gate. More... | |
virtual void | Qrack::QInterface::ExpXDyad (int numerator, int denomPower, bitLenInt qubit) |
Dyadic fraction Pauli X exponentiation gate. More... | |
virtual void | Qrack::QInterface::ExpY (real1_f radians, bitLenInt qubit) |
Pauli Y exponentiation gate. More... | |
virtual void | Qrack::QInterface::ExpYDyad (int numerator, int denomPower, bitLenInt qubit) |
Dyadic fraction Pauli Y exponentiation gate. More... | |
virtual void | Qrack::QInterface::ExpZ (real1_f radians, bitLenInt qubit) |
Pauli Z exponentiation gate. More... | |
virtual void | Qrack::QInterface::ExpZDyad (int numerator, int denomPower, bitLenInt qubit) |
Dyadic fraction Pauli Z exponentiation gate. More... | |
virtual void | Qrack::QInterface::CRX (real1_f radians, bitLenInt control, bitLenInt target) |
Controlled X axis rotation gate. More... | |
virtual void | Qrack::QInterface::CRXDyad (int numerator, int denomPower, bitLenInt control, bitLenInt target) |
Controlled dyadic fraction X axis rotation gate. More... | |
virtual void | Qrack::QInterface::RYDyad (int numerator, int denomPower, bitLenInt qubit) |
Dyadic fraction Y axis rotation gate. More... | |
virtual void | Qrack::QInterface::CRYDyad (int numerator, int denomPower, bitLenInt control, bitLenInt target) |
Controlled dyadic fraction y axis rotation gate. More... | |
virtual void | Qrack::QInterface::RZDyad (int numerator, int denomPower, bitLenInt qubit) |
Dyadic fraction Z axis rotation gate. More... | |
virtual void | Qrack::QInterface::CRZDyad (int numerator, int denomPower, bitLenInt control, bitLenInt target) |
Controlled dyadic fraction Z axis rotation gate. More... | |
virtual void | Qrack::QInterface::CRT (real1_f radians, bitLenInt control, bitLenInt target) |
Controlled "phase shift gate". More... | |
virtual void | Qrack::QInterface::CRTDyad (int numerator, int denomPower, bitLenInt control, bitLenInt target) |
Controlled dyadic fraction "phase shift gate". More... | |
NOTE: Dyadic operation angle sign is reversed from radian rotation operators and lacks a division by a factor of two.
Controlled "phase shift gate".
Controlled "phase shift gate" - if control bit is true, rotates target bit as e^(-i*\theta/2) around |1> state.
If control bit is set to 1, rotates target bit as \( e^{-i \theta/2} \) around |1> state.
|
virtual |
Controlled dyadic fraction "phase shift gate".
Controlled dyadic "phase shift gate" - if control bit is true, rotates target bit as e^(i*(M_PI * numerator) / 2^denomPower) around |1> state.
If control bit is set to 1, rotates target bit as \( \exp\left(i*{\pi * numerator} / 2^{denomPower}\right) \) around |1> state.
Controlled X axis rotation gate.
Controlled x axis rotation - if control bit is true, rotates as e^(-i*\theta/2) around Pauli x axis.
If "control" is 1, rotates as \( e^{-i \theta/2} \) on Pauli x axis.
|
virtual |
Controlled dyadic fraction X axis rotation gate.
Controlled dyadic fraction x axis rotation gate - Rotates around Pauli x axis.
If "control" is 1, rotates as \( \exp\left(i*{\pi * numerator} / 2^{denomPower}\right) \) around Pauli x axis.
Controlled Y axis rotation gate.
Controlled y axis rotation - if control bit is true, rotates as e^(-i*\theta) around Pauli y axis.
If "control" is set to 1, rotates as \( e^{-i \theta/2} \) around Pauli Y axis.
|
virtual |
Controlled dyadic fraction y axis rotation gate.
Controlled dyadic fraction y axis rotation gate - Rotates around Pauli y axis.
If "control" is set to 1, rotates as \( \exp\left(i*{\pi * numerator} / 2^{denomPower}\right) \) around Pauli Y axis.
Controlled Z axis rotation gate.
Controlled z axis rotation - if control bit is true, rotates as e^(-i*\theta) around Pauli z axis.
If "control" is set to 1, rotates as \( e^{-i \theta/2} \) around Pauli Zaxis.
|
virtual |
Controlled dyadic fraction Z axis rotation gate.
Controlled dyadic fraction z axis rotation gate - Rotates around Pauli z axis.
If "control" is set to 1, rotates as \( \exp\left(i \pi numerator / 2^{denomPower}\right) \) around Pauli Z axis.
|
virtual |
Imaginary exponentiation of arbitrary 2x2 gate.
Imaginary exponentiate of arbitrary single bit gate.
Applies \( e^{-i*Op} \), where "Op" is a 2x2 matrix, (with controls on the application of the gate).
(Identity) Exponentiation gate
Exponentiate identity operator.
Applies \( e^{-i \theta*I} \), exponentiation of the identity operator
|
virtual |
Dyadic fraction (identity) exponentiation gate.
Dyadic fraction (identity) exponentiation gate - Applies exponentiation of the identity operator.
Applies \( \exp\left(-i \pi numerator I / 2^{denomPower}\right) \), exponentiation of the identity operator
Pauli X exponentiation gate.
Exponentiate Pauli X operator.
Applies \( e^{-i \theta \sigma_x} \), exponentiation of the Pauli X operator
|
virtual |
Dyadic fraction Pauli X exponentiation gate.
Dyadic fraction Pauli X exponentiation gate - Applies exponentiation of the Pauli X operator.
Applies \( \exp\left(-i \pi numerator \sigma_x / 2^{denomPower}\right) \), exponentiation of the Pauli X operator
Pauli Y exponentiation gate.
Exponentiate Pauli Y operator.
Applies \( e^{-i \theta \sigma_y} \), exponentiation of the Pauli Y operator
|
virtual |
Dyadic fraction Pauli Y exponentiation gate.
Dyadic fraction Pauli Y exponentiation gate - Applies exponentiation of the Pauli Y operator.
Applies \( \exp\left(-i \pi numerator \sigma_y / 2^{denomPower}\right) \), exponentiation of the Pauli Y operator
Pauli Z exponentiation gate.
Exponentiate Pauli Z operator.
Applies \( e^{-i \theta \sigma_z} \), exponentiation of the Pauli Z operator
|
virtual |
Dyadic fraction Pauli Z exponentiation gate.
Dyadic fraction Pauli Z exponentiation gate - Applies exponentiation of the Pauli Z operator.
Applies \( \exp\left(-i \pi numerator \sigma_z / 2^{denomPower}\right) \), exponentiation of the Pauli Z operator
Phase shift gate.
"Phase shift gate" - Rotates as e^(-i*\theta/2) around |1> state
Rotates as \( e^{-i \theta/2} \) around |1> state
|
virtual |
Dyadic fraction phase shift gate.
Dyadic fraction "phase shift gate" - Rotates as e^(i*(M_PI * numerator) / 2^denomPower) around |1> state.
Rotates as \( \exp\left(i*{\pi * numerator} / 2^{denomPower}\right) \) around |1> state.
X axis rotation gate.
x axis rotation gate - Rotates as e^(-i*\theta/2) around Pauli x axis
Rotates as \( e^{-i \theta/2} \) around Pauli X axis
|
virtual |
Dyadic fraction X axis rotation gate.
Dyadic fraction x axis rotation gate - Rotates around Pauli x axis.
Rotates \( \exp\left(i*{\pi * numerator} / 2^{denomPower}\right) \) on Pauli x axis.
Y axis rotation gate.
y axis rotation gate - Rotates as e^(-i*\theta/2) around Pauli y axis
Rotates as \( e^{-i \theta/2} \) around Pauli y axis.
|
virtual |
Dyadic fraction Y axis rotation gate.
Dyadic fraction y axis rotation gate - Rotates around Pauli y axis.
Rotates as \( \exp\left(i*{\pi * numerator} / 2^{denomPower}\right) \) around Pauli Y axis.
Z axis rotation gate.
z axis rotation gate - Rotates as e^(-i*\theta/2) around Pauli z axis
Rotates as \( e^{-i*\theta/2} \) around Pauli Z axis.
|
virtual |
Dyadic fraction Z axis rotation gate.
Dyadic fraction y axis rotation gate - Rotates around Pauli y axis.
Rotates as \( \exp\left(i \pi numerator / 2^{denomPower}\right) \) around Pauli Z axis.
|
virtual |
Apply a "uniformly controlled" rotation of a bit around the Pauli Y axis.
Uniformly controlled y axis rotation gate - Rotates as e^(-i*\theta_k/2) around Pauli y axis for each permutation "k" of the control bits.
(See https://arxiv.org/abs/quant-ph/0312218)
A different rotation angle is associated with each permutation of the control bits. The first control bit index in the "controls" array is the least significant bit of the permutation, proceeding to the most significant bit. "angles" is an array where each subsequent component is rotation angle associated with the next permutation of the control bits, starting from 0. All combinations of control bits apply one of rotation angles. For k control bits, there are therefore 2^k real components in "angles."
|
virtual |
Apply a "uniformly controlled" rotation of a bit around the Pauli Z axis.
Uniformly controlled z axis rotation gate - Rotates as e^(-i*\theta_k/2) around Pauli z axis for each permutation "k" of the control bits.
(See https://arxiv.org/abs/quant-ph/0312218)
A different rotation angle is associated with each permutation of the control bits. The first control bit index in the "controls" array is the least significant bit of the permutation, proceeding to the most significant bit. "angles" is an array where each subsequent component is rotation angle associated with the next permutation of the control bits, starting from 0. All combinations of control bits apply one of rotation angles. For k control bits, there are therefore 2^k real components in "angles."