aGrUM  0.16.0
gum Namespace Reference

Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr. More...

Namespaces

 __debug__
 Internal namespace for aGrUM debugging tools.
 
 __sig__
 Internal namespace for aGrUM signaler/listener components.
 
 aggregator
 Aggregators are functional description of CPTs.
 
 complexity
 Internal namespace for complexity tools (quite empty for now)
 
 credal
 namespace for all credal networks entities
 
 formula
 
 learning
 
 prm
 namespace for all probabilistic relational models entities
 
 thread
 

Classes

class  AbstractFMDPFactory
 A factory class to ease Factored Markov Decision Process construction. More...
 
class  AbstractLeaf
 <agrum/FMDP/learning/datastructure/leaves/abstractLeaf.h> More...
 
class  AbstractSimulator
 <agrum/FMDP/simulation/abstractSimulator.h> More...
 
class  ActionSet
 A class to store the optimal actions. More...
 
class  AdaptiveRMaxPlaner
 <agrum/FMDP/planning/adaptiveRMaxPlaner.h> 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  ApproximateInference
 
class  ApproximationPolicy
 Mother class for all approximation policy classes. More...
 
class  ApproximationScheme
 Approximation Scheme. More...
 
class  ApproximationSchemeListener
 The ApproximationSchemeListener class. More...
 
class  Arc
 The base class for all directed edgesThis class is used as a basis for manipulating all directed edges (i.e., edges in which the order of the nodes is meaningful). More...
 
class  ArcGraphPart
 Classes for directed edge sets. More...
 
struct  ArgMaxSet
 Class to handle efficiently argMaxSet. More...
 
struct  ArgumentMaximises
 Arg Max function object class. More...
 
struct  ArgumentMaximisesAction
 <agrum/FMDP/planning/actionSet.h> More...
 
class  BarrenNodesFinder
 Detect barren nodes for inference in Bayesian networks. More...
 
class  BayesBall
 Implementation of Shachter's Bayes Balls algorithm. More...
 
class  BayesNet
 Class representing a Bayesian Network. More...
 
class  BayesNetFactory
 A factory class to ease BayesNet construction. More...
 
class  BayesNetFragment
 Portion of a BN identified by the list of nodes and a BayesNet. More...
 
class  BayesNetInference
 <agrum/BN/inference/BayesNetInference.h> More...
 
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  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 formatThis class export an influence diagram into an XML files, using BIF format See http://www-2.cs.cmu.edu/afs/cs/user/fgcozman/www/Research/InterchangeFormat/ for information about this format. More...
 
class  Bijection
 Set of pairs of elements with fast search for both elements. More...
 
class  BijectionImplementation
 A non scalar implementation of a Bijection. More...
 
class  BijectionIterator
 Unsafe iterators for 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  BijectionIteratorStaticEnd
 A class which creates the static iterator used by gim::Bijections. More...
 
class  BinaryJoinTreeConverter
 
class  BinaryJoinTreeConverterDefault
 
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  BNdistance
 
class  BNReader
 Pure virtual class for reading a BN from a file. More...
 
class  BNWriter
 Pure virtual class for writting a BN to a file. More...
 
class  Chi2
 Represent the chi2 distribution. More...
 
class  Chi2TestPolicy
 <agrum/multidim/core/testPolicy/Chi2TestPolicy.h> More...
 
class  ChiSquare
 <agrum/FMDP/learning/core/testPolicy/chiSquare.h> More...
 
class  CliqueGraph
 Basic graph of cliques. More...
 
class  CliqueProperties
 
class  CNFWriter
 Writes a IBayesNet in the BN format. 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 typesThis class is of course completely redundant with function completeProjections4MultiDimInit. More...
 
struct  CompleteProjections4MultiDimInitialize< GUM_SCALAR *>
 a class used to register complete projections over pointers typesThis class is of course completely redundant with function pointerCompleteProjections4MultiDimInit. More...
 
class  ComposedLeaf
 <agrum/FMDP/learning/datastructure/leaves/composedLeaf.h> More...
 
class  ConcreteLeaf
 <agrum/FMDP/learning/datastructure/leaves/concreteLeaf.h> More...
 
class  ContextualDependenciesCNFWriter
 <agrum/BN/io/cnf/ContextualDependenciesCNFWriter.h> More...
 
class  ContingencyTable
 <agrum/FMDP/learning/core/contingencyTable.h> More...
 
class  ContinuousVariable
 Defines a continuous random variable. More...
 
class  CPTError
 
class  CPTNoSumTo1
 
class  DAG
 Base class for dag. More...
 
class  DAGCycleDetector
 A class for detecting directed cycles in DAGs when trying to apply many changes to the graph. More...
 
class  DAGmodel
 Virtual base class for PGMs using a DAG. More...
 
class  DatabaseError
 
class  DefaultEliminationSequenceStrategy
 An efficient unconstrained elimination sequence algorithm. More...
 
class  DefaultInLabel
 
class  DefaultJunctionTreeStrategy
 An algorithm producing a junction given the elimination tree produced by a triangulation algorithm. More...
 
class  DefaultPartialOrderedEliminationSequenceStrategy
 An Elimination sequence algorithm that imposes a given partial ordering on the nodes elimination sequence. More...
 
class  DefaultTriangulation
 The default triangulation algorithm used by aGrUM. More...
 
class  DiGraph
 Base class for all oriented graphs. More...
 
class  DiGraphListener
 Abstract Base class for all diGraph Listener. More...
 
class  Directory
 Cross-platform directory utility. More...
 
class  Dirichlet
 A class for sampling w.r.t. More...
 
class  DiscreteVariable
 Base class for discrete random variable. More...
 
class  DiscretizedVariable
 Class for discretized random variable. More...
 
class  dSeparation
 the d-separation algorithm as described in Koller & Friedman (2009) 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  dummyHash
 
class  DuplicateElement
 
class  DuplicateLabel
 
class  E_GreedyDecider
 <agrum/FMDP/decision/E_GreedyDecider.h> More...
 
class  Edge
 The base class for all undirected edges. More...
 
class  EdgeGraphPart
 Classes for undirected edge sets. More...
 
class  EliminationSequenceStrategy
 The base class for all elimination sequence algorithms used by triangulation algorithms. More...
 
class  EmptyBSTree
 
class  EmptySet
 
class  ErrorsContainer
 This class is used contain and manipulate gum::ParseError. More...
 
class  EssentialGraph
 Class building the essential graph from a BN. More...
 
class  Estimator
 
class  EvidenceInference
 <agrum/BN/inference/evidenceInference.h> More...
 
class  ExactBNdistance
 ExactBNdistance computes exactly the KL divergence betweens 2 BNs. More...
 
class  ExactPolicy
 Class implementing exact approximation policy (meaning a value is approximate to itself). More...
 
class  ExactTerminalNodePolicy
 Implementation of a Terminal Node Policy that maps nodeid directly to value. More...
 
class  Exception
 Base class for all aGrUM's exceptions. More...
 
class  FactorisedValuesCNFWriter
 <agrum/BN/io/cnf/FactorisedValuesCNFWriter.h> More...
 
class  FactoryError
 
class  FactoryInvalidState
 
class  FactorySimulator
 A class to simulate the Factory problem. More...
 
class  FatalError
 
class  FixedAllocator
 Allocates objects of one given size. More...
 
class  FMDP
 This class is used to implement factored decision process. More...
 
class  FMDPDatReader
 Definition of templatized reader of FMDPDat files for Factored Markov Decision Processes. More...
 
class  FMDPFactory
 A factory class to ease Factored Markov Decision Process construction. More...
 
class  FMDPLearner
 
class  FMDPReader
 Pure virtual class for reading a FMDP from a file. More...
 
class  FMDPSimulator
 <agrum/FMDP/simulation/fmdpSimulator.h> More...
 
class  FormatNotFound
 
class  Formula
 Evaluates a string as a algebraic formula. More...
 
class  FormulaPart
 Represents part of a formula. More...
 
class  FusionContext
 <agrum/FMDP/learning/datastructure/leaves/fusionContext.h> More...
 
class  GammaLog2
 The class for computing Log2 (Gamma(x)) More...
 
class  GeneralizedCNFWriter
 <agrum/BN/io/cnf/GeneralizedCNFWriter.h> More...
 
class  GibbsBNdistance
 GibbsKL computes the KL divergence betweens 2 BNs using an approximation pattern: GIBBS sampling. More...
 
class  GibbsOperator
 class containing all variables and methods required for Gibbssampling More...
 
class  GibbsSampling
 <agrum/BN/inference/gibbsSampling.h> More...
 
class  GraphError
 
class  GTestPolicy
 <agrum/multidim/core/testPolicies/GTestPolicy.h> More...
 
class  HashFunc
 Class template representing hashing function of LpCol. More...
 
class  HashFunc< bool >
 Hash function for booleans. More...
 
class  HashFunc< credal::lp::LpCol >
 
class  HashFunc< Debug >
 Hash function for gum::Debug. More...
 
class  HashFunc< double >
 Hash function for doubles. More...
 
class  HashFunc< float >
 Hash function for floats. More...
 
class  HashFunc< Instantiation >
 Hash function for gum::Instantiation. More...
 
class  HashFunc< int >
 Hash function for integers. 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< learning::GraphChange >
 the hash function for Graph Changes More...
 
class  HashFunc< learning::IdSet< ALLOC > >
 the hash function for idSets More...
 
class  HashFunc< long >
 Hash function for long integers. More...
 
class  HashFunc< RefPtr< Type > >
 Hash function for RefPtr. More...
 
class  HashFunc< Set< T, Alloc > >
 the hash function for sets of int More...
 
class  HashFunc< std::pair< Key1, Key2 > >
 
class  HashFunc< std::string >
 Hash function for strings. More...
 
class  HashFunc< std::tuple< unsigned int, unsigned int, unsigned int > >
 the hash function for tuple (unsigned int, unsigned int,unsigned int) More...
 
class  HashFunc< std::vector< Idx > >
 Hash function for vectors of gum::Idx. More...
 
class  HashFunc< Type *>
 Hash function for pointers. More...
 
class  HashFunc< typename HashFuncConditionalType< std::size_t, unsigned long, unsigned int, long, int >::type >
 Hash function for std::size_t. More...
 
class  HashFunc< unsigned int >
 Hash function for unsigned integers. More...
 
class  HashFunc< unsigned long >
 Hash function for unsigned long integers. More...
 
class  HashFuncBase
 All hash functions should inherit from this class. 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  HashFuncConditionalType
 This class enables to safely define hash functions for types that may or may not already has defined hash functionsThere are types that are defined differently depending on the architecture or the compiler you use. More...
 
struct  HashFuncConditionalType< Key >
 
struct  HashFuncConditionalType< KEY_TYPE, FIRST_TYPE, OTHER_TYPES... >
 
struct  HashFuncConditionalType< KEY_TYPE, TYPE >
 
class  HashFuncConst
 Useful constants for hash functions. More...
 
class  HashFuncLargeCastKey
 Generic hash functions for keys castable as Size and whose size is precisely twice that of Size. More...
 
class  HashFuncMediumCastKey
 Generic hash functions for keys castable as Size and whose size is precisely that of Size. More...
 
class  HashFuncSmallCastKey
 Generic hash functions for keys castable as Size and whose size is strictly smaller than that of Size. More...
 
class  HashFuncSmallKey
 Generic hash functions for numeric keys smaller than or equal to Size. More...
 
class  HashTable
 The class for generic Hash Tables. More...
 
class  HashTableBucket
 A recipient for a pair of key value in a gum::HashTableList. More...
 
class  HashTableConst
 Parameters specifying the default behavior of the hashtables. More...
 
class  HashTableConstIterator
 Unsafe Const Iterators for hashtablesHashTableConstIterator provides a fast but unsafe way to parse HashTables. More...
 
class  HashTableConstIteratorSafe
 Safe Const Iterators for hashtables. More...
 
class  HashTableIterator
 Unsafe Iterators for hashtablesHashTableIterator provides a fast but unsafe way to parse HashTables. More...
 
class  HashTableIteratorSafe
 Safe Iterators for hashtables. More...
 
class  HashTableIteratorStaticEnd
 A class used to create the static iterator used by HashTables. More...
 
class  HashTableList
 A chained list used by gum::HashTable. More...
 
class  Heap
 Heap data structureThis structure is a basic heap data structure, i.e., it is a container in which elements are sorted according to a weak ordering. More...
 
class  IApproximationSchemeConfiguration
 Approximation Scheme. More...
 
class  IBayesNet
 Class representing the minimal interface for Bayesian Network. 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  IBayesNetGenerator
 Class for generating bayesian networks. More...
 
class  IContinuousVariable
 A base class for continuous variables, independent of the GUM_SCALAR type. More...
 
class  IDecisionStrategy
 <agrum/FMDP/SDyna/IDecisionStrategy.h> More...
 
class  IdError
 
class  IDiscretizedVariable
 A base class for discretized variables, independent of the ticks type. 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  IInfluenceDiagramInference
 <agrum/ID/inference/IInfluenceDiagramInference.h> More...
 
class  ILearningStrategy
 <agrum/FMDP/SDyna/ILearningStrategy.h> More...
 
class  IMDDI
 
class  ImportanceSampling
 
class  IncompatibleEvidence
 Exception : several evidence are incompatible together (proba=0) More...
 
class  IncompatibleScoreApriori
 
class  IncrementalGraphLearner
 <agrum/FMDP/learning/datastructure/incrementalGraphLearner> More...
 
class  IncrementalTriangulation
 Class that performs incremental triangulations. More...
 
class  IndexedTree
 The class for storing the nodes of the Arborescence. More...
 
class  InfluenceDiagram
 Class representing an Influence Diagram. More...
 
class  InfluenceDiagramGenerator
 <agrum/ID/generator/influenceDiagramGenerator.h> More...
 
class  InfluenceDiagramInference
 <agrum/ID/inference/influenceDiagramInference.h> More...
 
class  Instantiation
 Class for assigning/browsing values to tuples of discrete variables. More...
 
struct  Int2Type
 
class  InternalNode
 Structure used to represent a node internal structure. More...
 
class  InvalidArc
 
class  InvalidArgument
 
class  InvalidArgumentsNumber
 
class  InvalidDirectedCycle
 
class  InvalidEdge
 
class  InvalidNode
 
class  IOError
 
class  IOperatorStrategy
 <agrum/FMDP/SDyna/IOperatorStrategy.h> More...
 
class  IPlanningStrategy
 <agrum/FMDP/SDyna/IPlanningStrategy.h> More...
 
class  ITerminalNodePolicy
 Interface specifying the methods to be implemented by any TerminalNodePolicy. More...
 
class  ITestPolicy
 <agrum/multidim/core/testPolicies/ITestPolicy.h> More...
 
class  ITI
 Learn a graphical representation of a function as a decision tree. More...
 
class  IVisitableGraphLearner
 <agrum/FMDP/SDyna/IVisitableGraphLearner.h> More...
 
class  JointTargetedInference
 <agrum/BN/inference/jointTargetedInference.h> More...
 
class  JunctionTreeStrategy
 Base Class for all the algorithms producing a junction given a set of cliques/subcliques resulting from a triangulation. More...
 
class  LabelizedVariable
 class LabelizedVariable More...
 
class  LazyDecider
 Class to make decision randomlyDoes nothing more than the interface for DecisionStrategy does. More...
 
class  LazyPropagation
 <agrum/BN/inference/lazyPropagation.h> More...
 
class  LeafAggregator
 <agrum/FMDP/learning/FunctionGraph/leafAggregator.h> More...
 
class  LeafPair
 <agrum/FMDP/learning/datastructure/leaves/leafPair.h> More...
 
struct  LearnerSelect
 
struct  LearnerSelect< ITILEARNER, A, B >
 
class  LearningError
 
class  LeastSquareTestPolicy
 <agrum/multidim/core/testPolicy/leastSquareTestPolicy.h> More...
 
class  LinearApproximationPolicy
 Class implementing linear approximation policy (meaning possible value are split out in interval). More...
 
class  Link
 Link of a chain list allocated using the SmallObjectAllocator. More...
 
class  LinkedList
 Chain list allocated using the SmallObjectAllocator. More...
 
class  List
 Generic doubly linked lists. More...
 
class  ListBucket
 Bucket for a chained list. More...
 
class  ListConstIterator
 Unsafe but fast const iterators for Lists. More...
 
class  ListConstIteratorSafe
 Safe const iterators for Lists. More...
 
class  Listener
 Every class who would catch signal from signaler should derive from Listener. More...
 
class  ListIterator
 Unsafe but fast iterators for Lists. More...
 
class  ListIteratorSafe
 Safe iterators for Lists. More...
 
class  LoopyBeliefPropagation
 <agrum/BN/inference/loopyBeliefPropagation.h> More...
 
class  LoopySamplingInference
 <agrum/BN/inference/loopySamplingInference.h> More...
 
class  MarginalTargetedInference
 <agrum/BN/inference/marginalTargetedInference.h> More...
 
class  MarkovBlanket
 Class building the markov Blanket from a BN and a nodeName. More...
 
struct  Maximizes
 Maximization function object classReturns the maximum of its two arguments. 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  MDDOperatorStrategy
 <agrum/FMDP/planning/mddOperatorStrategy.h> More...
 
struct  Minimizes
 Minimization function object classReturns the minimum of its two arguments. More...
 
class  MissingValueInDatabase
 
class  MissingVariableInDatabase
 
class  MixedGraph
 Base class for mixed graphs. More...
 
class  MixedGraphListener
 Abstract Base class for all mixed Graph Listener. More...
 
class  MonteCarloSampling
 
class  MultiDimAdressable
 Abstract base class for all multi dimensionnal addressable. More...
 
class  MultiDimArray
 Multidimensional matrix stored as an array in memory. More...
 
class  MultiDimBijArray
 Decorator of a MultiDimArray, using a bijection over the variables. More...
 
class  MultiDimBucket
 A multidim implementation for buckets. More...
 
class  MultiDimCombination
 A generic interface to combine efficiently several MultiDim tables. More...
 
class  MultiDimCombinationDefault
 A class to combine efficiently several MultiDim tablesMultiDimCombinationDefault is a class designed to combine efficiently several multidimensional objects, that is, to compute expressions like T1 op T2 op T3 op .... 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  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  MultiDimFunctionGraph
 Class implementingting a function graph. More...
 
class  MultiDimFunctionGraphGenerator
 Class implementing a function graph generator with template type double. More...
 
class  MultiDimFunctionGraphManager
 Class implementingting a function graph manager. More...
 
class  MultiDimFunctionGraphOperator
 Class used to perform Function Graph Operations. More...
 
class  MultiDimFunctionGraphProjector
 Class used to perform Function Graph projections. More...
 
class  MultiDimFunctionGraphROManager
 
class  MultiDimFunctionGraphTreeManager
 
class  MultiDimICIModel
 abstract class for Conditional Indepency Models More...
 
class  MultiDimImplementation
 <agrum/multidim/multiDimImplementation.h> More...
 
class  MultiDimInterface
 Interface for all classes addressing in a multiDim fashion. 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  MultiDimPartialInstantiation
 A generic class to instantiate a subset of variables of a multidimensional table. More...
 
class  MultiDimProjection
 A generic class to project efficiently a MultiDim table over a subset of its variables. 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  MultiPriorityQueue
 A MultiPriorityQueue is a heap in which each element has a mutable priority and duplicates are allowedA priority queue is quite similar to a heap except that a priority (a score) is assigned to each element in the structure. 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  NoChild
 
class  NodeDatabase
 <agrum/FMDP/learning/datastructure/nodeDatabase.h> More...
 
class  NodeGraphPart
 Class for node sets in graph. 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  NoNeighbour
 
class  NoParent
 
class  NotFound
 
class  NotImplementedYet
 
class  NullElement
 
struct  NullStream
 Implements a stream with the same behaviour as /dev/null. More...
 
class  O3prmBNReader
 Read an O3PRM and transform the gum::prm::PRMSystem into gum::BayesNet. More...
 
class  O3prmBNWriter
 <agrum/PRM/o3prm/O3prmBNWriter.h> More...
 
class  O4DGContext
 Class used to manipulate context during Function Graph Operations. More...
 
class  Observation
 
class  OperationNotAllowed
 
class  OperatorRegister4MultiDim
 A container for registering binary functions on multiDimImplementations. More...
 
struct  Operators4MultiDimInitialize
 a class used to register operators over non-pointers typesThis class is of course completely redundant with function operators4MultiDimInit. More...
 
struct  Operators4MultiDimInitialize< GUM_SCALAR *>
 a class used to register operators over pointers typesThis class is of course completely redundant with function pointerOperators4MultiDimInit. More...
 
class  OrderedEliminationSequenceStrategy
 An Elimination sequence algorithm that imposes a given complete ordering on the nodes elimination sequence. More...
 
class  OrderedTriangulation
 class for graph triangulations for which we enforce a given complete ordering on the nodes eliminations. More...
 
class  OutOfBounds
 
class  OutOfLowerBound
 
class  OutOfUpperBound
 
class  Parent
 Represent a node's parent. More...
 
class  ParseError
 This class is used to represent parsing errors for the different parser implemented in aGrUM. 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  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  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  PossiblyIncompatibleScoreApriori
 
class  Potential
 aGrUM's Potential is a multi-dimensional array with tensor operators. More...
 
class  PriorityQueue
 A priorityQueue is a heap in which each element has a mutable priorityA priority queue is quite similar to a heap except that a priority (a score) is assigned to each element in the structure. More...
 
class  PriorityQueueImplementation
 The internal class for representing priority queues. More...
 
class  PRMAggregate
 Defines an aggregate in a PRM. More...
 
class  ProgressListener
 The ProgressListener class. More...
 
class  ProgressNotifier
 Notification for progress using listener. 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  RandomDecider
 Class to make decision randomlyDoes nothing more than the interface for DecisionStrategy does. More...
 
class  RangeVariable
 Defines a discrete random variable over an integer interval. More...
 
class  Rational
 Class template used to approximate decimal numbers by rationals. More...
 
class  ReferenceError
 
class  RefPtr
 Smart pointersaGrUM's smart pointers keep track of the number of times the value they point to is referenced. More...
 
class  Regress
 Class used to perform Function Graph Operations in the FMDP Framework. More...
 
class  SamplingInference
 
class  Schedule
 Class containing a schedule of operations to perform on multidims. More...
 
class  ScheduleCliqueStoreMultiDim
 
class  ScheduleCombination
 
class  ScheduleCombinationBasic
 
class  ScheduleCombine
 
class  ScheduleDeleteMultiDim
 
class  ScheduleMultiDim
 a MultiDimImplementation Wrapper used for scheduling inferences More...
 
class  ScheduleOperation
 
class  ScheduleProject
 
class  ScheduleProjection
 
class  ScheduleProjectionBasic
 
class  Scheduler
 
class  SchedulerBasic
 
class  ScheduleSeparatorStoreMultiDim
 
class  SDYNA
 The general SDyna architecture abstract class. More...
 
class  Sequence
 The generic class for storing (ordered) sequences of objects. More...
 
class  SequenceImplementation
 The internal class for storing (ordered) sequences of objects. More...
 
class  SequenceIteratorSafe
 Safe iterators for Sequence. More...
 
class  Set
 Representation of a setA Set is a structure that contains arbitrary elements. More...
 
class  SetInst
 Class for assigning/browsing values to tuples of discrete variables. More...
 
class  SetIterator
 Unsafe iterators for the Set class. More...
 
class  SetIteratorSafe
 Safe iterators for the Set classDevelopers may consider using Set<x>::iterator_safe instead of SetIteratorSafe<x>. More...
 
class  SetTerminalNodePolicy
 Implementation of a Terminal Node Policy that maps nodeid to a set of value. More...
 
class  ShaferShenoyInference
 <agrum/BN/inference/ShaferShenoyInference.h> More...
 
class  Signaler0
 class for signal with 0 args 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  SimpleUTGenerator
 Class for generating Utility Tables. More...
 
class  SimplicialSet
 Class enabling fast retrieval of simplicial, quasi and almost simplicial nodes. More...
 
class  SizeError
 
class  SmallObjectAllocator
 <agrum/core/smallObjectAllocator.h> 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  SplayBinaryNode
 the nodes of splay trees More...
 
class  SplayTree
 A splay tree. More...
 
class  StatesChecker
 <agrum/FMDP/simulation/statesChecker.h> More...
 
class  StatesCounter
 <agrum/FMDP/simulation/statesCounter.h> More...
 
class  StaticTriangulation
 base class for all non-incremental triangulation methods More...
 
class  StatisticalLazyDecider
 <agrum/FMDP/decision/statisticalLazyDecider.h> More...
 
class  StructuralComparator
 A class for comparing graphs based on their structures. More...
 
class  StructuredPlaner
 <agrum/FMDP/planning/structuredPlaner.h> More...
 
class  SyntaxError
 
class  TaxiSimulator
 A class to simulate the Taxi problem. More...
 
struct  TestSelect
 
struct  TestSelect< CHI2TEST, A, B, C >
 
struct  TestSelect< LEASTSQUARETEST, A, B, C >
 
class  ThreadData
 A wrapper that enables to store data in a way that prevents false cacheline sharing. More...
 
class  Timer
 Class used to compute response times for benchmark purposesThis class represents a classic timer, it starts in the constructor, you can reset it with method reset() and you can get the delta time with the method step(). More...
 
class  TreeOperator
 Class used to perform Decision Tree Operation in the FMDP Framework. More...
 
class  TreeOperatorStrategy
 <agrum/FMDP/planning/treeOperatorStrategy.h> More...
 
class  TreeRegress
 Class used to perform Decision Tree Regression in the FMDP Framework. More...
 
class  Triangulation
 Interface for all the triangulation methods. More...
 
class  TypeError
 
class  UAIReader
 Pure virtual class for reading a BN from a file. More...
 
class  UAIWriter
 <agrum/BN/io/UAI/UAIWriter.h> 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  UnconstrainedTriangulation
 Interface for all triangulation methods without constraints on node elimination orderings. More...
 
class  UndefinedElement
 
class  UndefinedIteratorKey
 
class  UndefinedIteratorValue
 
class  UndiGraph
 Base class for undirected graphs. More...
 
class  UndiGraphListener
 Abstract Base class for all undiGraph Listener. More...
 
class  UnknownLabelInDatabase
 
class  UTGenerator
 Abstract class for generating Utility Tables. More...
 
struct  ValueSelect
 
struct  ValueSelect< false, A, B >
 
class  Variable
 Base class for every random variable. More...
 
class  VariableElimination
 <agrum/BN/inference/variableElimination.h> More...
 
class  VariableLog2ParamComplexity
 the class for computing the log2 of the parametric complexity of an r-ary multinomial variableThis class enables to compute the log in base 2 of the parametric complexity of a single r-ary multinomial variable, i.e., the log in base 2 of the C_N^r term used by NML scores in Bayesian network structure learning algorithm (see, e.g., Silander, Roos, Kontkanen and Myllymaki (2007) "Factorized Normalized Maximum " Likelihood Criterion for Learning Bayesian Network Structures)" More...
 
class  VariableNodeMap
 Container used to map discrete variables with nodes. More...
 
class  VariableSelector
 <agrum/FMDP/planning/FunctionGraph/variableselector.h> More...
 
class  WeightedSampling
 
class  WrongClassElement
 
class  WrongType
 

Typedefs

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 >
 
typedef HashTableConstIteratorSafe< LeafPair *, std::vector< Size > > pair_iterator
 
typedef CliqueGraph JunctionTree
 a junction tree is a clique graph satisfying the running intersection property and such that no clique is included into another one. More...
 
typedef CliqueGraph JoinTree
 a join tree is a clique graph satisfying the running intersection property (but some cliques may be included into others) More...
 
typedef Size NodeId
 Type for node ids. More...
 
typedef std::size_t Size
 In aGrUM, hashed values are unsigned long int. More...
 
typedef Size Idx
 Type for indexes. More...
 
typedef Set< NodeIdNodeSet
 Some typdefs and define for shortcuts ... More...
 
typedef Set< EdgeEdgeSet
 Some typdefs and define for shortcuts ... More...
 
typedef Set< ArcArcSet
 Some typdefs and define for shortcuts ... More...
 
typedef ArcSet::const_iterator ArcSetIterator
 Some typdefs and define for shortcuts ... More...
 
typedef EdgeSet::const_iterator EdgeSetIterator
 Some typdefs and define for shortcuts ... More...
 
typedef NodeSet::const_iterator NodeSetIterator
 Some typdefs and define for shortcuts ... More...
 
template<class VAL >
using NodeProperty = HashTable< NodeId, VAL >
 Property on graph elements. More...
 
template<class VAL >
using EdgeProperty = HashTable< Edge, VAL >
 Property on graph elements. More...
 
template<class VAL >
using ArcProperty = HashTable< Arc, VAL >
 Property on graph elements. More...
 

Enumerations

enum  Complexity : char { Complexity::Heavy, Complexity::Difficult, Complexity::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  FindBarrenNodesType { FindBarrenNodesType::FIND_NO_BARREN_NODES, FindBarrenNodesType::FIND_BARREN_NODES }
 type of algorithm to determine barren nodes More...
 
enum  RelevantPotentialsFinderType { RelevantPotentialsFinderType::FIND_ALL, RelevantPotentialsFinderType::DSEP_BAYESBALL_NODES, RelevantPotentialsFinderType::DSEP_BAYESBALL_POTENTIALS, RelevantPotentialsFinderType::DSEP_KOLLER_FRIEDMAN_2009 }
 type of algorithm for determining the relevant potentials for combinations using some d-separation analysis More...
 
enum  BinTreeDir : char { BinTreeDir::LEFT_CHILD = 0, BinTreeDir::RIGHT_CHILD = 1, BinTreeDir::NO_PARENT = 2 }
 The direction of a given edge in a binary tree. More...
 
enum  FMDPfactory_state : char {
  FMDPfactory_state::NONE, FMDPfactory_state::VARIABLE, FMDPfactory_state::ACTION, FMDPfactory_state::TRANSITION,
  FMDPfactory_state::COST, FMDPfactory_state::REWARD, FMDPfactory_state::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
}
 
enum  VarType : char { VarType::Discretized, VarType::Labelized, VarType::Range, VarType::Continuous }
 

Functions

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. More...
 
template<typename GUM_SCALAR >
NodeId build_node (gum::BayesNet< GUM_SCALAR > &bn, std::string node, gum::Size domainSize)
 
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. More...
 
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. More...
 
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. More...
 
template<typename GUM_SCALAR >
static INLINE Potential< GUM_SCALAR > * LPNewmultiPotential (const Potential< GUM_SCALAR > &t1, const Potential< GUM_SCALAR > &t2)
 
template<typename GUM_SCALAR >
static INLINE Potential< GUM_SCALAR > * LPNewprojPotential (const Potential< GUM_SCALAR > &t1, const Set< const DiscreteVariable * > &del_vars)
 
template<typename GUM_SCALAR >
static INLINE Potential< GUM_SCALAR > * SSNewmultiPotential (const Potential< GUM_SCALAR > &t1, const Potential< GUM_SCALAR > &t2)
 
template<typename GUM_SCALAR >
static INLINE Potential< GUM_SCALAR > * SSNewprojPotential (const Potential< GUM_SCALAR > &t1, const Set< const DiscreteVariable * > &del_vars)
 
template<typename GUM_SCALAR >
static INLINE Potential< GUM_SCALAR > * VENewmultiPotential (const Potential< GUM_SCALAR > &t1, const Potential< GUM_SCALAR > &t2)
 
template<typename GUM_SCALAR >
static INLINE Potential< GUM_SCALAR > * VENewprojPotential (const Potential< GUM_SCALAR > &t1, const Set< const DiscreteVariable * > &del_vars)
 
template<typename T1 , typename T2 , typename Alloc >
std::ostream & operator<< (std::ostream &, const Bijection< T1, T2, Alloc > &bijection)
 For friendly display of the content of the gum::Bijection. More...
 
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. More...
 
template<typename Key , typename Val , typename Alloc >
std::ostream & operator<< (std::ostream &s, const HashTableList< Key, Val, Alloc > &list)
 Prints the content of a gum::HashTableList in the stream. More...
 
template<typename Key , typename Val , typename Alloc >
std::ostream & operator<< (std::ostream &s, const HashTableList< Key *, Val, Alloc > &list)
 Prints the content of a gum::HashTableList with pointers key in the stream. More...
 
template<typename Key , typename Val , typename Alloc >
std::ostream & operator<< (std::ostream &s, const HashTable< Key, Val, Alloc > &table)
 Prints the content of a gum::HashTable in the stream. More...
 
template<typename Key , typename Val , typename Alloc >
std::ostream & operator<< (std::ostream &s, const HashTable< Key *, Val, Alloc > &table)
 Prints the content of a gum::HashTable with pointers key in the stream. More...
 
template<typename Val , typename Cmp , typename Alloc >
std::ostream & operator<< (std::ostream &, const Heap< Val, Cmp, Alloc > &)
 
template<typename Val , typename Cmp , typename Alloc >
INLINE std::ostream & operator<< (std::ostream &stream, const Heap< Val, Cmp, Alloc > &heap)
 
template<typename Key , typename Data >
std::ostream & operator<< (std::ostream &, const IndexedTree< Key, Data > &)
 Necessary for the hashtable operator <<. More...
 
template<typename Val , typename Alloc >
std::ostream & operator<< (std::ostream &stream, const List< Val, Alloc > &list)
 an << operator for List More...
 
template<typename Val >
ListConstIterator< Val >::difference_type operator- (const ListConstIterator< Val > &iter1, const ListConstIterator< Val > &iter2)
 For STL compliance, a distance operator. More...
 
template<typename Val >
ListConstIteratorSafe< Val >::difference_type operator- (const ListConstIteratorSafe< Val > &iter1, const ListConstIteratorSafe< Val > &iter2)
 For STL compliance, a distance operator. More...
 
template<typename Val >
INLINE ListConstIterator< Val >::difference_type operator- (const ListConstIterator< Val > &iter1, const ListConstIterator< Val > &iter2)
 For STL compliance, a distance operator. More...
 
template<typename Val >
INLINE ListConstIteratorSafe< Val >::difference_type operator- (const ListConstIteratorSafe< Val > &iter1, const ListConstIteratorSafe< Val > &iter2)
 For STL compliance, a distance operator. More...
 
template<typename Val >
std::ostream & operator<< (std::ostream &stream, const List< Val > &list)
 
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 Val , typename Priority , typename Cmp , typename Alloc >
INLINE std::ostream & operator<< (std::ostream &stream, const MultiPriorityQueue< Val, Priority, Cmp, Alloc > &queue)
 
bool isOMP ()
 Is OMP active ? More...
 
void setNumberOfThreads (unsigned int number)
 Set the number of threads to be used. More...
 
unsigned int getMaxNumberOfThreads ()
 Returns the maximum number of threads at any time. More...
 
unsigned int getThreadNumber ()
 Get the calling thread id. More...
 
unsigned int getNumberOfRunningThreads ()
 Get the current number of running threads. More...
 
unsigned int getNumberOfLogicalProcessors ()
 Get the number of logical processors. More...
 
void setNestedParallelism (bool value)
 Set nested parallelism (false bu default). More...
 
bool getNestedParallelism ()
 Get nested parallelism status. More...
 
void setDynamicThreadsNumber (bool value)
 Set the dynamic threads number (false by default). More...
 
bool getDynamicThreadsNumber ()
 Get the dynamic thread number adjustment status. More...
 
template<typename Val , typename Priority , typename Cmp , typename Alloc >
std::ostream & operator<< (std::ostream &, const PriorityQueue< Val, Priority, Cmp, Alloc > &)
 
template<typename Val , typename Priority , typename Cmp , typename Alloc >
INLINE std::ostream & operator<< (std::ostream &stream, const PriorityQueue< Val, Priority, Cmp, Alloc > &queue)
 
template<typename Val >
void swap (RefPtr< Val > &ptr1, RefPtr< Val > &ptr2)
 Swap the contents of two RefPtr. More...
 
template<typename Key , typename Alloc >
std::ostream & operator<< (std::ostream &stream, const Sequence< Key, Alloc > &s)
 A << operator for displaying the content of the Sequence. More...
 
template<typename Key , typename Alloc , bool Gen>
INLINE std::ostream & operator<< (std::ostream &stream, const SequenceImplementation< Key, Alloc, Gen > &seq)
 
template<typename Key , typename Alloc >
INLINE std::ostream & operator<< (std::ostream &stream, const SequenceImplementation< Key, Alloc, true > &seq)
 
template<typename Key , typename Alloc >
INLINE std::ostream & operator<< (std::ostream &stream, const Sequence< Key, Alloc > &seq)
 A << operator for displaying the content of the Sequence. More...
 
template<typename Key , typename Alloc >
std::ostream & operator<< (std::ostream &, const Set< Key, Alloc > &)
 A << operator for HashTableList. More...
 
template<typename Element >
INLINE std::ostream & operator<< (std::ostream &out, const SplayBinaryNode< Element > &e)
 Display the node. More...
 
template<typename Element >
INLINE std::ostream & operator<< (std::ostream &out, const SplayTree< Element > &s)
 Display the tree. More...
 
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. More...
 
std::ostream & operator<< (std::ostream &, const VariableNodeMap &)
 for friendly displaying the content of clique graphs More...
 
std::ostream & operator<< (std::ostream &, const CliqueGraph &)
 for friendly displaying the content of clique graphs More...
 
std::ostream & operator<< (std::ostream &stream, const DiGraph &g)
 for friendly displaying the content of directed graphs More...
 
std::ostream & operator<< (std::ostream &stream, const Edge &edge)
 to friendly display an edge More...
 
std::ostream & operator<< (std::ostream &stream, const Arc &arc)
 to friendly display an arc More...
 
std::ostream & operator<< (std::ostream &stream, const MixedGraph &g)
 for friendly displaying the content of directed graphs More...
 
std::ostream & operator<< (std::ostream &s, const ArcGraphPart &a)
 for friendly displaying the content of arc set More...
 
std::ostream & operator<< (std::ostream &, const EdgeGraphPart &)
 for friendly displaying the content of an edge set More...
 
std::ostream & operator<< (std::ostream &, const NodeGraphPart &)
 for friendly displaying the content of node set More...
 
std::ostream & operator<< (std::ostream &stream, const UndiGraph &g)
 for friendly displaying the content of undirected graphs More...
 
template<typename GUM_SCALAR >
std::ostream & operator<< (std::ostream &s, const MultiDimLogit< GUM_SCALAR > &ag)
 For friendly displaying the content of the array. More...
 
template<typename GUM_SCALAR >
INLINE std::ostream & operator<< (std::ostream &s, const MultiDimLogit< GUM_SCALAR > &ag)
 For friendly displaying the content of the array. More...
 
template<typename GUM_SCALAR >
std::ostream & operator<< (std::ostream &s, const MultiDimNoisyAND< GUM_SCALAR > &ag)
 For friendly displaying the content of the array. More...
 
template<typename GUM_SCALAR >
INLINE std::ostream & operator<< (std::ostream &s, const MultiDimNoisyAND< GUM_SCALAR > &ag)
 For friendly displaying the content of the array. More...
 
template<typename GUM_SCALAR >
std::ostream & operator<< (std::ostream &s, const MultiDimNoisyORCompound< GUM_SCALAR > &ag)
 For friendly displaying the content of the array. More...
 
template<typename GUM_SCALAR >
INLINE std::ostream & operator<< (std::ostream &s, const MultiDimNoisyORCompound< GUM_SCALAR > &ag)
 For friendly displaying the content of the array. More...
 
template<typename GUM_SCALAR >
std::ostream & operator<< (std::ostream &s, const MultiDimNoisyORNet< GUM_SCALAR > &ag)
 For friendly displaying the content of the array. More...
 
template<typename GUM_SCALAR >
INLINE std::ostream & operator<< (std::ostream &s, const MultiDimNoisyORNet< GUM_SCALAR > &ag)
 For friendly displaying the content of the array. More...
 
template<typename GUM_SCALAR >
std::ostream & operator<< (std::ostream &out, const MultiDimContainer< GUM_SCALAR > &array)
 
template<typename GUM_SCALAR >
void ___initPotentialOperators ()
 
template<typename GUM_SCALAR >
std::ostream & operator<< (std::ostream &, const MultiDimImplementation< GUM_SCALAR > &)
 For friendly displaying the content of the array. More...
 
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. More...
 
MultiDimInterfaceoperator<< (MultiDimInterface &c, const DiscreteVariable &v)
 Adds a new var to the sequence of vars. More...
 
MultiDimInterfaceoperator>> (MultiDimInterface &c, const DiscreteVariable &v)
 Removes a var from the variables of the MutliDimAdressing. More...
 
std::ostream & operator<< (std::ostream &, const Instantiation &)
 Print information of the instantiation in the stream. More...
 
template<typename GUM_SCALAR >
std::ostream & operator<< (std::ostream &out, const Potential< GUM_SCALAR > &array)
 
std::ostream & operator<< (std::ostream &, const SetInst &)
 Print information of the SetInst in the stream. More...
 
gum::SetInstoperator<< (gum::SetInst &inst, const gum::DiscreteVariable &i)
 Adds a variable to inst. More...
 
gum::SetInstoperator>> (gum::SetInst &inst, const gum::DiscreteVariable &i)
 Removes a variable to inst. More...
 
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. More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
template<typename GUM_SCALAR >
void completeProjections4MultiDimInit ()
 the function used to register all the complete projection operators on multidimImplementations over non-pointers types. More...
 
template<typename GUM_SCALAR >
void pointerCompleteProjections4MultiDimInit ()
 The function used to register all the complete projections on multidimImplementations over pointers types. More...
 
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. More...
 
template<typename GUM_SCALAR >
void operators4MultiDimInit ()
 the function used to register all the operators on multidimImplementations over non-pointers types. More...
 
template<typename GUM_SCALAR >
void pointerOperators4MultiDimInit ()
 the function used to register all the operators on multidimImplementations over pointers types. More...
 
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. More...
 
template<typename GUM_SCALAR >
MultiDimImplementation< GUM_SCALAR > * projectMax (const MultiDimImplementation< GUM_SCALAR > &table, const Set< const DiscreteVariable * > &del_vars)
 The function to be used to project a MultiDimImplementation using a Max. More...
 
template<typename GUM_SCALAR >
MultiDimImplementation< GUM_SCALAR > * projectMin (const MultiDimImplementation< GUM_SCALAR > &table, const Set< const DiscreteVariable * > &del_vars)
 The function to be used to project a MultiDimImplementation using a Min. More...
 
template<typename GUM_SCALAR >
MultiDimImplementation< GUM_SCALAR > * projectSum (const MultiDimImplementation< GUM_SCALAR > &table, const Set< const DiscreteVariable * > &del_vars)
 The function to be used to project a MultiDimImplementation using a Sum. More...
 
template<typename GUM_SCALAR >
MultiDimImplementation< GUM_SCALAR > * projectProduct (const MultiDimImplementation< GUM_SCALAR > &table, const Set< const DiscreteVariable * > &del_vars)
 The function to be used to project a MultiDimImplementation using a Product. More...
 
template<typename GUM_SCALAR >
void projections4MultiDimInit ()
 the function used to register all the projection operators on multidimImplementations over non-pointers types. More...
 
template<typename GUM_SCALAR >
void pointerProjections4MultiDimInit ()
 the function used to register all the projections on multidimImplementations over pointers types. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
template<typename GUM_SCALAR >
void partialInstantiation4MultiDimInit ()
 The function used to register all the instantiation operators on multidimImplementations over non-pointers types. More...
 
template<typename GUM_SCALAR >
void pointerPartialInstantiation4MultiDimInit ()
 The function used to register all the instantiations on multidimImplementations over pointers types. More...
 
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. More...
 
template<typename T_VAL >
std::ostream & operator<< (std::ostream &, const ContinuousVariable< T_VAL > &)
 for friendly displaying the content of the variable More...
 
std::ostream & operator<< (std::ostream &, const DiscreteVariable &)
 for friendly displaying the content of the variable More...
 
std::ostream & operator<< (std::ostream &s, const Variable &LDRV)
 for friendly displaying the content of the variable More...
 
Integers Pow utility methods
unsigned long intPow (unsigned long base, unsigned long exponent)
 Specialized pow function with integers (faster implementation). More...
 
unsigned long int2Pow (unsigned long exponent)
 Specialized base 2 pow function with integer. More...
 
void superiorPow (unsigned long card, unsigned long &num_bits, unsigned long &new_card)
 Compute the superior and closest power of two of an integer. More...
 
unsigned int randomGeneratorSeed ()
 Returns the aGrUM's seed used by the std::generators. More...
 
std::default_random_engine getRandomGenerator (unsigned int seed=0)
 define a random_engine with correct seed More...
 
Idx randomValue (const Size max=2)
 Returns a random Idx between 0 and max-1 included. More...
 
double randomProba ()
 Returns a random double between 0 and 1 included (i.e. More...
 
template<typename GUM_SCALAR >
std::vector< GUM_SCALAR > randomDistribution (Size n)
 Return a random discrete distribution. More...
 
void initRandom (unsigned int seed=0)
 Initialize random generator seed. More...
 
std::string getUniqueFileName ()
 Returns a path to a unique file name. More...
 
bool endsWith (std::string const &value, std::string const &ending)
 Returns true if value ends with ending. More...
 
std::vector< std::string > split (const std::string &orig, const std::string &delimiter)
 Split str using the delimiter. More...
 
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 ) { More...
 
std::string toLower (std::string str)
 Returns the lowercase version of str. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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 operatorThe function projects a table over all its variables and, thus, returns the sum of the values stored in the table More...
 
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 operatorThe function projects a table over all its variables and, thus, returns the sum of the values stored in the table More...
 
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 operatorThe function projects a table over all its variables and, thus, returns the sum of the values stored in the table More...
 
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 operatorThe function projects a table over all its variables and, thus, returns the sum of the values stored in the table More...
 
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 operatorThe function projects a table over all its variables and, thus, returns the product of the values stored in the table More...
 
template<typename GUM_SCALAR >
GUM_SCALAR projectProductMultiDimArray (const MultiDimImplementation< GUM_SCALAR > *table, Instantiation *instantiation=0)
 a function for projecting a multiDimArray using a Product operatorThe function projects a table over all its variables and, thus, returns the product of the values stored in the table More...
 
template<typename GUM_SCALAR >
GUM_SCALAR * projectProductMultiDimArray4Pointers (const MultiDimArray< GUM_SCALAR * > *table, Instantiation *instantiation=0)
 a function for projecting a multiDimArray using a Product operatorThe function projects a table over all its variables and, thus, returns the product of the values stored in the table More...
 
template<typename GUM_SCALAR >
GUM_SCALAR * projectProductMultiDimArray4Pointers (const MultiDimImplementation< GUM_SCALAR * > *table, Instantiation *instantiation=0)
 a function for projecting a multiDimArray using a Product operatorThe function projects a table over all its variables and, thus, returns the product of the values stored in the table More...
 
Add MultiDims
template<typename T >
MultiDimArray< T > * add2MultiDimArrays (const MultiDimArray< T > *t1, const MultiDimArray< T > *t2)
 a specialized function for summing two multiDimArraysThe function produces a tensorial addition of t1 and t2, that is, if t1 and t2 are multiDimArrays over variables A,B,C,D and D,B,E respectively, function add2MultiDimArrays will return a multiDimArray T defined as T[A,B,C,D,E] = t1[A,B,C,D] + t2[D,B,E] for all A,B,C,D,E. More...
 
template<typename T >
MultiDimImplementation< T > * add2MultiDimArrays (const MultiDimImplementation< T > *t1, const MultiDimImplementation< T > *t2)
 a specialized function for summing two multiDimArraysThe function produces a tensorial addition of t1 and t2, that is, if t1 and t2 are multiDimArrays over variables A,B,C,D and D,B,E respectively, function add2MultiDimArrays will return a multiDimArray T defined as T[A,B,C,D,E] = t1[A,B,C,D] + t2[D,B,E] for all A,B,C,D,E. More...
 
template<typename T >
MultiDimArray< T *> * add2MultiDimArrays4Pointers (const MultiDimArray< T * > *t1, const MultiDimArray< T * > *t2)
 a specialized function for summing two multiDimArraysThe function produces a tensorial addition of t1 and t2, that is, if t1 and t2 are multiDimArrays over variables A,B,C,D and D,B,E respectively, function add2MultiDimArrays will return a multiDimArray T defined as T[A,B,C,D,E] = t1[A,B,C,D] + t2[D,B,E] for all A,B,C,D,E. More...
 
template<typename T >
MultiDimImplementation< T *> * add2MultiDimArrays4Pointers (const MultiDimImplementation< T * > *t1, const MultiDimImplementation< T * > *t2)
 a specialized function for summing two multiDimArraysThe function produces a tensorial addition of t1 and t2, that is, if t1 and t2 are multiDimArrays over variables A,B,C,D and D,B,E respectively, function add2MultiDimArrays will return a multiDimArray T defined as T[A,B,C,D,E] = t1[A,B,C,D] + t2[D,B,E] for all A,B,C,D,E. More...
 
template<typename T >
MultiDimFunctionGraph< T > * add2MultiDimFunctionGraphs (const MultiDimFunctionGraph< T > *t1, const MultiDimFunctionGraph< T > *t2)
 a specialized function for summing two multiDimArraysThe function produces a tensorial addition of t1 and t2, that is, if t1 and t2 are multiDimArrays over variables A,B,C,D and D,B,E respectively, function add2MultiDimArrays will return a multiDimArray T defined as T[A,B,C,D,E] = t1[A,B,C,D] + t2[D,B,E] for all A,B,C,D,E. More...
 
template<typename T >
MultiDimImplementation< T > * add2MultiDimFunctionGraphs (const MultiDimImplementation< T > *t1, const MultiDimImplementation< T > *t2)
 a specialized function for summing two multiDimArraysThe function produces a tensorial addition of t1 and t2, that is, if t1 and t2 are multiDimArrays over variables A,B,C,D and D,B,E respectively, function add2MultiDimArrays will return a multiDimArray T defined as T[A,B,C,D,E] = t1[A,B,C,D] + t2[D,B,E] for all A,B,C,D,E. More...
 
Substract MultiDims
template<typename T >
MultiDimArray< T > * subtract2MultiDimArrays (const MultiDimArray< T > *t1, const MultiDimArray< T > *t2)
 a specialized function for subtracting two multiDimArraysThe function produces a tensorial subtraction of t2 from t1, that is, if t1 and t2 are multiDimArrays over variables A,B,C,D and D,B,E respectively, function subtract2MultiDimArrays will return a multiDimArray T defined as T[A,B,C,D,E] = t1[A,B,C,D] - t2[D,B,E] for all A,B,C,D,E. More...
 
template<typename T >
MultiDimImplementation< T > * subtract2MultiDimArrays (const MultiDimImplementation< T > *t1, const MultiDimImplementation< T > *t2)
 a specialized function for subtracting two multiDimArraysThe function produces a tensorial subtraction of t2 from t1, that is, if t1 and t2 are multiDimArrays over variables A,B,C,D and D,B,E respectively, function subtract2MultiDimArrays will return a multiDimArray T defined as T[A,B,C,D,E] = t1[A,B,C,D] - t2[D,B,E] for all A,B,C,D,E. More...
 
template<typename T >
MultiDimArray< T *> * subtract2MultiDimArrays4Pointers (const MultiDimArray< T * > *t1, const MultiDimArray< T * > *t2)
 a specialized function for subtracting two multiDimArraysThe function produces a tensorial subtraction of t2 from t1, that is, if t1 and t2 are multiDimArrays over variables A,B,C,D and D,B,E respectively, function subtract2MultiDimArrays will return a multiDimArray T defined as T[A,B,C,D,E] = t1[A,B,C,D] - t2[D,B,E] for all A,B,C,D,E. More...
 
template<typename T >
MultiDimImplementation< T *> * subtract2MultiDimArrays4Pointers (const MultiDimImplementation< T * > *t1, const MultiDimImplementation< T * > *t2)
 a specialized function for subtracting two multiDimArraysThe function produces a tensorial subtraction of t2 from t1, that is, if t1 and t2 are multiDimArrays over variables A,B,C,D and D,B,E respectively, function subtract2MultiDimArrays will return a multiDimArray T defined as T[A,B,C,D,E] = t1[A,B,C,D] - t2[D,B,E] for all A,B,C,D,E. More...
 
template<typename T >
MultiDimFunctionGraph< T > * subtract2MultiDimFunctionGraphs (const MultiDimFunctionGraph< T > *t1, const MultiDimFunctionGraph< T > *t2)
 a specialized function for subtracting two multiDimArraysThe function produces a tensorial subtraction of t2 from t1, that is, if t1 and t2 are multiDimArrays over variables A,B,C,D and D,B,E respectively, function subtract2MultiDimArrays will return a multiDimArray T defined as T[A,B,C,D,E] = t1[A,B,C,D] - t2[D,B,E] for all A,B,C,D,E. More...
 
template<typename T >
MultiDimImplementation< T > * subtract2MultiDimFunctionGraphs (const MultiDimImplementation< T > *t1, const MultiDimImplementation< T > *t2)
 a specialized function for subtracting two multiDimArraysThe function produces a tensorial subtraction of t2 from t1, that is, if t1 and t2 are multiDimArrays over variables A,B,C,D and D,B,E respectively, function subtract2MultiDimArrays will return a multiDimArray T defined as T[A,B,C,D,E] = t1[A,B,C,D] - t2[D,B,E] for all A,B,C,D,E. More...
 
Multiply MultiDims
template<typename T >
MultiDimArray< T > * multiply2MultiDimArrays (const MultiDimArray< T > *t1, const MultiDimArray< T > *t2)
 a specialized function for multiplying two multiDimArraysThe function produces a tensorial product of t2 from t1, that is, if t1 and t2 are multiDimArrays over variables A,B,C,D and D,B,E respectively, function multiply2MultiDimArrays will return a multiDimArray T defined as T[A,B,C,D,E] = t1[A,B,C,D] * t2[D,B,E] for all A,B,C,D,E. More...
 
template<typename T >
MultiDimImplementation< T > * multiply2MultiDimArrays (const MultiDimImplementation< T > *t1, const MultiDimImplementation< T > *t2)
 a specialized function for multiplying two multiDimArraysThe function produces a tensorial product of t2 from t1, that is, if t1 and t2 are multiDimArrays over variables A,B,C,D and D,B,E respectively, function multiply2MultiDimArrays will return a multiDimArray T defined as T[A,B,C,D,E] = t1[A,B,C,D] * t2[D,B,E] for all A,B,C,D,E. More...
 
template<typename T >
MultiDimArray< T *> * multiply2MultiDimArrays4Pointers (const MultiDimArray< T * > *t1, const MultiDimArray< T * > *t2)
 a specialized function for multiplying two multiDimArraysThe function produces a tensorial product of t2 from t1, that is, if t1 and t2 are multiDimArrays over variables A,B,C,D and D,B,E respectively, function multiply2MultiDimArrays will return a multiDimArray T defined as T[A,B,C,D,E] = t1[A,B,C,D] * t2[D,B,E] for all A,B,C,D,E. More...
 
template<typename T >
MultiDimImplementation< T *> * multiply2MultiDimArrays4Pointers (const MultiDimImplementation< T * > *t1, const MultiDimImplementation< T * > *t2)
 a specialized function for multiplying two multiDimArraysThe function produces a tensorial product of t2 from t1, that is, if t1 and t2 are multiDimArrays over variables A,B,C,D and D,B,E respectively, function multiply2MultiDimArrays will return a multiDimArray T defined as T[A,B,C,D,E] = t1[A,B,C,D] * t2[D,B,E] for all A,B,C,D,E. More...
 
template<typename T >
MultiDimFunctionGraph< T > * multiply2MultiDimFunctionGraphs (const MultiDimFunctionGraph< T > *t1, const MultiDimFunctionGraph< T > *t2)
 a specialized function for multiplying two multiDimArraysThe function produces a tensorial product of t2 from t1, that is, if t1 and t2 are multiDimArrays over variables A,B,C,D and D,B,E respectively, function multiply2MultiDimArrays will return a multiDimArray T defined as T[A,B,C,D,E] = t1[A,B,C,D] * t2[D,B,E] for all A,B,C,D,E. More...
 
template<typename T >
MultiDimImplementation< T > * multiply2MultiDimFunctionGraphs (const MultiDimImplementation< T > *t1, const MultiDimImplementation< T > *t2)
 a specialized function for multiplying two multiDimArraysThe function produces a tensorial product of t2 from t1, that is, if t1 and t2 are multiDimArrays over variables A,B,C,D and D,B,E respectively, function multiply2MultiDimArrays will return a multiDimArray T defined as T[A,B,C,D,E] = t1[A,B,C,D] * t2[D,B,E] for all A,B,C,D,E. More...
 
Divide MultiDims
template<typename T >
MultiDimArray< T > * divide2MultiDimArrays (const MultiDimArray< T > *t1, const MultiDimArray< T > *t2)
 a specialized function for dividing two multiDimArraysThe function produces a tensorial division of t1 by t2, that is, if t1 and t2 are multiDimArrays over variables A,B,C,D and D,B,E respectively, function divide2MultiDimArrays will return a multiDimArray T defined as T[A,B,C,D,E] = t1[A,B,C,D] / t2[D,B,E] for all A,B,C,D,E. More...
 
template<typename T >
MultiDimImplementation< T > * divide2MultiDimArrays (const MultiDimImplementation< T > *t1, const MultiDimImplementation< T > *t2)
 a specialized function for dividing two multiDimArraysThe function produces a tensorial division of t1 by t2, that is, if t1 and t2 are multiDimArrays over variables A,B,C,D and D,B,E respectively, function divide2MultiDimArrays will return a multiDimArray T defined as T[A,B,C,D,E] = t1[A,B,C,D] / t2[D,B,E] for all A,B,C,D,E. More...
 
template<typename T >
MultiDimArray< T *> * divide2MultiDimArrays4Pointers (const MultiDimArray< T * > *t1, const MultiDimArray< T * > *t2)
 a specialized function for dividing two multiDimArraysThe function produces a tensorial division of t1 by t2, that is, if t1 and t2 are multiDimArrays over variables A,B,C,D and D,B,E respectively, function divide2MultiDimArrays will return a multiDimArray T defined as T[A,B,C,D,E] = t1[A,B,C,D] / t2[D,B,E] for all A,B,C,D,E. More...
 
template<typename T >
MultiDimImplementation< T *> * divide2MultiDimArrays4Pointers (const MultiDimImplementation< T * > *t1, const MultiDimImplementation< T * > *t2)
 a specialized function for dividing two multiDimArraysThe function produces a tensorial division of t1 by t2, that is, if t1 and t2 are multiDimArrays over variables A,B,C,D and D,B,E respectively, function divide2MultiDimArrays will return a multiDimArray T defined as T[A,B,C,D,E] = t1[A,B,C,D] / t2[D,B,E] for all A,B,C,D,E. More...
 
template<typename T >
MultiDimFunctionGraph< T > * divide2MultiDimFunctionGraphs (const MultiDimFunctionGraph< T > *t1, const MultiDimFunctionGraph< T > *t2)
 a specialized function for dividing two multiDimArraysThe function produces a tensorial division of t1 by t2, that is, if t1 and t2 are multiDimArrays over variables A,B,C,D and D,B,E respectively, function divide2MultiDimArrays will return a multiDimArray T defined as T[A,B,C,D,E] = t1[A,B,C,D] / t2[D,B,E] for all A,B,C,D,E. More...
 
template<typename T >
MultiDimImplementation< T > * divide2MultiDimFunctionGraphs (const MultiDimImplementation< T > *t1, const MultiDimImplementation< T > *t2)
 a specialized function for dividing two multiDimArraysThe function produces a tensorial division of t1 by t2, that is, if t1 and t2 are multiDimArrays over variables A,B,C,D and D,B,E respectively, function divide2MultiDimArrays will return a multiDimArray T defined as T[A,B,C,D,E] = t1[A,B,C,D] / t2[D,B,E] for all A,B,C,D,E. More...
 
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 maximalThe function produces a tensorial comparison between t1 and t2, that is, if t1 and t2 are multiDimFunctionGraphs over variables A,B,C,D and D,B,E respectively, function maximise2MultiDimFunctionGraphs will return a multiDimFunctionGraph T defined as T[A,B,C,D,E] = max( t1[A,B,C,D], t2[D,B,E] ) for all A,B,C,D,E. More...
 
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 maximalThe function produces a tensorial comparison between t1 and t2, that is, if t1 and t2 are multiDimFunctionGraphs over variables A,B,C,D and D,B,E respectively, function maximise2MultiDimFunctionGraphs will return a multiDimFunctionGraph T defined as T[A,B,C,D,E] = max( t1[A,B,C,D], t2[D,B,E] ) for all A,B,C,D,E. More...
 
Operators over MultiDim
template<typename T >
MultiDimImplementation< T > * operator+ (const MultiDimImplementation< T > &, const MultiDimImplementation< T > &)
 The function to be used to add two MultiDimImplementations. More...
 
template<typename T >
MultiDimImplementation< T > * operator- (const MultiDimImplementation< T > &, const MultiDimImplementation< T > &)
 The function to be used to subtract two MultiDimImplementations. More...
 
template<typename T >
MultiDimImplementation< T > * operator* (const MultiDimImplementation< T > &, const MultiDimImplementation< T > &)
 The function to be used to multiply two MultiDimImplementations. More...
 
template<typename T >
MultiDimImplementation< T > * operator/ (const MultiDimImplementation< T > &, const MultiDimImplementation< T > &)
 The function to be used to divide two MultiDimImplementations. More...
 
Project Max for MultiDim
template<typename GUM_SCALAR >
MultiDimArray< GUM_SCALAR > * projectMaxMultiDimArray (const MultiDimArray< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
 a specialized function for projecting a multiDimArray using a Max operatorThe function projects a table over the subset of its variables NOT IN the set of variables del_vars. More...
 
template<typename GUM_SCALAR >
MultiDimImplementation< GUM_SCALAR > * projectMaxMultiDimArray (const MultiDimImplementation< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
 a specialized function for projecting a multiDimArray using a Max operatorThe function projects a table over the subset of its variables NOT IN the set of variables del_vars. More...
 
template<typename GUM_SCALAR >
MultiDimArray< GUM_SCALAR *> * projectMaxMultiDimArray4Pointers (const MultiDimArray< GUM_SCALAR * > *table, const Set< const DiscreteVariable * > &del_vars)
 a specialized function for projecting a multiDimArray using a Max operatorThe function projects a table over the subset of its variables NOT IN the set of variables del_vars. More...
 
template<typename GUM_SCALAR >
MultiDimImplementation< GUM_SCALAR *> * projectMaxMultiDimArray4Pointers (const MultiDimImplementation< GUM_SCALAR * > *table, const Set< const DiscreteVariable * > &del_vars)
 a specialized function for projecting a multiDimArray using a Max operatorThe function projects a table over the subset of its variables NOT IN the set of variables del_vars. More...
 
Project Min for MultiDim
template<typename GUM_SCALAR >
MultiDimArray< GUM_SCALAR > * projectMinMultiDimArray (const MultiDimArray< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
 a specialized function for projecting a multiDimArray using a Min operator More...
 
template<typename GUM_SCALAR >
MultiDimImplementation< GUM_SCALAR > * projectMinMultiDimArray (const MultiDimImplementation< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
 a specialized function for projecting a multiDimArray using a Min operator More...
 
template<typename GUM_SCALAR >
MultiDimArray< GUM_SCALAR *> * projectMinMultiDimArray4Pointers (const MultiDimArray< GUM_SCALAR * > *table, const Set< const DiscreteVariable * > &del_vars)
 a specialized function for projecting a multiDimArray using a Min operator More...
 
template<typename GUM_SCALAR >
MultiDimImplementation< GUM_SCALAR *> * projectMinMultiDimArray4Pointers (const MultiDimImplementation< GUM_SCALAR * > *table, const Set< const DiscreteVariable * > &del_vars)
 a specialized function for projecting a multiDimArray using a Min operator More...
 
Project Sum for MultiDim
template<typename GUM_SCALAR >
MultiDimArray< GUM_SCALAR > * projectSumMultiDimArray (const MultiDimArray< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
 a specialized function for projecting a multiDimArray using a summation More...
 
template<typename GUM_SCALAR >
MultiDimImplementation< GUM_SCALAR > * projectSumMultiDimArray (const MultiDimImplementation< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
 a specialized function for projecting a multiDimArray using a summation More...
 
template<typename GUM_SCALAR >
MultiDimArray< GUM_SCALAR *> * projectSumMultiDimArray4Pointers (const MultiDimArray< GUM_SCALAR * > *table, const Set< const DiscreteVariable * > &del_vars)
 a specialized function for projecting a multiDimArray using a summation More...
 
template<typename GUM_SCALAR >
MultiDimImplementation< GUM_SCALAR *> * projectSumMultiDimArray4Pointers (const MultiDimImplementation< GUM_SCALAR * > *table, const Set< const DiscreteVariable * > &del_vars)
 a specialized function for projecting a multiDimArray using a summation More...
 
Project Product for MultiDim
template<typename GUM_SCALAR >
MultiDimArray< GUM_SCALAR > * projectProductMultiDimArray (const MultiDimArray< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
 a specialized function for projecting a multiDimArray using products More...
 
template<typename GUM_SCALAR >
MultiDimImplementation< GUM_SCALAR > * projectProductMultiDimArray (const MultiDimImplementation< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
 a specialized function for projecting a multiDimArray using products More...
 
template<typename GUM_SCALAR >
MultiDimArray< GUM_SCALAR *> * projectProductMultiDimArray4Pointers (const MultiDimArray< GUM_SCALAR * > *table, const Set< const DiscreteVariable * > &del_vars)
 a specialized function for projecting a multiDimArray using products More...
 
template<typename GUM_SCALAR >
MultiDimImplementation< GUM_SCALAR *> * projectProductMultiDimArray4Pointers (const MultiDimImplementation< GUM_SCALAR * > *table, const Set< const DiscreteVariable * > &del_vars)
 a specialized function for projecting a multiDimArray using products More...
 
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 More...
 
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 More...
 
Projectors For Function Graphs
template<typename GUM_SCALAR >
MultiDimFunctionGraph< GUM_SCALAR > * projectMaxMultiDimFunctionGraph (const MultiDimFunctionGraph< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
 a specialized function for projecting a multiDimFunctionGraph using a Max operator More...
 
template<typename GUM_SCALAR >
MultiDimImplementation< GUM_SCALAR > * projectMaxMultiDimFunctionGraph (const MultiDimImplementation< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
 a specialized function for projecting a multiDimFunctionGraph using a Max operator More...
 
template<typename GUM_SCALAR >
MultiDimFunctionGraph< GUM_SCALAR > * projectMinMultiDimFunctionGraph (const MultiDimFunctionGraph< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
 a specialized function for projecting a multiDimFunctionGraph using a Min operator More...
 
template<typename GUM_SCALAR >
MultiDimImplementation< GUM_SCALAR > * projectMinMultiDimFunctionGraph (const MultiDimImplementation< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
 a specialized function for projecting a multiDimFunctionGraph using a Min operator More...
 
template<typename GUM_SCALAR >
MultiDimFunctionGraph< GUM_SCALAR > * projectSumMultiDimFunctionGraph (const MultiDimFunctionGraph< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
 a specialized function for projecting a multiDimFunctionGraph using a summation More...
 
template<typename GUM_SCALAR >
MultiDimImplementation< GUM_SCALAR > * projectSumMultiDimFunctionGraph (const MultiDimImplementation< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
 a specialized function for projecting a multiDimFunctionGraph using a summation More...
 
template<typename GUM_SCALAR >
MultiDimFunctionGraph< GUM_SCALAR > * projectProductMultiDimFunctionGraph (const MultiDimFunctionGraph< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
 a specialized function for projecting a multiDimFunctionGraph using products More...
 
template<typename GUM_SCALAR >
MultiDimImplementation< GUM_SCALAR > * projectProductMultiDimFunctionGraph (const MultiDimImplementation< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
 a specialized function for projecting a multiDimFunctionGraph using products More...
 

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<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. More...
 
bool Memcmp (const void *const _in, const void *const _out, unsigned long size)
 Cross-platform replacement for memcmp. More...
 
void __atexit ()
 Used for debug purpose. More...
 

Detailed Description

Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.

the function to be used to partially instantiate a MultiDimDecorator

include the inlined functions if necessary

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

This library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library. If not, see http://www.gnu.org/licenses/.gum is the global namespace for all aGrUM entities

This library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library. If not, see http://www.gnu.org/licenses/.

Todo:
virtual for all functions that MAY be one day redefined in any derived class
Todo:
virtual for all functions that MAY be one day redefined in any derived class

This library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library. If not, see http://www.gnu.org/licenses/. class for LOGIT implementation as multiDim

Author
Pierre-Henri WUILLEMIN et Christophe GONZALES

Typedef Documentation

◆ HybridGibbsSampling

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

Definition at line 233 of file loopySamplingInference.h.

◆ HybridImportanceSampling

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

Definition at line 231 of file loopySamplingInference.h.

◆ HybridMonteCarloSampling

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

Definition at line 225 of file loopySamplingInference.h.

◆ HybridWeightedSampling

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

Definition at line 228 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 306 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 302 of file cliqueGraph.h.

◆ pair_iterator

Definition at line 54 of file fusionContext.h.

Enumeration Type Documentation

◆ BinTreeDir

enum gum::BinTreeDir : char
strong

The direction of a given edge in a binary tree.

Enumerator
LEFT_CHILD 
RIGHT_CHILD 
NO_PARENT 

Definition at line 37 of file binTreeNode.h.

◆ Complexity

enum 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 46 of file BNdistance.h.

◆ FactorySimulationAction

Enumerator
GoNorth 
GoEast 
GoSouth 
GoWest 
PickUp 
PutDown 
FillUp 

Definition at line 65 of file factorySimulator.h.

65  : Idx {
66  GoNorth = 0,
67  GoEast = 1,
68  GoSouth = 2,
69  GoWest = 3,
70  PickUp = 4,
71  PutDown = 5,
72  FillUp = 6
73  };

◆ FactorySimulationLandmark

Enumerator
HOME 
WORK 
THEATER 
CLUB 
Factory 

Definition at line 44 of file factorySimulator.h.

44  : Idx {
45  HOME = 0,
46  WORK = 1,
47  THEATER = 2,
48  CLUB = 3,
49  Factory = 4
50  };

◆ FactorySimulationLandmarkX

Enumerator
HOMEX 
WORKX 
THEATERX 
CLUBX 
STATIONX 

Definition at line 51 of file factorySimulator.h.

51  : Idx {
52  HOMEX = 0,
53  WORKX = 0,
54  THEATERX = 3,
55  CLUBX = 4,
56  STATIONX = 2
57  };

◆ FactorySimulationLandmarkY

Enumerator
HOMEY 
WORKY 
THEATERY 
CLUBY 
STATIONY 

Definition at line 58 of file factorySimulator.h.

58  : Idx {
59  HOMEY = 0,
60  WORKY = 4,
61  THEATERY = 0,
62  CLUBY = 4,
63  STATIONY = 1
64  };

◆ FindBarrenNodesType

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 potential. 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 potential. So, we can discard their potential 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 53 of file BayesNetInference.h.

53  {
54  FIND_NO_BARREN_NODES, // do not try to find barren nodes
55  FIND_BARREN_NODES // use a bottom-up algorithm to detect barren nodes
56  };

◆ FMDPfactory_state

enum 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 53 of file IfmdpFactory.h.

◆ LEARNERNAME

Enumerator
IMDDILEARNER 
ITILEARNER 

Definition at line 63 of file templateStrategy.h.

◆ RelevantPotentialsFinderType

type of algorithm for determining the relevant potentials 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 potentials 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_POTENTIALS 
DSEP_KOLLER_FRIEDMAN_2009 

Definition at line 44 of file relevantPotentialsFinderType.h.

44  {
45  FIND_ALL, // do not perform d-separation analysis
46  DSEP_BAYESBALL_NODES, // BayesBall requisite nodes -> potentials
47  DSEP_BAYESBALL_POTENTIALS, // BayesBall requisite potentials (directly)
48  DSEP_KOLLER_FRIEDMAN_2009 // Koller & Friedman 2009 requisite potentials
49  };

◆ TaxiSimulationAction

Enumerator
GoNorth 
GoEast 
GoSouth 
GoWest 
PickUp 
PutDown 
FillUp 

Definition at line 65 of file taxiSimulator.h.

65  : Idx {
66  GoNorth = 1,
67  GoEast = 2,
68  GoSouth = 3,
69  GoWest = 4,
70  PickUp = 5,
71  PutDown = 6,
72  FillUp = 7
73  };

◆ TaxiSimulationLandmark

Enumerator
HOME 
WORK 
THEATER 
CLUB 
TAXI 

Definition at line 44 of file taxiSimulator.h.

44  : Idx {
45  HOME = 0,
46  WORK = 1,
47  THEATER = 2,
48  CLUB = 3,
49  TAXI = 4
50  };

◆ TaxiSimulationLandmarkX

Enumerator
HOMEX 
WORKX 
THEATERX 
CLUBX 
STATIONX 

Definition at line 51 of file taxiSimulator.h.

51  : Idx {
52  HOMEX = 0,
53  WORKX = 0,
54  THEATERX = 3,
55  CLUBX = 4,
56  STATIONX = 2
57  };

◆ TaxiSimulationLandmarkY

Enumerator
HOMEY 
WORKY 
THEATERY 
CLUBY 
STATIONY 

Definition at line 58 of file taxiSimulator.h.

58  : Idx {
59  HOMEY = 0,
60  WORKY = 4,
61  THEATERY = 0,
62  CLUBY = 4,
63  STATIONY = 1
64  };

◆ TESTNAME

Enumerator
GTEST 
CHI2TEST 
LEASTSQUARETEST 

Definition at line 40 of file templateStrategy.h.

◆ VarType

enum gum::VarType : char
strong
Enumerator
Discretized 
Labelized 
Range 
Continuous 

Definition at line 41 of file variable.h.

Function Documentation

◆ ___initPotentialOperators()

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

Definition at line 41 of file multiDimDecorator_tpl.h.

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

41  {
42  static bool first = true;
43 
44  if (first) {
45  first = false;
46 
47  // register the operators that will be used by the decorator
48  Operators4MultiDimInitialize< GUM_SCALAR > op;
49  op.init();
50 
51  // register the projectors that will be used by the decorator
52  Projections4MultiDimInitialize< GUM_SCALAR > proj;
53  proj.init();
54 
55  // register the projectors that will be used by the decorator
56  CompleteProjections4MultiDimInitialize< GUM_SCALAR > comp_proj;
57  comp_proj.init();
58 
59  // register the partial instantiators that will be used by the decorator
60  PartialInstantiation4MultiDimInitialize< GUM_SCALAR > inst;
61  inst.init();
62  }
63  }
+ Here is the call graph for this function:

◆ build_node()

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

Definition at line 61 of file BayesNet_tpl.h.

References gum::BayesNet< GUM_SCALAR >::add(), GUM_ERROR, std::hasUniqueElts(), gum::BayesNet< GUM_SCALAR >::idFromName(), and split().

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

63  {
64  std::string name = node;
65  auto ds = domainSize;
66  std::vector< std::string > labels;
67 
68  // node like "n[5]"
69  auto posBrack = node.find('[');
70  if (posBrack != std::string::npos) {
71  if (*(node.rbegin()) != ']')
72  name = node; // a name with '[' inside but no ']' at the end
73  else {
74  name = node.substr(0, posBrack);
75  ds = static_cast< Size >(
76  std::stoi(node.substr(posBrack + 1, node.size() - posBrack - 2)));
77  }
78  }
79 
80  // node like "n{one|two|three}"
81  posBrack = node.find('{');
82  if (posBrack != std::string::npos) {
83  if (*(node.rbegin()) != '}')
84  name = node; // a name with '{' inside but no '}' at the end
85  else {
86  name = node.substr(0, posBrack);
87  labels = split(node.substr(posBrack + 1, node.size() - posBrack - 2), "|");
88  if (labels.size() < 2) {
89  GUM_ERROR(InvalidArgument, "Not enough labels in node " << node);
90  }
91  if (!hasUniqueElts(labels)) {
92  GUM_ERROR(InvalidArgument, "Duplicate labels in node " << node);
93  }
94  ds = static_cast< Size >(labels.size());
95  }
96  }
97 
98  if (ds == 0) {
99  GUM_ERROR(InvalidArgument, "No value for variable " << name << ".");
100  } else if (ds == 1) {
101  GUM_ERROR(InvalidArgument,
102  "Only one value for variable " << name
103  << " (2 at least are needed).");
104  }
105 
106  // now we add the node in the BN
107  NodeId idVar;
108  try {
109  idVar = bn.idFromName(name);
110  } catch (gum::NotFound&) {
111  if (labels.empty()) {
112  idVar = bn.add(RangeVariable(name, name, 0, ds - 1));
113  } else {
114  auto l = LabelizedVariable(name, name, 0);
115  for (const auto& label : labels) {
116  l.addLabel(label);
117  }
118  idVar = bn.add(l);
119  }
120  }
121 
122  return idVar;
123  }
bool hasUniqueElts(std::vector< T > const &x)
NodeId add(const DiscreteVariable &var)
Add a variable to the gum::BayesNet.
Definition: BayesNet_tpl.h:232
std::vector< std::string > split(const std::string &str, const std::string &delim)
Split str using the delimiter.
std::size_t Size
In aGrUM, hashed values are unsigned long int.
Definition: types.h:48
NodeId idFromName(const std::string &name) const final
Returns a variable&#39;s id given its name in the gum::BayesNet.
Definition: BayesNet_tpl.h:303
Size NodeId
Type for node ids.
Definition: graphElements.h:98
#define GUM_ERROR(type, msg)
Definition: exceptions.h:55
+ Here is the call graph for this function:
+ Here is the caller 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 &)  f 
)

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.

◆ func2str()

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

Definition at line 60 of file formula.cpp.

References GUM_ERROR.

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

60  {
61  switch (func) {
62  case FormulaPart::token_function::exp: {
63  return "exp";
64  }
65  case FormulaPart::token_function::log: {
66  return "log";
67  }
68  case FormulaPart::token_function::ln: {
69  return "ln";
70  }
71  case FormulaPart::token_function::pow: {
72  return "pow";
73  }
74  case FormulaPart::token_function::sqrt: {
75  return "sqrt";
76  }
77  case FormulaPart::token_function::nil: {
78  return "nil";
79  }
80  default: {
81  GUM_ERROR(OperationNotAllowed, "unknown function");
82  }
83  }
84  }
#define GUM_ERROR(type, msg)
Definition: exceptions.h:55
+ 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 41 of file MCBayesNetGenerator_tpl.h.

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

41  {
42  gum::Size maxMod = 0;
43 
44  for (auto node : bayesNet.nodes())
45  if (maxMod < bayesNet.variable(node).domainSize())
46  maxMod = bayesNet.variable(node).domainSize();
47 
48  return maxMod;
49  }
const DiscreteVariable & variable(NodeId id) const final
Returns a gum::DiscreteVariable given its gum::NodeId in the gum::BayesNet.
Definition: BayesNet_tpl.h:202
const NodeGraphPart & nodes() const
Returns a constant reference to the dag of this Bayes Net.
Definition: DAGmodel_inl.h:115
std::size_t Size
In aGrUM, hashed values are unsigned long int.
Definition: types.h:48
+ Here is the call graph for this function:

◆ LPNewmultiPotential()

template<typename GUM_SCALAR >
static INLINE Potential< GUM_SCALAR >* gum::LPNewmultiPotential ( const Potential< GUM_SCALAR > &  t1,
const Potential< GUM_SCALAR > &  t2 
)
static

Definition at line 49 of file lazyPropagation.h.

50  {
51  return new Potential< GUM_SCALAR >(t1 * t2);
52  }

◆ LPNewprojPotential()

template<typename GUM_SCALAR >
static INLINE Potential< GUM_SCALAR >* gum::LPNewprojPotential ( const Potential< GUM_SCALAR > &  t1,
const Set< const DiscreteVariable * > &  del_vars 
)
static

Definition at line 57 of file lazyPropagation.h.

References gum::Potential< GUM_SCALAR >::margSumOut().

58  {
59  return new Potential< GUM_SCALAR >(t1.margSumOut(del_vars));
60  }
+ Here is the call graph for this function:

◆ operator*()

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

Definition at line 489 of file formula_inl.h.

References gum::Formula::result(), and to_string().

489  {
490  return Formula(std::to_string(a.result() * b.result()));
491  }
std::string to_string(const Formula &f)
Definition: formula_inl.h:499
+ Here is the call graph for this function:

◆ operator+()

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

Definition at line 479 of file formula_inl.h.

References gum::Formula::result(), and to_string().

479  {
480  return Formula(std::to_string(a.result() + b.result()));
481  }
std::string to_string(const Formula &f)
Definition: formula_inl.h:499
+ Here is the call graph for this function:

◆ operator-() [1/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.

350  {
351  typename ListConstIterator< Val >::difference_type res = 0;
352 
353  for (ListConstIterator< Val > iter3 = iter2; iter1 != iter3; ++iter3, ++res) {}
354 
355  return res;
356  }

◆ operator-() [2/6]

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

Definition at line 474 of file formula_inl.h.

References gum::Formula::result(), and to_string().

474  {
475  return Formula(std::to_string(-1 * a.result()));
476  }
std::string to_string(const Formula &f)
Definition: formula_inl.h:499
+ Here is the call graph for this function:

◆ operator-() [3/6]

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

Definition at line 484 of file formula_inl.h.

References gum::Formula::result(), and to_string().

484  {
485  return Formula(std::to_string(a.result() - b.result()));
486  }
std::string to_string(const Formula &f)
Definition: formula_inl.h:499
+ Here is the call graph for this function:

◆ operator-() [4/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 965 of file list_tpl.h.

Referenced by gum::ListConstIterator< Val >::operator+().

966  {
967  typename ListConstIteratorSafe< Val >::difference_type res = 0;
968  ListConstIteratorSafe< Val > iter3{iter2};
969 
970  for (; iter1 != iter3; ++iter3, ++res) {}
971 
972  return res;
973  }
+ Here is the caller graph for this function:

◆ operator-() [5/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.

350  {
351  typename ListConstIterator< Val >::difference_type res = 0;
352 
353  for (ListConstIterator< Val > iter3 = iter2; iter1 != iter3; ++iter3, ++res) {}
354 
355  return res;
356  }

◆ operator-() [6/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 965 of file list_tpl.h.

Referenced by gum::ListConstIterator< Val >::operator+().

966  {
967  typename ListConstIteratorSafe< Val >::difference_type res = 0;
968  ListConstIteratorSafe< Val > iter3{iter2};
969 
970  for (; iter1 != iter3; ++iter3, ++res) {}
971 
972  return res;
973  }
+ Here is the caller graph for this function:

◆ operator/()

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

Definition at line 494 of file formula_inl.h.

References gum::Formula::result(), and to_string().

494  {
495  return Formula(std::to_string(a.result() / b.result()));
496  }
std::string to_string(const Formula &f)
Definition: formula_inl.h:499
+ Here is the call graph for this function:

◆ operator<<() [1/49]

std::ostream& gum::operator<< ( std::ostream &  s,
const Variable LDRV 
)

for friendly displaying the content of the variable

◆ operator<<() [2/49]

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

Display the node.

Friendly to display.

Definition at line 795 of file splay_tpl.h.

References gum::SplayBinaryNode< Element >::elt, gum::SplayBinaryNode< Element >::fd, and gum::SplayBinaryNode< Element >::fg.

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

◆ operator<<() [3/49]

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

Definition at line 342 of file heap_tpl.h.

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

343  {
344  stream << heap.toString();
345  return stream;
346  }
+ Here is the call graph for this function:

◆ operator<<() [4/49]

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

Definition at line 1389 of file priorityQueue_tpl.h.

References gum::PriorityQueueImplementation< Val, Priority, Cmp, Alloc, std::is_scalar< Val >::value >::toString().

1390  {
1391  stream << queue.toString();
1392  return stream;
1393  }
+ Here is the call graph for this function:

◆ operator<<() [5/49]

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

Display the tree.

Friendly to display.

Definition at line 809 of file splay_tpl.h.

References gum::SplayTree< Element >::root.

810  {
811  out << "|[";
812 
813  if (s.root) out << *s.root;
814 
815  out << "]|";
816 
817  return out;
818  }

◆ operator<<() [6/49]

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

an << operator for List

◆ operator<<() [7/49]

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

for friendly displaying the content of directed graphs

Definition at line 86 of file diGraph.cpp.

References gum::DiGraph::toString().

86  {
87  stream << g.toString();
88  return stream;
89  }
+ Here is the call graph for this function:

◆ operator<<() [8/49]

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 113 of file multiDimLogit_tpl.h.

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

114  {
115  return s << ag.toString();
116  }
+ Here is the call graph for this function:

◆ operator<<() [9/49]

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 118 of file multiDimNoisyAND_tpl.h.

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

119  {
120  return s << ag.toString();
121  }
+ Here is the call graph for this function:

◆ operator<<() [10/49]

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 120 of file multiDimNoisyORNet_tpl.h.

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

121  {
122  return s << ag.toString();
123  }
+ Here is the call graph for this function:

◆ operator<<() [11/49]

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 126 of file multiDimNoisyORCompound_tpl.h.

126  {
127  return s << ag.toString();
128  }

◆ operator<<() [12/49]

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

for friendly displaying the content of node set

Definition at line 127 of file nodeGraphPart.cpp.

127  {
128  stream << set.toString();
129  return stream;
130  }

◆ operator<<() [13/49]

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 113 of file multiDimLogit_tpl.h.

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

114  {
115  return s << ag.toString();
116  }
+ Here is the call graph for this function:

◆ operator<<() [14/49]

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 126 of file multiDimNoisyORCompound_tpl.h.

126  {
127  return s << ag.toString();
128  }

◆ operator<<() [15/49]

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 120 of file multiDimNoisyORNet_tpl.h.

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

121  {
122  return s << ag.toString();
123  }
+ Here is the call graph for this function:

◆ operator<<() [16/49]

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

Definition at line 137 of file multiDimImplementation_tpl.h.

138  {
139  array.add(v);
140  return array;
141  }

◆ operator<<() [17/49]

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 118 of file multiDimNoisyAND_tpl.h.

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

119  {
120  return s << ag.toString();
121  }
+ Here is the call graph for this function:

◆ operator<<() [18/49]

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

for friendly displaying the content of undirected graphs

Definition at line 154 of file undiGraph.cpp.

References gum::UndiGraph::toString().

154  {
155  stream << g.toString();
156  return stream;
157  }
+ Here is the call graph for this function:

◆ operator<<() [19/49]

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

for friendly displaying the content of the variable

◆ operator<<() [20/49]

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

for friendly displaying the content of an edge set

Definition at line 167 of file edgeGraphPart.cpp.

167  {
168  stream << set.toString();
169  return stream;
170  }

◆ operator<<() [21/49]

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

for friendly displaying the content of clique graphs

◆ operator<<() [22/49]

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

for friendly displaying the content of the variable

◆ operator<<() [23/49]

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

Necessary for the hashtable operator <<.

◆ operator<<() [24/49]

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

for friendly displaying the content of directed graphs

Definition at line 249 of file mixedGraph.cpp.

References gum::MixedGraph::toString().

249  {
250  stream << g.toString();
251  return stream;
252  }
+ Here is the call graph for this function:

◆ operator<<() [25/49]

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 385 of file IBayesNet_tpl.h.

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

386  {
387  output << bn.toString();
388  return output;
389  }
+ Here is the call graph for this function:

◆ operator<<() [26/49]

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 259 of file arcGraphPart.cpp.

259  {
260  stream << set.toString();
261  return stream;
262  }

◆ operator<<() [27/49]

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

Print information of the instantiation in the stream.

Definition at line 266 of file instantiation.cpp.

References gum::Instantiation::toString().

266  {
267  aStream << i.toString();
268  return aStream;
269  }
+ Here is the call graph for this function:

◆ operator<<() [28/49]

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

for friendly displaying the content of clique graphs

◆ operator<<() [29/49]

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

Definition at line 314 of file multiDimContainer_tpl.h.

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

315  {
316  out << array.toString();
317  return out;
318  }
+ Here is the call graph for this function:

◆ operator<<() [30/49]

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

Definition at line 342 of file heap_tpl.h.

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

343  {
344  stream << heap.toString();
345  return stream;
346  }
+ Here is the call graph for this function:

◆ operator<<() [31/49]

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 385 of file IBayesNet_tpl.h.

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

386  {
387  output << bn.toString();
388  return output;
389  }
+ Here is the call graph for this function:

◆ operator<<() [32/49]

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

to friendly display an edge

◆ operator<<() [33/49]

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

to friendly display an arc

◆ operator<<() [34/49]

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

Definition at line 502 of file formula_inl.h.

References gum::Formula::result().

502  {
503  os << f.result();
504  return os;
505  }
+ Here is the call graph for this function:

◆ operator<<() [35/49]

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

Definition at line 581 of file potential_tpl.h.

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

582  {
583  out << array.toString();
584  return out;
585  }
+ Here is the call graph for this function:

◆ operator<<() [36/49]

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 605 of file BayesNet_tpl.h.

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

Referenced by gum::DiscreteVariable::DiscreteVariable(), and gum::MultiDimInterface::~MultiDimInterface().

606  {
607  output << bn.toString();
608  return output;
609  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ operator<<() [37/49]

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

Definition at line 618 of file sequence_tpl.h.

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

619  {
620  stream << seq.toString();
621  return stream;
622  }
+ Here is the call graph for this function:

◆ operator<<() [38/49]

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 605 of file BayesNet_tpl.h.

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

Referenced by gum::DiscreteVariable::DiscreteVariable(), and gum::MultiDimInterface::~MultiDimInterface().

606  {
607  output << bn.toString();
608  return output;
609  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ operator<<() [39/49]

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

Definition at line 679 of file multiPriorityQueue_tpl.h.

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

680  {
681  stream << queue.toString();
682  return stream;
683  }
+ Here is the call graph for this function:

◆ operator<<() [40/49]

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

Display the node.

Friendly to display.

Definition at line 795 of file splay_tpl.h.

References gum::SplayBinaryNode< Element >::elt, gum::SplayBinaryNode< Element >::fd, and gum::SplayBinaryNode< Element >::fg.

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

◆ operator<<() [41/49]

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

Print information of the SetInst in the stream.

◆ operator<<() [42/49]

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<<() [43/49]

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

Definition at line 1018 of file sequence_tpl.h.

References gum::SequenceIteratorSafe< Key >::__setPos(), gum::SequenceImplementation< Key, Alloc, Gen >::resize(), and gum::SequenceImplementation< Key, Alloc, Gen >::toString().

1019  {
1020  stream << seq.toString();
1021  return stream;
1022  }
+ Here is the call graph for this function:

◆ operator<<() [44/49]

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

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

Definition at line 1189 of file sequence_tpl.h.

References gum::SequenceImplementation< Key, Alloc, std::is_scalar< Key >::value >::toString().

Referenced by gum::SequenceImplementation< gum::prm::PRMClassElement< double > *, std::allocator< gum::prm::PRMClassElement< double > *>, std::is_scalar< gum::prm::PRMClassElement< double > *>::value >::operator=().

1190  {
1191  stream << seq.toString();
1192  return stream;
1193  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ operator<<() [45/49]

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

A << operator for HashTableList.

Definition at line 829 of file set_tpl.h.

829  {
830  stream << set.toString();
831  return stream;
832  }

◆ operator<<() [46/49]

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

Definition at line 1389 of file priorityQueue_tpl.h.

References gum::PriorityQueueImplementation< Val, Priority, Cmp, Alloc, std::is_scalar< Val >::value >::toString().

1390  {
1391  stream << queue.toString();
1392  return stream;
1393  }
+ Here is the call graph for this function:

◆ operator<<() [47/49]

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

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

Definition at line 1189 of file sequence_tpl.h.

References gum::SequenceImplementation< Key, Alloc, std::is_scalar< Key >::value >::toString().

Referenced by gum::SequenceImplementation< gum::prm::PRMClassElement< double > *, std::allocator< gum::prm::PRMClassElement< double > *>, std::is_scalar< gum::prm::PRMClassElement< double > *>::value >::operator=().

1190  {
1191  stream << seq.toString();
1192  return stream;
1193  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ operator<<() [48/49]

template<typename T1 , typename T2 , typename Alloc >
std::ostream & gum::operator<< ( std::ostream &  stream,
const Bijection< T1, T2, Alloc > &  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.
AllocThe allocator used for allocating memory.
Returns
The stream in which the gum::Bijection is displayed.

Definition at line 1249 of file bijection_tpl.h.

References gum::BijectionImplementation< T1, T2, Alloc, std::is_scalar< T1 >::value &&std::is_scalar< T2 >::value >::toString().

1250  {
1251  stream << b.toString();
1252  return stream;
1253  }
+ Here is the call graph for this function:

◆ operator<<() [49/49]

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

Definition at line 2125 of file list_tpl.h.

2125  {
2126  stream << list.toString();
2127  return stream;
2128  }

◆ 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 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.

◆ partialInstantiation() [2/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.

◆ 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 98 of file partialInstantiation4MultiDim_tpl.h.

References partialInstantiationMultiDimArray().

98  {
99  static bool first_init = true;
100 
101  if (first_init) {
102  first_init = false;
103 
104  std::string MultiDimArrayString("MultiDimArray");
105  std::string MultiDimDecisionDiagramString("MultiDimDecisionDiagram");
106  std::string BaseNameString("MultiDimImplementation");
107 
108  // register base functions for multiDimArrays
109  registerPartialInstantiation< GUM_SCALAR >(
110  "i", MultiDimArrayString, &partialInstantiationMultiDimArray);
111 
112  // register default basename functions
113  registerPartialInstantiation< GUM_SCALAR >(
114  "i", BaseNameString, &partialInstantiationMultiDimImplementation);
115  }
116  }
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.
+ Here is the call 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 120 of file partialInstantiation4MultiDim_tpl.h.

References partialInstantiationMultiDimArray4Pointers().

120  {
121  static bool first_init = true;
122 
123  if (first_init) {
124  first_init = false;
125 
126  std::string MultiDimArrayString("MultiDimArray");
127  std::string BaseNameString("MultiDimImplementation");
128 
129  // register base functions for multiDimArrays
130  registerPartialInstantiation< GUM_SCALAR* >(
131  "i", MultiDimArrayString, &partialInstantiationMultiDimArray4Pointers);
132 
133  // register default basename functions
134  registerPartialInstantiation< GUM_SCALAR* >(
135  "i",
136  BaseNameString,
137  &partialInstantiationMultiDimImplementation4Pointers);
138  }
139  }
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.
+ Here is the call 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.

◆ print_output()

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

Definition at line 52 of file formula.cpp.

52  {
53  std::cout << "Output: ";
54  for (const auto& elt : v) {
55  std::cout << elt.str() << " ";
56  }
57  std::cout << std::endl;
58  }

◆ print_stack()

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

Definition at line 36 of file formula.cpp.

36  {
37  std::cout << std::endl;
38  std::list< FormulaPart > l;
39  while (!s.empty()) {
40  l.push_front(s.top());
41  s.pop();
42  }
43 
44  std::cout << "Stack: ";
45  for (const auto& elt : l) {
46  std::cout << elt.str() << " ";
47  }
48  std::cout << std::endl;
49  }

◆ 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 &)  f 
)

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.

◆ projectMax() [1/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::Potential< GUM_SCALAR >::margMaxIn(), gum::Potential< GUM_SCALAR >::margMaxOut(), and gum::Potential< GUM_SCALAR >::max().

+ Here is the caller graph for this function:

◆ projectMax() [2/2]

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

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

◆ projectMaxMultiDimFunctionGraph() [1/2]

template<typename GUM_SCALAR >
MultiDimFunctionGraph< GUM_SCALAR >* gum::projectMaxMultiDimFunctionGraph ( const MultiDimFunctionGraph< GUM_SCALAR > *  table,
const Set< const DiscreteVariable * > &  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 Set< const DiscreteVariable * > &  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 >
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::Potential< GUM_SCALAR >::margMinIn(), gum::Potential< GUM_SCALAR >::margMinOut(), and gum::Potential< GUM_SCALAR >::min().

+ Here is the caller graph for this function:

◆ projectMin() [2/2]

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

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

◆ projectMinMultiDimArray() [1/2]

template<typename GUM_SCALAR >
MultiDimArray< GUM_SCALAR >* gum::projectMinMultiDimArray ( const MultiDimArray< GUM_SCALAR > *  table,
const Set< const DiscreteVariable * > &  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 Set< const DiscreteVariable * > &  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 Set< const DiscreteVariable * > &  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 Set< const DiscreteVariable * > &  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 Set< const DiscreteVariable * > &  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 Set< const DiscreteVariable * > &  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 >
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::Potential< GUM_SCALAR >::margProdIn(), gum::Potential< GUM_SCALAR >::margProdOut(), and gum::Potential< GUM_SCALAR >::product().

+ Here is the caller graph for this function:

◆ projectProduct() [2/2]

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

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

◆ projectProductMultiDimArray() [1/2]

template<typename GUM_SCALAR >
MultiDimArray< GUM_SCALAR >* gum::projectProductMultiDimArray ( const MultiDimArray< GUM_SCALAR > *  table,
const Set< const DiscreteVariable * > &  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 Set< const DiscreteVariable * > &  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 Set< const DiscreteVariable * > &  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 Set< const DiscreteVariable * > &  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 Set< const DiscreteVariable * > &  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 Set< const DiscreteVariable * > &  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 >
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::Potential< GUM_SCALAR >::margSumIn(), gum::Potential< GUM_SCALAR >::margSumOut(), and gum::Potential< GUM_SCALAR >::sum().

+ Here is the caller graph for this function:

◆ projectSum() [2/2]

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

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

◆ projectSumMultiDimArray() [1/2]

template<typename GUM_SCALAR >
MultiDimArray< GUM_SCALAR >* gum::projectSumMultiDimArray ( const MultiDimArray< GUM_SCALAR > *  table,
const Set< const DiscreteVariable * > &  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 Set< const DiscreteVariable * > &  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 Set< const DiscreteVariable * > &  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 Set< const DiscreteVariable * > &  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 Set< const DiscreteVariable * > &  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 Set< const DiscreteVariable * > &  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.

◆ 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.

◆ 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 >
static INLINE void gum::removeInfo ( const SplayBinaryNode< Element > *  e,
HashTable< Element, SplayBinaryNode< Element > * > &  addr 
)
static

Definition at line 660 of file splay_tpl.h.

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

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

661  {
662  GUM_ASSERT(addr.exists(e->getElement()));
663  addr.erase(e->getElement());
664 
665  if (e->getFg()) removeInfo(e->getFg(), addr);
666 
667  if (e->getFd()) removeInfo(e->getFd(), addr);
668  }
static INLINE void removeInfo(const SplayBinaryNode< Element > *e, HashTable< Element, SplayBinaryNode< Element > * > &addr)
Definition: splay_tpl.h:660
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SSNewmultiPotential()

template<typename GUM_SCALAR >
static INLINE Potential< GUM_SCALAR >* gum::SSNewmultiPotential ( const Potential< GUM_SCALAR > &  t1,
const Potential< GUM_SCALAR > &  t2 
)
static

Definition at line 46 of file ShaferShenoyInference.h.

47  {
48  return new Potential< GUM_SCALAR >(t1 * t2);
49  }

◆ SSNewprojPotential()

template<typename GUM_SCALAR >
static INLINE Potential< GUM_SCALAR >* gum::SSNewprojPotential ( const Potential< GUM_SCALAR > &  t1,
const Set< const DiscreteVariable * > &  del_vars 
)
static

Definition at line 54 of file ShaferShenoyInference.h.

References gum::Potential< GUM_SCALAR >::margSumOut().

55  {
56  return new Potential< GUM_SCALAR >(t1.margSumOut(del_vars));
57  }
+ Here is the call graph for this function:

◆ to_string()

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

Definition at line 499 of file formula_inl.h.

References gum::Formula::result().

Referenced by gum::prm::PRMFormAttribute< GUM_SCALAR >::copyCpf(), operator*(), operator+(), operator-(), operator/(), gum::O3prmBNReader< GUM_SCALAR >::proceed(), gum::prm::PRMFactory< GUM_SCALAR >::setCPFByRule(), and gum::credal::lp::LpCol::toString().

499 { return std::to_string(f.result()); }
std::string to_string(const Formula &f)
Definition: formula_inl.h:499
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ VENewmultiPotential()

template<typename GUM_SCALAR >
static INLINE Potential< GUM_SCALAR >* gum::VENewmultiPotential ( const Potential< GUM_SCALAR > &  t1,
const Potential< GUM_SCALAR > &  t2 
)
static

Definition at line 48 of file variableElimination.h.

49  {
50  return new Potential< GUM_SCALAR >(t1 * t2);
51  }

◆ VENewprojPotential()

template<typename GUM_SCALAR >
static INLINE Potential< GUM_SCALAR >* gum::VENewprojPotential ( const Potential< GUM_SCALAR > &  t1,
const Set< const DiscreteVariable * > &  del_vars 
)
static

Definition at line 56 of file variableElimination.h.

References gum::Potential< GUM_SCALAR >::margSumOut().

57  {
58  return new Potential< GUM_SCALAR >(t1.margSumOut(del_vars));
59  }
+ Here is the call graph for this function:

Variable Documentation

◆ VariableLog2ParamComplexityCTable

const double gum::VariableLog2ParamComplexityCTable

Definition at line 38 of file variableLog2ParamComplexity.cpp.

◆ VariableLog2ParamComplexityCTableNSize

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

Definition at line 51 of file variableLog2ParamComplexity.h.

◆ VariableLog2ParamComplexityCTableRSize

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

Definition at line 48 of file variableLog2ParamComplexity.h.