matrix Namespace Reference

matrix Namespace Reference#

Reference API: gko::matrix Namespace Reference
Reference API
gko::matrix Namespace Reference

The matrix namespace. More...

Classes

class  Coo
 
class  CooBuilder
 
class  Csr
 
class  CsrBuilder
 
class  Dense
 
class  Diagonal
 
class  Ell
 
class  Fbcsr
 Fixed-block compressed sparse row storage matrix format. More...
 
class  FbcsrBuilder
 
class  Fft
 
class  Fft2
 
class  Fft3
 
class  Hybrid
 
class  Identity
 
class  IdentityFactory
 
class  Permutation
 
class  RowGatherer
 
class  ScaledPermutation
 
class  Sellp
 
class  SparsityCsr
 

Typedefs

using mask_type = gko::uint64
 

Enumerations

enum class  permute_mode : unsigned {
  none = 0b000u , rows = 0b001u , columns = 0b010u , symmetric = 0b011u ,
  inverse = 0b100u , inverse_rows = 0b101u , inverse_columns = 0b110u , inverse_symmetric = 0b111u
}
 

Functions

permute_mode operator| (permute_mode a, permute_mode b)
 
permute_mode operator& (permute_mode a, permute_mode b)
 
permute_mode operator^ (permute_mode a, permute_mode b)
 
std::ostream & operator<< (std::ostream &stream, permute_mode 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 class 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.

Function Documentation

◆ operator&()

permute_mode gko::matrix::operator& ( permute_mode  a,
permute_mode  b 
)

Computes the intersection of two permutation modes.

◆ operator<<()

std::ostream & gko::matrix::operator<< ( std::ostream &  stream,
permute_mode  mode 
)

Prints a permutation mode.

◆ operator^()

permute_mode gko::matrix::operator^ ( permute_mode  a,
permute_mode  b 
)

Computes the symmetric difference of two permutation modes.

◆ operator|()

permute_mode gko::matrix::operator| ( permute_mode  a,
permute_mode  b 
)

Combines two permutation modes.