MCPcopy Create free account
hub / github.com/QuEST-Kit/QuEST / createDiagMatr

Function createDiagMatr

quest/src/api/matrices.cpp:248–274  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

246
247
248extern "C" DiagMatr createDiagMatr(int numQubits) {
249 validate_envIsInit(__func__);
250 validate_newDiagMatrParams(numQubits, __func__);
251
252 // validation ensures this never overflows
253 qindex numElems = powerOf2(numQubits);
254
255 // prepare output DiagMatr (avoiding C++20 designated initialiser)
256 DiagMatr out;
257 out.numQubits = numQubits,
258 out.numElems = numElems,
259
260 // attempt to allocate (uninitialised) flags in the heap so that struct copies are mutable
261 out.isApproxUnitary = util_allocEpsilonSensitiveHeapFlag(); // nullptr if failed
262 out.isApproxHermitian = util_allocEpsilonSensitiveHeapFlag();
263 out.isApproxNonZero = util_allocEpsilonSensitiveHeapFlag();
264 out.isStrictlyNonNegative = cpu_allocHeapFlag(); // nullptr if failed
265 out.wasGpuSynced = cpu_allocHeapFlag();
266
267 // attempt to allocate 1D memory (nullptr if failed or not allocated)
268 out.cpuElems = cpu_allocArray(numElems);
269 out.gpuElems = (getQuESTEnv().isGpuAccelerated)? gpu_allocArray(numElems) : nullptr;
270
271 validateMatrixAllocs(out, __func__);
272 setInitialHeapFlags(out);
273 return out;
274}
275
276
277FullStateDiagMatr validateAndCreateCustomFullStateDiagMatr(int numQubits, int useDistrib, int useGpuAccel, int useMultithread, const char* caller) {

Callers 14

SECTIONFunction · 0.85
SECTIONFunction · 0.85
createInlineDiagMatrFunction · 0.85
_createInlineDiagMatrFunction · 0.85
demo_setInlineDiagMatrFunction · 0.85
demo_setDiagMatrFunction · 0.85
demo_syncDiagMatrFunction · 0.85
demo_DiagMatrFunction · 0.85
demo_setInlineDiagMatrFunction · 0.85
demo_setDiagMatrFunction · 0.85

Calls 10

validate_envIsInitFunction · 0.85
powerOf2Function · 0.85
cpu_allocHeapFlagFunction · 0.85
cpu_allocArrayFunction · 0.85
getQuESTEnvFunction · 0.85
gpu_allocArrayFunction · 0.85
validateMatrixAllocsFunction · 0.85
setInitialHeapFlagsFunction · 0.85

Tested by

no test coverage detected