Skip to content

Conversation

@mborland
Copy link
Member

Closes: #834

@mborland mborland linked an issue Jan 31, 2025 that may be closed by this pull request
@mborland mborland force-pushed the exp_typedefs branch 4 times, most recently from e54328f to c5e0c57 Compare February 11, 2025 00:45
@mborland
Copy link
Member Author

I still don't think using the fixed width types vs fast types is a good idea. Here are intel benchmarks:

With this:

===== Comparisons =====
comparisons<decimal32  >: 2055713    us (s=299999985)
comparisons<decimal64  >: 2354181    us (s=299999985)
comparisons<dec32_fast >: 660277     us (s=299999985)
comparisons<dec64_fast >: 565198     us (s=299999985)

===== Addition =====
Addition<decimal32  >: 2051498    us (s=1000134990395)
Addition<decimal64  >: 2424256    us (s=1000134990395)
Addition<dec32_fast >: 1619007    us (s=1000134990395)
Addition<dec64_fast >: 1108451    us (s=1000134990395)

===== Subtraction =====
Subtraction<decimal32  >: 1770480    us (s=166680686215)
Subtraction<decimal64  >: 2046855    us (s=166680686215)
Subtraction<dec32_fast >: 1424059    us (s=166680686215)
Subtraction<dec64_fast >: 879190     us (s=166680686215)

===== Multiplication =====
Multiplication<float      >: 77303      us (s=0)
Multiplication<double     >: 71929      us (s=0)
Multiplication<decimal32  >: 1749900    us (s=2500419801094285)
Multiplication<decimal64  >: 2104753    us (s=2500419770901035)
Multiplication<dec32_fast >: 829543     us (s=2500419801094285)
Multiplication<dec64_fast >: 773240     us (s=2500419770901035)

===== Division =====
Division<float      >: 100135     us (s=889346445)
Division<double     >: 104017     us (s=889346420)
Division<decimal32  >: 1907295    us (s=442402130)
Division<decimal64  >: 2330349    us (s=442402130)
Division<dec32_fast >: 934993     us (s=442402130)
Division<dec64_fast >: 1138186    us (s=442402130)

As is on develop:

===== Comparisons =====
comparisons<decimal32  >: 1881797    us (s=299999985)
comparisons<decimal64  >: 2351746    us (s=299999985)
comparisons<dec32_fast >: 618556     us (s=299999985)
comparisons<dec64_fast >: 521408     us (s=299999985)

===== Addition =====
Addition<decimal32  >: 2013988    us (s=1000134990395)
Addition<decimal64  >: 2473012    us (s=1000134990395)
Addition<dec32_fast >: 1248342    us (s=1000134990395)
Addition<dec64_fast >: 906706     us (s=1000134990395)

===== Subtraction =====
Subtraction<decimal32  >: 1788740    us (s=166680686215)
Subtraction<decimal64  >: 2045088    us (s=166680686215)
Subtraction<dec32_fast >: 1081617    us (s=166680686215)
Subtraction<dec64_fast >: 783670     us (s=166680686215)

===== Multiplication =====
Multiplication<float      >: 77166      us (s=0)
Multiplication<double     >: 72769      us (s=0)
Multiplication<decimal32  >: 1761256    us (s=2500419801094285)
Multiplication<decimal64  >: 2115496    us (s=2500419770901035)
Multiplication<dec32_fast >: 715356     us (s=2500419801094285)
Multiplication<dec64_fast >: 717914     us (s=2500419770901035)

===== Division =====
Division<float      >: 103752     us (s=889346445)
Division<double     >: 115549     us (s=889346420)
Division<decimal32  >: 1930520    us (s=442402130)
Division<decimal64  >: 2312833    us (s=442402130)
Division<dec32_fast >: 785470     us (s=442402130)
Division<dec64_fast >: 1270341    us (s=442402130)

@mborland mborland closed this Feb 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Boost Review: Do the exponent_type typedefs need to be public? Use fixed width integers for fast types instead of fast integers

2 participants