Skip to content

Commit f75973f

Browse files
add notebook and qmods
1 parent ab993c7 commit f75973f

File tree

3 files changed

+1005
-0
lines changed

3 files changed

+1005
-0
lines changed

algorithms/discrete_poisson_solver/discrete_poisson_solver.ipynb

+720
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,280 @@
1+
qfunc qsct_2d(xy_variable: qnum[2]) {
2+
qst_type2(xy_variable[0]);
3+
qct_type2(xy_variable[1]);
4+
}
5+
6+
qfunc powered_hamiltonian_evolution<hamiltonian: PauliTerm[], scaling: real, p: int>(qba: qbit[]) {
7+
suzuki_trotter<hamiltonian, p * ((-6.28318530718) * scaling), 1, 1>(qba);
8+
}
9+
10+
qfunc inverse_amplitude_load<prefactor: real>(phase: qnum, ind: qbit) {
11+
ind *= prefactor / phase;
12+
}
13+
14+
qfunc matrix_inversion_HHL<prefactor: real, my_unitary: qfunc <arg0: int>(arg1: qbit[])>(state: qbit[], phase: qnum, output indicator: qbit) {
15+
allocate<1>(indicator);
16+
within {
17+
qpe_flexible<lambda<power>() {
18+
my_unitary<power>(state);
19+
}>(phase);
20+
} apply {
21+
inverse_amplitude_load<prefactor>(phase, indicator);
22+
}
23+
}
24+
25+
qfunc main(output x_variable: qnum<3, False, 0>, output y_variable: qnum<3, False, 0>, output phase: qnum, output indicator: qbit) {
26+
xy_variable: qnum<3, False, 0>[2];
27+
prepare_amplitudes<[
28+
0.000929993206,
29+
0.006286469531,
30+
0.012502019419,
31+
0.01640293531,
32+
0.01640293531,
33+
0.012502019419,
34+
0.006286469531,
35+
0.000929993206,
36+
0.006286469531,
37+
0.042483535101,
38+
0.084462252894,
39+
0.110795378713,
40+
0.110795378713,
41+
0.084462252894,
42+
0.042483535101,
43+
0.006286469531,
44+
0.012502019419,
45+
0.084462252894,
46+
0.167861987331,
47+
0.220148535874,
48+
0.220148535874,
49+
0.167861987331,
50+
0.084462252894,
51+
0.012502019419,
52+
0.01640293531,
53+
0.110795378713,
54+
0.220148535874,
55+
0.288681749865,
56+
0.288681749865,
57+
0.220148535874,
58+
0.110795378713,
59+
0.01640293531,
60+
0.01640293531,
61+
0.110795378713,
62+
0.220148535874,
63+
0.288681749865,
64+
0.288681749865,
65+
0.220148535874,
66+
0.110795378713,
67+
0.01640293531,
68+
0.012502019419,
69+
0.084462252894,
70+
0.167861987331,
71+
0.220148535874,
72+
0.220148535874,
73+
0.167861987331,
74+
0.084462252894,
75+
0.012502019419,
76+
0.006286469531,
77+
0.042483535101,
78+
0.084462252894,
79+
0.110795378713,
80+
0.110795378713,
81+
0.084462252894,
82+
0.042483535101,
83+
0.006286469531,
84+
0.000929993206,
85+
0.006286469531,
86+
0.012502019419,
87+
0.01640293531,
88+
0.01640293531,
89+
0.012502019419,
90+
0.006286469531,
91+
0.000929993206
92+
], 0.0>(xy_variable);
93+
allocate<6>(phase);
94+
within {
95+
qsct_2d(xy_variable);
96+
} apply {
97+
matrix_inversion_HHL<0.015625, lambda<p>(target) {
98+
powered_hamiltonian_evolution<[
99+
PauliTerm {
100+
pauli=[
101+
Pauli::I,
102+
Pauli::I,
103+
Pauli::I,
104+
Pauli::I,
105+
Pauli::I,
106+
Pauli::I
107+
],
108+
coefficient=2.25
109+
},
110+
PauliTerm {
111+
pauli=[
112+
Pauli::I,
113+
Pauli::I,
114+
Pauli::I,
115+
Pauli::I,
116+
Pauli::I,
117+
Pauli::Z
118+
],
119+
coefficient=-0.25
120+
},
121+
PauliTerm {
122+
pauli=[
123+
Pauli::I,
124+
Pauli::I,
125+
Pauli::I,
126+
Pauli::I,
127+
Pauli::Z,
128+
Pauli::I
129+
],
130+
coefficient=-0.520598050073
131+
},
132+
PauliTerm {
133+
pauli=[
134+
Pauli::I,
135+
Pauli::I,
136+
Pauli::I,
137+
Pauli::I,
138+
Pauli::Z,
139+
Pauli::Z
140+
],
141+
coefficient=-0.020598050073
142+
},
143+
PauliTerm {
144+
pauli=[
145+
Pauli::I,
146+
Pauli::I,
147+
Pauli::I,
148+
Pauli::Z,
149+
Pauli::I,
150+
Pauli::I
151+
],
152+
coefficient=-1.256834873031
153+
},
154+
PauliTerm {
155+
pauli=[
156+
Pauli::I,
157+
Pauli::I,
158+
Pauli::I,
159+
Pauli::Z,
160+
Pauli::I,
161+
Pauli::Z
162+
],
163+
coefficient=-0.049728091845
164+
},
165+
PauliTerm {
166+
pauli=[
167+
Pauli::I,
168+
Pauli::I,
169+
Pauli::I,
170+
Pauli::Z,
171+
Pauli::Z,
172+
Pauli::I
173+
],
174+
coefficient=-0.103553390593
175+
},
176+
PauliTerm {
177+
pauli=[
178+
Pauli::I,
179+
Pauli::I,
180+
Pauli::I,
181+
Pauli::Z,
182+
Pauli::Z,
183+
Pauli::Z
184+
],
185+
coefficient=0.103553390593
186+
},
187+
PauliTerm {
188+
pauli=[
189+
Pauli::I,
190+
Pauli::I,
191+
Pauli::I,
192+
Pauli::I,
193+
Pauli::I,
194+
Pauli::I
195+
],
196+
coefficient=1.75
197+
},
198+
PauliTerm {
199+
pauli=[
200+
Pauli::I,
201+
Pauli::I,
202+
Pauli::Z,
203+
Pauli::I,
204+
Pauli::I,
205+
Pauli::I
206+
],
207+
coefficient=-0.25
208+
},
209+
PauliTerm {
210+
pauli=[
211+
Pauli::I,
212+
Pauli::Z,
213+
Pauli::I,
214+
Pauli::I,
215+
Pauli::I,
216+
Pauli::I
217+
],
218+
coefficient=-0.520598050073
219+
},
220+
PauliTerm {
221+
pauli=[
222+
Pauli::I,
223+
Pauli::Z,
224+
Pauli::Z,
225+
Pauli::I,
226+
Pauli::I,
227+
Pauli::I
228+
],
229+
coefficient=0.020598050073
230+
},
231+
PauliTerm {
232+
pauli=[
233+
Pauli::Z,
234+
Pauli::I,
235+
Pauli::I,
236+
Pauli::I,
237+
Pauli::I,
238+
Pauli::I
239+
],
240+
coefficient=-1.256834873031
241+
},
242+
PauliTerm {
243+
pauli=[
244+
Pauli::Z,
245+
Pauli::I,
246+
Pauli::Z,
247+
Pauli::I,
248+
Pauli::I,
249+
Pauli::I
250+
],
251+
coefficient=0.049728091845
252+
},
253+
PauliTerm {
254+
pauli=[
255+
Pauli::Z,
256+
Pauli::Z,
257+
Pauli::I,
258+
Pauli::I,
259+
Pauli::I,
260+
Pauli::I
261+
],
262+
coefficient=0.103553390593
263+
},
264+
PauliTerm {
265+
pauli=[
266+
Pauli::Z,
267+
Pauli::Z,
268+
Pauli::Z,
269+
Pauli::I,
270+
Pauli::I,
271+
Pauli::I
272+
],
273+
coefficient=0.103553390593
274+
}
275+
], 0.101321183642, p>(target);
276+
}>(xy_variable, phase, indicator);
277+
}
278+
xy_variable -> {x_variable, y_variable};
279+
}
280+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"constraints": {
3+
"max_width": 18
4+
}
5+
}

0 commit comments

Comments
 (0)