18#include "fasp_functs.h"
47 register dCSRmat *A11, *A12, *A21, *A22;
48 register dCSRmat *A13, *A23, *A31, *A32, *A33;
53 const register REAL *x1, *x2, *x3;
54 register REAL *y1, *y2, *y3;
57 INT start_row, start_col;
103 x3 = &(x[col1+col2]);
106 y3 = &(y[row1+row2]);
130 for (i=0; i<brow; i++) {
132 for (j=0; j<brow; j++) {
134 if (A->
blocks[i*brow+j]) {
136 &(x[start_col]), &(y[start_row]));
138 start_col = start_col + A->
blocks[j*brow+j]->
col;
142 start_row = start_row + A->
blocks[i*brow+i]->
row;
172 register dCSRmat *A11, *A12, *A21, *A22;
173 register dCSRmat *A13, *A23, *A31, *A32, *A33;
178 const register REAL *x1, *x2, *x3;
179 register REAL *y1, *y2, *y3;
182 INT start_row, start_col;
228 x3 = &(x[col1+col2]);
231 y3 = &(y[row1+row2]);
255 for (i=0; i<brow; i++) {
257 for (j=0; j<brow; j++){
269 start_col = start_col + A->
blocks[j*brow+j]->
col;
272 start_row = start_row + A->
blocks[i*brow+i]->
row;
305 register dCSRmat *A11, *A12, *A21, *A22;
306 register dCSRmat *A13, *A23, *A31, *A32, *A33;
311 const register LONGREAL *x1, *x2, *x3;
312 register REAL *y1, *y2, *y3;
315 INT start_row, start_col;
361 x3 = &(x[col1+col2]);
364 y3 = &(y[row1+row2]);
388 for (i=0; i<brow; i++) {
390 for (j=0; j<brow; j++) {
392 if (A->
blocks[i*brow+j]) {
394 &(x[start_col]), &(y[start_row]));
396 start_col = start_col + A->
blocks[j*brow+j]->
col;
400 start_row = start_row + A->
blocks[i*brow+i]->
row;
void fasp_blas_dblc_mxv(const dBLCmat *A, const REAL *x, REAL *y)
Matrix-vector multiplication y = A*x.
void fasp_blas_dblc_aAxpy(const REAL alpha, const dBLCmat *A, const REAL *x, REAL *y)
Matrix-vector multiplication y = alpha*A*x + y.
void fasp_blas_ldblc_aAxpy(const REAL alpha, const dBLCmat *A, const LONGREAL *x, REAL *y)
Matrix-vector multiplication y = alpha*A*x + y.
void fasp_blas_ldcsr_aAxpy(const REAL alpha, const dCSRmat *A, const LONGREAL *x, REAL *y)
Matrix-vector multiplication y = alpha*A*x + y.
void fasp_blas_dcsr_mxv(const dCSRmat *A, const REAL *x, REAL *y)
Matrix-vector multiplication y = A*x.
void fasp_blas_dcsr_aAxpy(const REAL alpha, const dCSRmat *A, const REAL *x, REAL *y)
Matrix-vector multiplication y = alpha*A*x + y.
Main header file for the FASP project.
Header file for FASP block matrices.
Block REAL CSR matrix format.
INT brow
row number of blocks in A, m
dCSRmat ** blocks
blocks of dCSRmat, point to blocks[brow][bcol]
Sparse matrix of REAL type in CSR format.
INT col
column of matrix A, n
INT row
row number of matrix A, m