The Quantum Exact Simulation Toolkit v4.0.0
Loading...
Searching...
No Matches
FullStateDiagMatr

Functions for applying general all-qubit diagonal matrices, as FullStateDiagMatr. More...

Functions

void applyFullStateDiagMatr (Qureg qureg, FullStateDiagMatr matrix)
 
void applyFullStateDiagMatrPower (Qureg qureg, FullStateDiagMatr matrix, qcomp exponent)
 
void multiplyFullStateDiagMatr (Qureg qureg, FullStateDiagMatr matrix)
 
void multiplyFullStateDiagMatrPower (Qureg qureg, FullStateDiagMatr matrix, qcomp exponent)
 

Detailed Description

Functions for applying general all-qubit diagonal matrices, as FullStateDiagMatr.

Function Documentation

◆ applyFullStateDiagMatr()

void applyFullStateDiagMatr ( Qureg qureg,
FullStateDiagMatr matrix )
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 556 of file operations.cpp.

556 {
557 validate_quregFields(qureg, __func__);
558 validate_matrixFields(matrix, __func__);
559 validate_matrixAndQuregAreCompatible(matrix, qureg, false, __func__);
560 validate_matrixIsUnitary(matrix, __func__);
561
562 applyFullStateDiagMatrPower(qureg, matrix, 1); // harmlessly re-validates
563}
void applyFullStateDiagMatrPower(Qureg qureg, FullStateDiagMatr matrix, qcomp exponent)

Referenced by TEST_CASE().

◆ applyFullStateDiagMatrPower()

void applyFullStateDiagMatrPower ( Qureg qureg,
FullStateDiagMatr matrix,
qcomp exponent )
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 565 of file operations.cpp.

565 {
566 validate_quregFields(qureg, __func__);
567 validate_matrixFields(matrix, __func__);
568 validate_matrixAndQuregAreCompatible(matrix, qureg, false, __func__);
569 validate_matrixIsUnitary(matrix, __func__);
570 validate_unitaryExponentIsReal(exponent, __func__);
571 validate_matrixExpIsNonDiverging(matrix, exponent, __func__);
572
573 bool onlyMultiply = false;
574 (qureg.isDensityMatrix)?
575 localiser_densmatr_allTargDiagMatr(qureg, matrix, exponent, onlyMultiply):
576 localiser_statevec_allTargDiagMatr(qureg, matrix, exponent);
577}

Referenced by applyFullStateDiagMatr(), and TEST_CASE().

◆ multiplyFullStateDiagMatr()

void multiplyFullStateDiagMatr ( Qureg qureg,
FullStateDiagMatr matrix )
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 536 of file operations.cpp.

536 {
537 validate_quregFields(qureg, __func__);
538 validate_matrixFields(matrix, __func__);
539 validate_matrixAndQuregAreCompatible(matrix, qureg, false, __func__); // matrix can be non-unitary
540
541 multiplyFullStateDiagMatrPower(qureg, matrix, 1); // harmlessly re-validates
542}
void multiplyFullStateDiagMatrPower(Qureg qureg, FullStateDiagMatr matrix, qcomp exponent)

Referenced by TEST_CASE().

◆ multiplyFullStateDiagMatrPower()

void multiplyFullStateDiagMatrPower ( Qureg qureg,
FullStateDiagMatr matrix,
qcomp exponent )
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 544 of file operations.cpp.

544 {
545 validate_quregFields(qureg, __func__);
546 validate_matrixFields(matrix, __func__);
547 validate_matrixAndQuregAreCompatible(matrix, qureg, false, __func__); // matrix can be non-unitary
548 validate_matrixExpIsNonDiverging(matrix, exponent, __func__);
549
550 bool onlyMultiply = true;
551 (qureg.isDensityMatrix)?
552 localiser_densmatr_allTargDiagMatr(qureg, matrix, exponent, onlyMultiply):
553 localiser_statevec_allTargDiagMatr(qureg, matrix, exponent);
554}

Referenced by multiplyFullStateDiagMatr(), and TEST_CASE().