RelativeResidualNorm< ValueType > Class Template Reference

RelativeResidualNorm&lt; ValueType &gt; Class Template Reference#

Reference API: gko::stop::RelativeResidualNorm< ValueType > Class Template Reference
Reference API

#include <ginkgo/core/stop/residual_norm.hpp>

Inheritance diagram for gko::stop::RelativeResidualNorm< ValueType >:
[legend]

Classes

class  Factory
 
struct  parameters_type
 

Public Types

using ComplexVector = matrix::Dense< to_complex< ValueType > >
 
using NormVector = matrix::Dense< remove_complex< ValueType > >
 
using Vector = matrix::Dense< ValueType >
 

Public Member Functions

const parameters_typeget_parameters () const
 
- Public Member Functions inherited from gko::EnableAbstractPolymorphicObject< AbstractObject, PolymorphicBase >
std::unique_ptr< AbstractObject > create_default (std::shared_ptr< const Executor > exec) const
 
std::unique_ptr< AbstractObject > create_default () const
 
std::unique_ptr< AbstractObject > clone (std::shared_ptr< const Executor > exec) const
 
std::unique_ptr< AbstractObject > clone () const
 
AbstractObject * copy_from (const PolymorphicObject *other)
 
template<typename Derived >
std::enable_if_t< std::is_base_of< PolymorphicObject, std::decay_t< Derived > >::value, AbstractObject > * copy_from (std::unique_ptr< Derived > &&other)
 
template<typename Derived >
std::enable_if_t< std::is_base_of< PolymorphicObject, std::decay_t< Derived > >::value, AbstractObject > * copy_from (const std::unique_ptr< Derived > &other)
 
AbstractObject * copy_from (const std::shared_ptr< const PolymorphicObject > &other)
 
AbstractObject * move_from (ptr_param< PolymorphicObject > other)
 
AbstractObject * clear ()
 
- Public Member Functions inherited from gko::PolymorphicObject
PolymorphicObjectoperator= (const PolymorphicObject &)
 
std::unique_ptr< PolymorphicObjectcreate_default (std::shared_ptr< const Executor > exec) const
 
std::unique_ptr< PolymorphicObjectcreate_default () const
 
std::unique_ptr< PolymorphicObjectclone (std::shared_ptr< const Executor > exec) const
 
std::unique_ptr< PolymorphicObjectclone () const
 
PolymorphicObjectcopy_from (const PolymorphicObject *other)
 
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)
 
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)
 
PolymorphicObjectcopy_from (const std::shared_ptr< const PolymorphicObject > &other)
 
PolymorphicObjectmove_from (ptr_param< PolymorphicObject > other)
 
PolymorphicObjectclear ()
 
std::shared_ptr< const Executorget_executor () const noexcept
 
- 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)
 

Static Public Member Functions

static auto build () -> decltype(Factory ::create())
 

Protected Member Functions

 RelativeResidualNorm (std::shared_ptr< const gko::Executor > exec)
 
 RelativeResidualNorm (const Factory *factory, const CriterionArgs &args)
 
- Protected Member Functions inherited from gko::stop::ResidualNormBase< ValueType >
bool check_impl (uint8 stoppingId, bool setFinalized, array< stopping_status > *stop_status, bool *one_changed, const Criterion::Updater &updater) override
 
 ResidualNormBase (std::shared_ptr< const gko::Executor > exec)
 
 ResidualNormBase (std::shared_ptr< const gko::Executor > exec, const CriterionArgs &args, absolute_type reduction_factor, mode baseline)
 
- Protected Member Functions inherited from gko::EnablePolymorphicObject< ResidualNormBase< ValueType >, Criterion >
std::unique_ptr< PolymorphicObjectcreate_default_impl (std::shared_ptr< const Executor > exec) const override
 
PolymorphicObjectcopy_from_impl (const PolymorphicObject *other) override
 
PolymorphicObjectcopy_from_impl (std::unique_ptr< PolymorphicObject > other) override
 
PolymorphicObjectmove_from_impl (PolymorphicObject *other) override
 
PolymorphicObjectmove_from_impl (std::unique_ptr< PolymorphicObject > other) override
 
PolymorphicObjectclear_impl () override
 
- Protected Member Functions inherited from gko::PolymorphicObject
 PolymorphicObject (std::shared_ptr< const Executor > exec)
 
 PolymorphicObject (const PolymorphicObject &other)
 
- Protected Member Functions inherited from gko::log::EnableLogging< PolymorphicObject >
void log (Params &&... params) const
 

Additional Inherited Members

- Protected Types inherited from gko::stop::ResidualNormBase< ValueType >
using absolute_type = remove_complex< ValueType >
 
using ComplexVector = matrix::Dense< to_complex< ValueType > >
 
using NormVector = matrix::Dense< absolute_type >
 
using Vector = matrix::Dense< ValueType >
 
- Protected Attributes inherited from gko::stop::ResidualNormBase< ValueType >
remove_complex< ValueType > reduction_factor_ {}
 
std::unique_ptr< NormVectorstarting_tau_ {}
 
std::unique_ptr< NormVectoru_dense_tau_ {}
 
array< bool > device_storage_
 
- Protected Attributes inherited from gko::log::EnableLogging< PolymorphicObject >
std::vector< std::shared_ptr< const Logger > > loggers_
 

Detailed Description

template<typename ValueType = default_precision>
class gko::stop::RelativeResidualNorm< ValueType >

The RelativeResidualNorm class is a stopping criterion which stops the iteration process when the residual norm is below a certain threshold relative to the norm of the right-hand side, i.e. when norm(residual) / norm(right_hand_side) < threshold. For better performance, the checks are run thanks to kernels on the executor where the algorithm is executed.

Note
To use this stopping criterion there are some dependencies. The constructor depends on b in order to compute the norm of the right-hand side. If this is not correctly provided, an exception ::gko::NotSupported() is thrown.

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