30 void nfft_benchomp_createdataset(
unsigned int d,
unsigned int trafo_adjoint,
int *N,
int M,
double sigma)
38 for (t = 0; t < d; t++)
41 x = (R*) NFFT(malloc)(d*M*
sizeof(R));
42 f = (C*) NFFT(malloc)(M*
sizeof(C));
43 f_hat = (C*) NFFT(malloc)(N_total*
sizeof(C));
46 n[t] = sigma*NFFT(next_power_of_2)(N[t]);
49 NFFT(vrand_shifted_unit_double)(x,d*M);
53 NFFT(vrand_unit_complex)(f_hat,N_total);
57 NFFT(vrand_unit_complex)(f,M);
60 printf(
"%d %d ", d, trafo_adjoint);
73 printf(
"%.16e ", x[d*j+t]);
79 for (j=0; j < N_total; j++)
80 printf(
"%.16e %.16e\n", creal(f_hat[j]), cimag(f_hat[j]));
85 printf(
"%.16e %.16e\n", creal(f[j]), cimag(f[j]));
93 int main(
int argc,
char **argv)
103 fprintf(stderr,
"usage: d tr_adj N_1 ... N_d M sigma\n");
109 fprintf(stderr,
"d=%d", d);
111 if (d < 1 || argc < 5+d) {
112 fprintf(stderr,
"usage: d tr_adj N_1 ... N_d M sigma\n");
116 N = malloc(d*
sizeof(
int));
118 trafo_adjoint = atoi(argv[2]);
119 if (trafo_adjoint < 0 && trafo_adjoint > 1)
122 fprintf(stderr,
", tr_adj=%d, N=", trafo_adjoint);
125 N[t] = atoi(argv[3+t]);
128 fprintf(stderr,
"%d ",N[t]);
132 sigma = atof(argv[4+d]);
134 fprintf(stderr,
", M=%d, sigma=%.16g\n", M, sigma);
136 nfft_benchomp_createdataset(d, trafo_adjoint, N, M, sigma);
Header file for the nfft3 library.