bpp-phyl3  3.0.0
NNISearchable.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: The Bio++ Development Group
2 //
3 // SPDX-License-Identifier: CECILL-2.1
4 
5 #ifndef BPP_PHYL_TREE_NNISEARCHABLE_H
6 #define BPP_PHYL_TREE_NNISEARCHABLE_H
7 
8 
9 #include "Node.h"
10 #include "TopologySearch.h"
11 #include "TreeTemplate.h"
12 
13 namespace bpp
14 {
61  public TopologyListener,
62  public virtual Clonable
63 {
64 public:
66  virtual ~NNISearchable() {}
67 
68  virtual NNISearchable* clone() const = 0;
69 
70 public:
83  virtual double testNNI(int nodeId) const = 0;
84 
91  virtual void doNNI(int nodeId) = 0;
92 
98  virtual const Tree& topology() const = 0;
99 
105  virtual double getTopologyValue() const = 0;
106 };
107 } // end of namespace bpp.
108 #endif // BPP_PHYL_TREE_NNISEARCHABLE_H
Interface for Nearest Neighbor Interchanges algorithms.
Definition: NNISearchable.h:63
virtual double getTopologyValue() const =0
Get the current score of this NNISearchable object.
virtual void doNNI(int nodeId)=0
Perform a NNI movement.
virtual const Tree & topology() const =0
Get the tree associated to this NNISearchable object.
virtual NNISearchable * clone() const =0
virtual double testNNI(int nodeId) const =0
Send the score of a NNI movement, without performing it.
virtual ~NNISearchable()
Definition: NNISearchable.h:66
Implement this interface to be notified when the topology of a tree has changed during topology searc...
Interface for phylogenetic tree objects.
Definition: Tree.h:115
Defines the basic types of data flow nodes.