c_src: update for kill is
[nit.git] / c_src / math.sep.1.c
1 #include "math.sep.0.h"
2 /* method math#Int#rand for (self: Int): Int */
3 long math__Int__rand(long self) {
4 long var /* : Int */;
5 long var1 /* : Int */;
6 var1 = kernel_Int_Int_rand_0(self);
7 var = var1;
8 goto RET_LABEL;
9 RET_LABEL:;
10 return var;
11 }
12 /* method math#Int#rand for (self: Object): Int */
13 long VIRTUAL_math__Int__rand(val* self) {
14 long var /* : Int */;
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);
19 var = var1;
20 RET_LABEL:;
21 return var;
22 }
23 /* method math#Int#bin_and for (self: Int, Int): Int */
24 long math__Int__bin_and(long self, long p0) {
25 long var /* : Int */;
26 long var1 /* : Int */;
27 var1 = kernel_Int_Int_binand_0(self, p0);
28 var = var1;
29 goto RET_LABEL;
30 RET_LABEL:;
31 return var;
32 }
33 /* method math#Int#bin_and for (self: Object, Int): Int */
34 long VIRTUAL_math__Int__bin_and(val* self, long p0) {
35 long var /* : Int */;
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);
40 var = var1;
41 RET_LABEL:;
42 return var;
43 }
44 /* method math#Int#bin_or for (self: Int, Int): Int */
45 long math__Int__bin_or(long self, long p0) {
46 long var /* : Int */;
47 long var1 /* : Int */;
48 var1 = kernel_Int_Int_binor_0(self, p0);
49 var = var1;
50 goto RET_LABEL;
51 RET_LABEL:;
52 return var;
53 }
54 /* method math#Int#bin_or for (self: Object, Int): Int */
55 long VIRTUAL_math__Int__bin_or(val* self, long p0) {
56 long var /* : Int */;
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);
61 var = var1;
62 RET_LABEL:;
63 return var;
64 }
65 /* method math#Int#bin_xor for (self: Int, Int): Int */
66 long math__Int__bin_xor(long self, long p0) {
67 long var /* : Int */;
68 long var1 /* : Int */;
69 var1 = kernel_Int_Int_binxor_0(self, p0);
70 var = var1;
71 goto RET_LABEL;
72 RET_LABEL:;
73 return var;
74 }
75 /* method math#Int#bin_xor for (self: Object, Int): Int */
76 long VIRTUAL_math__Int__bin_xor(val* self, long p0) {
77 long var /* : Int */;
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);
82 var = var1;
83 RET_LABEL:;
84 return var;
85 }
86 /* method math#Int#sqrt for (self: Int): Int */
87 long math__Int__sqrt(long self) {
88 long var /* : Int */;
89 fprintf(stderr, "NOT YET IMPLEMENTED nitni for math#Int#sqrt at lib/standard/math.nit:24,2--51\n");
90 exit(1);
91 RET_LABEL:;
92 return var;
93 }
94 /* method math#Int#sqrt for (self: Object): Int */
95 long VIRTUAL_math__Int__sqrt(val* self) {
96 long var /* : Int */;
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);
101 var = var1;
102 RET_LABEL:;
103 return var;
104 }
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");
109 exit(1);
110 RET_LABEL:;
111 return var;
112 }
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);
120 var = var1;
121 RET_LABEL:;
122 return var;
123 }
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");
128 exit(1);
129 RET_LABEL:;
130 return var;
131 }
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);
139 var = var1;
140 RET_LABEL:;
141 return var;
142 }
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);
148 var = var1;
149 goto RET_LABEL;
150 RET_LABEL:;
151 return var;
152 }
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);
160 var = var1;
161 RET_LABEL:;
162 return var;
163 }
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);
169 var = var1;
170 goto RET_LABEL;
171 RET_LABEL:;
172 return var;
173 }
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);
181 var = var1;
182 RET_LABEL:;
183 return var;
184 }
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);
190 var = var1;
191 goto RET_LABEL;
192 RET_LABEL:;
193 return var;
194 }
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);
202 var = var1;
203 RET_LABEL:;
204 return var;
205 }
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);
211 var = var1;
212 goto RET_LABEL;
213 RET_LABEL:;
214 return var;
215 }
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);
223 var = var1;
224 RET_LABEL:;
225 return var;
226 }
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);
232 var = var1;
233 goto RET_LABEL;
234 RET_LABEL:;
235 return var;
236 }
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);
244 var = var1;
245 RET_LABEL:;
246 return var;
247 }
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);
253 var = var1;
254 goto RET_LABEL;
255 RET_LABEL:;
256 return var;
257 }
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);
265 var = var1;
266 RET_LABEL:;
267 return var;
268 }
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);
274 var = var1;
275 goto RET_LABEL;
276 RET_LABEL:;
277 return var;
278 }
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);
286 var = var1;
287 RET_LABEL:;
288 return var;
289 }
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);
295 var = var1;
296 goto RET_LABEL;
297 RET_LABEL:;
298 return var;
299 }
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);
307 var = var1;
308 RET_LABEL:;
309 return var;
310 }
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);
316 var = var1;
317 goto RET_LABEL;
318 RET_LABEL:;
319 return var;
320 }
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);
328 var = var1;
329 RET_LABEL:;
330 return var;
331 }
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);
337 var = var1;
338 goto RET_LABEL;
339 RET_LABEL:;
340 return var;
341 }
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);
349 var = var1;
350 RET_LABEL:;
351 return var;
352 }
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);
358 var = var1;
359 goto RET_LABEL;
360 RET_LABEL:;
361 return var;
362 }
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);
370 var = var1;
371 RET_LABEL:;
372 return var;
373 }
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);
379 var = var1;
380 goto RET_LABEL;
381 RET_LABEL:;
382 return var;
383 }
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);
391 var = var1;
392 RET_LABEL:;
393 return var;
394 }
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]>*/;
414 if (var1){
415 var2 = NULL;
416 var = var2;
417 goto RET_LABEL;
418 } else {
419 }
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]>*/;
424 for(;;) {
425 var6 = ((short int (*)(val*))(var5->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var5) /* is_ok on <var5:Iterator[nullable Object]>*/;
426 if(!var6) break;
427 var7 = ((val* (*)(val*))(var5->class->vft[COLOR_abstract_collection__Iterator__item]))(var5) /* item on <var5:Iterator[nullable Object]>*/;
428 var_e = var7;
429 var8 = 0;
430 { /* Inline kernel#Int#== (var_rand_index,var8) */
431 var11 = var_rand_index == var8;
432 var9 = var11;
433 goto RET_LABEL10;
434 RET_LABEL10:(void)0;
435 }
436 if (var9){
437 var = var_e;
438 goto RET_LABEL;
439 } else {
440 }
441 var12 = 1;
442 { /* Inline kernel#Int#- (var_rand_index,var12) */
443 var15 = var_rand_index - var12;
444 var13 = var15;
445 goto RET_LABEL14;
446 RET_LABEL14:(void)0;
447 }
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]>*/;
451 }
452 BREAK_label: (void)0;
453 fprintf(stderr, "Runtime error: %s", "Aborted");
454 fprintf(stderr, " (%s:%d)\n", "lib/standard/math.nit", 57);
455 exit(1);
456 RET_LABEL:;
457 return var;
458 }
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);
464 var = var1;
465 RET_LABEL:;
466 return var;
467 }
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);
473 var = var1;
474 goto RET_LABEL;
475 RET_LABEL:;
476 return var;
477 }
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);
483 var = var1;
484 RET_LABEL:;
485 return var;
486 }
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);
492 var = var1;
493 goto RET_LABEL;
494 RET_LABEL:;
495 return var;
496 }
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);
502 var = var1;
503 RET_LABEL:;
504 return var;
505 }
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);
509 RET_LABEL:;
510 }
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);
514 RET_LABEL:;
515 }
516 /* method math#Object#srand for (self: Object) */
517 void math__Object__srand(val* self) {
518 kernel_Any_Any_srand_0(self);
519 RET_LABEL:;
520 }
521 /* method math#Object#srand for (self: Object) */
522 void VIRTUAL_math__Object__srand(val* self) {
523 math__Object__srand(self);
524 RET_LABEL:;
525 }