int main() { vsip_vview_d *dataA; vsip_vview_d *dataB; vsip_vview_vi *Index; vsip_vview_bl *dataBl; int i; vsip_length N; vsip_init((void *)0); dataA = vsip_vcreate_d(L, VSIP_MEM_NONE); dataB = vsip_vcreate_d(L, VSIP_MEM_NONE); Index = vsip_vcreate_vi(L, VSIP_MEM_NONE); dataBl= vsip_vcreate_bl(L, VSIP_MEM_NONE); /* make up some data */ vsip_vramp_d(0,2 * PI/(L-1),dataA); vsip_vcos_d(dataA,dataB); /* find out where dataB is greater than zero */ vsip_vfill_d(0,dataA); vsip_vlgt_d(dataB,dataA,dataBl); /* find the index where dataB is greater than zero */ if((N = vsip_vindexbool(dataBl,Index))) { /* make a vector of those points where dataB is greater than zero*/ vsip_vgather_d(dataB,Index,vsip_vputlength_d(dataA,N)); /*print out the results */ printf("Index Value\n"); for(i=0; i<N; i++) printf("%li %6.3f\n", vsip_vget_vi(Index,i), vsip_vget_d(dataA,i)); } else { printf("Zero Length Index"); exit(0); } vsip_vfill_d(0,dataB); vsip_vscatter_d(dataA,dataB,Index); for(i=0; i<L; i++) printf("%6.3f\n",vsip_vget_d(dataB,i)); /*recover the data space*/ vsip_blockdestroy_d(vsip_vdestroy_d(dataA)); vsip_blockdestroy_d(vsip_vdestroy_d(dataB)); vsip_blockdestroy_vi(vsip_vdestroy_vi(Index)); vsip_blockdestroy_bl(vsip_vdestroy_bl(dataBl)); vsip_finalize((void *)0); return 0; }
int main (){vsip_init((void*)0); { int i; vsip_cvview_d* vector = vsip_cvcreate_d(L,0); vsip_vview_d* realIn = vsip_vrealview_d(vector); vsip_vview_d* imagIn = vsip_vimagview_d(vector); vsip_fft_d* fftplan = vsip_ccfftip_create_d(L,1,-1,0,0); vsip_fft_d* fftplanI = vsip_ccfftip_create_d(L,(double)1/L,1,0,0); char printDataOne[L][20], printDataTwo[L][30]; /* put some data in realIn*/ vsip_vramp_d(0, 2 * VU_PI * F, realIn); vsip_vcos_d(realIn,realIn); /* print realIn */ for(i=0; i<L; i++){ sprintf(printDataOne[i],"%2d input -> %7.4f",i, vsip_vget_d(realIn,i)); } /*make sure imagIn is full of zeros*/ vsip_vfill_d(0,imagIn); /*find the fft*/ vsip_ccfftip_d(fftplan,vector); for(i=0; i<L; i++){ sprintf(printDataTwo[i]," fft -> (%7.3f, %7.3f)", vsip_real_d(vsip_cvget_d(vector,i)), vsip_imag_d(vsip_cvget_d(vector,i))); } /*invert the fft*/ vsip_ccfftip_d(fftplanI,vector); /*print it */ for(i=0; i<L; i++){ printf("%s %s ifft -> (%7.3f, %7.3f)\n", printDataOne[i], printDataTwo[i], vsip_real_d(vsip_cvget_d(vector,i)), vsip_imag_d(vsip_cvget_d(vector,i))); } { vsip_vdestroy_d((void*)imagIn); vsip_vdestroy_d((void*)realIn); vsip_cblockdestroy_d(vsip_cvdestroy_d((void*)vector)); vsip_fft_destroy_d((void*)fftplan); vsip_fft_destroy_d((void*)fftplanI); } } vsip_finalize((void*)0);return 0; }
int main (){ vsip_init((void*)0); { int i; vsip_cblock_d* blockOut = vsip_cblockcreate_d(2 * L, 0); vsip_cvview_d* vectorOut = vsip_cvbind_d(blockOut,0,2,L); vsip_cvview_d* vectorIn = vsip_cvcreate_d(L,0); vsip_vview_d* realIn = vsip_vrealview_d(vectorIn); vsip_vview_d* imagIn = vsip_vimagview_d(vectorIn); vsip_fft_d* fftplan = vsip_ccfftop_create_d(L,1,-1,0,0); vsip_fft_d* fftplanI = vsip_ccfftop_create_d(L,(double)1/L,1,0,0); char inputdata[L][20]; /* put some data in realIn*/ vsip_vramp_d(0, 2 * PI * F, realIn); vsip_vcos_d(realIn,realIn); /* print realIn */ for(i=0; i<L; i++) sprintf(inputdata[i],"%2d input-> %7.3f",i, vsip_vget_d(realIn,i)); /*make sure imagIn is full of zeros*/ vsip_vfill_d(0,imagIn); /*find the fft*/ vsip_ccfftop_d(fftplan,vectorIn,vectorOut); /*invert the fft*/ vsip_ccfftop_d(fftplanI,vectorOut,vectorIn); /*print it */ for(i=0; i<L; i++) printf("%s fft -> (%7.3f, %7.3f) ifft -> (%7.3f, %7.3f)\n", inputdata[i], vsip_real_d(vsip_cvget_d(vectorOut,i)), vsip_imag_d(vsip_cvget_d(vectorOut,i)), vsip_real_d(vsip_cvget_d(vectorIn,i)), vsip_imag_d(vsip_cvget_d(vectorIn,i))); { vsip_vdestroy_d(imagIn); vsip_vdestroy_d(realIn); vsip_cblockdestroy_d(vsip_cvdestroy_d(vectorIn)); vsip_cblockdestroy_d(vsip_cvdestroy_d(vectorOut)); vsip_fft_destroy_d(fftplan); vsip_fft_destroy_d(fftplanI); } } vsip_finalize((void*)0);return 0; }
int main() { vsip_vview_d *dataIn, *dataClip; vsip_init((void *)0); dataIn = vsip_vcreate_d(L, VSIP_MEM_NONE); dataClip = vsip_vcreate_d(L, VSIP_MEM_NONE); /* make some data */ vsip_vramp_d(0.0, (2 * PI)/(L - 1.0), dataIn); vsip_vcos_d(dataIn,dataIn); vsip_vclip_d(dataIn,-.8,.8,-.8,.8,dataClip); printf("clip Cosine between -.8 and .8\n in => out\n "); { int i; for(i=0; i<L; i++) printf("%7.4f => %7.4f\n", vsip_vget_d(dataIn,i),vsip_vget_d(dataClip,i)); } vsip_finalize((void *)0); return 0; }
int main() { int i = 0; vsip_vview_d *dataA; vsip_vview_d *dataB; vsip_vview_d *dataMax; vsip_vview_d *dataMin; vsip_vview_d *dataRamp; vsip_init((void *)0); dataA = vsip_vcreate_d(L, VSIP_MEM_NONE); dataB = vsip_vcreate_d(L, VSIP_MEM_NONE); dataMax = vsip_vcreate_d(L, VSIP_MEM_NONE); dataMin = vsip_vcreate_d(L, VSIP_MEM_NONE); dataRamp = vsip_vcreate_d(L, VSIP_MEM_NONE); /* Make up some data */ vsip_vramp_d(0.0, (2 * PI)/((double)(L-1)), dataRamp); vsip_vsin_d(dataRamp, dataA); vsip_vcos_d(dataRamp, dataB); /* find the Maximum Magnitde dataA or dataB*/ vsip_vmaxmg_d(dataA,dataB,dataMax); vsip_vminmg_d(dataA,dataB,dataMin); /* print out the results */ printf("A B Max Mag Min Mag\n"); for(i = 0; i < L; i++) printf("%7.4f %7.4f %7.4f %7.4f\n", vsip_vget_d(dataA,i), vsip_vget_d(dataB,i), vsip_vget_d(dataMax,i), vsip_vget_d(dataMin,i)); /* recover allocated memory */ vsip_blockdestroy_d(vsip_vdestroy_d(dataA)); vsip_blockdestroy_d(vsip_vdestroy_d(dataB)); vsip_blockdestroy_d(vsip_vdestroy_d(dataMax)); vsip_blockdestroy_d(vsip_vdestroy_d(dataMin)); vsip_blockdestroy_d(vsip_vdestroy_d(dataRamp)); vsip_finalize((void *)0); return 0; }