|
Qrack
10.0
General classical-emulating-quantum development framework
|
#include <parallel_for.hpp>

Public Member Functions | |
| ParallelFor () | |
| void | SetConcurrencyLevel (unsigned num) |
| unsigned | GetConcurrencyLevel () |
| bitCapIntOcl | GetStride () |
| bitLenInt | GetPreferredConcurrencyPower () |
| 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_inc_sparse (const bitCapIntOcl begin, const bitCapIntOcl itemCount, IncrementFuncSparse, ParallelFuncSparse fn) |
| 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< bitCapInt > &sparseSet, ParallelFuncSparse fn) |
| Iterate over a sparse state vector. More... | |
| void | par_for_set (const std::vector< bitCapInt > &sparseSet, ParallelFuncSparse fn) |
| Iterate over a sparse state vector. More... | |
| void | par_for_sparse_compose (const std::vector< bitCapInt > &lowSet, const std::vector< bitCapInt > &highSet, const bitLenInt &highStart, ParallelFuncSparse fn) |
| Iterate over the power set of 2 sparse state vectors. 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 |
| bitLenInt | dispatchThreshold |
| unsigned | numCores |
| Qrack::ParallelFor::ParallelFor | ( | ) |
|
inline |
|
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_inc_sparse | ( | const bitCapIntOcl | begin, |
| const bitCapIntOcl | itemCount, | ||
| IncrementFuncSparse | inc, | ||
| ParallelFuncSparse | fn | ||
| ) |
| 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.
| void Qrack::ParallelFor::par_for_set | ( | const std::set< bitCapInt > & | sparseSet, |
| ParallelFuncSparse | fn | ||
| ) |
Iterate over a sparse state vector.
| void Qrack::ParallelFor::par_for_set | ( | const std::vector< bitCapInt > & | sparseSet, |
| ParallelFuncSparse | 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< bitCapInt > & | lowSet, |
| const std::vector< bitCapInt > & | highSet, | ||
| const bitLenInt & | highStart, | ||
| ParallelFuncSparse | 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 |
|
private |