Some optimization
1. We are making FoldConstants first, so we are copying less amount of data in DeepCopyWithParamsAsPointers. 2. Since we already perform DeepCopyWithParamsAsPointers, PartialWrt already produces params as pointerspull/1159/head
parent
2f31673708
commit
3ba40230dd
|
@ -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();
|
||||
|
|
Loading…
Reference in New Issue