|
void | on_criterion_check_completed (const stop::Criterion *criterion, const size_type &num_iterations, const LinOp *residual, const LinOp *residual_norm, const LinOp *solution, const uint8 &stopping_id, const bool &set_finalized, const Array< stopping_status > *status, const bool &one_changed, const bool &all_converged) const override |
| stop::Criterion's check completed event. More...
|
|
const size_type & | get_num_iterations () const noexcept |
| Returns the number of iterations. More...
|
|
const LinOp * | get_residual () const noexcept |
| Returns the residual. More...
|
|
const LinOp * | get_residual_norm () const noexcept |
| Returns the residual norm. More...
|
|
template<size_type Event, typename... Params> |
xstd::enable_if_t< Event==0 &&(0< event_count_max)> | on (Params &&... params) const |
|
template<size_type Event, typename... Params> |
xstd::enable_if_t< Event==1 &&(1< event_count_max)> | on (Params &&... params) const |
|
template<size_type Event, typename... Params> |
xstd::enable_if_t< Event==2 &&(2< event_count_max)> | on (Params &&... params) const |
|
template<size_type Event, typename... Params> |
xstd::enable_if_t< Event==3 &&(3< event_count_max)> | on (Params &&... params) const |
|
template<size_type Event, typename... Params> |
xstd::enable_if_t< Event==4 &&(4< event_count_max)> | on (Params &&... params) const |
|
template<size_type Event, typename... Params> |
xstd::enable_if_t< Event==5 &&(5< event_count_max)> | on (Params &&... params) const |
|
template<size_type Event, typename... Params> |
xstd::enable_if_t< Event==6 &&(6< event_count_max)> | on (Params &&... params) const |
|
template<size_type Event, typename... Params> |
xstd::enable_if_t< Event==7 &&(7< event_count_max)> | on (Params &&... params) const |
|
template<size_type Event, typename... Params> |
xstd::enable_if_t< Event==8 &&(8< event_count_max)> | on (Params &&... params) const |
|
template<size_type Event, typename... Params> |
xstd::enable_if_t< Event==9 &&(9< event_count_max)> | on (Params &&... params) const |
|
template<size_type Event, typename... Params> |
xstd::enable_if_t< Event==10 &&(10< event_count_max)> | on (Params &&... params) const |
|
template<size_type Event, typename... Params> |
xstd::enable_if_t< Event==11 &&(11< event_count_max)> | on (Params &&... params) const |
|
template<size_type Event, typename... Params> |
xstd::enable_if_t< Event==12 &&(12< event_count_max)> | on (Params &&... params) const |
|
template<size_type Event, typename... Params> |
xstd::enable_if_t< Event==13 &&(13< event_count_max)> | on (Params &&... params) const |
|
template<size_type Event, typename... Params> |
xstd::enable_if_t< Event==14 &&(14< event_count_max)> | on (Params &&... params) const |
|
template<size_type Event, typename... Params> |
xstd::enable_if_t< Event==15 &&(15< event_count_max)> | on (Params &&... params) const |
|
template<size_type Event, typename... Params> |
xstd::enable_if_t< Event==16 &&(16< event_count_max)> | on (Params &&... params) const |
|
template<size_type Event, typename... Params> |
xstd::enable_if_t< Event==17 &&(17< event_count_max)> | on (Params &&... params) const |
|
template<size_type Event, typename... Params> |
xstd::enable_if_t< Event==18 &&(18< event_count_max)> | on (Params &&... params) const |
|
template<size_type Event, typename... Params> |
xstd::enable_if_t< Event==19 &&(19< event_count_max)> | on (Params &&... params) const |
|
template<size_type Event, typename... Params> |
xstd::enable_if_t< Event==20 &&(20< event_count_max)> | on (Params &&... params) const |
|
template<size_type Event, typename... Params> |
xstd::enable_if_t< Event==21 &&(21< event_count_max)> | on (Params &&... params) const |
|
|
using | mask_type = gko::uint64 |
|
static constexpr size_type | event_count_max = sizeof(mask_type) * byte_size |
| Maximum amount of events (bits) with the current implementation.
|
|
static constexpr mask_type | all_events_mask = ~mask_type{0} |
| Bitset Mask which activates all events.
|
|
static constexpr size_type | allocation_started { 0 } |
|
static constexpr mask_type | allocation_started_mask {mask_type{1} << 0 } |
|
static constexpr size_type | allocation_completed { 1 } |
|
static constexpr mask_type | allocation_completed_mask {mask_type{1} << 1 } |
|
static constexpr size_type | free_started { 2 } |
|
static constexpr mask_type | free_started_mask {mask_type{1} << 2 } |
|
static constexpr size_type | free_completed { 3 } |
|
static constexpr mask_type | free_completed_mask {mask_type{1} << 3 } |
|
static constexpr size_type | copy_started { 4 } |
|
static constexpr mask_type | copy_started_mask {mask_type{1} << 4 } |
|
static constexpr size_type | copy_completed { 5 } |
|
static constexpr mask_type | copy_completed_mask {mask_type{1} << 5 } |
|
static constexpr size_type | operation_launched { 6 } |
|
static constexpr mask_type | operation_launched_mask {mask_type{1} << 6 } |
|
static constexpr size_type | operation_completed { 7 } |
|
static constexpr mask_type | operation_completed_mask {mask_type{1} << 7 } |
|
static constexpr size_type | polymorphic_object_create_started { 8 } |
|
static constexpr mask_type | polymorphic_object_create_started_mask {mask_type{1} << 8 } |
|
static constexpr size_type | polymorphic_object_create_completed { 9 } |
|
static constexpr mask_type | polymorphic_object_create_completed_mask {mask_type{1} << 9 } |
|
static constexpr size_type | polymorphic_object_copy_started { 10 } |
|
static constexpr mask_type | polymorphic_object_copy_started_mask {mask_type{1} << 10 } |
|
static constexpr size_type | polymorphic_object_copy_completed { 11 } |
|
static constexpr mask_type | polymorphic_object_copy_completed_mask {mask_type{1} << 11 } |
|
static constexpr size_type | polymorphic_object_deleted { 12 } |
|
static constexpr mask_type | polymorphic_object_deleted_mask {mask_type{1} << 12 } |
|
static constexpr size_type | linop_apply_started { 13 } |
|
static constexpr mask_type | linop_apply_started_mask {mask_type{1} << 13 } |
|
static constexpr size_type | linop_apply_completed { 14 } |
|
static constexpr mask_type | linop_apply_completed_mask {mask_type{1} << 14 } |
|
static constexpr size_type | linop_advanced_apply_started { 15 } |
|
static constexpr mask_type | linop_advanced_apply_started_mask {mask_type{1} << 15 } |
|
static constexpr size_type | linop_advanced_apply_completed { 16 } |
|
static constexpr mask_type | linop_advanced_apply_completed_mask {mask_type{1} << 16 } |
|
static constexpr size_type | linop_factory_generate_started { 17 } |
|
static constexpr mask_type | linop_factory_generate_started_mask {mask_type{1} << 17 } |
|
static constexpr size_type | linop_factory_generate_completed { 18 } |
|
static constexpr mask_type | linop_factory_generate_completed_mask {mask_type{1} << 18 } |
|
static constexpr size_type | criterion_check_started { 19 } |
|
static constexpr mask_type | criterion_check_started_mask {mask_type{1} << 19 } |
|
static constexpr size_type | criterion_check_completed { 20 } |
|
static constexpr mask_type | criterion_check_completed_mask {mask_type{1} << 20 } |
|
static constexpr size_type | iteration_complete { 21 } |
|
static constexpr mask_type | iteration_complete_mask {mask_type{1} << 21 } |
|
static constexpr mask_type | executor_events_mask |
| Bitset Mask which activates all executor events. More...
|
|
static constexpr mask_type | operation_events_mask |
| Bitset Mask which activates all operation events. More...
|
|
static constexpr mask_type | polymorphic_object_events_mask |
| Bitset Mask which activates all polymorphic object events. More...
|
|
static constexpr mask_type | linop_events_mask |
| Bitset Mask which activates all linop events. More...
|
|
static constexpr mask_type | linop_factory_events_mask |
| Bitset Mask which activates all linop factory events. More...
|
|
static constexpr mask_type | criterion_events_mask |
| Bitset Mask which activates all criterion events. More...
|
|
template<typename ValueType = default_precision>
class gko::log::Convergence< ValueType >
Convergence is a Logger which logs data strictly from the criterion_check_completed
event.
The purpose of this logger is to give a simple access to standard data generated by the solver once it has converged with minimal overhead.
This logger also computes the residual norm from the residual when the residual norm was not available. This can add some slight overhead.