1f6f390a9SLois Curfman McInnes 2f6f390a9SLois Curfman McInnes #if !defined(__DENSE_H) 3f6f390a9SLois Curfman McInnes #define __DENSE_H 4da33ede1SBarry Smith #include "src/mat/matimpl.h" 5da33ede1SBarry Smith 6f6f390a9SLois Curfman McInnes 7f6f390a9SLois Curfman McInnes /* 8f6f390a9SLois Curfman McInnes MATSEQDENSE format - conventional dense Fortran storage (by columns) 9f6f390a9SLois Curfman McInnes */ 10f6f390a9SLois Curfman McInnes 11f6f390a9SLois Curfman McInnes typedef struct { 12ea709b57SSatish Balay PetscScalar *v; /* matrix elements */ 13273d9f13SBarry Smith PetscTruth roworiented; /* if true, row oriented input (default) */ 14f6f390a9SLois Curfman McInnes int pad; /* padding */ 15*4ce68768SBarry Smith PetscBLASInt *pivots; /* pivots in LU factorization */ 16*4ce68768SBarry Smith PetscBLASInt lda; /* Lapack leading dimension of user data */ 17273d9f13SBarry Smith PetscTruth user_alloc; /* true if the user provided the dense data */ 18f6f390a9SLois Curfman McInnes } Mat_SeqDense; 19f6f390a9SLois Curfman McInnes 20dfbe8321SBarry Smith EXTERN PetscErrorCode MatMult_SeqDense(Mat A,Vec,Vec); 21dfbe8321SBarry Smith EXTERN PetscErrorCode MatMultAdd_SeqDense(Mat A,Vec,Vec,Vec); 22dfbe8321SBarry Smith EXTERN PetscErrorCode MatMultTranspose_SeqDense(Mat A,Vec,Vec); 23dfbe8321SBarry Smith EXTERN PetscErrorCode MatMultTransposeAdd_SeqDense(Mat A,Vec,Vec,Vec); 2418476b09SLois Curfman McInnes 25f6f390a9SLois Curfman McInnes #endif 26