68 int distcorrmin= lambda-1;
75 I = (i+rfirst)%(n+distcorrmin);
76 J = (i+rfirst)/(n+distcorrmin);
91 int distcorrmin= lambda-1;
100 i_out = I-rfirst+J*(n+distcorrmin);
106 int fctid_concatcol(
int i,
int id0,
int n,
int m,
int l,
int lconc,
int lambda,
int *nocol,
int nbcol)
109 int distcorrmin= lambda-1;
121 i_out = I-rfirst+nocol[J]*(n);
128 int fctid_concatcol_inv(
int i,
int id0,
int n,
int m,
int l,
int lconc,
int lambda,
int *nocol_inv,
int nbcol)
131 int distcorrmin= lambda-1;
143 if (nocol_inv[J]==(-1))
146 i_out = I-rfirst+nocol_inv[J]*(n);
158 int distcorrmin= lambda-1;
166 i_out = (I-distcorrmin) + J*(fft_size-2*distcorrmin) ;
168 if (i_out<0 || i_out>=v1_size)
180 for(i=1;i<nbcol;i++) {
181 if (nocol[i]!=(ip+i))
194 int distcorrmin= lambda-1;
196 if (i<0 || i>=v1_size)
199 I = (i)%(fft_size-2*distcorrmin);
200 J = (i)/(fft_size-2*distcorrmin);
202 i_out = (I+distcorrmin) + J*(fft_size) ;
208 int define_rshp_size(
int flag_format_rshp,
int fft_size,
int nfft,
int v1_size,
int vedge_size,
int *nrshp,
int *mrshp,
int *lrshp)
211 if (flag_format_rshp==2) {
214 *lrshp=(*nrshp)*(*mrshp);
216 else if (flag_format_rshp==1) {
219 *lrshp=(*nrshp)*(*mrshp);
221 else if (flag_format_rshp==0) {
237 nocol_inv = (
int *) calloc(m,
sizeof(
double));
242 nocol_inv[nocol[i]]=i;
249 int build_reshape(
double *Vin,
int *nocol,
int nbcol,
int lconc,
int n,
int m,
int id0,
int l,
int lambda,
int nfft,
double *Vrshp,
int nrshp,
int mrshp,
int lrshp,
int flag_format_rshp)
254 int i_out1, i_out2, i_out3;
255 int distcorrmin=lambda-1;
266 v1_size=lconc+(distcorrmin)*(nbcol-1);
267 fft_size = ceil(1.0*v1_size/nfft)+2*distcorrmin;
271 fprintf(file,
"fctid_concatcol: \t %d\n", (
is_needconcat(nocol, nbcol)==1));
272 fprintf(file,
"fctid_mat2vect: \t %d\n", (nbcol>1));
273 fprintf(file,
"fctid_vect2nfftblock \t %d\n", (nfft>1));
277 for(i=0;i<lrshp;i++) {
290 i_out3 =
fctid_concatcol(i_out2, id0, n, m, l, lconc, lambda, nocol, nbcol);
298 Vrshp[i]=Vin[i_out3];
307 int extract_result(
double *Vout,
int *nocol,
int nbcol,
int lconc,
int n,
int m,
int id0,
int l,
int lambda,
int nfft,
double *Vrshp,
int nrshp,
int mrshp,
int lrshp,
int flag_format_rshp)
312 int i_out1, i_out2, i_out3;
314 int distcorrmin=lambda-1;
322 v1_size=lconc+(distcorrmin)*(nbcol-1);
323 fft_size = ceil(1.0*v1_size/nfft)+2*distcorrmin;
327 fprintf(file,
"fctid_concatcol: \t %d\n", (
is_needconcat(nocol, nbcol)==1));
328 fprintf(file,
"fctid_mat2vect: \t %d\n", (nbcol>1));
329 fprintf(file,
"fctid_vect2nfftblock \t %d\n", (nfft>1));
335 for(i=0;i<lconc;i++) {
357 Vout[i_in1] = Vrshp[i_out3];