6 #include <system_def.h>
8 unsigned long sqrtll(unsigned long long x);
9 unsigned long sqrtll_approx(unsigned long long x);
10 #define main sqrtll_main
12 #define sqrtll_ticks() (LPC_TIM0->TC)
14 #else /*OMK_FOR_TARGET*/
16 #include "math_sqrtll.c"
18 #define main sqrtll_main
20 #define lt_mstime_update() do {} while(0)
21 #define cli() do {} while(0)
22 #define sti() do {} while(0)
24 #endif /*OMK_FOR_TARGET*/
27 #define sqrtll_ticks() 0
30 int main(int argc, char *argv[])
32 unsigned long long sqr;
33 unsigned long res,inp,incr,cnt,time;
42 inp=strtoul(s,NULL,0);
43 sqr=(unsigned long long int)inp*inp;
46 res=sqrtll_approx(sqr);
47 spent=sqrtll_ticks()-spent;
49 printf("sqrtll: inp=%lu, res=%lu, spent=%u\n",inp,res,(int)spent);
56 sqr=(unsigned long long int)inp * inp;
57 res=sqrtll_approx(sqr);
58 if(0||(labs(inp-res)) >= eps){
59 printf("\nsqrt error %lu -> %lu diff %ld sqr 0x%llx\n",inp,res,inp-res,sqr);
61 res=sqrtll_approx(sqr);
64 if(inp>0xffffffff-incr)
67 if(inp&0xfff) continue;
68 if(inp&((incr<<19)-1)) continue;
70 printf(".");fflush(NULL);
73 time=actual_msec-time;
74 printf("\nsqrtll OK, spent %ld cnt %ld\n",time,cnt);