Ginkgo  Generated from pipelines/1330831941 branch based on master. Ginkgo version 1.8.0
A numerical linear algebra library targeting many-core architectures
Classes | Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
gko::experimental::reorder::Amd< IndexType > Class Template Reference

Computes a Approximate Minimum Degree (AMD) reordering of an input matrix. More...

#include <ginkgo/core/reorder/amd.hpp>

Inheritance diagram for gko::experimental::reorder::Amd< IndexType >:
[legend]
Collaboration diagram for gko::experimental::reorder::Amd< IndexType >:
[legend]

Classes

struct  parameters_type
 

Public Types

using index_type = IndexType
 
using permutation_type = matrix::Permutation< index_type >
 
- Public Types inherited from gko::EnablePolymorphicAssignment< Amd< IndexType > >
using result_type = Amd< IndexType >
 
- Public Types inherited from gko::ConvertibleTo< Amd< IndexType > >
using result_type = Amd< IndexType >
 

Public Member Functions

const parameters_typeget_parameters ()
 Returns the parameters used to construct the factory. More...
 
std::unique_ptr< permutation_typegenerate (std::shared_ptr< const LinOp > system_matrix) const
 
- Public Member Functions inherited from gko::EnableAbstractPolymorphicObject< Amd< IndexType >, LinOpFactory >
std::unique_ptr< Amd< IndexType > > create_default (std::shared_ptr< const Executor > exec) const
 
std::unique_ptr< Amd< IndexType > > create_default () const
 
std::unique_ptr< Amd< IndexType > > clone (std::shared_ptr< const Executor > exec) const
 
std::unique_ptr< Amd< IndexType > > clone () const
 
Amd< IndexType > * copy_from (const PolymorphicObject *other)
 
std::enable_if_t< std::is_base_of< PolymorphicObject, std::decay_t< Derived > >::value, Amd< IndexType > > * copy_from (std::unique_ptr< Derived > &&other)
 
std::enable_if_t< std::is_base_of< PolymorphicObject, std::decay_t< Derived > >::value, Amd< IndexType > > * copy_from (const std::unique_ptr< Derived > &other)
 
Amd< IndexType > * copy_from (const std::shared_ptr< const PolymorphicObject > &other)
 
Amd< IndexType > * move_from (ptr_param< PolymorphicObject > other)
 
Amd< IndexType > * clear ()
 
- Public Member Functions inherited from gko::LinOpFactory
std::unique_ptr< LinOpgenerate (std::shared_ptr< const LinOp > input) const
 
- Public Member Functions inherited from gko::PolymorphicObject
PolymorphicObjectoperator= (const PolymorphicObject &)
 
std::unique_ptr< PolymorphicObjectcreate_default (std::shared_ptr< const Executor > exec) const
 Creates a new "default" object of the same dynamic type as this object. More...
 
std::unique_ptr< PolymorphicObjectcreate_default () const
 Creates a new "default" object of the same dynamic type as this object. More...
 
std::unique_ptr< PolymorphicObjectclone (std::shared_ptr< const Executor > exec) const
 Creates a clone of the object. More...
 
std::unique_ptr< PolymorphicObjectclone () const
 Creates a clone of the object. More...
 
PolymorphicObjectcopy_from (const PolymorphicObject *other)
 Copies another object into this object. More...
 
template<typename Derived , typename Deleter >
std::enable_if_t< std::is_base_of< PolymorphicObject, std::decay_t< Derived > >::value, PolymorphicObject > * copy_from (std::unique_ptr< Derived, Deleter > &&other)
 Moves another object into this object. More...
 
template<typename Derived , typename Deleter >
std::enable_if_t< std::is_base_of< PolymorphicObject, std::decay_t< Derived > >::value, PolymorphicObject > * copy_from (const std::unique_ptr< Derived, Deleter > &other)
 Copies another object into this object. More...
 
PolymorphicObjectcopy_from (const std::shared_ptr< const PolymorphicObject > &other)
 Copies another object into this object. More...
 
PolymorphicObjectmove_from (ptr_param< PolymorphicObject > other)
 Moves another object into this object. More...
 
PolymorphicObjectclear ()
 Transforms the object into its default state. More...
 
std::shared_ptr< const Executorget_executor () const noexcept
 Returns the Executor of the object. More...
 
- Public Member Functions inherited from gko::log::EnableLogging< PolymorphicObject >
void add_logger (std::shared_ptr< const Logger > logger) override
 
void remove_logger (const Logger *logger) override
 
void remove_logger (ptr_param< const Logger > logger)
 
const std::vector< std::shared_ptr< const Logger > > & get_loggers () const override
 
void clear_loggers () override
 
- Public Member Functions inherited from gko::log::Loggable
void remove_logger (ptr_param< const Logger > logger)
 
- Public Member Functions inherited from gko::EnablePolymorphicAssignment< Amd< IndexType > >
void convert_to (result_type *result) const override
 Converts the implementer to an object of type result_type. More...
 
void move_to (result_type *result) override
 Converts the implementer to an object of type result_type by moving data from this object. More...
 
- Public Member Functions inherited from gko::ConvertibleTo< Amd< IndexType > >
void convert_to (ptr_param< result_type > result) const
 
void move_to (ptr_param< result_type > result)
 

Static Public Member Functions

static parameters_type build ()
 Creates a new parameter_type to set up the factory.
 

Friends

class EnablePolymorphicObject< Amd< IndexType >, LinOpFactory >
 
class enable_parameters_type< parameters_type, Amd< IndexType > >
 

Detailed Description

template<typename IndexType = int32>
class gko::experimental::reorder::Amd< IndexType >

Computes a Approximate Minimum Degree (AMD) reordering of an input matrix.

Template Parameters
IndexTypethe type used to store sparsity pattern indices of the system matrix

Member Function Documentation

◆ generate()

template<typename IndexType = int32>
std::unique_ptr<permutation_type> gko::experimental::reorder::Amd< IndexType >::generate ( std::shared_ptr< const LinOp system_matrix) const

Note
This function overrides the default LinOpFactory::generate to return a Permutation instead of a generic LinOp, which would need to be cast to Permutation again to access its indices. It is only necessary because smart pointers aren't covariant.

◆ get_parameters()

template<typename IndexType = int32>
const parameters_type& gko::experimental::reorder::Amd< IndexType >::get_parameters ( )
inline

Returns the parameters used to construct the factory.

Returns
the parameters used to construct the factory.

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