| 649 | |
| 650 | |
| 651 | extern "C" FullStateDiagMatr createFullStateDiagMatrFromPauliStrSum(PauliStrSum in) { |
| 652 | validate_pauliStrSumFields(in, __func__); |
| 653 | |
| 654 | // ensure createFullStateDiagMatr() below succeeds (so if not, that thrower name is correct) |
| 655 | int numQubits = 1 + paulis_getIndOfLefmostNonIdentityPauli(in); |
| 656 | validate_newFullStateDiagMatrParams(numQubits, modeflag::USE_AUTO, modeflag::USE_AUTO, modeflag::USE_AUTO, __func__); |
| 657 | |
| 658 | // permit 'in' to be non-Hermitian since it does not determine 'out' unitarity |
| 659 | |
| 660 | FullStateDiagMatr out = createFullStateDiagMatr(numQubits); |
| 661 | localiser_fullstatediagmatr_setElemsToPauliStrSum(out, in); |
| 662 | markMatrixAsSynced(out); |
| 663 | return out; |
| 664 | } |
| 665 | |
| 666 | |
| 667 | extern "C" void setDiagMatrFromMultiVarFunc(DiagMatr out, qcomp (*callbackFunc)(qindex*), int* numQubitsPerVar, int numVars, int areSigned) { |
nothing calls this directly
no test coverage detected