You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/modules/ROOT/pages/config.adoc
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,7 +19,7 @@ These macros allow customization of library behavior. User-configurable macros s
19
19
20
20
[#enable_cuda]
21
21
- `BOOST_INT128_ENABLE_CUDA`: Defining this macro allows both types and selected functions to be run on both host and device when compiling with NVCC.
22
-
Allowed functions have `BOOST_IN128_HOST_DEVICE` as part of their function signature in their documentation.
22
+
Allowed functions have `BOOST_INT128_HOST_DEVICE` as part of their function signature in their documentation.
23
23
24
24
[#no_int128]
25
25
- `BOOST_INT128_NO_BUILTIN_INT128`: The user may define this when they do not want the internal implementations to rely on builtin `pass:[__int128]` or `pass:[unsigned __int128]` types.
Copy file name to clipboardExpand all lines: doc/modules/ROOT/pages/format.adoc
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -37,7 +37,7 @@ Examples:
37
37
| `{:*^6d}` | `"**42**"` (centered with asterisks)
38
38
|===
39
39
40
-
NOTE: When no alignment is specified but a width is given (e.g., `{:6d}`), zero-padding is applied from the left.
40
+
NOTE: When no alignment is specified but a `0` prefix and width are given (e.g., `{:06d}`), zero-padding is applied from the left. Without the `0` prefix (e.g., `{:6d}`), space-padding is applied instead, matching `std::format` behavior.
The benchmarks below represent the time in microseconds it takes to perform 20'000'000 operations between two values of random width (e.g. 2x1 words, 1x2 words, etc.).
14
14
On most platforms we use the builtin `\__int128` as the reference benchmark.
15
-
When this is unavailable (such as on 32-bit architectures) we us `boost::multiprecision::int128_t` (abbreviated as `boost::mp::int128_t`) as it is widely used, and known to be portable.
15
+
When this is unavailable (such as on 32-bit architectures) we use `boost::multiprecision::int128_t` (abbreviated as `boost::mp::int128_t`) as it is widely used, and known to be portable.
16
16
On MSVC platforms we use as reference `std::_Signed128` from the header `<__msvc_int128.hpp>` since this is bundled with their compiler.
Copy file name to clipboardExpand all lines: doc/modules/ROOT/pages/overview.adoc
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -24,8 +24,8 @@ When using pass:[C++20] or newer, the library can be consumed as a module `impor
24
24
GCC and Clang offer `__int128` as a non-standard extension on 64-bit targets, but it lacks `std::numeric_limits` specializations, `<iostream>` support, and is absent entirely on MSVC.
25
25
Multiprecision libraries can fill the gap, but typically at the cost of a larger `sizeof` and additional overhead (e.g., Boost.Multiprecision always has an extra word).
26
26
Boost.Int128 solves this by providing types that are exactly 128-bits on every platform.
27
-
Operation implementations rely on compiler intrinsic where available for native performance, and optimized software implementations elsewhere.
28
-
The types provided by the library also have native support being running on GPU using CUDA, along with many of the functions.
27
+
Operation implementations rely on compiler intrinsics where available for native performance, and optimized software implementations elsewhere.
28
+
The types provided by the library also natively support running on GPUs using CUDA, along with many of the functions.
0 commit comments