示例#1
0
extern "C" void magma_dtrdtype1cbHLsym_withQ(magma_int_t N, magma_int_t NB, double *A, magma_int_t LDA, double *V, double *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;
  //double conjtmp;
  double Z_ONE  =  MAGMA_D_ONE;
  double *WORK;
  magma_dmalloc_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(double));
  memset(A(st+1, st-1), 0, (len-1)*sizeof(double));
  /* Eliminate the col  at st-1 */
  lapackf77_dlarfg( &len, A(st, st-1), V(vpos+1), &IONE, TAU(taupos) );
  /* apply left and right on A(st:ed,st:ed)*/
  magma_dlarfxsym(len,A(st,st),LDX,V(vpos),TAU(taupos));
  //conjtmp = MAGMA_D_CNJG(*TAU(taupos));
  //lapackf77_dlarfy("L", &len, V(vpos), &IONE, &conjtmp, A(st,st), &LDX, WORK); //&(MAGMA_D_CNJG(*TAU(taupos)))
  magma_free_cpu(WORK);
}
示例#2
0
extern "C" void
magma_dtrdtype3cbHLsym_withQ(
    magma_int_t N, magma_int_t NB,
    double *A, magma_int_t LDA,
    double *V, double *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;
    //double conjtmp;
    double *WORK;
    magma_dmalloc_cpu( &WORK, N );


    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_dlarfxsym(len,A(st,st),LDX,V(vpos),TAU(taupos));
    //conjtmp = MAGMA_D_CNJG(*TAU(taupos));
    //lapackf77_dlarfy("L", &len, V(vpos), &IONE,  &(MAGMA_D_CNJG(*TAU(taupos))), A(st,st), &LDX, WORK);
    magma_free_cpu(WORK);
}