Biorbd
Equation.h
1 #ifndef BIORBD_UTILS_EQUATION_H
2 #define BIORBD_UTILS_EQUATION_H
3 
4 #include <vector>
5 #include <map>
6 #include "biorbdConfig.h"
7 #include "Utils/String.h"
8 
9 namespace biorbd {
10 namespace utils {
11 
15 class BIORBD_API Equation : public biorbd::utils::String
16 {
17 public:
21  Equation();
22 
27  Equation(const char *string);
28 
33  Equation(const biorbd::utils::String &string);
34 
39  Equation(const std::basic_string<char> &string);
40 
47  static std::vector<biorbd::utils::Equation> splitIntoEquation(
49  const std::map<biorbd::utils::Equation, double>& variables);
50 
56  static double evaluateEquation(
57  std::vector<biorbd::utils::Equation> wholeEq);
58 
64  static double evaluateEquation(
65  biorbd::utils::Equation wholeEq);
66 
73  static double evaluateEquation(
75  const std::map<biorbd::utils::Equation, double>& variables);
76 
86  static void replaceCste(
87  std::vector<biorbd::utils::Equation> &eq);
88 
94  static void replaceVar(
96  const std::map<biorbd::utils::Equation, double>& variables);
97 
98 protected:
104  static double evaluateEquation(
105  std::vector<biorbd::utils::Equation> eq,
106  unsigned int math);
107 
122  static std::vector<biorbd::utils::Equation> prepareMathSymbols();
123 };
124 
125 }}
126 
127 #endif // BIORBD_UTILS_EQUATION_H
biorbd::utils::String
Wrapper around the std::string class with augmented functionality.
Definition: String.h:17
biorbd::utils::Equation
Strings that are to be interpreted as equation that can be evaluated.
Definition: Equation.h:16