23 #ifndef DOXYGEN_SHOULD_SKIP_THIS
24 #define Rnd64_A 6364136223846793005ULL
26 #define RndF_Mul 5.4210108624275222e-20f
27 #define RndD_Mul 5.4210108624275222e-20
29 static inline unsigned long long int
30 Rnd64_jump(
unsigned long long int n,
unsigned long long int seed ) {
31 unsigned long long int a_k, c_k, ran;
38 for (i = 0; n; n >>= 1, ++i) {
40 ran = a_k * ran + c_k;
48 #if defined(PRECISION_z) || defined(PRECISION_c)
98 unsigned long long int seed )
102 unsigned long long int ran, jump;
104 jump = (
unsigned long long int)m0 + (
unsigned long long int)n0 * (
unsigned long long int)gM;
106 for (j=0; j<n; ++j ) {
107 ran = Rnd64_jump( NBELEM*jump, seed );
108 for (i = 0; i < m; ++i) {
109 *tmp = 0.5f - ran * RndF_Mul;
110 ran = Rnd64_A * ran + Rnd64_C;
111 #if defined(PRECISION_z) || defined(PRECISION_c)
112 *tmp += I*(0.5f - ran * RndF_Mul);
113 ran = Rnd64_A * ran + Rnd64_C;
void core_splrnt(int m, int n, float *A, int lda, int gM, int m0, int n0, unsigned long long int seed)
Generate a random tile.