always substitute diffs of expressions that contain leads. closes #21

issue#70
Houtan Bastani 2019-03-05 12:42:37 +01:00
parent a1c79e6a4c
commit 7c9f272e15
No known key found for this signature in database
GPG Key ID: 000094FB955BE169
1 changed files with 3 additions and 0 deletions

View File

@ -336,6 +336,9 @@ DataTree::AddPowerDeriv(expr_t iArg1, expr_t iArg2, int powerDerivOrder)
expr_t
DataTree::AddDiff(expr_t iArg1)
{
if (iArg1->maxLead() > 0)
// Issue #21: always substitute diffs with lags
return AddMinus(iArg1, iArg1->decreaseLeadsLags(1));
return AddUnaryOp(UnaryOpcode::diff, iArg1);
}