The Quantum Exact Simulation Toolkit v4.0.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 multiplyReferenceOperator(qvector& state, vector<int> ctrls, vector<int> states, vector<int> targs, qmatrix matrix);
27void multiplyReferenceOperator(qmatrix& state, vector<int> ctrls, vector<int> states, vector<int> targs, qmatrix matrix);
28
29void applyReferenceOperator( qvector& state, vector<int> ctrls, vector<int> targs, qmatrix matrix);
30void applyReferenceOperator( qmatrix& state, vector<int> ctrls, vector<int> targs, qmatrix matrix);
31void multiplyReferenceOperator(qvector& state, vector<int> ctrls, vector<int> targs, qmatrix matrix);
32void multiplyReferenceOperator(qmatrix& state, vector<int> ctrls, vector<int> targs, qmatrix matrix);
33
34void applyReferenceOperator( qvector& state, vector<int> targs, qmatrix matrix);
35void applyReferenceOperator( qmatrix& state, vector<int> targs, qmatrix matrix);
36void multiplyReferenceOperator(qvector& state, vector<int> targs, qmatrix matrix);
37void multiplyReferenceOperator(qmatrix& state, vector<int> targs, qmatrix matrix);
38
39void applyReferenceOperator( qvector& state, qmatrix matrix);
40void applyReferenceOperator( qmatrix& state, qmatrix matrix);
41void multiplyReferenceOperator(qvector& state, qmatrix matrix);
42void multiplyReferenceOperator(qmatrix& state, qmatrix matrix);
43
44void applyReferenceOperator(qmatrix& state, vector<int> targs, vector<qmatrix> matrices);
45
46
47#endif // EVOLVE_HPP
48
49/** @} (end defgroup) */