bpp-core3  3.0.0
Operator.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_NUMERIC_FUNCTION_OPERATORS_OPERATOR_H
6 #define BPP_NUMERIC_FUNCTION_OPERATORS_OPERATOR_H
7 
8 #include <string>
9 
10 #include "../../../Clonable.h"
11 
12 namespace bpp
13 {
19 class Operator :
20  public virtual Clonable
21 {
22 public:
23  virtual ~Operator() {}
24 
25  virtual double getValue() const = 0;
26 
27  virtual double getFirstOrderDerivative(const std::string& variable) const = 0;
28 
29  virtual double getSecondOrderDerivative(const std::string& variable) const = 0;
30 
31  virtual std::string output() const = 0;
32 };
33 } // end of namespace bpp.
34 #endif // BPP_NUMERIC_FUNCTION_OPERATORS_OPERATOR_H
virtual double getValue() const =0
virtual std::string output() const =0
virtual double getSecondOrderDerivative(const std::string &variable) const =0
The Clonable interface (allow an object to be cloned).
Definition: Clonable.h:63
virtual double getFirstOrderDerivative(const std::string &variable) const =0
Interface of operator for numerical computation.
Definition: Operator.h:19
virtual ~Operator()
Definition: Operator.h:23