fplot: add min/max operators
This commit is contained in:
parent
c7304ea03c
commit
3114102485
|
@ -45,6 +45,8 @@ struct Token {
|
||||||
};
|
};
|
||||||
|
|
||||||
double *stack, *sp;
|
double *stack, *sp;
|
||||||
|
void omax(void) { sp--; if(sp[1]>*sp) *sp = sp[1]; }
|
||||||
|
void omin(void) { sp--; if(sp[1]<*sp) *sp = sp[1]; }
|
||||||
void add(void) { sp--; *sp += *(sp+1); }
|
void add(void) { sp--; *sp += *(sp+1); }
|
||||||
void sub(void) { sp--; *sp -= *(sp+1); }
|
void sub(void) { sp--; *sp -= *(sp+1); }
|
||||||
void mul(void) { sp--; *sp *= *(sp+1); }
|
void mul(void) { sp--; *sp *= *(sp+1); }
|
||||||
|
@ -69,22 +71,24 @@ struct Operator {
|
||||||
short prec;
|
short prec;
|
||||||
void (*f)(void);
|
void (*f)(void);
|
||||||
} ops[] = {
|
} ops[] = {
|
||||||
"+", OBINARY, 0, 0, add,
|
"max", OBINARY, 0, 0, omax,
|
||||||
"-", OBINARY, 0, 0, sub,
|
"min", OBINARY, 0, 0, omax,
|
||||||
"*", OBINARY, 0, 100, mul,
|
"+", OBINARY, 0, 100, add,
|
||||||
"/", OBINARY, 0, 100, div,
|
"-", OBINARY, 0, 100, sub,
|
||||||
"%", OBINARY, 0, 100, mod,
|
"*", OBINARY, 0, 200, mul,
|
||||||
"^", OBINARY, 1, 200, pot,
|
"/", OBINARY, 0, 200, div,
|
||||||
"sin", OUNARY, 0, 300, osin,
|
"%", OBINARY, 0, 200, mod,
|
||||||
"cos", OUNARY, 0, 300, ocos,
|
"^", OBINARY, 1, 300, pot,
|
||||||
"tan", OUNARY, 0, 300, otan,
|
"sin", OUNARY, 0, 400, osin,
|
||||||
"asin", OUNARY, 0, 300, oasin,
|
"cos", OUNARY, 0, 400, ocos,
|
||||||
"acos", OUNARY, 0, 300, oacos,
|
"tan", OUNARY, 0, 400, otan,
|
||||||
"atan", OUNARY, 0, 300, oatan,
|
"asin", OUNARY, 0, 400, oasin,
|
||||||
"sqrt", OUNARY, 0, 300, osqrt,
|
"acos", OUNARY, 0, 400, oacos,
|
||||||
"exp", OUNARY, 0, 300, oexp,
|
"atan", OUNARY, 0, 400, oatan,
|
||||||
"log", OUNARY, 0, 300, olog,
|
"sqrt", OUNARY, 0, 400, osqrt,
|
||||||
"ln", OUNARY, 0, 300, oln,
|
"exp", OUNARY, 0, 400, oexp,
|
||||||
|
"log", OUNARY, 0, 400, olog,
|
||||||
|
"ln", OUNARY, 0, 400, oln,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Constant {
|
struct Constant {
|
||||||
|
|
Loading…
Reference in a new issue