5#ifndef GKO_PUBLIC_CORE_STOP_RESIDUAL_NORM_HPP_
6#define GKO_PUBLIC_CORE_STOP_RESIDUAL_NORM_HPP_
12#include <ginkgo/core/base/array.hpp>
13#include <ginkgo/core/base/math.hpp>
14#include <ginkgo/core/base/types.hpp>
15#include <ginkgo/core/base/utils.hpp>
16#include <ginkgo/core/matrix/dense.hpp>
17#include <ginkgo/core/stop/criterion.hpp>
38enum class mode { absolute, initial_resnorm, rhs_norm };
50template <
typename ValueType>
61 bool check_impl(
uint8 stoppingId,
bool setFinalized,
67 device_storage_{exec, 2}
72 absolute_type reduction_factor,
mode baseline);
75 std::unique_ptr<NormVector> starting_tau_{};
76 std::unique_ptr<NormVector> u_dense_tau_{};
81 mode baseline_{mode::rhs_norm};
82 std::shared_ptr<const LinOp> system_matrix_{};
83 std::shared_ptr<const LinOp> b_{};
85 std::shared_ptr<const Vector> one_{};
86 std::shared_ptr<const Vector> neg_one_{};
112template <
typename ValueType = default_precision>
138 explicit ResidualNorm(std::shared_ptr<const gko::Executor> exec)
145 factory->get_parameters().reduction_factor,
146 factory->get_parameters().baseline),
147 parameters_{factory->get_parameters()}
169template <
typename ValueType = default_precision>
198 bool check_impl(
uint8 stoppingId,
bool setFinalized,
210 factory->get_parameters().reduction_factor,
211 factory->get_parameters().baseline),
212 parameters_{factory->get_parameters()}
220GKO_BEGIN_DISABLE_DEPRECATION_WARNINGS
242template <
typename ValueType = default_precision>
244 "Please use the class ResidualNorm with the factory parameter baseline = "
273 factory->get_executor(), args,
274 factory->get_parameters().reduction_factor,
275 mode::initial_resnorm),
276 parameters_{factory->get_parameters()}
299template <
typename ValueType = default_precision>
301 "Please use the class ResidualNorm with the factory parameter baseline = "
330 factory->get_parameters().tolerance,
332 parameters_{factory->get_parameters()}
354template <
typename ValueType = default_precision>
356 "Please use the class ResidualNorm with the factory parameter baseline = "
384 factory->get_parameters().tolerance,
386 parameters_{factory->get_parameters()}
391GKO_END_DISABLE_DEPRECATION_WARNINGS
Definition polymorphic_object.hpp:668
std::shared_ptr< const Executor > get_executor() const noexcept
Definition polymorphic_object.hpp:243
Definition residual_norm.hpp:373
Definition residual_norm.hpp:358
Definition criterion.hpp:55
Definition criterion.hpp:36
Definition residual_norm.hpp:192
Definition residual_norm.hpp:170
Definition residual_norm.hpp:319
Definition residual_norm.hpp:303
Definition residual_norm.hpp:52
Definition residual_norm.hpp:262
Definition residual_norm.hpp:246
Definition residual_norm.hpp:134
Definition residual_norm.hpp:113
#define GKO_CREATE_FACTORY_PARAMETERS(_parameters_name, _factory_name)
Definition abstract_factory.hpp:280
#define GKO_FACTORY_PARAMETER_SCALAR(_name, _default)
Definition abstract_factory.hpp:445
#define GKO_ENABLE_BUILD_METHOD(_factory_name)
Definition abstract_factory.hpp:394
mode
Definition residual_norm.hpp:38
The Ginkgo namespace.
Definition abstract_factory.hpp:20
std::uint8_t uint8
Definition types.hpp:118
typename detail::remove_complex_s< T >::type remove_complex
Definition math.hpp:260
Definition criterion.hpp:205