Пример #1
0
void mult_transpose(const SparseMatrix<CoeffType>& A, const CoeffType* x, CoeffType* y) {
	if(A.rows_are_stored()) {
		if(A.has_symmetric_storage()) {
			mult_rows_symmetric(A, x, y) ;
		} else {
			mult_xpose_rows(A, x, y) ;
		}
	} else {
		if(A.has_symmetric_storage()) {
			mult_cols_symmetric(A, x, y) ;
		} else {
			mult_xpose_cols(A, x, y) ;
		}
	}
}
Пример #2
0
 // general driver routine for 
 // sparse matrix * vector product
 void mult(const SparseMatrix& A, const double* x, double* y) {
     if(A.rows_are_stored()) {
         if(A.has_symmetric_storage()) {
             mult_rows_symmetric(A, x, y) ;
         } else {
             mult_rows(A, x, y) ;
         }
     } else {
         if(A.has_symmetric_storage()) {
             mult_cols_symmetric(A, x, y) ;
         } else {
             mult_cols(A, x, y) ;
         }
     }
 }