|
|
@ -83,6 +83,8 @@ static struct func { |
|
|
{ "tanh", PTF_TANH, (void(*)(void)) PTtanh } , |
|
|
{ "tanh", PTF_TANH, (void(*)(void)) PTtanh } , |
|
|
{ "u", PTF_USTEP, (void(*)(void)) PTustep } , |
|
|
{ "u", PTF_USTEP, (void(*)(void)) PTustep } , |
|
|
{ "uramp", PTF_URAMP, (void(*)(void)) PTuramp } , |
|
|
{ "uramp", PTF_URAMP, (void(*)(void)) PTuramp } , |
|
|
|
|
|
{ "ceil", PTF_CEIL, (void(*)(void)) PTceil } , |
|
|
|
|
|
{ "floor", PTF_FLOOR, (void(*)(void)) PTfloor } , |
|
|
{ "-", PTF_UMINUS, (void(*)(void)) PTuminus }, |
|
|
{ "-", PTF_UMINUS, (void(*)(void)) PTuminus }, |
|
|
/* MW. cif function added */ |
|
|
/* MW. cif function added */ |
|
|
{ "u2", PTF_USTEP2, (void(*)(void)) PTustep2}, |
|
|
{ "u2", PTF_USTEP2, (void(*)(void)) PTustep2}, |
|
|
@ -402,6 +404,15 @@ static INPparseNode *PTdifferentiate(INPparseNode * p, int varnum) |
|
|
arg1 = mkf(PTF_USTEP, p->left); |
|
|
arg1 = mkf(PTF_USTEP, p->left); |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
|
|
|
case PTF_FLOOR: /* floor(u) */ |
|
|
|
|
|
arg1 = mkf(PTF_FLOOR, p->left); |
|
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
|
|
case PTF_CEIL: /* ceil(u) */ |
|
|
|
|
|
arg1 = mkf(PTF_CEIL, p->left); |
|
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* MW. PTF_CIF for new cif function */ |
|
|
/* MW. PTF_CIF for new cif function */ |
|
|
case PTF_USTEP2: /* ustep2=uramp(x)-uramp(x-1) ustep2'=ustep(x)-ustep(x-1) */ |
|
|
case PTF_USTEP2: /* ustep2=uramp(x)-uramp(x-1) ustep2'=ustep(x)-ustep(x-1) */ |
|
|
arg1 = mkb(PT_MINUS, |
|
|
arg1 = mkb(PT_MINUS, |
|
|
|