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 fprintf(stderr
, "NOT YET IMPLEMENTED nitni for math#Int#sqrt at lib/standard/math.nit:24,2--51\n");
94 /* method math#Int#sqrt for (self: Object): Int */
95 long VIRTUAL_math__Int__sqrt(val
* self
) {
97 long var1
/* : Int */;
98 long var2
/* : Int */;
99 var2
= ((struct instance_kernel__Int
*)self
)->value
; /* autounbox from Object to Int */;
100 var1
= math__Int__sqrt(var2
);
105 /* method math#Int#sin for (self: Int): Int */
106 long math__Int__sin(long self
) {
107 long var
/* : Int */;
108 fprintf(stderr
, "NOT YET IMPLEMENTED nitni for math#Int#sin at lib/standard/math.nit:25,2--49\n");
113 /* method math#Int#sin for (self: Object): Int */
114 long VIRTUAL_math__Int__sin(val
* self
) {
115 long var
/* : Int */;
116 long var1
/* : Int */;
117 long var2
/* : Int */;
118 var2
= ((struct instance_kernel__Int
*)self
)->value
; /* autounbox from Object to Int */;
119 var1
= math__Int__sin(var2
);
124 /* method math#Int#cos for (self: Int): Int */
125 long math__Int__cos(long self
) {
126 long var
/* : Int */;
127 fprintf(stderr
, "NOT YET IMPLEMENTED nitni for math#Int#cos at lib/standard/math.nit:26,2--49\n");
132 /* method math#Int#cos for (self: Object): Int */
133 long VIRTUAL_math__Int__cos(val
* self
) {
134 long var
/* : Int */;
135 long var1
/* : Int */;
136 long var2
/* : Int */;
137 var2
= ((struct instance_kernel__Int
*)self
)->value
; /* autounbox from Object to Int */;
138 var1
= math__Int__cos(var2
);
143 /* method math#Float#sqrt for (self: Float): Float */
144 double math__Float__sqrt(double self
) {
145 double var
/* : Float */;
146 double var1
/* : Float */;
147 var1
= kernel_Float_Float_sqrt_0(self
);
153 /* method math#Float#sqrt for (self: Object): Float */
154 double VIRTUAL_math__Float__sqrt(val
* self
) {
155 double var
/* : Float */;
156 double var1
/* : Float */;
157 double var2
/* : Float */;
158 var2
= ((struct instance_kernel__Float
*)self
)->value
; /* autounbox from Object to Float */;
159 var1
= math__Float__sqrt(var2
);
164 /* method math#Float#cos for (self: Float): Float */
165 double math__Float__cos(double self
) {
166 double var
/* : Float */;
167 double var1
/* : Float */;
168 var1
= kernel_Float_Float_cos_0(self
);
174 /* method math#Float#cos for (self: Object): Float */
175 double VIRTUAL_math__Float__cos(val
* self
) {
176 double var
/* : Float */;
177 double var1
/* : Float */;
178 double var2
/* : Float */;
179 var2
= ((struct instance_kernel__Float
*)self
)->value
; /* autounbox from Object to Float */;
180 var1
= math__Float__cos(var2
);
185 /* method math#Float#sin for (self: Float): Float */
186 double math__Float__sin(double self
) {
187 double var
/* : Float */;
188 double var1
/* : Float */;
189 var1
= kernel_Float_Float_sin_0(self
);
195 /* method math#Float#sin for (self: Object): Float */
196 double VIRTUAL_math__Float__sin(val
* self
) {
197 double var
/* : Float */;
198 double var1
/* : Float */;
199 double var2
/* : Float */;
200 var2
= ((struct instance_kernel__Float
*)self
)->value
; /* autounbox from Object to Float */;
201 var1
= math__Float__sin(var2
);
206 /* method math#Float#tan for (self: Float): Float */
207 double math__Float__tan(double self
) {
208 double var
/* : Float */;
209 double var1
/* : Float */;
210 var1
= kernel_Float_Float_tan_0(self
);
216 /* method math#Float#tan for (self: Object): Float */
217 double VIRTUAL_math__Float__tan(val
* self
) {
218 double var
/* : Float */;
219 double var1
/* : Float */;
220 double var2
/* : Float */;
221 var2
= ((struct instance_kernel__Float
*)self
)->value
; /* autounbox from Object to Float */;
222 var1
= math__Float__tan(var2
);
227 /* method math#Float#acos for (self: Float): Float */
228 double math__Float__acos(double self
) {
229 double var
/* : Float */;
230 double var1
/* : Float */;
231 var1
= kernel_Float_Float_acos_0(self
);
237 /* method math#Float#acos for (self: Object): Float */
238 double VIRTUAL_math__Float__acos(val
* self
) {
239 double var
/* : Float */;
240 double var1
/* : Float */;
241 double var2
/* : Float */;
242 var2
= ((struct instance_kernel__Float
*)self
)->value
; /* autounbox from Object to Float */;
243 var1
= math__Float__acos(var2
);
248 /* method math#Float#asin for (self: Float): Float */
249 double math__Float__asin(double self
) {
250 double var
/* : Float */;
251 double var1
/* : Float */;
252 var1
= kernel_Float_Float_asin_0(self
);
258 /* method math#Float#asin for (self: Object): Float */
259 double VIRTUAL_math__Float__asin(val
* self
) {
260 double var
/* : Float */;
261 double var1
/* : Float */;
262 double var2
/* : Float */;
263 var2
= ((struct instance_kernel__Float
*)self
)->value
; /* autounbox from Object to Float */;
264 var1
= math__Float__asin(var2
);
269 /* method math#Float#atan for (self: Float): Float */
270 double math__Float__atan(double self
) {
271 double var
/* : Float */;
272 double var1
/* : Float */;
273 var1
= kernel_Float_Float_atan_0(self
);
279 /* method math#Float#atan for (self: Object): Float */
280 double VIRTUAL_math__Float__atan(val
* self
) {
281 double var
/* : Float */;
282 double var1
/* : Float */;
283 double var2
/* : Float */;
284 var2
= ((struct instance_kernel__Float
*)self
)->value
; /* autounbox from Object to Float */;
285 var1
= math__Float__atan(var2
);
290 /* method math#Float#pow for (self: Float, Float): Float */
291 double math__Float__pow(double self
, double p0
) {
292 double var
/* : Float */;
293 double var1
/* : Float */;
294 var1
= kernel_Float_Float_pow_1(self
, p0
);
300 /* method math#Float#pow for (self: Object, Float): Float */
301 double VIRTUAL_math__Float__pow(val
* self
, double p0
) {
302 double var
/* : Float */;
303 double var1
/* : Float */;
304 double var2
/* : Float */;
305 var2
= ((struct instance_kernel__Float
*)self
)->value
; /* autounbox from Object to Float */;
306 var1
= math__Float__pow(var2
, p0
);
311 /* method math#Float#log for (self: Float): Float */
312 double math__Float__log(double self
) {
313 double var
/* : Float */;
314 double var1
/* : Float */;
315 var1
= kernel_Float_Float_log_0(self
);
321 /* method math#Float#log for (self: Object): Float */
322 double VIRTUAL_math__Float__log(val
* self
) {
323 double var
/* : Float */;
324 double var1
/* : Float */;
325 double var2
/* : Float */;
326 var2
= ((struct instance_kernel__Float
*)self
)->value
; /* autounbox from Object to Float */;
327 var1
= math__Float__log(var2
);
332 /* method math#Float#exp for (self: Float): Float */
333 double math__Float__exp(double self
) {
334 double var
/* : Float */;
335 double var1
/* : Float */;
336 var1
= kernel_Float_Float_exp_0(self
);
342 /* method math#Float#exp for (self: Object): Float */
343 double VIRTUAL_math__Float__exp(val
* self
) {
344 double var
/* : Float */;
345 double var1
/* : Float */;
346 double var2
/* : Float */;
347 var2
= ((struct instance_kernel__Float
*)self
)->value
; /* autounbox from Object to Float */;
348 var1
= math__Float__exp(var2
);
353 /* method math#Float#rand for (self: Float): Float */
354 double math__Float__rand(double self
) {
355 double var
/* : Float */;
356 double var1
/* : Float */;
357 var1
= kernel_Float_Float_rand_0(self
);
363 /* method math#Float#rand for (self: Object): Float */
364 double VIRTUAL_math__Float__rand(val
* self
) {
365 double var
/* : Float */;
366 double var1
/* : Float */;
367 double var2
/* : Float */;
368 var2
= ((struct instance_kernel__Float
*)self
)->value
; /* autounbox from Object to Float */;
369 var1
= math__Float__rand(var2
);
374 /* method math#Float#hypot_with for (self: Float, Float): Float */
375 double math__Float__hypot_with(double self
, double p0
) {
376 double var
/* : Float */;
377 double var1
/* : Float */;
378 var1
= hypotf(self
, p0
);
384 /* method math#Float#hypot_with for (self: Object, Float): Float */
385 double VIRTUAL_math__Float__hypot_with(val
* self
, double p0
) {
386 double var
/* : Float */;
387 double var1
/* : Float */;
388 double var2
/* : Float */;
389 var2
= ((struct instance_kernel__Float
*)self
)->value
; /* autounbox from Object to Float */;
390 var1
= math__Float__hypot_with(var2
, p0
);
395 /* method math#Collection#rand for (self: Collection[nullable Object]): nullable Object */
396 val
* math__Collection__rand(val
* self
) {
397 val
* var
/* : nullable Object */;
398 short int var1
/* : Bool */;
399 val
* var2
/* : null */;
400 long var3
/* : Int */;
401 long var4
/* : Int */;
402 long var_rand_index
/* var rand_index: Int */;
403 val
* var5
/* : Iterator[nullable Object] */;
404 short int var6
/* : Bool */;
405 val
* var7
/* : nullable Object */;
406 val
* var_e
/* var e: nullable Object */;
407 long var8
/* : Int */;
408 short int var9
/* : Bool */;
409 short int var11
/* : Bool */;
410 long var12
/* : Int */;
411 long var13
/* : Int */;
412 long var15
/* : Int */;
413 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(self
) /* is_empty on <self:Collection[nullable Object]>*/;
420 var3
= ((long (*)(val
*))(self
->class->vft
[COLOR_abstract_collection__Collection__length
]))(self
) /* length on <self:Collection[nullable Object]>*/;
421 var4
= math__Int__rand(var3
);
422 var_rand_index
= var4
;
423 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(self
) /* iterator on <self:Collection[nullable Object]>*/;
425 var6
= ((short int (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var5
) /* is_ok on <var5:Iterator[nullable Object]>*/;
427 var7
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var5
) /* item on <var5:Iterator[nullable Object]>*/;
430 { /* Inline kernel#Int#== (var_rand_index,var8) */
431 var11
= var_rand_index
== var8
;
442 { /* Inline kernel#Int#- (var_rand_index,var12) */
443 var15
= var_rand_index
- var12
;
448 var_rand_index
= var13
;
449 CONTINUE_label
: (void)0;
450 ((void (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var5
) /* next on <var5:Iterator[nullable Object]>*/;
452 BREAK_label
: (void)0;
453 fprintf(stderr
, "Runtime error: %s", "Aborted");
454 fprintf(stderr
, " (%s:%d)\n", "lib/standard/math.nit", 57);
459 /* method math#Collection#rand for (self: Object): nullable Object */
460 val
* VIRTUAL_math__Collection__rand(val
* self
) {
461 val
* var
/* : nullable Object */;
462 val
* var1
/* : nullable Object */;
463 var1
= math__Collection__rand(self
);
468 /* method math#Object#atan2 for (self: Object, Float, Float): Float */
469 double math__Object__atan2(val
* self
, double p0
, double p1
) {
470 double var
/* : Float */;
471 double var1
/* : Float */;
472 var1
= kernel_Any_Any_atan2_2(self
, p0
, p1
);
478 /* method math#Object#atan2 for (self: Object, Float, Float): Float */
479 double VIRTUAL_math__Object__atan2(val
* self
, double p0
, double p1
) {
480 double var
/* : Float */;
481 double var1
/* : Float */;
482 var1
= math__Object__atan2(self
, p0
, p1
);
487 /* method math#Object#pi for (self: Object): Float */
488 double math__Object__pi(val
* self
) {
489 double var
/* : Float */;
490 double var1
/* : Float */;
491 var1
= kernel_Any_Any_pi_0(self
);
497 /* method math#Object#pi for (self: Object): Float */
498 double VIRTUAL_math__Object__pi(val
* self
) {
499 double var
/* : Float */;
500 double var1
/* : Float */;
501 var1
= math__Object__pi(self
);
506 /* method math#Object#srand_from for (self: Object, Int) */
507 void math__Object__srand_from(val
* self
, long p0
) {
508 kernel_Any_Any_srand_from_1(self
, p0
);
511 /* method math#Object#srand_from for (self: Object, Int) */
512 void VIRTUAL_math__Object__srand_from(val
* self
, long p0
) {
513 math__Object__srand_from(self
, p0
);
516 /* method math#Object#srand for (self: Object) */
517 void math__Object__srand(val
* self
) {
518 kernel_Any_Any_srand_0(self
);
521 /* method math#Object#srand for (self: Object) */
522 void VIRTUAL_math__Object__srand(val
* self
) {
523 math__Object__srand(self
);