aGrUM  0.14.2
multiDimFunctionGraphProjector.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (C) 2005 by Pierre-Henri WUILLEMIN et Christophe GONZALES *
3  * {prenom.nom}_at_lip6.fr *
4  * *
5  * This program is free software; you can redistribute it and/or modify *
6  * it under the terms of the GNU General Public License as published by *
7  * the Free Software Foundation; either version 2 of the License, or *
8  * (at your option) any later version. *
9  * *
10  * This program is distributed in the hope that it will be useful, *
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13  * GNU General Public License for more details. *
14  * *
15  * You should have received a copy of the GNU General Public License *
16  * along with this program; if not, write to the *
17  * Free Software Foundation, Inc., *
18  * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
19  ****************************************************************************/
28 #ifndef GUM_MULTI_DIM_FUNCTION_GRAPH_PROJECTOR_H
29 #define GUM_MULTI_DIM_FUNCTION_GRAPH_PROJECTOR_H
30 
31 #include <functional>
32 
35 
36 namespace gum {
37 
38  // clang-format off
46  // clang-format on
47  template < typename GUM_SCALAR,
48  template < typename >
49  class FUNCTOR,
50  template < typename > class TerminalNodePolicy =
51  ExactTerminalNodePolicy >
53  public:
54  // ============================================================================
56  // ============================================================================
58 
64  const Set< const DiscreteVariable* >& delVars,
65  const GUM_SCALAR neutral);
66 
71 
73  // ============================================================================
75  // ============================================================================
77 
83 
85 
86  private:
89 
92 
95 
97  const FUNCTOR< GUM_SCALAR > __function;
98 
100  const GUM_SCALAR __neutral;
101  };
102 
103 #ifndef GUM_NO_EXTERN_TEMPLATE_CLASS
105 #endif
106 
107 } // namespace gum
108 
110 
111 #endif // GUM_MULTI_DIM_FUNCTION_GRAPH_PROJECTOR_H
MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy > * __rd
The resulting function graph.
Headers of the ExactTerminalNodePolicy.
const MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy > * __src
One of the two function graphs used for the Projection.
gum is the global namespace for all aGrUM entities
Definition: agrum.h:25
const FUNCTOR< GUM_SCALAR > __function
The function to be performed on the leaves.
Representation of a setA Set is a structure that contains arbitrary elements.
Definition: set.h:162
MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy > * project()
Computes and builds the Function Graph that is the result of the Projection.
const GUM_SCALAR __neutral
The function to be performed on the leaves.
Class implementingting a function graph.
Headers of MultiDimFunctionGraph.
const Set< const DiscreteVariable *> & __delVars
The list of variables on which the projection is performed.
MultiDimFunctionGraphProjector(const MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy > *src, const Set< const DiscreteVariable * > &delVars, const GUM_SCALAR neutral)
Default constructor.
Class used to perform Function Graph projections.
Class used to compute the projection of a function graph.