32 void nfft_benchomp_createdataset(
unsigned int d,
unsigned int trafo_adjoint,
int *N,
int M,
double sigma)
40 for (t = 0; t < d; t++)
43 x = (R*) NFFT(malloc)(d*M*
sizeof(R));
44 f = (C*) NFFT(malloc)(M*
sizeof(C));
45 f_hat = (C*) NFFT(malloc)(N_total*
sizeof(C));
48 n[t] = sigma*NFFT(next_power_of_2)(N[t]);
51 NFFT(vrand_shifted_unit_double)(x,d*M);
55 NFFT(vrand_unit_complex)(f_hat,N_total);
59 NFFT(vrand_unit_complex)(f,M);
62 printf(
"%d %d ", d, trafo_adjoint);
75 printf(
"%.16e ", x[d*j+t]);
81 for (j=0; j < N_total; j++)
82 printf(
"%.16e %.16e\n", creal(f_hat[j]), cimag(f_hat[j]));
87 printf(
"%.16e %.16e\n", creal(f[j]), cimag(f[j]));
95 int main(
int argc,
char **argv)
105 fprintf(stderr,
"usage: d tr_adj N_1 ... N_d M sigma\n");
111 fprintf(stderr,
"d=%d", d);
113 if (d < 1 || argc < 5+d) {
114 fprintf(stderr,
"usage: d tr_adj N_1 ... N_d M sigma\n");
118 N = malloc(d*
sizeof(
int));
120 trafo_adjoint = atoi(argv[2]);
121 if (trafo_adjoint < 0 && trafo_adjoint > 1)
124 fprintf(stderr,
", tr_adj=%d, N=", trafo_adjoint);
127 N[t] = atoi(argv[3+t]);
130 fprintf(stderr,
"%d ",N[t]);
134 sigma = atof(argv[4+d]);
136 fprintf(stderr,
", M=%d, sigma=%.16g\n", M, sigma);
138 nfft_benchomp_createdataset(d, trafo_adjoint, N, M, sigma);