Ginkgo: gko::matrix::ScaledPermutation< ValueType, IndexType > Class Template Reference

| Ginkgo Generated from branch based on main. Ginkgo version 1.11.0 A numerical linear algebra library targeting many-core architectures

Loading...
Searching...
No Matches
gko::matrix::ScaledPermutation< ValueType, IndexType > Class Template Referencefinal
Linear Operators » SpMV employing different Matrix formats | Linear Operators

ScaledPermutation is a matrix combining a permutation with scaling factors. More...

`#include <ginkgo/core/matrix/scaled_permutation.hpp>`

Inheritance diagram for gko::matrix::ScaledPermutation< ValueType, IndexType >:
[legend]
Collaboration diagram for gko::matrix::ScaledPermutation< ValueType, IndexType >:
[legend]

## Public Types
using | value_type = ValueType
using | index_type = IndexType
Public Types inherited from gko::EnablePolymorphicAssignment< ScaledPermutation< default_precision, int32 > >
using | result_type
Public Types inherited from gko::WritableToMatrixData< default_precision, int32 >
using | value_type
using | index_type

## Public Member Functions
value_type * | get_scaling_factors () noexcept
| Returns a pointer to the scaling factors.
const value_type * | get_const_scaling_factors () const noexcept
| Returns a pointer to the scaling factors.
index_type * | get_permutation () noexcept
| Returns a pointer to the permutation indices.
const index_type * | get_const_permutation () const noexcept
| Returns a pointer to the permutation indices.
std::unique_ptr< ScaledPermutation > | compute_inverse () const
| Returns the inverse of this operator as a scaled permutation.
std::unique_ptr< ScaledPermutation > | compose (ptr_param< const ScaledPermutation > other) const
| Composes this scaled permutation with another scaled permutation.
void | write (gko::matrix_data< value_type, index_type > &data) const override
Public Member Functions inherited from gko::EnableLinOp< ScaledPermutation< default_precision, int32 > >
const ScaledPermutation< default_precision, int32 > * | apply (ptr_param< const LinOp > b, ptr_param< LinOp > x) const
Public Member Functions inherited from gko::EnablePolymorphicAssignment< ScaledPermutation< default_precision, int32 > >
void | convert_to (result_type *result) const override
void | move_to (result_type *result) override
Public Member Functions inherited from gko::WritableToMatrixData< default_precision, int32 >
virtual void | write (matrix_data< default_precision, int32 > &data) const=0
| Writes a matrix to a matrix_data structure.

## Static Public Member Functions
static std::unique_ptr< ScaledPermutation > | create (std::shared_ptr< const Executor > exec, size_type size=0)
| Creates an uninitialized ScaledPermutation matrix.
static std::unique_ptr< ScaledPermutation > | create (ptr_param< const Permutation< IndexType > > permutation)
| Create a ScaledPermutation from a Permutation.
static std::unique_ptr< ScaledPermutation > | create (std::shared_ptr< const Executor > exec, array< value_type > scaling_factors, array< index_type > permutation_indices)
| Creates a ScaledPermutation matrix from already allocated arrays.
static std::unique_ptr< const ScaledPermutation > | create_const (std::shared_ptr< const Executor > exec, gko::detail::const_array_view< value_type > &&scale, gko::detail::const_array_view< index_type > &&perm_idxs)
| Creates a constant (immutable) ScaledPermutation matrix from constant arrays.

## Friends
class | EnablePolymorphicObject< ScaledPermutation, LinOp >

## Detailed Description

template<typename ValueType = default_precision, typename IndexType = int32>
class gko::matrix::ScaledPermutation< ValueType, IndexType >

ScaledPermutation is a matrix combining a permutation with scaling factors.

It is a combination of Diagonal and Permutation, and can be read as , i.e. the scaling gets applied before the permutation.

Template Parameters

  IndexType | index type of permutation indices
  ValueType | value type of the scaling factors

## Member Function Documentation

## ◆ compose()

template<typename ValueType = default_precision, typename IndexType = int32>

std::unique_ptr< ScaledPermutation > gko::matrix::ScaledPermutation< ValueType, IndexType >::compose | ( | ptr_param< const ScaledPermutation< ValueType, IndexType > > | other | ) | const

Composes this scaled permutation with another scaled permutation.

This means result = other * this from the matrix perspective, which is equivalent to first scaling and permuting by this and then by other.

Parameters

  other | the other permutation

Returns
  the combined permutation

## ◆ compute_inverse()

template<typename ValueType = default_precision, typename IndexType = int32>

std::unique_ptr< ScaledPermutation > gko::matrix::ScaledPermutation< ValueType, IndexType >::compute_inverse | ( |  | ) | const

Returns the inverse of this operator as a scaled permutation.

It is computed via .

Returns
  a newly created ScaledPermutation object storing the inverse of the permutation and scaling factors of this ScaledPermutation.

## ◆ create() [1/3]

template<typename ValueType = default_precision, typename IndexType = int32>

std::unique_ptr< ScaledPermutation > gko::matrix::ScaledPermutation< ValueType, IndexType >::create | ( | ptr_param< const Permutation< IndexType > > | permutation | ) |
| static

Create a ScaledPermutation from a Permutation.

The permutation will be copied, the scaling factors are all set to 1.0.

Parameters

  permutation | the permutation

Returns
  A smart pointer to the newly created matrix.

## ◆ create() [2/3]

template<typename ValueType = default_precision, typename IndexType = int32>

std::unique_ptr< ScaledPermutation > gko::matrix::ScaledPermutation< ValueType, IndexType >::create | ( | std::shared_ptr< const Executor > | exec,
|  | array< value_type > | scaling_factors,
|  | array< index_type > | permutation_indices )
| static

Creates a ScaledPermutation matrix from already allocated arrays.

Parameters

  exec | Executor associated to the matrix
  permutation_indices | array of permutation indices
  scaling_factors | array of scaling factors

Returns
  A smart pointer to the newly created matrix.

## ◆ create() [3/3]

template<typename ValueType = default_precision, typename IndexType = int32>

std::unique_ptr< ScaledPermutation > gko::matrix::ScaledPermutation< ValueType, IndexType >::create | ( | std::shared_ptr< const Executor > | exec,
|  | size_type | size = 0 )
| static

Creates an uninitialized ScaledPermutation matrix.

Parameters

  exec | Executor associated to the matrix
  size | dimensions of the (square) scaled permutation matrix

Returns
  A smart pointer to the newly created matrix.

## ◆ create_const()

template<typename ValueType = default_precision, typename IndexType = int32>

std::unique_ptr< const ScaledPermutation > gko::matrix::ScaledPermutation< ValueType, IndexType >::create_const | ( | std::shared_ptr< const Executor > | exec,
|  | gko::detail::const_array_view< value_type > && | scale,
|  | gko::detail::const_array_view< index_type > && | perm_idxs )
| static

Creates a constant (immutable) ScaledPermutation matrix from constant arrays.

Parameters

  exec | the executor to create the object on
  perm_idxs | the permutation index array of the matrix
  scale | the scaling factor array

Returns
  A smart pointer to the constant matrix wrapping the input arrays (if it resides on the same executor as the matrix) or a copy of the arrays on the correct executor.

## ◆ get_const_permutation()

template<typename ValueType = default_precision, typename IndexType = int32>

const index_type * gko::matrix::ScaledPermutation< ValueType, IndexType >::get_const_permutation | ( |  | ) | const
| inlinenoexcept

Returns a pointer to the permutation indices.

Returns
  the pointer to the permutation indices.

Note
  This is the constant version of the function, which can be significantly more memory efficient than the non-constant version, so always prefer this version.

## ◆ get_const_scaling_factors()

template<typename ValueType = default_precision, typename IndexType = int32>

const value_type * gko::matrix::ScaledPermutation< ValueType, IndexType >::get_const_scaling_factors | ( |  | ) | const
| inlinenoexcept

Returns a pointer to the scaling factors.

Returns
  the pointer to the scaling factors.

Note
  This is the constant version of the function, which can be significantly more memory efficient than the non-constant version, so always prefer this version.

## ◆ get_permutation()

template<typename ValueType = default_precision, typename IndexType = int32>

index_type * gko::matrix::ScaledPermutation< ValueType, IndexType >::get_permutation | ( |  | ) |
| inlinenoexcept

Returns a pointer to the permutation indices.

Returns
  the pointer to the permutation indices.

## ◆ get_scaling_factors()

template<typename ValueType = default_precision, typename IndexType = int32>

value_type * gko::matrix::ScaledPermutation< ValueType, IndexType >::get_scaling_factors | ( |  | ) |
| inlinenoexcept

Returns a pointer to the scaling factors.

Returns
  the pointer to the scaling factors.

The documentation for this class was generated from the following file:

- ginkgo/core/matrix/scaled_permutation.hpp