23 #ifndef libmath_library_h
24 #define libmath_library_h
26 #include <math++/error.h>
34 template<
class>
class TNode;
35 template<
class>
class TLibrary;
49 TFunction(
const std::string& AName,
const std::string& AExprStr = std::string());
53 T call(
const T& AParam,
const TLibrary<T>& ALibrary,
unsigned ALimit = 64)
const;
55 void name(
const std::string&);
56 std::string name()
const;
58 void expression(
const TNode<T> *ACopyOf);
59 void expression(
const std::string& AExprStr);
75 TConstant(
const std::string& AName,
const T& AValue = T());
77 void name(
const std::string&);
78 std::string name()
const;
102 typedef std::list<TFunction<T> > TFunctionList;
103 typedef std::list<TConstant<T> > TConstantList;
105 TFunctionList FFunctions;
106 TConstantList FConstants;
108 void removeIf(
const std::string& AName,
bool AReplaceIfExists);
120 void remove(
const std::string& AName);
135 T
call(
const std::string& AName,
const T& AParam)
const;
137 T
value(
const std::string& AName)
const;
147 template<
typename T> std::ostream& operator<<(std::ostream&, const math::TFunction<T>&);
149 #include <math++/library.tcc>