QuIDS: Quantum Irregular Dynamic Simulator
Namespaces | Data Structures | Typedefs | Functions | Variables
quids Namespace Reference

QuIDS namespace. More...

Namespaces

namespace  mpi
 mpi implementation namespace
 
namespace  utils
 QuIDS utility function and variable namespace.
 

Data Structures

class  iteration
 iteration (wave function) representation class More...
 
class  rule
 class represneting a dynamic (or rule). More...
 
class  symbolic_iteration
 symbolic iteration (computation intermediary) More...
 

Typedefs

typedef std::complex< PROBA_TYPE > mag_t
 complex magnitude type
 
typedef class iteration it_t
 iteration class type
 
typedef class symbolic_iteration sy_it_t
 symbolic iteration type
 
typedef class rule rule_t
 dynamic (or rule) type
 
typedef std::function< void(char *parent_begin, char *parent_end, mag_t &mag)> modifier_t
 simple "modifier" type (single input, single output of same size dynamic)
 
typedef std::function< PROBA_TYPE(char const *object_begin, char const *object_end)> observable_t
 observable definition typedef
 
typedef std::function< void(const char *step)> debug_t
 debuging function type
 

Functions

uint get_alignment_offset (const uint size)
 utility function to get the alignment offset to put at the end of an object of size "size"
 
void simulate (it_t &iteration, modifier_t const rule)
 function to apply a modifer to a wave function More...
 
void simulate (it_t &iteration, rule_t const *rule, it_t &next_iteration, sy_it_t &symbolic_iteration, size_t max_num_object=0, debug_t mid_step_function=[](const char *){})
 function to apply a dynamic to a wavefunction More...
 

Variables

uint align_byte_length = ALIGNMENT_BYTE_LENGTH
 amount of byte to align objects to
 
PROBA_TYPE tolerance = TOLERANCE
 tolerance for objects (remove objects with a smaller probability)
 
float safety_margin = SAFETY_MARGIN
 memory safety margin (0.2 = 80% memory usage target)
 
int load_balancing_bucket_per_thread = LOAD_BALANCING_BUCKET_PER_THREAD
 number of load balancing buckets per thread
 
bool simple_truncation = false
 simple truncation toggle - disable probabilistic truncation, increasing "accuracy" but reducing the representability of truncation. Set false (default) by the absence of the SIMPLE_TRUNCATION flag.
 

Detailed Description

QuIDS namespace.

Function Documentation

◆ simulate() [1/2]

void quids::simulate ( it_t iteration,
modifier_t const  rule 
)
inline

function to apply a modifer to a wave function

Parameters
[in]iterationwavefunction that the modifier will be applied to.
[in]rulemodifer that will be applied

◆ simulate() [2/2]

void quids::simulate ( it_t iteration,
rule_t const *  rule,
it_t next_iteration,
sy_it_t symbolic_iteration,
size_t  max_num_object = 0,
debug_t  mid_step_function = [](const char*){} 
)
inline

function to apply a dynamic to a wavefunction

Parameters
[in]iterationwavefunction that the dynamic will be applied to.
[in]ruledynamic that will be applied.
[out]next_iterationwave function that will be overwritten to then contained the final wave function.
[out]symbolic_iterationsymbolic iteration that will be used.
[in]max_num_objectmaximum number of objects to be kept, -1 means no maximum, 0 means automaticaly finding the maximum ammount of objects that can be kept in memory.
[in]mid_step_functiondebuging function called between steps.