The Quantum Exact Simulation Toolkit v4.0.0
Loading...
Searching...
No Matches
measure.hpp
1/** @file
2 * @author Tyson Jones
3 *
4 * @defgroup testutilsmeasure Measure
5 * @ingroup testutils
6 * @brief
7 * Testing utilities which evaluate measurements upon
8 * reference qvector and qmatrix states. These are slow,
9 * serial, un-optimised, defensively-designed routines.
10 * @{
11 */
12
13#ifndef MEASURE_HPP
14#define MEASURE_HPP
15
16#include "quest/include/quest.h"
17
18#include "qvector.hpp"
19#include "qmatrix.hpp"
20
21
22qcomp getReferenceExpectationValue(qvector state, qmatrix observable);
23qcomp getReferenceExpectationValue(qmatrix state, qmatrix observable);
24
25qcomp getReferenceExpectationValue(qvector state, PauliStr str);
26qcomp getReferenceExpectationValue(qmatrix state, PauliStr str);
27
28qcomp getReferenceExpectationValue(qvector state, PauliStrSum sum);
29qcomp getReferenceExpectationValue(qmatrix state, PauliStrSum sum);
30
31qreal getReferenceProbability(qvector state);
32qreal getReferenceProbability(qmatrix state);
33
34qreal getReferenceProbability(qvector state, qindex basisIndex);
35qreal getReferenceProbability(qmatrix state, qindex basisIndex);
36
37qreal getReferenceProbability(qvector state, vector<int> targets, vector<int> outcomes);
38qreal getReferenceProbability(qmatrix state, vector<int> targets, vector<int> outcomes);
39
40vector<qreal> getAllReferenceProbabilities(qvector state, vector<int> targets);
41vector<qreal> getAllReferenceProbabilities(qmatrix state, vector<int> targets);
42
43qreal getReferencePurity(qvector state);
44qreal getReferencePurity(qmatrix state);
45
46
47#endif // MEASURE_HPP
48
49/** @} (end defgroup) */