Пример #1
0
int main(int argc, char **argv)
{
    int i = 1;

    // starting from 1
    for (i = 1; i < 11; ++i)
        printf(
            "sqrt_bsearch(%d)=%lf, sqrt_newton(%d)=%lf\n",
            i, sqrt_bsearch(i), i, sqrt_newton(i)
        );

    return 0;
}
Пример #2
0
int main(void)
{
  long start=0;
  unsigned long i;
  
  /* sanity test */
  
  for(i=0;i<10;i++)
  {
    printf("sqrt(%10li) = %5li strt, %5li earx, %5li nyh1, %5li anon, %7.0f mlib\n"        
           , i, sqrt_strt(i), sqrt_earx(i), sqrt_nyh1(i), sqrt_anon(i), sqrt((double)i));
  }
  i=37;                                                                                                                                                    
  printf("sqrt(%10li) = %5li strt, %5li earx, %5li nyh1, %5li anon, %7.0f mlib\n"
         , i, sqrt_strt(i), sqrt_earx(i), sqrt_nyh1(i), sqrt_anon(i), sqrt((double)i));
  i=128;                                                                                                                                                   
  printf("sqrt(%10li) = %5li strt, %5li earx, %5li nyh1, %5li anon, %7.0f mlib\n"
         , i, sqrt_strt(i), sqrt_earx(i), sqrt_nyh1(i), sqrt_anon(i), sqrt((double)i));
  i=1023;                                                                                                                                                 
  printf("sqrt(%10li) = %5li strt, %5li earx, %5li nyh1, %5li anon, %7.0f mlib\n"
         , i, sqrt_strt(i), sqrt_earx(i), sqrt_nyh1(i), sqrt_anon(i), sqrt((double)i));
  i=10234567L;                                                                                                                                            
  printf("sqrt(%10li) = %5li strt, %5li earx, %5li nyh1, %5li anon, %7.0f mlib\n"
         , i, sqrt_strt(i), sqrt_earx(i), sqrt_nyh1(i), sqrt_anon(i), sqrt((double)i));
  i=0xfffffffL;                                                                                                                                           
  printf("sqrt(%10li) = %5li strt, %5li earx, %5li nyh1, %5li anon, %7.0f mlib\n"
         , i, sqrt_strt(i), sqrt_earx(i), sqrt_nyh1(i), sqrt_anon(i), sqrt((double)i));
  i=0x7fffffffL;                                                                                                                                          
  printf("sqrt(%10li) = %5li strt, %5li earx, %5li nyh1, %5li anon, %7.0f mlib\n"
         , i, sqrt_strt(i), sqrt_earx(i), sqrt_nyh1(i), sqrt_anon(i), sqrt((double)i));
  i=0x12345678L;                                                                                                                                          
  printf("sqrt(%10li) = %5li strt, %5li earx, %5li nyh1, %5li anon, %7.0f mlib\n"
         , i, sqrt_strt(i), sqrt_earx(i), sqrt_nyh1(i), sqrt_anon(i), sqrt((double)i));
  i=0x77654321L;                                                                                                                                          
  printf("sqrt(%10li) = %5li strt, %5li earx, %5li nyh1, %5li anon, %7.0f mlib\n"
         , i, sqrt_strt(i), sqrt_earx(i), sqrt_nyh1(i), sqrt_anon(i), sqrt((double)i));
  i=0x87654321UL;                                                                                                                                          
  printf("sqrt(%10li) = %5li strt, %5li earx, %5li nyh1, %5li anon, %7.0f mlib\n"
         , i, sqrt_strt(i), sqrt_earx(i), sqrt_nyh1(i), sqrt_anon(i), sqrt((double)i));
  i=0xabcdef01UL;                                                                                                                                          
  printf("sqrt(%10li) = %5li strt, %5li earx, %5li nyh1, %5li anon, %7.0f mlib\n"
         , i, sqrt_strt(i), sqrt_earx(i), sqrt_nyh1(i), sqrt_anon(i), sqrt((double)i));
  i=0xfbcdef01UL;                                                                                                                                          
  printf("sqrt(%10li) = %5li strt, %5li earx, %5li nyh1, %5li anon, %7.0f mlib\n"
         , i, sqrt_strt(i), sqrt_earx(i), sqrt_nyh1(i), sqrt_anon(i), sqrt((double)i));
  i=0xffffffffUL;                                                                                                                                          
  printf("sqrt(%10li) = %5li strt, %5li earx, %5li nyh1, %5li anon, %7.0f mlib\n"
         , i, sqrt_strt(i), sqrt_earx(i), sqrt_nyh1(i), sqrt_anon(i), sqrt((double)i));

#if 0
  {
    FILE* f;
    if((f=fopen("sqrt_res.txt","w"))==NULL)
    {
      printf("File open error!\n");
      return -1;
    }
    start = clock();
    i=0x0UL;
    do
    {
      long res=sqrt_strt(i);
      long res2=sqrt_nyh1(i);
      if((res!=res2) && (res!=res2+1))
      {
        printf("sqrt(%lX) = %lX strt, %lX math\n",i, res,res2);
        fprintf(f,"sqrt(%lX) = %lX strt, %lX math\n",i, res,res2);

      }
      i++;
    }
    while(i!=0);
    printf("Time used for sqrt strt: %lf sec.\n",
           ((float)((clock()-start))/(float)CLK_TCK));
    fprintf(f,"Time used for sqrt strt: %lf sec.\n",
           ((float)((clock()-start))/(float)CLK_TCK));
    fclose(f);
  }
#endif

#if 1
  start = clock();
  for(i=0;i<TEST_RANGE;i++)
  {
    sqrt_strt(i);
  }
  printf("Time used for sqrt strt: %lf sec.\n",
         ((float)((clock()-start))/(float)CLK_TCK));

  start = clock();
  for(i=0;i<TEST_RANGE;i++)
  {
    sqrt_earx(i);
  }
  printf("Time used for sqrt earx: %lf sec.\n",
         ((float)((clock()-start))/(float)CLK_TCK));

  start = clock();
  for(i=0;i<TEST_RANGE;i++)
  {
    sqrt_nyh1(i);
  }
  printf("Time used for sqrt nyh1: %lf sec.\n",
         ((float)((clock()-start))/(float)CLK_TCK));

  start = clock();
  for(i=0;i<TEST_RANGE;i++)
  {
    sqrt_tobe(i);
  }
  printf("Time used for sqrt tobe: %lf sec.\n",
         ((float)((clock()-start))/(float)CLK_TCK));


  start = clock();
  for(i=0;i<TEST_RANGE;i++)
  {
    sqrt((double)i);
  }
  printf("Time used for sqrt flib: %lf sec.\n",
         ((float)((clock()-start))/(float)CLK_TCK));

  start = clock();
  for(i=0;i<TEST_RANGE;i++)
  {
    wortel(i);
  }
  printf("Time used for sqrt wortel: %lf sec.\n",
         ((float)((clock()-start))/(float)CLK_TCK));

  start = clock();
  for(i=0;i<TEST_RANGE;i++)
  {
    sqrt_newton(i);
  }
  printf("Time used for sqrt newton: %lf sec.\n",
         ((float)((clock()-start))/(float)CLK_TCK));

  start = clock();
  for(i=0;i<TEST_RANGE;i++)
  {
    sqrt_newtonf(i);
  }
  printf("Time used for sqrt newtonf: %lf sec.\n",
         ((float)((clock()-start))/(float)CLK_TCK));

  start = clock();
  for(i=0;i<TEST_RANGE;i++)
  {
    sqrt_anon(i);
  }
  printf("Time used for sqrt anon: %lf sec.\n",
         ((float)((clock()-start))/(float)CLK_TCK));

#endif
  return 0;
}