|
Nektar++
|
#include <SparseMatrixFwd.hpp>

Classes | |
| class | const_iterator |
Public Types | |
| typedef T | DataType |
| typedef Array< OneD, DataType > | DataVectorType |
| typedef Array< OneD, const DataType > | ConstDataVectorType |
| typedef Array< OneD, IndexType > | IndexVectorType |
| typedef void(* | MultiplyKernel )(const double *, const double *, double *) |
Public Member Functions | |
| StorageSmvBsr (const IndexType blkRows, const IndexType blkCols, const IndexType blkDim, const BCOMatType &bcoMat, const MatrixStorage matType=eFULL) | |
| StorageSmvBsr (const StorageSmvBsr &src) | |
| ~StorageSmvBsr () | |
| const IndexType | GetRows () const |
| const IndexType | GetColumns () const |
| const IndexType | GetNumNonZeroEntries () const |
| const IndexType | GetNumStoredDoubles () const |
| const IndexType | GetBlkSize () const |
| const DataType | GetFillInRatio () const |
| const size_t | GetMemoryUsage (IndexType nnz, IndexType nRows) const |
| const_iterator | begin () const |
| const_iterator | end () const |
| const boost::call_traits < DataType >::const_reference | GetValue (IndexType row, IndexType column) const |
| void | Multiply (const DataType *in, DataType *out) |
| void | Multiply (const DataVectorType &in, DataVectorType &out) |
| void | MultiplyLight (const DataVectorType &in, DataVectorType &out) |
Protected Member Functions | |
| void | processBcoInput (const IndexType blkRows, const IndexType blkColumns, const IndexType blkDim, const BCOMatType &bcoMat) |
| void | Multiply_1x1 (const int mb, const int kb, const double *val, const int *bindx, const int *bpntrb, const int *bpntre, const double *b, double *c) |
| Zero-based CSR multiply. Essentially this is slightly modified copy-paste from NIST Sparse Blas 0.9b routine CSR_VecMult_CAB_double() More... | |
| void | Multiply_2x2 (const int mb, const int kb, const double *val, const int *bindx, const int *bpntrb, const int *bpntre, const double *b, double *c) |
| Zero-based BSR multiply unrolled for 2x2 blocks. Essentially this is slightly optimised copy-paste from NIST Sparse Blas 0.9b routine BSR_VecMult_BAB_double() More... | |
| void | Multiply_3x3 (const int mb, const int kb, const double *val, const int *bindx, const int *bpntrb, const int *bpntre, const double *b, double *c) |
| Zero-based BSR multiply unrolled for 3x3 blocks. More... | |
| void | Multiply_4x4 (const int mb, const int kb, const double *val, const int *bindx, const int *bpntrb, const int *bpntre, const double *b, double *c) |
| Zero-based BSR multiply unrolled for 4x4 blocks. More... | |
| void | Multiply_generic (const int mb, const int kb, const double *val, const int *bindx, const int *bpntrb, const int *bpntre, const double *b, double *c) |
| Generic zero-based BSR multiply for higher matrix ranks. More... | |
Definition at line 71 of file SparseMatrixFwd.hpp.
| typedef Array<OneD, const DataType> Nektar::StorageSmvBsr< T >::ConstDataVectorType |
Definition at line 76 of file StorageSmvBsr.hpp.
| typedef T Nektar::StorageSmvBsr< T >::DataType |
Definition at line 74 of file StorageSmvBsr.hpp.
| typedef Array<OneD, DataType> Nektar::StorageSmvBsr< T >::DataVectorType |
Definition at line 75 of file StorageSmvBsr.hpp.
| typedef Array<OneD, IndexType> Nektar::StorageSmvBsr< T >::IndexVectorType |
Definition at line 77 of file StorageSmvBsr.hpp.
| typedef void(* Nektar::StorageSmvBsr< T >::MultiplyKernel)(const double *, const double *, double *) |
Definition at line 79 of file StorageSmvBsr.hpp.
| Nektar::StorageSmvBsr< DataType >::StorageSmvBsr | ( | const IndexType | blkRows, |
| const IndexType | blkCols, | ||
| const IndexType | blkDim, | ||
| const BCOMatType & | bcoMat, | ||
| const MatrixStorage | matType = eFULL |
||
| ) |
Definition at line 220 of file StorageSmvBsr.cpp.
References Nektar::eFULL, and Nektar::StorageSmvBsr< T >::processBcoInput().
| Nektar::StorageSmvBsr< DataType >::StorageSmvBsr | ( | const StorageSmvBsr< T > & | src | ) |
Definition at line 262 of file StorageSmvBsr.cpp.
| Nektar::StorageSmvBsr< DataType >::~StorageSmvBsr | ( | ) |
Definition at line 276 of file StorageSmvBsr.cpp.
| StorageSmvBsr< DataType >::const_iterator Nektar::StorageSmvBsr< DataType >::begin | ( | ) | const |
Definition at line 358 of file StorageSmvBsr.cpp.
Referenced by Nektar::StorageSmvBsr< T >::const_iterator::const_iterator().
| StorageSmvBsr< DataType >::const_iterator Nektar::StorageSmvBsr< DataType >::end | ( | ) | const |
Definition at line 364 of file StorageSmvBsr.cpp.
| const IndexType Nektar::StorageSmvBsr< DataType >::GetBlkSize | ( | ) | const |
Definition at line 300 of file StorageSmvBsr.cpp.
| const IndexType Nektar::StorageSmvBsr< DataType >::GetColumns | ( | ) | const |
Definition at line 288 of file StorageSmvBsr.cpp.
| const DataType Nektar::StorageSmvBsr< DataType >::GetFillInRatio | ( | ) | const |
Definition at line 313 of file StorageSmvBsr.cpp.
| const size_t Nektar::StorageSmvBsr< DataType >::GetMemoryUsage | ( | IndexType | nnz, |
| IndexType | nRows | ||
| ) | const |
Definition at line 320 of file StorageSmvBsr.cpp.
| const IndexType Nektar::StorageSmvBsr< DataType >::GetNumNonZeroEntries | ( | ) | const |
Definition at line 294 of file StorageSmvBsr.cpp.
| const IndexType Nektar::StorageSmvBsr< DataType >::GetNumStoredDoubles | ( | ) | const |
Definition at line 307 of file StorageSmvBsr.cpp.
| const IndexType Nektar::StorageSmvBsr< DataType >::GetRows | ( | ) | const |
Definition at line 282 of file StorageSmvBsr.cpp.
| const boost::call_traits< DataType >::const_reference Nektar::StorageSmvBsr< DataType >::GetValue | ( | IndexType | row, |
| IndexType | column | ||
| ) | const |
Definition at line 331 of file StorageSmvBsr.cpp.
| void Nektar::StorageSmvBsr< DataType >::Multiply | ( | const DataType * | in, |
| DataType * | out | ||
| ) |
Definition at line 412 of file StorageSmvBsr.cpp.
| void Nektar::StorageSmvBsr< DataType >::Multiply | ( | const DataVectorType & | in, |
| DataVectorType & | out | ||
| ) |
Definition at line 375 of file StorageSmvBsr.cpp.
|
protected |
Zero-based CSR multiply. Essentially this is slightly modified copy-paste from NIST Sparse Blas 0.9b routine CSR_VecMult_CAB_double()
Definition at line 490 of file StorageSmvBsr.cpp.
|
protected |
Zero-based BSR multiply unrolled for 2x2 blocks. Essentially this is slightly optimised copy-paste from NIST Sparse Blas 0.9b routine BSR_VecMult_BAB_double()
Definition at line 517 of file StorageSmvBsr.cpp.
|
protected |
|
protected |
|
protected |
Generic zero-based BSR multiply for higher matrix ranks.
Definition at line 667 of file StorageSmvBsr.cpp.
| void Nektar::StorageSmvBsr< DataType >::MultiplyLight | ( | const DataVectorType & | in, |
| DataVectorType & | out | ||
| ) |
Definition at line 451 of file StorageSmvBsr.cpp.
|
protected |
Definition at line 702 of file StorageSmvBsr.cpp.
References Nektar::NekConstants::kNekSparseNonZeroTol.
Referenced by Nektar::StorageSmvBsr< T >::StorageSmvBsr().
|
protected |
Definition at line 210 of file StorageSmvBsr.hpp.
|
protected |
Definition at line 211 of file StorageSmvBsr.hpp.
Referenced by Nektar::StorageSmvBsr< T >::const_iterator::storageIndexToFullCoord().
|
protected |
Definition at line 209 of file StorageSmvBsr.hpp.
|
protected |
Definition at line 213 of file StorageSmvBsr.hpp.
|
protected |
Definition at line 217 of file StorageSmvBsr.hpp.
Referenced by Nektar::StorageSmvBsr< T >::const_iterator::storageIndexToFullCoord().
|
protected |
Definition at line 207 of file StorageSmvBsr.hpp.
|
protected |
Definition at line 205 of file StorageSmvBsr.hpp.
|
protected |
Definition at line 214 of file StorageSmvBsr.hpp.
|
protected |
Definition at line 218 of file StorageSmvBsr.hpp.
Referenced by Nektar::StorageSmvBsr< T >::const_iterator::storageIndexToFullCoord().
|
protected |
Definition at line 216 of file StorageSmvBsr.hpp.
Referenced by Nektar::StorageSmvBsr< T >::const_iterator::forward().
1.8.8