The Quantum Exact Simulation Toolkit v4.0.0
Loading...
Searching...
No Matches
qvector.hpp
1/** @file
2 * @author Tyson Jones
3 *
4 * @defgroup testutilsqvector qvector
5 * @ingroup testutils
6 * @brief
7 * Testing utilities which define 'qvector', used
8 * as a reference proxy to a quantum statevector.
9 * @{
10 */
11
12#ifndef QVECTOR_HPP
13#define QVECTOR_HPP
14
15#include "quest/include/quest.h"
16#include "macros.hpp"
17#include <vector>
18
19
20typedef std::vector<qcomp> qvector;
21
22
23qvector getZeroVector(size_t dim);
24qvector getConstantVector(size_t dim, qcomp elem);
25
26qvector operator * (const qcomp&, const qvector&);
27qvector operator * (const qvector&, const qcomp&);
28qvector operator * (const qreal&, const qvector&);
29qvector operator * (const qvector&, const qreal&);
30qvector operator *= (qvector&, const qcomp&);
31qvector operator *= (qvector&, const qreal&);
32
33qvector operator / (const qvector&, const qcomp&);
34qvector operator / (const qvector&, const qreal&);
35qvector operator /= (qvector&, const qcomp&);
36qvector operator /= (qvector&, const qreal&);
37
38qvector operator + (const qvector&, const qvector&);
39qvector operator += (qvector&, const qvector&);
40
41qvector operator - (const qvector&, const qvector&);
42qvector operator -= (qvector&, const qvector&);
43
44void setSubVector(qvector &dest, qvector sub, size_t i);
45void setToDebugState(qvector &v);
46
47
48#endif // QVECTOR_HPP
49
50/** @} (end defgroup) */