MIDAPACK - MIcrowave Data Analysis PACKage  1.1b
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);
int tpltz_init(int n, int lambda, int *nfft, int *blocksize, fftw_complex **T_fft, double *T, fftw_complex **V_fft, double **V_rfft, fftw_plan *plan_f, fftw_plan *plan_b, Flag flag_stgy)
Definition: toeplitz.c:298
int tpltz_cleanup(fftw_complex **T_fft, fftw_complex **V_fft, double **V_rfft, fftw_plan *plan_f, fftw_plan *plan_b)
Definition: toeplitz.c:485
int stmm(double **V, int n, int m, double *T, int lambda, Flag flag_stgy)
Definition: toeplitz_seq.c:85
// MPI use
MPI_Scatterv(V, nranks, displs, MPI_DOUBLE, Vrank, maxsize, MPI_DOUBLE, 0, MPI_COMM_WORLD);
flag_stgy_init_auto(&flag_stgy);
mpi_stbmm(&Vrank, nrow, m, m_rowwise, tpltzblocks, nb_blocks, nb_blocks, id0, local_V_size, flag_stgy, MPI_COMM_WORLD);
MPI_Gatherv(Vrank, nranks[rank], MPI_DOUBLE, TV, nranks, displs, MPI_DOUBLE, 0, MPI_COMM_WORLD);
int mpi_stbmm(double **V, int64_t nrow, int m, int m_rowwise, Block *tpltzblocks, int nb_blocks_local, int nb_blocks_all, int64_t idp, int local_V_size, Flag flag_stgy, MPI_Comm comm)
int flag_stgy_init_auto(Flag *flag_stgy)
Set the flag to automatic paramaters.