@@ -9,20 +9,20 @@ Run on the GitHub Actions runner using GCC 14 in release mode (, pass:[C++]20).
99[cols="1,>1,>1,>1",options="header"]
1010|===
1111| Operation | `float` (ns/op) | `boost::sn::f32` (ns/op) | Ratio
12- | Addition | 0.71 | 1.19 | 1.67
13- | Subtraction | 0.71 | 1.19 | 1.68
14- | Multiplication | 0.79 | 1.26 | 1.60
15- | Division | 0.73 | 1.22 | 1.67
12+ | Addition | 0.71 | 1.03 | 1.45
13+ | Subtraction | 0.71 | 1.03 | 1.45
14+ | Multiplication | 0.79 | 1.18 | 1.49
15+ | Division | 0.73 | 1.37 | 1.88
1616|===
1717
1818.64-bit floating point (ratio relative to `double`)
1919[cols="1,>1,>1,>1",options="header"]
2020|===
2121| Operation | `double` (ns/op) | `boost::sn::f64` (ns/op) | Ratio
22- | Addition | 0.71 | 1.18 | 1.66
23- | Subtraction | 0.71 | 1.18 | 1.66
24- | Multiplication | 0.79 | 1.17 | 1.48
25- | Division | 1.48 | 1.62 | 1.10
22+ | Addition | 0.71 | 1.04 | 1.46
23+ | Subtraction | 0.71 | 1.04 | 1.46
24+ | Multiplication | 0.79 | 1.18 | 1.49
25+ | Division | 1.48 | 1.75 | 1.19
2626|===
2727
2828=== Signed Integers
@@ -31,9 +31,9 @@ Run on the GitHub Actions runner using GCC 14 in release mode (, pass:[C++]20).
3131[cols="1,>1,>1,>1,>1,>1",options="header"]
3232|===
3333| Operation | `std::int8_t` (ns/op) | `boost::sn::i8` (ns/op) | Ratio | `safe<int8_t>` (ns/op) | Ratio
34- | Addition | 0.62 | 0.83 | 1.35 | 0.65 | 1.06
35- | Subtraction | 0.62 | 0.83 | 1.35 | 0.65 | 1.06
36- | Multiplication | 0.62 | 0.81 | 1.31 | 0.65 | 1.06
34+ | Addition | 0.61 | 0.83 | 1.35 | 0.65 | 1.06
35+ | Subtraction | 0.61 | 0.83 | 1.35 | 0.65 | 1.06
36+ | Multiplication | 0.61 | 0.80 | 1.31 | 0.65 | 1.06
3737| Division | 1.65 | 1.69 | 1.03 | 1.68 | 1.02
3838| Modulo | 1.94 | 1.94 | 1.00 | 1.94 | 1.00
3939|===
@@ -45,16 +45,16 @@ Run on the GitHub Actions runner using GCC 14 in release mode (, pass:[C++]20).
4545| Addition | 0.61 | 0.84 | 1.39 | 0.83 | 1.36
4646| Subtraction | 0.61 | 0.84 | 1.39 | 0.83 | 1.36
4747| Multiplication | 0.61 | 0.86 | 1.40 | 0.83 | 1.35
48- | Division | 1.69 | 1.72 | 1.02 | 1.82 | 1.08
48+ | Division | 1.69 | 1.72 | 1.02 | 1.82 | 1.07
4949| Modulo | 1.99 | 1.99 | 1.00 | 1.99 | 1.00
5050|===
5151
5252.32-bit signed (ratio relative to `std::int32_t`)
5353[cols="1,>1,>1,>1,>1,>1",options="header"]
5454|===
5555| Operation | `std::int32_t` (ns/op) | `boost::sn::i32` (ns/op) | Ratio | `safe<int32_t>` (ns/op) | Ratio
56- | Addition | 0.51 | 0.58 | 1.13 | 0.70 | 1.38
57- | Subtraction | 0.51 | 0.58 | 1.14 | 0.70 | 1.37
56+ | Addition | 0.51 | 0.58 | 1.13 | 0.70 | 1.39
57+ | Subtraction | 0.51 | 0.58 | 1.14 | 0.70 | 1.38
5858| Multiplication | 0.49 | 0.70 | 1.44 | 0.69 | 1.41
5959| Division | 1.74 | 1.72 | 0.99 | 1.73 | 0.99
6060| Modulo | 2.02 | 2.02 | 1.00 | 2.02 | 1.00
@@ -64,8 +64,8 @@ Run on the GitHub Actions runner using GCC 14 in release mode (, pass:[C++]20).
6464[cols="1,>1,>1,>1,>1,>1",options="header"]
6565|===
6666| Operation | `std::int64_t` (ns/op) | `boost::sn::i64` (ns/op) | Ratio | `safe<int64_t>` (ns/op) | Ratio
67- | Addition | 0.50 | 0.58 | 1.14 | 0.71 | 1.41
68- | Subtraction | 0.50 | 0.58 | 1.14 | 0.71 | 1.41
67+ | Addition | 0.51 | 0.57 | 1.13 | 0.70 | 1.39
68+ | Subtraction | 0.51 | 0.57 | 1.13 | 0.71 | 1.40
6969| Multiplication | 0.49 | 0.85 | 1.71 | 5.24 | 10.60
7070| Division | 1.76 | 1.74 | 0.99 | 1.74 | 0.99
7171| Modulo | 2.04 | 2.04 | 1.00 | 2.04 | 1.00
@@ -75,9 +75,9 @@ Run on the GitHub Actions runner using GCC 14 in release mode (, pass:[C++]20).
7575[cols="1,>1,>1,>1",options="header"]
7676|===
7777| Operation | `int128_t` (ns/op) | `boost::sn::i128` (ns/op) | Ratio
78- | Addition | 1.83 | 1.91 | 1.04
79- | Subtraction | 1.85 | 1.91 | 1.03
80- | Multiplication | 2.00 | 1.94 | 0.97
78+ | Addition | 1.83 | 1.90 | 1.04
79+ | Subtraction | 1.85 | 1.92 | 1.04
80+ | Multiplication | 1.99 | 1.93 | 0.97
8181| Division | 5.08 | 5.30 | 1.04
8282| Modulo | 5.04 | 5.18 | 1.03
8383|===
@@ -88,10 +88,10 @@ Run on the GitHub Actions runner using GCC 14 in release mode (, pass:[C++]20).
8888[cols="1,>1,>1,>1,>1,>1",options="header"]
8989|===
9090| Operation | `std::uint8_t` (ns/op) | `boost::sn::u8` (ns/op) | Ratio | `safe<uint8_t>` (ns/op) | Ratio
91- | Addition | 0.90 | 0.90 | 1.00 | 0.93 | 1.03
92- | Subtraction | 0.90 | 0.90 | 1.00 | 0.93 | 1.02
91+ | Addition | 0.90 | 0.90 | 0.99 | 0.93 | 1.03
92+ | Subtraction | 0.90 | 0.90 | 1.00 | 0.92 | 1.02
9393| Multiplication | 0.92 | 0.91 | 0.99 | 0.93 | 1.01
94- | Division | 1.65 | 1.65 | 1.00 | 1.65 | 1.00
94+ | Division | 1.65 | 1.65 | 1.00 | 1.64 | 0.99
9595| Modulo | 1.94 | 1.94 | 1.00 | 1.94 | 1.00
9696|===
9797
@@ -100,8 +100,8 @@ Run on the GitHub Actions runner using GCC 14 in release mode (, pass:[C++]20).
100100|===
101101| Operation | `std::uint16_t` (ns/op) | `boost::sn::u16` (ns/op) | Ratio | `safe<uint16_t>` (ns/op) | Ratio
102102| Addition | 0.89 | 0.89 | 1.00 | 0.91 | 1.02
103- | Subtraction | 0.89 | 0.89 | 1.00 | 0.89 | 1.00
104- | Multiplication | 0.90 | 0.89 | 0.99 | 0.95 | 1.06
103+ | Subtraction | 0.88 | 0.89 | 1.00 | 0.89 | 1.00
104+ | Multiplication | 0.90 | 0.88 | 0.99 | 0.95 | 1.06
105105| Division | 1.69 | 1.70 | 1.00 | 1.71 | 1.01
106106| Modulo | 1.99 | 1.99 | 1.00 | 1.99 | 1.00
107107|===
@@ -121,9 +121,9 @@ Run on the GitHub Actions runner using GCC 14 in release mode (, pass:[C++]20).
121121[cols="1,>1,>1,>1,>1,>1",options="header"]
122122|===
123123| Operation | `std::uint64_t` (ns/op) | `boost::sn::u64` (ns/op) | Ratio | `safe<uint64_t>` (ns/op) | Ratio
124- | Addition | 0.50 | 0.57 | 1.13 | 0.58 | 1.16
125- | Subtraction | 0.50 | 0.57 | 1.14 | 0.57 | 1.14
126- | Multiplication | 0.49 | 0.73 | 1.48 | 0.80 | 1.61
124+ | Addition | 0.51 | 0.58 | 1.14 | 0.58 | 1.13
125+ | Subtraction | 0.51 | 0.57 | 1.12 | 0.57 | 1.13
126+ | Multiplication | 0.49 | 0.73 | 1.48 | 0.79 | 1.61
127127| Division | 1.76 | 1.76 | 1.00 | 1.76 | 1.00
128128| Modulo | 2.04 | 2.04 | 1.00 | 2.04 | 1.00
129129|===
@@ -132,9 +132,9 @@ Run on the GitHub Actions runner using GCC 14 in release mode (, pass:[C++]20).
132132[cols="1,>1,>1,>1",options="header"]
133133|===
134134| Operation | `uint128_t` (ns/op) | `boost::sn::u128` (ns/op) | Ratio
135- | Addition | 1.92 | 2.04 | 1.06
136- | Subtraction | 1.93 | 2.04 | 1.05
137- | Multiplication | 2.09 | 2.01 | 0.96
138- | Division | 4.67 | 4.71 | 1.01
139- | Modulo | 4.91 | 4.94 | 1.01
135+ | Addition | 1.85 | 1.91 | 1.03
136+ | Subtraction | 1.85 | 1.92 | 1.04
137+ | Multiplication | 2.01 | 1.90 | 0.95
138+ | Division | 4.67 | 4.70 | 1.01
139+ | Modulo | 4.90 | 4.93 | 1.01
140140|===
0 commit comments