1 /* This C file is generated by NIT to compile module standard___math. */
2 #include "standard___math._sep.h"
3 static const char LOCATE_standard___math___Int___rand
[] = "math::Int::rand";
4 val_t
standard___math___Int___rand(val_t p0
){
5 struct {struct stack_frame_t me
;} fra
;
8 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9 fra
.me
.file
= LOCATE_standard___math
;
11 fra
.me
.meth
= LOCATE_standard___math___Int___rand
;
14 fra
.me
.nitni_local_ref_head
= NULL
;
16 /* ../lib/standard/math.nit:20 */
17 REGB0
= Int_rand___out(REGB0
);
18 stack_frame_head
= fra
.me
.prev
;
21 static const char LOCATE_standard___math___Int___bin_and
[] = "math::Int::bin_and";
22 val_t
standard___math___Int___bin_and(val_t p0
, val_t p1
){
23 struct {struct stack_frame_t me
;} fra
;
27 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
28 fra
.me
.file
= LOCATE_standard___math
;
30 fra
.me
.meth
= LOCATE_standard___math___Int___bin_and
;
33 fra
.me
.nitni_local_ref_head
= NULL
;
36 /* ../lib/standard/math.nit:21 */
37 REGB1
= Int_bin_and___out(REGB0
, REGB1
);
38 stack_frame_head
= fra
.me
.prev
;
41 static const char LOCATE_standard___math___Int___bin_or
[] = "math::Int::bin_or";
42 val_t
standard___math___Int___bin_or(val_t p0
, val_t p1
){
43 struct {struct stack_frame_t me
;} fra
;
47 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
48 fra
.me
.file
= LOCATE_standard___math
;
50 fra
.me
.meth
= LOCATE_standard___math___Int___bin_or
;
53 fra
.me
.nitni_local_ref_head
= NULL
;
56 /* ../lib/standard/math.nit:22 */
57 REGB1
= Int_bin_or___out(REGB0
, REGB1
);
58 stack_frame_head
= fra
.me
.prev
;
61 static const char LOCATE_standard___math___Int___bin_xor
[] = "math::Int::bin_xor";
62 val_t
standard___math___Int___bin_xor(val_t p0
, val_t p1
){
63 struct {struct stack_frame_t me
;} fra
;
67 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
68 fra
.me
.file
= LOCATE_standard___math
;
70 fra
.me
.meth
= LOCATE_standard___math___Int___bin_xor
;
73 fra
.me
.nitni_local_ref_head
= NULL
;
76 /* ../lib/standard/math.nit:23 */
77 REGB1
= Int_bin_xor___out(REGB0
, REGB1
);
78 stack_frame_head
= fra
.me
.prev
;
81 static const char LOCATE_standard___math___Float___sqrt
[] = "math::Float::sqrt";
82 val_t
standard___math___Float___sqrt(val_t p0
){
83 struct {struct stack_frame_t me
;} fra
;
85 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
86 fra
.me
.file
= LOCATE_standard___math
;
88 fra
.me
.meth
= LOCATE_standard___math___Float___sqrt
;
91 fra
.me
.nitni_local_ref_head
= NULL
;
92 fra
.me
.REG
[0] = NIT_NULL
;
94 /* ../lib/standard/math.nit:27 */
95 fra
.me
.REG
[0] = Float_sqrt___out(fra
.me
.REG
[0]);
96 stack_frame_head
= fra
.me
.prev
;
99 static const char LOCATE_standard___math___Float___cos
[] = "math::Float::cos";
100 val_t
standard___math___Float___cos(val_t p0
){
101 struct {struct stack_frame_t me
;} fra
;
103 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
104 fra
.me
.file
= LOCATE_standard___math
;
106 fra
.me
.meth
= LOCATE_standard___math___Float___cos
;
107 fra
.me
.has_broke
= 0;
109 fra
.me
.nitni_local_ref_head
= NULL
;
110 fra
.me
.REG
[0] = NIT_NULL
;
112 /* ../lib/standard/math.nit:28 */
113 fra
.me
.REG
[0] = Float_cos___out(fra
.me
.REG
[0]);
114 stack_frame_head
= fra
.me
.prev
;
115 return fra
.me
.REG
[0];
117 static const char LOCATE_standard___math___Float___sin
[] = "math::Float::sin";
118 val_t
standard___math___Float___sin(val_t p0
){
119 struct {struct stack_frame_t me
;} fra
;
121 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
122 fra
.me
.file
= LOCATE_standard___math
;
124 fra
.me
.meth
= LOCATE_standard___math___Float___sin
;
125 fra
.me
.has_broke
= 0;
127 fra
.me
.nitni_local_ref_head
= NULL
;
128 fra
.me
.REG
[0] = NIT_NULL
;
130 /* ../lib/standard/math.nit:29 */
131 fra
.me
.REG
[0] = Float_sin___out(fra
.me
.REG
[0]);
132 stack_frame_head
= fra
.me
.prev
;
133 return fra
.me
.REG
[0];
135 static const char LOCATE_standard___math___Float___tan
[] = "math::Float::tan";
136 val_t
standard___math___Float___tan(val_t p0
){
137 struct {struct stack_frame_t me
;} fra
;
139 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
140 fra
.me
.file
= LOCATE_standard___math
;
142 fra
.me
.meth
= LOCATE_standard___math___Float___tan
;
143 fra
.me
.has_broke
= 0;
145 fra
.me
.nitni_local_ref_head
= NULL
;
146 fra
.me
.REG
[0] = NIT_NULL
;
148 /* ../lib/standard/math.nit:30 */
149 fra
.me
.REG
[0] = Float_tan___out(fra
.me
.REG
[0]);
150 stack_frame_head
= fra
.me
.prev
;
151 return fra
.me
.REG
[0];
153 static const char LOCATE_standard___math___Float___acos
[] = "math::Float::acos";
154 val_t
standard___math___Float___acos(val_t p0
){
155 struct {struct stack_frame_t me
;} fra
;
157 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
158 fra
.me
.file
= LOCATE_standard___math
;
160 fra
.me
.meth
= LOCATE_standard___math___Float___acos
;
161 fra
.me
.has_broke
= 0;
163 fra
.me
.nitni_local_ref_head
= NULL
;
164 fra
.me
.REG
[0] = NIT_NULL
;
166 /* ../lib/standard/math.nit:31 */
167 fra
.me
.REG
[0] = Float_acos___out(fra
.me
.REG
[0]);
168 stack_frame_head
= fra
.me
.prev
;
169 return fra
.me
.REG
[0];
171 static const char LOCATE_standard___math___Float___asin
[] = "math::Float::asin";
172 val_t
standard___math___Float___asin(val_t p0
){
173 struct {struct stack_frame_t me
;} fra
;
175 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
176 fra
.me
.file
= LOCATE_standard___math
;
178 fra
.me
.meth
= LOCATE_standard___math___Float___asin
;
179 fra
.me
.has_broke
= 0;
181 fra
.me
.nitni_local_ref_head
= NULL
;
182 fra
.me
.REG
[0] = NIT_NULL
;
184 /* ../lib/standard/math.nit:32 */
185 fra
.me
.REG
[0] = Float_asin___out(fra
.me
.REG
[0]);
186 stack_frame_head
= fra
.me
.prev
;
187 return fra
.me
.REG
[0];
189 static const char LOCATE_standard___math___Float___atan
[] = "math::Float::atan";
190 val_t
standard___math___Float___atan(val_t p0
){
191 struct {struct stack_frame_t me
;} fra
;
193 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
194 fra
.me
.file
= LOCATE_standard___math
;
196 fra
.me
.meth
= LOCATE_standard___math___Float___atan
;
197 fra
.me
.has_broke
= 0;
199 fra
.me
.nitni_local_ref_head
= NULL
;
200 fra
.me
.REG
[0] = NIT_NULL
;
202 /* ../lib/standard/math.nit:33 */
203 fra
.me
.REG
[0] = Float_atan___out(fra
.me
.REG
[0]);
204 stack_frame_head
= fra
.me
.prev
;
205 return fra
.me
.REG
[0];
207 static const char LOCATE_standard___math___Float___pow
[] = "math::Float::pow";
208 val_t
standard___math___Float___pow(val_t p0
, val_t p1
){
209 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
211 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
212 fra
.me
.file
= LOCATE_standard___math
;
214 fra
.me
.meth
= LOCATE_standard___math___Float___pow
;
215 fra
.me
.has_broke
= 0;
217 fra
.me
.nitni_local_ref_head
= NULL
;
218 fra
.me
.REG
[0] = NIT_NULL
;
219 fra
.me
.REG
[1] = NIT_NULL
;
222 /* ../lib/standard/math.nit:35 */
223 fra
.me
.REG
[1] = Float_pow___out(fra
.me
.REG
[0], fra
.me
.REG
[1]);
224 stack_frame_head
= fra
.me
.prev
;
225 return fra
.me
.REG
[1];
227 static const char LOCATE_standard___math___Float___log
[] = "math::Float::log";
228 val_t
standard___math___Float___log(val_t p0
){
229 struct {struct stack_frame_t me
;} fra
;
231 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
232 fra
.me
.file
= LOCATE_standard___math
;
234 fra
.me
.meth
= LOCATE_standard___math___Float___log
;
235 fra
.me
.has_broke
= 0;
237 fra
.me
.nitni_local_ref_head
= NULL
;
238 fra
.me
.REG
[0] = NIT_NULL
;
240 /* ../lib/standard/math.nit:36 */
241 fra
.me
.REG
[0] = Float_log___out(fra
.me
.REG
[0]);
242 stack_frame_head
= fra
.me
.prev
;
243 return fra
.me
.REG
[0];
245 static const char LOCATE_standard___math___Float___exp
[] = "math::Float::exp";
246 val_t
standard___math___Float___exp(val_t p0
){
247 struct {struct stack_frame_t me
;} fra
;
249 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
250 fra
.me
.file
= LOCATE_standard___math
;
252 fra
.me
.meth
= LOCATE_standard___math___Float___exp
;
253 fra
.me
.has_broke
= 0;
255 fra
.me
.nitni_local_ref_head
= NULL
;
256 fra
.me
.REG
[0] = NIT_NULL
;
258 /* ../lib/standard/math.nit:37 */
259 fra
.me
.REG
[0] = Float_exp___out(fra
.me
.REG
[0]);
260 stack_frame_head
= fra
.me
.prev
;
261 return fra
.me
.REG
[0];
263 static const char LOCATE_standard___math___Float___rand
[] = "math::Float::rand";
264 val_t
standard___math___Float___rand(val_t p0
){
265 struct {struct stack_frame_t me
;} fra
;
267 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
268 fra
.me
.file
= LOCATE_standard___math
;
270 fra
.me
.meth
= LOCATE_standard___math___Float___rand
;
271 fra
.me
.has_broke
= 0;
273 fra
.me
.nitni_local_ref_head
= NULL
;
274 fra
.me
.REG
[0] = NIT_NULL
;
276 /* ../lib/standard/math.nit:39 */
277 fra
.me
.REG
[0] = Float_rand___out(fra
.me
.REG
[0]);
278 stack_frame_head
= fra
.me
.prev
;
279 return fra
.me
.REG
[0];
281 static const char LOCATE_standard___math___Float___hypot_with
[] = "math::Float::hypot_with";
282 val_t
standard___math___Float___hypot_with(val_t p0
, val_t p1
){
283 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
285 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
286 fra
.me
.file
= LOCATE_standard___math
;
288 fra
.me
.meth
= LOCATE_standard___math___Float___hypot_with
;
289 fra
.me
.has_broke
= 0;
291 fra
.me
.nitni_local_ref_head
= NULL
;
292 fra
.me
.REG
[0] = NIT_NULL
;
293 fra
.me
.REG
[1] = NIT_NULL
;
296 /* ../lib/standard/math.nit:40 */
297 fra
.me
.REG
[1] = Float_hypot_with___out(fra
.me
.REG
[0], fra
.me
.REG
[1]);
298 stack_frame_head
= fra
.me
.prev
;
299 return fra
.me
.REG
[1];
301 static const char LOCATE_standard___math___Collection___rand
[] = "math::Collection::rand";
302 val_t
standard___math___Collection___rand(val_t p0
){
303 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
306 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
307 fra
.me
.file
= LOCATE_standard___math
;
309 fra
.me
.meth
= LOCATE_standard___math___Collection___rand
;
310 fra
.me
.has_broke
= 0;
312 fra
.me
.nitni_local_ref_head
= NULL
;
313 fra
.me
.REG
[0] = NIT_NULL
;
314 fra
.me
.REG
[1] = NIT_NULL
;
315 fra
.me
.REG
[2] = NIT_NULL
;
317 /* ../lib/standard/math.nit:47 */
318 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
319 if (UNTAG_Bool(REGB0
)) {
320 fra
.me
.REG
[1] = NIT_NULL
;
323 /* ../lib/standard/math.nit:48 */
324 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
325 REGB0
= CALL_standard___math___Int___rand(REGB0
)(REGB0
);
326 fra
.me
.REG
[2] = REGB0
;
327 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[0])(fra
.me
.REG
[0], (&(fra
.me
)), ((fun_t
)OC_standard___math___Collection___rand_2
));
328 switch ((&(fra
.me
))->has_broke
) {
330 case 1: (&(fra
.me
))->has_broke
= 0; goto label1
;
332 /* ../lib/standard/math.nit:54 */
333 nit_abort("Aborted", NULL
, LOCATE_standard___math
, 54);
335 stack_frame_head
= fra
.me
.prev
;
336 return fra
.me
.REG
[1];
338 void OC_standard___math___Collection___rand_2(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
339 struct {struct stack_frame_t me
;} fra
;
344 /* ../lib/standard/math.nit:50 */
345 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
346 fra
.me
.file
= LOCATE_standard___math
;
348 fra
.me
.meth
= LOCATE_standard___math___Collection___rand
;
349 fra
.me
.has_broke
= 0;
351 fra
.me
.nitni_local_ref_head
= NULL
;
352 fra
.me
.REG
[0] = NIT_NULL
;
353 fra
.me
.closure_ctx
= closctx_param
;
354 fra
.me
.closure_funs
= CREG
;
357 /* ../lib/standard/math.nit:51 */
359 REGB1
= TAG_Bool(IS_EQUAL_OO(closctx
->REG
[2],REGB0
));
360 if (UNTAG_Bool(REGB1
)) {
362 /* ../lib/standard/kernel.nit:230 */
363 REGB0
= TAG_Bool((closctx
->REG
[2])==(REGB0
));
364 /* ../lib/standard/math.nit:51 */
367 if (UNTAG_Bool(REGB1
)) {
368 closctx
->REG
[1] = fra
.me
.REG
[0];
369 closctx
->has_broke
= 1;
372 /* ../lib/standard/math.nit:52 */
374 /* ../lib/standard/kernel.nit:240 */
375 REGB1
= TAG_Int(UNTAG_Int(closctx
->REG
[2])-UNTAG_Int(REGB1
));
376 /* ../lib/standard/math.nit:52 */
377 closctx
->REG
[2] = REGB1
;
379 stack_frame_head
= fra
.me
.prev
;
382 static const char LOCATE_standard___math___Object___atan2
[] = "math::Object::atan2";
383 val_t
standard___math___Object___atan2(val_t p0
, val_t p1
, val_t p2
){
384 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
386 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
387 fra
.me
.file
= LOCATE_standard___math
;
389 fra
.me
.meth
= LOCATE_standard___math___Object___atan2
;
390 fra
.me
.has_broke
= 0;
392 fra
.me
.nitni_local_ref_head
= NULL
;
393 fra
.me
.REG
[0] = NIT_NULL
;
394 fra
.me
.REG
[1] = NIT_NULL
;
395 fra
.me
.REG
[2] = NIT_NULL
;
399 /* ../lib/standard/math.nit:58 */
400 fra
.me
.REG
[2] = Object_atan2___out(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
401 stack_frame_head
= fra
.me
.prev
;
402 return fra
.me
.REG
[2];
404 static const char LOCATE_standard___math___Object___pi
[] = "math::Object::pi";
405 val_t
standard___math___Object___pi(val_t p0
){
406 struct {struct stack_frame_t me
;} fra
;
408 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
409 fra
.me
.file
= LOCATE_standard___math
;
411 fra
.me
.meth
= LOCATE_standard___math___Object___pi
;
412 fra
.me
.has_broke
= 0;
414 fra
.me
.nitni_local_ref_head
= NULL
;
415 fra
.me
.REG
[0] = NIT_NULL
;
417 /* ../lib/standard/math.nit:59 */
418 fra
.me
.REG
[0] = Object_pi___out(fra
.me
.REG
[0]);
419 stack_frame_head
= fra
.me
.prev
;
420 return fra
.me
.REG
[0];
422 static const char LOCATE_standard___math___Object___srand_from
[] = "math::Object::srand_from";
423 void standard___math___Object___srand_from(val_t p0
, val_t p1
){
424 struct {struct stack_frame_t me
;} fra
;
427 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
428 fra
.me
.file
= LOCATE_standard___math
;
430 fra
.me
.meth
= LOCATE_standard___math___Object___srand_from
;
431 fra
.me
.has_broke
= 0;
433 fra
.me
.nitni_local_ref_head
= NULL
;
434 fra
.me
.REG
[0] = NIT_NULL
;
437 /* ../lib/standard/math.nit:60 */
438 Object_srand_from___out(fra
.me
.REG
[0], REGB0
);
439 stack_frame_head
= fra
.me
.prev
;
442 static const char LOCATE_standard___math___Object___srand
[] = "math::Object::srand";
443 void standard___math___Object___srand(val_t p0
){
444 struct {struct stack_frame_t me
;} fra
;
446 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
447 fra
.me
.file
= LOCATE_standard___math
;
449 fra
.me
.meth
= LOCATE_standard___math___Object___srand
;
450 fra
.me
.has_broke
= 0;
452 fra
.me
.nitni_local_ref_head
= NULL
;
453 fra
.me
.REG
[0] = NIT_NULL
;
455 /* ../lib/standard/math.nit:61 */
456 Object_srand___out(fra
.me
.REG
[0]);
457 stack_frame_head
= fra
.me
.prev
;