void aubio_pvoc_rdo(aubio_pvoc_t *pv,cvec_t * fftgrain, fvec_t * synthnew) { uint_t i,j; /* calculate rfft */ aubio_mfft_rdo(pv->fft,fftgrain,pv->synth); /* unshift */ vec_shift(pv->synth); for (i=0; i<pv->channels; i++) { for (j=0; j<pv->win_s; j++) pv->synth->data[i][j] *= pv->w[j]; aubio_pvoc_addsynth(pv->synth->data[i],pv->synthold->data[i], synthnew->data[i],pv->win_s,pv->hop_s); } }
void aubio_pvoc_do(aubio_pvoc_t *pv, fvec_t * datanew, cvec_t *fftgrain) { uint_t i,j; for (i=0; i<pv->channels; i++) { /* slide */ aubio_pvoc_swapbuffers(pv->data->data[i],pv->dataold->data[i], datanew->data[i],pv->win_s,pv->hop_s); /* windowing */ for (j=0; j<pv->win_s; j++) pv->data->data[i][j] *= pv->w[j]; } /* shift */ vec_shift(pv->data); /* calculate fft */ aubio_mfft_do (pv->fft,pv->data,fftgrain); }
mat_ZZ iLLL(ZZ det, ZZ alpha, int dim, int k) { mat_ZZ M; ZZ_mat<mpz_t> M_fp; vec_ZZ v; M.SetDims(2,dim); M[0][0] = det; M[1][0] = alpha; M[1][1] = 1; v = vec_shift(M[1],dim); M_fp = convert<ZZ_mat<mpz_t> ,mat_ZZ >(M); lllReduction(M_fp, 0.99,0.51, LM_WRAPPER,FT_DEFAULT, 0, LLL_EARLY_RED); M = convert<mat_ZZ,ZZ_mat<mpz_t> >(M_fp); v = GS_reduce_iLLL(M, v, det, 3); for (int i=3;i<k;i++) { M.SetDims(i,dim); M[i-1] = v; // cout<<"before:"<<endl<<M<<endl; // cout<<"v:"<<endl<<v<<endl; M_fp = convert<ZZ_mat<mpz_t> ,mat_ZZ >(M); lllReduction(M_fp, 0.99,0.51, LM_WRAPPER,FT_DEFAULT, 0, LLL_EARLY_RED); M = convert<mat_ZZ,ZZ_mat<mpz_t> >(M_fp); v = vec_shift(v, dim); v = GS_reduce_iLLL(M, v, det, i+1); // cout<<"after"<<endl<<M<<endl<<"v after"<<v<<endl; } M.SetDims(k,dim); M[k-1] = v; M_fp = convert<ZZ_mat<mpz_t> ,mat_ZZ >(M); lllReduction(M_fp, 0.99,0.51, LM_WRAPPER,FT_DEFAULT, 0, LLL_EARLY_RED); M = convert<mat_ZZ,ZZ_mat<mpz_t> >(M_fp); return M; }