aGrUM
3.2.0
a C++ library for (probabilistic) graphical models
Toggle main menu visibility
unconstrainedTriangulation.cpp
Go to the documentation of this file.
1
/****************************************************************************
2
* This file is part of the aGrUM/pyAgrum library. *
3
* *
4
* Copyright (c) 2005-2026 by *
5
* - Pierre-Henri WUILLEMIN(_at_LIP6) *
6
* - Christophe GONZALES(_at_AMU) *
7
* *
8
* The aGrUM/pyAgrum library is free software; you can redistribute it *
9
* and/or modify it under the terms of either : *
10
* *
11
* - the GNU Lesser General Public License as published by *
12
* the Free Software Foundation, either version 3 of the License, *
13
* or (at your option) any later version, *
14
* - the MIT license (MIT), *
15
* - or both in dual license, as here. *
16
* *
17
* (see https://agrum.gitlab.io/articles/dual-licenses-lgplv3mit.html) *
18
* *
19
* This aGrUM/pyAgrum library is distributed in the hope that it will be *
20
* useful, but WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, *
21
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES MERCHANTABILITY or FITNESS *
22
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE *
23
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *
24
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, *
25
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR *
26
* OTHER DEALINGS IN THE SOFTWARE. *
27
* *
28
* See LICENCES for more details. *
29
* *
30
* SPDX-FileCopyrightText: Copyright 2005-2026 *
31
* - Pierre-Henri WUILLEMIN(_at_LIP6) *
32
* - Christophe GONZALES(_at_AMU) *
33
* SPDX-License-Identifier: LGPL-3.0-or-later OR MIT *
34
* *
35
* Contact : info_at_agrum_dot_org *
36
* homepage : http://agrum.gitlab.io *
37
* gitlab : https://gitlab.com/agrumery/agrum *
38
* *
39
****************************************************************************/
40
41
48
49
#include <
agrum/agrum.h
>
50
51
#include <
agrum/base/graphs/algorithms/triangulations/eliminationStrategies/unconstrainedEliminationSequenceStrategy.h
>
52
#include <
agrum/base/graphs/algorithms/triangulations/unconstrainedTriangulation.h
>
53
54
namespace
gum
{
55
56
// default constructor
57
UnconstrainedTriangulation::UnconstrainedTriangulation
(
58
const
UnconstrainedEliminationSequenceStrategy
& elimSeq,
59
const
JunctionTreeStrategy
& JTStrategy,
60
bool
minimality) :
StaticTriangulation
(elimSeq, JTStrategy, minimality) {
61
// for debugging purposes
62
GUM_CONSTRUCTOR(
UnconstrainedTriangulation
);
63
}
64
65
// constructor with a given graph
66
UnconstrainedTriangulation::UnconstrainedTriangulation
(
67
const
UndiGraph
* theGraph,
68
const
NodeProperty< Size >
* domsizes,
69
const
UnconstrainedEliminationSequenceStrategy
& elimSeq,
70
const
JunctionTreeStrategy
& JTStrategy,
71
bool
minimality) :
StaticTriangulation
(theGraph, domsizes, elimSeq, JTStrategy, minimality) {
72
// for debugging purposes
73
GUM_CONSTRUCTOR(
UnconstrainedTriangulation
);
74
}
75
77
UnconstrainedTriangulation::UnconstrainedTriangulation
(
const
UnconstrainedTriangulation
& from) :
78
StaticTriangulation
(from) {
// for debugging purposes
79
GUM_CONS_CPY(
UnconstrainedTriangulation
);
80
}
81
83
UnconstrainedTriangulation::UnconstrainedTriangulation
(
UnconstrainedTriangulation
&& from) :
84
StaticTriangulation
(
std
::move(from)) {
85
// for debugging purposes
86
GUM_CONS_MOV(
UnconstrainedTriangulation
);
87
}
88
90
UnconstrainedTriangulation::~UnconstrainedTriangulation
() {
91
// for debugging purposes
92
GUM_DESTRUCTOR(
UnconstrainedTriangulation
);
93
}
94
95
}
/* namespace gum */
agrum.h
gum::JunctionTreeStrategy
Base Class for all the algorithms producing a junction given a set of cliques/subcliques resulting fr...
Definition
junctionTreeStrategy.h:66
gum::StaticTriangulation::StaticTriangulation
StaticTriangulation(const EliminationSequenceStrategy &elimSeq, const JunctionTreeStrategy &JTStrategy, bool minimality=false)
default constructor: without any graph
Definition
staticTriangulation.cpp:86
gum::UnconstrainedEliminationSequenceStrategy
The base class for all elimination sequence algorithms that require only the graph to be triangulated...
Definition
unconstrainedEliminationSequenceStrategy.h:80
gum::UnconstrainedTriangulation::UnconstrainedTriangulation
UnconstrainedTriangulation(const UnconstrainedEliminationSequenceStrategy &elimSeq, const JunctionTreeStrategy &JTStrategy, bool minimality=false)
default constructor
Definition
unconstrainedTriangulation.cpp:57
gum::UnconstrainedTriangulation::~UnconstrainedTriangulation
~UnconstrainedTriangulation() override
destructor
Definition
unconstrainedTriangulation.cpp:90
gum::UndiGraph
Base class for undirected graphs.
Definition
undiGraph.h:130
gum::NodeProperty
HashTable< NodeId, VAL > NodeProperty
Property on graph elements.
Definition
graphElements.h:407
gum
gum is the global namespace for all aGrUM entities
Definition
agrum.h:46
std
STL namespace.
unconstrainedEliminationSequenceStrategy.h
Base Class for all elimination sequence algorithms that require only the graph to be triangulated and...
unconstrainedTriangulation.h
base class for graph triangulations without constraints on nodes elimination ordering.
aGrUM
3.2.0
© PHW&CG&others - 2022
DoXyGeN 1.18.0