differentiate tan and tanh in safe way without cos and cosh

This commit is contained in:
dwarning 2018-10-03 20:45:29 +02:00 committed by Holger Vogt
parent f33c3f0751
commit 3dd94ba15c
1 changed files with 6 additions and 6 deletions

View File

@ -461,16 +461,16 @@ static INPparseNode *PTdifferentiate(INPparseNode * p, int varnum)
p->left)));
break;
case PTF_TAN: /* 1 / (cos(u) ^ 2) */
arg1 = mkb(PT_DIVIDE, mkcon(1.0), mkb(PT_POWER,
mkf(PTF_COS,
case PTF_TAN: /* 1 + (tan(u) ^ 2) */
arg1 = mkb(PT_PLUS, mkcon(1.0), mkb(PT_POWER,
mkf(PTF_TAN,
p->left),
mkcon(2.0)));
break;
case PTF_TANH: /* 1 / (cosh(u) ^ 2) */
arg1 = mkb(PT_DIVIDE, mkcon(1.0), mkb(PT_POWER,
mkf(PTF_COSH,
case PTF_TANH: /* 1 - (tanh(u) ^ 2) */
arg1 = mkb(PT_MINUS, mkcon(1.0), mkb(PT_POWER,
mkf(PTF_TANH,
p->left),
mkcon(2.0)));
break;