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_t
32-bit integer  
u64_t
s64_t
64-bit integer  
upL_t
spL_t
Pointer 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_t
File 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_t
Index 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 minimum alignment for scratch buffers used for large multiplication.

 

In the past, this alignment was equal the SIMD size on the target processor. Now it simply returns the size of the cacheline. There is sufficient evidence showing that cacheline alignment benefits the internal algorithms.