QuEST_validation.h
Go to the documentation of this file.
1 // Distributed under MIT licence. See https://github.com/QuEST-Kit/QuEST/blob/master/LICENCE.txt for details
2 
11 # ifndef QUEST_VALIDATION_H
12 # define QUEST_VALIDATION_H
13 
14 # include "QuEST.h"
15 
16 # ifdef __cplusplus
17 extern "C" {
18 # endif
19 
20 void validateNumRanks(int numRanks, const char* caller);
21 
22 void validateNumQubitsInQureg(int numQubits, int numRanks, const char* caller);
23 
24 void validateNumQubitsInMatrix(int numQubits, const char* caller);
25 
26 void validateAmpIndex(Qureg qureg, long long int ampInd, const char* caller);
27 
28 void validateStateIndex(Qureg qureg, long long int stateInd, const char* caller);
29 
30 void validateTarget(Qureg qureg, int targetQubit, const char* caller);
31 
32 void validateControlTarget(Qureg qureg, int controlQubit, int targetQubit, const char* caller);
33 
34 void validateUniqueTargets(Qureg qureg, int qubit1, int qubit2, const char* caller);
35 
36 void validateMultiQubits(Qureg qureg, int* qubits, const int numQubits, const char* caller);
37 
38 void validateMultiTargets(Qureg qurge, int* targetQubits, const int numTargetQubits, const char* caller);
39 
40 void validateMultiControls(Qureg qureg, int* controlQubits, const int numControlQubits, const char* caller);
41 
42 void validateMultiControlsTarget(Qureg qureg, int* controlQubits, const int numControlQubits, const int targetQubit, const char* caller);
43 
44 void validateMultiControlsMultiTargets(Qureg qureg, int* controlQubits, const int numControlQubits, int* targetQubits, const int numTargetQubits, const char* caller);
45 
46 void validateControlState(int* controlState, const int numControlQubits, const char* caller);
47 
48 void validateOneQubitUnitaryMatrix(ComplexMatrix2 u, const char* caller);
49 
50 void validateTwoQubitUnitaryMatrix(Qureg qureg, ComplexMatrix4 u, const char* caller);
51 
52 void validateMultiQubitUnitaryMatrix(Qureg qureg, ComplexMatrixN u, int numTargs, const char* caller);
53 
54 void validateMultiQubitMatrixFitsInNode(Qureg qureg, int numTargets, const char* caller);
55 
56 void validateUnitaryComplexPair(Complex alpha, Complex beta, const char* caller);
57 
58 void validateVector(Vector vector, const char* caller);
59 
60 void validateStateVecQureg(Qureg qureg, const char* caller);
61 
62 void validateDensityMatrQureg(Qureg qureg, const char* caller);
63 
64 void validateOutcome(int outcome, const char* caller);
65 
66 void validateMeasurementProb(qreal prob, const char* caller);
67 
68 void validateMatchingQuregDims(Qureg qureg1, Qureg qureg2, const char *caller);
69 
70 void validateMatchingQuregTypes(Qureg qureg1, Qureg qureg2, const char *caller);
71 
72 void validateSecondQuregStateVec(Qureg qureg2, const char *caller);
73 
74 void validateNumAmps(Qureg qureg, long long int startInd, long long int numAmps, const char* caller);
75 
76 void validateFileOpened(int opened, const char* caller);
77 
78 void validateProb(qreal prob, const char* caller);
79 
80 void validateNormProbs(qreal prob1, qreal prob2, const char* caller);
81 
82 void validateOneQubitDephaseProb(qreal prob, const char* caller);
83 
84 void validateTwoQubitDephaseProb(qreal prob, const char* caller);
85 
86 void validateOneQubitDepolProb(qreal prob, const char* caller);
87 
88 void validateTwoQubitDepolProb(qreal prob, const char* caller);
89 
90 void validateOneQubitPauliProbs(qreal probX, qreal probY, qreal probZ, const char* caller);
91 
92 void validatePauliCodes(enum pauliOpType* pauliCodes, int numPauliCodes, const char* caller);
93 
94 void validateNumPauliSumTerms(int numTerms, const char* caller);
95 
96 void validateMatrixInit(ComplexMatrixN matr, const char* caller);
97 
98 void validateOneQubitKrausMap(Qureg qureg, ComplexMatrix2* ops, int numOps, const char* caller);
99 
100 void validateTwoQubitKrausMap(Qureg qureg, ComplexMatrix4* ops, int numOps, const char* caller);
101 
102 void validateMultiQubitKrausMap(Qureg qureg, int numTargs, ComplexMatrixN* ops, int numOps, const char* caller);
103 
104 void validateOneQubitDampingProb(qreal prob, const char* caller);
105 
106 # ifdef __cplusplus
107 }
108 # endif
109 
110 # endif // QUEST_VALIDATION_H
void validateOneQubitDephaseProb(qreal prob, const char *caller)
void validateNumPauliSumTerms(int numTerms, const char *caller)
Represents a 3-vector of real numbers.
Definition: QuEST.h:148
pauliOpType
Codes for specifying Pauli operators.
Definition: QuEST.h:96
void validateMatchingQuregDims(Qureg qureg1, Qureg qureg2, const char *caller)
void validateMultiTargets(Qureg qurge, int *targetQubits, const int numTargetQubits, const char *caller)
void validateAmpIndex(Qureg qureg, long long int ampInd, const char *caller)
void validateSecondQuregStateVec(Qureg qureg2, const char *caller)
void validateTwoQubitDephaseProb(qreal prob, const char *caller)
void validateControlTarget(Qureg qureg, int controlQubit, int targetQubit, const char *caller)
void validateControlState(int *controlState, const int numControlQubits, const char *caller)
void validateOneQubitDepolProb(qreal prob, const char *caller)
void validateStateIndex(Qureg qureg, long long int stateInd, const char *caller)
void validateNumQubitsInMatrix(int numQubits, const char *caller)
void validateNumRanks(int numRanks, const char *caller)
void validateStateVecQureg(Qureg qureg, const char *caller)
void validateMultiQubitMatrixFitsInNode(Qureg qureg, int numTargets, const char *caller)
void validateOneQubitKrausMap(Qureg qureg, ComplexMatrix2 *ops, int numOps, const char *caller)
Represents a 4x4 matrix of complex numbers.
Definition: QuEST.h:125
void validateUniqueTargets(Qureg qureg, int qubit1, int qubit2, const char *caller)
void validateOneQubitPauliProbs(qreal probX, qreal probY, qreal probZ, const char *caller)
Represents a general 2^N by 2^N matrix of complex numbers.
Definition: QuEST.h:136
void validateMultiQubits(Qureg qureg, int *qubits, const int numQubits, const char *caller)
void validateNumQubitsInQureg(int numQubits, int numRanks, const char *caller)
void validateMultiQubitUnitaryMatrix(Qureg qureg, ComplexMatrixN u, int numTargs, const char *caller)
#define qreal
void validateMultiQubitKrausMap(Qureg qureg, int numTargs, ComplexMatrixN *ops, int numOps, const char *caller)
void validateMeasurementProb(qreal prob, const char *caller)
void validatePauliCodes(enum pauliOpType *pauliCodes, int numPauliCodes, const char *caller)
void validateMultiControlsMultiTargets(Qureg qureg, int *controlQubits, const int numControlQubits, int *targetQubits, const int numTargetQubits, const char *caller)
void validateUnitaryComplexPair(Complex alpha, Complex beta, const char *caller)
void validateFileOpened(int opened, const char *caller)
void validateMatrixInit(ComplexMatrixN matr, const char *caller)
void validateTarget(Qureg qureg, int targetQubit, const char *caller)
void validateOutcome(int outcome, const char *caller)
void validateMultiControls(Qureg qureg, int *controlQubits, const int numControlQubits, const char *caller)
void validateTwoQubitKrausMap(Qureg qureg, ComplexMatrix4 *ops, int numOps, const char *caller)
void validateTwoQubitDepolProb(qreal prob, const char *caller)
void validateTwoQubitUnitaryMatrix(Qureg qureg, ComplexMatrix4 u, const char *caller)
Represents a system of qubits.
Definition: QuEST.h:160
void validateNumAmps(Qureg qureg, long long int startInd, long long int numAmps, const char *caller)
void validateMultiControlsTarget(Qureg qureg, int *controlQubits, const int numControlQubits, const int targetQubit, const char *caller)
void validateDensityMatrQureg(Qureg qureg, const char *caller)
void validateMatchingQuregTypes(Qureg qureg1, Qureg qureg2, const char *caller)
void validateOneQubitUnitaryMatrix(ComplexMatrix2 u, const char *caller)
void validateProb(qreal prob, const char *caller)
Represents one complex number.
Definition: QuEST.h:103
void validateOneQubitDampingProb(qreal prob, const char *caller)
void validateVector(Vector vector, const char *caller)
void validateNormProbs(qreal prob1, qreal prob2, const char *caller)
Represents a 2x2 matrix of complex numbers.
Definition: QuEST.h:114