aGrUM 2.3.2
a C++ library for (probabilistic) graphical models
gum Namespace Reference

gum is the global namespace for all aGrUM entities More...

Namespaces

namespace  __sig__
 Internal namespace for aGrUM signaler/listener components.
namespace  __debug__
 Internal namespace for aGrUM debugging tools.
namespace  aggregator
 Aggregators are functional description of CPTs.
namespace  complexity
 Internal namespace for complexity tools (quite empty for now).
namespace  credal
 namespace for all credal networks entities
namespace  prm
 namespace for all probabilistic relational models entities
namespace  formula
namespace  threadsOMP
namespace  threadsSTL
namespace  _rand_namespace_
namespace  learning
 include the inlined functions if necessary

Classes

class  ApproximationPolicy
 Mother class for all approximation policy classes. More...
class  ApproximationScheme
 Approximation Scheme. More...
class  ApproximationSchemeListener
 The ApproximationSchemeListener class. More...
class  ExactPolicy
 Class implementing exact approximation policy (meaning a value is approximate to itself). More...
class  IApproximationSchemeConfiguration
 Approximation Scheme. More...
class  LinearApproximationPolicy
 Class implementing linear approximation policy (meaning possible value are split out in interval). More...
struct  ArgMaxSet
 Class to handle efficiently argMaxSet. More...
class  AVLTree
 AVL binary search tree. More...
class  AVLTreeIterator
 AVL binary search tree iterator. More...
class  AVLTreeIteratorSafe
 AVL binary search tree safe (w.r.t. More...
class  AVLTreeReverseIterator
 AVL binary search tree reverse iterator. More...
class  AVLTreeReverseIteratorSafe
 AVL binary search tree safe (w.r.t. More...
class  BijectionImplementation
 A non scalar implementation of a Bijection. More...
class  BijectionIteratorGet
 Dummy classes for discriminating scalars and non-scalars operators and -> wihtout any overhead. More...
struct  BijectionIteratorGet< true >
class  BijectionIteratorSafe
 Safe iterators for bijectionIterator. More...
class  BijectionIterator
 Unsafe iterators for bijection. More...
class  Bijection
 Set of pairs of elements with fast search for both elements. More...
class  BinSearchTree
 A generic binary search tree. More...
class  BinSearchTreeIterator
 A Generic binary search tree. More...
class  BinTreeNode
 Nodes of a binary trees. More...
class  ParseError
 This class is used to represent parsing errors for the different parser implemented in aGrUM. More...
class  ErrorsContainer
 This class is used contain and manipulate gum::ParseError. More...
class  Exception
 Base class for all aGrUM's exceptions. More...
struct  Maximizes
 Maximization function object class. More...
struct  Minimizes
 Minimization function object class. More...
struct  ArgumentMaximises
 Arg Max function object class. More...
class  HashFuncConst
 Useful constants for hash functions. More...
class  HashFuncBase
 All hash functions should inherit from this class. More...
class  HashFuncSmallKey
 Generic hash functions for numeric keys smaller than or equal to Size. More...
class  HashFuncSmallCastKey
 Generic hash functions for keys castable as Size and whose size is strictly smaller than that of Size. More...
class  HashFuncMediumCastKey
 Generic hash functions for keys castable as Size and whose size is precisely that of Size. More...
class  HashFuncLargeCastKey
 Generic hash functions for keys castable as Size and whose size is precisely twice that of Size. More...
class  HashFuncCastKey
 Generic hash functions for keys castable as Size whose size is either smaller than Size, or equal to that of one or two Size. More...
class  dummyHash
class  HashFuncConditionalType
 This class enables to safely define hash functions for types that may or may not already has defined hash functions. More...
struct  HashFuncConditionalType< Key >
struct  HashFuncConditionalType< KEY_TYPE, TYPE >
struct  HashFuncConditionalType< KEY_TYPE, FIRST_TYPE, OTHER_TYPES... >
class  HashFunc
 This class should be useless as only its specializations should be used. More...
class  HashFunc< std::pair< Key1, Key2 > >
class  HashFunc< bool >
 Hash function for booleans. More...
class  HashFunc< int >
 Hash function for integers. More...
class  HashFunc< unsigned int >
 Hash function for unsigned integers. More...
class  HashFunc< long >
 Hash function for long integers. More...
class  HashFunc< unsigned long >
 Hash function for unsigned long integers. More...
class  HashFunc< typename HashFuncConditionalType< std::size_t, unsigned long, unsigned int, long, int >::type >
 Hash function for std::size_t. More...
class  HashFunc< float >
 Hash function for floats. More...
class  HashFunc< double >
 Hash function for doubles. More...
class  HashFunc< Type * >
 Hash function for pointers. More...
class  HashFunc< std::string >
 Hash function for strings. More...
class  HashFunc< std::vector< Idx > >
 Hash function for vectors of gum::Idx. More...
class  HashFunc< Debug >
 Hash function for gum::Debug. More...
class  HashFunc< RefPtr< Type > >
 Hash function for RefPtr. More...
class  HashTableConst
 Parameters specifying the default behavior of the hashtables. More...
class  HashTableBucket
 A recipient for a pair of key value in a gum::HashTableList. More...
class  HashTableList
 A chained list used by gum::HashTable. More...
class  HashTable
 The class for generic Hash Tables. More...
class  HashTableConstIteratorSafe
 Safe Const Iterators for hashtables. More...
class  Heap
 Heap data structure. More...
class  IndexedTree
 The class for storing the nodes of the Arborescence. More...
struct  IThreadNumberManager
class  ListBucket
 Bucket for a chained list. More...
class  List
 Generic doubly linked lists. More...
class  ListConstIterator
 Unsafe but fast const iterators for Lists. More...
class  ListIterator
 Unsafe but fast iterators for Lists. More...
class  ListConstIteratorSafe
 Safe const iterators for Lists. More...
class  ListIteratorSafe
 Safe iterators for Lists. More...
class  Chi2
 Represent the chi2 distribution. More...
class  Dirichlet
 A class for sampling w.r.t. More...
class  FormulaPart
 Represents part of a formula. More...
class  Formula
 Evaluates a string as a algebraic formula. More...
class  GammaLog2
 The class for computing Log2 (Gamma(x)). More...
class  Rational
 Class template used to approximate decimal numbers by rationals. More...
class  VariableLog2ParamComplexity
 the class for computing the log2 of the parametric complexity of an r-ary multinomial variable More...
class  MultiPriorityQueue
 A MultiPriorityQueue is a heap in which each element has a mutable priority and duplicates are allowed. More...
class  PriorityQueue
 A priorityQueue is a heap in which each element has a mutable priority. More...
class  PriorityQueueImplementation
 The internal class for representing priority queues. More...
class  ProgressNotifier
 Notification for progress using listener. More...
class  ProgressListener
 The ProgressListener class. More...
class  RefPtr
 Smart pointers. More...
class  SequenceImplementation
 The internal class for storing (ordered) sequences of objects. More...
class  Sequence
 The generic class for storing (ordered) sequences of objects. More...
class  SequenceIteratorSafe
 Safe iterators for Sequence. More...
class  Set
 Representation of a set. More...
class  SetIteratorSafe
 Safe iterators for the Set class. More...
class  SetIterator
 Unsafe iterators for the Set class. More...
class  HashFunc< Set< T > >
 the hash function for sets of int More...
class  Listener
 Every class who would catch signal from signaler should derive from Listener. More...
class  Signaler0
 class for signal with 0 args More...
class  FixedAllocator
 Allocates objects of one given size. More...
class  SmallObjectAllocator
 <agrum/base/core/smallObjectAllocator.h> More...
class  SortedPriorityQueueIterator
 Sorted priority queue iterator. More...
class  SortedPriorityQueueIteratorSafe
 Sorted priority queues safe (w.r.t. More...
class  SortedPriorityQueueReverseIterator
 Sorted priority queue reverse iterator. More...
class  SortedPriorityQueueReverseIteratorSafe
 Sorted priority queue safe (w.r.t. More...
class  SortedPriorityQueue
 A priority queue in which we can iterate over the elements from the top to bottom or conversely. More...
class  SplayBinaryNode
 the nodes of splay trees More...
class  SplayTree
 A splay tree. More...
class  ThreadData
 A wrapper that enables to store data in a way that prevents false cacheline sharing. More...
class  ThreadExecutorBase
 Set the max number of threads to be used. More...
class  ThreadNumberManager
 A class to manage the number of threads to use in an algorithm. More...
class  Timer
 Class used to compute response times for benchmark purposes. More...
struct  NullStream
 Implements a stream with the same behaviour as /dev/null. More...
struct  AlmostDifferent
 Indicate whether two elements are (almost) different or not. More...
struct  AlmostDifferent< T * >
 Indicate whether two elements are (almost) different or not. More...
class  InformationTheory
 InformationTheory is a template class which aims at gathering the implementation of informational functions (entropy, mutual information, etc.). More...
class  DAGmodel
 Virtual base class for PGMs using a DAG. More...
class  GraphicalModel
 Virtual base class for probabilistic graphical models. More...
class  GraphicalModelInference
 <agrum/base/graphicalModels/graphicalModel.h> More...
class  IScheduleMultiDim
 The Table-agnostic base class of scheduleMultiDim. More...
class  Schedule
 Class containing a schedule of operations to perform on multidims. More...
class  ScheduleBinaryCombination
 a binary Combination operator class used for scheduling inferences More...
class  ScheduledInference
 the class containing the scheduler used by schedule-based inferences More...
class  ScheduleMultiDim
 a Wrapper for multi-dimensional tables used for scheduling inferences More...
class  ScheduleOperator
 the base class for "low-level" operators used to schedule inferences More...
class  ScheduleProjection
 a Projection operator class used for scheduling inferences More...
class  Scheduler
 The common interface of all the schedulers. More...
class  SchedulerParallel
 A scheduler that executes available operators in parallel. More...
class  SchedulerSequential
class  ScheduleStorage
 Class for storing multidimensional tables into containers (sets, etc.). More...
class  UGmodel
 Virtual base class for PGMs using a undirected graph. More...
class  VariableNodeMap
 Container used to map discrete variables with nodes. More...
class  BinaryJoinTreeConverter
class  BinaryJoinTreeConverterDefault
class  DAGCycleDetector
 A class for detecting directed cycles in DAGs when trying to apply many changes to the graph. More...
class  MeekRules
class  SimplicialSet
 Class enabling fast retrieval of simplicial, quasi and almost simplicial nodes. More...
class  SpanningForest
 Base class for computing min cost spanning trees or forests. More...
class  SpanningForestPrim
 The Prim algorithm for computing min cost spanning trees or forests. More...
class  DefaultTriangulation
 The default triangulation algorithm used by aGrUM. More...
class  DefaultEliminationSequenceStrategy
 An efficient unconstrained elimination sequence algorithm. More...
class  DefaultPartialOrderedEliminationSequenceStrategy
 An Elimination sequence algorithm that imposes a given partial ordering on the nodes elimination sequence. More...
class  EliminationSequenceStrategy
 The base class for all elimination sequence algorithms used by triangulation algorithms. More...
class  OrderedEliminationSequenceStrategy
 An Elimination sequence algorithm that imposes a given complete ordering on the nodes elimination sequence. More...
class  PartialOrderedEliminationSequenceStrategy
 Base class for all elimination sequence algorithm that impose a given partial ordering on the nodes elimination sequence, that is, the set of all the nodes is divided into several subsets. More...
class  UnconstrainedEliminationSequenceStrategy
 The base class for all elimination sequence algorithms that require only the graph to be triangulated and the nodes' domain sizes to produce the node elimination ordering. More...
class  IncrementalTriangulation
 Class that performs incremental triangulations. More...
class  DefaultJunctionTreeStrategy
 An algorithm producing a junction given the elimination tree produced by a triangulation algorithm. More...
class  JunctionTreeStrategy
 Base Class for all the algorithms producing a junction given a set of cliques/subcliques resulting from a triangulation. More...
class  OrderedTriangulation
 class for graph triangulations for which we enforce a given complete ordering on the nodes eliminations. More...
class  PartialOrderedTriangulation
 class for graph triangulations for which we enforce a given partial ordering on the nodes eliminations, that is, the set of all the nodes is divided into several subsets. More...
class  StaticTriangulation
 base class for all non-incremental triangulation methods More...
class  Triangulation
 Interface for all the triangulation methods. More...
class  UnconstrainedTriangulation
 Interface for all triangulation methods without constraints on node elimination orderings. More...
class  CliqueGraph
 Basic graph of cliques. More...
class  DAG
 Base class for dag. More...
class  DiGraph
 Base class for all oriented graphs. More...
class  Edge
 The base class for all undirected edges. More...
class  Arc
 The base class for all directed edges. More...
class  MixedGraph
 Base class for mixed graphs. More...
class  ArcGraphPart
 Classes for directed edge sets. More...
class  EdgeGraphPart
 Classes for undirected edge sets. More...
class  DiGraphListener
 Abstract Base class for all diGraph Listener. More...
class  MixedGraphListener
 Abstract Base class for all mixed Graph Listener. More...
class  UndiGraphListener
 Abstract Base class for all undiGraph Listener. More...
class  NodeGraphPartIterator
 Unsafe iterator on the node set of a graph. More...
class  NodeGraphPartIteratorSafe
 Safe iterator on the node set of a graph. More...
class  NodeGraphPart
 Class for node sets in graph. More...
class  PDAG
 Base class for partially directed acyclic graphs. More...
class  UndiGraph
 Base class for undirected graphs. More...
class  MultiDimICIModel
 abstract class for Conditional Indepency Models More...
class  MultiDimLogit
 Logit representation. More...
class  MultiDimNoisyAND
 Noisy AND representation. More...
class  MultiDimNoisyORCompound
 Noisy OR representation. More...
class  MultiDimNoisyORNet
 Noisy OR representation. More...
class  MultiDimAdressable
 Abstract base class for all multi dimensionnal addressable. More...
class  MultiDimBijArray
 Decorator of a MultiDimArray, using a bijection over the variables. More...
class  MultiDimArray
 Multidimensional matrix stored as an array in memory. More...
class  MultiDimBucket
 A multidim implementation for buckets. More...
class  MultiDimImplementation
 <agrum/base/multidim/multiDimImplementation.h> More...
class  MultiDimContainer
 Abstract base class for all multi dimensionnal containers. More...
class  MultiDimDecorator
 Decorator design pattern in order to separate implementations from multidimensional matrix concepts. More...
class  MultiDimFunctionGraphManager
 Class implementingting a function graph manager. More...
class  MultiDimFunctionGraphROManager
class  MultiDimFunctionGraphTreeManager
class  MultiDimFunctionGraph
 Class implementingting a function graph. More...
class  MultiDimFunctionGraphGenerator
 Class implementing a function graph generator with template type double. More...
class  MultiDimInterface
 Interface for all classes addressing in a multiDim fashion. More...
class  MultiDimPartialInstantiation
 A generic class to instantiate a subset of variables of a multidimensional table. More...
class  MultiDimReadOnly
 Abstract base class for all multi dimensionnal read only structure. More...
class  MultiDimSparse
 Multidimensional matrix stored as a sparse array in memory. More...
class  MultiDimWithOffset
 Abstract class for Multidimensional matrix stored as an array in memory and with an offset associated with each slave instantiation. More...
class  Instantiation
 Class for assigning/browsing values to tuples of discrete variables. More...
class  HashFunc< Instantiation >
 Hash function for gum::Instantiation. More...
class  SetInst
 Class for assigning/browsing values to tuples of discrete variables. More...
class  Tensor
 aGrUM's Tensor is a multi-dimensional array with tensor operators. More...
class  Parent
 Represent a node's parent. More...
class  InternalNode
 Structure used to represent a node internal structure. More...
 Link of a chain list allocated using the SmallObjectAllocator. More...
class  LinkedList
 Chain list allocated using the SmallObjectAllocator. More...
class  MultiDimFunctionGraphOperator
 Class used to perform Function Graph Operations. More...
class  MultiDimFunctionGraphProjector
 Class used to perform Function Graph projections. More...
class  O4DGContext
 Class used to manipulate context during Function Graph Operations. More...
class  Regress
 Class used to perform Function Graph Operations in the FMDP Framework. More...
class  TreeOperator
 Class used to perform Decision Tree Operation in the FMDP Framework. More...
class  TreeRegress
 Class used to perform Decision Tree Regression in the FMDP Framework. More...
class  ExactTerminalNodePolicy
 Implementation of a Terminal Node Policy that maps nodeid directly to value. More...
class  ITerminalNodePolicy
 Interface specifying the methods to be implemented by any TerminalNodePolicy. More...
class  SetTerminalNodePolicy
 Implementation of a Terminal Node Policy that maps nodeid to a set of value. More...
class  CompleteProjectionRegister4MultiDim
 A container for registering complete projection functions on multiDimImplementations, i.e., functions projecting tables over all their variables. More...
struct  CompleteProjections4MultiDimInitialize
 a class used to register complete projections over non-pointers types More...
struct  CompleteProjections4MultiDimInitialize< GUM_SCALAR * >
 a class used to register complete projections over pointers types More...
class  MultiDimCombination
 A generic interface to combine efficiently several MultiDim tables. More...
class  MultiDimCombinationDefault
 A class to combine efficiently several MultiDim tables. More...
class  MultiDimCombineAndProject
 A generic interface to combine and project efficiently MultiDim tables. More...
class  MultiDimCombineAndProjectDefault
 An efficient class for combining and projecting MultiDim tables. More...
class  MultiDimCompleteProjection
 A generic class to project efficiently a MultiDim table over all of its variables. More...
class  MultiDimProjection
 A generic class to project efficiently a MultiDim table over a subset of its variables. More...
class  OperatorRegister4MultiDim
 A container for registering binary functions on multiDimImplementations. More...
struct  Operators4MultiDimInitialize
 a class used to register operators over non-pointers types More...
struct  Operators4MultiDimInitialize< GUM_SCALAR * >
 a class used to register operators over pointers types More...
class  ProjectionRegister4MultiDim
 A container for registering projection functions on multiDimImplementations, i.e., functions projecting tables over a subset of their variables. More...
struct  Projections4MultiDimInitialize
 a class used to register projections over non-pointers types More...
struct  Projections4MultiDimInitialize< GUM_SCALAR * >
 a class used to register projections over pointers types More...
class  PartialInstantiation4MultiDimInitialize
 A class used to register instantiation functions over non-pointers types. More...
struct  PartialInstantiation4MultiDimInitialize< GUM_SCALAR * >
class  PartialInstantiationRegister4MultiDim
 A container for registering partial instantiation functions on multiDimImplementations, i.e., functions assigning values to subsets of the variables of some tables. More...
class  HashFunc< learning::IdCondSet >
 the hash function for idSets More...
class  ContinuousVariable
 Defines a continuous random variable. More...
class  DiscreteVariable
 Base class for discrete random variable. More...
class  DiscretizedVariable
 Class for discretized random variable. More...
class  IContinuousVariable
 A base class for continuous variables, independent of the GUM_SCALAR type. More...
class  IDiscretizedVariable
 A base class for discretized variables, independent of the ticks type. More...
class  IntegerVariable
 class IntegerVariable More...
class  LabelizedVariable
 class LabelizedVariable More...
class  NumericalDiscreteVariable
 class NumericalDiscreteVariable More...
class  RangeVariable
 Defines a discrete random variable over an integer interval. More...
class  Variable
 Base class for every random variable. More...
class  BarrenNodesFinder
 Detect barren nodes for inference in Bayesian networks. More...
class  BayesBall
 Implementation of Shachter's Bayes Balls algorithm. More...
class  BNdistance
class  ExactBNdistance
 ExactBNdistance computes exactly the KL divergence betweens 2 BNs. More...
class  GibbsBNdistance
 GibbsKL computes the KL divergence betweens 2 BNs using an approximation pattern: GIBBS sampling. More...
class  dSeparationAlgorithm
 the d-separation algorithm as described in Koller & Friedman (2009) More...
class  EssentialGraph
 Class building the essential graph from a BN. More...
class  MarkovBlanket
 Class building the markov Blanket from a BN and a nodeName. More...
class  StructuralComparator
 A class for comparing graphs based on their structures. More...
class  BayesNetFactory
 A factory class to ease BayesNet construction. More...
class  BayesNet
 Class representing a Bayesian network. More...
class  BayesNetFragment
 Portion of a BN identified by the list of nodes and a BayesNet. More...
class  IBayesNetGenerator
 Class for generating Bayesian networks. More...
class  MaxInducedWidthMCBayesNetGenerator
 maxInducedWidthMCBayesNetGenerator.h <agrum/BN/generator/SimpleMCayesNetGenerator.h> More...
class  MaxParentsMCBayesNetGenerator
 <agrum/BN/generator/SimpleMCayesNetGenerator.h> More...
class  MCBayesNetGenerator
 <agrum/BN/generator/MCayesNetGenerator.h> More...
class  SimpleBayesNetGenerator
 <agrum/BN/generator/simpleBayesNetGenerator.h> More...
class  SimpleCPTDisturber
 <agrum/BN/generator/simpleCPTDisturber.h> More...
class  SimpleCPTGenerator
 <agrum/BN/generator/simpleCPTGenerator.h> More...
class  IBayesNet
 Class representing the minimal interface for Bayesian network with no numerical data. More...
class  IBayesNetFactory
 IBayesNetFactory is the non-template interface for BayesNetFactory : many ways to build a BN do not depend on the specification of the GUM_SCALAR template argument (for instance for BN readers). More...
class  GibbsSampling
 <agrum/BN/inference/gibbsSampling.h> More...
class  ImportanceSampling
class  LazyPropagation
 Implementation of a Shafer-Shenoy's-like version of lazy propagation for inference in Bayesian networks. More...
class  LoopyBeliefPropagation
 <agrum/BN/inference/loopyBeliefPropagation.h> More...
class  LoopySamplingInference
 <agrum/BN/inference/loopySamplingInference.h> More...
class  MonteCarloSampling
class  ShaferShenoyInference
 Implementation of Shafer-Shenoy's propagation algorithm for inference in Bayesian networks. More...
class  AggregatorDecomposition
 <agrum/BN/inference/tools/aggregatorDecomposition.h> More...
class  ApproximateInference
class  JointTargetedInference
 <agrum/BN/inference/jointTargetedInference.h> More...
class  MarginalTargetedInference
 <agrum/BN/inference/marginalTargetedInference.h> More...
class  EvidenceInference
 <agrum/BN/inference/evidenceInference.h> More...
class  BayesNetInference
 <agrum/BN/inference/BayesNetInference.h> More...
class  Estimator
class  GibbsOperator
 class containing all variables and methods required for Gibbssampling More...
class  SamplingInference
 <agrum/BN/inference/samplingInference.h> More...
class  VariableElimination
 Implementation of a Variable Elimination's-like version of lazy propagation for inference in Bayesian networks. More...
class  WeightedSampling
class  BIFReader
 Definition of templatized reader of BIF files for Bayesian networks. More...
class  BIFWriter
 Writes a IBayesNet in the BIF format. More...
class  BIFXMLBNReader
 <agrum/BN/io/BIFXML/BIFXMLBNReader.h> More...
class  BIFXMLBNWriter
 <agrum/BN/io/BIFXML/BIFXMLBNWriter.h> More...
class  BNReader
 Pure virtual class for reading a BN from a file. More...
class  BNWriter
 virtual class for writing a BN to a file. More...
class  CNFWriter
 Writes a IBayesNet in the BN format. More...
class  ContextualDependenciesCNFWriter
 <agrum/BN/io/cnf/ContextualDependenciesCNFWriter.h> More...
class  FactorisedValuesCNFWriter
 <agrum/BN/io/cnf/FactorisedValuesCNFWriter.h> More...
class  GeneralizedCNFWriter
 <agrum/BN/io/cnf/GeneralizedCNFWriter.h> More...
class  DSLReader
 Pure virtual class for reading a BN from a file. More...
class  DSLWriter
 Writes a IBayesNet in the DSL format. More...
class  NetReader
 Pure virtual class for reading a BN from a file. More...
class  NetWriter
 Writes a IBayesNet in the BN format. More...
class  UAIBNReader
 Pure virtual class for reading a BN from a file. More...
class  UAIBNWriter
 Writes an bayes net in a text file with UAI format. More...
class  XDSLBNReader
 <agrum/BN/io/XDSL/XDSLBNReader.h> More...
class  XDSLBNWriter
 <agrum/BN/io/XDSLXML/XDSLBNWriter.h> More...
class  HashFunc< learning::GraphChange >
 the hash function for Graph Changes More...
class  HashFunc< learning::ArcAddition >
 the hash function for Arc Additions More...
class  HashFunc< learning::ArcDeletion >
 the hash function for Arc Deletions More...
class  HashFunc< learning::ArcReversal >
 the hash function for Arc Reversals More...
class  HashFunc< learning::EdgeAddition >
 the hash function for Edge Additions More...
class  HashFunc< learning::EdgeDeletion >
 the hash function for Edge Deletions More...
class  HashFunc< credal::lp::LpCol >
class  E_GreedyDecider
 <agrum/FMDP/decision/E_GreedyDecider.h> More...
class  LazyDecider
 Class to make decision randomly. More...
class  RandomDecider
 Class to make decision randomly. More...
class  StatisticalLazyDecider
 <agrum/FMDP/decision/statisticalLazyDecider.h> More...
class  FMDP
 This class is used to implement factored decision process. More...
class  FMDPFactory
 A factory class to ease Factored Markov Decision Process construction. More...
class  AbstractFMDPFactory
 A factory class to ease Factored Markov Decision Process construction. More...
class  FMDPDatReader
 Definition of templatized reader of FMDPDat files for Factored Markov Decision Processes. More...
class  FMDPReader
 Pure virtual class for reading a FMDP from a file. More...
class  ChiSquare
 <agrum/FMDP/learning/core/testPolicy/chiSquare.h> More...
class  ContingencyTable
 <agrum/FMDP/learning/core/contingencyTable.h> More...
struct  Int2Type
struct  TestSelect
struct  TestSelect< CHI2TEST, A, B, C >
struct  TestSelect< LEASTSQUARETEST, A, B, C >
struct  ValueSelect
struct  ValueSelect< false, A, B >
struct  LearnerSelect
struct  LearnerSelect< ITILEARNER, A, B >
class  Chi2TestPolicy
 <agrum/base/multidim/core/testPolicy/Chi2TestPolicy.h> More...
class  GTestPolicy
 <agrum/base/multidim/core/testPolicies/GTestPolicy.h> More...
class  ITestPolicy
 <agrum/base/multidim/core/testPolicies/ITestPolicy.h> More...
class  LeastSquareTestPolicy
 <agrum/base/multidim/core/testPolicy/leastSquareTestPolicy.h> More...
class  HashFunc< std::tuple< unsigned int, unsigned int, unsigned int > >
 the hash function for tuple (unsigned int, unsigned int,unsigned int) More...
class  IMDDI
class  IncrementalGraphLearner
 <agrum/FMDP/learning/datastructure/incrementalGraphLearner> More...
class  ITI
 Learn a graphical representation of a function as a decision tree. More...
class  IVisitableGraphLearner
 <agrum/FMDP/SDyna/IVisitableGraphLearner.h> More...
class  AbstractLeaf
 <agrum/FMDP/learning/datastructure/leaves/abstractLeaf.h> More...
class  ComposedLeaf
 <agrum/FMDP/learning/datastructure/leaves/composedLeaf.h> More...
class  ConcreteLeaf
 <agrum/FMDP/learning/datastructure/leaves/concreteLeaf.h> More...
class  FusionContext
 <agrum/FMDP/learning/datastructure/leaves/fusionContext.h> More...
class  LeafAggregator
 <agrum/FMDP/learning/FunctionGraph/leafAggregator.h> More...
class  LeafPair
 <agrum/FMDP/learning/datastructure/leaves/leafPair.h> More...
class  NodeDatabase
 <agrum/FMDP/learning/datastructure/nodeDatabase.h> More...
class  VariableSelector
 <agrum/FMDP/planning/FunctionGraph/variableselector.h> More...
class  FMDPLearner
class  Observation
struct  ArgumentMaximisesAction
 <agrum/FMDP/planning/actionSet.h> More...
class  ActionSet
 A class to store the optimal actions. More...
class  AdaptiveRMaxPlaner
 <agrum/FMDP/planning/adaptiveRMaxPlaner.h> More...
class  IOperatorStrategy
 <agrum/FMDP/SDyna/IOperatorStrategy.h> More...
class  MDDOperatorStrategy
 <agrum/FMDP/planning/mddOperatorStrategy.h> More...
class  StructuredPlaner
 <agrum/FMDP/planning/structuredPlaner.h> More...
class  TreeOperatorStrategy
 <agrum/FMDP/planning/treeOperatorStrategy.h> More...
class  SDYNA
 The general SDyna architecture abstract class. More...
class  IDecisionStrategy
 <agrum/FMDP/SDyna/IDecisionStrategy.h> More...
class  ILearningStrategy
 <agrum/FMDP/SDyna/ILearningStrategy.h> More...
class  IPlanningStrategy
 <agrum/FMDP/SDyna/IPlanningStrategy.h> More...
class  AbstractSimulator
 <agrum/FMDP/simulation/abstractSimulator.h> More...
class  FactorySimulator
 A class to simulate the Factory problem. More...
class  FMDPSimulator
 <agrum/FMDP/simulation/fmdpSimulator.h> More...
class  StatesChecker
 <agrum/FMDP/simulation/statesChecker.h> More...
class  StatesCounter
 <agrum/FMDP/simulation/statesCounter.h> More...
class  TaxiSimulator
 A class to simulate the Taxi problem. More...
class  InfluenceDiagramGenerator
 <agrum/ID/generator/influenceDiagramGenerator.h> More...
class  SimpleUTGenerator
 Class for generating Utility Tables. More...
class  UTGenerator
 Abstract class for generating Utility Tables. More...
class  ShaferShenoyLIMIDInference
class  DecisionTensor
 <agrum/ID/inference/decisionTensor.h> More...
class  InfluenceDiagramInference
 <agrum/ID/inference/influenceDiagramInference.h> More...
class  InfluenceDiagram
 Class representing an Influence Diagram. More...
class  BIFXMLIDReader
 Read an influence diagram from an XML file with BIF format. More...
class  BIFXMLIDWriter
 Writes an influence diagram in a XML files with BIF format. More...
class  IDReader
 Pure virtual class for importing an ID from a file. More...
class  IDWriter
 Pure virtual class for exporting an ID. More...
class  IMarkovRandomField
 Class representing the minimal interface for Markov random field. More...
class  ShaferShenoyMRFInference
 <agrum/MRF/inference/ShaferShenoyMRFInference.h> More...
class  EvidenceMRFInference
 <agrum/MRF/inference/evidenceMRFInference.h> More...
class  JointTargetedMRFInference
 <agrum/MRF/inference/jointTargetedMRFInference.h> More...
class  MarginalTargetedMRFInference
 <agrum/MRF/inference/marginalTargetedMRFInference.h> More...
class  MRFInference
 <agrum/MRF/inference/MRFInference.h> More...
class  MRFReader
 Pure virtual class for reading a MRF from a file. More...
class  MRFWriter
 Pure virtual class for writting a MRF to a file. More...
class  UAIMRFReader
 Pure virtual class for reading a MRF from a file. More...
class  UAIMRFWriter
 <agrum/MRF/io/UAI/UAIMRFWriter.h> More...
class  O3prmBNReader
 Read an O3PRM and transform the gum::prm::PRMSystem into gum::BayesNet. More...
class  O3prmBNWriter
 <agrum/PRM/o3prm/O3prmBNWriter.h> More...

Concepts

concept  JointTargettable

Typedefs

using ThreadExecutor = threadsSTL::ThreadExecutor
using JunctionTree = CliqueGraph
 a junction tree is a clique graph satisfying the running intersection property and such that no clique is included into another one.
using JoinTree = CliqueGraph
 a join tree is a clique graph satisfying the running intersection property (but some cliques may be included into others)
using NodeId = Size
 Type for node ids.
using VariableSet = Set< const DiscreteVariable* >
template<typename GUM_SCALAR>
using HybridMonteCarloSampling = LoopySamplingInference< GUM_SCALAR, MonteCarloSampling >
template<typename GUM_SCALAR>
using HybridWeightedSampling = LoopySamplingInference< GUM_SCALAR, WeightedSampling >
template<typename GUM_SCALAR>
using HybridImportanceSampling = LoopySamplingInference< GUM_SCALAR, ImportanceSampling >
template<typename GUM_SCALAR>
using HybridGibbsSampling = LoopySamplingInference< GUM_SCALAR, GibbsSampling >
using pair_iterator = HashTableConstIteratorSafe< LeafPair*, std::vector< Size > >
template<typename GUM_SCALAR>
using FactorTable = HashTable< NodeSet, const Tensor< GUM_SCALAR >* >
using Size = std::size_t
 In aGrUM, hashed values are unsigned long int.
using Idx = Size
 Type for indexes.
template<class VAL>
using NodeProperty = HashTable< NodeId, VAL >
 Property on graph elements.
template<class VAL>
using EdgeProperty = HashTable< Edge, VAL >
 Property on graph elements.
template<class VAL>
using ArcProperty = HashTable< Arc, VAL >
 Property on graph elements.

Enumerations

enum class  BinTreeDir : char { LEFT_CHILD = 0 , RIGHT_CHILD = 1 , NO_PARENT = 2 }
 The direction of a given edge in a binary tree. More...
enum class  StaticInitializer : char { CONSTINIT , CONSTEXPR }
enum class  ScheduleOperatorType : char { COMBINE_MULTIDIM , PROJECT_MULTIDIM , DELETE_MULTIDIM , STORE_MULTIDIM }
 the currently supported types of "low-level" operators More...
enum  SchedulerType { SEQUENTIAL , PARALLEL_OPERATORS }
 the type of scheduler that can be used More...
enum class  VarType : char {
  DISCRETIZED , LABELIZED , INTEGER , NUMERICAL ,
  RANGE , CONTINUOUS
}
enum class  Complexity : char { Heavy , Difficult , Correct }
 Complexity allows to characterize the awaited difficulty for an algorithm given a specific instance Therefore this is not a theoretical characterization but rather a pragmatic rate of that very instance. More...
enum class  FindBarrenNodesType { FIND_NO_BARREN_NODES , FIND_BARREN_NODES }
 type of algorithm to determine barren nodes More...
enum class  RelevantTensorsFinderType { FIND_ALL , DSEP_BAYESBALL_NODES , DSEP_BAYESBALL_TENSORS , DSEP_KOLLER_FRIEDMAN_2009 }
 type of algorithm for determining the relevant tensors for combinations using some d-separation analysis More...
enum class  FMDPfactory_state : char {
  NONE , VARIABLE , ACTION , TRANSITION ,
  COST , REWARD , DISCOUNT
}
 The enumeration of states in which the factory can be in. More...
enum  TESTNAME { GTEST = 1 , CHI2TEST = 2 , LEASTSQUARETEST = 3 }
enum  LEARNERNAME { IMDDILEARNER = 1 , ITILEARNER = 2 }
enum  FactorySimulationLandmark : Idx {
  HOME = 0 , WORK = 1 , THEATER = 2 , CLUB = 3 ,
  Factory = 4
}
enum  FactorySimulationLandmarkX : Idx {
  HOMEX = 0 , WORKX = 0 , THEATERX = 3 , CLUBX = 4 ,
  STATIONX = 2
}
enum  FactorySimulationLandmarkY : Idx {
  HOMEY = 0 , WORKY = 4 , THEATERY = 0 , CLUBY = 4 ,
  STATIONY = 1
}
enum  FactorySimulationAction : Idx {
  GoNorth = 0 , GoEast = 1 , GoSouth = 2 , GoWest = 3 ,
  PickUp = 4 , PutDown = 5 , FillUp = 6
}
enum  TaxiSimulationLandmark : Idx {
  HOME = 0 , WORK = 1 , THEATER = 2 , CLUB = 3 ,
  TAXI = 4
}
enum  TaxiSimulationLandmarkX : Idx {
  HOMEX = 0 , WORKX = 0 , THEATERX = 3 , CLUBX = 4 ,
  STATIONX = 2
}
enum  TaxiSimulationLandmarkY : Idx {
  HOMEY = 0 , WORKY = 4 , THEATERY = 0 , CLUBY = 4 ,
  STATIONY = 1
}
enum  TaxiSimulationAction : Idx {
  GoNorth = 0 , GoEast = 1 , GoSouth = 2 , GoWest = 3 ,
  PickUp = 4 , PutDown = 5 , FillUp = 6
}

Functions

template<typename Val, typename Cmp>
std::ostream & operator<< (std::ostream &stream, const AVLTree< Val, Cmp > &tree)
 display the content of a tree
template<typename T1, typename T2>
std::ostream & operator<< (std::ostream &, const Bijection< T1, T2 > &bijection)
 For friendly display of the content of the gum::Bijection.
unsigned int _hashTableLog2_ (const Size nb)
 Returns the size in bits - 1 necessary to store the smallest power of 2 greater than or equal to nb.
template<typename Key, typename Val>
std::ostream & operator<< (std::ostream &s, const HashTableList< Key, Val > &list)
 Prints the content of a gum::HashTableList in the stream.
template<typename Key, typename Val>
std::ostream & operator<< (std::ostream &s, const HashTableList< Key *, Val > &list)
 Prints the content of a gum::HashTableList with pointers key in the stream.
template<typename Key, typename Val>
std::ostream & operator<< (std::ostream &s, const HashTable< Key, Val > &table)
 Prints the content of a gum::HashTable in the stream.
template<typename Key, typename Val>
std::ostream & operator<< (std::ostream &s, const HashTable< Key *, Val > &table)
 Prints the content of a gum::HashTable with pointers key in the stream.
HashTableIteratorSafe< Key, Val > & operator++ () noexcept
HashTableIteratorSafe< Key, Val > & operator+= (Size i) noexcept
 Makes the iterator point to i elements further in the hashtable.
HashTableIteratorSafe< Key, Val > operator+ (Size i) const
 Returns a new iterator pointing to i elements further in the hashtable.
bool operator!= (const HashTableIteratorSafe< Key, Val > &from) const noexcept
 Checks whether two iterators are pointing toward different elements.
bool operator== (const HashTableIteratorSafe< Key, Val > &from) const noexcept
 Checks whether two iterators are pointing toward equal elements.
value_type & operator* ()
 Returns the value pointed to by the iterator.
template<typename Val, typename Cmp>
std::ostream & operator<< (std::ostream &, const Heap< Val, Cmp > &)
template<typename Val, typename Cmp>
INLINE std::ostream & operator<< (std::ostream &stream, const Heap< Val, Cmp > &heap)
template<typename Key, typename Data>
std::ostream & operator<< (std::ostream &, const IndexedTree< Key, Data > &)
 Necessary for the hashtable operator <<.
template<typename Val>
std::ostream & operator<< (std::ostream &stream, const List< Val > &list)
 an << operator for List
template<typename Val>
ListConstIterator< Val >::difference_type operator- (const ListConstIterator< Val > &iter1, const ListConstIterator< Val > &iter2)
 For STL compliance, a distance operator.
template<typename Val>
ListConstIteratorSafe< Val >::difference_type operator- (const ListConstIteratorSafe< Val > &iter1, const ListConstIteratorSafe< Val > &iter2)
 For STL compliance, a distance operator.
template<typename Val>
INLINE ListConstIterator< Val >::difference_type operator- (const ListConstIterator< Val > &iter1, const ListConstIterator< Val > &iter2)
 For STL compliance, a distance operator.
template<typename Val>
INLINE ListConstIteratorSafe< Val >::difference_type operator- (const ListConstIteratorSafe< Val > &iter1, const ListConstIteratorSafe< Val > &iter2)
 For STL compliance, a distance operator.
void print_stack (std::stack< FormulaPart > s)
void print_output (std::vector< FormulaPart > v)
std::string func2str (FormulaPart::token_function func)
Formula operator- (const Formula &a)
Formula operator+ (const Formula &a, const Formula &b)
Formula operator- (const Formula &a, const Formula &b)
Formula operator* (const Formula &a, const Formula &b)
Formula operator/ (const Formula &a, const Formula &b)
std::string to_string (const Formula &f)
std::ostream & operator<< (std::ostream &os, const Formula &f)
template<typename T>
bool isfinite (T arg)
template<typename Val, typename Priority, typename Cmp>
INLINE std::ostream & operator<< (std::ostream &stream, const MultiPriorityQueue< Val, Priority, Cmp > &queue)
template<typename Val, typename Priority, typename Cmp>
std::ostream & operator<< (std::ostream &, const PriorityQueue< Val, Priority, Cmp > &)
template<typename Val, typename Priority, typename Cmp>
INLINE std::ostream & operator<< (std::ostream &stream, const PriorityQueue< Val, Priority, Cmp > &queue)
template<typename Val>
void swap (RefPtr< Val > &ptr1, RefPtr< Val > &ptr2)
 Swap the contents of two RefPtr.
template<typename Key>
std::ostream & operator<< (std::ostream &stream, const Sequence< Key > &s)
 A << operator for displaying the content of the Sequence.
template<typename Key, bool Gen>
INLINE std::ostream & operator<< (std::ostream &stream, const SequenceImplementation< Key, Gen > &seq)
template<typename Key>
INLINE std::ostream & operator<< (std::ostream &stream, const SequenceImplementation< Key, true > &seq)
template<typename Key>
INLINE std::ostream & operator<< (std::ostream &stream, const Sequence< Key > &seq)
 A << operator for displaying the content of the Sequence.
template<typename Key>
std::ostream & operator<< (std::ostream &, const Set< Key > &)
 A << operator for HashTableList.
template<typename Val, typename Priority, typename Cmp>
std::ostream & operator<< (std::ostream &stream, const SortedPriorityQueue< Val, Priority, Cmp > &queue)
 display the content of a sorted priority queue
template<typename Element>
INLINE std::ostream & operator<< (std::ostream &out, const SplayBinaryNode< Element > &e)
 Display the node.
template<typename Element>
INLINE std::ostream & operator<< (std::ostream &out, const SplayTree< Element > &s)
 Display the tree.
template<class Element>
static INLINE void removeInfo (const SplayBinaryNode< Element > *e, HashTable< Element, SplayBinaryNode< Element > * > &addr)
template<typename Element>
std::ostream & operator<< (std::ostream &out, const SplayBinaryNode< Element > &e)
 Display the node.
void setNumberOfThreads (unsigned int number)
 Set the max number of threads to be used when entering the next parallel region.
bool isOMP ()
 indicates whether aGrUM uses openMP or STL threads
std::vector< std::pair< Idx, Idx > > dispatchRangeToThreads (Idx beg, Idx end, unsigned int nb_threads)
 returns a vector equally splitting elements of a range among threads
std::ostream & operator<< (std::ostream &os, const Timer &t)
template<typename GENERATOR>
INLINE Idx randomValue (GENERATOR &generator, const Size max)
std::ostream & operator<< (std::ostream &, const VariableNodeMap &)
 for friendly displaying the content of clique graphs
std::ostream & operator<< (std::ostream &, const CliqueGraph &)
 for friendly displaying the content of clique graphs
std::ostream & operator<< (std::ostream &stream, const DiGraph &g)
 for friendly displaying the content of directed graphs
std::ostream & operator<< (std::ostream &stream, const Edge &edge)
 to friendly display an edge
std::ostream & operator<< (std::ostream &stream, const Arc &arc)
 to friendly display an arc
std::ostream & operator<< (std::ostream &stream, const MixedGraph &g)
 for friendly displaying the content of directed graphs
std::ostream & operator<< (std::ostream &s, const ArcGraphPart &a)
 for friendly displaying the content of arc set
std::ostream & operator<< (std::ostream &, const EdgeGraphPart &)
 for friendly displaying the content of an edge set
std::ostream & operator<< (std::ostream &, const NodeGraphPart &)
 for friendly displaying the content of node set
bool rec_hasMixedReallyOrientedPath (const PDAG &gr, NodeSet &marked, NodeId node, NodeId goal, bool alreadyOriented)
void rec_ancestral (const PDAG &graph, PDAG &ancestral, NodeId nod)
std::ostream & operator<< (std::ostream &stream, const UndiGraph &g)
 for friendly displaying the content of undirected graphs
template<typename GUM_SCALAR>
std::ostream & operator<< (std::ostream &s, const MultiDimLogit< GUM_SCALAR > &ag)
 For friendly displaying the content of the array.
template<typename GUM_SCALAR>
INLINE std::ostream & operator<< (std::ostream &s, const MultiDimLogit< GUM_SCALAR > &ag)
 For friendly displaying the content of the array.
template<typename GUM_SCALAR>
std::ostream & operator<< (std::ostream &s, const MultiDimNoisyAND< GUM_SCALAR > &ag)
 For friendly displaying the content of the array.
template<typename GUM_SCALAR>
INLINE std::ostream & operator<< (std::ostream &s, const MultiDimNoisyAND< GUM_SCALAR > &ag)
 For friendly displaying the content of the array.
template<typename GUM_SCALAR>
std::ostream & operator<< (std::ostream &s, const MultiDimNoisyORCompound< GUM_SCALAR > &ag)
 For friendly displaying the content of the array.
template<typename GUM_SCALAR>
INLINE std::ostream & operator<< (std::ostream &s, const MultiDimNoisyORCompound< GUM_SCALAR > &ag)
 For friendly displaying the content of the array.
template<typename GUM_SCALAR>
std::ostream & operator<< (std::ostream &s, const MultiDimNoisyORNet< GUM_SCALAR > &ag)
 For friendly displaying the content of the array.
template<typename GUM_SCALAR>
INLINE std::ostream & operator<< (std::ostream &s, const MultiDimNoisyORNet< GUM_SCALAR > &ag)
 For friendly displaying the content of the array.
template<typename GUM_SCALAR>
std::ostream & operator<< (std::ostream &out, const MultiDimContainer< GUM_SCALAR > &array)
template<typename GUM_SCALAR>
void _initTensorOperators__ ()
template<typename GUM_SCALAR>
std::ostream & operator<< (std::ostream &, const MultiDimImplementation< GUM_SCALAR > &)
 For friendly displaying the content of the array.
template<typename GUM_SCALAR>
INLINE MultiDimImplementation< GUM_SCALAR > & operator<< (MultiDimImplementation< GUM_SCALAR > &array, const DiscreteVariable &v)
template<typename GUM_SCALAR>
INLINE std::ostream & operator<< (std::ostream &out, const MultiDimImplementation< GUM_SCALAR > &array)
 For friendly displaying the content of the array.
MultiDimInterfaceoperator<< (MultiDimInterface &c, const DiscreteVariable &v)
 Adds a new var to the sequence of vars.
MultiDimInterfaceoperator>> (MultiDimInterface &c, const DiscreteVariable &v)
 Removes a var from the variables of the MutliDimAdressing.
std::ostream & operator<< (std::ostream &, const Instantiation &)
 Print information of the instantiation in the stream.
std::ostream & operator<< (std::ostream &, const SetInst &)
 Print information of the SetInst in the stream.
gum::SetInstoperator<< (gum::SetInst &inst, const gum::DiscreteVariable &i)
 Adds a variable to inst.
gum::SetInstoperator>> (gum::SetInst &inst, const gum::DiscreteVariable &i)
 Removes a variable to inst.
template<typename GUM_SCALAR>
Tensor< GUM_SCALAR > log2 (const Tensor< GUM_SCALAR > &arg)
template<typename GUM_SCALAR>
Tensor< GUM_SCALAR > abs (const Tensor< GUM_SCALAR > &arg)
template<typename GUM_SCALAR>
Tensor< GUM_SCALAR > sq (const Tensor< GUM_SCALAR > &arg)
template<typename GUM_SCALAR>
std::ostream & operator<< (std::ostream &out, const Tensor< GUM_SCALAR > &array)
template<typename GUM_SCALAR>
void registerCompleteProjection (const std::string &projection_name, const std::string &type_multidim, typename CompleteProjectionRegister4MultiDim< GUM_SCALAR >::CompleteProjectionPtr function)
 A function to more easily register new projection functions in MultiDims.
template<typename GUM_SCALAR>
GUM_SCALAR projectMax (const MultiDimImplementation< GUM_SCALAR > &table, Instantiation *instantiation=0)
 the function to be used to project a MultiDimImplementation using a Max
template<typename GUM_SCALAR>
GUM_SCALAR projectMin (const MultiDimImplementation< GUM_SCALAR > &table, Instantiation *instantiation=0)
 the function to be used to project a MultiDimImplementation using a Min
template<typename GUM_SCALAR>
GUM_SCALAR projectSum (const MultiDimImplementation< GUM_SCALAR > &table, Instantiation *instantiation=0)
 the function to be used to project a MultiDimImplementation using a sum
template<typename GUM_SCALAR>
GUM_SCALAR projectProduct (const MultiDimImplementation< GUM_SCALAR > &table, Instantiation *instantiation=0)
 the function to be used to project a MultiDimImplementation using a Product
template<typename GUM_SCALAR>
void completeProjections4MultiDimInit ()
 the function used to register all the complete projection operators on multidimImplementations over non-pointers types.
template<typename GUM_SCALAR>
void pointerCompleteProjections4MultiDimInit ()
 The function used to register all the complete projections on multidimImplementations over pointers types.
template<typename GUM_SCALAR>
void registerOperator (const std::string &operation_name, const std::string &type1, const std::string &type2, typename OperatorRegister4MultiDim< GUM_SCALAR >::OperatorPtr function)
 A function to more easily register new operators in MultiDims.
template<typename GUM_SCALAR>
void operators4MultiDimInit ()
 the function used to register all the operators on multidimImplementations over non-pointers types.
template<typename GUM_SCALAR>
void pointerOperators4MultiDimInit ()
 the function used to register all the operators on multidimImplementations over pointers types.
template<typename GUM_SCALAR>
void registerProjection (const std::string &projection_name, const std::string &type_multidim, typename ProjectionRegister4MultiDim< GUM_SCALAR >::ProjectionPtr function)
 A function to more easily register new projection functions in MultiDims.
template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * projectMax (const MultiDimImplementation< GUM_SCALAR > &table, const gum::VariableSet &del_vars)
 The function to be used to project a MultiDimImplementation using a Max.
template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * projectMin (const MultiDimImplementation< GUM_SCALAR > &table, const gum::VariableSet &del_vars)
 The function to be used to project a MultiDimImplementation using a Min.
template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * projectSum (const MultiDimImplementation< GUM_SCALAR > &table, const gum::VariableSet &del_vars)
 The function to be used to project a MultiDimImplementation using a Sum.
template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * projectProduct (const MultiDimImplementation< GUM_SCALAR > &table, const gum::VariableSet &del_vars)
 The function to be used to project a MultiDimImplementation using a Product.
template<typename GUM_SCALAR>
void projections4MultiDimInit ()
 the function used to register all the projection operators on multidimImplementations over non-pointers types.
template<typename GUM_SCALAR>
void pointerProjections4MultiDimInit ()
 the function used to register all the projections on multidimImplementations over pointers types.
template<typename GUM_SCALAR>
MultiDimArray< GUM_SCALAR > * partialInstantiationMultiDimArray (const MultiDimArray< GUM_SCALAR > *table, const HashTable< const DiscreteVariable *, Idx > &inst_vars)
 A specialized function for instantiating variables in a multiDimArray.
template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * partialInstantiationMultiDimArray (const MultiDimImplementation< GUM_SCALAR > *table, const HashTable< const DiscreteVariable *, Idx > &inst_vars)
 A specialized function for instantiating variables in a MultiDimImplementation.
template<typename GUM_SCALAR>
MultiDimArray< GUM_SCALAR * > * partialInstantiationMultiDimArray4Pointers (const MultiDimArray< GUM_SCALAR * > *table, const HashTable< const DiscreteVariable *, Idx > &inst_vars)
 A specialized function for instantiating variables in a MultiDimArray.
template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR * > * partialInstantiationMultiDimArray4Pointers (const MultiDimImplementation< GUM_SCALAR * > *table, const HashTable< const DiscreteVariable *, Idx > &inst_vars)
 A specialized function for instantiating variables in a MultiDimArray.
template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * partialInstantiation (const MultiDimImplementation< GUM_SCALAR > &table, const HashTable< const DiscreteVariable *, Idx > &inst_vars)
 Instantiate variables in a MultiDimImplementation.
template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * partialInstantiation (const MultiDimDecorator< GUM_SCALAR > &table, const HashTable< const DiscreteVariable *, Idx > &inst_vars)
 Instantiate variables in a MultiDimDecorator.
template<typename GUM_SCALAR>
void partialInstantiation4MultiDimInit ()
 The function used to register all the instantiation operators on multidimImplementations over non-pointers types.
template<typename GUM_SCALAR>
void pointerPartialInstantiation4MultiDimInit ()
 The function used to register all the instantiations on multidimImplementations over pointers types.
template<typename GUM_SCALAR>
void registerPartialInstantiation (const std::string &instantiation_func_name, const std::string &type_multidim, typename PartialInstantiationRegister4MultiDim< GUM_SCALAR >::PartialInstantiationPtr function)
 A function to more easily register new instantiation functions in MultiDims.
template<typename GUM_SCALAR = double>
std::unique_ptr< DiscreteVariablefastVariable (std::string var_description, Size default_domain_size)
 Create a pointer on a Discrete Variable from a "fast" syntax.
template<typename GUM_SCALAR = double>
std::unique_ptr< DiscreteVariablefastVariable (std::string var_description, const std::string &default_domain="[2]")
 Create a pointer on a Discrete Variable from a "fast" syntax.
template<typename T_VAL>
std::ostream & operator<< (std::ostream &, const ContinuousVariable< T_VAL > &)
 for friendly displaying the content of the variable
std::ostream & operator<< (std::ostream &, const DiscreteVariable &)
 for friendly displaying the content of the variable
template<typename GUM_SCALAR>
std::ostream & operator<< (std::ostream &output, const BayesNet< GUM_SCALAR > &bn)
 Prints map's DAG in output using the Graphviz-dot format.
template<typename GUM_SCALAR>
NodeId build_node (gum::BayesNet< GUM_SCALAR > &bn, const std::string &node, const std::string &default_domain)
template<typename GUM_SCALAR>
INLINE std::ostream & operator<< (std::ostream &output, const BayesNet< GUM_SCALAR > &bn)
 Prints map's DAG in output using the Graphviz-dot format.
template<typename GUM_SCALAR>
gum::Size getMaxModality (gum::BayesNet< GUM_SCALAR > &bayesNet)
template<typename GUM_SCALAR>
std::ostream & operator<< (std::ostream &output, const IBayesNet< GUM_SCALAR > &bn)
 Prints map's DAG in output using the Graphviz-dot format.
template<typename GUM_SCALAR>
INLINE std::ostream & operator<< (std::ostream &output, const IBayesNet< GUM_SCALAR > &bn)
 Prints map's DAG in output using the Graphviz-dot format.
template<typename GUM_SCALAR>
static INLINE Tensor< GUM_SCALAR > LPNewmultiTensor (const Tensor< GUM_SCALAR > &t1, const Tensor< GUM_SCALAR > &t2)
template<typename GUM_SCALAR>
static INLINE Tensor< GUM_SCALAR > LPNewprojTensor (const Tensor< GUM_SCALAR > &t1, const gum::VariableSet &del_vars)
template<typename GUM_SCALAR>
static INLINE Tensor< GUM_SCALAR > LPMaxprojTensor (const Tensor< GUM_SCALAR > &t1, const gum::VariableSet &del_vars)
template<typename GUM_SCALAR>
static INLINE Tensor< GUM_SCALAR > SSNewmultiTensor (const Tensor< GUM_SCALAR > &t1, const Tensor< GUM_SCALAR > &t2)
template<typename GUM_SCALAR>
static INLINE Tensor< GUM_SCALAR > SSNewprojTensor (const Tensor< GUM_SCALAR > &t1, const gum::VariableSet &del_vars)
template<typename GUM_SCALAR>
static INLINE Tensor< GUM_SCALAR > VENewmultiTensor (const Tensor< GUM_SCALAR > &t1, const Tensor< GUM_SCALAR > &t2)
template<typename GUM_SCALAR>
static INLINE Tensor< GUM_SCALAR > VENewprojTensor (const Tensor< GUM_SCALAR > &t1, const gum::VariableSet &del_vars)
template<typename GUM_SCALAR>
std::ostream & operator<< (std::ostream &out, const DecisionTensor< GUM_SCALAR > &array)
template<typename GUM_SCALAR>
NodeId build_node_for_ID (gum::InfluenceDiagram< GUM_SCALAR > &infdiag, std::string node, const std::string &domain)
template<typename GUM_SCALAR>
std::ostream & operator<< (std::ostream &output, const IMarkovRandomField< GUM_SCALAR > &mn)
 Prints map's graph in output using the Graphviz-dot format.
template<typename GUM_SCALAR>
INLINE std::ostream & operator<< (std::ostream &output, const IMarkovRandomField< GUM_SCALAR > &bn)
 Prints map's graph in output using the Graphviz-dot format.
template<typename GUM_SCALAR>
static INLINE Tensor< GUM_SCALAR > SSNewMNmultiTensor (const Tensor< GUM_SCALAR > &t1, const Tensor< GUM_SCALAR > &t2)
template<typename GUM_SCALAR>
static INLINE Tensor< GUM_SCALAR > SSNewMNprojTensor (const Tensor< GUM_SCALAR > &t1, const gum::VariableSet &del_vars)
template<typename GUM_SCALAR>
NodeId build_node_for_MN (MarkovRandomField< GUM_SCALAR > &mn, const std::string &node, const std::string &default_domain)
template<typename GUM_SCALAR>
INLINE std::ostream & operator<< (std::ostream &output, const MarkovRandomField< GUM_SCALAR > &mn)
unsigned int getMaxNumberOfThreads ()
 Returns the maximum number of threads you should use at any time.
unsigned int getNumberOfThreads ()
 returns the max number of threads used by default when entering the next parallel region
unsigned int getNumberOfLogicalProcessors ()
 Get the number of logical processors.
Integers Pow utility methods
unsigned long intPow (unsigned long base, unsigned long exponent)
 Specialized pow function with integers (faster implementation).
unsigned long int2Pow (unsigned long exponent)
 Specialized base 2 pow function with integer.
void superiorPow (unsigned long card, unsigned long &num_bits, unsigned long &new_card)
 Compute the superior and closest power of two of an integer.
Idx randomValue (const Size max=2)
 Returns a random Idx between 0 and max-1 included.
double randomProba ()
 Returns a random double between 0 and 1 included (i.e.
template<typename GUM_SCALAR>
std::vector< GUM_SCALAR > randomDistribution (Size n)
 Return a random discrete distribution.
unsigned int randomGeneratorSeed ()
 Returns the aGrUM's seed used by the std::generators.
unsigned int currentRandomGeneratorValue ()
 returns the current generator's value
void initRandom (unsigned int seed=0)
 Initialize random generator seed.
std::mt19937 & randomGenerator ()
 define a random_engine with correct seed
std::string getUniqueFileName ()
 Returns a path to a unique file name.
bool endsWith (std::string const &value, std::string const &ending)
 Returns true if value ends with ending.
std::vector< std::string > split (const std::string &orig, const std::string &delimiter)
 Split str using the delimiter.
std::string replace (const std::string &s, const std::string &val, const std::string &new_val)
 not usable for gcc 4.8 std::vector<std::string> split( const std::string& orig, const std::string& delimiter ) {
bool isIntegerWithResult (const std::string &val, int *res)
 return true is a string contains an integer value
bool isNumericalWithResult (const std::string &val, double *res)
 return true is a string contains a numerical (double) value
std::string toLower (std::string str)
 Returns the lowercase version of str.
bool isInteger (const std::string &val)
 return true is a string contains an integer value
bool isNumerical (const std::string &val)
 return true is a string contains a numerical (double) value
void ltrim (std::string &s)
 trim from start (in place)
void rtrim (std::string &s)
 trim from end (in place)
void trim (std::string &s)
 trim from both ends (in place)
std::string trim_copy (const std::string &s)
 trim from both ends (copying)
std::string remove_newline (const std::string &s)
 remove all newlines in a string
template<typename T>
std::string compact_tostr (T value)
 Returns a path to a unique file name.
Project Max Operators
template<typename GUM_SCALAR>
GUM_SCALAR projectMaxMultiDimArray (const MultiDimArray< GUM_SCALAR > *table, Instantiation *instantiation=0)
 A specialized function for projecting a multiDimArray using a Max operator.
template<typename GUM_SCALAR>
GUM_SCALAR projectMaxMultiDimArray (const MultiDimImplementation< GUM_SCALAR > *table, Instantiation *instantiation=0)
 A specialized function for projecting a multiDimArray using a Max operator.
template<typename GUM_SCALAR>
GUM_SCALAR * projectMaxMultiDimArray4Pointers (const MultiDimArray< GUM_SCALAR * > *table, Instantiation *instantiation=0)
 A specialized function for projecting a multiDimArray using a Max operator.
template<typename GUM_SCALAR>
GUM_SCALAR * projectMaxMultiDimArray4Pointers (const MultiDimImplementation< GUM_SCALAR * > *table, Instantiation *instantiation=0)
 A specialized function for projecting a multiDimArray using a Max operator.
Project Min Operators
template<typename GUM_SCALAR>
GUM_SCALAR projectMinMultiDimArray (const MultiDimArray< GUM_SCALAR > *table, Instantiation *instantiation=0)
 A specialized function for projecting a multiDimArray using a Min operator.
template<typename GUM_SCALAR>
GUM_SCALAR projectMinMultiDimArray (const MultiDimImplementation< GUM_SCALAR > *table, Instantiation *instantiation=0)
 A specialized function for projecting a multiDimArray using a Min operator.
template<typename GUM_SCALAR>
GUM_SCALAR * projectMinMultiDimArray4Pointers (const MultiDimArray< GUM_SCALAR * > *table, Instantiation *instantiation=0)
 A specialized function for projecting a multiDimArray using a Min operator.
template<typename GUM_SCALAR>
GUM_SCALAR * projectMinMultiDimArray4Pointers (const MultiDimImplementation< GUM_SCALAR * > *table, Instantiation *instantiation=0)
 A specialized function for projecting a multiDimArray using a Min operator.
Project Sum Operators
template<typename GUM_SCALAR>
GUM_SCALAR projectSumMultiDimArray (const MultiDimArray< GUM_SCALAR > *table, Instantiation *instantiation=0)
 a specialized function for projecting a multiDimArray using a Sum operator
template<typename GUM_SCALAR>
GUM_SCALAR projectSumMultiDimArray (const MultiDimImplementation< GUM_SCALAR > *table, Instantiation *instantiation=0)
 a specialized function for projecting a multiDimArray using a Sum operator
template<typename GUM_SCALAR>
GUM_SCALAR * projectSumMultiDimArray4Pointers (const MultiDimArray< GUM_SCALAR * > *table, Instantiation *instantiation=0)
 a specialized function for projecting a multiDimArray using a Sum operator
template<typename GUM_SCALAR>
GUM_SCALAR * projectSumMultiDimArray4Pointers (const MultiDimImplementation< GUM_SCALAR * > *table, Instantiation *instantiation=0)
 a specialized function for projecting a multiDimArray using a Sum operator
Project Multiply Operators
template<typename GUM_SCALAR>
GUM_SCALAR projectProductMultiDimArray (const MultiDimArray< GUM_SCALAR > *table, Instantiation *instantiation=0)
 a function for projecting a multiDimArray using a Product operator
template<typename GUM_SCALAR>
GUM_SCALAR projectProductMultiDimArray (const MultiDimImplementation< GUM_SCALAR > *table, Instantiation *instantiation=0)
 a function for projecting a multiDimArray using a Product operator
template<typename GUM_SCALAR>
GUM_SCALAR * projectProductMultiDimArray4Pointers (const MultiDimArray< GUM_SCALAR * > *table, Instantiation *instantiation=0)
 a function for projecting a multiDimArray using a Product operator
template<typename GUM_SCALAR>
GUM_SCALAR * projectProductMultiDimArray4Pointers (const MultiDimImplementation< GUM_SCALAR * > *table, Instantiation *instantiation=0)
 a function for projecting a multiDimArray using a Product operator
Add MultiDims
template<typename T>
MultiDimArray< T > * add2MultiDimArrays (const MultiDimArray< T > *t1, const MultiDimArray< T > *t2)
 a specialized function for summing two multiDimArrays
template<typename T>
MultiDimImplementation< T > * add2MultiDimArrays (const MultiDimImplementation< T > *t1, const MultiDimImplementation< T > *t2)
 a specialized function for summing two multiDimArrays
template<typename T>
MultiDimArray< T * > * add2MultiDimArrays4Pointers (const MultiDimArray< T * > *t1, const MultiDimArray< T * > *t2)
 a specialized function for summing two multiDimArrays
template<typename T>
MultiDimImplementation< T * > * add2MultiDimArrays4Pointers (const MultiDimImplementation< T * > *t1, const MultiDimImplementation< T * > *t2)
 a specialized function for summing two multiDimArrays
template<typename T>
MultiDimFunctionGraph< T > * add2MultiDimFunctionGraphs (const MultiDimFunctionGraph< T > *t1, const MultiDimFunctionGraph< T > *t2)
 a specialized function for summing two multiDimArrays
template<typename T>
MultiDimImplementation< T > * add2MultiDimFunctionGraphs (const MultiDimImplementation< T > *t1, const MultiDimImplementation< T > *t2)
 a specialized function for summing two multiDimArrays
Substract MultiDims
template<typename T>
MultiDimArray< T > * subtract2MultiDimArrays (const MultiDimArray< T > *t1, const MultiDimArray< T > *t2)
 a specialized function for subtracting two multiDimArrays
template<typename T>
MultiDimImplementation< T > * subtract2MultiDimArrays (const MultiDimImplementation< T > *t1, const MultiDimImplementation< T > *t2)
 a specialized function for subtracting two multiDimArrays
template<typename T>
MultiDimArray< T * > * subtract2MultiDimArrays4Pointers (const MultiDimArray< T * > *t1, const MultiDimArray< T * > *t2)
 a specialized function for subtracting two multiDimArrays
template<typename T>
MultiDimImplementation< T * > * subtract2MultiDimArrays4Pointers (const MultiDimImplementation< T * > *t1, const MultiDimImplementation< T * > *t2)
 a specialized function for subtracting two multiDimArrays
template<typename T>
MultiDimFunctionGraph< T > * subtract2MultiDimFunctionGraphs (const MultiDimFunctionGraph< T > *t1, const MultiDimFunctionGraph< T > *t2)
 a specialized function for subtracting two multiDimArrays
template<typename T>
MultiDimImplementation< T > * subtract2MultiDimFunctionGraphs (const MultiDimImplementation< T > *t1, const MultiDimImplementation< T > *t2)
 a specialized function for subtracting two multiDimArrays
Multiply MultiDims
template<typename T>
MultiDimArray< T > * multiply2MultiDimArrays (const MultiDimArray< T > *t1, const MultiDimArray< T > *t2)
 a specialized function for multiplying two multiDimArrays
template<typename T>
MultiDimImplementation< T > * multiply2MultiDimArrays (const MultiDimImplementation< T > *t1, const MultiDimImplementation< T > *t2)
 a specialized function for multiplying two multiDimArrays
template<typename T>
MultiDimArray< T * > * multiply2MultiDimArrays4Pointers (const MultiDimArray< T * > *t1, const MultiDimArray< T * > *t2)
 a specialized function for multiplying two multiDimArrays
template<typename T>
MultiDimImplementation< T * > * multiply2MultiDimArrays4Pointers (const MultiDimImplementation< T * > *t1, const MultiDimImplementation< T * > *t2)
 a specialized function for multiplying two multiDimArrays
template<typename T>
MultiDimFunctionGraph< T > * multiply2MultiDimFunctionGraphs (const MultiDimFunctionGraph< T > *t1, const MultiDimFunctionGraph< T > *t2)
 a specialized function for multiplying two multiDimArrays
template<typename T>
MultiDimImplementation< T > * multiply2MultiDimFunctionGraphs (const MultiDimImplementation< T > *t1, const MultiDimImplementation< T > *t2)
 a specialized function for multiplying two multiDimArrays
Divide MultiDims
template<typename T>
MultiDimArray< T > * divide2MultiDimArrays (const MultiDimArray< T > *t1, const MultiDimArray< T > *t2)
 a specialized function for dividing two multiDimArrays
template<typename T>
MultiDimImplementation< T > * divide2MultiDimArrays (const MultiDimImplementation< T > *t1, const MultiDimImplementation< T > *t2)
 a specialized function for dividing two multiDimArrays
template<typename T>
MultiDimArray< T * > * divide2MultiDimArrays4Pointers (const MultiDimArray< T * > *t1, const MultiDimArray< T * > *t2)
 a specialized function for dividing two multiDimArrays
template<typename T>
MultiDimImplementation< T * > * divide2MultiDimArrays4Pointers (const MultiDimImplementation< T * > *t1, const MultiDimImplementation< T * > *t2)
 a specialized function for dividing two multiDimArrays
template<typename T>
MultiDimFunctionGraph< T > * divide2MultiDimFunctionGraphs (const MultiDimFunctionGraph< T > *t1, const MultiDimFunctionGraph< T > *t2)
 a specialized function for dividing two multiDimArrays
template<typename T>
MultiDimImplementation< T > * divide2MultiDimFunctionGraphs (const MultiDimImplementation< T > *t1, const MultiDimImplementation< T > *t2)
 a specialized function for dividing two multiDimArrays
Maximise MultiDims
template<typename T>
MultiDimFunctionGraph< T > * maximise2MultiDimFunctionGraphs (const MultiDimFunctionGraph< T > *t1, const MultiDimFunctionGraph< T > *t2)
 a specialized function for compare value from two multiDimFunctionGraphs and gets the maximal
template<typename T>
MultiDimImplementation< T > * maximise2MultiDimFunctionGraphs (const MultiDimImplementation< T > *t1, const MultiDimImplementation< T > *t2)
 a specialized function for compare value from two multiDimFunctionGraphs and gets the maximal
Operators over MultiDim
template<typename T>
MultiDimImplementation< T > * operator+ (const MultiDimImplementation< T > &, const MultiDimImplementation< T > &)
 The function to be used to add two MultiDimImplementations.
template<typename T>
MultiDimImplementation< T > * operator- (const MultiDimImplementation< T > &, const MultiDimImplementation< T > &)
 The function to be used to subtract two MultiDimImplementations.
template<typename T>
MultiDimImplementation< T > * operator* (const MultiDimImplementation< T > &, const MultiDimImplementation< T > &)
 The function to be used to multiply two MultiDimImplementations.
template<typename T>
MultiDimImplementation< T > * operator/ (const MultiDimImplementation< T > &, const MultiDimImplementation< T > &)
 The function to be used to divide two MultiDimImplementations.
Project Max for MultiDim
template<typename GUM_SCALAR>
MultiDimArray< GUM_SCALAR > * projectMaxMultiDimArray (const MultiDimArray< GUM_SCALAR > *table, const gum::VariableSet &del_vars)
 a specialized function for projecting a multiDimArray using a Max operator
template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * projectMaxMultiDimArray (const MultiDimImplementation< GUM_SCALAR > *table, const gum::VariableSet &del_vars)
 a specialized function for projecting a multiDimArray using a Max operator
template<typename GUM_SCALAR>
MultiDimArray< GUM_SCALAR * > * projectMaxMultiDimArray4Pointers (const MultiDimArray< GUM_SCALAR * > *table, const gum::VariableSet &del_vars)
 a specialized function for projecting a multiDimArray using a Max operator
template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR * > * projectMaxMultiDimArray4Pointers (const MultiDimImplementation< GUM_SCALAR * > *table, const gum::VariableSet &del_vars)
 a specialized function for projecting a multiDimArray using a Max operator
Project Min for MultiDim
template<typename GUM_SCALAR>
MultiDimArray< GUM_SCALAR > * projectMinMultiDimArray (const MultiDimArray< GUM_SCALAR > *table, const gum::VariableSet &del_vars)
 a specialized function for projecting a multiDimArray using a Min operator
template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * projectMinMultiDimArray (const MultiDimImplementation< GUM_SCALAR > *table, const gum::VariableSet &del_vars)
 a specialized function for projecting a multiDimArray using a Min operator
template<typename GUM_SCALAR>
MultiDimArray< GUM_SCALAR * > * projectMinMultiDimArray4Pointers (const MultiDimArray< GUM_SCALAR * > *table, const gum::VariableSet &del_vars)
 a specialized function for projecting a multiDimArray using a Min operator
template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR * > * projectMinMultiDimArray4Pointers (const MultiDimImplementation< GUM_SCALAR * > *table, const gum::VariableSet &del_vars)
 a specialized function for projecting a multiDimArray using a Min operator
Project Sum for MultiDim
template<typename GUM_SCALAR>
MultiDimArray< GUM_SCALAR > * projectSumMultiDimArray (const MultiDimArray< GUM_SCALAR > *table, const gum::VariableSet &del_vars)
 a specialized function for projecting a multiDimArray using a summation
template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * projectSumMultiDimArray (const MultiDimImplementation< GUM_SCALAR > *table, const gum::VariableSet &del_vars)
 a specialized function for projecting a multiDimArray using a summation
template<typename GUM_SCALAR>
MultiDimArray< GUM_SCALAR * > * projectSumMultiDimArray4Pointers (const MultiDimArray< GUM_SCALAR * > *table, const gum::VariableSet &del_vars)
 a specialized function for projecting a multiDimArray using a summation
template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR * > * projectSumMultiDimArray4Pointers (const MultiDimImplementation< GUM_SCALAR * > *table, const gum::VariableSet &del_vars)
 a specialized function for projecting a multiDimArray using a summation
Project Product for MultiDim
template<typename GUM_SCALAR>
MultiDimArray< GUM_SCALAR > * projectProductMultiDimArray (const MultiDimArray< GUM_SCALAR > *table, const gum::VariableSet &del_vars)
 a specialized function for projecting a multiDimArray using products
template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * projectProductMultiDimArray (const MultiDimImplementation< GUM_SCALAR > *table, const gum::VariableSet &del_vars)
 a specialized function for projecting a multiDimArray using products
template<typename GUM_SCALAR>
MultiDimArray< GUM_SCALAR * > * projectProductMultiDimArray4Pointers (const MultiDimArray< GUM_SCALAR * > *table, const gum::VariableSet &del_vars)
 a specialized function for projecting a multiDimArray using products
template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR * > * projectProductMultiDimArray4Pointers (const MultiDimImplementation< GUM_SCALAR * > *table, const gum::VariableSet &del_vars)
 a specialized function for projecting a multiDimArray using products
Project Function for MultiDim
template<typename GUM_SCALAR>
MultiDimArray< GUM_SCALAR > * ProjectFuncMultiDimArray (const MultiDimArray< GUM_SCALAR > *t1, const MultiDimArray< GUM_SCALAR > *t2, const GUM_SCALAR(*f)(const GUM_SCALAR &, const GUM_SCALAR &))
 a specialized function for functionally projecting a multiDimArray
template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * combine2MultiDimArrays (const MultiDimImplementation< GUM_SCALAR > *t1, const MultiDimImplementation< GUM_SCALAR > *t2, const GUM_SCALAR(*f)(const GUM_SCALAR &, const GUM_SCALAR &))
 a specialized function for functionally projecting a multiDimArray
Projectors For Function Graphs
template<typename GUM_SCALAR>
MultiDimFunctionGraph< GUM_SCALAR > * projectMaxMultiDimFunctionGraph (const MultiDimFunctionGraph< GUM_SCALAR > *table, const gum::VariableSet &del_vars)
 a specialized function for projecting a multiDimFunctionGraph using a Max operator
template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * projectMaxMultiDimFunctionGraph (const MultiDimImplementation< GUM_SCALAR > *table, const gum::VariableSet &del_vars)
 a specialized function for projecting a multiDimFunctionGraph using a Max operator
template<typename GUM_SCALAR>
MultiDimFunctionGraph< GUM_SCALAR > * projectMinMultiDimFunctionGraph (const MultiDimFunctionGraph< GUM_SCALAR > *table, const gum::VariableSet &del_vars)
 a specialized function for projecting a multiDimFunctionGraph using a Min operator
template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * projectMinMultiDimFunctionGraph (const MultiDimImplementation< GUM_SCALAR > *table, const gum::VariableSet &del_vars)
 a specialized function for projecting a multiDimFunctionGraph using a Min operator
template<typename GUM_SCALAR>
MultiDimFunctionGraph< GUM_SCALAR > * projectSumMultiDimFunctionGraph (const MultiDimFunctionGraph< GUM_SCALAR > *table, const gum::VariableSet &del_vars)
 a specialized function for projecting a multiDimFunctionGraph using a summation
template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * projectSumMultiDimFunctionGraph (const MultiDimImplementation< GUM_SCALAR > *table, const gum::VariableSet &del_vars)
 a specialized function for projecting a multiDimFunctionGraph using a summation
template<typename GUM_SCALAR>
MultiDimFunctionGraph< GUM_SCALAR > * projectProductMultiDimFunctionGraph (const MultiDimFunctionGraph< GUM_SCALAR > *table, const gum::VariableSet &del_vars)
 a specialized function for projecting a multiDimFunctionGraph using products
template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * projectProductMultiDimFunctionGraph (const MultiDimImplementation< GUM_SCALAR > *table, const gum::VariableSet &del_vars)
 a specialized function for projecting a multiDimFunctionGraph using products

Variables

const double VariableLog2ParamComplexityCTable [4][1000]
constexpr std::size_t VariableLog2ParamComplexityCTableRSize {std::size_t(4)}
constexpr std::size_t VariableLog2ParamComplexityCTableNSize {std::size_t(1000)}
template<>
const float MultiDimFunctionGraph< float >::defaultValue = 0.0f
template<>
const double MultiDimFunctionGraph< double >::defaultValue = 0.0
template<typename T1, typename T2>
using forbidden_type = typename std::enable_if< !std::is_same< T1, T2 >::value, int >::type
 Forbidden_type<T1,T2> return the "int" type if T1 and T2 are of the same type, else nothing.
bool Memcmp (const void *const in_, const void *const out_, unsigned long size)
 Cross-platform replacement for memcmp.
void _atexit_ ()
 Used for debug purpose.
using EdgeSet = Set< Edge >
 Some typdefs and define for shortcuts ...
using NodeSet = Set< NodeId >
 Some typdefs and define for shortcuts ...
using ArcSet = Set< Arc >
 Some typdefs and define for shortcuts ...
using ArcSetIterator = ArcSet::const_iterator
 Some typdefs and define for shortcuts ...
using EdgeSetIterator = EdgeSet::const_iterator
 Some typdefs and define for shortcuts ...
using NodeSetIterator = NodeSet::const_iterator
 Some typdefs and define for shortcuts ...
const NodeSet emptyNodeSet
 Some typdefs and define for shortcuts ...

Detailed Description

gum is the global namespace for all aGrUM entities

c++11 stuff, like declval ( decltype from prototype without a default constructor )

include the inlined functions if necessary

the function to be used to partially instantiate a MultiDimDecorator

class for LOGIT implementation as multiDim

Author
Pierre-Henri WUILLEMIN(_at_LIP6) & Christophe GONZALES(_at_AMU)
Todo
virtual for all functions that MAY be one day redefined in any derived class

Typedef Documentation

◆ FactorTable

template<typename GUM_SCALAR>
using gum::FactorTable = HashTable< NodeSet, const Tensor< GUM_SCALAR >* >

Definition at line 61 of file IMarkovRandomField.h.

◆ HybridGibbsSampling

template<typename GUM_SCALAR>
using gum::HybridGibbsSampling = LoopySamplingInference< GUM_SCALAR, GibbsSampling >

Definition at line 247 of file loopySamplingInference.h.

◆ HybridImportanceSampling

template<typename GUM_SCALAR>
using gum::HybridImportanceSampling = LoopySamplingInference< GUM_SCALAR, ImportanceSampling >

Definition at line 245 of file loopySamplingInference.h.

◆ HybridMonteCarloSampling

template<typename GUM_SCALAR>
using gum::HybridMonteCarloSampling = LoopySamplingInference< GUM_SCALAR, MonteCarloSampling >

Definition at line 241 of file loopySamplingInference.h.

◆ HybridWeightedSampling

template<typename GUM_SCALAR>
using gum::HybridWeightedSampling = LoopySamplingInference< GUM_SCALAR, WeightedSampling >

Definition at line 243 of file loopySamplingInference.h.

◆ JoinTree

a join tree is a clique graph satisfying the running intersection property (but some cliques may be included into others)

Definition at line 330 of file cliqueGraph.h.

◆ JunctionTree

a junction tree is a clique graph satisfying the running intersection property and such that no clique is included into another one.

Definition at line 326 of file cliqueGraph.h.

◆ pair_iterator

Definition at line 70 of file fusionContext.h.

◆ ThreadExecutor

◆ VariableSet

Definition at line 187 of file discreteVariable.h.

Enumeration Type Documentation

◆ BinTreeDir

enum class gum::BinTreeDir : char
strong

The direction of a given edge in a binary tree.

Enumerator
LEFT_CHILD 
RIGHT_CHILD 
NO_PARENT 

Definition at line 56 of file binTreeNode.h.

◆ Complexity

enum class gum::Complexity : char
strong

Complexity allows to characterize the awaited difficulty for an algorithm given a specific instance Therefore this is not a theoretical characterization but rather a pragmatic rate of that very instance.

Enumerator
Heavy 
Difficult 
Correct 

Definition at line 64 of file BNdistance.h.

◆ FactorySimulationAction

Enumerator
GoNorth 
GoEast 
GoSouth 
GoWest 
PickUp 
PutDown 
FillUp 

Definition at line 80 of file factorySimulator.h.

80 : Idx {
81 GoNorth = 0,
82 GoEast = 1,
83 GoSouth = 2,
84 GoWest = 3,
85 PickUp = 4,
86 PutDown = 5,
87 FillUp = 6
88 };
Size Idx
Type for indexes.
Definition types.h:79

◆ FactorySimulationLandmark

Enumerator
HOME 
WORK 
THEATER 
CLUB 
Factory 

Definition at line 62 of file factorySimulator.h.

62: Idx { HOME = 0, WORK = 1, THEATER = 2, CLUB = 3, Factory = 4 };

◆ FactorySimulationLandmarkX

Enumerator
HOMEX 
WORKX 
THEATERX 
CLUBX 
STATIONX 

Definition at line 64 of file factorySimulator.h.

64 : Idx {
65 HOMEX = 0,
66 WORKX = 0,
67 THEATERX = 3,
68 CLUBX = 4,
69 STATIONX = 2
70 };

◆ FactorySimulationLandmarkY

Enumerator
HOMEY 
WORKY 
THEATERY 
CLUBY 
STATIONY 

Definition at line 72 of file factorySimulator.h.

72 : Idx {
73 HOMEY = 0,
74 WORKY = 4,
75 THEATERY = 0,
76 CLUBY = 4,
77 STATIONY = 1
78 };

◆ FindBarrenNodesType

enum class gum::FindBarrenNodesType
strong

type of algorithm to determine barren nodes

When constructing messages from one clique to its neighbor, we can determine that some nodes are barren, i.e., they are the only one at the left hand side of a conditioning bar and they appear in only one tensor. In such case, in a classical BN inference, there is no need to take them into account since their removal will necessarily create a constant tensor. So, we can discard their tensor from the computation. However, when computing p(evidence), we should not do that because the constant is important and need be computed.

Enumerator
FIND_NO_BARREN_NODES 
FIND_BARREN_NODES 

Definition at line 73 of file BayesNetInference.h.

73 {
74 FIND_NO_BARREN_NODES, // do not try to find barren nodes
75 FIND_BARREN_NODES // use a bottom-up algorithm to detect barren nodes
76 };

◆ FMDPfactory_state

enum class gum::FMDPfactory_state : char
strong

The enumeration of states in which the factory can be in.

Every documentation section's name indicates from which state you can call it's methods, and in which state it places the factory.

There is an exception for the delegated CPT definition methods which do not changes the state of the factory.

Enumerator
NONE 
VARIABLE 
ACTION 
TRANSITION 
COST 
REWARD 
DISCOUNT 

Definition at line 69 of file IfmdpFactory.h.

◆ LEARNERNAME

Enumerator
IMDDILEARNER 
ITILEARNER 

Definition at line 87 of file templateStrategy.h.

87{ IMDDILEARNER = 1, ITILEARNER = 2 };

◆ RelevantTensorsFinderType

enum class gum::RelevantTensorsFinderType
strong

type of algorithm for determining the relevant tensors for combinations using some d-separation analysis

When constructing messages from one clique to its neighbor, we can exploit d-separation to determine that some tensors are irrelevant for the message computation. So we can discard them and, thereby, speed-up the computations.

Enumerator
FIND_ALL 
DSEP_BAYESBALL_NODES 
DSEP_BAYESBALL_TENSORS 
DSEP_KOLLER_FRIEDMAN_2009 

Definition at line 63 of file relevantTensorsFinderType.h.

63 {
64 FIND_ALL, // do not perform d-separation analysis
65 DSEP_BAYESBALL_NODES, // BayesBall requisite nodes -> tensors
66 DSEP_BAYESBALL_TENSORS, // BayesBall requisite tensors (directly)
67 DSEP_KOLLER_FRIEDMAN_2009 // Koller & Friedman 2009 requisite tensors
68 };

◆ ScheduleOperatorType

enum class gum::ScheduleOperatorType : char
strong

the currently supported types of "low-level" operators

the types of "low-level" operators used for scheduling inferences

Enumerator
COMBINE_MULTIDIM 

combine 2 ScheduleMultiDims

PROJECT_MULTIDIM 

project a ScheduleMultiDim over a subset of its variables

DELETE_MULTIDIM 

remove from memory a multidimensional table stored in a ScheduleMultiDim

STORE_MULTIDIM 

store a multidimensional table outside of the scheduler

Definition at line 67 of file scheduleOperator.h.

67 : char {
76 };
@ STORE_MULTIDIM
store a multidimensional table outside of the scheduler
@ PROJECT_MULTIDIM
project a ScheduleMultiDim over a subset of its variables
@ DELETE_MULTIDIM
remove from memory a multidimensional table stored in a ScheduleMultiDim
@ COMBINE_MULTIDIM
combine 2 ScheduleMultiDims

◆ SchedulerType

the type of scheduler that can be used

Enumerator
SEQUENTIAL 
PARALLEL_OPERATORS 

Definition at line 61 of file scheduler.h.

61 {
62 SEQUENTIAL, // fully sequential scheduler
63 PARALLEL_OPERATORS // combinations and projections are dispatched among threads
64 };
@ PARALLEL_OPERATORS
Definition scheduler.h:63
@ SEQUENTIAL
Definition scheduler.h:62

◆ StaticInitializer

enum class gum::StaticInitializer : char
strong
Enumerator
CONSTINIT 
CONSTEXPR 

Definition at line 68 of file staticInitializer.h.

◆ TaxiSimulationAction

Enumerator
GoNorth 
GoEast 
GoSouth 
GoWest 
PickUp 
PutDown 
FillUp 

Definition at line 81 of file taxiSimulator.h.

81 : Idx {
82 GoNorth = 1,
83 GoEast = 2,
84 GoSouth = 3,
85 GoWest = 4,
86 PickUp = 5,
87 PutDown = 6,
88 FillUp = 7
89 };

◆ TaxiSimulationLandmark

Enumerator
HOME 
WORK 
THEATER 
CLUB 
TAXI 

Definition at line 63 of file taxiSimulator.h.

63: Idx { HOME = 0, WORK = 1, THEATER = 2, CLUB = 3, TAXI = 4 };

◆ TaxiSimulationLandmarkX

Enumerator
HOMEX 
WORKX 
THEATERX 
CLUBX 
STATIONX 

Definition at line 65 of file taxiSimulator.h.

65 : Idx {
66 HOMEX = 0,
67 WORKX = 0,
68 THEATERX = 3,
69 CLUBX = 4,
70 STATIONX = 2
71 };

◆ TaxiSimulationLandmarkY

Enumerator
HOMEY 
WORKY 
THEATERY 
CLUBY 
STATIONY 

Definition at line 73 of file taxiSimulator.h.

73 : Idx {
74 HOMEY = 0,
75 WORKY = 4,
76 THEATERY = 0,
77 CLUBY = 4,
78 STATIONY = 1
79 };

◆ TESTNAME

Enumerator
GTEST 
CHI2TEST 
LEASTSQUARETEST 

Definition at line 60 of file templateStrategy.h.

60{ GTEST = 1, CHI2TEST = 2, LEASTSQUARETEST = 3 };
@ LEASTSQUARETEST

◆ VarType

enum class gum::VarType : char
strong
Enumerator
DISCRETIZED 
LABELIZED 
INTEGER 
NUMERICAL 
RANGE 
CONTINUOUS 

Definition at line 60 of file variable.h.

Function Documentation

◆ _initTensorOperators__()

template<typename GUM_SCALAR>
void gum::_initTensorOperators__ ( )

Definition at line 62 of file multiDimDecorator_tpl.h.

62 {
63 // ensure that only one thread will register the projections
64 static std::once_flag first;
65 std::call_once(first, []() {
66 // register the operators that will be used by the decorator
68 op.init();
69
70 // register the projectors that will be used by the decorator
72 proj.init();
73
74 // register the projectors that will be used by the decorator
76 comp_proj.init();
77
78 // register the partial instantiators that will be used by the decorator
80 inst.init();
81 });
82 }
a class used to register complete projections over non-pointers types
a class used to register operators over non-pointers types
A class used to register instantiation functions over non-pointers types.
void init()
Initialize the partial instantiation functions.
a class used to register projections over non-pointers types

References gum::CompleteProjections4MultiDimInitialize< GUM_SCALAR >::init(), gum::Operators4MultiDimInitialize< GUM_SCALAR >::init(), gum::PartialInstantiation4MultiDimInitialize< GUM_SCALAR >::init(), and gum::Projections4MultiDimInitialize< GUM_SCALAR >::init().

Referenced by gum::MultiDimDecorator< GUM_SCALAR >::MultiDimDecorator(), gum::MultiDimDecorator< GUM_SCALAR >::MultiDimDecorator(), and gum::MultiDimDecorator< GUM_SCALAR >::operator=().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ abs()

template<typename GUM_SCALAR>
Tensor< GUM_SCALAR > gum::abs ( const Tensor< GUM_SCALAR > & arg)
inline

Definition at line 501 of file tensor.h.

501 {
502 return arg.new_abs();
503 }

◆ build_node()

template<typename GUM_SCALAR>
NodeId gum::build_node ( gum::BayesNet< GUM_SCALAR > & bn,
const std::string & node,
const std::string & default_domain )

Definition at line 77 of file BayesNet_tpl.h.

79 {
80 auto v = fastVariable< GUM_SCALAR >(node, default_domain);
81
82 NodeId res;
83 try {
84 res = bn.idFromName(v->name());
85 } catch (gum::NotFound const&) { res = bn.add(*v); }
86 return res;
87 }
NodeId add(const DiscreteVariable &var)
Add a variable to the gum::BayesNet.
NodeId idFromName(const std::string &name) const final
Returns a variable's id given its name in the gum::BayesNet.
Size NodeId
Type for node ids.
std::unique_ptr< DiscreteVariable > fastVariable(std::string var_description, Size default_domain_size)
Create a pointer on a Discrete Variable from a "fast" syntax.

References gum::BayesNet< GUM_SCALAR >::add(), fastVariable(), and gum::BayesNet< GUM_SCALAR >::idFromName().

Referenced by gum::BayesNet< GUM_SCALAR >::fastPrototype().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ build_node_for_ID()

template<typename GUM_SCALAR>
NodeId gum::build_node_for_ID ( gum::InfluenceDiagram< GUM_SCALAR > & infdiag,
std::string node,
const std::string & domain )

Definition at line 60 of file influenceDiagram_tpl.h.

62 {
63 bool isUtil = false;
64 bool isDeci = false;
65 bool isChanc = false;
66 std::string ds = domain;
67 switch (*(node.begin())) {
68 case '*' :
69 isDeci = true;
70 node.erase(0, 1);
71 break;
72 case '$' :
73 isUtil = true;
74 ds = "[1]";
75 node.erase(0, 1);
76 break;
77 default : isChanc = true;
78 }
79 auto v = fastVariable< GUM_SCALAR >(node, ds);
80
81 NodeId res;
82 try {
83 res = infdiag.idFromName(v->name());
84 } catch (gum::NotFound&) {
85 if (isChanc) res = infdiag.addChanceNode(*v);
86 else if (isDeci) res = infdiag.addDecisionNode(*v);
87 else if (isUtil) res = infdiag.addUtilityNode(*v);
88 else
89 GUM_ERROR(FatalError,
90 "No type (chance, decision or utility) for the node '" << node << "'.")
91 }
92
93 return res;
94 }
NodeId addChanceNode(const DiscreteVariable &variable, NodeId id=0)
Add a chance variable, it's associate node and it's CPT.
NodeId addUtilityNode(const DiscreteVariable &variable, NodeId id=0)
Add a utility variable, it's associate node and it's UT.
NodeId addDecisionNode(const DiscreteVariable &variable, NodeId id=0)
Add a decision variable.
NodeId idFromName(const std::string &name) const final
Getter by name.
#define GUM_ERROR(type, msg)
Definition exceptions.h:72

References gum::InfluenceDiagram< GUM_SCALAR >::addChanceNode(), gum::InfluenceDiagram< GUM_SCALAR >::addDecisionNode(), gum::InfluenceDiagram< GUM_SCALAR >::addUtilityNode(), fastVariable(), GUM_ERROR, and gum::InfluenceDiagram< GUM_SCALAR >::idFromName().

Referenced by gum::InfluenceDiagram< GUM_SCALAR >::fastPrototype().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ build_node_for_MN()

template<typename GUM_SCALAR>
NodeId gum::build_node_for_MN ( MarkovRandomField< GUM_SCALAR > & mn,
const std::string & node,
const std::string & default_domain )

Definition at line 75 of file MarkovRandomField_tpl.h.

77 {
78 auto v = fastVariable< GUM_SCALAR >(node, default_domain);
79
80 NodeId res;
81 try {
82 res = mn.idFromName(v->name());
83 } catch (gum::NotFound&) { res = mn.add(*v); }
84 return res;
85 }

References fastVariable().

Here is the call graph for this function:

◆ combine2MultiDimArrays()

template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * gum::combine2MultiDimArrays ( const MultiDimImplementation< GUM_SCALAR > * t1,
const MultiDimImplementation< GUM_SCALAR > * t2,
const GUM_SCALAR(* )(const GUM_SCALAR &, const GUM_SCALAR &) )

a specialized function for functionally projecting a multiDimArray

The function produces a tensorial functional combination of t1 and t2, that is, if t1 and t2 are multiDimArrays over variables A,B,C,D and D,B,E respectively, function combine2MultiDimArrays will return a multiDimArray T defined as T[A,B,C,D,E] = f ( t1[A,B,C,D],t2[D,B,E] ) for all A,B,C,D,E.

Returns
function combine2MultiDimArrays allocates on the heap the new T multiDimArray and returns it.

◆ dispatchRangeToThreads()

std::vector< std::pair< Idx, Idx > > gum::dispatchRangeToThreads ( Idx beg,
Idx end,
unsigned int nb_threads )

returns a vector equally splitting elements of a range among threads

Parameters
begthe beginning of the range (included)
endthe end of the range (excluded)
nb_threadsthe number of threads over which we would like performing the splitting
Returns
a vector containing the range [beginning,end) that each thread should work on

Definition at line 76 of file threads.cpp.

76 {
77 // there should always be at least one thread
78 const auto real_nb_threads = nb_threads < 1 ? Idx(1) : Idx(nb_threads);
79 const Idx range_size = end - beg;
80 std::vector< std::pair< Idx, Idx > > result;
81 result.reserve(real_nb_threads);
82
83 // if the number of elements in the range is lower than or equal to the
84 // number of threads, assign only one element per thread
85 if (range_size <= real_nb_threads) {
86 for (Idx i = Idx(0); i < range_size; ++i) {
87 result.emplace_back(i, i + 1);
88 }
89 for (Idx i = range_size; i < real_nb_threads; ++i)
90 result.emplace_back(range_size, range_size);
91 } else {
92 // here there are more elements in the range than threads. So try to balance
93 // the number of elements among the threads
94 Idx nb_elts_par_thread = range_size / real_nb_threads;
95 Idx rest_elts = range_size - nb_elts_par_thread * real_nb_threads;
96
97 Idx begin_index = beg;
98 for (Idx i = Idx(0); i < real_nb_threads; ++i) {
99 Idx end_index = begin_index + nb_elts_par_thread;
100 if (rest_elts != Idx(0)) {
101 ++end_index;
102 --rest_elts;
103 }
104 result.emplace_back(begin_index, end_index);
105 begin_index = end_index;
106 }
107 }
108
109 return result;
110 }

Referenced by gum::credal::CredalNet< GUM_SCALAR >::_H2Vlrs_(), gum::credal::CNLoopyPropagation< GUM_SCALAR >::enum_combi_(), gum::credal::CNLoopyPropagation< GUM_SCALAR >::enum_combi_(), gum::credal::MultipleInferenceEngine< GUM_SCALAR, BNInferenceEngine >::expFusion_(), gum::credal::CNMonteCarloSampling< GUM_SCALAR, BNInferenceEngine >::makeInference(), and gum::credal::MultipleInferenceEngine< GUM_SCALAR, BNInferenceEngine >::verticesFusion_().

Here is the caller graph for this function:

◆ fastVariable() [1/2]

template<typename GUM_SCALAR = double>
std::unique_ptr< DiscreteVariable > gum::fastVariable ( std::string var_description,
const std::string & default_domain = "[2]" )

Create a pointer on a Discrete Variable from a "fast" syntax.

Parameters
var_description: the string in "fast" syntax
default_domain_size: the domain size if the description does not give this information. Note that if default_domain_size=1, a variable with a domain Size=1 is not an error.
Returns
an unique_ptr on the new variable.

Definition at line 61 of file allDiscreteVariables_tpl.h.

62 {
63 Size ds = 0;
64 long range_min = 0;
65 long range_max = 1;
66 std::vector< std::string > labels;
67 std::vector< GUM_SCALAR > ticks;
68 std::string name;
69
70 std::vector< int > values;
71 std::vector< double > numerical_values;
72
73 trim(var_description);
74
75 if (default_domain.size() == 0) GUM_ERROR(InvalidArgument, "default_domain can not be empty")
76
77 auto t = *default_domain.begin();
78 if (t != '[' && t != '{')
80 "default_domain (" << default_domain << ") must start with '[' or '{'")
81
82 if (var_description.find('[') == std::string::npos
83 && var_description.find('{') == std::string::npos) {
84 var_description += default_domain;
85 }
86
87 // [1,3,5]...
88 if (*(var_description.rbegin()) == ']') {
89 auto posBrack = var_description.find('[');
90 if (posBrack != std::string::npos) {
91 name = var_description.substr(0, posBrack);
92 const auto& s_args
93 = var_description.substr(posBrack + 1, var_description.size() - posBrack - 2);
94 const auto& args = split(s_args, ",");
95 if (args.empty()) {
96 // n[]
97 GUM_ERROR(InvalidArgument, "Empty range for variable " << var_description)
98 } else if (args.size() == 1) {
99 // n[4] or n[0:5.5:10]
100
101 const auto& labels = split(args[0], ":");
102
103 if (labels.size() == 3) {
104 // b{1.1:3.31:5}
105 const double fmin = std::stod(labels[0]);
106 const double fmax = std::stod(labels[1]);
107 const int nbr = std::stoi(labels[2]);
108
109 if (fmax <= fmin) { GUM_ERROR(InvalidArgument, "last<=first in " << var_description) }
110 if (nbr <= 1) { GUM_ERROR(InvalidArgument, "nbr<=1 in " << var_description) }
111 const double step = double((fmax - fmin) / nbr);
112 double current = fmin;
113 for (auto i = 0; i <= nbr; i += 1) {
114 ticks.push_back(current);
115 current += step;
116 }
117 ds = ticks.size();
118 } else {
119 // n[4]
120 int n = std::stoi(args[0]);
121 if (n < 2)
122 if (default_domain != "[1]")
123 GUM_ERROR(InvalidArgument, n << " is not >=2 for variable " << var_description)
124 ds = static_cast< Size >(n);
125 range_min = 0;
126 range_max = long(ds) - 1;
127 }
128 } else if (args.size() == 2) {
129 // n[5,10]
130 range_min = std::stol(args[0]);
131 range_max = std::stol(args[1]);
132
133 if (range_max < range_min)
134 GUM_ERROR(InvalidArgument,
135 "Invalid range for variable " << var_description << ": max<min")
136 if (range_max == range_min && default_domain != "[1]")
137 GUM_ERROR(InvalidArgument,
138 "Invalid range for variable "
139 << var_description << ": max==min not allowed if default_domain_size>1")
140
141 ds = static_cast< Size >(1 + range_max - range_min);
142 } else {
143 // n[3.14,5,10,12]
144 for (const auto& tick: args) {
145 ticks.push_back(static_cast< GUM_SCALAR >(std::strtod(tick.c_str(), nullptr)));
146 }
147 ds = args.size() - 1;
148 }
149 }
150 // var_description like "n{one|two|three}" or b{1.1:3.31:5}
151 } else if (*(var_description.rbegin()) == '}') {
152 auto posBrack = var_description.find('{');
153 if (posBrack != std::string::npos) {
154 name = var_description.substr(0, posBrack);
155 labels = split(var_description.substr(posBrack + 1, var_description.size() - posBrack - 2),
156 ":");
157 if (labels.size() == 3) {
158 // b{1.1:3.31:5}
159 const auto fmin = std::stod(labels[0]);
160 const auto fmax = std::stod(labels[1]);
161 const int nbr = std::stoi(labels[2]);
162
163 if (fmax <= fmin) { GUM_ERROR(InvalidArgument, "last<=first in " << var_description) }
164 if (nbr <= 1) { GUM_ERROR(InvalidArgument, "nbr<=1 in " << var_description) }
165 const double step = double((fmax - fmin) / (nbr - 1));
166
167 if ((trunc(step) == step) && (trunc(fmin) == fmin) && (trunc(fmax) == fmax)) {
168 // b{1:6:5} => IntegerVariable
169 labels.clear();
170 numerical_values.clear();
171 int v = int(fmin);
172 for (int i = 1; i <= nbr; i++) {
173 labels.push_back(std::to_string(v));
174 v += int(step);
175 }
176 ds = labels.size();
177 } else {
178 // b{1.3:6.3:5} => NumericalDiscreteVariable
179 labels.clear();
180 numerical_values.clear();
181 ds = nbr;
182 double v = fmin;
183 numerical_values.push_back(v);
184 for (auto i = 1; i < nbr - 1; i++) {
185 v += step;
186 numerical_values.push_back(v);
187 }
188 numerical_values.push_back(fmax);
189 }
190 } else {
191 labels
192 = split(var_description.substr(posBrack + 1, var_description.size() - posBrack - 2),
193 "|");
194 if (labels.size() < 2) {
195 if (labels.size() == 1
196 && default_domain != "[1]") // 1 is ok if default_domain_size==1
197 GUM_ERROR(InvalidArgument, "Not enough labels in var_description " << var_description)
198 }
199 if (!hasUniqueElts(labels)) {
200 GUM_ERROR(InvalidArgument, "Duplicate labels in var_description " << var_description)
201 }
202 ds = labels.size();
203 }
204 }
205 } else {
206 name = var_description;
207 }
208
209 if (ds == 0) {
210 GUM_ERROR(InvalidArgument, "No value for variable " << var_description << ".")
211 } else if (ds == 1) {
212 if (default_domain != "[1]")
213 GUM_ERROR(InvalidArgument,
214 "Only one value for variable " << var_description << " (2 at least are needed).")
215 }
216
217 if (!labels.empty()) {
218 if (std::all_of(labels.cbegin(), labels.cend(), isInteger)) {
219 for (const auto& label: labels)
220 values.push_back(std::stoi(label));
221 if (values.size() >= 2) {
222 // there can be an enumeration of consecutive integers
223 std::sort(values.begin(), values.end());
224 range_min = values[0];
225 auto v = range_min;
226 bool is_range = true;
227 for (const auto item: values) {
228 if (item != v) { is_range = false; }
229 v += 1;
230 }
231 if (is_range) {
232 values.clear(); // not an IntegerVariable but rather a RangeVariable
233 labels.clear();
234 range_max = v - 1;
235 }
236 }
237 } else if (std::all_of(labels.cbegin(), labels.cend(), isNumerical))
238 for (const auto& label: labels)
239 numerical_values.push_back(std::stod(label));
240 }
241
242 trim(name);
243
244 if (!values.empty()) {
245 return std::make_unique< IntegerVariable >(name, name, values);
246 } else if (!numerical_values.empty()) {
247 if (!std::all_of(numerical_values.cbegin(),
248 numerical_values.cend(),
250 GUM_ERROR(DefaultInLabel, "Infinite value is not allowed for variable " << name)
251 }
252 return std::make_unique< NumericalDiscreteVariable >(name, name, numerical_values);
253 } else if (!labels.empty()) {
254 return std::make_unique< LabelizedVariable >(name, name, labels);
255 } else if (!ticks.empty()) {
256 if (!std::all_of(ticks.cbegin(), ticks.cend(), gum::isfinite< double >)) {
257 GUM_ERROR(DefaultInLabel, "Infinite value is not allowed for variable " << name)
258 }
259 // if last character of name is a +, we remove the character from the name and set empirical
260 // to True
261 if (name.back() == '+') {
262 name.pop_back();
263 trim(name);
264 return std::make_unique< DiscretizedVariable< GUM_SCALAR > >(name, name, ticks, true);
265 } else {
266 return std::make_unique< DiscretizedVariable< GUM_SCALAR > >(name, name, ticks);
267 }
268 } else {
269 return std::make_unique< RangeVariable >(name, name, range_min, range_max);
270 }
271 }
Exception: at least one argument passed to a function is not what was expected.
std::size_t Size
In aGrUM, hashed values are unsigned long int.
Definition types.h:74
bool isNumerical(const std::string &val)
return true is a string contains a numerical (double) value
bool isInteger(const std::string &val)
return true is a string contains an integer value
bool hasUniqueElts(std::vector< T > const &x)
void trim(std::string &s)
trim from both ends (in place)
std::vector< std::string > split(const std::string &str, const std::string &delim)
Split str using the delimiter.
bool isfinite(T arg)
Definition math_utils.h:75
STL namespace.

References GUM_ERROR, isfinite(), isInteger(), isNumerical(), split(), and trim().

Here is the call graph for this function:

◆ fastVariable() [2/2]

template<typename GUM_SCALAR = double>
std::unique_ptr< DiscreteVariable > gum::fastVariable ( std::string var_description,
Size default_domain_size )

Create a pointer on a Discrete Variable from a "fast" syntax.

Parameters
var_description: the string in "fast" syntax
default_domain_size: the domain size if the description does not give this information. Note that if default_domain_size=1, a variable with a domain Size=1 is not an error.
Returns
an unique_ptr on the new variable.

Definition at line 51 of file allDiscreteVariables_tpl.h.

52 {
53 if (default_domain_size < 1)
54 GUM_ERROR(InvalidArgument, "default_domain_size can not be less than 1")
55
56 const std::string domain = "[" + std::to_string(default_domain_size) + "]";
57 return fastVariable< GUM_SCALAR >(var_description, domain);
58 }
std::string to_string(const Formula &f)

References fastVariable(), and GUM_ERROR.

Referenced by gum::InfluenceDiagram< GUM_SCALAR >::addChanceNode(), gum::InfluenceDiagram< GUM_SCALAR >::addDecisionNode(), gum::InfluenceDiagram< GUM_SCALAR >::addUtilityNode(), build_node(), build_node_for_ID(), build_node_for_MN(), and fastVariable().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ func2str()

std::string gum::func2str ( FormulaPart::token_function func)

Definition at line 79 of file formula.cpp.

79 {
80 switch (func) {
82 return "exp";
83 }
85 return "log";
86 }
88 return "ln";
89 }
91 return "pow";
92 }
94 return "sqrt";
95 }
97 return "nil";
98 }
99 default : {
100 GUM_ERROR(OperationNotAllowed, "unknown function")
101 }
102 }
103 }

References gum::FormulaPart::exp, GUM_ERROR, gum::FormulaPart::ln, gum::FormulaPart::log, gum::FormulaPart::nil, gum::FormulaPart::pow, and gum::FormulaPart::sqrt.

Referenced by gum::FormulaPart::str().

Here is the caller graph for this function:

◆ getMaxModality()

template<typename GUM_SCALAR>
gum::Size gum::getMaxModality ( gum::BayesNet< GUM_SCALAR > & bayesNet)

Definition at line 55 of file MCBayesNetGenerator_tpl.h.

55 {
56 gum::Size maxMod = 0;
57
58 for (auto node: bayesNet.nodes())
59 if (maxMod < bayesNet.variable(node).domainSize())
60 maxMod = bayesNet.variable(node).domainSize();
61
62 return maxMod;
63 }
const DiscreteVariable & variable(NodeId id) const final
Returns a gum::DiscreteVariable given its gum::NodeId in the gum::BayesNet.
const NodeGraphPart & nodes() const final
Returns a constant reference to the dag of this Bayes Net.
virtual Size domainSize() const =0

References gum::DiscreteVariable::domainSize(), gum::DAGmodel::nodes(), and gum::BayesNet< GUM_SCALAR >::variable().

Referenced by gum::MCBayesNetGenerator< GUM_SCALAR, ICPTGenerator, ICPTDisturber >::MCBayesNetGenerator().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getMaxNumberOfThreads()

INLINE unsigned int gum::threadsSTL::getMaxNumberOfThreads ( )

Returns the maximum number of threads you should use at any time.

By default, it should be the number of CPU cores available. Note that it is preferable to use function getNumberOfThreads(), which corresponds to the max number of threads the user wants to launch in parallel regions (this is by default equal to getMaxNumberOfThreads(), but the user may wish to change it for some reason).

Returns
Returns the maximum number of threads that should be used at any time.

Definition at line 60 of file threadsSTL_inl.h.

60{ return std::thread::hardware_concurrency(); }

◆ getNumberOfLogicalProcessors()

Get the number of logical processors.

Returns
The number of logical processors.

Definition at line 63 of file threadsSTL_inl.h.

63 {
64 return std::thread::hardware_concurrency();
65 }

◆ getNumberOfThreads()

returns the max number of threads used by default when entering the next parallel region

This is the number of threads launched in parallel regions. By default, this number is equal to getMaxNumberOfThreads() but if the user has changed it using method setNumberOfThreads, then this number is what the user required.

Returns
the number of threads used by default the next time we enter into a parallel region

Definition at line 68 of file threadsSTL.cpp.

68{ return _nb_threads_; }

Referenced by gum::credal::CredalNet< GUM_SCALAR >::_H2Vlrs_(), gum::credal::CNMonteCarloSampling< GUM_SCALAR, BNInferenceEngine >::_mcThreadDataCopy_(), gum::credal::CNLoopyPropagation< GUM_SCALAR >::enum_combi_(), gum::credal::CNLoopyPropagation< GUM_SCALAR >::enum_combi_(), and gum::credal::CNMonteCarloSampling< GUM_SCALAR, BNInferenceEngine >::makeInference().

Here is the caller graph for this function:

◆ isfinite()

template<typename T>
bool gum::isfinite ( T arg)

Definition at line 75 of file math_utils.h.

75 {
76 if constexpr (std::numeric_limits< T >::has_infinity) {
77 if constexpr (std::numeric_limits< T >::is_signed) {
78 return arg == arg && arg != std::numeric_limits< T >::infinity()
79 && arg != -std::numeric_limits< T >::infinity(); // neither Nan, infty nor -infty
80 } else {
81 return arg == arg
82 && arg != std::numeric_limits< T >::infinity(); // neither Nan nor inftty
83 }
84 } else {
85 return arg == arg; // not Nan
86 }
87 }

Referenced by gum::IntegerVariable::IntegerVariable(), gum::NumericalDiscreteVariable::NumericalDiscreteVariable(), gum::NumericalDiscreteVariable::NumericalDiscreteVariable(), and fastVariable().

Here is the caller graph for this function:

◆ isOMP()

bool gum::isOMP ( )

indicates whether aGrUM uses openMP or STL threads

Definition at line 66 of file threads.cpp.

66 {
67#ifdef GUM_THREADS_USE_OMP
68 return true;
69#else
70 return false;
71#endif
72 }

◆ log2()

template<typename GUM_SCALAR>
Tensor< GUM_SCALAR > gum::log2 ( const Tensor< GUM_SCALAR > & arg)
inline

Definition at line 496 of file tensor.h.

496 {
497 return arg.new_log2();
498 }

◆ LPMaxprojTensor()

template<typename GUM_SCALAR>
INLINE Tensor< GUM_SCALAR > gum::LPMaxprojTensor ( const Tensor< GUM_SCALAR > & t1,
const gum::VariableSet & del_vars )
static

Definition at line 82 of file lazyPropagation.h.

83 {
84 return t1.maxOut(del_vars);
85 }

◆ LPNewmultiTensor()

template<typename GUM_SCALAR>
INLINE Tensor< GUM_SCALAR > gum::LPNewmultiTensor ( const Tensor< GUM_SCALAR > & t1,
const Tensor< GUM_SCALAR > & t2 )
static

Definition at line 68 of file lazyPropagation.h.

69 {
70 return t1 * t2;
71 }

◆ LPNewprojTensor()

template<typename GUM_SCALAR>
INLINE Tensor< GUM_SCALAR > gum::LPNewprojTensor ( const Tensor< GUM_SCALAR > & t1,
const gum::VariableSet & del_vars )
static

Definition at line 75 of file lazyPropagation.h.

76 {
77 return t1.sumOut(del_vars);
78 }

◆ operator!=()

bool gum::operator!= ( const HashTableIteratorSafe< Key, Val > & from) const
noexcept

Checks whether two iterators are pointing toward different elements.

Parameters
fromThe gum::HashTableIteratorSafe to test for inequality.
Returns
Returns true if this and from are not equal.

◆ operator*() [1/2]

const value_type & gum::operator* ( )

Returns the value pointed to by the iterator.

Returns
Returns the value pointed to by the iterator.
Exceptions
UndefinedIteratorValueRaised when the iterator does not point to a valid hash table element
Returns
Returns the value pointed to by the iterator.
Exceptions
UndefinedIteratorValueRaised when the iterator does not point to a valid hash table element.

◆ operator*() [2/2]

INLINE Formula gum::operator* ( const Formula & a,
const Formula & b )

Definition at line 485 of file formula_inl.h.

485 {
486 return Formula(std::to_string(a.result() * b.result()));
487 }
Evaluates a string as a algebraic formula.
Definition formula.h:293
double result() const
Returns the result of this gum::Formula.
Definition formula.cpp:313

References gum::Formula::result().

Here is the call graph for this function:

◆ operator+() [1/2]

INLINE Formula gum::operator+ ( const Formula & a,
const Formula & b )

Definition at line 475 of file formula_inl.h.

475 {
476 return Formula(std::to_string(a.result() + b.result()));
477 }

References gum::Formula::result().

Here is the call graph for this function:

◆ operator+() [2/2]

HashTableIteratorSafe< Key, Val > gum::operator+ ( Size i) const

Returns a new iterator pointing to i elements further in the hashtable.

Parameters
iThe number of increments.
Returns
Returns this gum::HashTableIteratorSafe.

◆ operator++()

HashTableIteratorSafe< Key, Val > & gum::operator++ ( )
noexcept

◆ operator+=()

HashTableIteratorSafe< Key, Val > & gum::operator+= ( Size i)
noexcept

Makes the iterator point to i elements further in the hashtable.

Parameters
iThe number of increments.
Returns
Return this gum::HashTableIteratorSafe.

Referenced by gum::ArgMaxSet< GUM_SCALAR_VAL, GUM_SCALAR_SEQ >::ArgMaxSet(), and gum::ArgMaxSet< GUM_SCALAR_VAL, GUM_SCALAR_SEQ >::operator=().

Here is the caller graph for this function:

◆ operator-() [1/6]

INLINE Formula gum::operator- ( const Formula & a)

Definition at line 472 of file formula_inl.h.

472{ return Formula(std::to_string(-1 * a.result())); }

References gum::Formula::result().

Here is the call graph for this function:

◆ operator-() [2/6]

INLINE Formula gum::operator- ( const Formula & a,
const Formula & b )

Definition at line 480 of file formula_inl.h.

480 {
481 return Formula(std::to_string(a.result() - b.result()));
482 }

References gum::Formula::result().

Here is the call graph for this function:

◆ operator-() [3/6]

template<typename Val>
ListConstIterator< Val >::difference_type gum::operator- ( const ListConstIterator< Val > & iter1,
const ListConstIterator< Val > & iter2 )

For STL compliance, a distance operator.

Definition at line 349 of file list_tpl.h.

349 {
351
352 for (ListConstIterator< Val > iter3 = iter2; iter1 != iter3; ++iter3, ++res) {}
353
354 return res;
355 }
Unsafe but fast const iterators for Lists.
Definition list.h:1450
std::ptrdiff_t difference_type
Types for STL compliance.
Definition list.h:1460

◆ operator-() [4/6]

template<typename Val>
INLINE ListConstIterator< Val >::difference_type gum::operator- ( const ListConstIterator< Val > & iter1,
const ListConstIterator< Val > & iter2 )

For STL compliance, a distance operator.

Definition at line 349 of file list_tpl.h.

349 {
351
352 for (ListConstIterator< Val > iter3 = iter2; iter1 != iter3; ++iter3, ++res) {}
353
354 return res;
355 }

◆ operator-() [5/6]

template<typename Val>
ListConstIteratorSafe< Val >::difference_type gum::operator- ( const ListConstIteratorSafe< Val > & iter1,
const ListConstIteratorSafe< Val > & iter2 )

For STL compliance, a distance operator.

Definition at line 949 of file list_tpl.h.

950 {
952 ListConstIteratorSafe< Val > iter3{iter2};
953
954 for (; iter1 != iter3; ++iter3, ++res) {}
955
956 return res;
957 }
Safe const iterators for Lists.
Definition list.h:2006
std::ptrdiff_t difference_type
Types for STL compliance.
Definition list.h:2016

◆ operator-() [6/6]

template<typename Val>
INLINE ListConstIteratorSafe< Val >::difference_type gum::operator- ( const ListConstIteratorSafe< Val > & iter1,
const ListConstIteratorSafe< Val > & iter2 )

For STL compliance, a distance operator.

Definition at line 949 of file list_tpl.h.

950 {
952 ListConstIteratorSafe< Val > iter3{iter2};
953
954 for (; iter1 != iter3; ++iter3, ++res) {}
955
956 return res;
957 }

◆ operator/()

INLINE Formula gum::operator/ ( const Formula & a,
const Formula & b )

Definition at line 490 of file formula_inl.h.

490 {
491 return Formula(std::to_string(a.result() / b.result()));
492 }

References gum::Formula::result().

Here is the call graph for this function:

◆ operator<<() [1/54]

gum::SetInst & gum::operator<< ( gum::SetInst & inst,
const gum::DiscreteVariable & i )

Adds a variable to inst.

Parameters
instThe SetInst to which a variable is added.
iThe variable to add.
Returns
Returns a reference over inst.
Exceptions
DuplicateElementIf i is already in the SetInst.

◆ operator<<() [2/54]

template<typename GUM_SCALAR>
INLINE MultiDimImplementation< GUM_SCALAR > & gum::operator<< ( MultiDimImplementation< GUM_SCALAR > & array,
const DiscreteVariable & v )

Definition at line 144 of file multiDimImplementation_tpl.h.

145 {
146 array.add(v);
147 return array;
148 }
virtual void add(const DiscreteVariable &v) override
Adds a new var to the variables of the multidimensional matrix.

References gum::MultiDimImplementation< GUM_SCALAR >::add().

Here is the call graph for this function:

◆ operator<<() [3/54]

template<typename T1, typename T2>
std::ostream & gum::operator<< ( std::ostream & stream,
const Bijection< T1, T2 > & bijection )

For friendly display of the content of the gum::Bijection.

Parameters
bijectionThe gum::Bijection to display.
Template Parameters
T1The first type of elements in the gum::Bjection.
T2The second type of elements in the gum::Bjection.
Returns
The stream in which the gum::Bijection is displayed.

Definition at line 1050 of file bijection_tpl.h.

1050 {
1051 stream << b.toString();
1052 return stream;
1053 }

References gum::BijectionImplementation< T1, T2, Gen >::toString().

Here is the call graph for this function:

◆ operator<<() [4/54]

std::ostream & gum::operator<< ( std::ostream & ,
const CliqueGraph &  )

for friendly displaying the content of clique graphs

◆ operator<<() [5/54]

template<typename T_VAL>
std::ostream & gum::operator<< ( std::ostream & ,
const ContinuousVariable< T_VAL > &  )

for friendly displaying the content of the variable

◆ operator<<() [6/54]

std::ostream & gum::operator<< ( std::ostream & ,
const DiscreteVariable &  )

for friendly displaying the content of the variable

◆ operator<<() [7/54]

std::ostream & gum::operator<< ( std::ostream & stream,
const EdgeGraphPart & set )

for friendly displaying the content of an edge set

Definition at line 244 of file edgeGraphPart.cpp.

244 {
245 stream << set.toString();
246 return stream;
247 }
virtual std::string toString() const
to friendly display the content of the EdgeGraphPart

References gum::EdgeGraphPart::toString().

Here is the call graph for this function:

◆ operator<<() [8/54]

template<typename Val, typename Cmp>
std::ostream & gum::operator<< ( std::ostream & stream,
const Heap< Val, Cmp > & heap )

Definition at line 309 of file heap_tpl.h.

309 {
310 stream << heap.toString();
311 return stream;
312 }
std::string toString() const
Definition heap_tpl.h:291

References gum::Heap< Val, Cmp >::toString().

Here is the call graph for this function:

◆ operator<<() [9/54]

template<typename Key, typename Data>
std::ostream & gum::operator<< ( std::ostream & ,
const IndexedTree< Key, Data > &  )

Necessary for the hashtable operator <<.

◆ operator<<() [10/54]

std::ostream & gum::operator<< ( std::ostream & aStream,
const Instantiation & i )

Print information of the instantiation in the stream.

Definition at line 271 of file instantiation.cpp.

271 {
272 aStream << i.toString();
273 return aStream;
274 }
std::string toString() const
Give a string version of instantiation.

References gum::Instantiation::toString().

Here is the call graph for this function:

◆ operator<<() [11/54]

std::ostream & gum::operator<< ( std::ostream & stream,
const NodeGraphPart & set )

for friendly displaying the content of node set

Definition at line 146 of file nodeGraphPart.cpp.

146 {
147 stream << set.toString();
148 return stream;
149 }
virtual std::string toString() const
a function to display the set of nodes

References gum::NodeGraphPart::toString().

Here is the call graph for this function:

◆ operator<<() [12/54]

template<typename Val, typename Priority, typename Cmp>
std::ostream & gum::operator<< ( std::ostream & stream,
const PriorityQueue< Val, Priority, Cmp > & queue )

Definition at line 1044 of file priorityQueue_tpl.h.

1045 {
1046 stream << queue.toString();
1047 return stream;
1048 }
std::string toString() const
Displays the content of the queue.

References gum::PriorityQueueImplementation< Val, Priority, Cmp, Gen >::toString().

Here is the call graph for this function:

◆ operator<<() [13/54]

template<typename Key>
std::ostream & gum::operator<< ( std::ostream & stream,
const Set< Key > & set )

A << operator for HashTableList.

Definition at line 745 of file set_tpl.h.

745 {
746 stream << set.toString();
747 return stream;
748 }
std::string toString() const
Prints the content of the set.
Definition set_tpl.h:722

References gum::Set< Key >::toString().

Here is the call graph for this function:

◆ operator<<() [14/54]

std::ostream & gum::operator<< ( std::ostream & ,
const SetInst &  )

Print information of the SetInst in the stream.

◆ operator<<() [15/54]

std::ostream & gum::operator<< ( std::ostream & ,
const VariableNodeMap &  )

for friendly displaying the content of clique graphs

◆ operator<<() [16/54]

INLINE std::ostream & gum::operator<< ( std::ostream & os,
const Formula & f )

Definition at line 498 of file formula_inl.h.

498 {
499 os << f.result();
500 return os;
501 }

References gum::Formula::result().

Here is the call graph for this function:

◆ operator<<() [17/54]

INLINE std::ostream & gum::operator<< ( std::ostream & os,
const Timer & t )

Definition at line 94 of file timer_inl.h.

94{ return os << t.toString(); };
std::string toString() const
Returns the delta time between now and the last reset() in a human format.
Definition timer.cpp:84

References gum::Timer::toString().

Here is the call graph for this function:

◆ operator<<() [18/54]

template<typename GUM_SCALAR>
std::ostream & gum::operator<< ( std::ostream & out,
const DecisionTensor< GUM_SCALAR > & array )

Definition at line 204 of file decisionTensor.h.

204 {
205 out << array.toString();
206 return out;
207 }
virtual std::string toString() const

References gum::DecisionTensor< GUM_SCALAR >::toString().

Here is the call graph for this function:

◆ operator<<() [19/54]

template<typename GUM_SCALAR>
std::ostream & gum::operator<< ( std::ostream & out,
const MultiDimContainer< GUM_SCALAR > & array )

Definition at line 318 of file multiDimContainer_tpl.h.

318 {
319 out << array.toString();
320 return out;
321 }
virtual std::string toString() const
Returns a representation of this MultiDimContainer.

References gum::MultiDimContainer< GUM_SCALAR >::toString().

Here is the call graph for this function:

◆ operator<<() [20/54]

template<typename Element>
INLINE std::ostream & gum::operator<< ( std::ostream & out,
const SplayBinaryNode< Element > & e )

Display the node.

Friendly to display.

Definition at line 794 of file splay_tpl.h.

794 {
795 if (e.fg) out << *e.fg << ",";
796
797 out << e.elt;
798
799 if (e.fd) out << "," << *e.fd;
800
801 return out;
802 }
SplayBinaryNode * fg
The left child.
Definition splay.h:214
SplayBinaryNode * fd
The right child.
Definition splay.h:217
Element elt
The content.
Definition splay.h:208

◆ operator<<() [21/54]

template<typename Element>
std::ostream & gum::operator<< ( std::ostream & out,
const SplayBinaryNode< Element > & e )

Display the node.

Friendly to display.

Definition at line 794 of file splay_tpl.h.

794 {
795 if (e.fg) out << *e.fg << ",";
796
797 out << e.elt;
798
799 if (e.fd) out << "," << *e.fd;
800
801 return out;
802 }

◆ operator<<() [22/54]

template<typename Element>
INLINE std::ostream & gum::operator<< ( std::ostream & out,
const SplayTree< Element > & s )

Display the tree.

Friendly to display.

Definition at line 807 of file splay_tpl.h.

807 {
808 out << "|[";
809
810 if (s.root) out << *s.root;
811
812 out << "]|";
813
814 return out;
815 }
SplayBinaryNode< Element > * root
Root of the tree.
Definition splay.h:434

◆ operator<<() [23/54]

template<typename GUM_SCALAR>
std::ostream & gum::operator<< ( std::ostream & out,
const Tensor< GUM_SCALAR > & array )

Definition at line 711 of file tensor_tpl.h.

711 {
712 out << array.toString();
713 return out;
714 }

◆ operator<<() [24/54]

template<typename GUM_SCALAR>
std::ostream & gum::operator<< ( std::ostream & output,
const BayesNet< GUM_SCALAR > & bn )

Prints map's DAG in output using the Graphviz-dot format.

Definition at line 547 of file BayesNet_tpl.h.

547 {
548 output << bn.toString();
549 return output;
550 }

◆ operator<<() [25/54]

template<typename GUM_SCALAR>
INLINE std::ostream & gum::operator<< ( std::ostream & output,
const BayesNet< GUM_SCALAR > & bn )

Prints map's DAG in output using the Graphviz-dot format.

Definition at line 547 of file BayesNet_tpl.h.

547 {
548 output << bn.toString();
549 return output;
550 }

◆ operator<<() [26/54]

template<typename GUM_SCALAR>
std::ostream & gum::operator<< ( std::ostream & output,
const IBayesNet< GUM_SCALAR > & bn )

Prints map's DAG in output using the Graphviz-dot format.

Definition at line 308 of file IBayesNet_tpl.h.

308 {
309 output << bn.toString();
310 return output;
311 }
std::string toString() const

References gum::IBayesNet< GUM_SCALAR >::toString().

Here is the call graph for this function:

◆ operator<<() [27/54]

template<typename GUM_SCALAR>
INLINE std::ostream & gum::operator<< ( std::ostream & output,
const IBayesNet< GUM_SCALAR > & bn )

Prints map's DAG in output using the Graphviz-dot format.

Definition at line 308 of file IBayesNet_tpl.h.

308 {
309 output << bn.toString();
310 return output;
311 }

References gum::IBayesNet< GUM_SCALAR >::toString().

Here is the call graph for this function:

◆ operator<<() [28/54]

template<typename GUM_SCALAR>
INLINE std::ostream & gum::operator<< ( std::ostream & output,
const IMarkovRandomField< GUM_SCALAR > & bn )

Prints map's graph in output using the Graphviz-dot format.

Definition at line 318 of file IMarkovRandomField_tpl.h.

319 {
320 output << bn.toString();
321 return output;
322 }

References gum::IMarkovRandomField< GUM_SCALAR >::toString().

Here is the call graph for this function:

◆ operator<<() [29/54]

template<typename GUM_SCALAR>
std::ostream & gum::operator<< ( std::ostream & output,
const IMarkovRandomField< GUM_SCALAR > & mn )

Prints map's graph in output using the Graphviz-dot format.

Definition at line 318 of file IMarkovRandomField_tpl.h.

319 {
320 output << bn.toString();
321 return output;
322 }

References gum::IMarkovRandomField< GUM_SCALAR >::toString().

Here is the call graph for this function:

◆ operator<<() [30/54]

template<typename GUM_SCALAR>
INLINE std::ostream & gum::operator<< ( std::ostream & output,
const MarkovRandomField< GUM_SCALAR > & mn )

Definition at line 326 of file MarkovRandomField_tpl.h.

326 {
327 output << mn.toString();
328 return output;
329 }

◆ operator<<() [31/54]

std::ostream & gum::operator<< ( std::ostream & s,
const ArcGraphPart & a )

for friendly displaying the content of arc set

Parameters
sthe stream to which we display the content of a
athe ArcGraphPart to be displayed

Definition at line 310 of file arcGraphPart.cpp.

310 {
311 stream << set.toString();
312 return stream;
313 }

References gum::ArcGraphPart::toString().

Here is the call graph for this function:

◆ operator<<() [32/54]

template<typename GUM_SCALAR>
std::ostream & gum::operator<< ( std::ostream & s,
const MultiDimLogit< GUM_SCALAR > & ag )

For friendly displaying the content of the array.

Definition at line 128 of file multiDimLogit_tpl.h.

128 {
129 return s << ag.toString();
130 }
std::string toString() const
Returns the real name of the multiDimArray.

References gum::MultiDimLogit< GUM_SCALAR >::toString().

Here is the call graph for this function:

◆ operator<<() [33/54]

template<typename GUM_SCALAR>
INLINE std::ostream & gum::operator<< ( std::ostream & s,
const MultiDimLogit< GUM_SCALAR > & ag )

For friendly displaying the content of the array.

Definition at line 128 of file multiDimLogit_tpl.h.

128 {
129 return s << ag.toString();
130 }

References gum::MultiDimLogit< GUM_SCALAR >::toString().

Here is the call graph for this function:

◆ operator<<() [34/54]

template<typename GUM_SCALAR>
std::ostream & gum::operator<< ( std::ostream & s,
const MultiDimNoisyAND< GUM_SCALAR > & ag )

For friendly displaying the content of the array.

Definition at line 131 of file multiDimNoisyAND_tpl.h.

131 {
132 return s << ag.toString();
133 }
std::string toString() const
Returns the real name of the multiDimArray.

References gum::MultiDimNoisyAND< GUM_SCALAR >::toString().

Here is the call graph for this function:

◆ operator<<() [35/54]

template<typename GUM_SCALAR>
INLINE std::ostream & gum::operator<< ( std::ostream & s,
const MultiDimNoisyAND< GUM_SCALAR > & ag )

For friendly displaying the content of the array.

Definition at line 131 of file multiDimNoisyAND_tpl.h.

131 {
132 return s << ag.toString();
133 }

References gum::MultiDimNoisyAND< GUM_SCALAR >::toString().

Here is the call graph for this function:

◆ operator<<() [36/54]

template<typename GUM_SCALAR>
std::ostream & gum::operator<< ( std::ostream & s,
const MultiDimNoisyORCompound< GUM_SCALAR > & ag )

For friendly displaying the content of the array.

Definition at line 136 of file multiDimNoisyORCompound_tpl.h.

137 {
138 return s << ag.toString();
139 }
std::string toString() const
returns the real name of the multiDimArray

References gum::MultiDimNoisyORCompound< GUM_SCALAR >::toString().

Here is the call graph for this function:

◆ operator<<() [37/54]

template<typename GUM_SCALAR>
INLINE std::ostream & gum::operator<< ( std::ostream & s,
const MultiDimNoisyORCompound< GUM_SCALAR > & ag )

For friendly displaying the content of the array.

Definition at line 136 of file multiDimNoisyORCompound_tpl.h.

137 {
138 return s << ag.toString();
139 }

References gum::MultiDimNoisyORCompound< GUM_SCALAR >::toString().

Here is the call graph for this function:

◆ operator<<() [38/54]

template<typename GUM_SCALAR>
std::ostream & gum::operator<< ( std::ostream & s,
const MultiDimNoisyORNet< GUM_SCALAR > & ag )

For friendly displaying the content of the array.

Definition at line 131 of file multiDimNoisyORNet_tpl.h.

131 {
132 return s << ag.toString();
133 }
std::string toString() const
Returns the real name of the multiDimArray.

References gum::MultiDimNoisyORNet< GUM_SCALAR >::toString().

Here is the call graph for this function:

◆ operator<<() [39/54]

template<typename GUM_SCALAR>
INLINE std::ostream & gum::operator<< ( std::ostream & s,
const MultiDimNoisyORNet< GUM_SCALAR > & ag )

For friendly displaying the content of the array.

Definition at line 131 of file multiDimNoisyORNet_tpl.h.

131 {
132 return s << ag.toString();
133 }

References gum::MultiDimNoisyORNet< GUM_SCALAR >::toString().

Here is the call graph for this function:

◆ operator<<() [40/54]

std::ostream & gum::operator<< ( std::ostream & stream,
const Arc & arc )

to friendly display an arc

◆ operator<<() [41/54]

template<typename Val, typename Cmp>
std::ostream & gum::operator<< ( std::ostream & stream,
const AVLTree< Val, Cmp > & tree )

display the content of a tree

Definition at line 913 of file AVLTree.h.

913 {
914 return stream << tree.toString();
915 }
std::string toString() const
returns a string with the content of the tree, order from the lowest to the highest element

◆ operator<<() [42/54]

std::ostream & gum::operator<< ( std::ostream & stream,
const DiGraph & g )

for friendly displaying the content of directed graphs

Definition at line 106 of file diGraph.cpp.

106 {
107 stream << g.toString();
108 return stream;
109 }
virtual std::string toString() const
to friendly display the content of the graph
Definition diGraph.cpp:81

References gum::DiGraph::toString().

Here is the call graph for this function:

◆ operator<<() [43/54]

std::ostream & gum::operator<< ( std::ostream & stream,
const Edge & edge )

to friendly display an edge

◆ operator<<() [44/54]

template<typename Val, typename Cmp>
INLINE std::ostream & gum::operator<< ( std::ostream & stream,
const Heap< Val, Cmp > & heap )

Definition at line 309 of file heap_tpl.h.

309 {
310 stream << heap.toString();
311 return stream;
312 }

References gum::Heap< Val, Cmp >::toString().

Here is the call graph for this function:

◆ operator<<() [45/54]

template<typename Val>
std::ostream & gum::operator<< ( std::ostream & stream,
const List< Val > & list )

an << operator for List

Definition at line 1975 of file list_tpl.h.

1975 {
1976 stream << list.toString();
1977 return stream;
1978 }
std::string toString() const
Converts a list into a string.
Definition list_tpl.h:1837

References gum::List< Val >::toString().

Here is the call graph for this function:

◆ operator<<() [46/54]

std::ostream & gum::operator<< ( std::ostream & stream,
const MixedGraph & g )

for friendly displaying the content of directed graphs

Definition at line 307 of file mixedGraph.cpp.

307 {
308 stream << g.toString();
309 return stream;
310 }
std::string toString() const override
to friendly display the content of the MixedGraph

References gum::MixedGraph::toString().

Here is the call graph for this function:

◆ operator<<() [47/54]

template<typename Val, typename Priority, typename Cmp>
INLINE std::ostream & gum::operator<< ( std::ostream & stream,
const MultiPriorityQueue< Val, Priority, Cmp > & queue )

Definition at line 604 of file multiPriorityQueue_tpl.h.

605 {
606 stream << queue.toString();
607 return stream;
608 }
std::string toString() const
Displays the content of the queue.

References gum::MultiPriorityQueue< Val, Priority, Cmp >::toString().

Here is the call graph for this function:

◆ operator<<() [48/54]

template<typename Val, typename Priority, typename Cmp>
INLINE std::ostream & gum::operator<< ( std::ostream & stream,
const PriorityQueue< Val, Priority, Cmp > & queue )

Definition at line 1044 of file priorityQueue_tpl.h.

1045 {
1046 stream << queue.toString();
1047 return stream;
1048 }

References gum::PriorityQueueImplementation< Val, Priority, Cmp, Gen >::toString().

Here is the call graph for this function:

◆ operator<<() [49/54]

template<typename Key>
std::ostream & gum::operator<< ( std::ostream & stream,
const Sequence< Key > & s )

A << operator for displaying the content of the Sequence.

Definition at line 1056 of file sequence_tpl.h.

1056 {
1057 stream << seq.toString();
1058 return stream;
1059 }

References gum::SequenceImplementation< Key, Gen >::toString().

Here is the call graph for this function:

◆ operator<<() [50/54]

template<typename Key>
INLINE std::ostream & gum::operator<< ( std::ostream & stream,
const Sequence< Key > & seq )

A << operator for displaying the content of the Sequence.

Definition at line 1056 of file sequence_tpl.h.

1056 {
1057 stream << seq.toString();
1058 return stream;
1059 }
std::string toString() const
Displays the content of the sequence.

References gum::SequenceImplementation< Key, Gen >::toString().

Here is the call graph for this function:

◆ operator<<() [51/54]

template<typename Key, bool Gen>
INLINE std::ostream & gum::operator<< ( std::ostream & stream,
const SequenceImplementation< Key, Gen > & seq )

Definition at line 568 of file sequence_tpl.h.

569 {
570 stream << seq.toString();
571 return stream;
572 }

References gum::SequenceImplementation< Key, Gen >::toString().

Here is the call graph for this function:

◆ operator<<() [52/54]

template<typename Key>
INLINE std::ostream & gum::operator<< ( std::ostream & stream,
const SequenceImplementation< Key, true > & seq )

Definition at line 917 of file sequence_tpl.h.

918 {
919 stream << seq.toString();
920 return stream;
921 }

References gum::SequenceImplementation< Key, Gen >::toString().

Here is the call graph for this function:

◆ operator<<() [53/54]

template<typename Val, typename Priority, typename Cmp>
std::ostream & gum::operator<< ( std::ostream & stream,
const SortedPriorityQueue< Val, Priority, Cmp > & queue )

display the content of a sorted priority queue

Definition at line 1023 of file sortedPriorityQueue.h.

1024 {
1025 return stream << queue.toString();
1026 }
std::string toString() const
Displays the content of the queue.

◆ operator<<() [54/54]

std::ostream & gum::operator<< ( std::ostream & stream,
const UndiGraph & g )

for friendly displaying the content of undirected graphs

Definition at line 207 of file undiGraph.cpp.

207 {
208 stream << g.toString();
209 return stream;
210 }
std::string toString() const override
to friendly display the content of the graph

References gum::UndiGraph::toString().

Here is the call graph for this function:

◆ operator==()

bool gum::operator== ( const HashTableIteratorSafe< Key, Val > & from) const
noexcept

Checks whether two iterators are pointing toward equal elements.

Parameters
fromThe gum::HashTableIteratorSafe to test for equality.
Returns
Returns true if this and from are equal.

Referenced by gum::HashTable< Key, Val >::operator!=(), gum::IBayesNet< GUM_SCALAR >::operator!=(), gum::IMarkovRandomField< GUM_SCALAR >::operator!=(), gum::List< Val >::operator!=(), gum::ListIterator< Val >::operator!=(), gum::ListIteratorSafe< Val >::operator!=(), gum::NodeGraphPartIterator::operator!=(), gum::SequenceImplementation< Key, Gen >::operator!=(), gum::SequenceIteratorSafe< Key >::operator!=(), and gum::Set< Key >::operator!=().

Here is the caller graph for this function:

◆ operator>>()

gum::SetInst & gum::operator>> ( gum::SetInst & inst,
const gum::DiscreteVariable & i )

Removes a variable to inst.

Parameters
instThe SetInst to which a variable is removed.
iThe variable to remove.
Returns
Returns a reference over inst.
Exceptions
NotFoundRaised if i is not found in inst.

◆ partialInstantiation() [1/2]

template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * gum::partialInstantiation ( const MultiDimDecorator< GUM_SCALAR > & table,
const HashTable< const DiscreteVariable *, Idx > & inst_vars )

Instantiate variables in a MultiDimDecorator.

Parameters
tableThe table to instantiate.
inst_varsThe variables instantiation.
Returns
Returns the partial instantiation of table as a new MultiDimImplementation.

◆ partialInstantiation() [2/2]

template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * gum::partialInstantiation ( const MultiDimImplementation< GUM_SCALAR > & table,
const HashTable< const DiscreteVariable *, Idx > & inst_vars )

Instantiate variables in a MultiDimImplementation.

Parameters
tableThe table to instantiate.
inst_varsThe variables instantiation.
Returns
Returns the partial instantiation of table as a new MultiDimImplementation.

◆ partialInstantiation4MultiDimInit()

template<typename GUM_SCALAR>
void gum::partialInstantiation4MultiDimInit ( )

The function used to register all the instantiation operators on multidimImplementations over non-pointers types.

Definition at line 115 of file partialInstantiation4MultiDim_tpl.h.

115 {
116 // ensure that only one thread will register the projections
117 static std::once_flag first;
118 std::call_once(first, []() {
119 std::string MultiDimArrayString("MultiDimArray");
120 std::string MultiDimDecisionDiagramString("MultiDimDecisionDiagram");
121 std::string BaseNameString("MultiDimImplementation");
122
123 // register base functions for multiDimArrays
125 MultiDimArrayString,
127
128 // register default basename functions
130 BaseNameString,
131 &partialInstantiationMultiDimImplementation);
132 });
133 }
MultiDimArray< GUM_SCALAR > * partialInstantiationMultiDimArray(const MultiDimArray< GUM_SCALAR > *table, const HashTable< const DiscreteVariable *, Idx > &inst_vars)
A specialized function for instantiating variables in a multiDimArray.
void registerPartialInstantiation(const std::string &instantiation_func_name, const std::string &type_multidim, typename PartialInstantiationRegister4MultiDim< GUM_SCALAR >::PartialInstantiationPtr function)
A function to more easily register new instantiation functions in MultiDims.

References partialInstantiationMultiDimArray(), and registerPartialInstantiation().

Referenced by gum::PartialInstantiation4MultiDimInitialize< GUM_SCALAR >::init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ partialInstantiationMultiDimArray() [1/2]

template<typename GUM_SCALAR>
MultiDimArray< GUM_SCALAR > * gum::partialInstantiationMultiDimArray ( const MultiDimArray< GUM_SCALAR > * table,
const HashTable< const DiscreteVariable *, Idx > & inst_vars )

A specialized function for instantiating variables in a multiDimArray.

Warning
In practice, do not use this function but rather operator/function partialInstantiation on multiDimDecorators. This operator will take care to select this function if it is appropriate for your instantiation.

The function instantiates some variables in a multiDimArray. For instance, if table is a MultiDimArray defined over A,B,C,D and if inst_vars = {<A=a1>,<C=c2>}, then the function returns a table over B,D defined as table (a1,B,c2,D).

Parameters
tableThe table to instantiate.
inst_varsThe variables instantiation.
Returns
Returns the partial instantiation of table as a new MultiDimArray.

Referenced by partialInstantiation4MultiDimInit().

Here is the caller graph for this function:

◆ partialInstantiationMultiDimArray() [2/2]

template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * gum::partialInstantiationMultiDimArray ( const MultiDimImplementation< GUM_SCALAR > * table,
const HashTable< const DiscreteVariable *, Idx > & inst_vars )

A specialized function for instantiating variables in a MultiDimImplementation.

Warning
In practice, do not use this function but rather operator/function partialInstantiation on multiDimDecorators. This operator will take care to select this function if it is appropriate for your instantiation.

The function instantiates some variables in a multiDimArray. For instance, if table is a MultiDimArray defined over A,B,C,D and if inst_vars = {<A=a1>,<C=c2>}, then the function returns a table over B,D defined as table (a1,B,c2,D).

Parameters
tableThe table to instantiate.
inst_varsThe variables instantiation.
Returns
Returns the partial instantiation of table as a new MultiDimImplementation.

◆ partialInstantiationMultiDimArray4Pointers() [1/2]

template<typename GUM_SCALAR>
MultiDimArray< GUM_SCALAR * > * gum::partialInstantiationMultiDimArray4Pointers ( const MultiDimArray< GUM_SCALAR * > * table,
const HashTable< const DiscreteVariable *, Idx > & inst_vars )

A specialized function for instantiating variables in a MultiDimArray.

Warning
In practice, do not use this function but rather operator/function partialInstantiation on multiDimDecorators. This operator will take care to select this function if it is appropriate for your instantiation.

The function instantiates some variables in a multiDimArray. For instance, if table is a MultiDimArray defined over A,B,C,D and if inst_vars = {<A=a1>,<C=c2>}, then the function returns a table over B,D defined as table (a1,B,c2,D).

Parameters
tableThe table to instantiate.
inst_varsThe variables instantiation.
Returns
Returns the partial instantiation of table as a new MultiDimArray.

Referenced by pointerPartialInstantiation4MultiDimInit().

Here is the caller graph for this function:

◆ partialInstantiationMultiDimArray4Pointers() [2/2]

template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR * > * gum::partialInstantiationMultiDimArray4Pointers ( const MultiDimImplementation< GUM_SCALAR * > * table,
const HashTable< const DiscreteVariable *, Idx > & inst_vars )

A specialized function for instantiating variables in a MultiDimArray.

Warning
In practice, do not use this function but rather operator/function partialInstantiation on multiDimDecorators. This operator will take care to select this function if it is appropriate for your instantiation.

The function instantiates some variables in a multiDimArray. For instance, if table is a MultiDimArray defined over A,B,C,D and if inst_vars = {<A=a1>,<C=c2>}, then the function returns a table over B,D defined as table (a1,B,c2,D).

Parameters
tableThe table to instantiate.
inst_varsThe variables instantiation.
Returns
Returns the partial instantiation of table as a new MultiDimImplementation.

◆ pointerPartialInstantiation4MultiDimInit()

template<typename GUM_SCALAR>
void gum::pointerPartialInstantiation4MultiDimInit ( )

The function used to register all the instantiations on multidimImplementations over pointers types.

Definition at line 137 of file partialInstantiation4MultiDim_tpl.h.

137 {
138 // ensure that only one thread will register the projections
139 static std::once_flag first;
140 std::call_once(first, []() {
141 std::string MultiDimArrayString("MultiDimArray");
142 std::string BaseNameString("MultiDimImplementation");
143
144 // register base functions for multiDimArrays
146 MultiDimArrayString,
148
149 // register default basename functions
151 "i",
152 BaseNameString,
153 &partialInstantiationMultiDimImplementation4Pointers);
154 });
155 }
MultiDimArray< GUM_SCALAR * > * partialInstantiationMultiDimArray4Pointers(const MultiDimArray< GUM_SCALAR * > *table, const HashTable< const DiscreteVariable *, Idx > &inst_vars)
A specialized function for instantiating variables in a MultiDimArray.

References partialInstantiationMultiDimArray4Pointers(), and registerPartialInstantiation().

Referenced by gum::PartialInstantiation4MultiDimInitialize< GUM_SCALAR * >::init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pointerProjections4MultiDimInit()

template<typename GUM_SCALAR>
void gum::pointerProjections4MultiDimInit ( )

the function used to register all the projections on multidimImplementations over pointers types.

Referenced by gum::Projections4MultiDimInitialize< GUM_SCALAR * >::init().

Here is the caller graph for this function:

◆ print_output()

void gum::print_output ( std::vector< FormulaPart > v)

Definition at line 71 of file formula.cpp.

71 {
72 std::cout << "Output: ";
73 for (const auto& elt: v) {
74 std::cout << elt.str() << " ";
75 }
76 std::cout << std::endl;
77 }

◆ print_stack()

void gum::print_stack ( std::stack< FormulaPart > s)

Definition at line 55 of file formula.cpp.

55 {
56 std::cout << std::endl;
57 std::list< FormulaPart > l;
58 while (!s.empty()) {
59 l.push_front(s.top());
60 s.pop();
61 }
62
63 std::cout << "Stack: ";
64 for (const auto& elt: l) {
65 std::cout << elt.str() << " ";
66 }
67 std::cout << std::endl;
68 }

◆ ProjectFuncMultiDimArray()

template<typename GUM_SCALAR>
MultiDimArray< GUM_SCALAR > * gum::ProjectFuncMultiDimArray ( const MultiDimArray< GUM_SCALAR > * t1,
const MultiDimArray< GUM_SCALAR > * t2,
const GUM_SCALAR(* )(const GUM_SCALAR &, const GUM_SCALAR &) )

a specialized function for functionally projecting a multiDimArray

The function produces a tensorial functional combination of t1 and t2, that is, if t1 and t2 are multiDimArrays over variables A,B,C,D and D,B,E respectively, function combine2MultiDimArrays will return a multiDimArray T defined as T[A,B,C,D,E] = f ( t1[A,B,C,D],t2[D,B,E] ) for all A,B,C,D,E.

Returns
function combine2MultiDimArrays allocates on the heap the new T multiDimArray and returns it.

◆ projections4MultiDimInit()

template<typename GUM_SCALAR>
void gum::projections4MultiDimInit ( )

the function used to register all the projection operators on multidimImplementations over non-pointers types.

Referenced by gum::Projections4MultiDimInitialize< GUM_SCALAR >::init().

Here is the caller graph for this function:

◆ projectMax() [1/2]

template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * gum::projectMax ( const MultiDimImplementation< GUM_SCALAR > & table,
const gum::VariableSet & del_vars )

The function to be used to project a MultiDimImplementation using a Max.

◆ projectMax() [2/2]

template<typename GUM_SCALAR>
GUM_SCALAR gum::projectMax ( const MultiDimImplementation< GUM_SCALAR > & table,
Instantiation * instantiation = 0 )

the function to be used to project a MultiDimImplementation using a Max

Referenced by gum::Tensor< GUM_SCALAR >::max(), gum::Tensor< GUM_SCALAR >::maxIn(), and gum::Tensor< GUM_SCALAR >::maxOut().

Here is the caller graph for this function:

◆ projectMaxMultiDimFunctionGraph() [1/2]

template<typename GUM_SCALAR>
MultiDimFunctionGraph< GUM_SCALAR > * gum::projectMaxMultiDimFunctionGraph ( const MultiDimFunctionGraph< GUM_SCALAR > * table,
const gum::VariableSet & del_vars )

a specialized function for projecting a multiDimFunctionGraph using a Max operator

The function projects a table over the subset of its variables NOT IN the set of variables del_vars. For instance, if table is a MultiDimFunctionGraph defined over A,B,C,D and if del_vars = {A,C}, then the function returns a table over B,D defined as Max_{A,C} table (A,B,C,D).

Returns
function ProjectMaxMultiDimFunctionGraph allocates on the heap the new T multiDimFunctionGraph and returns it
Warning
In practice, do not use this function but rather operator/function projectMax on MultiDimImplementation. This operator will take care to select this function if it is appropriate for your projection.

◆ projectMaxMultiDimFunctionGraph() [2/2]

template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * gum::projectMaxMultiDimFunctionGraph ( const MultiDimImplementation< GUM_SCALAR > * table,
const gum::VariableSet & del_vars )

a specialized function for projecting a multiDimFunctionGraph using a Max operator

The function projects a table over the subset of its variables NOT IN the set of variables del_vars. For instance, if table is a MultiDimFunctionGraph defined over A,B,C,D and if del_vars = {A,C}, then the function returns a table over B,D defined as Max_{A,C} table (A,B,C,D).

Returns
function ProjectMaxMultiDimFunctionGraph allocates on the heap the new T multiDimFunctionGraph and returns it
Warning
In practice, do not use this function but rather operator/function projectMax on MultiDimImplementation. This operator will take care to select this function if it is appropriate for your projection.

◆ projectMin() [1/2]

template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * gum::projectMin ( const MultiDimImplementation< GUM_SCALAR > & table,
const gum::VariableSet & del_vars )

The function to be used to project a MultiDimImplementation using a Min.

◆ projectMin() [2/2]

template<typename GUM_SCALAR>
GUM_SCALAR gum::projectMin ( const MultiDimImplementation< GUM_SCALAR > & table,
Instantiation * instantiation = 0 )

the function to be used to project a MultiDimImplementation using a Min

Referenced by gum::Tensor< GUM_SCALAR >::min(), gum::Tensor< GUM_SCALAR >::minIn(), and gum::Tensor< GUM_SCALAR >::minOut().

Here is the caller graph for this function:

◆ projectMinMultiDimArray() [1/2]

template<typename GUM_SCALAR>
MultiDimArray< GUM_SCALAR > * gum::projectMinMultiDimArray ( const MultiDimArray< GUM_SCALAR > * table,
const gum::VariableSet & del_vars )

a specialized function for projecting a multiDimArray using a Min operator

The function projects a table over the subset of its variables NOT IN the set of variables del_vars. For instance, if table is a MultiDimArray defined over A,B,C,D and if del_vars = {A,C}, then the function returns a table over B,D defined as Min_{A,C} table (A,B,C,D).

Returns
function ProjectMaxMultiDimArrays allocates on the heap the new T multiDimArray and returns it
Warning
In practice, do not use this function but rather operator/function projectMin on MultiDimImplementation. This operator will take care to select this function if it is appropriate for your projection.

◆ projectMinMultiDimArray() [2/2]

template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * gum::projectMinMultiDimArray ( const MultiDimImplementation< GUM_SCALAR > * table,
const gum::VariableSet & del_vars )

a specialized function for projecting a multiDimArray using a Min operator

The function projects a table over the subset of its variables NOT IN the set of variables del_vars. For instance, if table is a MultiDimArray defined over A,B,C,D and if del_vars = {A,C}, then the function returns a table over B,D defined as Min_{A,C} table (A,B,C,D).

Returns
function ProjectMaxMultiDimArrays allocates on the heap the new T multiDimArray and returns it
Warning
In practice, do not use this function but rather operator/function projectMin on MultiDimImplementation. This operator will take care to select this function if it is appropriate for your projection.

◆ projectMinMultiDimArray4Pointers() [1/2]

template<typename GUM_SCALAR>
MultiDimArray< GUM_SCALAR * > * gum::projectMinMultiDimArray4Pointers ( const MultiDimArray< GUM_SCALAR * > * table,
const gum::VariableSet & del_vars )

a specialized function for projecting a multiDimArray using a Min operator

The function projects a table over the subset of its variables NOT IN the set of variables del_vars. For instance, if table is a MultiDimArray defined over A,B,C,D and if del_vars = {A,C}, then the function returns a table over B,D defined as Min_{A,C} table (A,B,C,D).

Returns
function ProjectMaxMultiDimArrays allocates on the heap the new T multiDimArray and returns it
Warning
In practice, do not use this function but rather operator/function projectMin on MultiDimImplementation. This operator will take care to select this function if it is appropriate for your projection.

◆ projectMinMultiDimArray4Pointers() [2/2]

template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR * > * gum::projectMinMultiDimArray4Pointers ( const MultiDimImplementation< GUM_SCALAR * > * table,
const gum::VariableSet & del_vars )

a specialized function for projecting a multiDimArray using a Min operator

The function projects a table over the subset of its variables NOT IN the set of variables del_vars. For instance, if table is a MultiDimArray defined over A,B,C,D and if del_vars = {A,C}, then the function returns a table over B,D defined as Min_{A,C} table (A,B,C,D).

Returns
function ProjectMaxMultiDimArrays allocates on the heap the new T multiDimArray and returns it
Warning
In practice, do not use this function but rather operator/function projectMin on MultiDimImplementation. This operator will take care to select this function if it is appropriate for your projection.

◆ projectMinMultiDimFunctionGraph() [1/2]

template<typename GUM_SCALAR>
MultiDimFunctionGraph< GUM_SCALAR > * gum::projectMinMultiDimFunctionGraph ( const MultiDimFunctionGraph< GUM_SCALAR > * table,
const gum::VariableSet & del_vars )

a specialized function for projecting a multiDimFunctionGraph using a Min operator

The function projects a table over the subset of its variables NOT IN the set of variables del_vars. For instance, if table is a MultiDimFunctionGraph defined over A,B,C,D and if del_vars = {A,C}, then the function returns a table over B,D defined as Min_{A,C} table (A,B,C,D).

Returns
function ProjectMaxMultiDimFunctionGraphs allocates on the heap the new T multiDimFunctionGraph and returns it
Warning
In practice, do not use this function but rather operator/function projectMin on MultiDimImplementation. This operator will take care to select this function if it is appropriate for your projection.

◆ projectMinMultiDimFunctionGraph() [2/2]

template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * gum::projectMinMultiDimFunctionGraph ( const MultiDimImplementation< GUM_SCALAR > * table,
const gum::VariableSet & del_vars )

a specialized function for projecting a multiDimFunctionGraph using a Min operator

The function projects a table over the subset of its variables NOT IN the set of variables del_vars. For instance, if table is a MultiDimFunctionGraph defined over A,B,C,D and if del_vars = {A,C}, then the function returns a table over B,D defined as Min_{A,C} table (A,B,C,D).

Returns
function ProjectMaxMultiDimFunctionGraphs allocates on the heap the new T multiDimFunctionGraph and returns it
Warning
In practice, do not use this function but rather operator/function projectMin on MultiDimImplementation. This operator will take care to select this function if it is appropriate for your projection.

◆ projectProduct() [1/2]

template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * gum::projectProduct ( const MultiDimImplementation< GUM_SCALAR > & table,
const gum::VariableSet & del_vars )

The function to be used to project a MultiDimImplementation using a Product.

◆ projectProduct() [2/2]

template<typename GUM_SCALAR>
GUM_SCALAR gum::projectProduct ( const MultiDimImplementation< GUM_SCALAR > & table,
Instantiation * instantiation = 0 )

the function to be used to project a MultiDimImplementation using a Product

Referenced by gum::Tensor< GUM_SCALAR >::prodIn(), gum::Tensor< GUM_SCALAR >::prodOut(), and gum::Tensor< GUM_SCALAR >::product().

Here is the caller graph for this function:

◆ projectProductMultiDimArray() [1/2]

template<typename GUM_SCALAR>
MultiDimArray< GUM_SCALAR > * gum::projectProductMultiDimArray ( const MultiDimArray< GUM_SCALAR > * table,
const gum::VariableSet & del_vars )

a specialized function for projecting a multiDimArray using products

The function projects a table over the subset of its variables NOT IN the set of variables del_vars. For instance, if table is a MultiDimArray defined over A,B,C,D and if del_vars = {A,C}, then the function returns a table over B,D defined as Prod_{A,C} table (A,B,C,D).

Returns
function ProjectMaxMultiDimArrays allocates on the heap the new T multiDimArray and returns it
Warning
In practice, do not use this function but rather operator/function projectProduct on MultiDimImplementation. This operator will take care to select this function if it is appropriate for your projection.

◆ projectProductMultiDimArray() [2/2]

template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * gum::projectProductMultiDimArray ( const MultiDimImplementation< GUM_SCALAR > * table,
const gum::VariableSet & del_vars )

a specialized function for projecting a multiDimArray using products

The function projects a table over the subset of its variables NOT IN the set of variables del_vars. For instance, if table is a MultiDimArray defined over A,B,C,D and if del_vars = {A,C}, then the function returns a table over B,D defined as Prod_{A,C} table (A,B,C,D).

Returns
function ProjectMaxMultiDimArrays allocates on the heap the new T multiDimArray and returns it
Warning
In practice, do not use this function but rather operator/function projectProduct on MultiDimImplementation. This operator will take care to select this function if it is appropriate for your projection.

◆ projectProductMultiDimArray4Pointers() [1/2]

template<typename GUM_SCALAR>
MultiDimArray< GUM_SCALAR * > * gum::projectProductMultiDimArray4Pointers ( const MultiDimArray< GUM_SCALAR * > * table,
const gum::VariableSet & del_vars )

a specialized function for projecting a multiDimArray using products

The function projects a table over the subset of its variables NOT IN the set of variables del_vars. For instance, if table is a MultiDimArray defined over A,B,C,D and if del_vars = {A,C}, then the function returns a table over B,D defined as Prod_{A,C} table (A,B,C,D).

Returns
function ProjectMaxMultiDimArrays allocates on the heap the new T multiDimArray and returns it
Warning
In practice, do not use this function but rather operator/function projectProduct on MultiDimImplementation. This operator will take care to select this function if it is appropriate for your projection.

◆ projectProductMultiDimArray4Pointers() [2/2]

template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR * > * gum::projectProductMultiDimArray4Pointers ( const MultiDimImplementation< GUM_SCALAR * > * table,
const gum::VariableSet & del_vars )

a specialized function for projecting a multiDimArray using products

The function projects a table over the subset of its variables NOT IN the set of variables del_vars. For instance, if table is a MultiDimArray defined over A,B,C,D and if del_vars = {A,C}, then the function returns a table over B,D defined as Prod_{A,C} table (A,B,C,D).

Returns
function ProjectMaxMultiDimArrays allocates on the heap the new T multiDimArray and returns it
Warning
In practice, do not use this function but rather operator/function projectProduct on MultiDimImplementation. This operator will take care to select this function if it is appropriate for your projection.

◆ projectProductMultiDimFunctionGraph() [1/2]

template<typename GUM_SCALAR>
MultiDimFunctionGraph< GUM_SCALAR > * gum::projectProductMultiDimFunctionGraph ( const MultiDimFunctionGraph< GUM_SCALAR > * table,
const gum::VariableSet & del_vars )

a specialized function for projecting a multiDimFunctionGraph using products

The function projects a table over the subset of its variables NOT IN the set of variables del_vars. For instance, if table is a MultiDimFunctionGraph defined over A,B,C,D and if del_vars = {A,C}, then the function returns a table over B,D defined as Prod_{A,C} table (A,B,C,D).

Returns
function ProjectMaxMultiDimFunctionGraphs allocates on the heap the new T multiDimFunctionGraph and returns it
Warning
In practice, do not use this function but rather operator/function projectProduct on MultiDimImplementation. This operator will take care to select this function if it is appropriate for your projection.

◆ projectProductMultiDimFunctionGraph() [2/2]

template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * gum::projectProductMultiDimFunctionGraph ( const MultiDimImplementation< GUM_SCALAR > * table,
const gum::VariableSet & del_vars )

a specialized function for projecting a multiDimFunctionGraph using products

The function projects a table over the subset of its variables NOT IN the set of variables del_vars. For instance, if table is a MultiDimFunctionGraph defined over A,B,C,D and if del_vars = {A,C}, then the function returns a table over B,D defined as Prod_{A,C} table (A,B,C,D).

Returns
function ProjectMaxMultiDimFunctionGraphs allocates on the heap the new T multiDimFunctionGraph and returns it
Warning
In practice, do not use this function but rather operator/function projectProduct on MultiDimImplementation. This operator will take care to select this function if it is appropriate for your projection.

◆ projectSum() [1/2]

template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * gum::projectSum ( const MultiDimImplementation< GUM_SCALAR > & table,
const gum::VariableSet & del_vars )

The function to be used to project a MultiDimImplementation using a Sum.

◆ projectSum() [2/2]

template<typename GUM_SCALAR>
GUM_SCALAR gum::projectSum ( const MultiDimImplementation< GUM_SCALAR > & table,
Instantiation * instantiation = 0 )

the function to be used to project a MultiDimImplementation using a sum

Referenced by gum::Tensor< GUM_SCALAR >::sum(), gum::Tensor< GUM_SCALAR >::sumIn(), and gum::Tensor< GUM_SCALAR >::sumOut().

Here is the caller graph for this function:

◆ projectSumMultiDimArray() [1/2]

template<typename GUM_SCALAR>
MultiDimArray< GUM_SCALAR > * gum::projectSumMultiDimArray ( const MultiDimArray< GUM_SCALAR > * table,
const gum::VariableSet & del_vars )

a specialized function for projecting a multiDimArray using a summation

The function projects a table over the subset of its variables NOT IN the set of variables del_vars. For instance, if table is a MultiDimArray defined over A,B,C,D and if del_vars = {A,C}, then the function returns a table over B,D defined as Sum_{A,C} table (A,B,C,D).

Returns
function ProjectMaxMultiDimArrays allocates on the heap the new T multiDimArray and returns it
Warning
In practice, do not use this function but rather operator/function projectSum on MultiDimImplementation. This operator will take care to select this function if it is appropriate for your projection.

◆ projectSumMultiDimArray() [2/2]

template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * gum::projectSumMultiDimArray ( const MultiDimImplementation< GUM_SCALAR > * table,
const gum::VariableSet & del_vars )

a specialized function for projecting a multiDimArray using a summation

The function projects a table over the subset of its variables NOT IN the set of variables del_vars. For instance, if table is a MultiDimArray defined over A,B,C,D and if del_vars = {A,C}, then the function returns a table over B,D defined as Sum_{A,C} table (A,B,C,D).

Returns
function ProjectMaxMultiDimArrays allocates on the heap the new T multiDimArray and returns it
Warning
In practice, do not use this function but rather operator/function projectSum on MultiDimImplementation. This operator will take care to select this function if it is appropriate for your projection.

◆ projectSumMultiDimArray4Pointers() [1/2]

template<typename GUM_SCALAR>
MultiDimArray< GUM_SCALAR * > * gum::projectSumMultiDimArray4Pointers ( const MultiDimArray< GUM_SCALAR * > * table,
const gum::VariableSet & del_vars )

a specialized function for projecting a multiDimArray using a summation

The function projects a table over the subset of its variables NOT IN the set of variables del_vars. For instance, if table is a MultiDimArray defined over A,B,C,D and if del_vars = {A,C}, then the function returns a table over B,D defined as Sum_{A,C} table (A,B,C,D).

Returns
function ProjectMaxMultiDimArrays allocates on the heap the new T multiDimArray and returns it
Warning
In practice, do not use this function but rather operator/function projectSum on MultiDimImplementation. This operator will take care to select this function if it is appropriate for your projection.

◆ projectSumMultiDimArray4Pointers() [2/2]

template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR * > * gum::projectSumMultiDimArray4Pointers ( const MultiDimImplementation< GUM_SCALAR * > * table,
const gum::VariableSet & del_vars )

a specialized function for projecting a multiDimArray using a summation

The function projects a table over the subset of its variables NOT IN the set of variables del_vars. For instance, if table is a MultiDimArray defined over A,B,C,D and if del_vars = {A,C}, then the function returns a table over B,D defined as Sum_{A,C} table (A,B,C,D).

Returns
function ProjectMaxMultiDimArrays allocates on the heap the new T multiDimArray and returns it
Warning
In practice, do not use this function but rather operator/function projectSum on MultiDimImplementation. This operator will take care to select this function if it is appropriate for your projection.

◆ projectSumMultiDimFunctionGraph() [1/2]

template<typename GUM_SCALAR>
MultiDimFunctionGraph< GUM_SCALAR > * gum::projectSumMultiDimFunctionGraph ( const MultiDimFunctionGraph< GUM_SCALAR > * table,
const gum::VariableSet & del_vars )

a specialized function for projecting a multiDimFunctionGraph using a summation

The function projects a table over the subset of its variables NOT IN the set of variables del_vars. For instance, if table is a MultiDimFunctionGraph defined over A,B,C,D and if del_vars = {A,C}, then the function returns a table over B,D defined as Sum_{A,C} table (A,B,C,D).

Returns
function ProjectMaxMultiDimFunctionGraphs allocates on the heap the new T multiDimFunctionGraph and returns it
Warning
In practice, do not use this function but rather operator/function projectSum on MultiDimImplementation. This operator will take care to select this function if it is appropriate for your projection.

◆ projectSumMultiDimFunctionGraph() [2/2]

template<typename GUM_SCALAR>
MultiDimImplementation< GUM_SCALAR > * gum::projectSumMultiDimFunctionGraph ( const MultiDimImplementation< GUM_SCALAR > * table,
const gum::VariableSet & del_vars )

a specialized function for projecting a multiDimFunctionGraph using a summation

The function projects a table over the subset of its variables NOT IN the set of variables del_vars. For instance, if table is a MultiDimFunctionGraph defined over A,B,C,D and if del_vars = {A,C}, then the function returns a table over B,D defined as Sum_{A,C} table (A,B,C,D).

Returns
function ProjectMaxMultiDimFunctionGraphs allocates on the heap the new T multiDimFunctionGraph and returns it
Warning
In practice, do not use this function but rather operator/function projectSum on MultiDimImplementation. This operator will take care to select this function if it is appropriate for your projection.

◆ randomValue()

template<typename GENERATOR>
INLINE Idx gum::randomValue ( GENERATOR & generator,
const Size max )

Definition at line 76 of file utils_random_tpl.h.

76 {
77 std::uniform_int_distribution< Idx > uni_int(0, max - 1);
78 return uni_int(generator);
79 }

◆ rec_ancestral()

void gum::rec_ancestral ( const PDAG & graph,
PDAG & ancestral,
NodeId nod )

Definition at line 146 of file PDAG.cpp.

146 {
147 for (const auto par: graph.parents(nod)) {
148 if (!ancestral.existsNode(par)) {
149 ancestral.addNodeWithId(par);
150 rec_ancestral(graph, ancestral, par);
151 }
152 ancestral.addArc(par, nod);
153 }
154 for (const auto nei: graph.neighbours(nod)) {
155 if (!ancestral.existsNode(nei)) {
156 ancestral.addNodeWithId(nei);
157 rec_ancestral(graph, ancestral, nei);
158 }
159 ancestral.addEdge(nei, nod);
160 }
161 }
const NodeSet & parents(NodeId id) const
returns the set of nodes with arc ingoing to a given node
const NodeSet & neighbours(NodeId id) const
returns the set of node neighbours to a given node
bool existsNode(const NodeId id) const
returns true iff the NodeGraphPart contains the given nodeId
virtual void addNodeWithId(const NodeId id)
try to insert a node with the given id
void addEdge(NodeId first, NodeId second) final
insert a new edge into the partially directed graph
Definition PDAG_inl.h:81
void addArc(NodeId tail, NodeId head) final
insert a new arc into the directed graph
Definition PDAG_inl.h:63
void rec_ancestral(const PDAG &graph, PDAG &ancestral, NodeId nod)
Definition PDAG.cpp:146

References gum::PDAG::addArc(), gum::PDAG::addEdge(), gum::NodeGraphPart::addNodeWithId(), gum::NodeGraphPart::existsNode(), gum::EdgeGraphPart::neighbours(), gum::ArcGraphPart::parents(), and rec_ancestral().

Referenced by gum::PDAG::moralizedAncestralGraph(), and rec_ancestral().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rec_hasMixedReallyOrientedPath()

bool gum::rec_hasMixedReallyOrientedPath ( const PDAG & gr,
NodeSet & marked,
NodeId node,
NodeId goal,
bool alreadyOriented )

Definition at line 119 of file PDAG.cpp.

123 {
124 if (node == goal) return alreadyOriented;
125 if (marked.contains(node)) return false;
126 marked.insert(node);
127 for (const auto nod: gr.children(node))
128 if (rec_hasMixedReallyOrientedPath(gr, marked, nod, goal, true)) return true;
129 for (const auto nod: gr.neighbours(node))
130 if (rec_hasMixedReallyOrientedPath(gr, marked, nod, goal, alreadyOriented)) return true;
131 return false;
132 }
NodeSet children(const NodeSet &ids) const
returns the set of children of a set of nodes
bool contains(const Key &k) const
Indicates whether a given elements belong to the set.
Definition set_tpl.h:497
void insert(const Key &k)
Inserts a new element into the set.
Definition set_tpl.h:539
bool rec_hasMixedReallyOrientedPath(const PDAG &gr, NodeSet &marked, NodeId node, NodeId goal, bool alreadyOriented)
Definition PDAG.cpp:119

References gum::ArcGraphPart::children(), gum::Set< Key >::contains(), gum::Set< Key >::insert(), gum::EdgeGraphPart::neighbours(), and rec_hasMixedReallyOrientedPath().

Referenced by gum::PDAG::hasMixedReallyOrientedPath(), and rec_hasMixedReallyOrientedPath().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ registerOperator()

template<typename GUM_SCALAR>
void gum::registerOperator ( const std::string & operation_name,
const std::string & type1,
const std::string & type2,
typename OperatorRegister4MultiDim< GUM_SCALAR >::OperatorPtr function )

A function to more easily register new operators in MultiDims.

◆ registerPartialInstantiation()

template<typename GUM_SCALAR>
void gum::registerPartialInstantiation ( const std::string & instantiation_func_name,
const std::string & type_multidim,
typename PartialInstantiationRegister4MultiDim< GUM_SCALAR >::PartialInstantiationPtr function )

A function to more easily register new instantiation functions in MultiDims.

Referenced by partialInstantiation4MultiDimInit(), and pointerPartialInstantiation4MultiDimInit().

Here is the caller graph for this function:

◆ registerProjection()

template<typename GUM_SCALAR>
void gum::registerProjection ( const std::string & projection_name,
const std::string & type_multidim,
typename ProjectionRegister4MultiDim< GUM_SCALAR >::ProjectionPtr function )

A function to more easily register new projection functions in MultiDims.

◆ removeInfo()

template<class Element>
INLINE void gum::removeInfo ( const SplayBinaryNode< Element > * e,
HashTable< Element, SplayBinaryNode< Element > * > & addr )
static

Definition at line 664 of file splay_tpl.h.

665 {
666 GUM_ASSERT(addr.exists(e->getElement()));
667 addr.erase(e->getElement());
668
669 if (e->getFg()) removeInfo(e->getFg(), addr);
670
671 if (e->getFd()) removeInfo(e->getFd(), addr);
672 }
void erase(const Key &key)
Removes a given element from the hash table.
bool exists(const Key &key) const
Checks whether there exists an element with a given key in the hashtable.
const Element & getElement() const
Returns the element in the node.
Definition splay_tpl.h:332
const SplayBinaryNode< Element > * getFg() const
Returns the left child.
Definition splay_tpl.h:342
const SplayBinaryNode< Element > * getFd() const
Returns the right child.
Definition splay_tpl.h:352
static INLINE void removeInfo(const SplayBinaryNode< Element > *e, HashTable< Element, SplayBinaryNode< Element > * > &addr)
Definition splay_tpl.h:664

References gum::SplayBinaryNode< Element >::getElement(), gum::SplayBinaryNode< Element >::getFd(), gum::SplayBinaryNode< Element >::getFg(), and removeInfo().

Referenced by removeInfo(), gum::SplayTree< Element >::split(), and gum::SplayTree< Element >::split_by_val().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sq()

template<typename GUM_SCALAR>
Tensor< GUM_SCALAR > gum::sq ( const Tensor< GUM_SCALAR > & arg)
inline

Definition at line 506 of file tensor.h.

506 {
507 return arg.new_sq();
508 }

◆ SSNewMNmultiTensor()

template<typename GUM_SCALAR>
INLINE Tensor< GUM_SCALAR > gum::SSNewMNmultiTensor ( const Tensor< GUM_SCALAR > & t1,
const Tensor< GUM_SCALAR > & t2 )
static

Definition at line 66 of file ShaferShenoyMRFInference.h.

67 {
68 return t1 * t2;
69 }

◆ SSNewMNprojTensor()

template<typename GUM_SCALAR>
INLINE Tensor< GUM_SCALAR > gum::SSNewMNprojTensor ( const Tensor< GUM_SCALAR > & t1,
const gum::VariableSet & del_vars )
static

Definition at line 73 of file ShaferShenoyMRFInference.h.

74 {
75 return t1.sumOut(del_vars);
76 }

◆ SSNewmultiTensor()

template<typename GUM_SCALAR>
INLINE Tensor< GUM_SCALAR > gum::SSNewmultiTensor ( const Tensor< GUM_SCALAR > & t1,
const Tensor< GUM_SCALAR > & t2 )
static

Definition at line 68 of file ShaferShenoyInference.h.

69 {
70 return t1 * t2;
71 }

◆ SSNewprojTensor()

template<typename GUM_SCALAR>
INLINE Tensor< GUM_SCALAR > gum::SSNewprojTensor ( const Tensor< GUM_SCALAR > & t1,
const gum::VariableSet & del_vars )
static

Definition at line 75 of file ShaferShenoyInference.h.

76 {
77 return t1.sumOut(del_vars);
78 }

◆ to_string()

INLINE std::string gum::to_string ( const Formula & f)

Definition at line 495 of file formula_inl.h.

495{ return std::to_string(f.result()); }

References gum::Formula::result().

Referenced by gum::Formula::Formula(), gum::Formula::Formula(), gum::Formula::Formula(), gum::Formula::Formula(), gum::Formula::Formula(), gum::Formula::Formula(), gum::Formula::Formula(), gum::Formula::Formula(), gum::Formula::Formula(), and gum::Formula::Formula().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ VENewmultiTensor()

template<typename GUM_SCALAR>
INLINE Tensor< GUM_SCALAR > gum::VENewmultiTensor ( const Tensor< GUM_SCALAR > & t1,
const Tensor< GUM_SCALAR > & t2 )
static

Definition at line 67 of file variableElimination.h.

68 {
69 return t1 * t2;
70 }

◆ VENewprojTensor()

template<typename GUM_SCALAR>
INLINE Tensor< GUM_SCALAR > gum::VENewprojTensor ( const Tensor< GUM_SCALAR > & t1,
const gum::VariableSet & del_vars )
static

Definition at line 74 of file variableElimination.h.

75 {
76 return t1.sumOut(del_vars);
77 }

Variable Documentation

◆ MultiDimFunctionGraph< double >::defaultValue

Definition at line 70 of file multiDimFunctionGraph.cpp.

◆ MultiDimFunctionGraph< float >::defaultValue

template<>
const float gum::MultiDimFunctionGraph< float >::defaultValue = 0.0f

Definition at line 67 of file multiDimFunctionGraph.cpp.

◆ VariableLog2ParamComplexityCTable

const double gum::VariableLog2ParamComplexityCTable

Definition at line 248 of file variableLog2ParamComplexity.cpp.

248 {{0,
249 1,
250 1.3219280948873624038,
251 1.5305148703230577745,
252 1.6865005853516363832,
253 1.8116353900270942834,
254 1.9163583844844809256,
255 2.0065271644294311315,
256 2.0857704966116465961,
257 2.1564986340920730967,
258 2.2203965250090043071,
259 2.2786902190668105739,
260 2.3322990996918790962,
261 2.3819333135364253451,
262 2.4281502505698502326,
263 2.4713970635580784219,
264 2.5120389433034655546,
265 2.5503761743106676541,
266 2.5866596296997594884,
267 2.6211016700234877064,
268 2.6538820078470202191,
269 2.6851559155058404293,
270 2.7150583520600020115,
271 2.7437053059117562093,
272 2.7711991437760832291,
273 2.79763156718914896,
274 2.8230804530606610214,
275 2.8476192305148533279,
276 2.8713103180418357852,
277 2.8942112722722521667,
278 2.9163733091011145859,
279 2.9378445477276624587,
280 2.9586657568594088019,
281 2.9788760126291720098,
282 2.9985108275544174461,
283 3.0176020678569406286,
284 3.0361794852617554064,
285 3.054270010943741287,
286 3.0718997050205953947,
287 3.0890904999196213687,
288 3.1058645897056522678,
289 3.1222418647242431433,
290 3.1382404560408532213,
291 3.1538784964406412215,
292 3.1691716096623245846,
293 3.1841343571506448562,
294 3.1987813380348359971,
295 3.2131256939662806715,
296 3.2271791995449077284,
297 3.2409529086398065623,
298 3.2544605816423333167,
299 3.2677107412971055922,
300 3.2807131309745982684,
301 3.2934769361591986758,
302 3.3060108350527364074,
303 3.3183230373618513021,
304 3.3304213181985549141,
305 3.3423130485925671707,
306 3.3540052232282806521,
307 3.365504485776890764,
308 3.3768171521001946189,
309 3.3879492315483643594,
310 3.3989064465446894303,
311 3.4096942506232235104,
312 3.4203178450640367991,
313 3.4307821942586769204,
314 3.4410920399192130859,
315 3.4512519142354931567,
316 3.4612661520716652142,
317 3.4711389022871026455,
318 3.4808741382541863452,
319 3.4904756676427037831,
320 3.4999471415291836252,
321 3.5092920628885035939,
322 3.5185137945163771356,
323 3.5276155664278530111,
324 3.5366004827734669469,
325 3.5454715283100086687,
326 3.5542315744600920802,
327 3.5628833849918311039,
328 3.5714296213456182549,
329 3.5798728476357393191,
330 3.5882155353493616623,
331 3.5964600677650082616,
332 3.6046087441100200799,
333 3.6126637834754928846,
334 3.6206273285060115441,
335 3.6285014488783944309,
336 3.6362881445853285634,
337 3.6439893490354289263,
338 3.6516069319827231254,
339 3.6591427022967493166,
340 3.6665984105827660322,
341 3.6739757516632027823,
342 3.6812763669277042133,
343 3.6885018465600203363,
344 3.6956537316512108049,
345 3.7027335162031129734,
346 3.709742649032294004,
347 3.7166825355772776796,
348 3.7235545396163005627,
349 3.7303599849017525791,
350 3.7371001567142370092,
351 3.7437763033413591351,
352 3.7503896374878165076,
353 3.7569413376170515129,
354 3.7634325492308957628,
355 3.769864386090051589,
356 3.776237931378247481,
357 3.7825542388137973759,
358 3.7888143337102198061,
359 3.7950192139907077404,
360 3.8011698511566636149,
361 3.8072671912138411621,
362 3.813312155558833183,
363 3.8193056418268742647,
364 3.8252485247035634686,
365 3.8311416567014151546,
366 3.8369858689048319533,
367 3.8427819716839515252,
368 3.8485307553783489887,
369 3.8542329909524455367,
370 3.8598894306260795872,
371 3.8655008084775124289,
372 3.8710678410228189783,
373 3.876591227773807713,
374 3.882071651772597054,
375 3.8875097801044717905,
376 3.8929062643933862731,
377 3.8982617412758329145,
378 3.9035768328586790687,
379 3.9088521471579533717,
380 3.9140882785229149654,
381 3.9192858080418018218,
382 3.9244453039363653701,
383 3.9295673219370383933,
384 3.9346524056491860577,
385 3.9397010869028807889,
386 3.9447138860910029301,
387 3.9496913124958692443,
388 3.9546338646043004417,
389 3.9595420304092820984,
390 3.9644162877048079174,
391 3.9692571043686029064,
392 3.9740649386334756521,
393 3.9788402393527797507,
394 3.9835834462536925393,
395 3.9882949901852819963,
396 3.9929752933534228276,
397 3.9976247695539166571,
398 4.0022438243928535329,
399 4.0068328555018473125,
400 4.0113922527467709145,
401 4.0159223984285752351,
402 4.0204236674779094685,
403 4.0248964276438972121,
404 4.0293410396769857584,
405 4.0337578575052832619,
406 4.0381472284054762412,
407 4.0425094931694394162,
408 4.0468449862648130377,
409 4.0511540359901010433,
410 4.0554369646269510241,
411 4.0596940885851129366,
412 4.0639257185455752719,
413 4.0681321595976314143,
414 4.0723137113727130298,
415 4.0764706681735560778,
416 4.0806033191015051997,
417 4.0847119481760802984,
418 4.0887968344559588729,
419 4.0928582521525260773,
420 4.096896470742770191,
421 4.1009117550762148596,
422 4.1049043654819339366,
423 4.1088745578704353179,
424 4.1128225838338998699,
425 4.1167486907416792619,
426 4.1206531218352182577,
427 4.1245361163190610299,
428 4.1283979094510820929,
429 4.132238732626686506,
430 4.1360588134663576199,
431 4.139858375893271436,
432 4.1436376402167542921,
433 4.1473968232080631324,
434 4.1511361381755982336,
435 4.1548557950390989646,
436 4.1585560004008677026,
437 4.1622369576153950277,
438 4.1658988668573400105,
439 4.1695419251878274025,
440 4.1731663266171183935,
441 4.1767722621704104213,
442 4.1803599199458023605,
443 4.1839294851754313953,
444 4.1874811402837543994,
445 4.1910150649428796754,
446 4.1945314361289192107,
447 4.1980304281754907691,
448 4.2015122128245518951,
449 4.2049769592809953522,
450 4.2084248342581513924,
451 4.2118560020307898029,
452 4.2152706244788999967,
453 4.2186688611367610946,
454 4.2220508692363925007,
455 4.225416803753091699,
456 4.2287668174469059679,
457 4.2321010609056335383,
458 4.2354196825864427467,
459 4.2387228288547360577,
460 4.2420106440234812695,
461 4.2452832703925196256,
462 4.2485408482849811307,
463 4.2517835160841324083,
464 4.2550114102685414608,
465 4.2582246654469715352,
466 4.26142341439412764,
467 4.2646077880808599403,
468 4.2677779157089421602,
469 4.2709339247424109587,
470 4.274075940938657503,
471 4.2772040883774593567,
472 4.2803184894933243854,
473 4.2834192651025713161,
474 4.2865065344308401762,
475 4.289580415144497394,
476 4.2926410233744620726,
477 4.2956884737434544164,
478 4.2987228793938232485,
479 4.3017443520103322285,
480 4.3047530018470325786,
481 4.3077489377515956193,
482 4.3107322671875394349,
483 4.3137030962596352168,
484 4.316661529734781233,
485 4.3196076710668069865,
486 4.3225416224157466871,
487 4.3254634846717516794,
488 4.3283733574735760996,
489 4.3312713392326411821,
490 4.3341575271484868992,
491 4.3370320172331373598,
492 4.3398949043284797966,
493 4.3427462821229729784,
494 4.3455862431756866471,
495 4.3484148789292014214,
496 4.3512322797302420696,
497 4.3540385348456256409,
498 4.356833732481850241,
499 4.3596179597991531196,
500 4.3623913029289527188,
501 4.3651538469910677875,
502 4.3679056761079779747,
503 4.3706468734213030913,
504 4.3733775211061569621,
505 4.3760977003871506241,
506 4.3788074915526937758,
507 4.3815069739687659833,
508 4.3841962260935583018,
509 4.3868753254904069294,
510 4.3895443488443355307,
511 4.3922033719697441967,
512 4.3948524698297672941,
513 4.3974917165443105915,
514 4.4001211854055455319,
515 4.4027409488877315979,
516 4.4053510786623730766,
517 4.4079516456074374631,
518 4.4105427198193112304,
519 4.413124370626925419,
520 4.4156966665987864573,
521 4.41825967555714616,
522 4.4208134645886669745,
523 4.4233581000526163152,
524 4.4258936475945764855,
525 4.4284201721547953312,
526 4.4309377379767873606,
527 4.4334464086213936085,
528 4.43594624697273332,
529 4.4384373152494838166,
530 4.4409196750140704779,
531 4.4433933871817323791,
532 4.4458585120283409253,
533 4.4483151092023449635,
534 4.45076323773105198,
535 4.453202956028516013,
536 4.455634321906808637,
537 4.4580573925828819171,
538 4.4604722246857066992,
539 4.4628788742656686495,
540 4.4652773968013761419,
541 4.4676678472091388983,
542 4.470050279849242969,
543 4.4724247485319761353,
544 4.4747913065293190016,
545 4.4771500065773404131,
546 4.479500900886822734,
547 4.4818440411483351227,
548 4.4841794785394766265,
549 4.486507263732785411,
550 4.4888274469003111022,
551 4.4911400777222940661,
552 4.4934452053927378401,
553 4.4957428786234023832,
554 4.4980331456558610981,
555 4.5003160542619937701,
556 4.5025916517526587413,
557 4.5048599849818993235,
558 4.5071211003542339668,
559 4.509375043832439367,
560 4.5116218609378160309,
561 4.5138615967603969992,
562 4.5160942959626275695,
563 4.5183200027852965519,
564 4.520538761050457488,
565 4.5227506141726685485,
566 4.5249556051553225799,
567 4.5271537766050604645,
568 4.5293451707288889807,
569 4.5315298293447279221,
570 4.5337077938817769152,
571 4.5358791053897657974,
572 4.5380438045398090452,
573 4.5402019316310466834,
574 4.5423535265940566674,
575 4.5444986289971485149,
576 4.5466372780479309412,
577 4.5487695126010194713,
578 4.5508953711591386693,
579 4.553014891878988557,
580 4.555128112576217525,
581 4.5572350707277848869,
582 4.5593358034746458429,
583 4.5614303476320641195,
584 4.5635187396852909814,
585 4.5656010157987418907,
586 4.5676772118182524807,
587 4.5697473632747893646,
588 4.5718115053883314758,
589 4.5738696730711936311,
590 4.5759219009318297111,
591 4.5779682232786962359,
592 4.580008674122619361,
593 4.5820432871812135645,
594 4.584072095882786968,
595 4.586095133367030563,
596 4.5881124324917292867,
597 4.5901240258338660283,
598 4.5921299456936059968,
599 4.5941302240962302861,
600 4.5961248927967330857,
601 4.5981139832828796798,
602 4.6000975267765156218,
603 4.6020755542377775882,
604 4.6040480963680820992,
605 4.6060151836140565962,
606 4.6079768461666379409,
607 4.6099331139685295611,
608 4.6118840167134669272,
609 4.6138295838511140801,
610 4.6157698445869090875,
611 4.6177048278901766665,
612 4.6196345624913410788,
613 4.6215590768852035097,
614 4.6234783993373831379,
615 4.6253925578819199416,
616 4.6273015803267174562,
617 4.6292054942556273289,
618 4.6311043270312808318,
619 4.6329981057947851042,
620 4.6348868574709847223,
621 4.6367706087697735384,
622 4.6386493861883799639,
623 4.6405232160142411146,
624 4.6423921243242238788,
625 4.6442561369929995507,
626 4.6461152796873097515,
627 4.6479695778763394642,
628 4.6498190568245965082,
629 4.6516637416049304576,
630 4.6535036570902770237,
631 4.6553388279622769375,
632 4.6571692787102758615,
633 4.6589950336343957105,
634 4.6608161168481601067,
635 4.6626325522775369237,
636 4.6644443636669574715,
637 4.6662515745784025611,
638 4.6680542083924478902,
639 4.6698522883139945705,
640 4.6716458373701978957,
641 4.6734348784128760812,
642 4.6752194341241404274,
643 4.6769995270109037122,
644 4.6787751794146723583,
645 4.6805464135071934706,
646 4.6823132512952057027,
647 4.6840757146187979032,
648 4.6858338251597526636,
649 4.6875876044357518424,
650 4.6893370738041744161,
651 4.6910822544682728719,
652 4.6928231674714568911,
653 4.6945598337046998694,
654 4.6962922739035599662,
655 4.6980205086537933923,
656 4.6997445583900265831,
657 4.701464443396743853,
658 4.7031801838139450922,
659 4.7048917996347849879,
660 4.7065993107051991018,
661 4.7083027367308956102,
662 4.7100020972750966664,
663 4.711697411761337051,
664 4.7133886994705447293,
665 4.7150759795503836003,
666 4.716759271010333876,
667 4.7184385927245848791,
668 4.7201139634314115412,
669 4.7217854017414575551,
670 4.7234529261286848367,
671 4.7251165549405174104,
672 4.7267763063949077562,
673 4.7284321985804709243,
674 4.7300842494594608212,
675 4.7317324768711976901,
676 4.7333768985298183551,
677 4.7350175320239840104,
678 4.7366543948237511685,
679 4.7382875042768928253,
680 4.7399168776121101132,
681 4.7415425319386947933,
682 4.7431644842495428449,
683 4.7447827514203240185,
684 4.7463973502112200009,
685 4.7480082972698944843,
686 4.7496156091286225731,
687 4.7512193022091739891,
688 4.7528193928204247598,
689 4.754415897162219018,
690 4.7560088313258255255,
691 4.7575982112920573996,
692 4.7591840529372824165,
693 4.7607663720297326293,
694 4.7623451842321564698,
695 4.7639205051033224336,
696 4.7654923501002564024,
697 4.7670607345735351856,
698 4.7686256737765431168,
699 4.7701871828583897184,
700 4.7717452768708836786,
701 4.7732999707639018894,
702 4.7748512793922586184,
703 4.7763992175118508143,
704 4.7779437997822711282,
705 4.779485040768117976,
706 4.7810229549378044922,
707 4.7825575566684097595,
708 4.7840888602415843067,
709 4.7856168798473426307,
710 4.7871416295831812349,
711 4.7886631234593268758,
712 4.7901813753921604899,
713 4.7916963992098375869,
714 4.793208208654144542,
715 4.7947168173766101518,
716 4.7962222389421578228,
717 4.7977244868320019222,
718 4.7992235744391740226,
719 4.8007195150724708554,
720 4.8022123219588612741,
721 4.8037020082385737396,
722 4.8051885869703383491,
723 4.806672071133410995,
724 4.8081524736236067596,
725 4.8096298072548462343,
726 4.8111040847635733186,
727 4.8125753188071112021,
728 4.8140435219620663077,
729 4.815508706729492161,
730 4.8169708855305968243,
731 4.8184300707133571606,
732 4.8198862745447037526,
733 4.8213395092214463844,
734 4.8227897868634492795,
735 4.8242371195151969587,
736 4.8256815191494624173,
737 4.8271229976646479187,
738 4.8285615668882222451,
739 4.8299972385755332027,
740 4.8314300244083812075,
741 4.8328599360013910768,
742 4.8342869848977274572,
743 4.8357111825698240182,
744 4.8371325404227860645,
745 4.8385510697928113544,
746 4.8399667819487799392,
747 4.8413796880902806308,
748 4.8427897993521877851,
749 4.8441971268038637177,
750 4.8456016814473992227,
751 4.8470034742173515596,
752 4.8484025159888686218,
753 4.849798817568856002,
754 4.8511923897029873842,
755 4.8525832430713089494,
756 4.853971388294493039,
757 4.8553568359266421339,
758 4.8567395964647177564,
759 4.8581196803414918861,
760 4.8594970979306104653,
761 4.8608718595434847742,
762 4.8622439754347617225,
763 4.8636134557955728042,
764 4.8649803107635145594,
765 4.8663445504125162344,
766 4.8677061847613245504,
767 4.8690652237710372319,
768 4.8704216773445008215,
769 4.8717755553306814065,
770 4.873126867518017491,
771 4.8744756236406097116,
772 4.8758218333816891743,
773 4.8771655063631165206,
774 4.878506652155493839,
775 4.8798452802753393698,
776 4.8811814001828057741,
777 4.8825150212892536317,
778 4.8838461529498840008,
779 4.8851748044667928639,
780 4.8865009850920388956,
781 4.8878247040260154321,
782 4.8891459704159974109,
783 4.8904647933599099119,
784 4.8917811819041414623,
785 4.8930951450436799277,
786 4.8944066917270454553,
787 4.8957158308505261957,
788 4.8970225712604733559,
789 4.8983269217598017775,
790 4.8996288910962872976,
791 4.9009284879733785445,
792 4.902225721046442608,
793 4.903520598923560847,
794 4.9048131301646282765,
795 4.9061033232843991314,
796 4.9073911867492512329,
797 4.9086767289830364192,
798 4.909959958360117227,
799 4.9112408832123994884,
800 4.9125195118262006133,
801 4.9137958524402511884,
802 4.9150699132533270941,
803 4.9163417024166076175,
804 4.9176112280417614286,
805 4.918878498192087001,
806 4.920143520891094191,
807 4.92140630411920732,
808 4.9226668558117179231,
809 4.9239251838645961001,
810 4.9251812961328695906,
811 4.9264352004250104855,
812 4.9276869045139148895,
813 4.9289364161274331622,
814 4.930183742953959225,
815 4.9314288926429705739,
816 4.9326718728017695526,
817 4.9339126909990707048,
818 4.9351513547632901435,
819 4.9363878715825793009,
820 4.9376222489086307732,
821 4.9388544941514433972,
822 4.9400846146855030838,
823 4.9413126178442805525,
824 4.9425385109245425497,
825 4.9437623011874967105,
826 4.9449839958525672046,
827 4.9462036021044877288,
828 4.9474211270911467864,
829 4.94863657792356193,
830 4.9498499616762590136,
831 4.951061285385411459,
832 4.9522705560567228389,
833 4.953477780653996021,
834 4.9546829661095603825,
835 4.9558861193187082606,
836 4.9570872471431259854,
837 4.9582863564077985785,
838 4.9594834539061531942,
839 4.9606785463950835435,
840 4.9618716405975016315,
841 4.9630627432033493918,
842 4.9642518608677059788,
843 4.9654390002135828652,
844 4.9666241678332916365,
845 4.9678073702783995813,
846 4.9689886140775181289,
847 4.9701679057200074396,
848 4.9713452516644425216,
849 4.9725206583386771797,
850 4.9736941321387124759,
851 4.9748656794271779447,
852 4.9760353065382254556,
853 4.9772030197691305986,
854 4.9783688253938667145,
855 4.9795327296494962255,
856 4.9806947387447246811,
857 4.9818548588592266313,
858 4.9830130961401488676,
859 4.9841694567042216235,
860 4.9853239466419916326,
861 4.9864765720105195257,
862 4.9876273388394878339,
863 4.9887762531291475199,
864 4.9899233208496038827,
865 4.991068547943197764,
866 4.9922119403239273439,
867 4.9933535038756051705,
868 4.9944932444557128548,
869 4.9956311678911315965,
870 4.9967672799847102638,
871 4.9979015865084877035,
872 4.9990340932062125034,
873 5.0001648057961816107,
874 5.0012937299703708049,
875 5.0024208713897557743,
876 5.0035462356939701678,
877 5.0046698284898649689,
878 5.005791655360565251,
879 5.0069117218661789437,
880 5.0080300335340695028,
881 5.0091465958702752204,
882 5.0102614143550079362,
883 5.011374494437898619,
884 5.0124858415485151752,
885 5.013595461088218741,
886 5.0147033584340050538,
887 5.0158095389358994254,
888 5.016914007923525709,
889 5.0180167706959730722,
890 5.019117832532923984,
891 5.0202171986848211915,
892 5.0213148743816304886,
893 5.0224108648275542777,
894 5.023505175204015849,
895 5.0245978106638364835,
896 5.0256887763431103977,
897 5.0267780773503911718,
898 5.0278657187677264773,
899 5.0289517056634220893,
900 5.0300360430708339621,
901 5.031118736011032766,
902 5.0321997894735872592,
903 5.033279208430878171,
904 5.0343569978304349988,
905 5.0354331625974140252,
906 5.0365077076369173525,
907 5.0375806378261662744,
908 5.038651958026854949,
909 5.0397216730759275549,
910 5.0407897877868261816,
911 5.041856306954672462,
912 5.0429212353508097166,
913 5.0439845777257694692,
914 5.0450463388084694216,
915 5.0461065233078148395,
916 5.0471651359122242653,
917 5.0482221812838998787,
918 5.0492776640733696425,
919 5.0503315889010202966,
920 5.0513839603731200967,
921 5.0524347830748155275,
922 5.0534840615674294639,
923 5.0545318003950736596,
924 5.05557800408043434,
925 5.0566226771290772035,
926 5.0576658240231813224,
927 5.0587074492262962266,
928 5.0597475571842567277,
929 5.0607861523217154698,
930 5.0618232390409545474,
931 5.0628588217326138121,
932 5.0638929047618450596,
933 5.0649254924753428497,
934 5.0659565892059488235,
935 5.0669861992626907821,
936 5.0680143269352670998,
937 5.0690409764981279039,
938 5.0700661522092937972,
939 5.0710898582985928229,
940 5.0721120989893737629,
941 5.0731328784784439634,
942 5.074152200949661129,
943 5.0751700705663855828,
944 5.0761864914751884115,
945 5.0772014678021966105,
946 5.0782150036598769915,
947 5.0792271031403100068,
948 5.0802377703232988182,
949 5.0812470092607417982,
950 5.0822548239972018536,
951 5.0832612185565020368,
952 5.0842661969462712435,
953 5.0852697631546215362,
954 5.0862719211552098741,
955 5.0872726749042893601,
956 5.0882720283436793096,
957 5.0892699853939786792,
958 5.0902665499607424593,
959 5.091261725937645366,
960 5.0922555171965226961,
961 5.0932479275947484254,
962 5.094238960975246755,
963 5.0952286211621018452,
964 5.0962169119655813532,
965 5.0972038371799763823,
966 5.0981894005837675721,
967 5.0991736059372865242,
968 5.1001564569885795564,
969 5.1011379574663200387,
970 5.1021181110905606815,
971 5.1030969215600734401,
972 5.1040743925584699525,
973 5.1050505277576778695,
974 5.1060253308124812222,
975 5.1069988053626742541,
976 5.1079709550334140289,
977 5.1089417834336536828,
978 5.1099112941604722948,
979 5.1108794907935513052,
980 5.1118463769002309149,
981 5.1128119560305220759,
982 5.11377623172347473,
983 5.1147392075002322542,
984 5.1157008868717728234,
985 5.116661273330823434,
986 5.1176203703575344761,
987 5.1185781814189557082,
988 5.1195347099664330059,
989 5.1204899594392658813,
990 5.1214439332609789091,
991 5.1223966348441702934,
992 5.1233480675841667207,
993 5.1242982348635015555,
994 5.1252471400564001414,
995 5.1261947865156995974,
996 5.1271411775841633229,
997 5.1280863165930874459,
998 5.1290302068593502938,
999 5.1299728516864773198,
1000 5.1309142543640433587,
1001 5.1318544181685155081,
1002 5.1327933463647230639,
1003 5.1337310422057331749,
1004 5.1346675089254301128,
1005 5.1356027497561580475,
1006 5.1365367679072226892,
1007 5.1374695665772396325,
1008 5.1384011489590157851,
1009 5.1393315182221570581,
1010 5.1402606775344112933,
1011 5.1411886300445432951,
1012 5.1421153788897671078,
1013 5.1430409271974797392,
1014 5.1439652780826365941,
1015 5.1448884346451242422,
1016 5.1458103999755540059,
1017 5.1467311771488537531,
1018 5.1476507692358399737,
1019 5.1485691792869845429,
1020 5.1494864103439317304,
1021 5.1504024654393774085,
1022 5.1513173475900968512,
1023 5.1522310598052882824,
1024 5.1531436050768171242,
1025 5.154054986390756099,
1026 5.1549652067224593921,
1027 5.1558742690289873778,
1028 5.1567821762629959537,
1029 5.1576889313596012698,
1030 5.1585945372493107186,
1031 5.1594989968480309273,
1032 5.1604023130584497636,
1033 5.1613044887765493485,
1034 5.1622055268855175925,
1035 5.1631054302586427696,
1036 5.1640042017523919426,
1037 5.1649018442226921621,
1038 5.1657983605064501376,
1039 5.1666937534335160009,
1040 5.1675880258200974637,
1041 5.1684811804786026102,
1042 5.1693732202005282517,
1043 5.1702641477748567667,
1044 5.1711539659809906411,
1045 5.1720426775792134322,
1046 5.1729302853286380781,
1047 5.1738167919714435072,
1048 5.1747022002469185153,
1049 5.1755865128781888274,
1050 5.1764697325776172221,
1051 5.1773518620504228593,
1052 5.1782329039929742009,
1053 5.1791128610875416527,
1054 5.1799917360116936038,
1055 5.1808695314259356479,
1056 5.1817462499881834503,
1057 5.1826218943436206388,
1058 5.1834964671259511348,
1059 5.1843699709595680858,
1060 5.1852424084628720991,
1061 5.1861137822415441789,
1062 5.1869840948945533654,
1063 5.1878533490036060627,
1064 5.1887215471528209676,
1065 5.1895886919050626673,
1066 5.1904547858231815383,
1067 5.1913198314537947198,
1068 5.192183831339884037,
1069 5.1930467880138593273,
1070 5.1939087039925064815,
1071 5.1947695817944223862,
1072 5.1956294239197946538,
1073 5.1964882328643193787,
1074 5.1973460111126827954,
1075 5.1982027611443841764,
1076 5.1990584854245227575,
1077 5.1999131864112939638,
1078 5.2007668665594337654,
1079 5.2016195283058488386,
1080 5.2024711740834899132,
1081 5.203321806317999787,
1082 5.204171427421442786,
1083 5.2050200398034256466,
1084 5.2058676458613843963,
1085 5.2067142479828039114,
1086 5.2075598485492484713,
1087 5.2084044499348749468,
1088 5.2092480545023915894,
1089 5.2100906646060316518,
1090 5.2109322825951016611,
1091 5.2117729108069843491,
1092 5.2126125515733319205,
1093 5.213451207214731653,
1094 5.2142888800491773438,
1095 5.2151255723779401663,
1096 5.2159612865027060735,
1097 5.2167960247110647387,
1098 5.2176297892858354288,
1099 5.2184625824991188736,
1100 5.2192944066195696706,
1101 5.220125263904654922,
1102 5.2209551566026108915,
1103 5.2217840869550187222,
1104 5.2226120572001928366,
1105 5.2234390695608432509,
1106 5.2242651262570420911,
1107 5.2250902295006715903,
1108 5.2259143814924087224,
1109 5.2267375844326826595,
1110 5.2275598405055427875,
1111 5.2283811518936920137,
1112 5.2292015207701219026,
1113 5.2300209492999023553,
1114 5.2308394396413042671,
1115 5.2316569939448518411,
1116 5.232473614353325253,
1117 5.2332893030042768601,
1118 5.2341040620237198056,
1119 5.2349178935364628629,
1120 5.2357307996543065443,
1121 5.2365427824845500737,
1122 5.2373538441268099319,
1123 5.238163986674397421,
1124 5.2389732122109791135,
1125 5.2397815228161856993,
1126 5.2405889205596087876,
1127 5.241395407508760762,
1128 5.2422009857169236113,
1129 5.2430056572353631594,
1130 5.2438094241079955538,
1131 5.2446122883720418528,
1132 5.2454142520553670437,
1133 5.2462153171821466202,
1134 5.2470154857665374237,
1135 5.2478147598175572952,
1136 5.2486131413384571331,
1137 5.2494106323246381152,
1138 5.2502072347647210648,
1139 5.2510029506425377477,
1140 5.251797781929518294,
1141 5.2525917305996054907,
1142 5.2533847986118153983,
1143 5.2541769879225519446,
1144 5.2549683004819565113,
1145 5.2557587382321022673,
1146 5.2565483031086124299,
1147 5.2573369970446170996,
1148 5.2581248219619407536,
1149 5.2589117797758726525,
1150 5.2596978723983403015,
1151 5.2604831017338673504,
1152 5.2612674696825720844,
1153 5.2620509781352522438,
1154 5.2628336289762662759,
1155 5.2636154240880941302,
1156 5.2643963653400520641,
1157 5.265176454600734246,
1158 5.2659556937352318684,
1159 5.2667340845913157565,
1160 5.2675116290245780348,
1161 5.2682883288747248685,
1162 5.2690641859777169742,
1163 5.2698392021680051656,
1164 5.2706133792652787307,
1165 5.271386719093205997,
1166 5.2721592234625580531,
1167 5.2729308941811661171,
1168 5.2737017330491058331,
1169 5.2744717418625182148,
1170 5.2752409224120926368,
1171 5.2760092764806643117,
1172 5.2767768058460946534,
1173 5.277543512281305027,
1174 5.2783093975509522977,
1175 5.2790744634183006667,
1176 5.2798387116383533879,
1177 5.2806021439611363633,
1178 5.2813647621308099644,
1179 5.2821265678829112389,
1180 5.2828875629518661228,
1181 5.2836477490664632839,
1182 5.2844071279468405322,
1183 5.2851657013085491243,
1184 5.2859234708673588088,
1185 5.2866804383222154584,
1186 5.2874366053748973471,
1187 5.2881919737240625778,
1188 5.2889465450525703361,
1189 5.2897003210486817082,
1190 5.290453303389528017,
1191 5.2912054937457764225,
1192 5.2919568937911822815,
1193 5.2927075051818022189,
1194 5.293457329578695969,
1195 5.2942063686346854112,
1196 5.2949546239952445248,
1197 5.2957020973001824871,
1198 5.2964487901885801691,
1199 5.2971947042925213722,
1200 5.297939841235940861,
1201 5.2986842026422600327,
1202 5.2994277901252901941,
1203 5.300170605297537918,
1204 5.3009126497653964449,
1205 5.3016539251279422018,
1206 5.3023944329858592184,
1207 5.3031341749252627338,
1208 5.3038731525346189954,
1209 5.3046113673943970923,
1210 5.3053488210808819048,
1211 5.306085515167051625,
1212 5.3068214512167317665,
1213 5.3075566307942354527,
1214 5.30829105545386426,
1215 5.3090247267513417384,
1216 5.3097576462314437507,
1217 5.3104898154367718988,
1218 5.3112212359058306177,
1219 5.3119519091693705448,
1220 5.3126818367597845594,
1221 5.3134110201977717836,
1222 5.3141394610034575763,
1223 5.3148671606899267061,
1224 5.3155941207672805504,
1225 5.3163203427447527361,
1226 5.3170458281155896785,
1227 5.317770578381833424,
1228 5.3184945950302289219,
1229 5.319217879550071082,
1230 5.3199404334246933601,
1231 5.3206622581300351271,
1232 5.3213833551401314992,
1233 5.3221037259237444772,
1234 5.322823371944543247,
1235 5.3235422946629959995,
1236 5.3242604955346219953,
1237 5.3249779760101221271,
1238 5.3256947375405347955,
1239 5.3264107815598338291,
1240 5.3271261095145172604,
1241 5.3278407228337982815,
1242 5.3285546229469780144,
1243 5.3292678112797853274,
1244 5.3299802892558414413,
1245 5.3306920582895092053,
1246 5.3314031197943716478,
1247 5.3321134751741725566},
1248 {0,
1249 1.5849625007211560757,
1250 2.1699250014423121513,
1251 2.5579955284837421203,
1252 2.8517490673526251221,
1253 3.0892269252300743609,
1254 3.2890510328453164135,
1255 3.4618085511600300563,
1256 3.6141229290066028135,
1257 3.7504259155236727707,
1258 3.8738343594563144912,
1259 3.9866268417936208124,
1260 4.0905208835103650244,
1261 4.1868449994830516658,
1262 4.2766477253538210945,
1263 4.3607719993149194337,
1264 4.4399061203561185351,
1265 4.5146190672093302609,
1266 4.5853869701682743454,
1267 4.6526125097847090828,
1268 4.7166389444279692711,
1269 4.7777617636723892502,
1270 4.8362371518461326758,
1271 4.8922882172546229285,
1272 4.9461109414819546259,
1273 4.9978786087594517795,
1274 5.0477441915345888646,
1275 5.0958449174691766714,
1276 5.142302922386489783,
1277 5.1872282989971658651,
1278 5.2307202260764773527,
1279 5.272868845842570984,
1280 5.3137554441091534585,
1281 5.3534544662673164694,
1282 5.3920338893693333659,
1283 5.4295558604443643347,
1284 5.4660775512431785117,
1285 5.5016515105679610897,
1286 5.5363264478263589652,
1287 5.5701470085010997835,
1288 5.6031549010092156493,
1289 5.6353887148233496873,
1290 5.666884276405992793,
1291 5.6976751795378968168,
1292 5.7277925478387725633,
1293 5.7572654681792094777,
1294 5.786121332867177891,
1295 5.8143857277800439221,
1296 5.8420825800477009793,
1297 5.8692343821621539846,
1298 5.8958628449458272414,
1299 5.9219877053718938953,
1300 5.9476278617615392363,
1301 5.9728011606503024211,
1302 5.9975244751027325663,
1303 6.0218137748042357416,
1304 6.0456841897349296033,
1305 6.0691500682567394165,
1306 6.0922250302291720558,
1307 6.1149220156687800198,
1308 6.1372533293993125625,
1309 6.1592306820850524218,
1310 6.1808652279951372677,
1311 6.2021675998074830005,
1312 6.2231479407269647552,
1313 6.2438159341637256006,
1314 6.2641808311908375728,
1315 6.2842514759783121292,
1316 6.3040363293799472899,
1317 6.3235434908322130099,
1318 6.3427807187080356144,
1319 6.3617554492549714951,
1320 6.3804748142341640715,
1321 6.3989456573660392635,
1322 6.4171745496783119123,
1323 6.4351678038431758822,
1324 6.4529314875827097353,
1325 6.4704714362143045392,
1326 6.4877932644015752217,
1327 6.5049023771705218877,
1328 6.5218039802452860698,
1329 6.5385030897536235983,
1330 6.5550045413475777067,
1331 6.5713129987812495258,
1332 6.5874329619839846472,
1333 6.6033687746642577565,
1334 6.6191246314767182568,
1335 6.6347045847820735887,
1336 6.6501125510274698982,
1337 6.6653523167725232668,
1338 6.6804275443844689519,
1339 6.6953417774240433502,
1340 6.7100984457419530216,
1341 6.7247008703045993983,
1342 6.7391522677659985163,
1343 6.7534557548017595252,
1344 6.7676143522200646885,
1345 6.7816309888629486835,
1346 6.7955085053110009241,
1347 6.8092496574029155454,
1348 6.8228571195810641115,
1349 6.8363334880734170085,
1350 6.8496812839211305146,
1351 6.8629029558607514971,
1352 6.8760008830695991122,
1353 6.8889773777816616374,
1354 6.9018346877815446305,
1355 6.9145749987831877093,
1356 6.9272004366996293712,
1357 6.9397130698098399293,
1358 6.9521149108280493323,
1359 6.9644079188810090741,
1360 6.9765940013978378076,
1361 6.9886750159171633356,
1362 7.0006527718159281548,
1363 7.0125290319637931802,
1364 7.0243055143070174395,
1365 7.0359838933852882903,
1366 7.0475658017850904002,
1367 7.0590528315326412923,
1368 7.0704465354293475343,
1369 7.0817484283326272987,
1370 7.0929599883849858699,
1371 7.1040826581934402029,
1372 7.1151178459619242034,
1373 7.1260669265790523852,
1374 7.1369312426630076018,
1375 7.1477121055656445137,
1376 7.1584107963380390061,
1377 7.1690285666587305613,
1378 7.1795666397268513848,
1379 7.1900262111213359972,
1380 7.2004084496281084427,
1381 7.2107144980362312126,
1382 7.220945473905043599,
1383 7.231102470302680274,
1384 7.2411865565182020887,
1385 7.2511987787476739342,
1386 7.2611401607557306548,
1387 7.2710117045136426484,
1388 7.2808143908148288403,
1389 7.2905491798685311267,
1390 7.3002170118731619652,
1391 7.3098188075696226562,
1392 7.3193554687754387444,
1393 7.3288278789009924097,
1394 7.338236903447949544,
1395 7.3475833904912182248,
1396 7.3568681711443213445,
1397 7.3660920600098922506,
1398 7.3752558556148146707,
1399 7.3843603408312903369,
1400 7.393406283284258862,
1401 7.4023944357455100373,
1402 7.4113255365151546883,
1403 7.4202003097909541296,
1404 7.4290194660259221138,
1405 7.4377837022745927342,
1406 7.4464937025284365646,
1407 7.4551501380409357367,
1408 7.46375366764251158,
1409 7.472304938045723155,
1410 7.4808045841413086663,
1411 7.489253229284988933,
1412 7.4976514855758464861,
1413 7.505999954126187923,
1414 7.5142992253234304201,
1415 7.5225498790841633934,
1416 7.530752485100896898,
1417 7.5389076030812161022,
1418 7.5470157829804103145,
1419 7.5550775652270116822,
1420 7.563093480942076674,
1421 7.5710640521519403379,
1422 7.5789897919952027294,
1423 7.5868712049236606276,
1424 7.5947087868976961289,
1425 7.6025030255760297493,
1426 7.6102544005003744942,
1427 7.617963383274865663,
1428 7.6256304377407069239,
1429 7.6332560201457235749,
1430 7.640840579309796432,
1431 7.6483845567851513891,
1432 7.655888387013034091,
1433 7.6633524974757074588,
1434 7.670777308844529685,
1435 7.6781632351241988488,
1436 7.685510683793099318,
1437 7.6928200559400004011,
1438 7.7000917463971996213,
1439 7.7073261438702260762,
1440 7.7145236310640221689,
1441 7.7216845848063044855,
1442 7.7288093761672360671,
1443 7.7358983705764634564,
1444 7.7429519279370788709,
1445 7.7499704027365883263,
1446 7.7569541441553138128,
1447 7.7639034961719657346,
1448 7.7708187976664913066,
1449 7.7777003825208090859,
1450 7.784548579716417116,
1451 7.7913637134303490583,
1452 7.7981461031281220642,
1453 7.8048960636549837844,
1454 7.8116139053245801094,
1455 7.8182999340057701687,
1456 7.8249544512071169677,
1457 7.8315777541595927858,
1458 7.8381701358972941662,
1459 7.844731885336115873,
1460 7.8512632873507026687,
1461 7.8577646228496798031,
1462 7.8642361688489810234,
1463 7.8706781985435876337,
1464 7.8770909813775560337,
1465 7.883474783112487394,
1466 7.8898298658945753559,
1467 7.896156488319749478,
1468 7.9024549054977795137,
1469 7.908725369114728565,
1470 7.9149681274940411058,
1471 7.9211834256561690637,
1472 7.9273715053771969252,
1473 7.9335326052458050583,
1474 7.9396669607190686335,
1475 7.9457748041773976766,
1476 7.9518563649777309621,
1477 7.9579118695058941313,
1478 7.9639415412279186413,
1479 7.9699456007399085422,
1480 7.975924265817205594,
1481 7.9818777514623482361,
1482 7.9878062699518972423,
1483 7.9937100308825455031,
1484 7.999589241215965707,
1485 8.0054441053230434022,
1486 8.0112748250268044359,
1487 8.0170815996448503427,
1488 8.0228646260305200855,
1489 8.0286240986136814257,
1490 8.0343602094400452529,
1491 8.0400731482104017545,
1492 8.0457631023185527397,
1493 8.0514302568884446032,
1494 8.0570747948111662851,
1495 8.0626968967803556154,
1496 8.0682967413275274993,
1497 8.0738745048563789197,
1498 8.0794303616766942611,
1499 8.0849644840372061338,
1500 8.0904770421580760598,
1501 8.0959682042627640897,
1502 8.1014381366090564285,
1503 8.1068870035196916035,
1504 8.1123149674122601027,
1505 8.1177221888286599238,
1506 8.1231088264638859897,
1507 8.1284750371942582348,
1508 8.1338209761051807334,
1509 8.1391467965182808797,
1510 8.1444526500183069828,
1511 8.1497386864789014282,
1512 8.1550050540887468742,
1513 8.1602518993764316946,
1514 8.1654793672353918055,
1515 8.170687600948014051,
1516 8.1758767422096845223,
1517 8.1810469311519824487,
1518 8.1861983063656609261,
1519 8.1913310049233842847,
1520 8.1964451624015488562,
1521 8.2015409129022316392,
1522 8.2066183890745207918,
1523 8.2116777221352794669,
1524 8.2167190418899522797,
1525 8.2217424767526345875,
1526 8.2267481537658095903,
1527 8.2317361986201333934,
1528 8.2367067356733052463,
1529 8.241659887969012388,
1530 8.2465957772553721838,
1531 8.2515145240030918217,
1532 8.2564162474231999056,
1533 8.2613010654847940373,
1534 8.2661690949320902888,
1535 8.2710204513012843819,
1536 8.2758552489373915506,
1537 8.2806736010104877721,
1538 8.2854756195317040834,
1539 8.2902614153691143173,
1540 8.2950310982631840773,
1541 8.2997847768421522119,
1542 8.3045225586369397774,
1543 8.3092445500957996529,
1544 8.3139508565991242506,
1545 8.3186415824733579427,
1546 8.3233168310052789707,
1547 8.3279767044556507471,
1548 8.3326213040728056569,
1549 8.3372507301060672091,
1550 8.3418650818187281004,
1551 8.3464644575010957794,
1552 8.3510489544831312259,
1553 8.3556186691467750904,
1554 8.3601736969386344356,
1555 8.3647141323816800451,
1556 8.369240069087316769,
1557 8.3737515997669760281,
1558 8.3782488162437136481,
1559 8.3827318094636957824,
1560 8.3872006695069654114,
1561 8.3916554855987435246,
1562 8.3960963461200979197,
1563 8.4005233386186137778,
1564 8.4049365498186912049,
1565 8.4093360656322566626,
1566 8.4137219711682984524,
1567 8.4180943507434804474,
1568 8.4224532878914430967,
1569 8.4267988653728433945,
1570 8.4311311651845954884,
1571 8.4354502685695358366,
1572 8.4397562560254097974,
1573 8.4440492073140998031,
1574 8.4483292014705000383,
1575 8.4525963168114621737,
1576 8.4568506309442881275,
1577 8.4610922207755105973,
1578 8.4653211625191104872,
1579 8.4695375317049190755,
1580 8.473741403186858534,
1581 8.4779328511508715849,
1582 8.4821119491227694454,
1583 8.4862787699764776761,
1584 8.4904333859411753593,
1585 8.4945758686092514012,
1586 8.4987062889436693069,
1587 8.5028247172853355096,
1588 8.506931223360369998,
1589 8.5110258762872401661,
1590 8.5151087445838271606,
1591 8.5191798961743927521,
1592 8.5232393983963561368,
1593 8.5272873180071080412,
1594 8.5313237211906951529,
1595 8.5353486735642061234,
1596 8.5393622401844559988,
1597 8.5433644855542283381,
1598 8.5473554736285937139,
1599 8.5513352678210345914,
1600 8.5553039310096448133,
1601 8.559261525543142568,
1602 8.5632081132467057216,
1603 8.5671437554278941917,
1604 8.5710685128824284362,
1605 8.5749824458999448495,
1606 8.5788856142693692419,
1607 8.5827780772847415136,
1608 8.5866598937504541311,
1609 8.5905311219867694916,
1610 8.5943918198349464888,
1611 8.5982420446628271549,
1612 8.6020818533696523644,
1613 8.6059113023911972817,
1614 8.6097304477050542459,
1615 8.6135393448352655099,
1616 8.617338048857405397,
1617 8.6211266144033853465,
1618 8.6249050956662340894,
1619 8.6286735464046238064,
1620 8.6324320199476947124,
1621 8.6361805691995492396,
1622 8.6399192466437746418,
1623 8.6436481043479265196,
1624 8.6473671939677334564,
1625 8.6510765667518167987,
1626 8.6547762735454778493,
1627 8.6584663647954265286,
1628 8.6621468905533784977,
1629 8.6658179004808459922,
1630 8.6694794438525466518,
1631 8.6731315695608337535,
1632 8.676774326119449654,
1633 8.6804077616675030526,
1634 8.6840319239733609891,
1635 8.6876468604382779404,
1636 8.6912526181003944004,
1637 8.6948492436382860404,
1638 8.6984367833745608323,
1639 8.7020152832797155185,
1640 8.705584788975468058,
1641 8.7091453457383103398,
1642 8.7126969985032332033,
1643 8.7162397918667089414,
1644 8.719773770090577969,
1645 8.7232989771050313266,
1646 8.7268154565120994448,
1647 8.7303232515887216891,
1648 8.7338224052903772332,
1649 8.7373129602538170957,
1650 8.7407949588003539532,
1651 8.7442684429392354417,
1652 8.7477334543702767178,
1653 8.751190034487249747,
1654 8.7546382243806064594,
1655 8.7580780648406779676,
1656 8.7615095963604296969,
1657 8.7649328591383266485,
1658 8.7683478930814207075,
1659 8.7717547378079583353,
1660 8.7751534326500451044,
1661 8.7785440166567312303,
1662 8.7819265285965109058,
1663 8.7853010069600987464,
1664 8.7886674899628154378,
1665 8.7920260155476928077,
1666 8.7953766213876924951,
1667 8.7987193448883527225,
1668 8.8020542231902112462,
1669 8.8053812931717150292,
1670 8.80870059145107831,
1671 8.8120121543892508953,
1672 8.8153160180920835387,
1673 8.8186122184126460866,
1674 8.8219007909536948375,
1675 8.825181771070118586,
1676 8.8284551938710524865,
1677 8.8317210942220629732,
1678 8.8349795067477270294,
1679 8.8382304658335790748,
1680 8.8414740056284273351,
1681 8.8447101600464375082,
1682 8.8479389627694029485,
1683 8.851160447248741292,
1684 8.8543746467076420714,
1685 8.85758159414324453,
1686 8.8607813223284672688,
1687 8.8639738638142553384,
1688 8.8671592509313903463,
1689 8.8703375157926309669,
1690 8.8735086902946509468,
1691 8.8766728061198012512,
1692 8.87982989473832518,
1693 8.8829799874099784063,
1694 8.8861231151860042843,
1695 8.8892593089110185645,
1696 8.8923885992249100951,
1697 8.8955110165643418441,
1698 8.8986265911650068716,
1699 8.9017353530629570457,
1700 8.9048373320966920375,
1701 8.9079325579085857356,
1702 8.9110210599469397152,
1703 8.9141028674674096521,
1704 8.9171780095347799033,
1705 8.9202465150246617043,
1706 8.9233084126249995194,
1707 8.9263637308379379931,
1708 8.9294124979811471121,
1709 8.9324547421895719168,
1710 8.9354904914169157593,
1711 8.9385197734374433054,
1712 8.9415426158471085216,
1713 8.9445590460653381371,
1714 8.9475690913366126011,
1715 8.9505727787316828881,
1716 8.9535701351492082978,
1717 8.9565611873173409663,
1718 8.9595459617948716158,
1719 8.962524484972838934,
1720 8.9654967830760323722,
1721 8.9684628821640810514,
1722 8.9714228081330880116,
1723 8.9743765867170655071,
1724 8.9773242434890434538,
1725 8.9802658038624407766,
1726 8.9832012930926143923,
1727 8.9861307362780333818,
1728 8.9890541583614531618,
1729 8.9919715841314573623,
1730 8.994883038223447258,
1731 8.9977885451212387125,
1732 9.0006881291578313409,
1733 9.0035818145172239468,
1734 9.0064696252352121064,
1735 9.0093515852006547107,
1736 9.0122277181568346549,
1737 9.0150980477024660331,
1738 9.0179625972930210764,
1739 9.020821390241794191,
1740 9.0236744497209304683,
1741 9.0265217987628947327,
1742 9.029363460261317087,
1743 9.0321994569721244517,
1744 9.0350298115147893441,
1745 9.0378545463733157561,
1746 9.0406736838973671411,
1747 9.0434872463032078826,
1748 9.0462952556749733901,
1749 9.0490977339656488709,
1750 9.0518947029979894836,
1751 9.0546861844654991103,
1752 9.0574721999338638767,
1753 9.0602527708414495322,
1754 9.0630279185006585863,
1755 9.065797664098649733,
1756 9.0685620286986239336,
1757 9.071321033240385745,
1758 9.0740746985417786163,
1759 9.0768230452992337831,
1760 9.0795660940889533208,
1761 9.0823038653676579912,
1762 9.0850363794737685197,
1763 9.0877636566279367258,
1764 9.0904857169344612799,
1765 9.093202580381621658,
1766 9.0959142668429873169,
1767 9.0986207960781442239,
1768 9.1013221877335137577,
1769 9.1040184613434220751,
1770 9.1067096363305779505,
1771 9.1093957320072203032,
1772 9.1120767675761324966,
1773 9.1147527621308750412,
1774 9.1174237346571320728,
1775 9.1200897040333597232,
1776 9.1227506890314327137,
1777 9.1254067083178451725,
1778 9.1280577804540730114,
1779 9.1307039238975100659,
1780 9.1333451570023846955,
1781 9.1359814980204188117,
1782 9.1386129651014957886,
1783 9.1412395762946001554,
1784 9.1438613495484197813,
1785 9.1464783027120866166,
1786 9.1490904535361448069,
1787 9.1516978196729557027,
1788 9.1543004186775274178,
1789 9.1568982680085433401,
1790 9.1594913850284438439,
1791 9.1620797870046715161,
1792 9.1646634911101561016,
1793 9.1672425144240268224,
1794 9.169816873932221668,
1795 9.1723865865283151777,
1796 9.1749516690139980568,
1797 9.1775121381000293042,
1798 9.1800680104065133236,
1799 9.1826193024639000129,
1800 9.1851660307134590511,
1801 9.1877082115077879365,
1802 9.1902458611118387211,
1803 9.1927789957031240675,
1804 9.195307631372749313,
1805 9.1978317841255563536,
1806 9.2003514698811557082,
1807 9.202866704474359949,
1808 9.2053775036556562128,
1809 9.2078838830920837211,
1810 9.2103858583677364891,
1811 9.2128834449840368848,
1812 9.2153766583608636154,
1813 9.2178655138366352162,
1814 9.2203500266691449383,
1815 9.2228302120361433936,
1816 9.2253060850357151423,
1817 9.227777660687003447,
1818 9.2302449539306632431,
1819 9.2327079796293904934,
1820 9.2351667525686451654,
1821 9.2376212874569070266,
1822 9.2400715989265123085,
1823 9.2425177015338793041,
1824 9.2449596097602455558,
1825 9.2473973380122238552,
1826 9.2498309006219940898,
1827 9.2522603118481541173,
1828 9.254685585876105236,
1829 9.2571067368185335766,
1830 9.2595237787159199172,
1831 9.2619367255369269287,
1832 9.2643455911792624846,
1833 9.2667503894695819611,
1834 9.2691511341644829969,
1835 9.2715478389506813528,
1836 9.2739405174456504,
1837 9.2763291831979213242,
1838 9.2787138496877830107,
1839 9.2810945303274987594,
1840 9.2834712384618587322,
1841 9.285843987368689767,
1842 9.2882127902591804514,
1843 9.2905776602784708729,
1844 9.2929386105061357881,
1845 9.2952956539561206739,
1846 9.2976488035780473496,
1847 9.2999980722568178493,
1848 9.3023434728134599681,
1849 9.3046850180055340473,
1850 9.3070227205274900228,
1851 9.3093565930109996032,
1852 9.311686648025593982,
1853 9.3140128980786549562,
1854 9.3163353556164789637,
1855 9.3186540330239928664,
1856 9.320968942625574627,
1857 9.3232800966853961455,
1858 9.3255875074076399756,
1859 9.3278911869369842691,
1860 9.3301911473591836454,
1861 9.3324874007010816257,
1862 9.3347799589312909774,
1863 9.3370688339604512862,
1864 9.3393540376415664639,
1865 9.34163558177047193,
1866 9.3439134780861792251,
1867 9.3461877382711318063,
1868 9.3484583739517486123,
1869 9.350725396698571501,
1870 9.3529888180269242781,
1871 9.3552486493969340131,
1872 9.3575049022139946686,
1873 9.3597575878292413876,
1874 9.3620067175398471448,
1875 9.3642523025891293287,
1876 9.3664943541673526539,
1877 9.3687328834114964593,
1878 9.3709679014060256463,
1879 9.3731994191832459506,
1880 9.375427447723154728,
1881 9.3776519979543113692,
1882 9.3798730807539385523,
1883 9.3820907069480021789,
1884 9.3843048873120320508,
1885 9.3865156325710366048,
1886 9.3887229533999985165,
1887 9.3909268604240470069,
1888 9.393127364219079567,
1889 9.3953244753115736643,
1890 9.3975182041794180776,
1891 9.3997085612517317088,
1892 9.4018955569095847835,
1893 9.4040792014860254966,
1894 9.4062595052665187723,
1895 9.4084364784889498168,
1896 9.4106101313444767698,
1897 9.412780473977290896,
1898 9.4149475164849523168,
1899 9.4171112689192728595,
1900 9.4192717412855753167,
1901 9.4214289435440576881,
1902 9.4235828856091341521,
1903 9.4257335773503960752,
1904 9.4278810285925107593,
1905 9.4300252491156033585,
1906 9.4321662486556316907,
1907 9.4343040369042689974,
1908 9.4364386235097583722,
1909 9.4385700180767280187,
1910 9.440698230166502114,
1911 9.4428232692976035167,
1912 9.4449451449457448859,
1913 9.4470638665442159265,
1914 9.4491794434840983286,
1915 9.4512918851145837351,
1916 9.4534012007431940106,
1917 9.4555073996357528188,
1918 9.4576104910173146578,
1919 9.4597104840715289242,
1920 9.4618073879416328964,
1921 9.4639012117303611404,
1922 9.4659919645000414334,
1923 9.4680796552731454341,
1924 9.4701642930323188807,
1925 9.472245886720807917,
1926 9.4743244452423986957,
1927 9.4763999774618543626,
1928 9.4784724922051921681,
1929 9.4805419982597332051,
1930 9.4826085043742764924,
1931 9.4846720192598077404,
1932 9.4867325515890765786,
1933 9.4887901099971383445,
1934 9.4908447030817804091,
1935 9.4928963394032717105,
1936 9.4949450274847819742,
1937 9.4969907758127760644,
1938 9.4990335928371791852,
1939 9.5010734869710180561,
1940 9.503110466591646599,
1941 9.5051445400400176311,
1942 9.507175715621507095,
1943 9.5092040016057683971,
1944 9.5112294062271054429,
1945 9.5132519376844975056,
1946 9.5152716041421108173,
1947 9.5172884137291759998,
1948 9.5193023745405671576,
1949 9.5213134946362618649,
1950 9.5233217820424851396,
1951 9.5253272447512795651,
1952 9.5273298907209031938,
1953 9.5293297278758579694,
1954 9.5313267641073178282,
1955 9.5333210072731695561,
1956 9.5353124651983272031,
1957 9.537301145674614844,
1958 9.5392870564612177731,
1959 9.5412702052850129064,
1960 9.5432505998402863412,
1961 9.5452282477892520518,
1962 9.5472031567622206438,
1963 9.5491753343575780377,
1964 9.5511447881421851491,
1965 9.5531115256514489431,
1966 9.5550755543895036226,
1967 9.5570368818292728008,
1968 9.5589955154129011561,
1969 9.560951462551601665,
1970 9.5629047306263057493,
1971 9.5648553269872600424,
1972 9.566803258954459821,
1973 9.5687485338179740779,
1974 9.5706911588378549283,
1975 9.5726311412443987336,
1976 9.5745684882383184089,
1977 9.5765032069908322399,
1978 9.5784353046440138257,
1979 9.5803647883107014849,
1980 9.5822916650748783951,
1981 9.5842159419916015395,
1982 9.5861376260874422428,
1983 9.5880567243603245231,
1984 9.5899732437800206952,
1985 9.5918871912879453134,
1986 9.593798573797551299,
1987 9.5957073981944507324,
1988 9.5976136713364592623,
1989 9.5995174000538874282,
1990 9.6014185911495335546,
1991 9.6033172513990301411,
1992 9.605213387550714188,
1993 9.6071070063259647043,
1994 9.6089981144195437679,
1995 9.6108867184991506605,
1996 9.6127728252060666847,
1997 9.6146564411552315477,
1998 9.6165375729352522427,
1999 9.6184162271085789087,
2000 9.6202924102116149641,
2001 9.6221661287548982955,
2002 9.6240373892232859987,
2003 9.6259061980760947108,
2004 9.6277725617468910002,
2005 9.6296364866444132957,
2006 9.6314979791517441043,
2007 9.6333570456269885796,
2008 9.6352136924036173582,
2009 9.637067925789827072,
2010 9.638919752069607938,
2011 9.6407691775021095992,
2012 9.6426162083221047538,
2013 9.6444608507401774489,
2014 9.6463031109427408438,
2015 9.6481429950920354344,
2016 9.6499805093265145217,
2017 9.6518156597606754588,
2018 9.6536484524856920331,
2019 9.6554788935688211637,
2020 9.6573069890540246263,
2021 9.6591327449620880685,
2022 9.660956167290423835,
2023 9.6627772620135541359,
2024 9.6645960350828108432,
2025 9.6664124924269376748,
2026 9.6682266399520031541,
2027 9.6700384835411750117,
2028 9.6718480290554449397,
2029 9.6736552823331614093,
2030 9.6754602491907100159,
2031 9.6772629354221866294,
2032 9.6790633467995643713,
2033 9.6808614890730950719,
2034 9.6826573679711405163,
2035 9.6844509892004175811,
2036 9.6862423584457957304,
2037 9.6880314813711176924,
2038 9.6898183636184977985,
2039 9.6916030108089490369,
2040 9.6933854285422000885,
2041 9.695165622397226457,
2042 9.6969435979316163099,
2043 9.6987193606824604331,
2044 9.7004929161661550552,
2045 9.7022642698780909853,
2046 9.7040334272935258042,
2047 9.7058003938670083244,
2048 9.7075651750330749223,
2049 9.709327776205789462,
2050 9.7110882027790612625,
2051 9.7128464601269044465,
2052 9.714602553603462809,
2053 9.7163564885428765905,
2054 9.71810827025978341,
2055 9.7198579040488848335,
2056 9.7216053951856586934,
2057 9.7233507489260198042,
2058 9.7250939705064674001,
2059 9.7268350651442680999,
2060 9.7285740380376939385,
2061 9.7303108943658269681,
2062 9.732045639288898542,
2063 9.7337782779479429252,
2064 9.735508815465712118,
2065 9.7372372569457716907,
2066 9.7389636074734795557,
2067 9.7406878721153962175,
2068 9.7424100559198993921,
2069 9.7441301639169832782,
2070 9.7458482011181271076,
2071 9.7475641725171211505,
2072 9.749278083089297553,
2073 9.7509899377922018004,
2074 9.7526997415654061996,
2075 9.7544074993308349519,
2076 9.7561132159924639495,
2077 9.7578168964367151261,
2078 9.7595185455326891599,
2079 9.761218168131639672,
2080 9.7629157690676375836,
2081 9.7646113531575178257,
2082 9.7663049252006874923,
2083 9.7679964899796782873,
2084 9.7696860522598232279,
2085 9.77137361678941474,
2086 9.7730591882999711117,
2087 9.7747427715062382703,
2088 9.7764243711061045161,
2089 9.7781039917808012518,
2090 9.7797816381951268028,
2091 9.7814573149972368071,
2092 9.7831310268189692891,
2093 9.7848027782757078796,
2094 9.7864725739668010362,
2095 9.7881404184750540054,
2096 9.7898063163675157483,
2097 9.7914702721949478104,
2098 9.7931322904922861738,
2099 9.7947923757784653986,
2100 9.7964505325568023153,
2101 9.7981067653147295715,
2102 9.799761078523964386,
2103 9.8014134766406790789,
2104 9.8030639641057177869,
2105 9.8047125453441488219,
2106 9.8063592247658739609,
2107 9.808004006765477456,
2108 9.8096468957221532037,
2109 9.8112878960002429807,
2110 9.8129270119486307067,
2111 9.8145642479014316706,
2112 9.8161996081777154188,
2113 9.8178330970816496404,
2114 9.8194647189026085243,
2115 9.8210944779152047346,
2116 9.8227223783793551348,
2117 9.8243484245404442134,
2118 9.8259726206291411188,
2119 9.8275949708618810519,
2120 9.8292154794404424933,
2121 9.8308341505523735293,
2122 9.8324509883709101388,
2123 9.8340659970551094204,
2124 9.8356791807497643276,
2125 9.8372905435857056489,
2126 9.8389000896796154905,
2127 9.840507823134412746,
2128 9.842113748038819665,
2129 9.8437178684679249585,
2130 9.8453201884830239266,
2131 9.8469207121317090525,
2132 9.8485194434478149361,
2133 9.850116386451720274,
2134 9.8517115451501400258,
2135 9.853304923536390092,
2136 9.8548965255904139582,
2137 9.8564863552787667089,
2138 9.8580744165547073976,
2139 9.859660713358344708,
2140 9.8612452496163776061,
2141 9.8628280292427703557,
2142 9.8644090561380899373,
2143 9.8659883341900709297,
2144 9.8675658672735178101,
2145 9.8691416592502925198,
2146 9.8707157139694334802,
2147 9.8722880352673758608,
2148 9.873858626967640717,
2149 9.8754274928810925616,
2150 9.8769946368061170006,
2151 9.8785600625285159282,
2152 9.8801237738216762807,
2153 9.8816857744464314806,
2154 9.883246068151228414,
2155 9.8848046586723690154,
2156 9.8863615497335946003,
2157 9.8879167450466596279,
2158 9.8894702483112570945,
2159 9.8910220632145193775,
2160 9.8925721934320840489,
2161 9.894120642627184381,
2162 9.8956674144512000169,
2163 9.8972125125437848681,
2164 9.8987559405323946038,
2165 9.9002977020330895641,
2166 9.9018378006498988242,
2167 9.9033762399752784944,
2168 9.9049130235899642827,
2169 9.9064481550631775519,
2170 9.9079816379526075565,
2171 9.9095134758043652567,
2172 9.9110436721531538495,
2173 9.9125722305223096242,
2174 9.9140991544237220268,
2175 9.9156244473581569565,
2176 9.9171481128150240636,
2177 9.91867015427256149,
2178 9.9201905751978429748,
2179 9.9217093790467156822,
2180 9.9232265692641501431,
2181 9.9247421492840981472,
2182 9.9262561225294287937,
2183 9.9277684924121238907,
2184 9.9292792623335266455,
2185 9.9307884356836986228,
2186 9.9322960158422564092,
2187 9.9338020061781726611,
2188 9.9353064100493160282,
2189 9.936809230803342885,
2190 9.9383104717770827108,
2191 9.9398101362967672401,
2192 9.9413082276784496827,
2193 9.9428047492272302321,
2194 9.9442997042381904294,
2195 9.9457930959959259809,
2196 9.9472849277746036023,
2197 9.9487752028380889158,
2198 9.9502639244401756002,
2199 9.951751095824379334,
2200 9.9532367202239377946,
2201 9.9547208008621499431,
2202 9.9562033409520598326,
2203 9.9576843436968260903,
2204 9.9591638122895727037,
2205 9.9606417499133783622,
2206 9.9621181597416814668,
2207 9.9635930449376655105,
2208 9.9650664086549767262,
2209 9.9665382540373581577,
2210 9.9680085842188272949,
2211 9.9694774023237648919,
2212 9.9709447114667177914,
2213 9.972410514752809263,
2214 9.9738748152773819555,
2215 9.9753376161264686317,
2216 9.9767989203763605133,
2217 9.9782587310939732106,
2218 9.9797170513368271827,
2219 9.981173884152926945,
2220 9.982629232581176737,
2221 9.9840830996508902473,
2222 9.9855354883822684542,
2223 9.9869864017861758043,
2224 9.9884358428643462702,
2225 9.9898838146094934842,
2226 9.9913303200047582919,
2227 9.9927753620247212751,
2228 9.994218943634486152,
2229 9.9956610677904205176,
2230 9.9971017374398591926,
2231 9.9985409555210758015,
2232 9.9999787249635438968,
2233 10.001415048687835707,
2234 10.002849929605661217,
2235 10.004283370619978299,
2236 10.005715374624967851,
2237 10.007145944506056878,
2238 10.008575083140170747,
2239 10.010002793395079479,
2240 10.011429078130582582,
2241 10.012853940197395275,
2242 10.014277382437839492,
2243 10.015699407685753286,
2244 10.017120018766567213,
2245 10.018539218497068077,
2246 10.019957009685757754,
2247 10.021373395132535222},
2248 {0,
2249 2,
2250 2.8073549220576041741,
2251 3.3536370631535943332,
2252 3.7714895106311274731,
2253 4.1115655159417610065,
2254 4.3990864632756769836,
2255 4.6485587228878513244,
2256 4.8691354356993361563,
2257 5.0669818295080517601,
2258 5.2464571207588184265,
2259 5.4107623502682091754,
2260 5.5623190195081955167,
2261 5.703006746365687718,
2262 5.8343126340271016517,
2263 5.9574352031222339576,
2264 6.0733556433332545055,
2265 6.1828862241989339665,
2266 6.2867078798528943651,
2267 6.3853976809854211538,
2268 6.4794477668063832354,
2269 6.5692827294485240941,
2270 6.6552714096263994037,
2271 6.7377346850569788117,
2272 6.8169550088563353185,
2273 6.8931830556583326697,
2274 6.9666387250830359434,
2275 7.0375214021316967461,
2276 7.1060071323467326465,
2277 7.1722554489534200428,
2278 7.2364098410621791047,
2279 7.2986017269949030606,
2280 7.3589482121966680594,
2281 7.4175576159293372669,
2282 7.4745288259800064523,
2283 7.5299519580007014952,
2284 7.5839102229344481643,
2285 7.636479902408856546,
2286 7.6877324099684969383,
2287 7.7377320545346357505,
2288 7.7865399808308852769,
2289 7.8342124006415465587,
2290 7.8808013171713264811,
2291 7.9263562226457615623,
2292 7.9709222592914628081,
2293 8.014541602938578535,
2294 8.0572545500522494422,
2295 8.0990984438340216656,
2296 8.1401078875996137896,
2297 8.1803154063567138365,
2298 8.2197544148135897046,
2299 8.2584527204338957773,
2300 8.296437980622632935,
2301 8.3337363124671615111,
2302 8.3703724126775718162,
2303 8.4063696607852769205,
2304 8.4417502120744956073,
2305 8.4765350821312299701,
2306 8.5107442240840303072,
2307 8.5443965993439707773,
2308 8.5775102425159595043,
2309 8.6101023210584628487,
2310 8.6421891902008951547,
2311 8.6737864435672200614,
2312 8.704908959903193022,
2313 8.7355709462653319264,
2314 8.7657859779877131956,
2315 8.7955670357126791714,
2316 8.824926539740017617,
2317 8.8538763819264332255,
2318 8.8824279553406579879,
2319 8.9105921818632936038,
2320 8.9383795378983084134,
2321 8.9658000783512310505,
2322 8.9928634590117084713,
2323 9.019578957466292124,
2324 9.0459554926564464949,
2325 9.0720016431856116412,
2326 9.0977256644704276312,
2327 9.123135504822986519,
2328 9.1482388205421223404,
2329 9.1730429900877190619,
2330 9.1975551274032909532,
2331 9.2217820944479775847,
2332 9.2457305129933153864,
2333 9.2694067757362059723,
2334 9.29281705677560943,
2335 9.3159673214952327669,
2336 9.3388633358935919659,
2337 9.3615106753968824194,
2338 9.3839147331894565696,
2339 9.406080728093311194,
2340 9.4280137120249349891,
2341 9.449718577057726776,
2342 9.4712000621136365197,
2343 9.4924627593071306819,
2344 9.5135111199645425728,
2345 9.5343494603360063877,
2346 9.5549819670216145084,
2347 9.5754127021261776775,
2348 9.5956456081599235119,
2349 9.6156845127008168106,
2350 9.6355331328306839112,
2351 9.6551950793585383792,
2352 9.674673860845226514,
2353 9.6939728874374058165,
2354 9.7130954745238167192,
2355 9.7320448462231041731,
2356 9.7508241387121277199,
2357 9.7694364034039420375,
2358 9.7878846099825516092,
2359 9.8061716493038666442,
2360 9.8243003361679885899,
2361 9.8422734119705577172,
2362 9.8600935472398969495,
2363 9.877763344064923956,
2364 9.8952853384199102038,
2365 9.9126620023905385182,
2366 9.9298957463077943686,
2367 9.9469889207933022135,
2368 9.963943818719975809,
2369 9.9807626770924713355,
2370 9.9974476788531525528,
2371 10.014000954613710093,
2372 10.030424584318293313,
2373 10.046720598842311389,
2374 10.062890981527374379,
2375 10.078937669655852361,
2376 10.094862555870758314,
2377 10.110667489539036268,
2378 10.126354278064880532,
2379 10.141924688152043288,
2380 10.157380447020491587,
2381 10.172723243575690688,
2382 10.187954729538160947,
2383 10.203076520527410764,
2384 10.218090197110742068,
2385 10.2329973058114021,
2386 10.247799360081446096,
2387 10.262497841240575625,
2388 10.277094199381865636,
2389 10.291589854243699875,
2390 10.305986196054695014,
2391 10.320284586347755251,
2392 10.334486358744756629,
2393 10.348592819717516988,
2394 10.362605249320205658,
2395 10.376524901900120668,
2396 10.390353006780426171,
2397 10.404090768925623678,
2398 10.417739369580614195,
2399 10.431299966890730246,
2400 10.444773696502085869,
2401 10.458161672141519816,
2402 10.471464986178167678,
2403 10.484684710167483601,
2404 10.497821895378095292,
2405 10.510877573301435461,
2406 10.523852756145510412,
2407 10.536748437314278348,
2408 10.549565591871418846,
2409 10.562305176989406519,
2410 10.574968132386613817,
2411 10.587555380748748135,
2412 10.60006782813989723,
2413 10.612506364399679981,
2414 10.624871863529332217,
2415 10.637165184065759505,
2416 10.649387169446338675,
2417 10.661538648359456971,
2418 10.673620435089258507,
2419 10.685633329846911721,
2420 10.697578119094702132,
2421 10.709455575858433107,
2422 10.721266460033740842,
2423 10.733011518681895069,
2424 10.744691486318380669,
2425 10.756307085191693318,
2426 10.76785902555625718,
2427 10.77934800593665976,
2428 10.790774713386179329,
2429 10.802139823735060986,
2430 10.813444001837114072,
2431 10.82468790180285545,
2432 10.8358721672335232,
2433 10.846997431443936577,
2434 10.858064317680760524,
2435 10.869073439335851461,
2436 10.880025400153099824,
2437 10.890920794430101637,
2438 10.901760207214730158,
2439 10.912544214496701755,
2440 10.923273383392475111,
2441 10.933948272329693907,
2442 10.944569431221378153,
2443 10.955137401639886363,
2444 10.965652716985310633,
2445 10.976115902648308165,
2446 10.986527476171035644,
2447 10.996887947402781194,
2448 11.00719781865054081,
2449 11.017457584830406603,
2450 11.027667733608263134,
2451 11.037828745544826958,
2452 11.047941094229994263,
2453 11.058005246419710943,
2454 11.06802166216550809,
2455 11.077990794943804786,
2456 11.087913091779419972,
2457 11.097788993368448374,
2458 11.107618934197896365,
2459 11.117403342660917787,
2460 11.127142641170605586,
2461 11.136837246271941382,
2462 11.146487568749375185,
2463 11.156094013733063974,
2464 11.165656980801944798,
2465 11.175176864084914286,
2466 11.184654052361224785,
2467 11.194088929154311529,
2468 11.203481872828279009,
2469 11.212833256679813232,
2470 11.22214344902846328,
2471 11.231412813303665033,
2472 11.240641708133454202,
2473 11.24983048742707048,
2474 11.258979500456714362,
2475 11.268089091941565272,
2476 11.277159602123761672,
2477 11.286191366846269446,
2478 11.295184717630176507,
2479 11.304139981746262222,
2480 11.31305748228920649,
2481 11.321937538248453947,
2482 11.33078046457609922,
2483 11.339586572256690644,
2484 11.348356168371918073,
2485 11.357089556167919042,
2486 11.36578703511664834,
2487 11.374448900980526744,
2488 11.383075445871300602,
2489 11.39166695831309184,
2490 11.400223723296788236,
2491 11.408746022341706094,
2492 11.417234133550113739,
2493 11.425688331660353469,
2494 11.434108888105869895,
2495 11.442496071063368746,
2496 11.45085014550727287,
2497 11.45917137325921864,
2498 11.46746001304017426,
2499 11.475716320516829327,
2500 11.483940548350432209,
2501 11.492132946244762337,
2502 11.500293760990789593,
2503 11.508423236512726362,
2504 11.516521613911566035,
2505 11.52458913150951858,
2506 11.532626024892328687,
2507 11.540632526950561854,
2508 11.548608867921116072,
2509 11.55655527542666583,
2510 11.564471974517864794,
2511 11.572359187706947381,
2512 11.580217135011519503,
2513 11.588046033987483341,
2514 11.595846099768325033,
2515 11.60361754509874288,
2516 11.611360580372707574,
2517 11.619075413665630236,
2518 11.626762250768615914,
2519 11.634421295224266046,
2520 11.642052748355579794,
2521 11.649656809300974913,
2522 11.657233675045707955,
2523 11.664783540450647692,
2524 11.672306598285697277,
2525 11.67980303925796548,
2526 11.687273052039778065,
2527 11.694716823301339659,
2528 11.702134537735622288,
2529 11.709526378087792509,
2530 11.716892525182384333,
2531 11.724233157950031625,
2532 11.731548453452740333,
2533 11.738838586912624606,
2534 11.74610373173514688,
2535 11.753344059533525012,
2536 11.76055974015594785,
2537 11.767750941708468915,
2538 11.7749178305778468,
2539 11.782060571456211662,
2540 11.78917932736304941,
2541 11.796274259669399243,
2542 11.803345528118841301,
2543 11.810393290847994052,
2544 11.817417704411964152,
2545 11.824418923801028214,
2546 11.831397102464613624,
2547 11.838352392329960949,
2548 11.845284943822530721,
2549 11.85219490588682234,
2550 11.859082426003874744,
2551 11.865947650212342879,
2552 11.872790723126504631,
2553 11.879611787952603308,
2554 11.886410986512389698,
2555 11.893188459255847889,
2556 11.899944345281237901,
2557 11.906678782350832435,
2558 11.913391906909305717,
2559 11.920083854102388798,
2560 11.926754757788433636,
2561 11.933404750558930019,
2562 11.940033963752854973,
2563 11.94664252747291755,
2564 11.953230570598858407,
2565 11.95979822080824917,
2566 11.966345604583398909,
2567 11.972872847234746985,
2568 11.979380072908185184,
2569 11.985867404604579889,
2570 11.992334964189772961,
2571 11.998782872412620648,
2572 12.005211248915145461,
2573 12.011620212247880346,
2574 12.018009879882104229,
2575 12.024380368224580451,
2576 12.030731792627817001,
2577 12.037064267405851226,
2578 12.04337790584380663,
2579 12.049672820211730695,
2580 12.05594912177746636,
2581 12.062206920817002853,
2582 12.068446326625002385,
2583 12.074667447532235087,
2584 12.080870390909414169,
2585 12.087055263183344778,
2586 12.093222169846605141,
2587 12.099371215468432084,
2588 12.105502503705665163,
2589 12.111616137313081509,
2590 12.117712218154043313,
2591 12.123790847211116883,
2592 12.129852124595206675,
2593 12.135896149556476331,
2594 12.141923020494703067,
2595 12.147932834966560733,
2596 12.153925689698381163,
2597 12.159901680593627304,
2598 12.165860902742954508,
2599 12.171803450432264526,
2600 12.177729417153157598,
2601 12.183638895611851538,
2602 12.189531977736416835,
2603 12.195408754686605235,
2604 12.201269316862454417,
2605 12.207113753913702681,
2606 12.212942154744636625,
2607 12.218754607526607359,
2608 12.224551199702874626,
2609 12.230332017998598815,
2610 12.236097148426086534,
2611 12.241846676297585716,
2612 12.247580686227967917,
2613 12.25329926214290488,
2614 12.259002487289937022,
2615 12.264690444241271194,
2616 12.27036321490379045,
2617 12.27602088052585394,
2618 12.281663521704766495,
2619 12.287291218391240832,
2620 12.292904049898977448,
2621 12.298502094910508831,
2622 12.304085431483887447,
2623 12.309654137059869328,
2624 12.315208288465633757,
2625 12.32074796192694599,
2626 12.326273233067174928,
2627 12.331784176921180674,
2628 12.337280867932953754,
2629 12.342763379971831483,
2630 12.348231786328973669,
2631 12.353686159729406313,
2632 12.359126572335103589,
2633 12.36455309575179129,
2634 12.369965801035290198,
2635 12.375364758694480827,
2636 12.380750038700686133,
2637 12.386121710490597181,
2638 12.391479842970930747,
2639 12.396824504527426569,
2640 12.402155763026529556,
2641 12.407473685821198472,
2642 12.412778339759659829,
2643 12.418069791183780737,
2644 12.423348105941609987,
2645 12.428613349386717246,
2646 12.43386558638595929,
2647 12.439104881321272345,
2648 12.444331298100673067,
2649 12.449544900156126914,
2650 12.454745750450241459,
2651 12.45993391148516416,
2652 12.465109445300381452,
2653 12.470272413482664575,
2654 12.47542287716634668,
2655 12.480560897041524271,
2656 12.485686533355790928,
2657 12.490799845918079569,
2658 12.495900894106803491,
2659 12.500989736870524283,
2660 12.50606643273041918,
2661 12.511131039789567865,
2662 12.516183615733602608,
2663 12.521224217836033787,
2664 12.526252902958219693,
2665 12.531269727560710336,
2666 12.536274747701293464,
2667 12.541268019040277437,
2668 12.546249596842478979,
2669 12.55121953598744966,
2670 12.556177890963562405,
2671 12.561124715879925517,
2672 12.56606006446608248,
2673 12.570983990074571679,
2674 12.575896545686061856,
2675 12.580797783914913879,
2676 12.585687757009413446,
2677 12.590566516853797907,
2678 12.595434114976942652,
2679 12.600290602551172725,
2680 12.605136030397488867,
2681 12.60997044898745223,
2682 12.614793908448151072,
2683 12.619606458563602303,
2684 12.62440814877846762,
2685 12.629199028202942046,
2686 12.633979145612149964,
2687 12.638748549452740733,
2688 12.643507287842705722,
2689 12.648255408576973835,
2690 12.652992959129829131,
2691 12.657719986655116884,
2692 12.662436537993787766,
2693 12.667142659672373739,
2694 12.67183839790736144,
2695 12.676523798608469562,
2696 12.681198907382585261,
2697 12.685863769531220413,
2698 12.690518430060949484,
2699 12.695162933678602712,
2700 12.699797324799542153,
2701 12.704421647545103724,
2702 12.709035945750736474,
2703 12.713640262964121419,
2704 12.718234642449314009,
2705 12.722819127189644917,
2706 12.727393759888265379,
2707 12.731958582974320038,
2708 12.736513638600756693,
2709 12.741058968649468852,
2710 12.745594614732066674,
2711 12.750120618196341127,
2712 12.75463702012170053,
2713 12.75914386132594025,
2714 12.763641182368505866,
2715 12.768129023548373979,
2716 12.772607424908949625,
2717 12.777076426242249596,
2718 12.781536067086181063,
2719 12.785986386729678799,
2720 12.790427424216378682,
2721 12.794859218341448681,
2722 12.799281807657878929,
2723 12.80369523047976088,
2724 12.808099524879954956,
2725 12.812494728692886525,
2726 12.816880879520020642,
2727 12.821258014729650654,
2728 12.825626171456725899,
2729 12.829985386608969478,
2730 12.834335696864167531,
2731 12.838677138677613954,
2732 12.843009748276069004,
2733 12.847333561669227464,
2734 12.851648614644567203,
2735 12.855954942770035032,
2736 12.86025258139869365,
2737 12.864541565667426681,
2738 12.868821930501345818,
2739 12.873093710613842333,
2740 12.87735694050643076,
2741 12.881611654475847217,
2742 12.885857886611180589,
2743 12.890095670795693295,
2744 12.894325040711107633,
2745 12.898546029837236304,
2746 12.90275867145457056,
2747 12.906962998643509266,
2748 12.911159044289716391,
2749 12.915346841084431873,
2750 12.919526421523887194,
2751 12.923697817910088759,
2752 12.927861062359458089,
2753 12.93201618679557896,
2754 12.936163222956782448,
2755 12.940302202393013431,
2756 12.944433156472694435,
2757 12.948556116376956027,
2758 12.95267111310943875,
2759 12.956778177490662074,
2760 12.96087734016371229,
2761 12.964968631592270754,
2762 12.969052082066681919,
2763 12.973127721698544335,
2764 12.977195580430983313,
2765 12.981255688030060469,
2766 12.985308074093628861,
2767 12.989352768049899467,
2768 12.993389799157773368,
2769 12.997419196511796002,
2770 13.00144098903680856,
2771 13.005455205494589777,
2772 13.009461874487961097,
2773 13.013461024451787651,
2774 13.01745268366328645,
2775 13.021436880240200296,
2776 13.02541364213947972,
2777 13.029382997165184221,
2778 13.03334497296239114,
2779 13.03729959702083363,
2780 13.041246896678583056,
2781 13.045186899121286928,
2782 13.04911963138158626,
2783 13.053045120343410801,
2784 13.056963392740687624,
2785 13.060874475158223973,
2786 13.064778394037061204,
2787 13.068675175669824284,
2788 13.07256484620359771,
2789 13.076447431646739616,
2790 13.080322957858628641,
2791 13.084191450560513914,
2792 13.08805293533270131,
2793 13.091907437615986964,
2794 13.095754982711513392,
2795 13.09959559578430266,
2796 13.103429301860911593,
2797 13.107256125835576199,
2798 13.111076092464362119,
2799 13.114889226372408615,
2800 13.118695552051653053,
2801 13.122495093859603443,
2802 13.126287876027134871,
2803 13.130073922651970264,
2804 13.133853257706881834,
2805 13.137625905032018991,
2806 13.141391888343568084,
2807 13.145151231231277933,
2808 13.148903957157155986,
2809 13.152650089461509708,
2810 13.156389651362033533,
2811 13.160122665949137044,
2812 13.163849156196825163,
2813 13.167569144954404337,
2814 13.171282654952305435,
2815 13.174989708803149568,
2816 13.178690328999275394,
2817 13.182384537916657763,
2818 13.186072357813859668,
2819 13.189753810832621994,
2820 13.193428919001977562,
2821 13.197097704233886617,
2822 13.200760188329571321,
2823 13.204416392974891892,
2824 13.20806633974491362,
2825 13.211710050105512693,
2826 13.215347545408052454,
2827 13.218978846896556334,
2828 13.22260397570619439,
2829 13.226222952863775362,
2830 13.229835799288590437,
2831 13.233442535791176908,
2832 13.237043183081210529,
2833 13.240637761757254154,
2834 13.244226292317046401,
2835 13.247808795152753447,
2836 13.251385290554667407,
2837 13.254955798708774495,
2838 13.258520339702053903,
2839 13.262078933518273161,
2840 13.265631600040839189,
2841 13.269178359054219385,
2842 13.272719230242602251,
2843 13.276254233192984699,
2844 13.279783387396898675,
2845 13.283306712241415681,
2846 13.286824227026306389,
2847 13.290335950949151211,
2848 13.293841903113740699,
2849 13.297342102530555152,
2850 13.300836568116132241,
2851 13.304325318692056257,
2852 13.307808372989974544,
2853 13.311285749644119036,
2854 13.3147574672044815,
2855 13.318223544124418112,
2856 13.321683998769101365,
2857 13.32513884941529092,
2858 13.32858811424843104,
2859 13.332031811365043339,
2860 13.335469958777091293,
2861 13.33890257440550009,
2862 13.342329676086286838,
2863 13.345751281569015134,
2864 13.349167408516496636,
2865 13.352578074507405859,
2866 13.355983297036111423,
2867 13.359383093511311813,
2868 13.362777481260028623,
2869 13.366166477523949041,
2870 13.369550099465973503,
2871 13.372928364164186732,
2872 13.37630128861458978,
2873 13.379668889734126935,
2874 13.383031184360207888,
2875 13.386388189246655855,
2876 13.389739921073138262,
2877 13.393086396434743079,
2878 13.396427631850842843,
2879 13.399763643766091192,
2880 13.403094448541603256,
2881 13.406420062466038345,
2882 13.409740501751686637,
2883 13.413055782530316051,
2884 13.416365920863402295,
2885 13.419670932734781843,
2886 13.422970834054583023,
2887 13.426265640657085498,
2888 13.429555368307228846,
2889 13.432840032691371945,
2890 13.436119649428079015,
2891 13.439394234059173883,
2892 13.44266380205828959,
2893 13.445928368826187693,
2894 13.449187949693879318,
2895 13.45244255991741511,
2896 13.455692214689392472,
2897 13.458936929129038163,
2898 13.462176718283481947,
2899 13.465411597140072075,
2900 13.468641580606668384,
2901 13.47186668353329253,
2902 13.475086920694291592,
2903 13.478302306802110166,
2904 13.48151285650034481,
2905 13.484718584366349958,
2906 13.487919504913703506,
2907 13.491115632585090722,
2908 13.494306981764220055,
2909 13.497493566767404971,
2910 13.500675401844988599,
2911 13.503852501186502266,
2912 13.507024878915773414,
2913 13.510192549093989811,
2914 13.513355525719184413,
2915 13.5165138227280206,
2916 13.519667453995577233,
2917 13.522816433330204333,
2918 13.525960774487495897,
2919 13.529100491153101871,
2920 13.532235596958095414,
2921 13.535366105472615317,
2922 13.538492030203547856,
2923 13.541613384601010495,
2924 13.544730182054616208,
2925 13.54784243589776338,
2926 13.550950159401967454,
2927 13.554053365781573603,
2928 13.557152068194858074,
2929 13.560246279740981734,
2930 13.563336013459098339,
2931 13.566421282338698262,
2932 13.569502099306779641,
2933 13.572578477234690908,
2934 13.575650428942710235,
2935 13.578717967190852889,
2936 13.581781104683333439,
2937 13.584839854072622956,
2938 13.587894227958557281,
2939 13.590944238877442629,
2940 13.593989899322760806,
2941 13.597031221726449957,
2942 13.600068218471934145,
2943 13.603100901887216878,
2944 13.606129284248572375,
2945 13.609153377777310823,
2946 13.612173194646384644,
2947 13.615188746974233425,
2948 13.618200046832647843,
2949 13.621207106232205319,
2950 13.624209937141896987,
2951 13.627208551476659437,
2952 13.630202961101861803,
2953 13.633193177830367659,
2954 13.636179213427501722,
2955 13.639161079608454585,
2956 13.642138788041277664,
2957 13.645112350340662388,
2958 13.648081778073958503,
2959 13.651047082764348417,
2960 13.654008275881622581,
2961 13.656965368849332876,
2962 13.65991837304498091,
2963 13.662867299796056741,
2964 13.665812160384957608,
2965 13.668752966047126307,
2966 13.67168972797138693,
2967 13.674622457297903821,
2968 13.677551165123905008,
2969 13.680475862497145201,
2970 13.683396560426253075,
2971 13.686313269868923825,
2972 13.68922600173787707,
2973 13.69213476690431186,
2974 13.695039576192915121,
2975 13.697940440384053673,
2976 13.700837370214280497,
2977 13.703730376375016675,
2978 13.706619469516800436,
2979 13.70950466024423342,
2980 13.712385959120915402,
2981 13.715263376664893258,
2982 13.718136923354830259,
2983 13.721006609623605854,
2984 13.723872445865787029,
2985 13.72673444243013563,
2986 13.729592609625129285,
2987 13.732446957718616787,
2988 13.735297496935510608,
2989 13.738144237461392905,
2990 13.740987189439143989,
2991 13.743826362973667443,
2992 13.746661768126049452,
2993 13.749493414917923317,
2994 13.752321313335878372,
2995 13.755145473319212002,
2996 13.757965904770790289,
2997 13.76078261755586496,
2998 13.763595621499426613,
2999 13.766404926387352248,
3000 13.769210541965978933,
3001 13.772012477943038178,
3002 13.774810743989194251,
3003 13.777605349738051288,
3004 13.780396304779271688,
3005 13.783183618675410642,
3006 13.78596730094170475,
3007 13.788747361057883012,
3008 13.791523808472934576,
3009 13.794296652588764474,
3010 13.797065902780534685,
3011 13.799831568380581004,
3012 13.802593658685578859,
3013 13.805352182958312568,
3014 13.80810715042531811,
3015 13.81085857027452235,
3016 13.813606451660854546,
3017 13.816350803700302663,
3018 13.819091635480996061,
3019 13.821828956047957249,
3020 13.824562774414131283,
3021 13.827293099560392875,
3022 13.83001994042906091,
3023 13.832743305931924027,
3024 13.835463204941126136,
3025 13.838179646300201142,
3026 13.840892638819539684,
3027 13.843602191269319235,
3028 13.846308312392787698,
3029 13.84901101089392661,
3030 13.851710295449825239,
3031 13.854406174701319188,
3032 13.857098657254422136,
3033 13.859787751686601709,
3034 13.862473466541130662,
3035 13.86515581032993083,
3036 13.867834791527137384,
3037 13.870510418584625967,
3038 13.873182699914616833,
3039 13.875851643901116361,
3040 13.878517258893786845,
3041 13.881179553217378952,
3042 13.883838535155623717,
3043 13.886494212968770512,
3044 13.889146594887002095,
3045 13.891795689101494204,
3046 13.894441503781525427,
3047 13.897084047059651724,
3048 13.899723327045110821,
3049 13.902359351811346855,
3050 13.904992129401231082,
3051 13.907621667830589729,
3052 13.910247975086692307,
3053 13.912871059123370188,
3054 13.915490927870026283,
3055 13.91810758922001412,
3056 13.920721051044457894,
3057 13.923331321182732978,
3058 13.925938407443748446,
3059 13.928542317608103573,
3060 13.931143059431320808,
3061 13.933740640637571673,
3062 13.936335068925462366,
3063 13.938926351958125238,
3064 13.941514497381966464,
3065 13.944099512804314145,
3066 13.94668140581365634,
3067 13.949260183964351967,
3068 13.951835854788662061,
3069 13.954408425790269632,
3070 13.95697790443957409,
3071 13.959544298190312617,
3072 13.962107614460476768,
3073 13.96466786064560317,
3074 13.967225044112664634,
3075 13.969779172205697648,
3076 13.972330252237139092,
3077 13.97487829149502403,
3078 13.977423297246341249,
3079 13.979965276723488543,
3080 13.982504237137508341,
3081 13.985040185675003954,
3082 13.987573129492263391,
3083 13.990103075725903281,
3084 13.992630031483724196,
3085 13.99515400384691155,
3086 13.997674999873927604,
3087 14.000193026599195179,
3088 14.002708091029330006,
3089 14.005220200146053955,
3090 14.007729360909634053,
3091 14.01023558025232596,
3092 14.01273886508432831,
3093 14.01523922228879826,
3094 14.017736658729967658,
3095 14.020231181239813267,
3096 14.022722796634397469,
3097 14.025211511700168998,
3098 14.027697333202896246,
3099 14.030180267882093048,
3100 14.03266032245799444,
3101 14.035137503624289579,
3102 14.037611818050047319,
3103 14.040083272382236856,
3104 14.04255187324901577,
3105 14.045017627248094882,
3106 14.04748054095911769,
3107 14.04994062093845919,
3108 14.052397873716437005,
3109 14.054852305807788326,
3110 14.057303923696416348,
3111 14.059752733849744999,
3112 14.062198742710839028,
3113 14.0646419567001697,
3114 14.067082382216762326,
3115 14.069520025637352489,
3116 14.071954893316462432,
3117 14.07438699158885953,
3118 14.076816326763628595,
3119 14.07924290513405019,
3120 14.081666732966468203,
3121 14.084087816508418456,
3122 14.086506161985690611,
3123 14.088921775603690634,
3124 14.091334663544339278,
3125 14.093744831971463327,
3126 14.096152287025153882,
3127 14.09855703482939937,
3128 14.100959081480601398,
3129 14.103358433059241861,
3130 14.105755095624877171,
3131 14.10814907521682926,
3132 14.110540377851714666,
3133 14.112929009528890845,
3134 14.115314976224503596,
3135 14.117698283896190858,
3136 14.120078938482535591,
3137 14.122456945901159742,
3138 14.124832312049791838,
3139 14.127205042808224533,
3140 14.129575144031136347,
3141 14.131942621562323836,
3142 14.13430748121819569,
3143 14.136669728799523327,
3144 14.139029370088032067,
3145 14.141386410844752675,
3146 14.143740856811602313,
3147 14.146092713715217926,
3148 14.148441987258625119,
3149 14.1507886831258336,
3150 14.153132806984910275,
3151 14.155474364484195604,
3152 14.157813361255202622,
3153 14.160149802908009065,
3154 14.162483695034042697,
3155 14.164815043210477796,
3156 14.167143852989557473,
3157 14.169470129910484602,
3158 14.171793879496814128,
3159 14.17411510724339152,
3160 14.176433818640294504,
3161 14.178750019150349715,
3162 14.181063714220734084,
3163 14.183374909285145549,
3164 14.185683609751258416,
3165 14.187989821018593517,
3166 14.19029354846252744,
3167 14.192594797443804921,
3168 14.194893573304014467,
3169 14.197189881369276065,
3170 14.199483726948839646,
3171 14.20177511533286463,
3172 14.204064051795191048,
3173 14.206350541593439019,
3174 14.208634589965885908,
3175 14.210916202138053066,
3176 14.213195383316227449,
3177 14.215472138690623538,
3178 14.21774647343459641,
3179 14.220018392702060694,
3180 14.222287901634690144,
3181 14.224555005357652604,
3182 14.226819708976794487,
3183 14.229082017582555864,
3184 14.231341936254585434,
3185 14.233599470045575686,
3186 14.235854624000007007,
3187 14.238107403148534402,
3188 14.240357812495970435,
3189 14.24260585704149662,
3190 14.244851541762988845,
3191 14.247094871621490242,
3192 14.249335851570357647,
3193 14.251574486535515618,
3194 14.253810781437111999,
3195 14.256044741176957302,
3196 14.258276370639412889,
3197 14.260505674693048306,
3198 14.262732658195368174,
3199 14.264957325986895142,
3200 14.267179682890123615,
3201 14.269399733716818801,
3202 14.271617483259406711,
3203 14.273832936298923357,
3204 14.276046097600476159,
3205 14.278256971912142603,
3206 14.280465563973503862,
3207 14.282671878500293516,
3208 14.284875920200541088,
3209 14.287077693764764774,
3210 14.289277203869636068,
3211 14.291474455178866165,
3212 14.293669452337670833,
3213 14.29586219998199681,
3214 14.29805270272855644,
3215 14.300240965185764708,
3216 14.302426991941993961,
3217 14.304610787573965425,
3218 14.306792356644967512,
3219 14.308971703701400813,
3220 14.311148833281771786,
3221 14.313323749904027338,
3222 14.315496458076189867,
3223 14.317666962290227062,
3224 14.319835267025963432,
3225 14.322001376753128454,
3226 14.324165295916989393,
3227 14.326327028962005272,
3228 14.328486580308904763,
3229 14.330643954371728555,
3230 14.33279915554975581,
3231 14.334952188226184333,
3232 14.337103056773381482,
3233 14.339251765549725803,
3234 14.341398318899807762,
3235 14.343542721156270048,
3236 14.345684976638173325,
3237 14.34782508965116854,
3238 14.349963064492426312,
3239 14.35209890543410971,
3240 14.354232616751593454,
3241 14.356364202695091947,
3242 14.358493667506255775,
3243 14.360621015414713142,
3244 14.362746250639503387,
3245 14.364869377382294857,
3246 14.366990399835495751,
3247 14.36910932217366188},
3248 {0,
3249 2.3219280948873626258,
3250 3.3219280948873626258,
3251 4.009984184985102118,
3252 4.5410966501985230437,
3253 4.9759235872791061084,
3254 5.3451175544612743451,
3255 5.6664899140623274931,
3256 5.951365559463460464,
3257 6.2074181133603802962,
3258 6.4400996405551707014,
3259 6.6534295905427747186,
3260 6.8504593992211040288,
3261 7.0335637469580500891,
3262 7.2046269409945082884,
3263 7.3651708911261204449,
3264 7.5164434474353214455,
3265 7.65948003120419596,
3266 7.7951500049725712671,
3267 7.924190846958517831,
3268 8.0472329877362867023,
3269 8.164820486503929331,
3270 8.2774261368204520295,
3271 8.3854626148977526867,
3272 8.4892931373039921539,
3273 8.5892394441002384298,
3274 8.6855861004875691833,
3275 8.7785887576787668962,
3276 8.8684753364507304951,
3277 8.9554515670237062608,
3278 9.0397030433341374334,
3279 9.1213986619859461769,
3280 9.2006909239974170589,
3281 9.2777196513117612398,
3282 9.3526126611213786788,
3283 9.4254869321160441586,
3284 9.4964501859713710274,
3285 9.5656015283077344691,
3286 9.6330329117983168885,
3287 9.6988286850167657605,
3288 9.763067719441490766,
3289 9.8258230457748947373,
3290 9.8871625158589804272,
3291 9.9471498081558671345,
3292 10.005843953918361677,
3293 10.063300157904480514,
3294 10.119570450540107842,
3295 10.174703458716329862,
3296 10.228744679631718739,
3297 10.281736906750806426,
3298 10.333721504103394295,
3299 10.384736055219464745,
3300 10.434816581828172843,
3301 10.483997118677041982,
3302 10.532309860431933402,
3303 10.579785293150695935,
3304 10.626452313782410286,
3305 10.672338339249707317,
3306 10.717469406258699038,
3307 10.761870262792360364,
3308 10.805564452116826146,
3309 10.848574390029094516,
3310 10.890921435992128252,
3311 10.932625958730842086,
3312 10.973707396799733615,
3313 11.014184314579676283,
3314 11.05407445411208478,
3315 11.093394783137521031,
3316 11.132161539667729144,
3317 11.17039027338819146,
3318 11.20809588415779956,
3319 11.24529265784756582,
3320 11.281994299735856657,
3321 11.318213965658326714,
3322 11.35396429109132832,
3323 11.389257418331439453,
3324 11.424105021919139347,
3325 11.458518332441173015,
3326 11.492508158834391807,
3327 11.526084909303103032,
3328 11.559258610951991031,
3329 11.592038928228676653,
3330 11.624435180261382783,
3331 11.65645635717043227,
3332 11.688111135425632625,
3333 11.719407892315885533,
3334 11.750354719592182917,
3335 11.780959436339754731,
3336 11.811229601131572053,
3337 11.841172523510511638,
3338 11.870795274844477163,
3339 11.900104698595182384,
3340 11.929107420038091547,
3341 11.957809855468735094,
3342 11.986218220927369771,
3343 12.014338540471927175,
3344 12.042176654027532123,
3345 12.06973822483764458,
3346 12.097028746541726107,
3347 12.124053549900946081,
3348 12.150817809193112495,
3349 12.177326548296401043,
3350 12.203584646479432863,
3351 12.229596843914722015,
3352 12.255367746931701944,
3353 12.280901833023179393,
3354 12.306203455619561637,
3355 12.331276848643559774,
3356 12.356126130857282064,
3357 12.380755310013151771,
3358 12.405168286818895496,
3359 12.429368858727011471,
3360 12.453360723557475254,
3361 12.477147482962628544,
3362 12.500732645742624882,
3363 12.524119631018825416,
3364 12.547311771272545045,
3365 12.570312315255755209,
3366 12.593124430780569867,
3367 12.615751207393291367,
3368 12.63819565893856911,
3369 12.660460726019156397,
3370 12.682549278356763267,
3371 12.704464117057906236,
3372 12.72620797678986726,
3373 12.747783527871257903,
3374 12.769193378280535356,
3375 12.790440075586433366,
3376 12.811526108804656587,
3377 12.832453910183094337,
3378 12.853225856919832992,
3379 12.873844272816173273,
3380 12.89431142986833656,
3381 12.914629549799643726,
3382 12.93480080553720768,
3383 12.954827322633622799,
3384 12.974711180638211161,
3385 12.994454414418219912,
3386 13.014059015433037558,
3387 13.033526932963361844,
3388 13.052860075297083142,
3389 13.07206031087321918,
3390 13.091129469386942219,
3391 13.110069342856098373,
3392 13.12888168665087818,
3393 13.14756822048918572,
3394 13.166130629397750695,
3395 13.184570564641676427,
3396 13.202889644622032961,
3397 13.221089455744994723,
3398 13.239171553261353864,
3399 13.257137462079056078,
3400 13.274988677549504956,
3401 13.292726666228245946,
3402 13.310352866611388833,
3403 13.327868689848640926,
3404 13.345275520433842686,
3405 13.362574716873641734,
3406 13.379767612335315974,
3407 13.396855515274722848,
3408 13.413839710044697995,
3409 13.430721457484715131,
3410 13.447501995492977755,
3411 13.464182539580649589,
3412 13.480764283409936155,
3413 13.497248399315717293,
3414 13.513636038811856821,
3415 13.529928333082400727,
3416 13.546126393458756354,
3417 13.562231311882127827,
3418 13.578244161353515196,
3419 13.59416599636993972,
3420 13.609997853348680508,
3421 13.625740751038870613,
3422 13.641395690922031747,
3423 13.65696365760090103,
3424 13.672445619177601372,
3425 13.687842527620885491,
3426 13.703155319123602851,
3427 13.718384914450053813,
3428 13.733532219274177777,
3429 13.748598124507793727,
3430 13.763583506621067443,
3431 13.778489227952839258,
3432 13.793316137014183909,
3433 13.808065068782807927,
3434 13.822736844989913507,
3435 13.837332274399686938,
3436 13.851852153081235741,
3437 13.866297264673491441,
3438 13.880668380643250259,
3439 13.894966260536559588,
3440 13.909191652223285018,
3441 13.923345292136307449,
3442 13.937427905503477987,
3443 13.951440206574563518,
3444 13.965382898842245041,
3445 13.979256675257280662,
3446 13.993062218438765854,
3447 14.006800200878895879,
3448 14.020471285142434681,
3449 14.034076124062194069,
3450 14.047615360928320527,
3451 14.06108962967455156,
3452 14.074499555058505251,
3453 14.087845752838797253,
3454 14.10112882994708805,
3455 14.114349384656605935,
3456 14.127508006746113622,
3457 14.140605277660474925,
3458 14.153641770667354294,
3459 14.166618051009944423,
3460 14.179534676056375631,
3461 14.192392195445822978,
3462 14.205191151230881275,
3463 14.217932078016900732,
3464 14.230615503097977737,
3465 14.243241946589959568,
3466 14.255811921560713529,
3467 14.26832593415661421,
3468 14.280784483727142486,
3469 14.293188062946203587,
3470 14.305537157930841019,
3471 14.317832248357067471,
3472 14.330073807573846523,
3473 14.342262302713766786,
3474 14.354398194801470723,
3475 14.366481938860525602,
3476 14.37851398401674885,
3477 14.390494773600016387,
3478 14.402424745244067239,
3479 14.414304330983403801,
3480 14.426133957348937997,
3481 14.437914045461239354,
3482 14.449645011121564409,
3483 14.461327264901584044,
3484 14.472961212230551098,
3485 14.484547253481402151,
3486 14.496085784054198342,
3487 14.507577194458724179,
3488 14.519021870394517748,
3489 14.53042019283030406,
3490 14.541772538080387278,
3491 14.553079277881092679,
3492 14.564340779464544084,
3493 14.575557405630885199,
3494 14.586729514820371278,
3495 14.597857461182197625,
3496 14.608941594643322759,
3497 14.619982260975177724,
3498 14.63097980185975544,
3499 14.641934554953504488,
3500 14.652846853950602934,
3501 14.663717028645002927,
3502 14.674545404990841035,
3503 14.685332305162079436,
3504 14.696078047610706463,
3505 14.7067829471241307,
3506 14.717447314881251685,
3507 14.728071458507404401,
3508 14.738655682128454671,
3509 14.74920028642363512,
3510 14.759705568678020526,
3511 14.770171822832590891,
3512 14.780599339535331893,
3513 14.790988406189555349,
3514 14.801339307002578494,
3515 14.811652323032616252,
3516 14.821927732235725017,
3517 14.832165809510927446,
3518 14.842366826745026387,
3519 14.852531052856953409,
3520 14.862658753840213066,
3521 14.872750192805749947,
3522 14.882805630023494103,
3523 14.892825322962799817,
3524 14.902809526333083312,
3525 14.912758492122891951,
3526 14.922672469638355253,
3527 14.932551705541857956,
3528 14.942396443888757318,
3529 14.952206926164333112,
3530 14.961983391319785497,
3531 14.971726075807604062,
3532 14.981435213616160596,
3533 14.991111036304362258,
3534 15.000753773034849914,
3535 15.010363650606890928,
3536 15.019940893489275524,
3537 15.029485723851959023,
3538 15.038998361597258224,
3539 15.048479024390861269,
3540 15.057927927691952874,
3541 15.067345284783257853,
3542 15.076731306800107646,
3543 15.086086202758982822,
3544 15.095410179586501442,
3545 15.104703442146483638,
3546 15.113966193267872384,
3547 15.123198633771341548,
3548 15.132400962495822228,
3549 15.141573376324718225,
3550 15.150716070211185382,
3551 15.159829237203657826,
3552 15.168913068470484262,
3553 15.177967753323947875,
3554 15.186993479245153083,
3555 15.195990431906743368,
3556 15.204958795196526822,
3557 15.213898751240062523,
3558 15.22281048042335172,
3559 15.231694161415287425,
3560 15.240549971188583456,
3561 15.249378085041929154,
3562 15.258178676620790526,
3563 15.266951917938254013,
3564 15.275697979395104653,
3565 15.284417029800843935,
3566 15.293109236392155026,
3567 15.30177476485382293,
3568 15.310413779336720097,
3569 15.319026442477570171,
3570 15.327612915416869654,
3571 15.336173357817893148,
3572 15.344707927884149612,
3573 15.353216782377456795,
3574 15.361700076635271373,
3575 15.370157964588184285,
3576 15.378590598776474607,
3577 15.386998130367325999,
3578 15.395380709170815692,
3579 15.403738483656383096,
3580 15.412071600968927143,
3581 15.420380206944292567,
3582 15.428664446124571441,
3583 15.436924461774330197,
3584 15.445160395894429683,
3585 15.453372389237655327,
3586 15.461560581323100294,
3587 15.469725110450553984,
3588 15.477866113714734198,
3589 15.48598372701921555,
3590 15.494078085090247754,
3591 15.502149321490390932,
3592 15.510197568631737042,
3593 15.518222957789250316,
3594 15.526225619113853682,
3595 15.534205681644861485,
3596 15.542163273323119199,
3597 15.55009852100315193,
3598 15.558011550465563388,
3599 15.565902486428969453,
3600 15.573771452562155559,
3601 15.581618571495846837,
3602 15.58944396483406436,
3603 15.597247753165763839,
3604 15.605030056076110156,
3605 15.61279099215777677,
3606 15.620530679021365827,
3607 15.628249233306904742,
3608 15.635946770694022945,
3609 15.643623405912785884,
3610 15.651279252753669269,
3611 15.658914424078590244,
3612 15.666529031830227936,
3613 15.674123187042097172,
3614 15.681696999848927732,
3615 15.689250579495666926,
3616 15.696784034347469827,
3617 15.704297471899081984,
3618 15.711790998784220363,
3619 15.719264720784371647,
3620 15.726718742838274423,
3621 15.734153169050728138,
3622 15.741568102701412712,
3623 15.748963646253692161,
3624 15.756339901362776956,
3625 15.763696968885094307,
3626 15.771034948885528593,
3627 15.778353940646855591,
3628 15.785654042676592113,
3629 15.792935352716584774,
3630 15.800197967749502581,
3631 15.807441984007605029,
3632 15.814667496980062467,
3633 15.821874601420745421,
3634 15.829063391355868262,
3635 15.8362339600910218,
3636 15.84338640021911182,
3637 15.85052080362721405,
3638 15.857637261503635173,
3639 15.864735864345528071,
3640 15.871816701965334673,
3641 15.878879863497770586,
3642 15.885925437407175664,
3643 15.892953511493228547,
3644 15.899964172898714665,
3645 15.906957508115239008,
3646 15.913933602990130822,
3647 15.920892542732380193,
3648 15.927834411919890911,
3649 15.934759294504681648,
3650 15.941667273819362549,
3651 15.948558432583851641,
3652 15.955432852910384156,
3653 15.962290616310255587,
3654 15.969131803699074368,
3655 15.975956495403114133,
3656 15.982764771164655215,
3657 15.989556710147573071,
3658 15.996332390943504009,
3659 16.003091891576833206,
3660 16.009835289509922518,
3661 16.016562661649235366,
3662 16.023274084350191515,
3663 16.029969633422599173,
3664 16.036649384135277074,
3665 16.043313411222285936,
3666 16.049961788887149083,
3667 16.056594590808071388,
3668 16.06321189014266082,
3669 16.069813759533747799,
3670 16.076400271112841978,
3671 16.082971496506125675,
3672 16.089527506838599891,
3673 16.096068372738621122,
3674 16.102594164342761474,
3675 16.109104951300661668,
3676 16.115600802779091794,
3677 16.122081787466211011,
3678 16.128547973576740304,
3679 16.134999428855678616,
3680 16.141436220582889405,
3681 16.147858415577157842,
3682 16.15426608020066368,
3683 16.160659280362882129,
3684 16.167038081524790272,
3685 16.173402548703187165,
3686 16.179752746474186154,
3687 16.186088738977709056,
3688 16.192410589920971375,
3689 16.198718362582724239,
3690 16.205012119817048699,
3691 16.211291924056759228,
3692 16.217557837317844616,
3693 16.223809921202544615,
3694 16.230048236903265035,
3695 16.236272845206283222,
3696 16.242483806495499721,
3697 16.248681180755276898,
3698 16.254865027575021941,
3699 16.261035406151624017,
3700 16.267192375293703321,
3701 16.273335993424268509,
3702 16.279466318584869811,
3703 16.285583408438316866,
3704 16.291687320272192352,
3705 16.29777811100215601,
3706 16.303855837174928922,
3707 16.309920554971963469,
3708 16.315972320211983515,
3709 16.322011188354480282,
3710 16.32803721450256873,
3711 16.334050453406625536,
3712 16.340050959466346114,
3713 16.346038786734354176,
3714 16.35201398891931035,
3715 16.357976619388217898,
3716 16.363926731169687656,
3717 16.369864376957092844,
3718 16.375789609110704248,
3719 16.381702479660933847,
3720 16.38760304031129067,
3721 16.393491342440427161,
3722 16.39936743710541478,
3723 16.405231375044614595,
3724 16.411083206679727198,
3725 16.416922982118538954,
3726 16.42275075115799865,
3727 16.428566563286491231,
3728 16.434370467686111539,
3729 16.440162513235755171,
3730 16.445942748512983655,
3731 16.451711221797250317,
3732 16.457467981071285834,
3733 16.463213074024810822,
3734 16.468946548055996004,
3735 16.474668450273952658,
3736 16.480378827501461103,
3737 16.486077726276892719,
3738 16.491765192856849609,
3739 16.497441273218242941,
3740 16.503106013060264701,
3741 16.508759457807375526,
3742 16.514401652610878557,
3743 16.520032642351136332,
3744 16.525652471640096763,
3745 16.531261184823158317,
3746 16.536858825981433085,
3747 16.542445438933519597,
3748 16.548021067238092741,
3749 16.553585754195804469,
3750 16.559139542851017524,
3751 16.56468247599375232,
3752 16.570214596162603726,
3753 16.575735945645583058,
3754 16.58124656648287143,
3755 16.586746500468152021,
3756 16.592235789151260406,
3757 16.597714473839104699,
3758 16.603182595598692473,
3759 16.608640195258043804,
3760 16.614087313408600011,
3761 16.619523990406634084,
3762 16.624950266375659425,
3763 16.630366181207346443,
3764 16.635771774564467762,
3765 16.641167085881356513,
3766 16.646552154366641929,
3767 16.651927019004610031,
3768 16.657291718556798799,
3769 16.662646291564161771,
3770 16.667990776347878068,
3771 16.67332521101173981,
3772 16.678649633444148748,
3773 16.683964081318414685,
3774 16.689268592095569232,
3775 16.694563203025555964,
3776 16.699847951148498737,
3777 16.7051228732971353,
3778 16.710388006097431912,
3779 16.715643385970452073,
3780 16.72088904913420393,
3781 16.726125031604901494,
3782 16.731351369198250723,
3783 16.736568097531343113,
3784 16.741775252023799681,
3785 16.746972867899227566,
3786 16.752160980187191797,
3787 16.757339623723915167,
3788 16.762508833153923149,
3789 16.767668642932196832,
3790 16.772819087324098319,
3791 16.777960200408021052,
3792 16.78309201607625667,
3793 16.788214568036401886,
3794 16.793327889812555753,
3795 16.798432014746957464,
3796 16.803526976000899396,
3797 16.808612806556670449,
3798 16.813689539217989477,
3799 16.818757206612087174,
3800 16.823815841190555176,
3801 16.828865475230337267,
3802 16.833906140835850351,
3803 16.838937869939254455,
3804 16.843960694302634096,
3805 16.848974645518083548,
3806 16.853979755009937946,
3807 16.858976054035494485,
3808 16.863963573685946784,
3809 16.868942344888196772,
3810 16.873912398405796154,
3811 16.878873764839386951,
3812 16.883826474629124448,
3813 16.88877055805463101,
3814 16.893706045236768887,
3815 16.89863296613876642,
3816 16.903551350566903722,
3817 16.908461228171997703,
3818 16.913362628450251179,
3819 16.918255580744297362,
3820 16.923140114244670684,
3821 16.928016257990233129,
3822 16.932884040869893738,
3823 16.937743491622981651,
3824 16.9425946388407489,
3825 16.947437510967478858,
3826 16.952272136300749139,
3827 16.957098542993239931,
3828 16.96191675905342322,
3829 16.966726812346532682,
3830 16.97152873059555489,
3831 16.976322541381929199,
3832 16.981108272147434235,
3833 16.98588595019374381,
3834 16.990655602684576309,
3835 16.995417256645946935,
3836 17.000170938967471557,
3837 17.004916676402888953,
3838 17.009654495571563615,
3839 17.014384422958759302,
3840 17.019106484916822097,
3841 17.023820707666160956,
3842 17.028527117295869431,
3843 17.033225739764919382,
3844 17.037916600903137976,
3845 17.042599726410895045,
3846 17.047275141861980785,
3847 17.051942872702550602,
3848 17.056602944252908571,
3849 17.061255381708321011,
3850 17.065900210139698601,
3851 17.070537454494196794,
3852 17.075167139596587162,
3853 17.079789290149054892,
3854 17.084403930733540022,
3855 17.089011085810952295,
3856 17.093610779722894222,
3857 17.09820303669236452,
3858 17.102787880824081412,
3859 17.107365336105484488,
3860 17.111935426407960392,
3861 17.116498175486722033,
3862 17.121053606982243878,
3863 17.125601744420752226,
3864 17.130142611214846937,
3865 17.13467623066448553,
3866 17.139202625957615567,
3867 17.143721820170679138,
3868 17.148233836269717756,
3869 17.152738697110592625,
3870 17.157236425440402172,
3871 17.16172704389739323,
3872 17.166210575011906059,
3873 17.170687041207379764,
3874 17.175156464800888756,
3875 17.179618868003288412,
3876 17.1840742729209488,
3877 17.188522701555097427,
3878 17.192964175803492566,
3879 17.197398717461133799,
3880 17.201826348219785956,
3881 17.206247089669904682,
3882 17.210660963300732362,
3883 17.215067990500390493,
3884 17.219468192557663144,
3885 17.223861590661691423,
3886 17.228248205903000212,
3887 17.232628059273807253,
3888 17.237001171669344757,
3889 17.241367563887312286,
3890 17.245727256629706403,
3891 17.250080270502291313,
3892 17.254426626016165613,
3893 17.258766343587716108,
3894 17.263099443539541511,
3895 17.267425946100338763,
3896 17.271745871406800177,
3897 17.276059239502956189,
3898 17.280366070340821949,
3899 17.284666383782386845,
3900 17.288960199597774192,
3901 17.293247537468293018,
3902 17.297528416984857103,
3903 17.301802857650077527,
3904 17.306070878877939379,
3905 17.31033249999460466,
3906 17.314587740239179681,
3907 17.318836618763349122,
3908 17.323079154633266086,
3909 17.327315366829022736,
3910 17.331545274245296895,
3911 17.335768895692414304,
3912 17.339986249896234938,
3913 17.344197355498977231,
3914 17.348402231059612433,
3915 17.352600895054518304,
3916 17.356793365877905444,
3917 17.360979661841657418,
3918 17.365159801177412646,
3919 17.369333802034987002,
3920 17.373501682484608466,
3921 17.377663460516604488,
3922 17.381819154041554754,
3923 17.38596878089148845,
3924 17.39011235881985229,
3925 17.394249905502434217,
3926 17.398381438537139587,
3927 17.402506975444918425,
3928 17.406626533670333856,
3929 17.41074013058159764,
3930 17.41484778347087925,
3931 17.418949509555904598,
3932 17.42304532597886535,
3933 17.427135249807612638,
3934 17.431219298036570109,
3935 17.435297487586080223,
3936 17.439369835303278222,
3937 17.443436357962969652,
3938 17.447497072267900364,
3939 17.451551994847879001,
3940 17.455601142262541003,
3941 17.459644530999561596,
3942 17.463682177476531621,
3943 17.467714098040527659,
3944 17.471740308968911393,
3945 17.475760826469311837,
3946 17.479775666680737345,
3947 17.483784845673248753,
3948 17.48778837944919573,
3949 17.491786283941920033,
3950 17.495778575018331225,
3951 17.499765268477847968,
3952 17.503746380053250675,
3953 17.507721925410677954,
3954 17.511691920150553869,
3955 17.515656379807619913,
3956 17.519615319851602919,
3957 17.523568755686863341,
3958 17.527516702653390013,
3959 17.531459176027503588,
3960 17.535396191021135337,
3961 17.539327762782946252,
3962 17.543253906398700082,
3963 17.547174636891110566,
3964 17.551089969220726061,
3965 17.55499991828603612,
3966 17.558904498923816107,
3967 17.56280372590921246,
3968 17.566697613956709034,
3969 17.570586177719679455,
3970 17.574469431791861496,
3971 17.57834739070633745,
3972 17.582220068936514679,
3973 17.586087480896782864,
3974 17.589949640942283082,
3975 17.593806563369430052,
3976 17.597658262416263852,
3977 17.601504752262602693,
3978 17.605346047030799639,
3979 17.609182160785461946,
3980 17.613013107534300161,
3981 17.616838901227882985,
3982 17.620659555760632031,
3983 17.624475084970370631,
3984 17.628285502639439386,
3985 17.632090822494131288,
3986 17.635891058205594106,
3987 17.639686223390050657,
3988 17.643476331608823671,
3989 17.647261396368989494,
3990 17.651041431123289271,
3991 17.654816449270906986,
3992 17.658586464157085771,
3993 17.662351489073873978,
3994 17.666111537260881903,
3995 17.669866621904166237,
3996 17.673616756137700889,
3997 17.677361953043504883,
3998 17.681102225651589066,
3999 17.684837586940343357,
4000 17.688568049836735696,
4001 17.692293627216667318,
4002 17.696014331905388417,
4003 17.699730176677736182,
4004 17.703441174257626756,
4005 17.707147337320158442,
4006 17.710848678489600871,
4007 17.714545210340972403,
4008 17.718236945400757776,
4009 17.721923896145383992,
4010 17.725606075003664586,
4011 17.729283494355279061,
4012 17.732956166531788966,
4013 17.736624103817053566,
4014 17.740287318447204967,
4015 17.7439458226106197,
4016 17.7475996284487465,
4017 17.751248748055697746,
4018 17.754893193479659885,
4019 17.758532976721472352,
4020 17.762168109736034438,
4021 17.76579860443253267,
4022 17.769424472673936322,
4023 17.773045726278112966,
4024 17.77666237701702201,
4025 17.780274436618149991,
4026 17.78388191676421215,
4027 17.78748482909260531,
4028 17.791083185197049232,
4029 17.794676996626467513,
4030 17.798266274886522353,
4031 17.801851031438815198,
4032 17.805431277701234904,
4033 17.809007025048853023,
4034 17.81257828481349037,
4035 17.816145068284257036,
4036 17.819707386707019481,
4037 17.823265251286301236,
4038 17.826818673183591812,
4039 17.830367663518767785,
4040 17.833912233369645151,
4041 17.837452393773155279,
4042 17.840988155723845665,
4043 17.844519530175912081,
4044 17.848046528042708303,
4045 17.851569160195964514,
4046 17.855087437467808797,
4047 17.858601370649363815,
4048 17.862110970492363293,
4049 17.865616247708004494,
4050 17.869117212967694286,
4051 17.872613876903582053,
4052 17.876106250108616535,
4053 17.879594343136158585,
4054 17.883078166501164219,
4055 17.886557730679083278,
4056 17.890033046107532755,
4057 17.893504123185451249,
4058 17.896970972273397393,
4059 17.900433603693965523,
4060 17.903892027732293712,
4061 17.907346254635566396,
4062 17.91079629461380307,
4063 17.91424215783896301,
4064 17.917683854447119529,
4065 17.921121394536235982,
4066 17.924554788168489239,
4067 17.927984045368805965,
4068 17.931409176126305027,
4069 17.934830190393768135,
4070 17.938247098087309439,
4071 17.941659909088286895,
4072 17.945068633241451295,
4073 17.948473280356495252,
4074 17.951873860207587796,
4075 17.955270382534095575,
4076 17.958662857039847438,
4077 17.962051293394043938,
4078 17.965435701231751153,
4079 17.968816090152635923,
4080 17.972192469722518382,
4081 17.975564849473183671,
4082 17.97893323890192363,
4083 17.982297647472794466,
4084 17.985658084615817387,
4085 17.989014559727348086,
4086 17.992367082170634518,
4087 17.995715661275820452,
4088 17.999060306339703885,
4089 18.002401026626170477,
4090 18.005737831366715795,
4091 18.009070729759883989,
4092 18.01239973097204583,
4093 18.015724844137011473,
4094 18.019046078357007445,
4095 18.022363442701447411,
4096 18.025676946208754714,
4097 18.028986597885083398,
4098 18.032292406705376919,
4099 18.035594381612927606,
4100 18.03889253152023997,
4101 18.042186865308398325,
4102 18.045477391827411395,
4103 18.048764119896610225,
4104 18.05204705830509937,
4105 18.055326215810708845,
4106 18.058601601141383242,
4107 18.061873222994794475,
4108 18.065141090038160598,
4109 18.068405210909475045,
4110 18.071665594216039352,
4111 18.074922248536097413,
4112 18.078175182418121381,
4113 18.081424404381138515,
4114 18.084669922914958562,
4115 18.087911746480227038,
4116 18.091149883508542473,
4117 18.094384342402832999,
4118 18.097615131536880284,
4119 18.10084225925644219,
4120 18.104065733878233146,
4121 18.107285563690883379,
4122 18.110501756954750618,
4123 18.113714321902179449,
4124 18.116923266737305909,
4125 18.120128599636711186,
4126 18.123330328748984641,
4127 18.126528462195601321,
4128 18.129723008069866808,
4129 18.132913974438224614,
4130 18.136101369339865386,
4131 18.139285200786897434,
4132 18.142465476764218835,
4133 18.145642205230174682,
4134 18.148815394116070365,
4135 18.15198505132675777,
4136 18.155151184740685011,
4137 18.158313802209818277,
4138 18.161472911559862098,
4139 18.164628520590550664,
4140 18.16778063707504387,
4141 18.170929268761465636,
4142 18.17407442337134782,
4143 18.177216108600919853,
4144 18.180354332120867156,
4145 18.183489101576274294,
4146 18.186620424586880773,
4147 18.189748308747581973,
4148 18.192872761627686629,
4149 18.19599379077147816,
4150 18.199111403698633893,
4151 18.202225607903937288,
4152 18.205336410857679397,
4153 18.208443820005285829,
4154 18.211547842767703997,
4155 18.214648486541943129,
4156 18.217745758700090164,
4157 18.220839666590617156,
4158 18.223930217538207188,
4159 18.227017418842539342,
4160 18.23010127778079692,
4161 18.23318180160549673,
4162 18.236258997545750304,
4163 18.239332872807583641,
4164 18.242403434572771914,
4165 18.245470690000708203,
4166 18.248534646226922007,
4167 18.251595310364102431,
4168 18.254652689501750018,
4169 18.257706790706624389,
4170 18.260757621022719377,
4171 18.263805187471096048,
4172 18.266849497050291262,
4173 18.269890556736381626,
4174 18.272928373482780984,
4175 18.275962954220982937,
4176 18.278994305859999514,
4177 18.282022435286766182,
4178 18.28504734936614895,
4179 18.28806905494078805,
4180 18.291087558831872428,
4181 18.294102867838830662,
4182 18.297114988739124897,
4183 18.300123928288716257,
4184 18.30312969322262262,
4185 18.306132290253390948,
4186 18.30913172607304773,
4187 18.312128007352608705,
4188 18.315121140740988182,
4189 18.318111132867077373,
4190 18.321097990338280681,
4191 18.324081719741027285,
4192 18.327062327641758799,
4193 18.330039820585078303,
4194 18.333014205095942373,
4195 18.335985487678517103,
4196 18.338953674816348638,
4197 18.341918772972586993,
4198 18.344880788590554488,
4199 18.347839728093219946,
4200 18.35079559788319159,
4201 18.353748404343495082,
4202 18.356698153836823906,
4203 18.359644852706377804,
4204 18.36258850727550751,
4205 18.365529123847672111,
4206 18.368466708707362756,
4207 18.371401268118660255,
4208 18.374332808326904853,
4209 18.377261335557800948,
4210 18.380186856017850516,
4211 18.383109375894512993,
4212 18.386028901355754073,
4213 18.388945438550987177,
4214 18.391858993610199491,
4215 18.394769572645088829,
4216 18.397677181747976505,
4217 18.400581826992706169,
4218 18.403483514434544333,
4219 18.406382250109903254,
4220 18.409278040037300173,
4221 18.412170890216181363,
4222 18.415060806628041234,
4223 18.417947795235875219,
4224 18.420831861984659383,
4225 18.423713012801581357,
4226 18.426591253594740039,
4227 18.429466590255497493,
4228 18.432339028656336666,
4229 18.435208574652552471,
4230 18.438075234081573228,
4231 18.440939012762864735,
4232 18.443799916498530678,
4233 18.446657951073060389,
4234 18.449513122253410558,
4235 18.452365435789261028,
4236 18.455214897412911768,
4237 18.458061512839364582,
4238 18.460905287766870231,
4239 18.463746227875390105,
4240 18.466584338829385104,
4241 18.469419626275136892,
4242 18.472252095842428332,
4243 18.475081753144252161,
4244 18.477908603777017049,
4245 18.480732653319968506,
4246 18.483553907336020217,
4247 18.486372371370983103}};

Referenced by gum::VariableLog2ParamComplexity::log2Cnr().

◆ VariableLog2ParamComplexityCTableNSize

std::size_t gum::VariableLog2ParamComplexityCTableNSize {std::size_t(1000)}
constexpr

◆ VariableLog2ParamComplexityCTableRSize

std::size_t gum::VariableLog2ParamComplexityCTableRSize {std::size_t(4)}
constexpr

Definition at line 69 of file variableLog2ParamComplexity.h.

69{std::size_t(4)};

Referenced by gum::VariableLog2ParamComplexity::log2Cnr().