The Quantum Exact Simulation Toolkit v4.3.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!

Definition at line 1575 of file operations.cpp.

1575 {
1576 validate_quregFields(qureg, __func__);
1577 validate_targets(qureg, qubits, numQubits, __func__);
1578 validate_measurementOutcomesAreValid(outcomes, numQubits, __func__);
1579
1580 qreal prob = 1;
1581 auto qubitList = lists_getList64(qubits, numQubits);
1582 auto outcomeList = lists_getList64(outcomes, numQubits);
1583
1584 // density matrix has an optimised func in lieu of calling the statevector func twice
1585 (qureg.isDensityMatrix)?
1586 localiser_densmatr_multiQubitProjector(qureg, qubitList, outcomeList, prob):
1587 localiser_statevec_multiQubitProjector(qureg, qubitList, outcomeList, prob);
1588}

Referenced by applyMultiQubitProjector().

◆ applyQubitProjector()

void applyQubitProjector ( Qureg qureg,
int target,
int outcome )
Note
Documentation for this function or struct is under construction!

Definition at line 1559 of file operations.cpp.

1559 {
1560 validate_quregFields(qureg, __func__);
1561 validate_target(qureg, target, __func__);
1562 validate_measurementOutcomeIsValid(outcome, __func__);
1563
1564 qreal prob = 1;
1565
1566 auto targList = lists_getList64({target});
1567 auto outcomeList = lists_getList64({outcome});
1568
1569 // density matrix has an optimised func in lieu of calling the statevector func twice
1570 (qureg.isDensityMatrix)?
1571 localiser_densmatr_multiQubitProjector(qureg, targList, outcomeList, prob):
1572 localiser_statevec_multiQubitProjector(qureg, targList, outcomeList, prob);
1573}