20#include <unordered_map>
25using quregCache = std::unordered_map<std::string,Qureg>;
26using matrixCache = std::unordered_map<std::string,FullStateDiagMatr>;
27using deployInfo = std::vector<std::tuple<std::string,int,int,int>>;
37quregCache createCustomCachedQuregs(
int numQubits,
bool isDensityMatrix);
38void destroyCustomCachedQuregs(quregCache& cache);
49int getNumCachedQubits();
50deployInfo getSupportedDeployments();
52void createCachedFullStateDiagMatrs();
53void destroyCachedFullStateDiagMatrs();
54matrixCache getCachedFullStateDiagMatrs();
56void createCachedQuregs();
57void destroyCachedQuregs();
58quregCache getCachedStatevecs();
59quregCache getCachedDensmatrs();
60quregCache getAltCachedStatevecs();
61quregCache getAltCachedDensmatrs();
63Qureg getArbitraryCachedStatevec();
64Qureg getArbitraryCachedDensmatr();
71qvector getRefStatevec();
72qmatrix getRefDensmatr();