static void VI_csolve_lt_d(
              const vsip_cmview_d *R,
              const vsip_cmview_d *B)
{
   vsip_length N = R->row_length;
   vsip_cmview_d XX = *B;
   vsip_cmview_d *X = &XX;
   vsip_cvview_d xx, rr;
   vsip_cvview_d *x = VI_cmrowview_d(X,(vsip_index)0,&xx);
   vsip_cvview_d *r_d = VI_cmrowview_d(R,(vsip_index) 0,&rr);
   vsip_cvview_d rr_m = rr;
   vsip_cvview_d *r_m = &rr_m;
   vsip_stride d_s = R->row_stride + R->col_stride;
   r_d->length = 1;
   r_m->length = 0;
   X->col_length = 1;
   vsip_csvmul_d(vsip_crecip_d(vsip_conj_d(vsip_cvget_d(r_d,0))),x,x);
   N--;
   while(N-- >0){
      r_d->offset += d_s;
      r_m->length++; r_m->offset += R->col_stride;
      x->offset += X->col_stride;
      VI_cvjsubvmprodIP_d(r_m,X,x);
      vsip_csvmul_d(vsip_crecip_d(vsip_conj_d(vsip_cvget_d(r_d,0))),x,x); 
      X->col_length++;
   }
   return;
}                                                             
static void VU_cmconjIP_d(vsip_cmview_d *A)
{
      vsip_length m = vsip_cmgetcollength_d(A);
      vsip_length n = vsip_cmgetrowlength_d(A);
      vsip_stride i,j;
      for(i=0; i<m; i++)
         for(j=0; j<n; j++)
            vsip_cmput_d(A,i,j,vsip_conj_d(vsip_cmget_d(A,i,j)));
}
void (vsip_CONJ_d)(vsip_cscalar_d x, vsip_cscalar_d* y) {
  *y = vsip_conj_d(x); }				/* *y = conj(x)	*/
示例#4
0
vsip_cscalar_d (vsip_crecip_d)(
  vsip_cscalar_d x) {				/* 1/x	*/
  return vsip_crdiv_d(
    vsip_conj_d(x), vsip_cmagsq_d(x)); }