diff --git a/src/system.cpp b/src/system.cpp index 0cfa27df..c93b0a16 100644 --- a/src/system.cpp +++ b/src/system.cpp @@ -48,8 +48,8 @@ bool System::WriteJacobian(int tag) { continue; mat.eq[i] = e.h; - Expr *f = e.e->DeepCopyWithParamsAsPointers(¶m, &(SK.param)); - f = f->FoldConstants(); + Expr *f = e.e->FoldConstants(); + f = f->DeepCopyWithParamsAsPointers(¶m, &(SK.param)); for(j = 0; j < mat.n; j++) { mat.A.sym[i][j] = zero; @@ -63,7 +63,6 @@ bool System::WriteJacobian(int tag) { if(j == paramToIndex.end()) continue; Expr *pd = f->PartialWrt(p); pd = pd->FoldConstants(); - pd = pd->DeepCopyWithParamsAsPointers(¶m, &(SK.param)); mat.A.sym[i][j->second] = pd; } paramsUsed.Clear();