33 #ifndef GKO_CORE_STOP_RESIDUAL_NORM_REDUCTION_HPP_ 34 #define GKO_CORE_STOP_RESIDUAL_NORM_REDUCTION_HPP_ 37 #include <ginkgo/core/base/array.hpp> 38 #include <ginkgo/core/base/utils.hpp> 39 #include <ginkgo/core/matrix/dense.hpp> 40 #include <ginkgo/core/stop/criterion.hpp> 43 #include <type_traits> 63 template <
typename ValueType = default_precision>
86 bool check_impl(
uint8 stoppingId,
bool setFinalized,
92 device_storage_{exec, 2}
98 factory->get_executor()),
100 device_storage_{factory->get_executor(), 2}
102 if (args.initial_residual ==
nullptr) {
103 GKO_NOT_SUPPORTED(
nullptr);
106 auto exec = factory->get_executor();
108 auto dense_r = as<Vector>(args.initial_residual);
109 starting_tau_ = Vector::create(
112 dense_r->compute_norm2(starting_tau_.get());
116 std::unique_ptr<Vector> starting_tau_{};
117 std::unique_ptr<Vector> u_dense_tau_{};
127 #endif // GKO_CORE_STOP_RESIDUAL_NORM_REDUCTION_HPP_
const parameters_type & get_parameters() const noexcept
Returns the parameters of the factory.
Definition: abstract_factory.hpp:175
This mixin inherits from (a subclass of) PolymorphicObject and provides a base implementation of a ne...
Definition: polymorphic_object.hpp:505
#define GKO_FACTORY_PARAMETER(_name,...)
Creates a factory parameter in the factory parameters structure.
Definition: lin_op.hpp:751
The Ginkgo namespace.
Definition: abstract_factory.hpp:45
The ResidualNormReduction class is a stopping criterion which stops the iteration process when the re...
Definition: residual_norm_reduction.hpp:64
#define GKO_ENABLE_CRITERION_FACTORY(_criterion, _parameters_name, _factory_name)
This macro will generate a default implementation of a CriterionFactory for the Criterion subclass it...
Definition: criterion.hpp:280
Dense is a matrix format which explicitly stores all values of the matrix.
Definition: coo.hpp:55
const dim< 2 > & get_size() const noexcept
Returns the size of the operator.
Definition: lin_op.hpp:221
std::uint8_t uint8
8-bit unsigned integral type.
Definition: types.hpp:123
The Updater class serves for convenient argument passing to the Criterion's check function...
Definition: criterion.hpp:79
An Array is a container which encapsulates fixed-sized arrays, stored on the Executor tied to the Arr...
Definition: array.hpp:63
static std::unique_ptr< Dense > create_with_config_of(const Dense *other)
Creates a Dense matrix with the configuration of another Dense matrix.
Definition: dense.hpp:131
Definition: residual_norm_reduction.hpp:82
The Criterion class is a base class for all stopping criteria.
Definition: criterion.hpp:63
#define GKO_CREATE_FACTORY_PARAMETERS(_parameters_name, _factory_name)
This Macro will generate a new type containing the parameters for the factory _factory_name.
Definition: lin_op.hpp:611
typename detail::remove_complex_impl< T >::type remove_complex
Obtains a real counterpart of a std::complex type, and leaves the type unchanged if it is not a compl...
Definition: math.hpp:93
#define GKO_ENABLE_BUILD_METHOD(_factory_name)
Defines a build method for the factory, simplifying its construction by removing the repetitive typin...
Definition: lin_op.hpp:730
This struct is used to pass parameters to the EnableDefaultCriterionFactoryCriterionFactory::generate...
Definition: criterion.hpp:216