Ginkgo  Generated from pipelines/1556235455 branch based on develop. Ginkgo version 1.9.0
A numerical linear algebra library targeting many-core architectures
Classes | Typedefs | Enumerations | Functions | Variables
gko::matrix Namespace Reference

The matrix namespace. More...

Classes

class  Coo
 COO stores a matrix in the coordinate matrix format. More...
 
class  CooBuilder
 
class  Csr
 CSR is a matrix format which stores only the nonzero coefficients by compressing each row of the matrix (compressed sparse row format). More...
 
class  CsrBuilder
 
class  Dense
 Dense is a matrix format which explicitly stores all values of the matrix. More...
 
class  Diagonal
 This class is a utility which efficiently implements the diagonal matrix (a linear operator which scales a vector row wise). More...
 
class  Ell
 ELL is a matrix format where stride with explicit zeros is used such that all rows have the same number of stored elements. More...
 
class  Fbcsr
 Fixed-block compressed sparse row storage matrix format. More...
 
class  FbcsrBuilder
 
class  Fft
 This LinOp implements a 1D Fourier matrix using the FFT algorithm. More...
 
class  Fft2
 This LinOp implements a 2D Fourier matrix using the FFT algorithm. More...
 
class  Fft3
 This LinOp implements a 3D Fourier matrix using the FFT algorithm. More...
 
class  Hybrid
 HYBRID is a matrix format which splits the matrix into ELLPACK and COO format. More...
 
class  Identity
 This class is a utility which efficiently implements the identity matrix (a linear operator which maps each vector to itself). More...
 
class  IdentityFactory
 This factory is a utility which can be used to generate Identity operators. More...
 
class  Permutation
 Permutation is a matrix format that represents a permutation matrix, i.e. More...
 
class  RowGatherer
 RowGatherer is a matrix "format" which stores the gather indices arrays which can be used to gather rows to another matrix. More...
 
class  ScaledPermutation
 ScaledPermutation is a matrix combining a permutation with scaling factors. More...
 
class  Sellp
 SELL-P is a matrix format similar to ELL format. More...
 
class  SparsityCsr
 SparsityCsr is a matrix format which stores only the sparsity pattern of a sparse matrix by compressing each row of the matrix (compressed sparse row format). More...
 

Typedefs

using mask_type = gko::uint64
 

Enumerations

enum  permute_mode : unsigned {
  permute_mode::none = 0b000u, permute_mode::rows = 0b001u, permute_mode::columns = 0b010u, permute_mode::symmetric = 0b011u,
  permute_mode::inverse = 0b100u, permute_mode::inverse_rows = 0b101u, permute_mode::inverse_columns = 0b110u, permute_mode::inverse_symmetric = 0b111u
}
 Specifies how a permutation will be applied to a matrix. More...
 

Functions

permute_mode operator| (permute_mode a, permute_mode b)
 Combines two permutation modes.
 
permute_mode operator& (permute_mode a, permute_mode b)
 Computes the intersection of two permutation modes.
 
permute_mode operator^ (permute_mode a, permute_mode b)
 Computes the symmetric difference of two permutation modes.
 
std::ostream & operator<< (std::ostream &stream, permute_mode mode)
 Prints a permutation mode.
 

Variables

constexpr int default_slice_size = 64
 
constexpr int default_stride_factor = 1
 

Detailed Description

The matrix namespace.

Enumeration Type Documentation

◆ permute_mode

enum gko::matrix::permute_mode : unsigned
strong

Specifies how a permutation will be applied to a matrix.

For the effect of the different permutation modes, see the following table.

mode entry mapping matrix representation
none $A'(i, j) = A(i, j)$ $A' = A$
rows $A'(i, j) = A(p[i], j)$ $A' = P A$
columns $A'(i, j) = A(i, p[j])$ $A' = A P^T$
inverse_rows $A'(p[i], j) = A(i, j)$ $A' = P^{-1} A$
inverse_columns $A'(i, p[j]) = A(i, j)$ $A' = A P^{-T}$
symmetric $A'(i, j) = A(p[i], p[j])$ $A' = P A P^T$
inverse_symmetric $A'(p[i], p[j]) = A(i, j)$ $A' = P^{-1} A P^{-T}$
Enumerator
none 

Neither rows nor columns will be permuted.

rows 

The rows will be permuted.

columns 

The columns will be permuted.

symmetric 

The rows and columns will be permuted.

This is equivalent to permute_mode::rows | permute_mode::columns.

inverse 

The permutation will be inverted before being applied.

inverse_rows 

The rows will be permuted using the inverse permutation.

This is equivalent to permute_mode::rows | permute_mode::inverse.

inverse_columns 

The columns will be permuted using the inverse permutation.

This is equivalent to permute_mode::columns | permute_mode::inverse.

inverse_symmetric 

The rows and columns will be permuted using the inverse permutation.

This is equivalent to permute_mode::symmetric | permute_mode::inverse.