A toolkit for working with phylogenetic data.
v0.20.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
function/tree_set.hpp
Go to the documentation of this file.
1 #ifndef GENESIS_TREE_FUNCTION_TREE_SET_H_
2 #define GENESIS_TREE_FUNCTION_TREE_SET_H_
3 
4 /*
5  Genesis - A toolkit for working with phylogenetic data.
6  Copyright (C) 2014-2018 Lucas Czech and HITS gGmbH
7 
8  This program is free software: you can redistribute it and/or modify
9  it under the terms of the GNU General Public License as published by
10  the Free Software Foundation, either version 3 of the License, or
11  (at your option) any later version.
12 
13  This program is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License
19  along with this program. If not, see <http://www.gnu.org/licenses/>.
20 
21  Contact:
22  Lucas Czech <lucas.czech@h-its.org>
23  Exelixis Lab, Heidelberg Institute for Theoretical Studies
24  Schloss-Wolfsbrunnenweg 35, D-69118 Heidelberg, Germany
25 */
26 
34 #include <functional>
35 
36 namespace genesis {
37 namespace tree {
38 
39 // =================================================================================================
40 // Forward Declarations
41 // =================================================================================================
42 
43 class Tree;
44 class TreeNode;
45 class TreeEdge;
46 class TreeSet;
47 
48 // =================================================================================================
49 // Tree Set Functions
50 // =================================================================================================
51 
56 Tree * find_tree ( TreeSet & tset, std::string const& name);
57 
62 Tree const* find_tree ( TreeSet const& tset, std::string const& name);
63 
64 // =================================================================================================
65 // Comparators
66 // =================================================================================================
67 
73 bool all_equal(
74  TreeSet const& tset,
75  std::function<bool( TreeNode const&, TreeNode const& )> node_comparator,
76  std::function<bool( TreeEdge const&, TreeEdge const& )> edge_comparator
77 );
78 
79 // /**
80 // * @brief Compare whether all Tree%s in a TreeSet are equal using their default comparision
81 // * operators for nodes and edges.
82 // */
83 // bool all_equal( TreeSet const& tset );
84 
88 bool all_identical_topology( TreeSet const& tset );
89 
90 } // namespace tree
91 } // namespace genesis
92 
93 #endif // include guard
Tree * find_tree(TreeSet &tset, std::string const &name)
Get the first Tree in a TreeSet that is stored with a given name, or nullptr if not found...
bool all_identical_topology(TreeSet const &tset)
Compare whether all Trees in a TreeSet are equal using their default comparision operators for nodes ...
bool all_equal(TreeSet const &tset, std::function< bool(TreeNode const &, TreeNode const &)> node_comparator, std::function< bool(TreeEdge const &, TreeEdge const &)> edge_comparator)
Compare whether all Trees in a TreeSet are equal using a given comparator functional.