Esempio n. 1
0
int main (int argc, const char * argv[]) 
{
  int retval = vsip_init((void*)0);
  vsip_length N0 = 11;
  vsip_spline_f *spl = vsip_spline_create_f(N0);
  vsip_length N = 201;
  vsip_vview_f *yf = vsip_vcreate_f(N,VSIP_MEM_NONE);
  vsip_vview_f *xf = vsip_vcreate_f(N,VSIP_MEM_NONE);
  vsip_vview_f *xp = vsip_vcreate_f(N0,VSIP_MEM_NONE);
  vsip_vview_f *yp = vsip_vcreate_f(N0,VSIP_MEM_NONE);
  vsip_vramp_f(0.0,1.0,xp);
  vsip_vramp_f(0.0,0.05,xf);
  vsip_svmul_f(2.0/5.0 * M_PI,xp,yp);
  vsip_vsin_f(yp,yp);
  printf("xp = ");VPRINT(xp);
  printf("yp = ");VPRINT(yp);
  printf("xf = ");VPRINT(xf);
  vsip_vinterp_spline_f(xp,yp,spl,xf,yf);
  printf("spline = ");VPRINT(yf);
  vsip_spline_destroy_f(spl);
  vsip_valldestroy_f(xf);
  vsip_valldestroy_f(xp);
  vsip_valldestroy_f(yp);
  vsip_valldestroy_f(yf);
  vsip_finalize((void*)0);
  return retval;
}
/* $Id: example16.c,v 2.0 2003/02/22 15:27:32 judd Exp $ */

#include<vsip.h>
#define L 20 /* A length*/
int main(){vsip_init((void*)0);
{
    vsip_vview_f*   a = vsip_vcreate_f(L,0);
    vsip_vview_f*   b = vsip_vcreate_f(L,0);
    vsip_vview_vi*  ab_vi = vsip_vcreate_vi(L,0);
    vsip_vview_bl*  ab_bl= vsip_vcreate_bl(L,0);
    int i;
    vsip_length N;
    /* make up some data */
    vsip_vramp_f(0,2 * M_PI/(L-1),a);
    vsip_vcos_f(a,b);
    /* find out where b is greater than zero */
    vsip_vfill_f(0,a);
    vsip_vlgt_f(b,a,ab_bl);
    /* find the index where b is greater than zero */
    if((N = vsip_vindexbool(ab_bl,ab_vi))){
        /* make a vector of those points where b is greater than zero*/
        vsip_vgather_f(b,ab_vi,vsip_vputlength_f(a,N));
        /*print out the results */
        printf("Index   Value\n");
        for(i=0; i<N; i++)
           printf("%li      %6.3f\n",
             vsip_vget_vi(ab_vi,i),
             vsip_vget_f(a,i));
     }   
     else{ printf("Zero Length Index");
     }   
     vsip_valldestroy_f(a);
     vsip_valldestroy_f(b);
     vsip_valldestroy_vi(ab_vi);
     vsip_valldestroy_bl(ab_bl);
     } vsip_finalize((void*)0); return 0;
}
Esempio n. 3
0
int main(){vsip_init((void*)0);
{
   FILE *vfptr = fopen("vector.data","r");
   FILE *mfptr = fopen("matrix.data","r");
   vsip_mview_f *B = vsip_mcreate_f(3,5,VSIP_ROW,0);
   vsip_mview_f *R = vsip_mcreate_f(3,5,VSIP_ROW,0);
   vsip_vview_f *a = vsip_vcreate_f(5,0);
   VU_vreadf_f(vfptr,a);
   VU_mreadf_f(mfptr,B);
   fclose(vfptr); fclose(mfptr);
   vsip_vmmul_f(a,B,VSIP_ROW,R);
   printf("a = "); VU_vprintm_f("6.2",a);
   printf("B = "); VU_mprintm_f("6.2",B);
   printf("R = "); VU_mprintm_f("6.2",R);
   { /* test for VSIP_COL */
     vsip_mview_f *BT = vsip_mtransview_f(B);
     vsip_mview_f *RT = vsip_mtransview_f(R);
     vsip_vmmul_f(a,BT,VSIP_COL,RT);
     printf("a = "); VU_vprintm_f("6.2",a);
     printf("BT = "); VU_mprintm_f("6.2",BT);
     printf("RT = "); VU_mprintm_f("6.2",RT);
     vsip_mdestroy_f(BT);
     vsip_mdestroy_f(RT);
   }
   vsip_valldestroy_f(a);
   vsip_malldestroy_f(B);
   vsip_malldestroy_f(R);
   } vsip_finalize((void*)0); return 0;
}
void VU_mprodqt_f(
     vsip_mview_f *C,
     vsip_mview_f *H,
     vsip_scalar_f *beta)
{
     vsip_mattr_f attr_C,attr_C0;
     vsip_mattr_f attr_H0;
     vsip_vattr_f attr_h,attr_v0;
     vsip_vview_f *h = vsip_mcolview_f(H,0);
     vsip_length m,n;
     vsip_length j;
     vsip_stride k;
     vsip_vview_f *v, *w;
     vsip_mgetattrib_f(C,&attr_C);
     vsip_vgetattrib_f(h,&attr_h);
     vsip_mgetattrib_f(H,&attr_H0);
     attr_C0 = attr_C;
     m = attr_C.col_length;
     n = attr_C.row_length;
     v = vsip_vcreate_f(n,0);
     vsip_vgetattrib_f(v,&attr_v0);
     w = vsip_vcreate_f(m,0);
     vsip_vfill_f(0,v);
     for(k= attr_H0.row_length - 1; k >= 0; k--){
         j = (vsip_length)k;
         attr_h.offset = j * attr_H0.row_stride +
                         j * attr_H0.col_stride + attr_H0.offset;
         attr_h.length = attr_H0.col_length - j;
         vsip_vputlength_f(v,attr_h.length);
         vsip_vputoffset_f(v,n - attr_h.length);
         vsip_vputattrib_f(h,&attr_h);
         vsip_vcopy_f_f(h,v);
         vsip_vput_f(v,0,1);
         vsip_vputattrib_f(v,&attr_v0);
         VU_smvprod_f(-beta[j],C,v,w);
         VU_opu_f(C,w,v);              
     }
     printf("here 2\n");
     vsip_mputattrib_f(C,&attr_C0);
     vsip_vdestroy_f(h);
     vsip_valldestroy_f(v);
     vsip_valldestroy_f(w);
     return;
}
void VU_qtprodm_f(
     vsip_mview_f *C,
     vsip_mview_f *H,
     vsip_scalar_f *beta)
{
     vsip_mattr_f attr_C,attr_C0;
     vsip_mattr_f attr_H0;
     vsip_vattr_f attr_h,attr_v0;
     vsip_vview_f *h = vsip_mcolview_f(H,0);
     vsip_length m,n;
     vsip_length j;
     vsip_stride k;
     vsip_vview_f *v, *w;
     vsip_mgetattrib_f(C,&attr_C);
     vsip_vgetattrib_f(h,&attr_h);
     vsip_mgetattrib_f(H,&attr_H0);
     attr_C0 = attr_C;
     m = attr_C.col_length;
     n = attr_C.row_length;
     v = vsip_vcreate_f(m,0);
     vsip_vgetattrib_f(v,&attr_v0);
     w = vsip_vcreate_f(n,0);
     for(k= 0; k < attr_H0.row_length; k++){
         j = (vsip_length)k;
         attr_h.offset = j * attr_H0.row_stride +
                         j * attr_H0.col_stride + attr_H0.offset;
         attr_h.length = attr_H0.col_length -j;
         vsip_vputlength_f(v,attr_h.length);
         vsip_vputoffset_f(v,m - attr_h.length);
         vsip_vputattrib_f(h,&attr_h);
         vsip_vcopy_f_f(h,v);
         vsip_vput_f(v,0,1);
         vsip_vputattrib_f(v,&attr_v0);
         VU_svmprod_f(-beta[j],v,C,w);
         VU_opu_f(C,v,w);
         vsip_vput_f(v,k,0);
     }
     vsip_mputattrib_f(C,&attr_C0);
     vsip_vdestroy_f(h);
     vsip_valldestroy_f(v);
     vsip_valldestroy_f(w);
     return;
}
Esempio n. 6
0
int main(){vsip_init((void*)0);
{

    int i,j;
    vsip_vview_f* a  = vsip_vcreate_f(M,0);
    vsip_vview_f* b  = vsip_vcreate_f(N,0);
    vsip_mview_f* r = vsip_mcreate_f(
                      vsip_vgetlength_f(a),
                      vsip_vgetlength_f(b),
                      VSIP_ROW,0);
    vsip_vramp_f(1.0, 1.0 , b);
    vsip_vramp_f(1.0, -2.0/(double)(N-1), a);

    vsip_vouter_f(1,a, b, r);
    printf("a = [\n");
    for(i=0; i<vsip_vgetlength_f(a); i++)
        printf("%6.3f%s\n", vsip_vget_f(a,i),
        (i == vsip_vgetlength_f(a) -1) ? "":";");
    printf("]\n");
    printf("b = [\n");
    for(i=0; i<vsip_vgetlength_f(b); i++)
        printf("%6.3f%s\n", vsip_vget_f(b,i),
        (i == vsip_vgetlength_f(a) -1) ? "":";");
        printf("]\n");
    printf("\na * b' = \n");
    for(i=0; i<vsip_vgetlength_f(a); i++){
       for(j=0; j<vsip_vgetlength_f(b); j++) 
          printf("%6.3f  ",vsip_mget_f(r,i,j));
       printf("\n");
    }
    printf("]\n");

    /*destroy the vector views and any associated blocks*/
    vsip_valldestroy_f(b);
    vsip_valldestroy_f(a);
    vsip_malldestroy_f(r);
    } vsip_finalize((void*)0); return 0;
}
Esempio n. 7
0
File: svd_f.c Progetto: rrjudd/jvsip
void svdFinalize_f(svdObj_f *s)
{
    vsip_vdestroy_f(s->ts);
    vsip_valldestroy_f(s->t);
    vsip_vdestroy_f(s->rs_one);
    vsip_vdestroy_f(s->rs_two);
    vsip_mdestroy_f(s->Rs);
    vsip_vdestroy_f(s->ls_one);
    vsip_vdestroy_f(s->ls_two);
    vsip_mdestroy_f(s->Ls);
    vsip_mdestroy_f(s->Bs);
    vsip_vdestroy_f(s->bs);
    vsip_malldestroy_f(s->B);
    vsip_malldestroy_f(s->R);
    vsip_malldestroy_f(s->L);
    vsip_valldestroy_vi(s->indx_L);
    vsip_valldestroy_vi(s->indx_R);
    vsip_vdestroy_f(s->ds);
    vsip_valldestroy_f(s->d);
    vsip_vdestroy_f(s->fs);
    vsip_valldestroy_f(s->f);
    s=NULL;
}
Esempio n. 8
0
/* Below we implement example from "help interp1" in octave 2.9.9
* xf=[0:0.05:10]; yf = sin(2*pi*xf/5);
* xp=[0:10]; yp = sin(2*pi*xp/5);
* lin=interp1(xp,yp,xf);
*/
int main (int argc, const char * argv[]) 
{
  int retval = vsip_init((void*)0);
  vsip_length N0 = 11;
  vsip_length N = 201;
  vsip_length M = 3;
  vsip_mview_f *yf = vsip_mcreate_f(M,N,VSIP_ROW,VSIP_MEM_NONE);
  vsip_vview_f *xf = vsip_vcreate_f(N,VSIP_MEM_NONE);
  vsip_vview_f *xp = vsip_vcreate_f(N0,VSIP_MEM_NONE);
  vsip_mview_f *yp = vsip_mcreate_f(M,N0,VSIP_COL,VSIP_MEM_NONE);
  vsip_vview_f *yp0 = vsip_mrowview_f(yp,0);
  vsip_vview_f *yp1 = vsip_mrowview_f(yp,1);
  vsip_vview_f *yp2 = vsip_mrowview_f(yp,2);
  vsip_vramp_f(0.0,1.0,xp);
  vsip_vramp_f(0.0,0.05,xf);
  vsip_svmul_f(2.0/5.0 * M_PI,xp,yp0);
  vsip_svadd_f(M_PI/8.0,yp0,yp1);
  vsip_svadd_f(M_PI/8.0,yp1,yp2);
  vsip_vsin_f(yp0,yp0);
  vsip_vsin_f(yp1,yp1);
  vsip_vsin_f(yp2,yp2);
  printf("xp = ");VPRINT(xp);
  printf("yp = ");MPRINT(yp);
  printf("xf = ");VPRINT(xf);
  vsip_minterp_linear_f(xp,yp,VSIP_ROW,xf,yf);
  printf("linear = "); MPRINT(yf);
  vsip_vdestroy_f(yp0);
  vsip_vdestroy_f(yp1);
  vsip_vdestroy_f(yp2);
  vsip_valldestroy_f(xf);
  vsip_valldestroy_f(xp);
  vsip_malldestroy_f(yp);
  vsip_malldestroy_f(yf);
  vsip_finalize((void*)0);
  return retval;
}
Esempio n. 9
0
File: svd_f.c Progetto: rrjudd/jvsip
/* sign function as defined in http://www.netlib.org/lapack/lawnspdf/lawn148.pdf */
static vsip_scalar_f sign_f(vsip_scalar_f a_in)
{
    if(a_in < 0.0)
       return -1.0;
    else 
       return 1.0;
} /* same */
static void biDiagPhaseToZero_f( svdObj_f *svd)
{
    vsip_mview_f *L = svd->L;
    vsip_vview_f *d = svd->d;
    vsip_vview_f *f = svd->f;
    vsip_mview_f *R = svd->R;
    vsip_scalar_f eps0 = svd->eps0;
    vsip_length n_d=vsip_vgetlength_f(d);
    vsip_length n_f=vsip_vgetlength_f(f);
    vsip_index i,j;
    vsip_scalar_f ps;
    vsip_scalar_f m;
    vsip_vview_f *l = svd->ls_one;
    vsip_vview_f *r = svd->rs_one;
    for(i=0; i<n_d; i++){
        ps=vsip_vget_f(d,i);
        m = vsip_mag_f(ps);
        ps=sign_f(ps);
        if(m > eps0){
            col_sv_f(L,l,i);vsip_svmul_f(ps,l,l);
            vsip_vput_f(d,i,m);
            if (i < n_f)
                vsip_vput_f(f,i,ps*vsip_vget_f(f,i));
        } else {
            vsip_vput_f(d,i,0.0);
        }
    }
    svdZeroCheckAndSet_f(eps0,d,f);          
    for (i=0; i<n_f-1; i++){
        j=i+1;
        ps = vsip_vget_f(f,i);
        m = vsip_mag_f(ps);
        ps=sign_f(ps);
        col_sv_f(L, l, j);vsip_svmul_f(ps,l,l);
        row_sv_f(R,r,j);vsip_svmul_f(ps,r,r);
        vsip_vput_f(f,i,m);
        vsip_vput_f(f,j,ps * vsip_vget_f(f,j));
    }
    j=n_f;
    i=j-1;
    ps=vsip_vget_f(f,i);
    m=vsip_mag_f(ps);
    ps=sign_f(ps);
    vsip_vput_f(f,i,m);
    col_sv_f(L, l, j);vsip_svmul_f(ps,l,l);
    row_sv_f(R,r,j);vsip_svmul_f(ps,r,r);
} 
static void phaseCheck_f(svdObj_f *svd)
{
    biDiagPhaseToZero_f(svd);
} 

void houseProd_f(vsip_vview_f *v, vsip_mview_f *A)
{
    vsip_mattr_f a_atr; 
    vsip_vview_f *w;
    vsip_mview_f *B;
    vsip_mgetattrib_f(A,&a_atr);
    B=vsip_mcreate_f(a_atr.col_length,a_atr.row_length,VSIP_ROW,VSIP_MEM_NONE);
    w = vsip_vcreate_f(a_atr.row_length,VSIP_MEM_NONE);
    vsip_scalar_f beta = 2.0/vsip_vdot_f(v,v);
    vsip_vmprod_f(v,A,w);
    vsip_vouter_f(beta,v,w,B);
    vsip_msub_f(A,B,A);
    vsip_valldestroy_f(w);
    vsip_malldestroy_f(B);
} /* need to remove create */
void prodHouse_f(vsip_mview_f *A, vsip_vview_f *v)
{
    vsip_mattr_f a_atr; 
    vsip_vview_f *w;
    vsip_mview_f *B;
    vsip_mgetattrib_f(A,&a_atr);
    B=vsip_mcreate_f(a_atr.col_length,a_atr.row_length,VSIP_ROW,VSIP_MEM_NONE);
    w = vsip_vcreate_f(a_atr.col_length,VSIP_MEM_NONE);
    vsip_scalar_f beta = 2.0/vsip_vdot_f(v,v);
    vsip_mvprod_f(A,v,w);
    vsip_vouter_f(beta,w,v,B);
    vsip_msub_f(A,B,A);
    vsip_valldestroy_f(w);
    vsip_malldestroy_f(B);
} /* need to remove create */
int main(int argc, char **argv)
{
    vsip_vview_f *vw;
    vsip_scalar_f *buf = 0;
    vsip_dda_sync_policy pol = VSIP_DDA_SYNC_POLICY_IN;
    vsip_length reqsz;
    vsip_dda_vdata_f *data;
    vsip_init((void*)0);
    vw = vsip_vcreate_f(N, VSIP_MEM_NONE); /* TODO: Handle error */
    if(0 != (reqsz = vsip_dda_vrequired_buffer_size_f(vw, 0, pol)))
        buf = malloc(reqsz * sizeof(vsip_scalar_f));
    data = vsip_dda_vdatacreate_f(vw, 0, pol, buf); /* TODO: Handle error */
    /* TODO : Operate on the data object */
    vsip_dda_vdatadestroy_f(data); /* TODO: Handle error */
    vsip_valldestroy_f(vw);
    vsip_finalize((void*)0);
    return 0;
}
Esempio n. 11
0
int main () {
  vsip_init((void*)0);{
     double time0, time_rc=0, time_cr=0;
     int i;
     /*int k; for(k=0; k<4; k++)*/{
     vsip_cvview_f* vectorOut = vsip_cvcreate_f(L/2 + 1,VSIP_MEM_NONE);
     vsip_vview_f* vectorIn = vsip_vcreate_f(L,VSIP_MEM_NONE);
     vsip_vview_f* ivectorOut = vsip_vcreate_f(L,VSIP_MEM_NONE);
     vsip_fft_f* fftplan  = vsip_rcfftop_create_f(L,1.0/L,0,VSIP_ALG_SPACE);
     vsip_fft_f* ifftplan = vsip_crfftop_create_f(L,(double)(1.0),0,VSIP_ALG_TIME);
     char printbuffer[10][40];
/*     char printbuffer[L/2][40]; */
   
     vsip_vramp_f(0, 2 * M_PI * F, vectorIn);
     vsip_vcos_f(vectorIn,vectorIn);
   
     /* print vectorIn */
     /* for(i=0; i<L/2; i++) */
     for(i=0; i<10; i++)
        sprintf(printbuffer[i],"%2d, %2d input-> %7.3f, %7.3f",
                 i, i+L/2, vsip_vget_f(vectorIn,i), vsip_vget_f(vectorIn,i+L/2));

     /*find the fft*/
     for(i=0; i<N; i++){
        /* printf("%d\n",i);fflush(stdout); */
        time0=VU_ansi_c_clock();
        vsip_rcfftop_f(fftplan,vectorIn,vectorOut);
        time_rc += (VU_ansi_c_clock() - time0);
        /*find the inverse fft*/
        time0=VU_ansi_c_clock();
        vsip_crfftop_f(ifftplan,vectorOut,ivectorOut);  
        time_cr += (VU_ansi_c_clock() - time0);
     }
     /*print it */
     /* for(i=0; i<L/2; i++) */
     for(i=0; i<10; i++)
        printf("%s   fft -> (%9.4f, %9.4f) ifft-> %7.3f, %7.3f\n" ,
              printbuffer[i],
              vsip_real_f(vsip_cvget_f(vectorOut,i)),
              vsip_imag_f(vsip_cvget_f(vectorOut,i)),
              vsip_vget_f(ivectorOut,i), 
              vsip_vget_f(ivectorOut,i+L/2));
     printf("                                  fft -> (%9.4f, %9.4f)\n",
              vsip_real_f(vsip_cvget_f(vectorOut,i)),
              vsip_imag_f(vsip_cvget_f(vectorOut,i)));
    {/* test vsip_fft_getattr_f */
         vsip_fft_attr_f attr;
         vsip_fft_getattr_f(fftplan, &attr);
         printf("%lu %lu %d %f %d\n",attr.input,attr.output,attr.place,attr.scale,attr.dir);
         vsip_fft_getattr_f(ifftplan, &attr);
         printf("%lu %lu %d %f %d\n",attr.input,attr.output,attr.place,attr.scale,attr.dir);
     }
     vsip_cvalldestroy_f(vectorOut);
     vsip_valldestroy_f(vectorIn);
     vsip_fft_destroy_f(fftplan);
     printf("time_rc %f; time_cr %f\n",time_rc/(double)N, time_cr/(double)N);
   } 
   }
   vsip_finalize((void*)0); 
   return 0;
}
Esempio n. 12
0
int main () {
vsip_init((void*)0);
{ vsip_vview_f *kernel = 
        vsip_vcreate_kaiser_f(128,15.0,VSIP_MEM_NONE);
  vsip_randstate *r_state  =
        vsip_randcreate(11,1,1,VSIP_NPRNG);
  vsip_conv1d_f *conv;
  vsip_fir_f    *fir;
  vsip_vview_f *data  = vsip_vcreate_f(
        2 * N_data,VSIP_MEM_NONE),
               *noise = vsip_vcreate_f(
        3 * N_data,VSIP_MEM_NONE),
               *avg   = vsip_vcreate_f(
        4 * N_data,VSIP_MEM_NONE);
  int i; vsip_length N_len;
  vsip_vputlength_f(data,
        (vsip_length)((N_data-1)/dec1)+1);
  vsip_vputlength_f(avg,
        (vsip_length)((N_data-1)/dec1)+1);
  vsip_vputstride_f(data,2);
  vsip_vputstride_f(avg,4);
  vsip_vputlength_f(noise,N_data); vsip_vputstride_f(noise,3);
  conv = vsip_conv1d_create_f(
        kernel,VSIP_NONSYM,
        N_data,dec1,VSIP_SUPPORT_SAME,0,0);
  fir  = vsip_fir_create_f(
        kernel,VSIP_NONSYM, N_data,dec1,VSIP_STATE_NO_SAVE,0,0);
  vsip_vfill_f(0,avg);
  for(i=0; i<10; i++){
         vsip_vrandn_f(r_state,noise);
         vsip_convolve1d_f(conv,noise,data);
         VU_vfrdB_f(data,1e-13);
         vsip_vsma_f(data,0.1,avg,avg);
  }
  N_len = vsip_vgetlength_f(avg);
  {  vsip_vview_f *x = vsip_vcreate_f(
           N_len,VSIP_MEM_NONE);
     vsip_vramp_f(-.5,1.0/(vsip_scalar_f)(N_len-1),x);
     VU_vfprintxyg_f("%8.6f %8.6f\n",x,avg,"conv_dec1");
     vsip_vdestroy_f(x);
  }
   vsip_vfill_f(0,avg);
   for(i=0; i<10; i++){
      vsip_vrandn_f(r_state,noise);
      vsip_firflt_f(fir,noise,data);
      VU_vfrdB_f(data,1e-13);
      vsip_vsma_f(data,0.1,avg,avg);
    }   
    N_len = vsip_vgetlength_f(avg);
    {  vsip_vview_f *x = vsip_vcreate_f(
             N_len,VSIP_MEM_NONE);
       vsip_vramp_f(-.5,1.0/(vsip_scalar_f)(N_len-1),x);
       VU_vfprintxyg_f("%8.6f %8.6f\n",x,avg,"fir_dec1");
       vsip_vdestroy_f(x);
    }
    vsip_conv1d_destroy_f(conv);
    vsip_fir_destroy_f(fir);
    conv = vsip_conv1d_create_f(
            kernel,VSIP_NONSYM,
            N_data,dec3,VSIP_SUPPORT_SAME,0,0);
    fir  = vsip_fir_create_f(
            kernel,VSIP_NONSYM,
            N_data,dec3,VSIP_STATE_NO_SAVE,0,0);
    vsip_vputlength_f(data,
            (vsip_length)((N_data-1)/dec3)+1);
    vsip_vputlength_f(avg,
            (vsip_length)((N_data-1)/dec3)+1);
    vsip_vfill_f(0,avg);
    for(i=0; i<10; i++){
       vsip_vrandn_f(r_state,noise);
       vsip_convolve1d_f(conv,noise,data);
       VU_vfrdB_f(data,1e-13);
       vsip_vsma_f(data,0.1,avg,avg);
    }
    N_len = vsip_vgetlength_f(avg);
    {  vsip_vview_f *x = vsip_vcreate_f(
             N_len,VSIP_MEM_NONE);
       vsip_vramp_f(-.5,1.0/(vsip_scalar_f)(N_len - 1),x);
       VU_vfprintxyg_f("%8.6f %8.6f\n",
             x, avg,"conv_dec3");
       vsip_vdestroy_f(x);
    }
   vsip_vfill_f(0,avg);
    for(i=0; i<10; i++){
        vsip_vrandn_f(r_state,noise);
        vsip_firflt_f(fir,noise,data);
        VU_vfrdB_f(data,1e-13);
        vsip_vsma_f(data,0.1,avg,avg);
     }
     N_len = vsip_vgetlength_f(avg);
     {  vsip_vview_f *x = vsip_vcreate_f(
            N_len,VSIP_MEM_NONE);
        vsip_vramp_f(-.5,1.0/(vsip_scalar_f)(N_len-1),x);
        VU_vfprintxyg_f("%8.6f %8.6f\n",
            x, avg,"fir_dec3");
        vsip_vdestroy_f(x);
     }
     N_len = vsip_vgetlength_f(kernel);
     { vsip_vview_f *x = vsip_vcreate_f(
           N_len,VSIP_MEM_NONE);
       vsip_vramp_f(0,1,x);
       VU_vfprintxyg_f("%8.6f %8.6f\n",
             x,kernel,"kaiser_window");
       vsip_vramp_f(-.5,1.0/(vsip_scalar_f)(N_len-1),x);
       VU_vfrdB_f(kernel,1e-20);
       VU_vfprintxyg_f("%8.6f %8.6f\n",
             x,kernel,"Freq_Resp_Kaiser");
       vsip_vdestroy_f(x);
     }
  vsip_randdestroy(r_state);
  vsip_valldestroy_f(kernel);
  vsip_conv1d_destroy_f(conv);vsip_fir_destroy_f(fir);
  vsip_valldestroy_f(data); vsip_valldestroy_f(noise);
  vsip_valldestroy_f(avg);
  } vsip_finalize((void*)0); return 0;
}/*end of main program *******************************/
Esempio n. 13
0
int main() {
vsip_init((void*)0);{
    vsip_mview_f *A  = vsip_mcreate_f(NN,NN,VSIP_COL,0);
    vsip_vview_f *x0 = vsip_vcreate_f(NN,0);
    vsip_vview_f *b  = vsip_vcreate_f(NN,0);
    vsip_mview_f *X  = vsip_mcreate_f(NN,3,VSIP_ROW,0);
    vsip_mview_f *XT  = vsip_mcreate_f(NN,3,VSIP_COL,0);
    vsip_vramp_f(1,1,x0); vsip_vmul_f(x0,x0,x0);
    vsip_mput_f(A,0,0,-3); vsip_mput_f(A,0,1,7); vsip_mput_f(A,0,2,10); vsip_mput_f(A,0,3,12);
    vsip_mput_f(A,1,0,0); vsip_mput_f(A,1,1,13); vsip_mput_f(A,1,2,18); vsip_mput_f(A,1,3,6);
    vsip_mput_f(A,2,0,2); vsip_mput_f(A,2,1,-9); vsip_mput_f(A,2,2,6); vsip_mput_f(A,2,3,3);
    vsip_mput_f(A,3,0,1); vsip_mput_f(A,3,1,2); vsip_mput_f(A,3,2,3); vsip_mput_f(A,3,3,4);
    {int i,j; printf("A = [\n"); for(i=0; i<NN; i++){
                  for(j=0; j<NN; j++) printf("%9.2f%s",vsip_mget_f(A,i,j),(j == NN-1) ? "":",");
                  printf(";\n");
              }
              printf("]\n");
    }
    { int k; 
      vsip_vview_f *x;
      vsip_length L    = vsip_mgetrowlength_f(X);
      for(k=0; k<L; k++){
        x  = vsip_mcolview_f(X,k);
        vsip_mvprod_f(A,x0,b);
        vsip_vcopy_f_f(b,x);
        vsip_svmul_f(2.0,x0,x0);
        vsip_vdestroy_f(x);
      }
    {int i,j; printf("X = [\n");for(i=0; i<NN; i++){
                  for(j=0; j<3; j++) printf("%9.2f%s",vsip_mget_f(X,i,j),(j == 2) ? "":",");
                  printf(";\n");
              }
              printf("]\n");
    }
    {
      vsip_lu_f* luAop = vsip_lud_create_f(NN);
      vsip_mcopy_f_f(X,XT);
      if(luAop == NULL) exit(1);
      vsip_lud_f(luAop,A);
      {  vsip_lu_attr_f attr;
         vsip_lud_getattr_f(luAop,&attr);
         printf("lud size %lu\n",attr.n);
      }  
      vsip_lusol_f(luAop,0,X);
      vsip_lusol_f(luAop,1,XT);
      vsip_lud_destroy_f(luAop);
    }
    }
    {int i,j; printf("A\\X\n"); for(i=0; i<NN; i++){
                  for(j=0; j<3; j++) printf("%9.2f%s",vsip_mget_f(X,i,j),(j == 2) ? "":",");
                  printf(";\n");
              }
    }
    {int i,j; printf("A'\\X\n"); for(i=0; i<NN; i++){
                  for(j=0; j<3; j++) printf("%9.2f%s",vsip_mget_f(XT,i,j),(j == 2) ? "":",");
                  printf(";\n");
              }
    }
    {
       vsip_valldestroy_f(b);
       vsip_valldestroy_f(x0);
       vsip_malldestroy_f(X);
       vsip_malldestroy_f(A);
    }
    }vsip_finalize((void*)0);return 1;
}
Esempio n. 14
0
int main(){vsip_init((void*)0);
{
    vsip_mview_f *Adummy  = vsip_mcreate_f(5*NN,5*NN,VSIP_COL,0);
    vsip_mview_f *A = vsip_msubview_f(Adummy,3,2,NN,NN);
    vsip_vview_f *x0 = vsip_vcreate_f(NN,0);
    vsip_mview_f *X  = vsip_mcreate_f(NN,3,VSIP_ROW,0);
    vsip_mview_f *XT  = vsip_mcreate_f(NN,3,VSIP_COL,0);
    vsip_mputrowstride_f(A,2*vsip_mgetrowstride_f(A));
    vsip_mputcolstride_f(A,3*vsip_mgetcolstride_f(A));

    /* matrix data */
    vsip_mput_f(A,0,0,0.5); vsip_mput_f(A,0,1,7); vsip_mput_f(A,0,2,10); vsip_mput_f(A,0,3,12);
    vsip_mput_f(A,0,4,-3); vsip_mput_f(A,0,5,0); vsip_mput_f(A,0,6,.05);

    vsip_mput_f(A,1,0,2); vsip_mput_f(A,1,1,13); vsip_mput_f(A,1,2,18); vsip_mput_f(A,1,3,6);
    vsip_mput_f(A,1,4,0); vsip_mput_f(A,1,5,130); vsip_mput_f(A,1,6,8);

    vsip_mput_f(A,2,0,3); vsip_mput_f(A,2,1,-9); vsip_mput_f(A,2,2,2); vsip_mput_f(A,2,3,3);
    vsip_mput_f(A,2,4,2); vsip_mput_f(A,2,5,-9); vsip_mput_f(A,2,6,6);

    vsip_mput_f(A,3,0,4); vsip_mput_f(A,3,1,2); vsip_mput_f(A,3,2,2); vsip_mput_f(A,3,3,4);
    vsip_mput_f(A,3,4,1); vsip_mput_f(A,3,5,2); vsip_mput_f(A,3,6,3);

    vsip_mput_f(A,4,0,.2); vsip_mput_f(A,4,1,2); vsip_mput_f(A,4,2,9); vsip_mput_f(A,4,3,4);
    vsip_mput_f(A,4,4,1); vsip_mput_f(A,4,5,2); vsip_mput_f(A,4,6,3);

    vsip_mput_f(A,5,0,.1); vsip_mput_f(A,5,1,2); vsip_mput_f(A,5,2,.3); vsip_mput_f(A,5,3,4);
    vsip_mput_f(A,5,4,1); vsip_mput_f(A,5,5,2); vsip_mput_f(A,5,6,3);

    vsip_mput_f(A,6,0,.01); vsip_mput_f(A,6,1,.2); vsip_mput_f(A,6,2,3); vsip_mput_f(A,6,3,4);
    vsip_mput_f(A,6,4,1); vsip_mput_f(A,6,5,2); vsip_mput_f(A,6,6,3);

    {int i,j; printf("A = [\n"); for(i=0; i<NN; i++){
                  for(j=0; j<NN; j++) printf("%9.2f%s",vsip_mget_f(A,i,j),(j == NN-1) ? "":",");
                  printf(";\n");
              }
              printf("]\n");
    }
    { /* were solving for NTRANS Ax = B */
      /* use a known X, calculate B using Ax */
      int k; 
      vsip_vview_f *x;
      vsip_mview_f *AT = vsip_mtransview_f(A);
      vsip_length L    = vsip_mgetrowlength_f(X);
      vsip_vramp_f(1,1,x0);
      for(k=0; k<L; k++){
        x  = vsip_mcolview_f(X,k);
        vsip_mvprod_f(A,x0,x);
        vsip_svmul_f(2.0,x0,x0);
        vsip_vdestroy_f(x);
      }
      vsip_vramp_f(1,1,x0);
      for(k=0; k<L; k++){
        x  = vsip_mcolview_f(XT,k);
        vsip_mvprod_f(AT,x0,x);
        vsip_svmul_f(2.0,x0,x0);
        vsip_vdestroy_f(x);
      }
      vsip_mdestroy_f(AT);
      printf("X = 1  2  4\n    2  4  8\n    3  6 12\n    4  8 16\n    5 10 20\n    6 12 24\n    7 14 28\n");
      { 
         int i,j; printf("B = [\n");for(i=0; i<NN; i++){
                    for(j=0; j<3; j++) printf("%9.2f%s",vsip_mget_f(X,i,j),(j == 2) ? "":",");
                    printf(";\n");
                }
                printf("]\n");
      }
      {
        /* then solve for B to see if we get X back */
        vsip_lu_f* luAop = vsip_lud_create_f(NN);
        if(luAop == NULL) exit(1);
        vsip_lud_f(luAop,A);
        {  vsip_lu_attr_f attr;
           vsip_lud_getattr_f(luAop,&attr);
           printf("lud size %lu\n",attr.n);
        }  
        vsip_lusol_f(luAop,VSIP_MAT_NTRANS,X);
        vsip_lusol_f(luAop,VSIP_MAT_TRANS,XT);
        vsip_lud_destroy_f(luAop);
      }
    }
    {int i,j; printf("A\\X\n"); for(i=0; i<NN; i++){
                  for(j=0; j<3; j++) printf("%9.2f%s",vsip_mget_f(X,i,j),(j == 2) ? "":",");
                  printf(";\n");
              }
    }
    {int i,j; printf("A'\\X\n"); for(i=0; i<NN; i++){
                  for(j=0; j<3; j++) printf("%9.2f%s",vsip_mget_f(XT,i,j),(j == 2) ? "":",");
                  printf(";\n");
              }
    }
    {
       vsip_malldestroy_f(XT);
       vsip_valldestroy_f(x0);
       vsip_malldestroy_f(X);
       vsip_mdestroy_f(A);
       vsip_malldestroy_f(Adummy);
    }
    } vsip_finalize((void*)0); return 1;
}