The Quantum Exact Simulation Toolkit v4.2.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 376 of file multiplication.cpp.

376 {
377 validate_quregFields(qureg, __func__);
378 validate_target(qureg, target, __func__);
379
380 PauliStr str = getPauliStr("X", {target});
381 localiser_statevec_anyCtrlPauliTensor(qureg, {}, {}, str);
382}
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 384 of file multiplication.cpp.

384 {
385 validate_quregFields(qureg, __func__);
386 validate_target(qureg, target, __func__);
387
388 PauliStr str = getPauliStr("Y", {target});
389 localiser_statevec_anyCtrlPauliTensor(qureg, {}, {}, str);
390}

◆ leftapplyPauliZ()

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

Definition at line 392 of file multiplication.cpp.

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

◆ rightapplyPauliX()

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

Definition at line 400 of file multiplication.cpp.

400 {
401 validate_quregFields(qureg, __func__);
402 validate_quregIsDensityMatrix(qureg, __func__);
403 validate_target(qureg, target, __func__);
404
405 PauliStr str = getPauliStr("X", {target});
406 str = paulis_getShiftedPauliStr(str, qureg.numQubits);
407 localiser_statevec_anyCtrlPauliTensor(qureg, {}, {}, str);
408}

◆ rightapplyPauliY()

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

Definition at line 410 of file multiplication.cpp.

410 {
411 validate_quregFields(qureg, __func__);
412 validate_quregIsDensityMatrix(qureg, __func__);
413 validate_target(qureg, target, __func__);
414
415 qcomp factor = -1; // undo transpose
416 PauliStr str = getPauliStr("Y", {target});
417 str = paulis_getShiftedPauliStr(str, qureg.numQubits);
418 localiser_statevec_anyCtrlPauliTensor(qureg, {}, {}, str, factor);
419}

◆ rightapplyPauliZ()

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

Definition at line 421 of file multiplication.cpp.

421 {
422 validate_quregFields(qureg, __func__);
423 validate_quregIsDensityMatrix(qureg, __func__);
424 validate_target(qureg, target, __func__);
425
426 PauliStr str = getPauliStr("Z", {target});
427 str = paulis_getShiftedPauliStr(str, qureg.numQubits);
428 localiser_statevec_anyCtrlPauliTensor(qureg, {}, {}, str);
429}