1 #ifndef CPPAD_CG_MODEL_C_SOURCE_GEN_FOR0_INCLUDED 2 #define CPPAD_CG_MODEL_C_SOURCE_GEN_FOR0_INCLUDED 23 const std::string jobName =
"model (zero-order forward)";
25 startingJob(
"'" + jobName +
"'", JobTimer::GRAPH);
28 handler.setJobTimer(_jobTimer);
30 std::vector<CGBase> indVars(_fun.Domain());
33 for (
size_t i = 0; i < indVars.size(); i++) {
34 indVars[i].setValue(_x[i]);
38 std::vector<CGBase> dep;
40 if (_loopTapes.empty()) {
41 dep = _fun.Forward(0, indVars);
46 dep = prepareForward0WithLoops(handler, indVars);
52 langC.setMaxAssigmentsPerFunction(_maxAssignPerFunc, &_sources);
54 langC.setGenerateFunction(_name +
"_" + FUNCTION_FORWAD_ZERO);
56 std::ostringstream code;
57 std::unique_ptr<VariableNameGenerator<Base> > nameGen(createVariableNameGenerator());
59 handler.
generateCode(code, langC, dep, *nameGen, _atomicFunctions, jobName);
void makeVariables(VectorCG &variables)
virtual void generateZeroSource()
virtual void setParameterPrecision(size_t p)
virtual void generateCode(std::ostream &out, Language< Base > &lang, CppAD::vector< CGB > &dependent, VariableNameGenerator< Base > &nameGen, const std::string &jobName="source")