The Quantum Exact Simulation Toolkit v4.1.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 557 of file operations.cpp.

557 {
558 validate_quregFields(qureg, __func__);
559 validate_matrixFields(matrix, __func__);
560 validate_matrixAndQuregAreCompatible(matrix, qureg, false, __func__);
561 validate_matrixIsUnitary(matrix, __func__);
562
563 applyFullStateDiagMatrPower(qureg, matrix, 1); // harmlessly re-validates
564}
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!
See also

Definition at line 566 of file operations.cpp.

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

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!
See also

Definition at line 537 of file operations.cpp.

537 {
538 validate_quregFields(qureg, __func__);
539 validate_matrixFields(matrix, __func__);
540 validate_matrixAndQuregAreCompatible(matrix, qureg, false, __func__); // matrix can be non-unitary
541
542 multiplyFullStateDiagMatrPower(qureg, matrix, 1); // harmlessly re-validates
543}
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!
See also

Definition at line 545 of file operations.cpp.

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

Referenced by multiplyFullStateDiagMatr(), and TEST_CASE().