![]() |
Ginkgo Generated from branch based on main. Ginkgo version 1.11.0
A numerical linear algebra library targeting many-core architectures
|
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>
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 > |
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.
| ValueType | Type of the values of all matrices used in this class |
| IndexType | Type of the indices of all matrices used in this class |
| using gko::experimental::reorder::ScaledReordered< ValueType, IndexType >::ReorderingBaseFactory |