a355fa5e3281b2fc34d1c3460c43701d776c99a2
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
);
65 fprintf (stdout
, "stack:");
66 for (i
= 0; i
< n
; i
++) {
67 fprintf (stdout
, " ");
68 fprintf (stdout
, minform
, get_tab (stack
, i
+ 1));
70 fprintf (stdout
, "\n");
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);
127 int n
= size_tab (stack
);
129 VERBOSE (WARNING
, fprintf (stdout
, "error not enough element in stack (%d)\n", n
));
138 int n
= size_tab (stack
);
140 VERBOSE (WARNING
, fprintf (stdout
, "error not enough element in stack (%d)\n", n
));
142 tab_t
*tmp
= copy_tab (stack
);
144 ret
= get_tab (tmp
, (n
- 1) / 2 + 1);
153 int i
, n
= size_tab (stack
);
155 VERBOSE (WARNING
, fprintf (stdout
, "error not enough element in stack (%d)\n", n
));
158 for (i
= 0; i
< n
; i
++) {
159 ret
*= get_tab (stack
, i
+ 1);
167 int i
, n
= size_tab (stack
);
169 VERBOSE (WARNING
, fprintf (stdout
, "error not enough element in stack (%d)\n", n
));
172 for (i
= 0; i
< n
; i
++) {
173 ret
+= get_tab (stack
, i
+ 1);
181 int i
, n
= size_tab (stack
);
183 VERBOSE (WARNING
, fprintf (stdout
, "error not enough element in stack (%d)\n", n
));
187 for (i
= 0; i
< n
; i
++) {
188 double x
= get_tab (stack
, i
+ 1);
189 ret
+= (x
- m
) * (x
- m
);
194 /* vim: set ts=4 sw=4 et: */