| 685 | |
| 686 | |
| 687 | extern "C" void setFullStateDiagMatrFromMultiVarFunc(FullStateDiagMatr out, qcomp (*callbackFunc)(qindex*), int* numQubitsPerVar, int numVars, int areSigned) { |
| 688 | validate_matrixFields(out, __func__); |
| 689 | validate_multiVarFuncQubits(out.numQubits, numQubitsPerVar, numVars, __func__); |
| 690 | validate_funcVarSignedFlag(areSigned, __func__); |
| 691 | |
| 692 | // we assume callbackFunc is thread-safe (!!!!) and possibly use multithreading, but never |
| 693 | // GPU acceleration, since we cannot invoke user callback functions from GPU kernels |
| 694 | cpu_fullstatediagmatr_setElemsFromMultiVarFunc(out, callbackFunc, numQubitsPerVar, numVars, areSigned); |
| 695 | |
| 696 | // overwrite all GPU elems |
| 697 | syncFullStateDiagMatr(out); |
| 698 | } |
| 699 | |
| 700 | |
| 701 | extern "C" void setDiagMatrFromMultiDimLists(DiagMatr out, void* lists, int* numQubitsPerDim, int numDims) { |
nothing calls this directly
no test coverage detected