y-cruncher Multi-Precision Library |
||
A Multi-threaded Multi-Precision Arithmetic Library(Powered by y-cruncher) |
(Last updated: March 3, 2016)
Shortcuts:
YMP Library:
Large Number Objects:
Low-Level Programming:
Globals
Miscellaneous global variables and datatypes used by the YMP library (as well as y-cruncher itself).
Primitive Datatypes:
Type Description Notes u32_t
s32_t32-bit integer u64_t
s64_t64-bit integer upL_t
spL_tPointer Length 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.
ufL_t
sfL_tFile Length 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.
uiL_t
siL_tIndex Length An integer type that is large enough to do all memory calculations. Currently, these are 64-bit integers on all targets.
Alignment:
const upL_t ALIGNMENT;
Description:
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.