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

Function validate_newQuregParams

quest/src/core/validation.cpp:1701–1716  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1699}
1700
1701void validate_newQuregParams(int numQubits, int isDensMatr, int isDistrib, int isGpuAccel, int isMultithread, QuESTEnv env, const char* caller) {
1702
1703 // some of the below validation involves getting distributed node consensus, which
1704 // can be an expensive synchronisation, which we avoid if validation is anyway disabled
1705 if (!global_isValidationEnabled)
1706 return;
1707
1708 assertQuregNonEmpty(numQubits, caller);
1709 assertQuregDeployFlagsRecognised(isDensMatr, isDistrib, isGpuAccel, isMultithread, caller);
1710 assertQuregDeploysEnabledByEnv(isDistrib, isGpuAccel, isMultithread, env, caller);
1711 assertQuregTotalNumAmpsDontExceedMaxIndex(numQubits, isDensMatr, caller);
1712 assertQuregLocalMemDoesntExceedMaxSizeof(numQubits, isDensMatr, isDistrib, env, caller);
1713 assertQuregNotDistributedOverTooManyNodes(numQubits, isDensMatr, isDistrib, env, caller);
1714 assertQuregFitsInCpuMem(numQubits, isDensMatr, isDistrib, env, caller);
1715 assertQuregFitsInGpuMem(numQubits, isDensMatr, isDistrib, isGpuAccel, env, caller);
1716}
1717
1718void validate_newQuregAllocs(Qureg qureg, const char* caller) {
1719

Callers 1

Tested by

no test coverage detected