Advertisement
Guest User

Untitled

a guest
Feb 18th, 2024
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.16 KB | None | 0 0
  1. TEST_CASE("geralds_benchmark")
  2. {
  3.     BENCHMARK("cpp ref")
  4.     {
  5.         double sum = 1.0;
  6.         for (int t = 0; t < 2000000; ++t) {
  7.             sum += sqrt(double(t)) - sin(double(t));
  8.         }
  9.         return sum;
  10.     };
  11.  
  12. #ifdef __EMSCRIPTEN__
  13.     BENCHMARK("js ref")
  14.     {
  15.         EM_ASM_DOUBLE({
  16.             let sum = 1;
  17.             for (let i = 0; i < 2000000; i++) {
  18.                 sum = sum + Math.sqrt(i) - Math.sin(i);
  19.             }
  20.             return sum;
  21.         });
  22.     };
  23. #endif
  24.  
  25.     BENCHMARK("cpp sqrt only")
  26.     {
  27.         double sum = 1.0;
  28.         for (int t = 0; t < 2000000; ++t) {
  29.             sum += sqrt(double(t));
  30.         }
  31.         return sum;
  32.     };
  33.  
  34. #ifdef __EMSCRIPTEN__
  35.     BENCHMARK("js sqrt only")
  36.     {
  37.         EM_ASM_DOUBLE({
  38.             let sum = 1;
  39.             for (let i = 0; i < 2000000; i++) {
  40.                 sum = sum + Math.sqrt(i);
  41.             }
  42.             return sum;
  43.         });
  44.     };
  45. #endif
  46.  
  47.     BENCHMARK("cpp sin only")
  48.     {
  49.         double sum = 1.0;
  50.         for (int t = 0; t < 5000000; ++t) {
  51.             sum += sin(double(t));
  52.         }
  53.         return sum;
  54.     };
  55.  
  56. #ifdef __EMSCRIPTEN__
  57.     BENCHMARK("js sin only")
  58.     {
  59.         EM_ASM_DOUBLE({
  60.             let sum = 1;
  61.             for (let i = 0; i < 5000000; i++) {
  62.                 sum = sum + Math.sin(i);
  63.             }
  64.             return sum;
  65.         });
  66.     };
  67. #endif
  68.  
  69.     BENCHMARK("cpp sin only with int64")
  70.     {
  71.         double sum = 1.0;
  72.         for (int64_t t = 0; t < 2000000; ++t) {
  73.             sum += sin(double(t));
  74.         }
  75.         return sum;
  76.     };
  77.  
  78.     BENCHMARK("cpp sin starting with 123456789042")
  79.     {
  80.         double sum = 1.0;
  81.         for (int64_t t = 123456789042; t < 123456789042ll + 2000000; ++t) {
  82.             sum += sin(double(t));
  83.         }
  84.         return sum;
  85.     };
  86.  
  87. #ifdef __EMSCRIPTEN__
  88.     BENCHMARK("js sin starting with 123456789042")
  89.     {
  90.         EM_ASM_DOUBLE({
  91.             let sum = 1;
  92.             for (let i = 123456789042; i < 123456789042 + 2000000; i++) {
  93.                 sum = sum + Math.sin(i);
  94.             }
  95.             return sum;
  96.         });
  97.     };
  98. #endif
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement