32 void fastsum_benchomp_createdataset(
unsigned int d,
int L,
int M)
39 x = (R*) NFFT(malloc)((size_t)(d * L) *
sizeof(R));
40 y = (R*) NFFT(malloc)((size_t)(d * L) *
sizeof(R));
41 alpha = (C*) NFFT(malloc)((size_t)(L) *
sizeof(C));
50 for (j = 0; j < d; j++)
51 x[k * d + j] = K(2.0) * r_max * NFFT(drand48)() - r_max;
53 for (j = 0; j < d; j++)
54 r2 += x[k * d + j] * x[k * d + j];
56 if (r2 >= r_max * r_max)
62 NFFT(vrand_unit_complex)(alpha, L);
71 for (j = 0; j < d; j++)
72 y[k * d + j] = K(2.0) * r_max * NFFT(drand48)() - r_max;
74 for (j = 0; j < d; j++)
75 r2 += y[k * d + j] * y[k * d + j];
77 if (r2 >= r_max * r_max)
83 printf(
"%d %d %d\n", d, L, M);
85 for (j = 0; j < L; j++)
87 for (t = 0; t < d; t++)
88 printf(
"%.16" __FES__
" ", x[d * j + t]);
92 for (j = 0; j < L; j++)
93 printf(
"%.16" __FES__
" %.16" __FES__
"\n", CREAL(alpha[j]), CIMAG(alpha[j]));
95 for (j = 0; j < M; j++)
97 for (t = 0; t < d; t++)
98 printf(
"%.16" __FES__
" ", y[d * j + t]);
107 int main(
int argc,
char **argv)
115 fprintf(stderr,
"usage: d L M\n");
123 fprintf(stderr,
"d=%d, L=%d, M=%d\n", d, L, M);
125 fastsum_benchomp_createdataset(d, L, M);