30 #define Rnd64_A 6364136223846793005ULL
32 #define RndF_Mul 5.4210108624275222e-20f
33 #define RndD_Mul 5.4210108624275222e-20
41 static unsigned long long int
42 Rnd64_jump(
unsigned long long int n,
unsigned long long int seed ) {
43 unsigned long long int a_k, c_k, ran;
50 for (i = 0; n; n >>= 1, i++) {
52 ran = a_k * ran + c_k;
60 #if defined(PLASMA_HAVE_WEAK)
61 #pragma weak CORE_zplgsy = PCORE_zplgsy
62 #define CORE_zplgsy PCORE_zplgsy
65 int bigM,
int m0,
int n0,
unsigned long long int seed )
69 unsigned long long int ran, jump;
71 jump = m0 + n0 * bigM;
77 for (j = 0; j < n; j++) {
78 ran = Rnd64_jump(
NBELEM * jump, seed );
80 for (i = j; i < m; i++) {
89 tmp += (lda - i + j + 1);
93 for (j = 0; j < n; j++) {
97 A[lda*j+i] = A[lda*i+j];
104 else if ( m0 > n0 ) {
105 for (j = 0; j < n; j++) {
106 ran = Rnd64_jump(
NBELEM * jump, seed );
108 for (i = 0; i < m; i++) {
124 else if ( m0 < n0 ) {
126 jump = n0 + m0 * bigM;
128 for (i = 0; i < m; i++) {
129 ran = Rnd64_jump(
NBELEM * jump, seed );
131 for (j = 0; j < n; j++) {
135 A[j*lda+i] += I*(0.5f - ran *
RndF_Mul);
149 int bigM,
int m0,
int n0,
unsigned long long int seed )
154 sizeof(
int), &m,
VALUE,
155 sizeof(
int), &n,
VALUE,
157 sizeof(
int), &lda,
VALUE,
158 sizeof(
int), &bigM,
VALUE,
159 sizeof(
int), &m0,
VALUE,
160 sizeof(
int), &n0,
VALUE,
161 sizeof(
unsigned long long int), &seed,
VALUE,
168 #if defined(PLASMA_HAVE_WEAK)
169 #pragma weak CORE_zplgsy_quark = PCORE_zplgsy_quark
170 #define CORE_zplgsy_quark PCORE_zplgsy_quark
182 unsigned long long int seed;
185 CORE_zplgsy( bump, m, n, A, lda, bigM, m0, n0, seed );