void cGenSysSurResol::Indexee_SoustraitMatrColInLin ( const ElMatrix<tSysCho> &aMatr, const std::vector<cSsBloc> & aVBl ) { ELISE_ASSERT ( aMatr.tx()==1, "matrice non colonne, Indexee_EcrireMatrColWithLin"); int anXIn=0; for (int aKBl=0 ; aKBl <int(aVBl.size()) ; aKBl++) { int aI0x = aVBl[aKBl].I0AbsSolve(); int aI1x = aVBl[aKBl].I1AbsSolve(); for (int anXOut = aI0x; anXOut < aI1x ; anXOut++) { SetElemLin(anXOut,GetElemLin(anXOut)-aMatr(0,anXIn)); // GetElemLin(anXOut) -= aMatr(0,anXIn); anXIn++; } } /* for (int aK=0 ; aK<int(aVInd.size()) ; aK++) { GetElemLin(aVInd[aK]) -= aMatr(0,aK); } */ }
void cGenSysSurResol::Indexee_UpdateLinWithMatrCol ( const ElMatrix<tSysCho> &aMatr, const std::vector<INT> & aVInd ) { ELISE_ASSERT ( aMatr.tx()==1, "matrice non colonne, Indexee_EcrireMatrColWithLin"); for (int aK=0 ; aK<int(aVInd.size()) ; aK++) { SetElemLin(aVInd[aK],aMatr(0,aK)); } }
void cGenSysSurResol::Indexee_EcrireDansMatrColWithLin ( ElMatrix<tSysCho> &aMatr, const std::vector<cSsBloc> & aVx ) const { ELISE_ASSERT ( aMatr.tx()==1, "matrice non colonne, Indexee_EcrireMatrColWithLin"); int xout = 0; for (int aKx=0 ; aKx <int(aVx.size()) ; aKx++) { int aI0x = aVx[aKx].I0AbsSolve(); int aI1x = aVx[aKx].I1AbsSolve(); for (int xin = aI0x; xin < aI1x ; xin++) { aMatr(0,xout) = GetElemLin(xin); xout ++; } } }