20#ifndef _CONTINUED_FUNCTION_H_
21#define _CONTINUED_FUNCTION_H_
23#include "mbsim/functions/function.h"
29 template<
typename Ret,
typename Arg>
31 using B = fmatvec::Function<Ret(Arg)>;
35 int getArgSize()
const override {
return f->getArgSize(); }
36 std::pair<int, int> getRetSize()
const override {
return f->getRetSize(); }
37 Ret operator()(
const Arg &x)
override {
return (*f)((*rule)(x)); }
38 typename B::DRetDArg parDer(
const Arg &x)
override {
return f->parDer((*rule)(x)); }
39 typename B::DRetDArg parDerDirDer(
const Arg &xDir,
const Arg &x)
override {
return f->parDerDirDer(xDir,(*rule)(x)); }
40 void setFunction(
Function<Ret(Arg)> *f_) {
43 f->setName(
"Function");
45 void setContinuationRule(
Function<Arg(Arg)> *rule_) {
47 rule->setParent(
this);
48 rule->setName(
"ContinuationRule");
50 void initializeUsingXML(xercesc::DOMElement *element)
override {
51 xercesc::DOMElement *e=MBXMLUtils::E(element)->getFirstElementChildNamed(MBSIM%
"function");
53 e=MBXMLUtils::E(element)->getFirstElementChildNamed(MBSIM%
"continuationRule");
57 Function<Ret(Arg)>::init(stage, config);
58 f->init(stage, config);
59 InitConfigSet configRule(config);
60 configRule.insert(noDer);
61 configRule.insert(noDerDer);
62 rule->init(stage, configRule);
void init(Element::InitStage stage, const InitConfigSet &config) override
plots time series header
Definition: continued_function.h:56
Definition: continued_function.h:27
InitStage
The stages of the initialization.
Definition: element.h:62
Definition: function.h:53
static ContainerType * createAndInit(const xercesc::DOMElement *element)
Definition: objectfactory.h:103
namespace MBSim
Definition: bilateral_constraint.cc:30