1 #include "math.sep.0.h"
2 /* method math#Int#rand for (self: Int): Int */
3 long math__Int__rand(long self
) {
6 var1
= kernel_Int_Int_rand_0(self
);
12 /* method math#Int#rand for (self: Object): Int */
13 long VIRTUAL_math__Int__rand(val
* self
) {
15 long var1
/* : Int */;
16 long var2
/* : Int */;
17 var2
= ((struct instance_kernel__Int
*)self
)->value
; /* autounbox from Object to Int */;
18 var1
= math__Int__rand(var2
);
23 /* method math#Int#bin_and for (self: Int, Int): Int */
24 long math__Int__bin_and(long self
, long p0
) {
26 long var1
/* : Int */;
27 var1
= kernel_Int_Int_binand_0(self
, p0
);
33 /* method math#Int#bin_and for (self: Object, Int): Int */
34 long VIRTUAL_math__Int__bin_and(val
* self
, long p0
) {
36 long var1
/* : Int */;
37 long var2
/* : Int */;
38 var2
= ((struct instance_kernel__Int
*)self
)->value
; /* autounbox from Object to Int */;
39 var1
= math__Int__bin_and(var2
, p0
);
44 /* method math#Int#bin_or for (self: Int, Int): Int */
45 long math__Int__bin_or(long self
, long p0
) {
47 long var1
/* : Int */;
48 var1
= kernel_Int_Int_binor_0(self
, p0
);
54 /* method math#Int#bin_or for (self: Object, Int): Int */
55 long VIRTUAL_math__Int__bin_or(val
* self
, long p0
) {
57 long var1
/* : Int */;
58 long var2
/* : Int */;
59 var2
= ((struct instance_kernel__Int
*)self
)->value
; /* autounbox from Object to Int */;
60 var1
= math__Int__bin_or(var2
, p0
);
65 /* method math#Int#bin_xor for (self: Int, Int): Int */
66 long math__Int__bin_xor(long self
, long p0
) {
68 long var1
/* : Int */;
69 var1
= kernel_Int_Int_binxor_0(self
, p0
);
75 /* method math#Int#bin_xor for (self: Object, Int): Int */
76 long VIRTUAL_math__Int__bin_xor(val
* self
, long p0
) {
78 long var1
/* : Int */;
79 long var2
/* : Int */;
80 var2
= ((struct instance_kernel__Int
*)self
)->value
; /* autounbox from Object to Int */;
81 var1
= math__Int__bin_xor(var2
, p0
);
86 /* method math#Int#sqrt for (self: Int): Int */
87 long math__Int__sqrt(long self
) {
89 long var1
/* : Int */;
90 var1
= math___Int_sqrt___impl(self
);
96 /* method math#Int#sqrt for (self: Object): Int */
97 long VIRTUAL_math__Int__sqrt(val
* self
) {
99 long var1
/* : Int */;
100 long var2
/* : Int */;
101 var2
= ((struct instance_kernel__Int
*)self
)->value
; /* autounbox from Object to Int */;
102 var1
= math__Int__sqrt(var2
);
107 /* method math#Float#sqrt for (self: Float): Float */
108 double math__Float__sqrt(double self
) {
109 double var
/* : Float */;
110 double var1
/* : Float */;
111 var1
= kernel_Float_Float_sqrt_0(self
);
117 /* method math#Float#sqrt for (self: Object): Float */
118 double VIRTUAL_math__Float__sqrt(val
* self
) {
119 double var
/* : Float */;
120 double var1
/* : Float */;
121 double var2
/* : Float */;
122 var2
= ((struct instance_kernel__Float
*)self
)->value
; /* autounbox from Object to Float */;
123 var1
= math__Float__sqrt(var2
);
128 /* method math#Float#cos for (self: Float): Float */
129 double math__Float__cos(double self
) {
130 double var
/* : Float */;
131 double var1
/* : Float */;
132 var1
= kernel_Float_Float_cos_0(self
);
138 /* method math#Float#cos for (self: Object): Float */
139 double VIRTUAL_math__Float__cos(val
* self
) {
140 double var
/* : Float */;
141 double var1
/* : Float */;
142 double var2
/* : Float */;
143 var2
= ((struct instance_kernel__Float
*)self
)->value
; /* autounbox from Object to Float */;
144 var1
= math__Float__cos(var2
);
149 /* method math#Float#sin for (self: Float): Float */
150 double math__Float__sin(double self
) {
151 double var
/* : Float */;
152 double var1
/* : Float */;
153 var1
= kernel_Float_Float_sin_0(self
);
159 /* method math#Float#sin for (self: Object): Float */
160 double VIRTUAL_math__Float__sin(val
* self
) {
161 double var
/* : Float */;
162 double var1
/* : Float */;
163 double var2
/* : Float */;
164 var2
= ((struct instance_kernel__Float
*)self
)->value
; /* autounbox from Object to Float */;
165 var1
= math__Float__sin(var2
);
170 /* method math#Float#tan for (self: Float): Float */
171 double math__Float__tan(double self
) {
172 double var
/* : Float */;
173 double var1
/* : Float */;
174 var1
= kernel_Float_Float_tan_0(self
);
180 /* method math#Float#tan for (self: Object): Float */
181 double VIRTUAL_math__Float__tan(val
* self
) {
182 double var
/* : Float */;
183 double var1
/* : Float */;
184 double var2
/* : Float */;
185 var2
= ((struct instance_kernel__Float
*)self
)->value
; /* autounbox from Object to Float */;
186 var1
= math__Float__tan(var2
);
191 /* method math#Float#acos for (self: Float): Float */
192 double math__Float__acos(double self
) {
193 double var
/* : Float */;
194 double var1
/* : Float */;
195 var1
= kernel_Float_Float_acos_0(self
);
201 /* method math#Float#acos for (self: Object): Float */
202 double VIRTUAL_math__Float__acos(val
* self
) {
203 double var
/* : Float */;
204 double var1
/* : Float */;
205 double var2
/* : Float */;
206 var2
= ((struct instance_kernel__Float
*)self
)->value
; /* autounbox from Object to Float */;
207 var1
= math__Float__acos(var2
);
212 /* method math#Float#asin for (self: Float): Float */
213 double math__Float__asin(double self
) {
214 double var
/* : Float */;
215 double var1
/* : Float */;
216 var1
= kernel_Float_Float_asin_0(self
);
222 /* method math#Float#asin for (self: Object): Float */
223 double VIRTUAL_math__Float__asin(val
* self
) {
224 double var
/* : Float */;
225 double var1
/* : Float */;
226 double var2
/* : Float */;
227 var2
= ((struct instance_kernel__Float
*)self
)->value
; /* autounbox from Object to Float */;
228 var1
= math__Float__asin(var2
);
233 /* method math#Float#atan for (self: Float): Float */
234 double math__Float__atan(double self
) {
235 double var
/* : Float */;
236 double var1
/* : Float */;
237 var1
= kernel_Float_Float_atan_0(self
);
243 /* method math#Float#atan for (self: Object): Float */
244 double VIRTUAL_math__Float__atan(val
* self
) {
245 double var
/* : Float */;
246 double var1
/* : Float */;
247 double var2
/* : Float */;
248 var2
= ((struct instance_kernel__Float
*)self
)->value
; /* autounbox from Object to Float */;
249 var1
= math__Float__atan(var2
);
254 /* method math#Float#abs for (self: Float): Float */
255 double math__Float__abs(double self
) {
256 double var
/* : Float */;
257 double var1
/* : Float */;
258 var1
= math___Float_abs___impl(self
);
264 /* method math#Float#abs for (self: Object): Float */
265 double VIRTUAL_math__Float__abs(val
* self
) {
266 double var
/* : Float */;
267 double var1
/* : Float */;
268 double var2
/* : Float */;
269 var2
= ((struct instance_kernel__Float
*)self
)->value
; /* autounbox from Object to Float */;
270 var1
= math__Float__abs(var2
);
275 /* method math#Float#pow for (self: Float, Float): Float */
276 double math__Float__pow(double self
, double p0
) {
277 double var
/* : Float */;
278 double var1
/* : Float */;
279 var1
= kernel_Float_Float_pow_1(self
, p0
);
285 /* method math#Float#pow for (self: Object, Float): Float */
286 double VIRTUAL_math__Float__pow(val
* self
, double p0
) {
287 double var
/* : Float */;
288 double var1
/* : Float */;
289 double var2
/* : Float */;
290 var2
= ((struct instance_kernel__Float
*)self
)->value
; /* autounbox from Object to Float */;
291 var1
= math__Float__pow(var2
, p0
);
296 /* method math#Float#log for (self: Float): Float */
297 double math__Float__log(double self
) {
298 double var
/* : Float */;
299 double var1
/* : Float */;
300 var1
= kernel_Float_Float_log_0(self
);
306 /* method math#Float#log for (self: Object): Float */
307 double VIRTUAL_math__Float__log(val
* self
) {
308 double var
/* : Float */;
309 double var1
/* : Float */;
310 double var2
/* : Float */;
311 var2
= ((struct instance_kernel__Float
*)self
)->value
; /* autounbox from Object to Float */;
312 var1
= math__Float__log(var2
);
317 /* method math#Float#exp for (self: Float): Float */
318 double math__Float__exp(double self
) {
319 double var
/* : Float */;
320 double var1
/* : Float */;
321 var1
= kernel_Float_Float_exp_0(self
);
327 /* method math#Float#exp for (self: Object): Float */
328 double VIRTUAL_math__Float__exp(val
* self
) {
329 double var
/* : Float */;
330 double var1
/* : Float */;
331 double var2
/* : Float */;
332 var2
= ((struct instance_kernel__Float
*)self
)->value
; /* autounbox from Object to Float */;
333 var1
= math__Float__exp(var2
);
338 /* method math#Float#rand for (self: Float): Float */
339 double math__Float__rand(double self
) {
340 double var
/* : Float */;
341 double var1
/* : Float */;
342 var1
= kernel_Float_Float_rand_0(self
);
348 /* method math#Float#rand for (self: Object): Float */
349 double VIRTUAL_math__Float__rand(val
* self
) {
350 double var
/* : Float */;
351 double var1
/* : Float */;
352 double var2
/* : Float */;
353 var2
= ((struct instance_kernel__Float
*)self
)->value
; /* autounbox from Object to Float */;
354 var1
= math__Float__rand(var2
);
359 /* method math#Float#hypot_with for (self: Float, Float): Float */
360 double math__Float__hypot_with(double self
, double p0
) {
361 double var
/* : Float */;
362 double var1
/* : Float */;
363 var1
= hypotf(self
, p0
);
369 /* method math#Float#hypot_with for (self: Object, Float): Float */
370 double VIRTUAL_math__Float__hypot_with(val
* self
, double p0
) {
371 double var
/* : Float */;
372 double var1
/* : Float */;
373 double var2
/* : Float */;
374 var2
= ((struct instance_kernel__Float
*)self
)->value
; /* autounbox from Object to Float */;
375 var1
= math__Float__hypot_with(var2
, p0
);
380 /* method math#Float#is_nan for (self: Float): Bool */
381 short int math__Float__is_nan(double self
) {
382 short int var
/* : Bool */;
383 short int var1
/* : Bool */;
390 /* method math#Float#is_nan for (self: Object): Bool */
391 short int VIRTUAL_math__Float__is_nan(val
* self
) {
392 short int var
/* : Bool */;
393 short int var1
/* : Bool */;
394 double var2
/* : Float */;
395 var2
= ((struct instance_kernel__Float
*)self
)->value
; /* autounbox from Object to Float */;
396 var1
= math__Float__is_nan(var2
);
401 /* method math#Float#is_inf for (self: Float): Int */
402 long math__Float__is_inf(double self
) {
403 long var
/* : Int */;
404 short int var1
/* : Bool */;
405 double var2
/* : Float */;
406 short int var3
/* : Bool */;
407 short int var5
/* : Bool */;
410 const char* var_class_name
;
411 short int var6
/* : Bool */;
412 long var7
/* : Int */;
413 long var8
/* : Int */;
414 long var10
/* : Int */;
415 long var11
/* : Int */;
416 long var12
/* : Int */;
417 var1
= math__Float__is_inf_extern(self
);
420 { /* Inline kernel#Float#< (self,var2) */
421 /* Covariant cast for argument 0 (i) <var2:Float> isa OTHER */
422 /* <var2:Float> isa OTHER */
423 var5
= 1; /* easy <var2:Float> isa OTHER*/
425 var_class_name
= type_kernel__Float
.name
;
426 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
427 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 233);
437 { /* Inline kernel#Int#unary - (var7) */
458 /* method math#Float#is_inf for (self: Object): Int */
459 long VIRTUAL_math__Float__is_inf(val
* self
) {
460 long var
/* : Int */;
461 long var1
/* : Int */;
462 double var2
/* : Float */;
463 var2
= ((struct instance_kernel__Float
*)self
)->value
; /* autounbox from Object to Float */;
464 var1
= math__Float__is_inf(var2
);
469 /* method math#Float#is_inf_extern for (self: Float): Bool */
470 short int math__Float__is_inf_extern(double self
) {
471 short int var
/* : Bool */;
472 short int var1
/* : Bool */;
479 /* method math#Float#is_inf_extern for (self: Object): Bool */
480 short int VIRTUAL_math__Float__is_inf_extern(val
* self
) {
481 short int var
/* : Bool */;
482 short int var1
/* : Bool */;
483 double var2
/* : Float */;
484 var2
= ((struct instance_kernel__Float
*)self
)->value
; /* autounbox from Object to Float */;
485 var1
= math__Float__is_inf_extern(var2
);
490 /* method math#Collection#rand for (self: Collection[nullable Object]): nullable Object */
491 val
* math__Collection__rand(val
* self
) {
492 val
* var
/* : nullable Object */;
493 short int var1
/* : Bool */;
494 long var2
/* : Int */;
495 long var3
/* : Int */;
496 long var_rand_index
/* var rand_index: Int */;
497 val
* var4
/* : Iterator[nullable Object] */;
498 short int var5
/* : Bool */;
499 val
* var6
/* : nullable Object */;
500 val
* var_e
/* var e: nullable Object */;
501 long var7
/* : Int */;
502 short int var8
/* : Bool */;
503 short int var10
/* : Bool */;
504 long var11
/* : Int */;
505 long var12
/* : Int */;
506 long var14
/* : Int */;
507 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(self
) /* is_empty on <self:Collection[nullable Object]>*/;
509 fprintf(stderr
, "Runtime error: %s", "Aborted");
510 fprintf(stderr
, " (%s:%d)\n", "lib/standard/math.nit", 74);
514 var2
= ((long (*)(val
*))(self
->class->vft
[COLOR_abstract_collection__Collection__length
]))(self
) /* length on <self:Collection[nullable Object]>*/;
515 var3
= math__Int__rand(var2
);
516 var_rand_index
= var3
;
517 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(self
) /* iterator on <self:Collection[nullable Object]>*/;
519 var5
= ((short int (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var4
) /* is_ok on <var4:Iterator[nullable Object]>*/;
521 var6
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var4
) /* item on <var4:Iterator[nullable Object]>*/;
524 { /* Inline kernel#Int#== (var_rand_index,var7) */
525 var10
= var_rand_index
== var7
;
536 { /* Inline kernel#Int#- (var_rand_index,var11) */
537 var14
= var_rand_index
- var11
;
542 var_rand_index
= var12
;
543 CONTINUE_label
: (void)0;
544 ((void (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var4
) /* next on <var4:Iterator[nullable Object]>*/;
546 BREAK_label
: (void)0;
547 fprintf(stderr
, "Runtime error: %s", "Aborted");
548 fprintf(stderr
, " (%s:%d)\n", "lib/standard/math.nit", 81);
553 /* method math#Collection#rand for (self: Object): nullable Object */
554 val
* VIRTUAL_math__Collection__rand(val
* self
) {
555 val
* var
/* : nullable Object */;
556 val
* var1
/* : nullable Object */;
557 var1
= math__Collection__rand(self
);
562 /* method math#Object#atan2 for (self: Object, Float, Float): Float */
563 double math__Object__atan2(val
* self
, double p0
, double p1
) {
564 double var
/* : Float */;
565 double var1
/* : Float */;
566 var1
= kernel_Any_Any_atan2_2(self
, p0
, p1
);
572 /* method math#Object#atan2 for (self: Object, Float, Float): Float */
573 double VIRTUAL_math__Object__atan2(val
* self
, double p0
, double p1
) {
574 double var
/* : Float */;
575 double var1
/* : Float */;
576 var1
= math__Object__atan2(self
, p0
, p1
);
581 /* method math#Object#pi for (self: Object): Float */
582 double math__Object__pi(val
* self
) {
583 double var
/* : Float */;
584 double var1
/* : Float */;
585 var1
= kernel_Any_Any_pi_0(self
);
591 /* method math#Object#pi for (self: Object): Float */
592 double VIRTUAL_math__Object__pi(val
* self
) {
593 double var
/* : Float */;
594 double var1
/* : Float */;
595 var1
= math__Object__pi(self
);
600 /* method math#Object#srand_from for (self: Object, Int) */
601 void math__Object__srand_from(val
* self
, long p0
) {
602 kernel_Any_Any_srand_from_1(self
, p0
);
605 /* method math#Object#srand_from for (self: Object, Int) */
606 void VIRTUAL_math__Object__srand_from(val
* self
, long p0
) {
607 math__Object__srand_from(self
, p0
);
610 /* method math#Object#srand for (self: Object) */
611 void math__Object__srand(val
* self
) {
612 kernel_Any_Any_srand_0(self
);
615 /* method math#Object#srand for (self: Object) */
616 void VIRTUAL_math__Object__srand(val
* self
) {
617 math__Object__srand(self
);