Actual source code: dense.h
petsc-3.3-p7 2013-05-11
4: #include <petsc-private/matimpl.h>
7: /*
8: MATSEQDENSE format - conventional dense Fortran storage (by columns)
9: */
11: typedef struct {
12: PetscScalar *v; /* matrix elements */
13: PetscBool roworiented; /* if true, row oriented input (default) */
14: PetscInt pad; /* padding */
15: PetscBLASInt *pivots; /* pivots in LU factorization */
16: PetscBLASInt lda; /* Lapack leading dimension of data */
17: PetscBool changelda; /* change lda on resize? Default unless user set lda */
18: PetscBLASInt Mmax,Nmax; /* indicates the largest dimensions of data possible */
19: PetscBool user_alloc; /* true if the user provided the dense data */
20: } Mat_SeqDense;
22: extern PetscErrorCode MatMult_SeqDense(Mat A,Vec,Vec);
23: extern PetscErrorCode MatMultAdd_SeqDense(Mat A,Vec,Vec,Vec);
24: extern PetscErrorCode MatMultTranspose_SeqDense(Mat A,Vec,Vec);
25: extern PetscErrorCode MatMultTransposeAdd_SeqDense(Mat A,Vec,Vec,Vec);
26: extern PetscErrorCode MatMatMultSymbolic_SeqDense_SeqDense(Mat,Mat,PetscReal,Mat*);
27: extern PetscErrorCode MatMatMultNumeric_SeqDense_SeqDense(Mat,Mat,Mat);
28: extern PetscErrorCode MatTransposeMatMult_SeqDense_SeqDense(Mat,Mat,MatReuse,PetscReal,Mat*);
29: extern PetscErrorCode MatTransposeMatMultSymbolic_SeqDense_SeqDense(Mat,Mat,PetscReal,Mat*);
30: extern PetscErrorCode MatTransposeMatMultNumeric_SeqDense_SeqDense(Mat,Mat,Mat);
31: extern PetscErrorCode MatMatMultSymbolic_SeqAIJ_SeqDense(Mat,Mat,PetscReal,Mat*);
32: extern PetscErrorCode MatMatMultNumeric_SeqAIJ_SeqDense(Mat,Mat,Mat);
34: EXTERN_C_BEGIN
35: extern PetscErrorCode MatMatMult_SeqAIJ_SeqDense(Mat,Mat,MatReuse,PetscReal,Mat*);
36: extern PetscErrorCode MatMatMult_SeqDense_SeqDense(Mat,Mat,MatReuse,PetscReal,Mat*);
37: EXTERN_C_END
39: #endif