Template Numerical Library  version develop:3271efbb
Classes | Functions
TNL::Matrices Namespace Reference

Namespace for matrix formats. More...

Classes

class  AdEllpack
 
class  AdEllpackDeviceDependentCode
 
class  AdEllpackDeviceDependentCode< Devices::Cuda >
 
class  AdEllpackDeviceDependentCode< Devices::Host >
 
class  BiEllpack
 
class  BiEllpackDeviceDependentCode
 
class  BiEllpackDeviceDependentCode< Devices::Cuda >
 
class  BiEllpackDeviceDependentCode< Devices::Host >
 
class  BiEllpackSymmetric
 
class  BiEllpackSymmetricDeviceDependentCode
 
class  BiEllpackSymmetricDeviceDependentCode< Devices::Cuda >
 
class  BiEllpackSymmetricDeviceDependentCode< Devices::Host >
 
class  ChunkedEllpack
 
class  ChunkedEllpackDeviceDependentCode
 
class  ChunkedEllpackDeviceDependentCode< Devices::Cuda >
 
class  ChunkedEllpackDeviceDependentCode< Devices::Host >
 
class  COOMatrix
 
class  COOMatrixDeviceDependentCode
 
class  COOMatrixDeviceDependentCode< Devices::Host >
 
class  CSR
 
class  CSRDeviceDependentCode
 
class  CSRDeviceDependentCode< Devices::Cuda >
 
class  CSRDeviceDependentCode< Devices::Host >
 
class  CusparseCSR
 
class  Dense
 
class  DenseDeviceDependentCode
 
class  DenseDeviceDependentCode< Devices::Cuda >
 
class  DenseDeviceDependentCode< Devices::Host >
 
class  DenseRow
 
class  DistributedMatrix
 
class  DistributedSpMV
 
class  Ellpack
 
class  EllpackDeviceDependentCode
 
class  EllpackDeviceDependentCode< Devices::Cuda >
 
class  EllpackDeviceDependentCode< Devices::Host >
 
class  EllpackSymmetric
 
class  EllpackSymmetricDeviceDependentCode
 
class  EllpackSymmetricDeviceDependentCode< Devices::Cuda >
 
class  EllpackSymmetricDeviceDependentCode< Devices::Host >
 
class  EllpackSymmetricGraph
 
class  EllpackSymmetricGraphDeviceDependentCode
 
class  EllpackSymmetricGraphDeviceDependentCode< Devices::Cuda >
 
class  EllpackSymmetricGraphDeviceDependentCode< Devices::Host >
 
struct  enable_if_type
 
struct  has_communicator
 
struct  has_communicator< T, typename enable_if_type< typename T::CommunicatorType >::type >
 
class  Matrix
 
class  MatrixOperations
 
class  MatrixOperations< Devices::Cuda >
 
class  MatrixReader
 
class  MatrixReaderDeviceDependentCode
 
class  MatrixReaderDeviceDependentCode< Devices::Cuda >
 
class  MatrixReaderDeviceDependentCode< Devices::Host >
 
class  MatrixSetter
 
class  MatrixSetterTraverserUserData
 
class  MatrixWriter
 
class  Multidiagonal
 
class  MultidiagonalDeviceDependentCode
 
class  MultidiagonalDeviceDependentCode< Devices::Cuda >
 
class  MultidiagonalDeviceDependentCode< Devices::Host >
 
class  MultidiagonalMatrixSetter
 
class  MultidiagonalMatrixSetter< Meshes::Grid< 1, MeshReal, Device, MeshIndex > >
 
class  MultidiagonalMatrixSetter< Meshes::Grid< 2, MeshReal, Device, MeshIndex > >
 
class  MultidiagonalMatrixSetter< Meshes::Grid< 3, MeshReal, Device, MeshIndex > >
 
class  MultidiagonalRow
 
class  SlicedEllpack
 
class  SlicedEllpackDeviceDependentCode
 
class  SlicedEllpackDeviceDependentCode< Devices::Cuda >
 
class  SlicedEllpackSymmetric
 
class  SlicedEllpackSymmetricDeviceDependentCode
 
class  SlicedEllpackSymmetricDeviceDependentCode< Devices::Cuda >
 
class  SlicedEllpackSymmetricDeviceDependentCode< Devices::Host >
 
class  SlicedEllpackSymmetricGraph
 
class  SlicedEllpackSymmetricGraphDeviceDependentCode
 
class  SlicedEllpackSymmetricGraphDeviceDependentCode< Devices::Cuda >
 
class  SlicedEllpackSymmetricGraphDeviceDependentCode< Devices::Host >
 
class  Sparse
 
class  SparseRow
 
struct  tnlChunkedEllpackSliceInfo
 
class  Tridiagonal
 
class  TridiagonalDeviceDependentCode
 
class  TridiagonalDeviceDependentCode< Devices::Cuda >
 
class  TridiagonalDeviceDependentCode< Devices::Host >
 
class  TridiagonalRow
 
struct  warpInfo
 
class  warpList
 

Functions

template<typename Real , typename Index , typename InVector , typename OutVector >
__global__ void AdEllpackVectorProductCuda16 (const AdEllpack< Real, Devices::Cuda, Index > *matrix, const InVector *inVector, OutVector *outVector, const int gridIdx)
 
template<typename Real , typename Index , typename InVector , typename OutVector >
__global__ void AdEllpackVectorProductCuda2 (const AdEllpack< Real, Devices::Cuda, Index > *matrix, const InVector *inVector, OutVector *outVector, const int gridIdx)
 
template<typename Real , typename Index , typename InVector , typename OutVector >
__global__ void AdEllpackVectorProductCuda32 (const AdEllpack< Real, Devices::Cuda, Index > *matrix, const InVector *inVector, OutVector *outVector, const int gridIdx)
 
template<typename Real , typename Index , typename InVector , typename OutVector >
__global__ void AdEllpackVectorProductCuda4 (const AdEllpack< Real, Devices::Cuda, Index > *matrix, const InVector *inVector, OutVector *outVector, const int gridIdx)
 
template<typename Real , typename Index , typename InVector , typename OutVector >
__global__ void AdEllpackVectorProductCuda8 (const AdEllpack< Real, Devices::Cuda, Index > *matrix, const InVector *inVector, OutVector *outVector, const int gridIdx)
 
template<typename Real , typename Index , int StripSize, typename InVector , typename OutVector >
__global__ void BiEllpackSymmetricVectorProductCuda (const BiEllpackSymmetric< Real, Devices::Cuda, Index, StripSize > *matrix, const InVector *inVector, OutVector *outVector, int gridIdx, const int warpSize)
 
template<typename Real , typename Index , int StripSize, typename InVector , typename OutVector >
__global__ void BiEllpackVectorProductCuda (const BiEllpack< Real, Devices::Cuda, Index, StripSize > *matrix, const InVector *inVector, OutVector *outVector, int gridIdx, const int warpSize)
 
template<typename Real , typename Index , typename Vector >
void ChunkedEllpackVectorProductCuda (const ChunkedEllpack< Real, Devices::Cuda, Index > &matrix, const Vector &inVector, Vector &outVector)
 
template<typename Real , typename Index , typename InVector , typename OutVector >
__global__ void ChunkedEllpackVectorProductCudaKernel (const ChunkedEllpack< Real, Devices::Cuda, Index > *matrix, const InVector *inVector, OutVector *outVector, int gridIdx)
 
template<typename Real , typename Index , typename Vector >
__global__ void ChunkedEllpackVectorProductCudaKernel (const ChunkedEllpack< Real, Devices::Cuda, Index > *matrix, const Vector *inVector, Vector *outVector, int gridIdx)
 
template<typename Real , typename Index , int StripSize>
__global__ void computeColumnSizesCuda (BiEllpack< Real, Devices::Cuda, Index, StripSize > *matrix, const typename BiEllpack< Real, Devices::Cuda, Index, StripSize >::CompressedRowLengthsVector *rowLengths, const Index numberOfStrips, int gridIdx)
 
template<typename Real , typename Index , int StripSize>
__global__ void computeColumnSizesCuda (BiEllpackSymmetric< Real, Devices::Cuda, Index, StripSize > *matrix, const typename BiEllpackSymmetric< Real, Devices::Cuda, Index, StripSize >::RowLengthsVector *rowLengths, const Index numberOfStrips, int gridIdx)
 
template<typename Matrix , typename AdjacencyMatrix >
void copyAdjacencyStructure (const Matrix &A, AdjacencyMatrix &B, bool has_symmetric_pattern=false, bool ignore_diagonal=true)
 
template<typename Matrix1 , typename Matrix2 >
void copySparseMatrix (Matrix1 &A, const Matrix2 &B)
 
template<typename Matrix1 , typename Matrix2 >
std::enable_if< std::is_same< typename Matrix1::DeviceType, typename Matrix2::DeviceType >::value >::type copySparseMatrix_impl (Matrix1 &A, const Matrix2 &B)
 
template<typename Matrix1 , typename Matrix2 >
std::enable_if< ! std::is_same< typename Matrix1::DeviceType, typename Matrix2::DeviceType >::value &&std::is_same< typename Matrix2::DeviceType, Devices::Host >::value >::type copySparseMatrix_impl (Matrix1 &A, const Matrix2 &B)
 
template<typename Matrix1 , typename Matrix2 >
std::enable_if< ! std::is_same< typename Matrix1::DeviceType, typename Matrix2::DeviceType >::value &&std::is_same< typename Matrix2::DeviceType, Devices::Cuda >::value >::type copySparseMatrix_impl (Matrix1 &A, const Matrix2 &B)
 
template<typename Real , typename Index , typename InVector , typename OutVector >
void CSRVectorProductCuda (const CSR< Real, Devices::Cuda, Index > &matrix, const InVector &inVector, OutVector &outVector)
 
template<typename Real , typename Index , typename InVector , typename OutVector , int warpSize>
__global__ void CSRVectorProductCudaKernel (const CSR< Real, Devices::Cuda, Index > *matrix, const InVector *inVector, OutVector *outVector, int gridIdx)
 
template<typename Real , typename Index , typename Matrix1 , typename Matrix2 , int tileDim, int tileRowBlockSize>
__global__ void DenseMatrixProductKernel (Dense< Real, Devices::Cuda, Index > *resultMatrix, const Matrix1 *matrixA, const Matrix2 *matrixB, const Real matrixAMultiplicator, const Real matrixBMultiplicator, const Index gridIdx_x, const Index gridIdx_y)
 
template<typename Real , typename Index , typename Matrix , int tileDim, int tileRowBlockSize>
__global__ void DenseTranspositionAlignedKernel (Dense< Real, Devices::Cuda, Index > *resultMatrix, const Matrix *inputMatrix, const Real matrixMultiplicator, const Index gridIdx_x, const Index gridIdx_y)
 
template<typename Real , typename Index , typename Matrix , int tileDim, int tileRowBlockSize>
__global__ void DenseTranspositionNonAlignedKernel (Dense< Real, Devices::Cuda, Index > *resultMatrix, const Matrix *inputMatrix, const Real matrixMultiplicator, const Index gridIdx_x, const Index gridIdx_y)
 
template<typename Real , typename Index , typename InVector , typename OutVector >
__global__ void EllpackSymmetricGraphVectorProductCuda (const EllpackSymmetricGraph< Real, Devices::Cuda, Index > *matrix, const InVector *inVector, OutVector *outVector, const int gridIdx, const int color)
 
template<typename Real , typename Index , typename InVector , typename OutVector >
__global__ void EllpackSymmetricVectorProductCuda (const EllpackSymmetric< Real, Devices::Cuda, Index > *matrix, const InVector *inVector, OutVector *outVector, const int gridIdx)
 
template<typename Real , typename Index >
__global__ void EllpackVectorProductCudaKernel (const Index rows, const Index columns, const Index compressedRowLengths, const Index alignedRows, const Index paddingIndex, const Index *columnIndexes, const Real *values, const Real *inVector, Real *outVector, Real multiplicator, const Index gridIdx)
 
template<typename RealType , typename IndexType >
__global__ void GeamCudaKernel (const IndexType m, const IndexType n, const RealType alpha, const RealType *A, const IndexType lda, const RealType beta, const RealType *B, const IndexType ldb, RealType *C, const IndexType ldc)
 
template<typename RealType , typename IndexType >
__global__ void GemvCudaKernel (const IndexType m, const IndexType n, const RealType alpha, const RealType *A, const IndexType lda, const RealType *x, const RealType beta, RealType *y)
 
template<typename MatrixRow , typename Index >
__global__ void getNonZeroRowLengthCudaKernel (const MatrixRow row, Index *result)
 
template<typename Matrix , typename InVector , typename OutVector >
void MatrixVectorProductCuda (const Matrix &matrix, const InVector &inVector, OutVector &outVector)
 
template<typename Matrix , typename InVector , typename OutVector >
__global__ void MatrixVectorProductCudaKernel (const Matrix *matrix, const InVector *inVector, OutVector *outVector, int gridIdx)
 
template<typename Real , typename Device , typename Index >
std::ostreamoperator<< (std::ostream &str, const Matrix< Real, Device, Index > &m)
 
template<typename Real , typename Index >
std::ostreamoperator<< (std::ostream &str, const SparseRow< Real, Index > &row)
 
template<typename Real , typename Index , int StripSize>
__global__ void performRowBubbleSortCuda (BiEllpack< Real, Devices::Cuda, Index, StripSize > *matrix, const typename BiEllpack< Real, Devices::Cuda, Index, StripSize >::CompressedRowLengthsVector *rowLengths, int gridIdx)
 
template<typename Real , typename Index , int StripSize>
__global__ void performRowBubbleSortCuda (BiEllpackSymmetric< Real, Devices::Cuda, Index, StripSize > *matrix, const typename BiEllpackSymmetric< Real, Devices::Cuda, Index, StripSize >::RowLengthsVector *rowLengths, int gridIdx)
 
template<typename Array1 , typename Array2 , typename PermutationArray >
void reorderArray (const Array1 &src, Array2 &dest, const PermutationArray &perm)
 
template<typename Matrix1 , typename Matrix2 , typename PermutationArray >
void reorderSparseMatrix (const Matrix1 &A, Matrix2 &A_perm, const PermutationArray &perm, const PermutationArray &iperm)
 
template<typename Real , typename Index , int SliceSize>
__global__ void SlicedEllpack_computeMaximalRowLengthInSlices_CudaKernel (SlicedEllpack< Real, Devices::Cuda, Index, SliceSize > *matrix, typename SlicedEllpack< Real, Devices::Cuda, Index, SliceSize >::ConstCompressedRowLengthsVectorView rowLengths, int gridIdx)
 
template<typename Real , typename Index , int SliceSize>
__global__ void SlicedEllpackSymmetric_computeMaximalRowLengthInSlices_CudaKernel (SlicedEllpack< Real, Devices::Cuda, Index, SliceSize > *matrix, typename SlicedEllpackSymmetric< Real, Devices::Cuda, Index, SliceSize >::ConstCompressedRowLengthsVectorView rowLengths, int gridIdx)
 
template<typename Real , typename Index , int SliceSize>
__global__ void SlicedEllpackSymmetric_computeMaximalRowLengthInSlices_CudaKernel (SlicedEllpackSymmetric< Real, Devices::Cuda, Index, SliceSize > *matrix, typename SlicedEllpackSymmetric< Real, Devices::Cuda, Index, SliceSize >::ConstCompressedRowLengthsVectorView rowLengths, int gridIdx)
 
template<typename Real , typename Index , int SliceSize>
__global__ void SlicedEllpackSymmetricGraph_computeMaximalRowLengthInSlices_CudaKernel (SlicedEllpack< Real, Devices::Cuda, Index, SliceSize > *matrix, typename SlicedEllpackSymmetricGraph< Real, Devices::Cuda, Index, SliceSize >::ConstCompressedRowLengthsVector rowLengths, int gridIdx)
 
template<typename Real , typename Index , int SliceSize>
__global__ void SlicedEllpackSymmetricGraph_computeMaximalRowLengthInSlices_CudaKernel (SlicedEllpackSymmetricGraph< Real, Devices::Cuda, Index, SliceSize > *matrix, typename SlicedEllpackSymmetricGraph< Real, Devices::Cuda, Index, SliceSize >::ConstCompressedRowLengthsVectorView rowLengths, int gridIdx)
 
template<typename Real , typename Index , int SliceSize, typename InVector , typename OutVector >
__global__ void SlicedEllpackSymmetricGraphVectorProductCuda (const SlicedEllpackSymmetricGraph< Real, Devices::Cuda, Index, SliceSize > &matrix, const InVector *inVector, OutVector *outVector, const int gridIdx, const int color, const int sliceOffset)
 
template<typename Real , typename Index , int SliceSize, typename InVector , typename OutVector >
__global__ void SlicedEllpackSymmetricVectorProductCudaKernel (const SlicedEllpackSymmetric< Real, Devices::Cuda, Index, SliceSize > *matrix, const InVector *inVector, OutVector *outVector, int gridIdx)
 
template<typename Real , typename Index , int SliceSize>
__global__ void SlicedEllpackVectorProductCudaKernel (const Index rows, const Index columns, const Index *slicePointers, const Index *sliceCompressedRowLengths, const Index paddingIndex, const Index *columnIndexes, const Real *values, const Real *inVector, Real *outVector, Real multiplicator, const Index gridIdx)
 
template<typename Matrix1 , typename Matrix2 >
__global__ void SparseMatrixCopyKernel (Matrix1 *A, const Matrix2 *B, const typename Matrix2::IndexType *rowLengths, typename Matrix2::IndexType rows)
 
template<typename Vector , typename Matrix >
__global__ void SparseMatrixSetRowLengthsVectorKernel (Vector *rowLengths, const Matrix *matrix, typename Matrix::IndexType rows, typename Matrix::IndexType cols)
 
template<typename Real , typename Real2 , typename Index , typename Index2 >
__global__ void TridiagonalTranspositionCudaKernel (const Tridiagonal< Real2, Devices::Cuda, Index2 > *inMatrix, Tridiagonal< Real, Devices::Cuda, Index > *outMatrix, const Real matrixMultiplicator, const Index gridIdx)
 

Detailed Description

Namespace for matrix formats.