diff --git a/Compiler/Template/CodegenCpp.tpl b/Compiler/Template/CodegenCpp.tpl index 9dde32b8b30..430a4cd7215 100644 --- a/Compiler/Template/CodegenCpp.tpl +++ b/Compiler/Template/CodegenCpp.tpl @@ -6866,7 +6866,7 @@ case "A" then { _jacobian = SparseMatrix(<%index_%>,<%indexColumn%>,<%sp_size_index%>); _jac_y = ublas::zero_vector(<%index_%>); - _jac_tmp = ublas::zero_vector(<%index_%>); + _jac_tmp = ublas::zero_vector(<%tmpvarsSize%>); _jac_x = ublas::zero_vector(<%index_%>); } @@ -7007,6 +7007,8 @@ end variableDefinitionsJacobians; template variableDefinitionsJacobians2(Integer indexJacobian, list jacobianColumn, list seedVars, String name) "Generates Matrixes for Linear Model." ::= + match name + case "A" then let seedVarsResult = (seedVars |> var hasindex index0 => jacobianVarDefine(var, "jacobianVarsSeed", indexJacobian, index0,name) ;separator="\n";empty) @@ -7014,6 +7016,7 @@ template variableDefinitionsJacobians2(Integer indexJacobian, list var hasindex index0 => jacobianVarDefine(var, "jacobianVars", indexJacobian, index0,name) ;separator="\n";empty) ;separator="\n\n") + << <%seedVarsResult%> <%columnVarsResult%> @@ -7063,6 +7066,8 @@ end jacobianVarsSeedDefine; template defineSparseIndexes(list diffVars, list diffedVars, String matrixName) "template variableDefinitionsJacobians2 Generates Matrixes for Linear Model." ::= +match matrixName +case "A" then let diffVarsResult = (diffVars |> var as SIMVAR(name=name) hasindex index0 => '#define <%cref(name)%><%matrixName%>$indexdiff <%index0%>' ;separator="\n") @@ -7071,6 +7076,7 @@ template defineSparseIndexes(list diffVars, list diffedVars, Str /* <%matrixName%> sparse indexes */ <%diffVarsResult%> >> + else " " end defineSparseIndexes;