Ginkgo: gko::experimental::reorder::ScaledReordered< 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::experimental::reorder::ScaledReordered< ValueType, IndexType > Class Template Reference

Provides an interface to wrap reorderings like Rcm and diagonal scaling like equilibration around a LinOp like e.g. More...

`#include <ginkgo/core/reorder/scaled_reordered.hpp>`

Inheritance diagram for gko::experimental::reorder::ScaledReordered< ValueType, IndexType >:
[legend]
Collaboration diagram for gko::experimental::reorder::ScaledReordered< ValueType, IndexType >:
[legend]

## Classes
struct | parameters_type
class | Factory

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

## Public Member Functions
std::shared_ptr< const LinOp > | get_system_matrix () const
std::shared_ptr< const LinOp > | get_inner_operator () const
const parameters_type & | get_parameters () const
Public Member Functions inherited from gko::EnableLinOp< ScaledReordered< default_precision, int32 > >
const ScaledReordered< default_precision, int32 > * | apply (ptr_param< const LinOp > b, ptr_param< LinOp > x) const
Public Member Functions inherited from gko::EnablePolymorphicAssignment< ScaledReordered< default_precision, int32 > >
void | convert_to (result_type *result) const override
void | move_to (result_type *result) override

## Static Public Member Functions
static auto | build () -> decltype(Factory::create())

## Friends
class | EnableLinOp< ScaledReordered, LinOp >
class | EnablePolymorphicObject< ScaledReordered, LinOp >

## Detailed Description

template<typename ValueType = default_precision, typename IndexType = int32>
class gko::experimental::reorder::ScaledReordered< ValueType, IndexType >

Provides an interface to wrap reorderings like Rcm and diagonal scaling like equilibration around a LinOp like e.g.

a sparse direct solver.

Reorderings can be useful for reducing fill-in in the numerical factorization phase of direct solvers, diagonal scaling can help improve the numerical stability by reducing the condition number of the system matrix.

With a permutation matrix P, a row scaling R and a column scaling C, the inner operator is applied to the system matrix P*R*A*C*P^T instead of A. Instead of A*x = b, the inner operator attempts to solve the equivalent linear system P*R*A*C*P^T*y = P*R*b and retrieves the solution x = C*P^T*y. Note: The inner system matrix is computed from a clone of A, so the original system matrix is not changed.

Template Parameters

  ValueType | Type of the values of all matrices used in this class
  IndexType | Type of the indices of all matrices used in this class

## Member Typedef Documentation

## ◆ ReorderingBaseFactory

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

using gko::experimental::reorder::ScaledReordered< ValueType, IndexType >::ReorderingBaseFactory

Initial value:
AbstractFactory<gko::reorder::ReorderingBase<IndexType>,
gko::reorder::ReorderingBaseArgs>
gko::AbstractFactory
The AbstractFactory is a generic interface template that enables easy implementation of the abstract ...
Definition abstract_factory.hpp:47
gko::reorder::ReorderingBaseArgs
This struct is used to pass parameters to the EnableDefaultReorderingBaseFactory::generate() method.
Definition reordering_base.hpp:65

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

- ginkgo/core/reorder/scaled_reordered.hpp