Commit 3e80326
authored
Use nalgebra::Matrix4 as output for instructions_to_matrix (#15871)
* Use nalgebra::Matrix4 as output for instructions_to_matrix
This commit switches the return type of
convert_2q_block_matrix::instructions_to_matrix() to return a nalgebra
Matrix4 rather than a dynamicly allocated ndarray Array2. The function
explicitly returns a 4x4 Complex64 matrix. Using an nalgebra fixed size
array is stack allocated and we avoid needing a dynamic allocation. This
should also speedup matrix multiplication since nalgebra can leverage
simd better (either directly or implicitly via the compiler) because it
knows the fixed operations needed. We were already setup towards doing
since #13649 which moved to using nalgebra internally for the 1q
component, but it didn't update the whole path in that PR to use an
nalgebra array for everything.
Ideally we'd be using nalgebra data types throughout the two qubit
decomposers too. We should still use faer for the more involved linear
algebra operations in the module but we should be using Matrix4 and
Matrix2 for fixed sized matrices where we know the size of the matrices
in that module and generate faer MatRefs using
qiskit_synthesis::linalg::nalgebra_to_faer() to do linear algebra with
the matrix. This PR is an incremental step towards doing that.
* Update safety comment1 parent 03e8f5b commit 3e80326
4 files changed
Lines changed: 148 additions & 50 deletions
File tree
- crates
- quantum_info/src
- synthesis/src
- linalg
- transpiler/src/passes
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
| 19 | + | |
| 20 | + | |
20 | 21 | | |
21 | 22 | | |
22 | 23 | | |
23 | 24 | | |
24 | | - | |
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
33 | 55 | | |
34 | 56 | | |
35 | 57 | | |
| |||
59 | 81 | | |
60 | 82 | | |
61 | 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 | + | |
62 | 112 | | |
63 | 113 | | |
64 | 114 | | |
| |||
86 | 136 | | |
87 | 137 | | |
88 | 138 | | |
89 | | - | |
| 139 | + | |
90 | 140 | | |
91 | 141 | | |
92 | 142 | | |
| |||
98 | 148 | | |
99 | 149 | | |
100 | 150 | | |
101 | | - | |
| 151 | + | |
102 | 152 | | |
103 | 153 | | |
104 | 154 | | |
105 | 155 | | |
106 | 156 | | |
107 | | - | |
| 157 | + | |
108 | 158 | | |
109 | 159 | | |
110 | 160 | | |
111 | | - | |
112 | 161 | | |
113 | 162 | | |
114 | 163 | | |
| |||
136 | 185 | | |
137 | 186 | | |
138 | 187 | | |
139 | | - | |
| 188 | + | |
140 | 189 | | |
141 | 190 | | |
142 | 191 | | |
| |||
145 | 194 | | |
146 | 195 | | |
147 | 196 | | |
148 | | - | |
| 197 | + | |
149 | 198 | | |
150 | 199 | | |
151 | 200 | | |
| |||
169 | 218 | | |
170 | 219 | | |
171 | 220 | | |
172 | | - | |
| 221 | + | |
173 | 222 | | |
174 | | - | |
| 223 | + | |
175 | 224 | | |
176 | 225 | | |
177 | 226 | | |
| |||
183 | 232 | | |
184 | 233 | | |
185 | 234 | | |
186 | | - | |
| 235 | + | |
187 | 236 | | |
188 | | - | |
| 237 | + | |
189 | 238 | | |
190 | 239 | | |
191 | | - | |
| 240 | + | |
| 241 | + | |
192 | 242 | | |
193 | 243 | | |
194 | | - | |
| 244 | + | |
195 | 245 | | |
196 | 246 | | |
197 | 247 | | |
198 | 248 | | |
199 | 249 | | |
200 | 250 | | |
| 251 | + | |
201 | 252 | | |
202 | | - | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
203 | 257 | | |
204 | 258 | | |
205 | | - | |
| 259 | + | |
206 | 260 | | |
207 | | - | |
| 261 | + | |
208 | 262 | | |
209 | 263 | | |
210 | | - | |
| 264 | + | |
211 | 265 | | |
212 | 266 | | |
213 | 267 | | |
| |||
227 | 281 | | |
228 | 282 | | |
229 | 283 | | |
230 | | - | |
231 | | - | |
232 | | - | |
233 | | - | |
234 | | - | |
235 | | - | |
236 | | - | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
237 | 294 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
25 | 35 | | |
26 | 36 | | |
27 | 37 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
| 18 | + | |
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | | - | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
32 | 34 | | |
33 | 35 | | |
34 | 36 | | |
| |||
716 | 718 | | |
717 | 719 | | |
718 | 720 | | |
719 | | - | |
720 | | - | |
721 | | - | |
722 | | - | |
723 | | - | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
724 | 729 | | |
725 | 730 | | |
726 | 731 | | |
727 | | - | |
728 | | - | |
729 | | - | |
730 | | - | |
731 | | - | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
732 | 741 | | |
733 | 742 | | |
734 | 743 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | | - | |
29 | 28 | | |
30 | 29 | | |
31 | 30 | | |
32 | 31 | | |
33 | 32 | | |
34 | 33 | | |
35 | 34 | | |
| 35 | + | |
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
| |||
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
47 | 70 | | |
48 | 71 | | |
49 | 72 | | |
| |||
367 | 390 | | |
368 | 391 | | |
369 | 392 | | |
370 | | - | |
371 | | - | |
372 | | - | |
373 | | - | |
374 | | - | |
375 | | - | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
376 | 400 | | |
377 | 401 | | |
378 | 402 | | |
| |||
381 | 405 | | |
382 | 406 | | |
383 | 407 | | |
384 | | - | |
| 408 | + | |
385 | 409 | | |
386 | 410 | | |
387 | 411 | | |
388 | 412 | | |
389 | | - | |
390 | | - | |
391 | 413 | | |
392 | | - | |
| 414 | + | |
393 | 415 | | |
394 | 416 | | |
395 | 417 | | |
| |||
0 commit comments