10 /* global variables */
14 /* stack management */
18 return get_tab (stack
, n
);
23 return size_tab (stack
);
28 return pop_tab (stack
, -1);
31 double push (double val
)
33 return push_tab (stack
, -1, val
);
36 double put (int n
, double val
)
38 if (n
> size_tab (stack
)) {
39 stack
= resize_tab (stack
, n
);
41 return set_tab (stack
, n
, val
);
44 double set (int nbops
, element_t
**ops
)
47 stack
= resize_tab (stack
, nbops
);
48 for (i
= 0; i
< nbops
; i
++) {
49 set_tab (stack
, i
+ 1, evaluate_element (ops
[i
], 0));
51 return size_tab (stack
);
56 int i
, n
= size_tab (stack
);
57 fprintf (stdout
, "stack:");
58 for (i
= 0; i
< n
; i
++) {
59 fprintf (stdout
, " ");
60 fprintf (stdout
, minform
, get_tab (stack
, i
+ 1));
62 fprintf (stdout
, "\n");
70 int i
, n
= size_tab (stack
);
72 VERBOSE (WARNING
, fprintf (stdout
, "error not enough element in stack (%d)\n", n
));
75 ret
= get_tab (stack
, 1);
76 for (i
= 1; i
< n
; i
++) {
77 double cur
= get_tab (stack
, i
+ 1);
88 int i
, n
= size_tab (stack
);
90 VERBOSE (WARNING
, fprintf (stdout
, "error not enough element in stack (%d)\n", n
));
93 for (i
= 0; i
< n
; i
++) {
94 ret
+= get_tab (stack
, i
+ 1);
102 int i
, n
= size_tab (stack
);
104 VERBOSE (WARNING
, fprintf (stdout
, "error not enough element in stack (%d)\n", n
));
107 ret
= get_tab (stack
, 1);
108 for (i
= 1; i
< n
; i
++) {
109 double cur
= get_tab (stack
, i
+ 1);
119 int n
= size_tab (stack
);
121 VERBOSE (WARNING
, fprintf (stdout
, "error not enough element in stack (%d)\n", n
));
130 int n
= size_tab (stack
);
132 VERBOSE (WARNING
, fprintf (stdout
, "error not enough element in stack (%d)\n", n
));
134 tab_t
*tmp
= copy_tab (stack
);
136 ret
= get_tab (tmp
, (n
- 1) / 2 + 1);
145 int i
, n
= size_tab (stack
);
147 VERBOSE (WARNING
, fprintf (stdout
, "error not enough element in stack (%d)\n", n
));
150 for (i
= 0; i
< n
; i
++) {
151 ret
*= get_tab (stack
, i
+ 1);
159 int i
, n
= size_tab (stack
);
161 VERBOSE (WARNING
, fprintf (stdout
, "error not enough element in stack (%d)\n", n
));
164 for (i
= 0; i
< n
; i
++) {
165 ret
+= get_tab (stack
, i
+ 1);
173 int i
, n
= size_tab (stack
);
175 VERBOSE (WARNING
, fprintf (stdout
, "error not enough element in stack (%d)\n", n
));
179 for (i
= 0; i
< n
; i
++) {
180 double x
= get_tab (stack
, i
+ 1);
181 ret
+= (x
- m
) * (x
- m
);
186 /* vim: set ts=4 sw=4 et: */