int main() { int i; vsip_scalar_d dataLeft; vsip_vview_d* dataRight; vsip_vview_d* dataSum; vsip_init((void *)0); dataRight = vsip_vcreate_d(L, VSIP_MEM_NONE); dataSum = vsip_vcreate_d(L, VSIP_MEM_NONE); /* Make up some data to find the magnitude of */ /* First set the scalar equal to 1*/ dataLeft = 1.0; /* Then compute a ramp from one to minus one */ vsip_vramp_d(1.0, -2.0/(double)(L-1), dataRight); /* Add the scalar and the vector */ vsip_svadd_d(dataLeft, dataRight, dataSum); /* now print out the data and its sum */ for(i=0; i < L; i++) printf("%7.4f = (%7.4f) + (%7.4f) \n", vsip_vget_d(dataSum,i), dataLeft, vsip_vget_d(dataRight,i)); /* destroy the vector views and any associated blocks */ vsip_blockdestroy_d(vsip_vdestroy_d(dataRight)); vsip_blockdestroy_d(vsip_vdestroy_d(dataSum)); vsip_finalize((void *)0); return 0; }
int main() { double data[N]; /* a user-created data space */ int i; vsip_vview_d* a; vsip_vview_d* x; vsip_init((void *)0); a = vsip_vbind_d(vsip_blockbind_d(data,N, VSIP_MEM_NONE),0,1,N); x = vsip_vcreate_d(N, VSIP_MEM_NONE); vsip_vramp_d(0.0, 1.0, x); /* admit the user block with no update */ vsip_blockadmit_d(vsip_vgetblock_d(a),VSIP_FALSE); /*compute the 10^x value */ vsip_vexp10_d(x, a); /* release the user block with update */ vsip_blockrelease_d(vsip_vgetblock_d(a),VSIP_TRUE); /*print it */ for(i=0; i<N; i++) printf("%f ",data[i]); printf("\n"); /*destroy the vector views and any associated blocks */ vsip_blockdestroy_d(vsip_vdestroy_d(x)); vsip_blockdestroy_d(vsip_vdestroy_d(a)); vsip_finalize((void *)0); return 0; }
#include <stdio.h> #include "vsip.h" #define L 7 /* length */ int main() { double data[L]; /*a user-created data space */ int i; vsip_vview_d* ramp; vsip_vview_d* output; vsip_init((void *)0); ramp = vsip_vcreate_d(L, VSIP_MEM_NONE); output = vsip_vbind_d(vsip_blockbind_d(data,L, VSIP_MEM_NONE),0,1,L); /*compute a ramp from zero to L-1*/ vsip_vramp_d(0.0, 1.0, ramp); /* admit the user block with no update */ vsip_blockadmit_d(vsip_vgetblock_d(output),VSIP_FALSE); /*compute the hyperbolic cosine value */ vsip_vcosh_d(ramp, output); /* release the user block with update */ vsip_blockrelease_d(vsip_vgetblock_d(output),VSIP_TRUE); /*print it */ for(i=0; i<L; i++) printf("%f ",data[i]); printf("\n"); /*destroy the vector views and any associated blocks */ vsip_blockdestroy_d(vsip_vdestroy_d(ramp)); vsip_blockdestroy_d(vsip_vdestroy_d(output)); vsip_finalize((void *)0); return 0; }
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() { int i; vsip_cvview_d* dataEuler; vsip_vview_d* data; vsip_init((void *)0); dataEuler = vsip_cvcreate_d(L, VSIP_MEM_NONE); data = vsip_vcreate_d(L, VSIP_MEM_NONE); /* Make up some data */ /* Compute a ramp from zero to 2pi */ vsip_vramp_d(0.0, (2.0 * PI / (double) (L - 1)), data); /* Compute Euler */ vsip_veuler_d(data,dataEuler); /* Now print out data and dataEuler */ for(i=0; i < L; i++) { printf(" %7.4f => (%7.4f, %7.4f)\n",vsip_vget_d(data,i), vsip_real_d(vsip_cvget_d(dataEuler,i)), vsip_imag_d(vsip_cvget_d(dataEuler,i))); } /* Destroy the vector views and any associated blocks */ vsip_blockdestroy_d(vsip_vdestroy_d(data)); vsip_cblockdestroy_d(vsip_cvdestroy_d(dataEuler)); vsip_finalize((void *)0); return 0; }
int main() { int i; /* define some vectors */ vsip_vview_d* dataReOne; vsip_vview_d* dataReTwo; vsip_vview_d* dataReQuotient; vsip_cvview_d* dataComplex; vsip_cvview_d* dataComplexQuotient; vsip_init((void *)0); dataReOne = vsip_vcreate_d(L, VSIP_MEM_NONE); dataReTwo = vsip_vcreate_d(L, VSIP_MEM_NONE); dataReQuotient = vsip_vcreate_d(L, VSIP_MEM_NONE); dataComplex = vsip_cvcreate_d(L, VSIP_MEM_NONE); dataComplexQuotient = vsip_cvcreate_d(L, VSIP_MEM_NONE); /* make up some data */ vsip_vramp_d(1,1,dataReOne); vsip_vfill_d(2,dataReTwo); vsip_vcmplx_d(dataReTwo,dataReOne,dataComplex); /*divide one by two and print the input and output */ vsip_vdiv_d(dataReOne,dataReTwo,dataReQuotient); for(i=0; i<L; i++) printf("%7.4f / %7.4f = %7.4f\n", vsip_vget_d(dataReOne,i), vsip_vget_d(dataReTwo,i), vsip_vget_d(dataReQuotient,i)); printf("\n"); /*divide one by complex and print the input and output */ vsip_rcvdiv_d(dataReOne,dataComplex,dataComplexQuotient); for(i=0; i<L; i++) printf("%7.4f / (%7.4f + %7.4fi) = (%7.4f + %7.4fi)\n", vsip_vget_d(dataReOne,i), vsip_real_d(vsip_cvget_d(dataComplex,i)), vsip_imag_d(vsip_cvget_d(dataComplex,i)), vsip_real_d(vsip_cvget_d(dataComplexQuotient,i)), vsip_imag_d(vsip_cvget_d(dataComplexQuotient,i))); /* destroy created objects */ vsip_blockdestroy_d(vsip_vdestroy_d(dataReOne)); vsip_blockdestroy_d(vsip_vdestroy_d(dataReTwo)); vsip_blockdestroy_d(vsip_vdestroy_d(dataReQuotient)); vsip_cblockdestroy_d(vsip_cvdestroy_d(dataComplex)); vsip_cblockdestroy_d(vsip_cvdestroy_d(dataComplexQuotient)); vsip_finalize((void *)0); return 0; }
vsip_vview_d* (vsip_vcreate_d)( vsip_length n, vsip_memory_hint h) { vsip_block_d* b = VI_blockcreate_d((vsip_length)n, h); vsip_vview_d* v = (vsip_vview_d*)NULL; if(b != (vsip_block_d*)NULL){ v = vsip_vbind_d(b, (vsip_offset)0, (vsip_stride)1, n); if (v == (vsip_vview_d*)NULL) vsip_blockdestroy_d(b); } return v; }
int main() { vsip_vview_d* data; vsip_init((void *)0); data = vsip_vcreate_d(L, VSIP_MEM_NONE); /* Make up some data to find the sum of squares of */ vsip_vramp_d(0.0, 1.0, data); printf("%f \n", vsip_vsumsqval_d(data)); vsip_blockdestroy_d(vsip_vdestroy_d(data)); vsip_finalize((void *)0); return 0; } /* output */
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; }
int main() { vsip_vview_d* data; vsip_init((void *)0); data = vsip_vcreate_d(L, VSIP_MEM_NONE); /* Make up some data to find the mean square value of */ /* Compute a ramp from zero to L-1 */ vsip_vramp_d(0.0, 1.0, data); /* And find and print its mean square value */ printf("%f \n",vsip_vmeansqval_d(data)); /*destroy the vector views and any associated blocks */ vsip_blockdestroy_d(vsip_vdestroy_d(data)); vsip_finalize((void *)0); return 0; }
void (vsip_malldestroy_d)( vsip_mview_d* M) { /* matrix view destructor */ vsip_blockdestroy_d(vsip_mdestroy_d(M)); return; }