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:28,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:29,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:30,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 long var2
/* : Int */;
400 long var3
/* : Int */;
401 long var_rand_index
/* var rand_index: Int */;
402 val
* var4
/* : Iterator[nullable Object] */;
403 short int var5
/* : Bool */;
404 val
* var6
/* : nullable Object */;
405 val
* var_e
/* var e: nullable Object */;
406 long var7
/* : Int */;
407 short int var8
/* : Bool */;
408 short int var10
/* : Bool */;
409 long var11
/* : Int */;
410 long var12
/* : Int */;
411 long var14
/* : Int */;
412 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(self
) /* is_empty on <self:Collection[nullable Object]>*/;
414 fprintf(stderr
, "Runtime error: %s", "Aborted");
415 fprintf(stderr
, " (%s:%d)\n", "lib/standard/math.nit", 55);
419 var2
= ((long (*)(val
*))(self
->class->vft
[COLOR_abstract_collection__Collection__length
]))(self
) /* length on <self:Collection[nullable Object]>*/;
420 var3
= math__Int__rand(var2
);
421 var_rand_index
= var3
;
422 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(self
) /* iterator on <self:Collection[nullable Object]>*/;
424 var5
= ((short int (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var4
) /* is_ok on <var4:Iterator[nullable Object]>*/;
426 var6
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var4
) /* item on <var4:Iterator[nullable Object]>*/;
429 { /* Inline kernel#Int#== (var_rand_index,var7) */
430 var10
= var_rand_index
== var7
;
441 { /* Inline kernel#Int#- (var_rand_index,var11) */
442 var14
= var_rand_index
- var11
;
447 var_rand_index
= var12
;
448 CONTINUE_label
: (void)0;
449 ((void (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var4
) /* next on <var4:Iterator[nullable Object]>*/;
451 BREAK_label
: (void)0;
452 fprintf(stderr
, "Runtime error: %s", "Aborted");
453 fprintf(stderr
, " (%s:%d)\n", "lib/standard/math.nit", 62);
458 /* method math#Collection#rand for (self: Object): nullable Object */
459 val
* VIRTUAL_math__Collection__rand(val
* self
) {
460 val
* var
/* : nullable Object */;
461 val
* var1
/* : nullable Object */;
462 var1
= math__Collection__rand(self
);
467 /* method math#Object#atan2 for (self: Object, Float, Float): Float */
468 double math__Object__atan2(val
* self
, double p0
, double p1
) {
469 double var
/* : Float */;
470 double var1
/* : Float */;
471 var1
= kernel_Any_Any_atan2_2(self
, p0
, p1
);
477 /* method math#Object#atan2 for (self: Object, Float, Float): Float */
478 double VIRTUAL_math__Object__atan2(val
* self
, double p0
, double p1
) {
479 double var
/* : Float */;
480 double var1
/* : Float */;
481 var1
= math__Object__atan2(self
, p0
, p1
);
486 /* method math#Object#pi for (self: Object): Float */
487 double math__Object__pi(val
* self
) {
488 double var
/* : Float */;
489 double var1
/* : Float */;
490 var1
= kernel_Any_Any_pi_0(self
);
496 /* method math#Object#pi for (self: Object): Float */
497 double VIRTUAL_math__Object__pi(val
* self
) {
498 double var
/* : Float */;
499 double var1
/* : Float */;
500 var1
= math__Object__pi(self
);
505 /* method math#Object#srand_from for (self: Object, Int) */
506 void math__Object__srand_from(val
* self
, long p0
) {
507 kernel_Any_Any_srand_from_1(self
, p0
);
510 /* method math#Object#srand_from for (self: Object, Int) */
511 void VIRTUAL_math__Object__srand_from(val
* self
, long p0
) {
512 math__Object__srand_from(self
, p0
);
515 /* method math#Object#srand for (self: Object) */
516 void math__Object__srand(val
* self
) {
517 kernel_Any_Any_srand_0(self
);
520 /* method math#Object#srand for (self: Object) */
521 void VIRTUAL_math__Object__srand(val
* self
) {
522 math__Object__srand(self
);