Qrack
8.0
General classical-emulating-quantum development framework
|
#include <parallel_for.hpp>
Public Member Functions | |
ParallelFor () | |
virtual | ~ParallelFor () |
void | SetConcurrencyLevel (unsigned num) |
unsigned | GetConcurrencyLevel () |
bitCapIntOcl | GetStride () |
void | par_for_inc (const bitCapIntOcl begin, const bitCapIntOcl itemCount, IncrementFunc, ParallelFunc fn) |
Iterate through the permutations a maximum of end-begin times, allowing the caller to control the incrementation offset through 'inc'. More... | |
void | par_for (const bitCapIntOcl begin, const bitCapIntOcl end, ParallelFunc fn) |
Call fn once for every numerical value between begin and end. More... | |
void | par_for_skip (const bitCapIntOcl begin, const bitCapIntOcl end, const bitCapIntOcl skipPower, const bitLenInt skipBitCount, ParallelFunc fn) |
Skip over the skipPower bits. More... | |
void | par_for_mask (const bitCapIntOcl, const bitCapIntOcl, const std::vector< bitCapIntOcl > &maskArray, ParallelFunc fn) |
Skip over the bits listed in maskArray in the same fashion as par_for_skip. More... | |
void | par_for_set (const std::set< bitCapIntOcl > &sparseSet, ParallelFunc fn) |
Iterate over a sparse state vector. More... | |
void | par_for_set (const std::vector< bitCapIntOcl > &sparseSet, ParallelFunc fn) |
Iterate over a sparse state vector. More... | |
void | par_for_sparse_compose (const std::vector< bitCapIntOcl > &lowSet, const std::vector< bitCapIntOcl > &highSet, const bitLenInt &highStart, ParallelFunc fn) |
Iterate over the power set of 2 sparse state vectors. More... | |
void | par_for_qbdt (const bitCapInt begin, const bitCapInt end, BdtFunc fn) |
Iterate over a QBDT tree. More... | |
real1_f | par_norm (const bitCapIntOcl maxQPower, const StateVectorPtr stateArray, real1_f norm_thresh=ZERO_R1_F) |
Calculate the normal for the array, (with flooring). More... | |
real1_f | par_norm_exact (const bitCapIntOcl maxQPower, const StateVectorPtr stateArray) |
Calculate the normal for the array, (without flooring.) More... | |
Private Attributes | |
const bitCapIntOcl | pStride |
unsigned | numCores |
Qrack::ParallelFor::ParallelFor | ( | ) |
|
inlinevirtual |
|
inline |
|
inline |
void Qrack::ParallelFor::par_for | ( | const bitCapIntOcl | begin, |
const bitCapIntOcl | end, | ||
ParallelFunc | fn | ||
) |
Call fn once for every numerical value between begin and end.
void Qrack::ParallelFor::par_for_inc | ( | const bitCapIntOcl | begin, |
const bitCapIntOcl | itemCount, | ||
IncrementFunc | inc, | ||
ParallelFunc | fn | ||
) |
Iterate through the permutations a maximum of end-begin times, allowing the caller to control the incrementation offset through 'inc'.
void Qrack::ParallelFor::par_for_mask | ( | const bitCapIntOcl | begin, |
const bitCapIntOcl | end, | ||
const std::vector< bitCapIntOcl > & | maskArray, | ||
ParallelFunc | fn | ||
) |
Skip over the bits listed in maskArray in the same fashion as par_for_skip.
Iterate over a QBDT tree.
void Qrack::ParallelFor::par_for_set | ( | const std::set< bitCapIntOcl > & | sparseSet, |
ParallelFunc | fn | ||
) |
Iterate over a sparse state vector.
void Qrack::ParallelFor::par_for_set | ( | const std::vector< bitCapIntOcl > & | sparseSet, |
ParallelFunc | fn | ||
) |
Iterate over a sparse state vector.
void Qrack::ParallelFor::par_for_skip | ( | const bitCapIntOcl | begin, |
const bitCapIntOcl | end, | ||
const bitCapIntOcl | skipPower, | ||
const bitLenInt | skipBitCount, | ||
ParallelFunc | fn | ||
) |
Skip over the skipPower bits.
For example, if skipPower is 2, it will count: 0000, 0001, 0100, 0101, 1000, 1001, 1100, 1101. ^ ^ ^ ^ ^ ^ ^ ^ - The second bit is untouched.
void Qrack::ParallelFor::par_for_sparse_compose | ( | const std::vector< bitCapIntOcl > & | lowSet, |
const std::vector< bitCapIntOcl > & | highSet, | ||
const bitLenInt & | highStart, | ||
ParallelFunc | fn | ||
) |
Iterate over the power set of 2 sparse state vectors.
real1_f Qrack::ParallelFor::par_norm | ( | const bitCapIntOcl | maxQPower, |
const StateVectorPtr | stateArray, | ||
real1_f | norm_thresh = ZERO_R1_F |
||
) |
Calculate the normal for the array, (with flooring).
real1_f Qrack::ParallelFor::par_norm_exact | ( | const bitCapIntOcl | maxQPower, |
const StateVectorPtr | stateArray | ||
) |
Calculate the normal for the array, (without flooring.)
|
inline |
|
private |
|
private |