Example #1
0
File: svd_f.c Project: rrjudd/jvsip
static vsip_mview_f* meye_f(vsip_length n)
{
    vsip_vview_f *d = (vsip_vview_f*) NULL;
    vsip_mview_f *retval = (vsip_mview_f*)NULL;
    retval = vsip_mcreate_f(n,n,VSIP_ROW,VSIP_MEM_NONE);
    if(retval) d = vsip_mdiagview_f(retval,0);
    if(d){
        vsip_mfill_f(0.0,retval);
        vsip_vfill_f(1.0,d);
        vsip_vdestroy_f(d);
    } else {
        vsip_malldestroy_f(retval);
        retval = (vsip_mview_f*) NULL;
    }
    return retval;
}
int main() {  
vsip_init((void*)0);{
   vsip_mview_f *A = vsip_mcreate_f(NN,NN,VSIP_ROW,VSIP_MEM_NONE);
   vsip_mview_f *B = vsip_mcreate_f(NN,2,VSIP_COL,VSIP_MEM_NONE);
   struct tms t_buf;
   clock_t tclicks;
   vsip_lu_f *lud = vsip_lud_create_f(NN);
   printf("data fill in times 1 %lu\n",times(&t_buf));
   { int i;
      vsip_vview_f *r = vsip_mrowview_f(A,0);
      vsip_offset o = vsip_vgetoffset_f(r);
      vsip_stride s = vsip_mgetcolstride_f(A);
      for(i=0; i<NN; i++){
          vsip_vputoffset_f(r,o);
          vsip_vramp_f(i,1,r);
          o += s;
      }
      vsip_vdestroy_f(r);
   }
   { vsip_vview_f *r = vsip_mdiagview_f(A,0);
      vsip_vfill_f(0,r);
      vsip_vdestroy_f(r);
   }
   {  
      vsip_vview_f *r = vsip_mcolview_f(B,0);
      vsip_vramp_f(1,.01,r);
      vsip_vdestroy_f(r); r = vsip_mcolview_f(B,1);
      vsip_vramp_f(2,.01,r); vsip_vdestroy_f(r); 
   }
/*   printf("A = "); VU_mprintm_f("7.4",A);  */
/*   printf("B = "); VU_mprintm_f("7.4",B);  */
   printf("lud in times 2 %lu\n",(tclicks = times(&t_buf)));
   vsip_lud_f(lud,A);
   printf("lud out times 3 %lu\n",times(&t_buf) - tclicks);
/*   printf("Adec = "); VU_mprintm_f("7.4",A); */  
   printf("lusol in times 4 %lu\n",(tclicks = times(&t_buf)));
   vsip_lusol_f(lud,VSIP_MAT_NTRANS,B);
   printf("lusol out times 5 %lu\n",times(&t_buf) - tclicks);
/*   printf("B = "); VU_mprintm_f("7.4",B);   */
   } vsip_finalize((void*)0);return 0;
}