Qrack
1.7
General classical-emulating-quantum development framework
|
Convienence and optimized functions implementing gates are applied from the bit 'start' for 'length' bits for the register. More...
Functions | |
virtual void | Qrack::QEngineCPU::X (bitLenInt start, bitLenInt length) |
Bitwise Pauli X (or logical "NOT") operator. More... | |
virtual void | Qrack::QEngineCPU::CNOT (bitLenInt control, bitLenInt target, bitLenInt length) |
Bitwise CNOT. More... | |
virtual void | Qrack::QEngineCPU::AntiCNOT (bitLenInt control, bitLenInt target, bitLenInt length) |
Bitwise "Anti-"CNOT - NOT operation if control is 0. More... | |
virtual void | Qrack::QEngineCPU::CCNOT (bitLenInt control1, bitLenInt control2, bitLenInt target, bitLenInt length) |
Bitwise CCNOT. More... | |
virtual void | Qrack::QEngineCPU::AntiCCNOT (bitLenInt control1, bitLenInt control2, bitLenInt target, bitLenInt length) |
Bitwise "Anti-"CCNOT - NOT operation if both control bits are 0. More... | |
virtual void | Qrack::QInterface::H (bitLenInt start, bitLenInt length) |
Bitwise Hadamard. More... | |
virtual void | Qrack::QInterface::X (bitLenInt start, bitLenInt length) |
Bitwise Pauli X (or logical "NOT") operator. More... | |
virtual void | Qrack::QInterface::Y (bitLenInt start, bitLenInt length) |
Bitwise Pauli Y operator. More... | |
virtual void | Qrack::QInterface::Z (bitLenInt start, bitLenInt length) |
Bitwise Pauli Z operator. More... | |
virtual void | Qrack::QInterface::CNOT (bitLenInt inputBits, bitLenInt targetBits, bitLenInt length) |
Bitwise controlled-not. More... | |
virtual void | Qrack::QInterface::AntiCNOT (bitLenInt inputBits, bitLenInt targetBits, bitLenInt length) |
Bitwise "anti-"controlled-not. More... | |
virtual void | Qrack::QInterface::CCNOT (bitLenInt control1, bitLenInt control2, bitLenInt target, bitLenInt length) |
Bitwise doubly controlled-not. More... | |
virtual void | Qrack::QInterface::AntiCCNOT (bitLenInt control1, bitLenInt control2, bitLenInt target, bitLenInt length) |
Bitwise doubly "anti-"controlled-not. More... | |
virtual void | Qrack::QInterface::AND (bitLenInt inputStart1, bitLenInt inputStart2, bitLenInt outputStart, bitLenInt length) |
Bitwise "AND". More... | |
virtual void | Qrack::QInterface::CLAND (bitLenInt qInputStart, bitCapInt classicalInput, bitLenInt outputStart, bitLenInt length) |
Classical bitwise "AND". More... | |
virtual void | Qrack::QInterface::OR (bitLenInt inputStart1, bitLenInt inputStart2, bitLenInt outputStart, bitLenInt length) |
Bitwise "OR". More... | |
virtual void | Qrack::QInterface::CLOR (bitLenInt qInputStart, bitCapInt classicalInput, bitLenInt outputStart, bitLenInt length) |
Classical bitwise "OR". More... | |
virtual void | Qrack::QInterface::XOR (bitLenInt inputStart1, bitLenInt inputStart2, bitLenInt outputStart, bitLenInt length) |
Bitwise "XOR". More... | |
virtual void | Qrack::QInterface::CLXOR (bitLenInt qInputStart, bitCapInt classicalInput, bitLenInt outputStart, bitLenInt length) |
Classical bitwise "XOR". More... | |
virtual void | Qrack::QInterface::RT (real1 radians, bitLenInt start, bitLenInt length) |
Bitwise phase shift gate. More... | |
virtual void | Qrack::QInterface::RTDyad (int numerator, int denomPower, bitLenInt start, bitLenInt length) |
Bitwise dyadic fraction phase shift gate. More... | |
virtual void | Qrack::QInterface::RX (real1 radians, bitLenInt start, bitLenInt length) |
Bitwise X axis rotation gate. More... | |
virtual void | Qrack::QInterface::RXDyad (int numerator, int denomPower, bitLenInt start, bitLenInt length) |
Bitwise dyadic fraction X axis rotation gate. More... | |
virtual void | Qrack::QInterface::CRX (real1 radians, bitLenInt control, bitLenInt target, bitLenInt length) |
Bitwise controlled X axis rotation gate. More... | |
virtual void | Qrack::QInterface::CRXDyad (int numerator, int denomPower, bitLenInt control, bitLenInt target, bitLenInt length) |
Bitwise controlled dyadic fraction X axis rotation gate. More... | |
virtual void | Qrack::QInterface::RY (real1 radians, bitLenInt start, bitLenInt length) |
Bitwise Y axis rotation gate. More... | |
virtual void | Qrack::QInterface::RYDyad (int numerator, int denomPower, bitLenInt start, bitLenInt length) |
Bitwise dyadic fraction Y axis rotation gate. More... | |
virtual void | Qrack::QInterface::CRY (real1 radians, bitLenInt control, bitLenInt target, bitLenInt length) |
Bitwise controlled Y axis rotation gate. More... | |
virtual void | Qrack::QInterface::CRYDyad (int numerator, int denomPower, bitLenInt control, bitLenInt target, bitLenInt length) |
Bitwise controlled dyadic fraction y axis rotation gate. More... | |
virtual void | Qrack::QInterface::RZ (real1 radians, bitLenInt start, bitLenInt length) |
Bitwise Z axis rotation gate. More... | |
virtual void | Qrack::QInterface::RZDyad (int numerator, int denomPower, bitLenInt start, bitLenInt length) |
Bitwise dyadic fraction Z axis rotation gate. More... | |
virtual void | Qrack::QInterface::CRZ (real1 radians, bitLenInt control, bitLenInt target, bitLenInt length) |
Bitwise controlled Z axis rotation gate. More... | |
virtual void | Qrack::QInterface::CRZDyad (int numerator, int denomPower, bitLenInt control, bitLenInt target, bitLenInt length) |
Bitwise controlled dyadic fraction Z axis rotation gate. More... | |
virtual void | Qrack::QInterface::CRT (real1 radians, bitLenInt control, bitLenInt target, bitLenInt length) |
Bitwise controlled "phase shift gate". More... | |
virtual void | Qrack::QInterface::CRTDyad (int numerator, int denomPower, bitLenInt control, bitLenInt target, bitLenInt length) |
Bitwise controlled dyadic fraction "phase shift gate". More... | |
virtual void | Qrack::QInterface::Exp (real1 radians, bitLenInt start, bitLenInt length) |
Bitwise (identity) exponentiation gate. More... | |
virtual void | Qrack::QInterface::ExpDyad (int numerator, int denomPower, bitLenInt start, bitLenInt length) |
Bitwise Dyadic fraction (identity) exponentiation gate. More... | |
virtual void | Qrack::QInterface::ExpX (real1 radians, bitLenInt start, bitLenInt length) |
Bitwise Pauli X exponentiation gate. More... | |
virtual void | Qrack::QInterface::ExpXDyad (int numerator, int denomPower, bitLenInt start, bitLenInt length) |
Bitwise Dyadic fraction Pauli X exponentiation gate. More... | |
virtual void | Qrack::QInterface::ExpY (real1 radians, bitLenInt start, bitLenInt length) |
Bitwise Pauli Y exponentiation gate. More... | |
virtual void | Qrack::QInterface::ExpYDyad (int numerator, int denomPower, bitLenInt start, bitLenInt length) |
Bitwise Dyadic fraction Pauli Y exponentiation gate. More... | |
virtual void | Qrack::QInterface::ExpZ (real1 radians, bitLenInt start, bitLenInt length) |
Bitwise Pauli Z exponentiation gate. More... | |
virtual void | Qrack::QInterface::ExpZDyad (int numerator, int denomPower, bitLenInt start, bitLenInt length) |
Bitwise Dyadic fraction Pauli Z exponentiation gate. More... | |
virtual void | Qrack::QInterface::CY (bitLenInt control, bitLenInt target, bitLenInt length) |
Bitwise controlled Y gate. More... | |
virtual void | Qrack::QInterface::CZ (bitLenInt control, bitLenInt target, bitLenInt length) |
Bitwise controlled Z gate. More... | |
Convienence and optimized functions implementing gates are applied from the bit 'start' for 'length' bits for the register.
|
virtual |
Bitwise "AND".
"AND" compare two bits in QInterface, and store result in outputBit
"AND" registers at "inputStart1" and "inputStart2," of "length" bits, placing the result in "outputStart".
Reimplemented in Qrack::QEngineOCLMulti, and Qrack::QUnit.
|
virtual |
Bitwise "Anti-"CCNOT - NOT operation if both control bits are 0.
Reimplemented from Qrack::QInterface.
|
virtual |
Bitwise doubly "anti-"controlled-not.
Reimplemented in Qrack::QEngineOCLMulti, and Qrack::QEngineCPU.
Bitwise "Anti-"CNOT - NOT operation if control is 0.
Reimplemented from Qrack::QInterface.
|
virtual |
Bitwise "anti-"controlled-not.
Reimplemented in Qrack::QEngineOCLMulti, and Qrack::QEngineCPU.
|
virtual |
Bitwise CCNOT.
Reimplemented from Qrack::QInterface.
|
virtual |
Bitwise doubly controlled-not.
Reimplemented in Qrack::QEngineOCLMulti, and Qrack::QEngineCPU.
|
virtual |
Classical bitwise "AND".
"AND" compare a bit range in QInterface with a classical unsigned integer, and store result in range starting at output
"AND" registers at "inputStart1" and the classic bits of "classicalInput," of "length" bits, placing the result in "outputStart".
Reimplemented in Qrack::QUnit.
|
virtual |
Classical bitwise "OR".
"OR" compare a bit range in QInterface with a classical unsigned integer, and store result in range starting at output
Reimplemented in Qrack::QUnit.
|
virtual |
Classical bitwise "XOR".
"XOR" compare a bit range in QInterface with a classical unsigned integer, and store result in range starting at output
Reimplemented in Qrack::QUnit.
Bitwise CNOT.
Reimplemented from Qrack::QInterface.
|
virtual |
Bitwise controlled-not.
Reimplemented in Qrack::QEngineOCLMulti, and Qrack::QEngineCPU.
|
virtual |
Bitwise controlled "phase shift gate".
Controlled "phase shift gate".
If control bit is set to 1, rotates target bit as around |1> state.
|
virtual |
Bitwise controlled dyadic fraction "phase shift gate".
Controlled dyadic fraction "phase shift gate".
If control bit is set to 1, rotates target bit as around |1> state.
|
virtual |
Bitwise controlled X axis rotation gate.
Controlled x axis rotation.
If "control" is 1, rotates as on Pauli x axis.
|
virtual |
Bitwise controlled dyadic fraction X axis rotation gate.
Controlled dyadic fraction x axis rotation gate - for each bit, if control bit is true, rotates target bit as as e^(i*(M_PI * numerator) / denominator) around Pauli x axis.
If "control" is 1, rotates as around Pauli x axis.
|
virtual |
Bitwise controlled Y axis rotation gate.
Controlled y axis rotation.
If "control" is set to 1, rotates as around Pauli Y axis.
|
virtual |
Bitwise controlled dyadic fraction y axis rotation gate.
Controlled dyadic fraction y axis rotation gate - for each bit, if control bit is true, rotates target bit as e^(i*(M_PI * numerator) / denominator) around Pauli y axis.
If "control" is set to 1, rotates as around Pauli Y axis.
|
virtual |
Bitwise controlled Z axis rotation gate.
Controlled z axis rotation.
If "control" is set to 1, rotates as around Pauli Zaxis.
|
virtual |
Bitwise controlled dyadic fraction Z axis rotation gate.
Controlled dyadic fraction z axis rotation gate - for each bit, if control bit is true, rotates target bit as e^(i*(M_PI * numerator) / denominator) around Pauli z axis.
If "control" is set to 1, rotates as around Pauli Z axis.
Bitwise controlled Y gate.
Apply controlled Pauli Y matrix to each bit.
If the "control" bit is set to 1, then the Pauli "Y" operator is applied to "target."
Bitwise controlled Z gate.
Apply controlled Pauli Z matrix to each bit.
If the "control" bit is set to 1, then the Pauli "Z" operator is applied to "target."
Bitwise (identity) exponentiation gate.
Bitwise (identity) exponentiation gate - Applies , exponentiation of the identity operator.
Applies , exponentiation of the identity operator
|
virtual |
Bitwise Dyadic fraction (identity) exponentiation gate.
Dyadic fraction (identity) exponentiation gate - Applies , exponentiation of the identity operator.
Applies , exponentiation of the identity operator
NOTE THAT DYADIC OPERATION ANGLE SIGN IS REVERSED FROM RADIAN ROTATION OPERATORS AND LACKS DIVISION BY A FACTOR OF TWO.
Bitwise Pauli X exponentiation gate.
Bitwise Pauli X exponentiation gate - Applies , exponentiation of the Pauli X operator.
Applies , exponentiation of the Pauli X operator
|
virtual |
Bitwise Dyadic fraction Pauli X exponentiation gate.
Dyadic fraction Pauli X exponentiation gate - Applies , exponentiation of the Pauli X operator.
Applies , exponentiation of the Pauli X operator
NOTE THAT DYADIC OPERATION ANGLE SIGN IS REVERSED FROM RADIAN ROTATION OPERATORS AND LACKS DIVISION BY A FACTOR OF TWO.
Bitwise Pauli Y exponentiation gate.
Bitwise Pauli Y exponentiation gate - Applies , exponentiation of the Pauli Y operator.
Applies , exponentiation of the Pauli Y operator
|
virtual |
Bitwise Dyadic fraction Pauli Y exponentiation gate.
Dyadic fraction Pauli Y exponentiation gate - Applies , exponentiation of the Pauli Y operator.
Applies , exponentiation of the Pauli Y operator
NOTE THAT DYADIC OPERATION ANGLE SIGN IS REVERSED FROM RADIAN ROTATION OPERATORS AND LACKS DIVISION BY A FACTOR OF TWO.
Bitwise Pauli Z exponentiation gate.
Bitwise Pauli Z exponentiation gate - Applies , exponentiation of the Pauli Z operator.
Applies , exponentiation of the Pauli Z operator
|
virtual |
Bitwise Dyadic fraction Pauli Z exponentiation gate.
Dyadic fraction Pauli Z exponentiation gate - Applies , exponentiation of the Pauli Z operator.
Applies , exponentiation of the Pauli Z operator
NOTE THAT DYADIC OPERATION ANGLE SIGN IS REVERSED FROM RADIAN ROTATION OPERATORS AND LACKS DIVISION BY A FACTOR OF TWO.
Bitwise Hadamard.
Apply Hadamard gate to each bit in "length," starting from bit index "start".
|
virtual |
Bitwise "OR".
"OR" compare two bits in QInterface, and store result in outputBit
Reimplemented in Qrack::QEngineOCLMulti, and Qrack::QUnit.
Bitwise phase shift gate.
"Phase shift gate" - Rotates each bit as e^(-i*/2) around |1> state
Rotates as around |1> state
|
virtual |
Bitwise dyadic fraction phase shift gate.
Dyadic fraction "phase shift gate" - Rotates each bit as e^(i*(M_PI * numerator) / denominator) around |1> state.
Rotates as around |1> state.
NOTE THAT DYADIC OPERATION ANGLE SIGN IS REVERSED FROM RADIAN ROTATION OPERATORS AND LACKS DIVISION BY A FACTOR OF TWO.
Bitwise X axis rotation gate.
x axis rotation gate - Rotates each bit as e^(-i*/2) around Pauli x axis
Rotates as around Pauli X axis
|
virtual |
Bitwise dyadic fraction X axis rotation gate.
Dyadic fraction x axis rotation gate - Rotates each bit as e^(i*(M_PI * numerator) / denominator) around Pauli x axis.
Rotates on Pauli x axis.
NOTE THAT DYADIC OPERATION ANGLE SIGN IS REVERSED FROM RADIAN ROTATION OPERATORS AND LACKS DIVISION BY A FACTOR OF TWO.
Bitwise Y axis rotation gate.
y axis rotation gate - Rotates each bit as e^(-i*/2) around Pauli y axis
Rotates as around Pauli y axis.
|
virtual |
Bitwise dyadic fraction Y axis rotation gate.
Dyadic fraction y axis rotation gate - Rotates each bit as e^(i*(M_PI * numerator) / denominator) around Pauli y axis.
Rotates as around Pauli Y axis.
NOTE THAT DYADIC OPERATION ANGLE SIGN IS REVERSED FROM RADIAN ROTATION OPERATORS AND LACKS DIVISION BY A FACTOR OF TWO.
Bitwise Z axis rotation gate.
z axis rotation gate - Rotates each bit as e^(-i*/2) around Pauli z axis
Rotates as around Pauli Z axis.
|
virtual |
Bitwise dyadic fraction Z axis rotation gate.
Dyadic fraction z axis rotation gate - Rotates each bit as e^(i*(M_PI * numerator) / denominator) around Pauli y axis.
Rotates as around Pauli Z axis.
NOTE THAT DYADIC OPERATION ANGLE SIGN IS REVERSED FROM RADIAN ROTATION OPERATORS AND LACKS DIVISION BY A FACTOR OF TWO.
Bitwise Pauli X (or logical "NOT") operator.
Reimplemented from Qrack::QInterface.
Bitwise Pauli X (or logical "NOT") operator.
Reimplemented in Qrack::QEngineOCLMulti, Qrack::QEngineOCL, and Qrack::QEngineCPU.
|
virtual |
Bitwise "XOR".
"XOR" compare two bits in QInterface, and store result in outputBit
Reimplemented in Qrack::QEngineOCLMulti, and Qrack::QUnit.
Bitwise Pauli Y operator.
Apply Pauli Y matrix to each bit.