y-cruncher Multi-Precision Library
A Multi-threaded Multi-Precision Arithmetic Library
(Powered by y-cruncher)
(Last updated: March 3, 2016)
Large Number Objects:
Miscellaneous global variables and datatypes used by the YMP library (as well as y-cruncher itself).
Type Description Notes u32_t
32-bit integer u64_t
64-bit integer upL_t
Usually the same size as size_t. It is used for lengths and sizes that fit into the memory address space. These are 32 or 64-bit integers.
Same as upL_t and spL_t but for file lengths.
Currently, these are always 64-bit integers. Guaranteed to be at least as large as the pointer length types.
An integer type that is large enough to do all memory calculations. Currently, these are 64-bit integers on all targets.
const upL_t ALIGNMENT;
The natural alignment of the target processor. In most cases, this is the size of the largest SIMD vector.
- 16 bytes - SSE3, Penryn, Nehalem, K10
- 32 bytes - Sandy Bridge, Bulldozer, Haswell
- 64 bytes - Knights Landing, Skylake Xeon
Most functions that require the user to pass in a scratch buffer will require that the buffer be aligned to this alignment.