ResidualNorm< ValueType > Class Template Reference

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

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

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

Inheritance diagram for gko::stop::ResidualNorm< 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

 ResidualNorm (std::shared_ptr< const gko::Executor > exec)
 
 ResidualNorm (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::ResidualNorm< ValueType >

The ResidualNorm class is a stopping criterion which stops the iteration process when the actual residual norm is below a certain threshold relative to

  1. the norm of the right-hand side, norm(residual) \(\leq\) < threshold * norm(right_hand_side).
  2. the initial residual, norm(residual) \(\leq\) threshold * norm(initial_residual).
  3. one, norm(residual) \(\leq\) threshold.

For better performance, the checks are run on the executor where the algorithm is executed.

Note
To use this stopping criterion there are some dependencies. The constructor depends on either b or the initial_residual in order to compute their norms. If this is not correctly provided, an exception ::gko::NotSupported() is thrown.

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