72 int stmm(
double **V,
int n,
int m,
double *T,
int lambda,
Flag flag_stgy)
76 fftw_complex *V_fft, *T_fft;
78 fftw_plan plan_f, plan_b;
87 tpltz_init(n, lambda, &nfft, &blocksize, &T_fft, T, &V_fft, &V_rfft, &plan_f, &plan_b, flag_stgy);
91 fprintf(file,
"Before stmm_main call : nfft = %d, blocksize = %d\n", nfft, blocksize);
92 stmm_main(V, n, m, 0, n*m, T, T_fft, lambda, V_fft, V_rfft, plan_f, plan_b, blocksize, nfft, flag_stgy);
121 int stbmm(
double **V,
int nrow,
int m_cw,
int m_rw,
Block *tpltzblocks,
int nb_blocks, int64_t idp,
int local_V_size,
Flag flag_stgy)
125 int nb_blocks_local=nb_blocks;
126 int nb_blocks_all=nb_blocks;
131 mpi_stbmm(V, nrow, m_cw, m_rw, tpltzblocks, nb_blocks, nb_blocks, idp, local_V_size, flag_stgy, NULL);
170 int gstbmm(
double **V,
int nrow,
int m_cw,
int m_rw,
Block *tpltzblocks,
int nb_blocks, int64_t idp,
int local_V_size, int64_t *id0gap,
int *lgap,
int ngap,
Flag flag_stgy)
172 int nb_blocks_local=nb_blocks;
173 int nb_blocks_all=nb_blocks;
178 mpi_gstbmm(V, nrow, m_cw, m_rw, tpltzblocks, nb_blocks, nb_blocks, idp, local_V_size, id0gap, lgap, ngap, flag_stgy, NULL);
186 int gstbmm0(
double **V,
int nrow,
int m,
int m_rowwise,
Block *tpltzblocks,
int nb_blocks_local,
int nb_blocks_all,
int id0p,
int local_V_size, int64_t *id0gap,
int *lgap,
int ngap,
Flag flag_stgy)
199 reset_gaps( V, id0p, local_V_size, m, nrow, m_rowwise, id0gap, lgap, ngap);
204 int nb_blockgappy_max;
207 Block *tpltzblocks_gappy;
214 fprintf(file,
"[%d] flag_skip_build_gappy_blocks=%d\n", rank, flag_skip_build_gappy_blocks);
216 if (flag_skip_build_gappy_blocks==1) {
224 for(Tsize=i=0;i<nb_blocks_local;i++)
225 Tsize += tpltzblocks[i].lambda;
227 for(i=0;i<nb_blocks_local;i++) {
228 if (tpltzblocks[i].lambda>lambdamax)
229 lambdamax = tpltzblocks[i].
lambda;
233 nb_blockgappy_max = nb_blocks_local+ngap;
234 Tgappysize_max = Tsize + lambdamax*ngap;
237 tpltzblocks_gappy = (
Block *) calloc(nb_blockgappy_max,
sizeof(
Block));
246 build_gappy_blocks(nrow, m, tpltzblocks, nb_blocks_local, nb_blocks_all, id0gap, lgap, ngap, tpltzblocks_gappy, &nb_blocks_gappy, flag_param_distmin_fixed);
250 fprintf(file,
"[%d] nb_blocks_gappy=%d\n", rank, nb_blocks_gappy);
251 for(i=0;i<nb_blocks_gappy;i++)
252 fprintf(file,
"[%d] idvgappy[%d]=%d ; ngappy[%d]=%d\n", rank, i, tpltzblocks_gappy[i].idv, i, tpltzblocks_gappy[i].n );
264 reset_gaps( V, id0p, local_V_size, m, nrow, m_rowwise, id0gap, lgap, ngap);