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
13namespace bpp
14{
61 public TopologyListener,
62 public virtual Clonable
63{
64public:
66 virtual ~NNISearchable() {}
67
68 virtual NNISearchable* clone() const = 0;
69
70public:
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 const Tree & topology() const =0
Get the tree associated to this NNISearchable object.
virtual double getTopologyValue() const =0
Get the current score of this NNISearchable object.
virtual void doNNI(int nodeId)=0
Perform a NNI movement.
virtual double testNNI(int nodeId) const =0
Send the score of a NNI movement, without performing it.
virtual ~NNISearchable()
Definition: NNISearchable.h:66
virtual NNISearchable * clone() const =0
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.