20#ifndef _MBSIM_SYMBOLIC_FUNCTION_H_
21#define _MBSIM_SYMBOLIC_FUNCTION_H_
23#include <mbsim/functions/function.h>
24#include <fmatvec/symbolic_function.h>
30 template<
typename Ret,
typename Arg>
37 Function<Ret(Arg)>::init(stage, config);
39 fmatvec::SymbolicFunction<Ret(Arg)>::init();
44 void initializeUsingXML(xercesc::DOMElement *element)
override {
45 Function<Ret(Arg)>::initializeUsingXML(element);
47 auto definition=MBXMLUtils::E(element)->getFirstElementChildNamed(MBSIM%
"definition");
49 std::stringstream func(MBXMLUtils::E(definition)->getText<std::string>());
51 func.read(buf, 2); buf[2]=0;
52 if(buf!=std::string(
"f("))
54 MBXMLUtils::E(definition)->getText<std::string>(), definition);
55 typename fmatvec::SymbolicFunction<Ret(Arg)>::ArgS argS;
57 this->setIndependentVariable(argS);
58 func.read(buf, 2); buf[2]=0;
59 if(buf!=std::string(
")="))
61 MBXMLUtils::E(definition)->getText<std::string>(), definition);
62 typename fmatvec::SymbolicFunction<Ret(Arg)>::RetS retS;
64 this->setDependentFunction(retS);
84 template<
typename Ret,
typename Arg1,
typename Arg2>
86 public fmatvec::SymbolicFunction<Ret(Arg1, Arg2)> {
92 Function<Ret(Arg1, Arg2)>::init(stage, config);
94 fmatvec::SymbolicFunction<Ret(Arg1, Arg2)>::init();
99 void initializeUsingXML(xercesc::DOMElement *element)
override {
100 Function<Ret(Arg1, Arg2)>::initializeUsingXML(element);
102 auto definition=MBXMLUtils::E(element)->getFirstElementChildNamed(MBSIM%
"definition");
104 std::stringstream func(MBXMLUtils::E(definition)->getText<std::string>());
106 func.read(buf, 2); buf[2]=0;
107 if(buf!=std::string(
"f("))
109 MBXMLUtils::E(definition)->getText<std::string>(), definition);
110 typename fmatvec::SymbolicFunction<Ret(Arg1,Arg2)>::Arg1S arg1S;
112 this->setIndependentVariable1(arg1S);
116 MBXMLUtils::E(definition)->getText<std::string>(), definition);
117 typename fmatvec::SymbolicFunction<Ret(Arg1,Arg2)>::Arg2S arg2S;
119 this->setIndependentVariable2(arg2S);
120 func.read(buf, 2); buf[2]=0;
121 if(buf!=std::string(
")="))
123 MBXMLUtils::E(definition)->getText<std::string>(), definition);
124 typename fmatvec::SymbolicFunction<Ret(Arg1,Arg2)>::RetS retS;
126 this->setDependentFunction(retS);
InitStage
The stages of the initialization.
Definition: element.h:62
@ preInit
Definition: element.h:64
Definition: function.h:53
void init(Element::InitStage stage, const InitConfigSet &config) override
plots time series header
Definition: symbolic_function.h:91
void init(Element::InitStage stage, const InitConfigSet &config) override
plots time series header
Definition: symbolic_function.h:36
Definition: symbolic_function.h:28
namespace MBSim
Definition: bilateral_constraint.cc:30