cleanup, rename PTln --> PTlog, PTF_LN --> PTF_LOG (`B' language)

This commit is contained in:
rlar 2014-09-12 19:06:08 +02:00
parent 93a212ca3c
commit bdf70bd2b0
4 changed files with 29 additions and 29 deletions

View File

@ -100,7 +100,7 @@ void INPptPrint(char *str, IFparseTree * ptree);
#define PTF_COS 6
#define PTF_COSH 7
#define PTF_EXP 8
#define PTF_LN 9
#define PTF_LOG 9
#define PTF_LOG10 10
#define PTF_SIN 11
#define PTF_SINH 12

View File

@ -143,7 +143,7 @@ static struct func {
{ "cos", PTF_COS, (void(*)(void)) PTcos } ,
{ "cosh", PTF_COSH, (void(*)(void)) PTcosh } ,
{ "exp", PTF_EXP, (void(*)(void)) PTexp } ,
{ "ln", PTF_LN, (void(*)(void)) PTln } ,
{ "ln", PTF_LOG, (void(*)(void)) PTlog } ,
{ "log", PTF_LOG10, (void(*)(void)) PTlog10 } ,
{ "sgn", PTF_SGN, (void(*)(void)) PTsgn } ,
{ "sin", PTF_SIN, (void(*)(void)) PTsin } ,
@ -312,19 +312,19 @@ static INPparseNode *PTdifferentiate(INPparseNode * p, int varnum)
arg1);
} else {
/*
* D(f^g) = D(exp(g*ln(f)))
* = exp(g*ln(f)) * D(g*ln(f))
* = exp(g*ln(f)) * (D(g)*ln(f) + g*D(f)/f)
* D(f^g) = D(exp(g*log(f)))
* = exp(g*log(f)) * D(g*log(f))
* = exp(g*log(f)) * (D(g)*log(f) + g*D(f)/f)
*/
arg1 = PTdifferentiate(p->left, varnum);
arg2 = PTdifferentiate(p->right, varnum);
newp = mkb(PT_TIMES, mkf(PTF_EXP, mkb(PT_TIMES,
p->right, mkf(PTF_LN,
p->right, mkf(PTF_LOG,
p->left))),
mkb(PT_PLUS,
mkb(PT_TIMES, p->right,
mkb(PT_DIVIDE, arg1, p->left)),
mkb(PT_TIMES, arg2, mkf(PTF_LN, p->left))));
mkb(PT_TIMES, arg2, mkf(PTF_LOG, p->left))));
}
break;
@ -431,7 +431,7 @@ static INPparseNode *PTdifferentiate(INPparseNode * p, int varnum)
arg1 = mkf(PTF_EXP, p->left);
break;
case PTF_LN: /* 1 / u */
case PTF_LOG: /* 1 / u */
arg1 = mkb(PT_DIVIDE, mkcon(1.0), p->left);
break;
@ -574,19 +574,19 @@ static INPparseNode *PTdifferentiate(INPparseNode * p, int varnum)
#endif
} else {
/*
* D(f^g) = D(exp(g*ln(f)))
* = exp(g*ln(f)) * D(g*ln(f))
* = exp(g*ln(f)) * (D(g)*ln(f) + g*D(f)/f)
* D(f^g) = D(exp(g*log(f)))
* = exp(g*log(f)) * D(g*log(f))
* = exp(g*log(f)) * (D(g)*log(f) + g*D(f)/f)
*/
arg1 = PTdifferentiate(p->left->left, varnum);
arg2 = PTdifferentiate(p->left->right, varnum);
newp = mkb(PT_TIMES, mkf(PTF_EXP, mkb(PT_TIMES,
p->left->right, mkf(PTF_LN,
p->left->right, mkf(PTF_LOG,
p->left->left))),
mkb(PT_PLUS,
mkb(PT_TIMES, p->left->right,
mkb(PT_DIVIDE, arg1, p->left->left)),
mkb(PT_TIMES, arg2, mkf(PTF_LN, p->left->left))));
mkb(PT_TIMES, arg2, mkf(PTF_LOG, p->left->left))));
}
return mkfirst(newp, p);
}
@ -605,10 +605,10 @@ static INPparseNode *PTdifferentiate(INPparseNode * p, int varnum)
/* b is a constant
*
* f(a,b) = signum(a) * abs(a)^b
* = signum(a) * exp(b*ln(abs(a)))
* D(f) = signum(a) * D(exp(b*ln(abs(a))))
* = signum(a) * exp(b*ln(abs(a))) * D(b*ln(abs(a)))
* = signum(a) * abs(a)^b * D(b*ln(abs(a)))
* = signum(a) * exp(b*log(abs(a)))
* D(f) = signum(a) * D(exp(b*log(abs(a))))
* = signum(a) * exp(b*log(abs(a))) * D(b*log(abs(a)))
* = signum(a) * abs(a)^b * D(b*log(abs(a)))
* = signum(a) * abs(a)^b * b * 1/abs(a) * D(abs(a))
* = signum(a) * abs(a)^(b-1) * b * D(abs(a))
* = signum(a) * abs(a)^(b-1) * b * signum(a) * D(a)
@ -632,15 +632,15 @@ static INPparseNode *PTdifferentiate(INPparseNode * p, int varnum)
/* b is a function
*
* f(a,b) = signum(a) * abs(a)^b
* = signum(a) * exp(b*ln(abs(a)))
* D(f) = signum(a) * D(exp(b*ln(abs(a))))
* = signum(a) * exp(b*ln(abs(a))) * D(b*ln(abs(a)))
* = signum(a) * exp(b*ln(abs(a))) * (D(b) * ln(abs(a)) + b * D(ln(abs(a))))
* = signum(a) * exp(b*ln(abs(a))) * (D(b) * ln(abs(a)) + b * 1/abs(a) * D(abs(a)))
* = signum(a) * exp(b*ln(abs(a))) * (D(b) * ln(abs(a)) + b * 1/abs(a) * signum(a)*D(a))
* = signum(a) * exp(b*ln(abs(a))) * (D(b) * ln(abs(a)) + b/a*D(a))
* = signum(a) * exp(b*ln(abs(a))) * D(b) * ln(abs(a) + signum(a) * exp(b*ln(abs(a))) / a * b * D(a)
* = signum(a) * exp(b*ln(abs(a))) * D(b) * ln(abs(a) + abs(a)^(b-1) * b * D(a)
* = signum(a) * exp(b*log(abs(a)))
* D(f) = signum(a) * D(exp(b*log(abs(a))))
* = signum(a) * exp(b*log(abs(a))) * D(b*log(abs(a)))
* = signum(a) * exp(b*log(abs(a))) * (D(b) * log(abs(a)) + b * D(log(abs(a))))
* = signum(a) * exp(b*log(abs(a))) * (D(b) * log(abs(a)) + b * 1/abs(a) * D(abs(a)))
* = signum(a) * exp(b*log(abs(a))) * (D(b) * log(abs(a)) + b * 1/abs(a) * signum(a)*D(a))
* = signum(a) * exp(b*log(abs(a))) * (D(b) * log(abs(a)) + b/a*D(a))
* = signum(a) * exp(b*log(abs(a))) * D(b) * log(abs(a) + signum(a) * exp(b*log(abs(a))) / a * b * D(a)
* = signum(a) * exp(b*log(abs(a))) * D(b) * log(abs(a) + abs(a)^(b-1) * b * D(a)
*/
arg1 = PTdifferentiate(a, varnum);
arg2 = PTdifferentiate(b, varnum);
@ -650,7 +650,7 @@ static INPparseNode *PTdifferentiate(INPparseNode * p, int varnum)
mkb(PT_TIMES,
mkb(PT_POWER, mkf(PTF_ABS, a), b),
mkb(PT_TIMES, arg2,
mkf(PTF_LN, mkf(PTF_ABS, a))))),
mkf(PTF_LOG, mkf(PTF_ABS, a))))),
mkb(PT_TIMES,
mkb(PT_TIMES,
mkb(PT_POWER,

View File

@ -55,7 +55,7 @@ double PTuramp(double arg);
double PTcos(double arg);
double PTcosh(double arg);
double PTexp(double arg);
double PTln(double arg);
double PTlog(double arg);
double PTlog10(double arg);
double PTsin(double arg);
double PTsinh(double arg);

View File

@ -224,7 +224,7 @@ PTexp(double arg)
}
double
PTln(double arg)
PTlog(double arg)
{
if (arg < 0.0)
return (HUGE);