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

Functions for pre- or post-multiplying the individual one-qubit Pauli operators upon density matrices. More...

Functions

void leftapplyPauliX (Qureg qureg, int target)
 
void leftapplyPauliY (Qureg qureg, int target)
 
void leftapplyPauliZ (Qureg qureg, int target)
 
void rightapplyPauliX (Qureg qureg, int target)
 
void rightapplyPauliY (Qureg qureg, int target)
 
void rightapplyPauliZ (Qureg qureg, int target)
 

Detailed Description

Functions for pre- or post-multiplying the individual one-qubit Pauli operators upon density matrices.

Function Documentation

◆ leftapplyPauliX()

void leftapplyPauliX ( Qureg qureg,
int target )
Note
Documentation for this function or struct is under construction!
See also

Definition at line 385 of file multiplication.cpp.

385 {
386 validate_quregFields(qureg, __func__);
387 validate_target(qureg, target, __func__);
388
389 PauliStr str = getPauliStr("X", {target});
390 localiser_statevec_anyCtrlPauliTensor(qureg, none, none, str);
391}
PauliStr getPauliStr(const char *paulis, int *indices, int numPaulis)
Definition paulis.cpp:76

◆ leftapplyPauliY()

void leftapplyPauliY ( Qureg qureg,
int target )
Note
Documentation for this function or struct is under construction!
See also

Definition at line 393 of file multiplication.cpp.

393 {
394 validate_quregFields(qureg, __func__);
395 validate_target(qureg, target, __func__);
396
397 PauliStr str = getPauliStr("Y", {target});
398 localiser_statevec_anyCtrlPauliTensor(qureg, none, none, str);
399}

◆ leftapplyPauliZ()

void leftapplyPauliZ ( Qureg qureg,
int target )
Note
Documentation for this function or struct is under construction!
See also

Definition at line 401 of file multiplication.cpp.

401 {
402 validate_quregFields(qureg, __func__);
403 validate_target(qureg, target, __func__);
404
405 PauliStr str = getPauliStr("Z", {target});
406 localiser_statevec_anyCtrlPauliTensor(qureg, none, none, str);
407}

◆ rightapplyPauliX()

void rightapplyPauliX ( Qureg qureg,
int target )
Note
Documentation for this function or struct is under construction!
See also

Definition at line 409 of file multiplication.cpp.

409 {
410 validate_quregFields(qureg, __func__);
411 validate_quregIsDensityMatrix(qureg, __func__);
412 validate_target(qureg, target, __func__);
413
414 PauliStr str = getPauliStr("X", {target});
415 str = paulis_getShiftedPauliStr(str, qureg.numQubits);
416 localiser_statevec_anyCtrlPauliTensor(qureg, none, none, str);
417}

◆ rightapplyPauliY()

void rightapplyPauliY ( Qureg qureg,
int target )
Note
Documentation for this function or struct is under construction!
See also

Definition at line 419 of file multiplication.cpp.

419 {
420 validate_quregFields(qureg, __func__);
421 validate_quregIsDensityMatrix(qureg, __func__);
422 validate_target(qureg, target, __func__);
423
424 qcomp factor = -1; // undo transpose
425 PauliStr str = getPauliStr("Y", {target});
426 str = paulis_getShiftedPauliStr(str, qureg.numQubits);
427 localiser_statevec_anyCtrlPauliTensor(qureg, none, none, str, factor);
428}

◆ rightapplyPauliZ()

void rightapplyPauliZ ( Qureg qureg,
int target )
Note
Documentation for this function or struct is under construction!
See also

Definition at line 430 of file multiplication.cpp.

430 {
431 validate_quregFields(qureg, __func__);
432 validate_quregIsDensityMatrix(qureg, __func__);
433 validate_target(qureg, target, __func__);
434
435 PauliStr str = getPauliStr("Z", {target});
436 str = paulis_getShiftedPauliStr(str, qureg.numQubits);
437 localiser_statevec_anyCtrlPauliTensor(qureg, none, none, str);
438}