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_splgsy = PCORE_splgsy
62 #define CORE_splgsy PCORE_splgsy
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);
148 float bump,
int m,
int n,
float *
A,
int lda,
149 int bigM,
int m0,
int n0,
unsigned long long int seed )
153 sizeof(
float), &bump,
VALUE,
154 sizeof(
int), &m,
VALUE,
155 sizeof(
int), &n,
VALUE,
156 sizeof(
float)*lda*n, A,
OUTPUT,
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_splgsy_quark = PCORE_splgsy_quark
170 #define CORE_splgsy_quark PCORE_splgsy_quark
182 unsigned long long int seed;
185 CORE_splgsy( bump, m, n, A, lda, bigM, m0, n0, seed );