32 void nfsft_benchomp_createdataset(
unsigned int trafo_adjoint,
int N,
int M)
37 int N_total = (2*N+2) * (2*N+2);
40 nfsft_init_guru(&ptemp, N, M, NFSFT_MALLOC_X | NFSFT_MALLOC_F |
41 NFSFT_MALLOC_F_HAT | NFSFT_NORMALIZED | NFSFT_PRESERVE_F_HAT,
42 PRE_PHI_HUT | PRE_PSI | FFTW_INIT | FFT_OUT_OF_PLACE, 6);
49 for (j = 0; j < M; j++)
51 x[2*j]=
X(drand48)() - K(0.5);
52 x[2*j+1]= K(0.5) *
X(drand48)();
57 for (k = 0; k <= N; k++)
58 for (n = -k; n <= k; n++)
66 printf(
"%d %d %d\n", trafo_adjoint, N, M);
71 printf(
"%.16e ", x[2*j+t]);
77 for (k = 0; k <= N; k++)
78 for (n = -k; n <= k; n++)
79 printf(
"%.16e %.16e\n", creal(f_hat[NFSFT_INDEX(k,n,&ptemp)]), cimag(f_hat[NFSFT_INDEX(k,n,&ptemp)]));
84 printf(
"%.16e %.16e\n", creal(f[j]), cimag(f[j]));
92 int main(
int argc,
char **argv)
99 fprintf(stderr,
"usage: tr_adj N M\n");
103 trafo_adjoint = atoi(argv[1]);
104 if (trafo_adjoint < 0 && trafo_adjoint > 1)
109 fprintf(stderr,
"tr_adj=%d, N=%d, M=%d\n", trafo_adjoint, N, M);
111 nfsft_benchomp_createdataset(trafo_adjoint, N, M);
data structure for an NFSFT (nonequispaced fast spherical Fourier transform) plan with double precisi...
void nfft_vrand_unit_complex(fftw_complex *x, const NFFT_INT n)
Inits a vector of random complex numbers in .
#define X(name)
Include header for C99 complex datatype.
void * nfft_malloc(size_t n)