MIDAPACK - MIcrowave Data Analysis PACKage 1.0beta
Parallel software tools for high performance CMB DA analysis
User example

Here is a short example showing how to use it:

 // sequential use
 fftw_complex *V_fft, *T_fft;
 double *V_rfft;
 fftw_plan plan_f, plan_b;
 tpltz_init(v1_size, lambda , &nfft, &blocksize, &T_fft, T, &V_fft, &V_rfft, &plan_f, &plan_b);
 stmm(V, n, m, id0, local_V_size, T_fft, lambda, V_fft, V_rfft, plan_f, plan_b, blocksize, nfft);
 tpltz_cleanup(&T_fft, &V_fft, &V_rfft, &plan_f, &plan_b);
 // MPI use
 MPI_Scatterv(V, nranks, displs, MPI_DOUBLE, Vrank, maxsize, MPI_DOUBLE, 0, MPI_COMM_WORLD); 
 mpi_stbmm(&Vrank, n, m, nrow, T, nb_blocks, nb_blocks, lambda, idv, id0, local_V_size, MPI_COMM_WORLD);
 MPI_Gatherv(Vrank, nranks[rank], MPI_DOUBLE, TV, nranks, displs, MPI_DOUBLE, 0, MPI_COMM_WORLD);