eval: add mathematical constants (PI, E, PHI).
Signed-off-by: Nicolas George <nicolas.george@normalesup.org> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
committed by
Michael Niedermayer
parent
4d518f1230
commit
40963ea9e9
@@ -72,6 +72,15 @@ static const int8_t si_prefixes['z' - 'E' + 1] = {
|
||||
['Y'-'E']= 24,
|
||||
};
|
||||
|
||||
static const struct {
|
||||
const char *name;
|
||||
double value;
|
||||
} constants[] = {
|
||||
{ "E", M_E },
|
||||
{ "PI", M_PI },
|
||||
{ "PHI", M_PHI },
|
||||
};
|
||||
|
||||
double av_strtod(const char *numstr, char **tail)
|
||||
{
|
||||
double d;
|
||||
@@ -233,6 +242,15 @@ static int parse_primary(AVExpr **e, Parser *p)
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
for (i = 0; i < FF_ARRAY_ELEMS(constants); i++) {
|
||||
if (strmatch(p->s, constants[i].name)) {
|
||||
p->s += strlen(constants[i].name);
|
||||
d->type = e_value;
|
||||
d->value = constants[i].value;
|
||||
*e = d;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
p->s= strchr(p->s, '(');
|
||||
if (p->s==NULL) {
|
||||
|
Reference in New Issue
Block a user