/ nimble-linux / @m..@s..@s..@s..@s.choosenim@stoolchains@snim-@hversion-1-6@slib@spure@smath.nim.c
@m..@s..@s..@s..@s.choosenim@stoolchains@snim-@hversion-1-6@slib@spure@smath.nim.c
  1  /* Generated by Nim Compiler v1.6.11 */
  2  #define NIM_INTBITS 64
  3  
  4  #include "nimbase.h"
  5  #undef LANGUAGE_C
  6  #undef MIPSEB
  7  #undef MIPSEL
  8  #undef PPC
  9  #undef R3000
 10  #undef R4000
 11  #undef i386
 12  #undef linux
 13  #undef mips
 14  #undef near
 15  #undef far
 16  #undef powerpc
 17  #undef unix
 18    #  define nimfr_(proc, file) \
 19        TFrame FR_; \
 20        FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_);
 21  
 22    #  define nimfrs_(proc, file, slots, length) \
 23        struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename; NI len; VarSlot s[slots];} FR_; \
 24        FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_);
 25  
 26    #  define nimln_(n, file) \
 27        FR_.line = n; FR_.filename = file;
 28    typedef struct tyTuple__q4xn9bvzjB0QCTcS8bELuDQ tyTuple__q4xn9bvzjB0QCTcS8bELuDQ;
 29  struct tyTuple__q4xn9bvzjB0QCTcS8bELuDQ {
 30  NF Field0;
 31  NI Field1;
 32  };
 33  static N_INLINE(void, stareq___pureZstrutils_2165)(NF* x, NF y);
 34  static N_INLINE(void, nimFrame)(TFrame* s);
 35  N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_2997)(void);
 36  static N_INLINE(void, popFrame)(void);
 37  N_LIB_PRIVATE N_NOINLINE(void, raiseRangeErrorI)(NI64 i, NI64 a, NI64 b);
 38  extern TFrame* framePtr__system_2564;
 39  extern TFrame* framePtr__system_2564;
 40  extern TFrame* framePtr__system_2564;
 41  extern TFrame* framePtr__system_2564;
 42  extern TFrame* framePtr__system_2564;
 43  extern TFrame* framePtr__system_2564;
 44  N_LIB_PRIVATE N_NIMCALL(NI, nextPowerOfTwo__pureZmath_181)(NI x) {
 45  	NI result;
 46  	result = (NI)0;
 47  	result = (NI)(x - ((NI) 1));
 48  	result = (NI)(result | (NI)((NI64)(result) >> (NU64)(((NI) 32))));
 49  	result = (NI)(result | (NI)((NI64)(result) >> (NU64)(((NI) 16))));
 50  	result = (NI)(result | (NI)((NI64)(result) >> (NU64)(((NI) 8))));
 51  	result = (NI)(result | (NI)((NI64)(result) >> (NU64)(((NI) 4))));
 52  	result = (NI)(result | (NI)((NI64)(result) >> (NU64)(((NI) 2))));
 53  	result = (NI)(result | (NI)((NI64)(result) >> (NU64)(((NI) 1))));
 54  	result += (NI)(((NI) 1) + (x <= ((NI) 0)));
 55  	return result;
 56  }
 57  N_LIB_PRIVATE N_NIMCALL(NI64, floorDiv__pureZtimes_260)(NI64 x, NI64 y) {
 58  	NI64 result;
 59  	NI64 r;
 60  	result = (NI64)0;
 61  	result = (NI64)(x / y);
 62  	r = (NI64)(x % y);
 63  	{
 64  		NIM_BOOL T3_;
 65  		NIM_BOOL T4_;
 66  		NIM_BOOL T7_;
 67  		T3_ = (NIM_BOOL)0;
 68  		T4_ = (NIM_BOOL)0;
 69  		T4_ = (IL64(0) < r);
 70  		if (!(T4_)) goto LA5_;
 71  		T4_ = (y < IL64(0));
 72  		LA5_: ;
 73  		T3_ = T4_;
 74  		if (T3_) goto LA6_;
 75  		T7_ = (NIM_BOOL)0;
 76  		T7_ = (r < IL64(0));
 77  		if (!(T7_)) goto LA8_;
 78  		T7_ = (IL64(0) < y);
 79  		LA8_: ;
 80  		T3_ = T7_;
 81  		LA6_: ;
 82  		if (!T3_) goto LA9_;
 83  		result -= ((NI) 1);
 84  	}
 85  	LA9_: ;
 86  	return result;
 87  }
 88  static N_INLINE(void, nimFrame)(TFrame* s) {
 89  	{
 90  		if (!(framePtr__system_2564 == ((TFrame*) NIM_NIL))) goto LA3_;
 91  		(*s).calldepth = ((NI16) 0);
 92  	}
 93  	goto LA1_;
 94  	LA3_: ;
 95  	{
 96  		(*s).calldepth = (NI16)((*framePtr__system_2564).calldepth + ((NI16) 1));
 97  	}
 98  	LA1_: ;
 99  	(*s).prev = framePtr__system_2564;
100  	framePtr__system_2564 = s;
101  	{
102  		if (!((*s).calldepth == ((NI16) 2000))) goto LA8_;
103  		callDepthLimitReached__system_2997();
104  	}
105  	LA8_: ;
106  }
107  static N_INLINE(void, popFrame)(void) {
108  	framePtr__system_2564 = (*framePtr__system_2564).prev;
109  }
110  static N_INLINE(void, stareq___pureZstrutils_2165)(NF* x, NF y) {
111  	nimfr_("*=", "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/system.nim");
112  	nimln_(2727, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/system.nim");
113  	(*x) = ((NF)((*x)) * (NF)(y));
114  	popFrame();
115  }
116  N_LIB_PRIVATE N_NIMCALL(NF, roof___nimblepkgZdevelopfile_33338)(NF x, NI y) {
117  	NF result;
118  	nimfr_("^", "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/math.nim");
119  	result = (NF)0;
120  	nimln_(1154, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/math.nim");
121  	switch (y) {
122  	case ((NI) 0):
123  	{
124  		nimln_(1155, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/math.nim");
125  		result = 1.0;
126  	}
127  	break;
128  	case ((NI) 1):
129  	{
130  		nimln_(1156, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/math.nim");
131  		result = x;
132  	}
133  	break;
134  	case ((NI) 2):
135  	{
136  		nimln_(1157, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/math.nim");
137  		result = ((NF)(x) * (NF)(x));
138  	}
139  	break;
140  	case ((NI) 3):
141  	{
142  		nimln_(1158, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/math.nim");
143  		result = ((NF)(((NF)(x) * (NF)(x))) * (NF)(x));
144  	}
145  	break;
146  	default:
147  	{
148  		tyTuple__q4xn9bvzjB0QCTcS8bELuDQ T6_;
149  		NF x_2;
150  		NI y_2;
151  		nimln_(1160, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/math.nim");
152  		T6_.Field0 = x;
153  		T6_.Field1 = y;
154  		x_2 = T6_.Field0;
155  		y_2 = T6_.Field1;
156  		nimln_(1161, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/math.nim");
157  		result = 1.0;
158  		{
159  			nimln_(1162, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/math.nim");
160  			while (1) {
161  				nimln_(1163, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/math.nim");
162  				{
163  					if (!!(((NI)(((NI) (y_2)) & ((NI) 1)) == ((NI) 0)))) goto LA11_;
164  					nimln_(1164, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/math.nim");
165  					stareq___pureZstrutils_2165((&result), x_2);
166  				}
167  				LA11_: ;
168  				nimln_(1165, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/math.nim");
169  				if (((NI)((NI64)(((NI) (y_2))) >> (NU64)(((NI) 1)))) < ((NI) 0) || ((NI)((NI64)(((NI) (y_2))) >> (NU64)(((NI) 1)))) > ((NI) IL64(9223372036854775807))){ raiseRangeErrorI((NI)((NI64)(((NI) (y_2))) >> (NU64)(((NI) 1))), ((NI) 0), ((NI) IL64(9223372036854775807))); }
170  				y_2 = ((NI) ((NI)((NI64)(((NI) (y_2))) >> (NU64)(((NI) 1)))));
171  				nimln_(1166, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/math.nim");
172  				{
173  					if (!(((NI) (y_2)) == ((NI) 0))) goto LA15_;
174  					nimln_(1167, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/math.nim");
175  					goto LA7;
176  				}
177  				LA15_: ;
178  				nimln_(1168, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/math.nim");
179  				stareq___pureZstrutils_2165((&x_2), x_2);
180  			}
181  		} LA7: ;
182  	}
183  	break;
184  	}
185  	popFrame();
186  	return result;
187  }