home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / CPP / LONGFI.ZIP / TEST.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1994-10-07  |  1.7 KB  |  80 lines

  1. #include <iostream.h>
  2. #include <timer.h>
  3. #include "long_fix.h"
  4.  
  5. class dbl_class
  6. {
  7.   private:
  8.     double num;
  9.  
  10.   public:
  11.     dbl_class () { num = 0.0; }
  12.     dbl_class (double n) { num = n; }
  13.     dbl_class &operator+= ( const dbl_class &sec );
  14.     dbl_class &operator-= ( const dbl_class &sec );
  15.     int  operator<  ( const dbl_class &sec ) const;
  16. };
  17.  
  18. dbl_class &dbl_class::operator+= ( const dbl_class &sec )
  19. {
  20.     num += sec.num;
  21.     return *this;
  22. }
  23.  
  24. dbl_class &dbl_class::operator-= ( const dbl_class &sec )
  25. {
  26.    num -= sec.num;
  27.    return *this;
  28. }
  29.  
  30. int  dbl_class::operator<  ( const dbl_class &sec ) const
  31. {
  32.     return (num < sec.num);
  33. }
  34.  
  35. long_fixed r_inc = 1.23456789;
  36. dbl_class  d_inc = 1.23456789;
  37.  
  38. const long_fixed r_is  = 50000.0;
  39. const dbl_class  d_is  = 50000.0;
  40.  
  41. void main (void)
  42. {
  43.     Timer tm;
  44.     long_fixed ri, r_ans;
  45.     dbl_class  di, d_ans;
  46.  
  47.     cout << "Comparison with decimal positions\n";
  48.     tm.start();
  49.     tm.reset();
  50.     for (di = 0.0; di < d_is; di += d_inc)
  51.         d_ans -= di;
  52.     tm.stop();
  53.     cout << "dbl_class time  = " << tm.time() << '\n';
  54.  
  55.     tm.start();
  56.     tm.reset();
  57.     for (ri = 0.0; ri < r_is; ri += r_inc)
  58.         r_ans -= ri;
  59.     tm.stop();
  60.     cout << "long_fixed time = " << tm.time() << '\n';
  61.  
  62.     r_inc = 1.0;
  63.     d_inc = 1.0;
  64.  
  65.     cout << "\nComparison without decimal positions\n";
  66.     tm.start();
  67.     tm.reset();
  68.     for (di = 0.0; di < d_is; di += d_inc)
  69.         d_ans -= di;
  70.     tm.stop();
  71.     cout << "dbl_class time  = " << tm.time() << '\n';
  72.  
  73.     tm.start();
  74.     tm.reset();
  75.     for (ri = 0.0; ri < r_is; ri += r_inc)
  76.         r_ans -= ri;
  77.     tm.stop();
  78.     cout << "long_fixed time = " << tm.time() << '\n';
  79. }
  80.