Qrack  1.7
General classical-emulating-quantum development framework
Functions
Register-spanning gates

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...
 

Detailed Description

Convienence and optimized functions implementing gates are applied from the bit 'start' for 'length' bits for the register.

Function Documentation

void Qrack::QInterface::AND ( bitLenInt  inputStart1,
bitLenInt  inputStart2,
bitLenInt  outputStart,
bitLenInt  length 
)
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.

void Qrack::QEngineCPU::AntiCCNOT ( bitLenInt  control1,
bitLenInt  control2,
bitLenInt  target,
bitLenInt  length 
)
virtual

Bitwise "Anti-"CCNOT - NOT operation if both control bits are 0.

Reimplemented from Qrack::QInterface.

void Qrack::QInterface::AntiCCNOT ( bitLenInt  control1,
bitLenInt  control2,
bitLenInt  target,
bitLenInt  length 
)
virtual

Bitwise doubly "anti-"controlled-not.

Reimplemented in Qrack::QEngineOCLMulti, and Qrack::QEngineCPU.

void Qrack::QEngineCPU::AntiCNOT ( bitLenInt  control,
bitLenInt  target,
bitLenInt  length 
)
virtual

Bitwise "Anti-"CNOT - NOT operation if control is 0.

Reimplemented from Qrack::QInterface.

void Qrack::QInterface::AntiCNOT ( bitLenInt  inputBits,
bitLenInt  targetBits,
bitLenInt  length 
)
virtual

Bitwise "anti-"controlled-not.

Reimplemented in Qrack::QEngineOCLMulti, and Qrack::QEngineCPU.

void Qrack::QEngineCPU::CCNOT ( bitLenInt  control1,
bitLenInt  control2,
bitLenInt  target,
bitLenInt  length 
)
virtual

Bitwise CCNOT.

Reimplemented from Qrack::QInterface.

void Qrack::QInterface::CCNOT ( bitLenInt  control1,
bitLenInt  control2,
bitLenInt  target,
bitLenInt  length 
)
virtual

Bitwise doubly controlled-not.

Reimplemented in Qrack::QEngineOCLMulti, and Qrack::QEngineCPU.

void Qrack::QInterface::CLAND ( bitLenInt  qInputStart,
bitCapInt  classicalInput,
bitLenInt  outputStart,
bitLenInt  length 
)
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.

void Qrack::QInterface::CLOR ( bitLenInt  qInputStart,
bitCapInt  classicalInput,
bitLenInt  outputStart,
bitLenInt  length 
)
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.

void Qrack::QInterface::CLXOR ( bitLenInt  qInputStart,
bitCapInt  classicalInput,
bitLenInt  outputStart,
bitLenInt  length 
)
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.

void Qrack::QEngineCPU::CNOT ( bitLenInt  control,
bitLenInt  target,
bitLenInt  length 
)
virtual

Bitwise CNOT.

Reimplemented from Qrack::QInterface.

void Qrack::QInterface::CNOT ( bitLenInt  inputBits,
bitLenInt  targetBits,
bitLenInt  length 
)
virtual

Bitwise controlled-not.

Reimplemented in Qrack::QEngineOCLMulti, and Qrack::QEngineCPU.

void Qrack::QInterface::CRT ( real1  radians,
bitLenInt  control,
bitLenInt  target,
bitLenInt  length 
)
virtual

Bitwise controlled "phase shift gate".

Controlled "phase shift gate".

If control bit is set to 1, rotates target bit as $ e^{-i*\theta/2} $ around |1> state.

void Qrack::QInterface::CRTDyad ( int  numerator,
int  denomPower,
bitLenInt  control,
bitLenInt  target,
bitLenInt  length 
)
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 $ e^{i*{\pi * numerator} / 2^denomPower} $ around |1> state.

void Qrack::QInterface::CRX ( real1  radians,
bitLenInt  control,
bitLenInt  target,
bitLenInt  length 
)
virtual

Bitwise controlled X axis rotation gate.

Controlled x axis rotation.

If "control" is 1, rotates as $ e^{-i*\theta/2} $ on Pauli x axis.

void Qrack::QInterface::CRXDyad ( int  numerator,
int  denomPower,
bitLenInt  control,
bitLenInt  target,
bitLenInt  length 
)
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 $ e^{i*{\pi * numerator} / 2^denomPower} $ around Pauli x axis.

void Qrack::QInterface::CRY ( real1  radians,
bitLenInt  control,
bitLenInt  target,
bitLenInt  length 
)
virtual

Bitwise controlled Y axis rotation gate.

Controlled y axis rotation.

If "control" is set to 1, rotates as $ e^{-i*\theta/2} $ around Pauli Y axis.

void Qrack::QInterface::CRYDyad ( int  numerator,
int  denomPower,
bitLenInt  control,
bitLenInt  target,
bitLenInt  length 
)
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 $ e^{i*{\pi * numerator} / 2^denomPower} $ around Pauli Y axis.

void Qrack::QInterface::CRZ ( real1  radians,
bitLenInt  control,
bitLenInt  target,
bitLenInt  length 
)
virtual

Bitwise controlled Z axis rotation gate.

Controlled z axis rotation.

If "control" is set to 1, rotates as $ e^{-i*\theta/2} $ around Pauli Zaxis.

void Qrack::QInterface::CRZDyad ( int  numerator,
int  denomPower,
bitLenInt  control,
bitLenInt  target,
bitLenInt  length 
)
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 $ e^{i*{\pi * numerator} / 2^denomPower} $ around Pauli Z axis.

void Qrack::QInterface::CY ( bitLenInt  control,
bitLenInt  target,
bitLenInt  length 
)
virtual

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."

void Qrack::QInterface::CZ ( bitLenInt  control,
bitLenInt  target,
bitLenInt  length 
)
virtual

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."

void Qrack::QInterface::Exp ( real1  radians,
bitLenInt  start,
bitLenInt  length 
)
virtual

Bitwise (identity) exponentiation gate.

Bitwise (identity) exponentiation gate - Applies $ e^{-i*\theta*I} $, exponentiation of the identity operator.

Applies $ e^{-i*\theta*I} $, exponentiation of the identity operator

void Qrack::QInterface::ExpDyad ( int  numerator,
int  denominator,
bitLenInt  start,
bitLenInt  length 
)
virtual

Bitwise Dyadic fraction (identity) exponentiation gate.

Dyadic fraction (identity) exponentiation gate - Applies $ e^{-i * \pi * numerator * I / 2^denomPower} $, exponentiation of the identity operator.

Applies $ e^{-i * \pi * numerator * I / 2^denomPower} $, 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.

void Qrack::QInterface::ExpX ( real1  radians,
bitLenInt  start,
bitLenInt  length 
)
virtual

Bitwise Pauli X exponentiation gate.

Bitwise Pauli X exponentiation gate - Applies $ e^{-i*\theta*\sigma_x} $, exponentiation of the Pauli X operator.

Applies $ e^{-i*\theta*\sigma_x} $, exponentiation of the Pauli X operator

void Qrack::QInterface::ExpXDyad ( int  numerator,
int  denominator,
bitLenInt  start,
bitLenInt  length 
)
virtual

Bitwise Dyadic fraction Pauli X exponentiation gate.

Dyadic fraction Pauli X exponentiation gate - Applies $ e^{-i * \pi * numerator *\sigma_x / 2^denomPower} $, exponentiation of the Pauli X operator.

Applies $ e^{-i * \pi * numerator * \sigma_x / 2^denomPower} $, 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.

void Qrack::QInterface::ExpY ( real1  radians,
bitLenInt  start,
bitLenInt  length 
)
virtual

Bitwise Pauli Y exponentiation gate.

Bitwise Pauli Y exponentiation gate - Applies $ e^{-i*\theta*\sigma_y} $, exponentiation of the Pauli Y operator.

Applies $ e^{-i*\theta*\sigma_y} $, exponentiation of the Pauli Y operator

void Qrack::QInterface::ExpYDyad ( int  numerator,
int  denominator,
bitLenInt  start,
bitLenInt  length 
)
virtual

Bitwise Dyadic fraction Pauli Y exponentiation gate.

Dyadic fraction Pauli Y exponentiation gate - Applies $ e^{-i * \pi * numerator *\sigma_y / 2^denomPower} $, exponentiation of the Pauli Y operator.

Applies $ e^{-i * \pi * numerator * \sigma_y / 2^denomPower} $, 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.

void Qrack::QInterface::ExpZ ( real1  radians,
bitLenInt  start,
bitLenInt  length 
)
virtual

Bitwise Pauli Z exponentiation gate.

Bitwise Pauli Z exponentiation gate - Applies $ e^{-i*\theta*\sigma_z} $, exponentiation of the Pauli Z operator.

Applies $ e^{-i*\theta*\sigma_z} $, exponentiation of the Pauli Z operator

void Qrack::QInterface::ExpZDyad ( int  numerator,
int  denominator,
bitLenInt  start,
bitLenInt  length 
)
virtual

Bitwise Dyadic fraction Pauli Z exponentiation gate.

Dyadic fraction Pauli Z exponentiation gate - Applies $ e^{-i * \pi * numerator *\sigma_z / 2^denomPower} $, exponentiation of the Pauli Z operator.

Applies $ e^{-i * \pi * numerator * \sigma_z / 2^denomPower} $, 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.

void Qrack::QInterface::H ( bitLenInt  start,
bitLenInt  length 
)
virtual

Bitwise Hadamard.

Apply Hadamard gate to each bit in "length," starting from bit index "start".

void Qrack::QInterface::OR ( bitLenInt  inputStart1,
bitLenInt  inputStart2,
bitLenInt  outputStart,
bitLenInt  length 
)
virtual

Bitwise "OR".

"OR" compare two bits in QInterface, and store result in outputBit

Reimplemented in Qrack::QEngineOCLMulti, and Qrack::QUnit.

void Qrack::QInterface::RT ( real1  radians,
bitLenInt  start,
bitLenInt  length 
)
virtual

Bitwise phase shift gate.

"Phase shift gate" - Rotates each bit as e^(-i*/2) around |1> state

Rotates as $ e^{-i*\theta/2} $ around |1> state

void Qrack::QInterface::RTDyad ( int  numerator,
int  denominator,
bitLenInt  start,
bitLenInt  length 
)
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 $ e^{i*{\pi * numerator} / 2^denomPower} $ around |1> state.

NOTE THAT DYADIC OPERATION ANGLE SIGN IS REVERSED FROM RADIAN ROTATION OPERATORS AND LACKS DIVISION BY A FACTOR OF TWO.

void Qrack::QInterface::RX ( real1  radians,
bitLenInt  start,
bitLenInt  length 
)
virtual

Bitwise X axis rotation gate.

x axis rotation gate - Rotates each bit as e^(-i*/2) around Pauli x axis

Rotates as $ e^{-i*\theta/2} $ around Pauli X axis

void Qrack::QInterface::RXDyad ( int  numerator,
int  denominator,
bitLenInt  start,
bitLenInt  length 
)
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 $ e^{i*{\pi * numerator} / 2^denomPower} $ on Pauli x axis.

NOTE THAT DYADIC OPERATION ANGLE SIGN IS REVERSED FROM RADIAN ROTATION OPERATORS AND LACKS DIVISION BY A FACTOR OF TWO.

void Qrack::QInterface::RY ( real1  radians,
bitLenInt  start,
bitLenInt  length 
)
virtual

Bitwise Y axis rotation gate.

y axis rotation gate - Rotates each bit as e^(-i*/2) around Pauli y axis

Rotates as $ e^{-i*\theta/2} $ around Pauli y axis.

void Qrack::QInterface::RYDyad ( int  numerator,
int  denominator,
bitLenInt  start,
bitLenInt  length 
)
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 $ e^{i*{\pi * numerator} / 2^denomPower} $ around Pauli Y axis.

NOTE THAT DYADIC OPERATION ANGLE SIGN IS REVERSED FROM RADIAN ROTATION OPERATORS AND LACKS DIVISION BY A FACTOR OF TWO.

void Qrack::QInterface::RZ ( real1  radians,
bitLenInt  start,
bitLenInt  length 
)
virtual

Bitwise Z axis rotation gate.

z axis rotation gate - Rotates each bit as e^(-i*/2) around Pauli z axis

Rotates as $ e^{-i*\theta/2} $ around Pauli Z axis.

void Qrack::QInterface::RZDyad ( int  numerator,
int  denominator,
bitLenInt  start,
bitLenInt  length 
)
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 $ e^{i*{\pi * numerator} / 2^denomPower} $ around Pauli Z axis.

NOTE THAT DYADIC OPERATION ANGLE SIGN IS REVERSED FROM RADIAN ROTATION OPERATORS AND LACKS DIVISION BY A FACTOR OF TWO.

void Qrack::QEngineCPU::X ( bitLenInt  start,
bitLenInt  length 
)
virtual

Bitwise Pauli X (or logical "NOT") operator.

Reimplemented from Qrack::QInterface.

void Qrack::QInterface::X ( bitLenInt  start,
bitLenInt  length 
)
virtual

Bitwise Pauli X (or logical "NOT") operator.

Reimplemented in Qrack::QEngineOCLMulti, Qrack::QEngineOCL, and Qrack::QEngineCPU.

void Qrack::QInterface::XOR ( bitLenInt  inputStart1,
bitLenInt  inputStart2,
bitLenInt  outputStart,
bitLenInt  length 
)
virtual

Bitwise "XOR".

"XOR" compare two bits in QInterface, and store result in outputBit

Reimplemented in Qrack::QEngineOCLMulti, and Qrack::QUnit.

void Qrack::QInterface::Y ( bitLenInt  start,
bitLenInt  length 
)
virtual

Bitwise Pauli Y operator.

Apply Pauli Y matrix to each bit.

void Qrack::QInterface::Z ( bitLenInt  start,
bitLenInt  length 
)
virtual

Bitwise Pauli Z operator.

Apply Pauli Z matrix to each bit.