File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -382,8 +382,8 @@ class StateSpaceAVX :
382382
383383 for (uint64_t k = 0 ; k < size; ++k) {
384384 for (unsigned j = 0 ; j < 8 ; ++j) {
385- auto re = p[16 * k + j];
386- auto im = p[16 * k + 8 + j];
385+ double re = p[16 * k + j];
386+ double im = p[16 * k + 8 + j];
387387 norm += re * re + im * im;
388388 }
389389 }
@@ -396,15 +396,19 @@ class StateSpaceAVX :
396396
397397 for (uint64_t k = 0 ; k < size; ++k) {
398398 for (unsigned j = 0 ; j < 8 ; ++j) {
399- auto re = p[16 * k + j];
400- auto im = p[16 * k + 8 + j];
399+ double re = p[16 * k + j];
400+ double im = p[16 * k + 8 + j];
401401 csum += re * re + im * im;
402402 while (rs[m] < csum && m < num_samples) {
403403 bitstrings.emplace_back (8 * k + j);
404404 ++m;
405405 }
406406 }
407407 }
408+
409+ for (; m < num_samples; ++m) {
410+ bitstrings.emplace_back ((uint64_t {1 } << state.num_qubits ()) - 1 );
411+ }
408412 }
409413
410414 return bitstrings;
Original file line number Diff line number Diff line change @@ -333,8 +333,8 @@ class StateSpaceAVX512 :
333333
334334 for (uint64_t k = 0 ; k < size; ++k) {
335335 for (unsigned j = 0 ; j < 16 ; ++j) {
336- auto re = p[32 * k + j];
337- auto im = p[32 * k + 16 + j];
336+ double re = p[32 * k + j];
337+ double im = p[32 * k + 16 + j];
338338 norm += re * re + im * im;
339339 }
340340 }
@@ -347,15 +347,19 @@ class StateSpaceAVX512 :
347347
348348 for (uint64_t k = 0 ; k < size; ++k) {
349349 for (unsigned j = 0 ; j < 16 ; ++j) {
350- auto re = p[32 * k + j];
351- auto im = p[32 * k + 16 + j];
350+ double re = p[32 * k + j];
351+ double im = p[32 * k + 16 + j];
352352 csum += re * re + im * im;
353353 while (rs[m] < csum && m < num_samples) {
354354 bitstrings.emplace_back (16 * k + j);
355355 ++m;
356356 }
357357 }
358358 }
359+
360+ for (; m < num_samples; ++m) {
361+ bitstrings.emplace_back ((uint64_t {1 } << state.num_qubits ()) - 1 );
362+ }
359363 }
360364
361365 return bitstrings;
Original file line number Diff line number Diff line change @@ -203,8 +203,8 @@ class StateSpaceBasic :
203203 const fp_type* p = state.get ();
204204
205205 for (uint64_t k = 0 ; k < size; ++k) {
206- auto re = p[2 * k];
207- auto im = p[2 * k + 1 ];
206+ double re = p[2 * k];
207+ double im = p[2 * k + 1 ];
208208 norm += re * re + im * im;
209209 }
210210
@@ -215,14 +215,18 @@ class StateSpaceBasic :
215215 bitstrings.reserve (num_samples);
216216
217217 for (uint64_t k = 0 ; k < size; ++k) {
218- auto re = p[2 * k];
219- auto im = p[2 * k + 1 ];
218+ double re = p[2 * k];
219+ double im = p[2 * k + 1 ];
220220 csum += re * re + im * im;
221221 while (rs[m] < csum && m < num_samples) {
222222 bitstrings.emplace_back (k);
223223 ++m;
224224 }
225225 }
226+
227+ for (; m < num_samples; ++m) {
228+ bitstrings.emplace_back ((uint64_t {1 } << state.num_qubits ()) - 1 );
229+ }
226230 }
227231
228232 return bitstrings;
Original file line number Diff line number Diff line change @@ -342,8 +342,8 @@ class StateSpaceSSE :
342342
343343 for (uint64_t k = 0 ; k < size; ++k) {
344344 for (unsigned j = 0 ; j < 4 ; ++j) {
345- auto re = p[8 * k + j];
346- auto im = p[8 * k + 4 + j];
345+ double re = p[8 * k + j];
346+ double im = p[8 * k + 4 + j];
347347 norm += re * re + im * im;
348348 }
349349 }
@@ -356,15 +356,19 @@ class StateSpaceSSE :
356356
357357 for (uint64_t k = 0 ; k < size; ++k) {
358358 for (unsigned j = 0 ; j < 4 ; ++j) {
359- auto re = p[8 * k + j];
360- auto im = p[8 * k + 4 + j];
359+ double re = p[8 * k + j];
360+ double im = p[8 * k + 4 + j];
361361 csum += re * re + im * im;
362362 while (rs[m] < csum && m < num_samples) {
363363 bitstrings.emplace_back (4 * k + j);
364364 ++m;
365365 }
366366 }
367367 }
368+
369+ for (; m < num_samples; ++m) {
370+ bitstrings.emplace_back ((uint64_t {1 } << state.num_qubits ()) - 1 );
371+ }
368372 }
369373
370374 return bitstrings;
You can’t perform that action at this time.
0 commit comments