コード例 #1
0
ファイル: zbulge_kernel.cpp プロジェクト: XapaJIaMnu/magma
extern "C" void magma_ztrdtype1cbHLsym_withQ(magma_int_t N, magma_int_t NB, magmaDoubleComplex *A, magma_int_t LDA, magmaDoubleComplex *V, magmaDoubleComplex *TAU, magma_int_t st, magma_int_t ed, magma_int_t sweep, magma_int_t Vblksiz) {
  //magma_int_t    J1, J2, J3, i, j;
  magma_int_t    len, LDX;
  magma_int_t    IONE=1;
  magma_int_t    blkid, vpos, taupos, tpos;
  //magmaDoubleComplex conjtmp;
  magmaDoubleComplex Z_ONE  =  MAGMA_Z_ONE;
  magmaDoubleComplex *WORK;
  magma_zmalloc_cpu( &WORK, N );


  findVTpos(N,NB,Vblksiz,sweep-1,st-1, &vpos, &taupos, &tpos, &blkid);
  //printf("voici vpos %d taupos %d  tpos %d  blkid %d \n", vpos, taupos, tpos, blkid);
  LDX     = LDA-1;
  len     = ed-st+1;
  *V(vpos)  = Z_ONE;
  memcpy(V(vpos+1), A(st+1, st-1), (len-1)*sizeof(magmaDoubleComplex));
  memset(A(st+1, st-1), 0, (len-1)*sizeof(magmaDoubleComplex));
  /* Eliminate the col  at st-1 */
  lapackf77_zlarfg( &len, A(st, st-1), V(vpos+1), &IONE, TAU(taupos) );
  /* apply left and right on A(st:ed,st:ed)*/
  magma_zlarfxsym(len,A(st,st),LDX,V(vpos),TAU(taupos));
  //conjtmp = MAGMA_Z_CNJG(*TAU(taupos));
  //lapackf77_zlarfy("L", &len, V(vpos), &IONE, &conjtmp, A(st,st), &LDX, WORK); //&(MAGMA_Z_CNJG(*TAU(taupos)))
  magma_free_cpu(WORK);
}
コード例 #2
0
ファイル: zbulge_kernel.cpp プロジェクト: soulsheng/magma
extern "C" void magma_ztrdtype3cbHLsym_withQ(magma_int_t N, magma_int_t NB, magmaDoubleComplex *A, magma_int_t LDA, magmaDoubleComplex *V, magmaDoubleComplex *TAU, magma_int_t st, magma_int_t ed, magma_int_t sweep, magma_int_t Vblksiz) {
  //magma_int_t    J1, J2, J3, i, j;
  magma_int_t    len, LDX;
  //magma_int_t    IONE=1;
  magma_int_t    blkid, vpos, taupos, tpos; 
  //magmaDoubleComplex conjtmp;
  magmaDoubleComplex *WORK  = (magmaDoubleComplex *) malloc( N * sizeof(magmaDoubleComplex) );


  findVTpos(N,NB,Vblksiz,sweep-1,st-1, &vpos, &taupos, &tpos, &blkid);
  LDX    = LDA-1;
  len    = ed-st+1;

  /* apply left and right on A(st:ed,st:ed)*/
  magma_zlarfxsym(len,A(st,st),LDX,V(vpos),TAU(taupos));
  //conjtmp = MAGMA_Z_CNJG(*TAU(taupos));
  //lapackf77_zlarfy("L", &len, V(vpos), &IONE,  &(MAGMA_Z_CNJG(*TAU(taupos))), A(st,st), &LDX, WORK);
  magma_free_cpu(WORK);
}