11 /* global variables */
15 /* stack management */
19 return get_tab (stack
, n
);
24 return size_tab (stack
);
29 return pop_tab (stack
, -1);
32 double push (double val
)
36 ret
= push_tab (stack
, -1, val
);
38 stack
= resize_tab (stack
, 1);
39 ret
= set_tab (stack
, 1, val
);
44 double put (int n
, double val
)
46 if (n
> size_tab (stack
)) {
47 stack
= resize_tab (stack
, n
);
49 return set_tab (stack
, n
, val
);
52 double set (int nbops
, element_t
**ops
)
55 stack
= resize_tab (stack
, nbops
);
56 for (i
= 0; i
< nbops
; i
++) {
57 set_tab (stack
, i
+ 1, evaluate_element (ops
[i
], 0));
59 return size_tab (stack
);
64 int i
, n
= size_tab (stack
);
66 for (i
= 0; i
< n
; i
++) {
68 printl (get_tab (stack
, i
+ 1));
78 int i
, n
= size_tab (stack
);
80 VERBOSE (WARNING
, fprintf (stdout
, "error not enough element in stack (%d)\n", n
));
83 ret
= get_tab (stack
, 1);
84 for (i
= 1; i
< n
; i
++) {
85 double cur
= get_tab (stack
, i
+ 1);
96 int i
, n
= size_tab (stack
);
98 VERBOSE (WARNING
, fprintf (stdout
, "error not enough element in stack (%d)\n", n
));
101 for (i
= 0; i
< n
; i
++) {
102 ret
+= get_tab (stack
, i
+ 1);
110 int i
, n
= size_tab (stack
);
112 VERBOSE (WARNING
, fprintf (stdout
, "error not enough element in stack (%d)\n", n
));
115 ret
= get_tab (stack
, 1);
116 for (i
= 1; i
< n
; i
++) {
117 double cur
= get_tab (stack
, i
+ 1);
133 int n
= size_tab (stack
);
135 VERBOSE (WARNING
, fprintf (stdout
, "error not enough element in stack (%d)\n", n
));
137 tab_t
*tmp
= copy_tab (stack
);
139 ret
= get_tab (tmp
, (n
- 1) / 2 + 1);
148 int i
, n
= size_tab (stack
);
150 VERBOSE (WARNING
, fprintf (stdout
, "error not enough element in stack (%d)\n", n
));
153 for (i
= 0; i
< n
; i
++) {
154 ret
*= get_tab (stack
, i
+ 1);
162 int i
, n
= size_tab (stack
);
164 VERBOSE (WARNING
, fprintf (stdout
, "error not enough element in stack (%d)\n", n
));
167 for (i
= 0; i
< n
; i
++) {
168 ret
+= get_tab (stack
, i
+ 1);
176 int i
, n
= size_tab (stack
);
178 VERBOSE (WARNING
, fprintf (stdout
, "error not enough element in stack (%d)\n", n
));
182 for (i
= 0; i
< n
; i
++) {
183 double x
= get_tab (stack
, i
+ 1);
184 ret
+= (x
- m
) * (x
- m
);
189 /* vim: set ts=4 sw=4 et: */