-
Notifications
You must be signed in to change notification settings - Fork 55
/
termcreps.cpp
111 lines (98 loc) · 3.37 KB
/
termcreps.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#define NULL 0
#include <iostream>
#include <complex>
#include <assert.h>
#include "basecreps.h"
#include "statecreps.h"
#include "opcreps.h"
#include "effectcreps.h"
#include "termcreps.h"
//#include <pthread.h>
//using namespace std::complex_literals;
//#define DEBUG(x) x
#define DEBUG(x)
namespace CReps_statevec {
/****************************************************************************\
|* TermCRep *|
\****************************************************************************/
TermCRep::TermCRep(CReps::PolynomialCRep* coeff, double magnitude, double logmagnitude,
StateCRep* pre_state, StateCRep* post_state,
std::vector<OpCRep*> pre_ops, std::vector<OpCRep*> post_ops) {
_coeff = coeff;
_magnitude = magnitude;
_logmagnitude = logmagnitude;
_pre_state = pre_state;
_post_state = post_state;
_pre_effect = NULL;
_post_effect = NULL;
_pre_ops = pre_ops;
_post_ops = post_ops;
}
TermCRep::TermCRep(CReps::PolynomialCRep* coeff, double magnitude, double logmagnitude,
EffectCRep* pre_effect, EffectCRep* post_effect,
std::vector<OpCRep*> pre_ops, std::vector<OpCRep*> post_ops) {
_coeff = coeff;
_magnitude = magnitude;
_logmagnitude = logmagnitude;
_pre_state = NULL;
_post_state = NULL;
_pre_effect = pre_effect;
_post_effect = post_effect;
_pre_ops = pre_ops;
_post_ops = post_ops;
}
TermCRep::TermCRep(CReps::PolynomialCRep* coeff, double magnitude, double logmagnitude,
std::vector<OpCRep*> pre_ops, std::vector<OpCRep*> post_ops) {
_coeff = coeff;
_magnitude = magnitude;
_logmagnitude = logmagnitude;
_pre_state = NULL;
_post_state = NULL;
_pre_effect = NULL;
_post_effect = NULL;
_pre_ops = pre_ops;
_post_ops = post_ops;
}
/****************************************************************************\
|* TermDirectCRep *|
\****************************************************************************/
TermDirectCRep::TermDirectCRep(dcomplex coeff, double magnitude, double logmagnitude,
StateCRep* pre_state, StateCRep* post_state,
std::vector<OpCRep*> pre_ops, std::vector<OpCRep*> post_ops) {
_coeff = coeff;
_magnitude = magnitude;
_logmagnitude = logmagnitude;
_pre_state = pre_state;
_post_state = post_state;
_pre_effect = NULL;
_post_effect = NULL;
_pre_ops = pre_ops;
_post_ops = post_ops;
}
TermDirectCRep::TermDirectCRep(dcomplex coeff, double magnitude, double logmagnitude,
EffectCRep* pre_effect, EffectCRep* post_effect,
std::vector<OpCRep*> pre_ops, std::vector<OpCRep*> post_ops) {
_coeff = coeff;
_magnitude = magnitude;
_logmagnitude = logmagnitude;
_pre_state = NULL;
_post_state = NULL;
_pre_effect = pre_effect;
_post_effect = post_effect;
_pre_ops = pre_ops;
_post_ops = post_ops;
}
TermDirectCRep::TermDirectCRep(dcomplex coeff, double magnitude, double logmagnitude,
std::vector<OpCRep*> pre_ops,
std::vector<OpCRep*> post_ops) {
_coeff = coeff;
_magnitude = magnitude;
_logmagnitude = logmagnitude;
_pre_state = NULL;
_post_state = NULL;
_pre_effect = NULL;
_post_effect = NULL;
_pre_ops = pre_ops;
_post_ops = post_ops;
}
}