The Quantum Exact Simulation Toolkit v4.2.0
Loading...
Searching...
No Matches
evolve.hpp
1/** @file
2 * @author Tyson Jones
3 *
4 * @defgroup testutilsevolve Evolve
5 * @ingroup testutils
6 * @brief
7 * Testing utilities which evolve a reference state
8 * (qvector or qmatrix) under the action of a
9 * reference operation. These are slow, serial,
10 * un-optimised, defensively-designed routines.
11 * @{
12 */
13
14#ifndef EVOLVE_HPP
15#define EVOLVE_HPP
16
17#include "qvector.hpp"
18#include "qmatrix.hpp"
19
20#include <vector>
21using std::vector;
22
23
24void applyReferenceOperator (qvector& state, vector<int> ctrls, vector<int> states, vector<int> targs, qmatrix matrix);
25void applyReferenceOperator (qmatrix& state, vector<int> ctrls, vector<int> states, vector<int> targs, qmatrix matrix);
26void leftapplyReferenceOperator (qvector& state, vector<int> ctrls, vector<int> states, vector<int> targs, qmatrix matrix);
27void leftapplyReferenceOperator (qmatrix& state, vector<int> ctrls, vector<int> states, vector<int> targs, qmatrix matrix);
28void rightapplyReferenceOperator(qmatrix& state, vector<int> ctrls, vector<int> states, vector<int> targs, qmatrix matrix);
29
30void applyReferenceOperator (qvector& state, vector<int> ctrls, vector<int> targs, qmatrix matrix);
31void applyReferenceOperator (qmatrix& state, vector<int> ctrls, vector<int> targs, qmatrix matrix);
32void leftapplyReferenceOperator (qvector& state, vector<int> ctrls, vector<int> targs, qmatrix matrix);
33void leftapplyReferenceOperator (qmatrix& state, vector<int> ctrls, vector<int> targs, qmatrix matrix);
34void rightapplyReferenceOperator(qmatrix& state, vector<int> ctrls, vector<int> targs, qmatrix matrix);
35
36void applyReferenceOperator (qvector& state, vector<int> targs, qmatrix matrix);
37void applyReferenceOperator (qmatrix& state, vector<int> targs, qmatrix matrix);
38void leftapplyReferenceOperator (qvector& state, vector<int> targs, qmatrix matrix);
39void leftapplyReferenceOperator (qmatrix& state, vector<int> targs, qmatrix matrix);
40void rightapplyReferenceOperator(qmatrix& state, vector<int> targs, qmatrix matrix);
41
42void applyReferenceOperator (qvector& state, qmatrix matrix);
43void applyReferenceOperator (qmatrix& state, qmatrix matrix);
44void leftapplyReferenceOperator (qvector& state, qmatrix matrix);
45void leftapplyReferenceOperator (qmatrix& state, qmatrix matrix);
46void rightapplyReferenceOperator(qmatrix& state, qmatrix matrix);
47
48void applyReferenceOperator(qmatrix& state, vector<int> targs, vector<qmatrix> matrices);
49
50
51#endif // EVOLVE_HPP
52
53/** @} (end defgroup) */