The Quantum Exact Simulation Toolkit v4.1.0
Loading...
Searching...
No Matches

Functions for effecting projectors which break the state normalisation. More...

Functions

void applyMultiQubitProjector (Qureg qureg, int *qubits, int *outcomes, int numQubits)
 
void applyQubitProjector (Qureg qureg, int target, int outcome)
 

Detailed Description

Functions for effecting projectors which break the state normalisation.

Function Documentation

◆ applyMultiQubitProjector()

void applyMultiQubitProjector ( Qureg qureg,
int * qubits,
int * outcomes,
int numQubits )
Note
Documentation for this function or struct is under construction!
Attention
This function's input validation has not yet been unit tested, so erroneous usage may produce unexpected output. Please use with caution!

Definition at line 1766 of file operations.cpp.

1766 {
1767 validate_quregFields(qureg, __func__);
1768 validate_targets(qureg, qubits, numQubits, __func__);
1769 validate_measurementOutcomesAreValid(outcomes, numQubits, __func__);
1770
1771 qreal prob = 1;
1772 auto qubitVec = util_getVector(qubits, numQubits);
1773 auto outcomeVec = util_getVector(outcomes, numQubits);
1774
1775 (qureg.isDensityMatrix)?
1776 localiser_densmatr_multiQubitProjector(qureg, qubitVec, outcomeVec, prob):
1777 localiser_statevec_multiQubitProjector(qureg, qubitVec, outcomeVec, prob);
1778}

Referenced by applyMultiQubitProjector(), and TEST_CASE().

◆ applyQubitProjector()

void applyQubitProjector ( Qureg qureg,
int target,
int outcome )
Note
Documentation for this function or struct is under construction!
Attention
This function's input validation has not yet been unit tested, so erroneous usage may produce unexpected output. Please use with caution!

Definition at line 1754 of file operations.cpp.

1754 {
1755 validate_quregFields(qureg, __func__);
1756 validate_target(qureg, target, __func__);
1757 validate_measurementOutcomeIsValid(outcome, __func__);
1758
1759 // we permit the outcome to be negligibly likely, leaving state = null
1760 qreal prob = 1;
1761 (qureg.isDensityMatrix)?
1762 localiser_densmatr_multiQubitProjector(qureg, {target}, {outcome}, prob):
1763 localiser_statevec_multiQubitProjector(qureg, {target}, {outcome}, prob);
1764}

Referenced by TEST_CASE().