Example #1
0
vsip_qr_f *vsip_qrd_create_f(
            vsip_length M,
            vsip_length N,
            vsip_qrd_qopt qopt)
{
  vsip_qr_f *qr = (vsip_qr_f*) malloc(sizeof(vsip_qr_f));
  if(( qr != NULL)){
     if((qr->v = VI_vcreate_f(M,VSIP_MEM_NONE))!= NULL){
        if((qr->w = VI_vcreate_f((vsip_length)10 * M,VSIP_MEM_NONE)) != NULL){
          if((qr->beta = (vsip_scalar_f*)malloc(N * sizeof(vsip_scalar_f)))!=NULL){
             /* everything is created all right */
             qr->M = M;
             qr->N = N;
             qr->qopt = qopt;
             qr->A = &(qr->AA);
          } else {
             VI_valldestroy_f(qr->w);
             VI_valldestroy_f(qr->v);
             free(qr);
             qr = (vsip_qr_f*) NULL;
          }
        } else {
             VI_valldestroy_f(qr->v);
             free(qr);
             qr = (vsip_qr_f*) NULL;
        }
     } else {
       free(qr);
       qr = (vsip_qr_f*) NULL;
     }
  } else {
     qr = (vsip_qr_f*) NULL;
  }
  return qr;
}
Example #2
0
vsip_vview_f* (vsip_vcreate_hanning_f)(
  vsip_length N, vsip_memory_hint h) {
  vsip_vview_f *a;
    a  = VI_vcreate_f(N,h);
    if(a == NULL) return (vsip_vview_f*)NULL;
    {
      /*define variables*/
      vsip_length n =  0;
      vsip_scalar_f *ap  = (a->block->array) + a->offset,
                    temp = (vsip_scalar_f)twoPI/(N+1);
      /*end define*/
      /* Note this is always unit stride */
      while(n++ < N ){
         *ap++ = (vsip_scalar_f)0.5 * ((vsip_scalar_f)1. - (vsip_scalar_f)VSIP_COS_F(temp * (vsip_scalar_f) n));
      }
    }
    return a;
}
Example #3
0
vsip_vview_f* vsip_vcreate_kaiser_f(
          vsip_length N, 
          vsip_scalar_f beta, 
          vsip_memory_hint h) {
  vsip_vview_f *a;
    a  = VI_vcreate_f(N,h);
    if(a == NULL) return (vsip_vview_f*)NULL;
    {
      vsip_length n =  0;
      vsip_scalar_f *ap  = (a->block->array) + a->offset,
                    Ibeta,
                    x = beta,
                    c1 = (vsip_scalar_f)2.0 / (N -1 );
      if((vsip_scalar_f)fabs(x) <= 3.0){
         x /= 3.0;   
         x *= x; 
         Ibeta = (vsip_scalar_f)1 + x * (a1 + x * (a2 + x * (a3 + x * (a4 + x * (a5 + x * a6)))));
      } else {
         Ibeta = VI_Io_f(x);
      }
      /* Note this is always unit stride */
      while(n < N){
         vsip_scalar_f c3 = c1 * n - 1;
         if(c3 > 1.0) c3 = 1.0;
         x = beta * (vsip_scalar_f)sqrt(1 - (c3 * c3));
         if((vsip_scalar_f)fabs(x) <= 3.0){
            x /= 3.0;   
            x *= x; 
            *ap++ = ((vsip_scalar_f)1 + x * (a1 + x * (a2 + x * (a3 + x * (a4 + x * (a5 + x * a6)))))) / Ibeta;
         } else {
            *ap++ = VI_Io_f(x)/ Ibeta;
         }
          n++;
      }
    }
    return a;
}