|
Bertini 2 d882924 (2026-10-06 19:56 UTC)
Numerical algebraic geometry library (C++ core)
|
Counts endgame events and captures their payloads, for tests and diagnostics. More...
#include <observers.hpp>
Public Types | |
| using | EmitterT = EndgameT |
| The endgame type emitting the observed events. | |
| using | BCT = typename EndgameT::BaseComplexT |
| The boundary complex type of the observed endgame. | |
Public Member Functions | |
| virtual ObserveResult | Observe (AnyEvent const &e) override |
| Observe the observable object being observed. | |
| std::type_index | ObservedKind () const override |
| The type this observer expects to observe. | |
| virtual std::vector< std::type_index > | SubscribedEventTypes () const |
| Declares which event types this observer wants to receive. | |
Public Attributes | |
| unsigned | num_events = 0 |
| Total number of events observed. | |
| unsigned | num_time_advanced = 0 |
| Number of TimeAdvanced events observed. | |
| unsigned | num_sample_refined = 0 |
| Number of SampleRefined events observed. | |
| unsigned | num_circle_advanced = 0 |
| Number of circle-advanced events observed. | |
| unsigned | num_closed_loop = 0 |
| Number of closed-loop events observed. | |
| unsigned | num_approximated_root = 0 |
| Number of approximated-root events observed. | |
| unsigned | num_in_eg_zone = 0 |
| Number of in-endgame-zone events observed. | |
| unsigned | num_converged = 0 |
| Number of converged events observed. | |
| unsigned | num_precision_changed = 0 |
| Number of precision-changed events observed. | |
| Vec< BCT > | last_circle_point |
| The most-recent circle sample point captured from an event. | |
| BCT | last_circle_time |
| The most-recent circle sample time captured from an event. | |
| Vec< BCT > | converged_point |
| The converged root point captured from a converged event. | |
Counts endgame events and captures their payloads, for tests and diagnostics.
Records how many of each event type were delivered, and captures the most-recent CircleAdvanced point/time and the Converged approximation – reading each payload (and the state accessors LatestTime / FinalApproximation / ApproximateError) the way a real observer would. This deliberately exercises the full event-delivery path, including the numeric-type conversion the adaptive-numeric-type endgame performs when it emits from its hardware-complex_dbl fast lane, and the slot-aware state accessors.
| using bertini::endgame::EventRecorder< EndgameT >::BCT = typename EndgameT::BaseComplexT |
The boundary complex type of the observed endgame.
| using bertini::endgame::EventRecorder< EndgameT >::EmitterT = EndgameT |
The endgame type emitting the observed events.
|
inlineoverridevirtual |
Observe the observable object being observed.
This is probably in response to NotifyObservers.
This virtual function must be overridden by actual observers, defining how they observe the observable they are observing, probably filtering events and doing something specific for different ones.
| e | The event which was emitted by the observed object. |
Implements bertini::AnyObserver.
|
inlineoverridevirtualinherited |
The type this observer expects to observe.
Used by Observable::AddObserver to reject attaching an observer to an incompatible observable (which would otherwise silently never fire). The default is typeid(void), a wildcard meaning "attach me anywhere"; Observer<ObservedT> reports typeid(ObservedT).
Reimplemented from bertini::AnyObserver.
|
inlinevirtualinherited |
Declares which event types this observer wants to receive.
Return a non-empty vector to opt into type-indexed dispatch: the observable will only call Observe() for events whose dynamic type exactly matches one of the returned type_index values. Return an empty vector (the default) to receive every event — this is the correct choice for observers that handle many or all event types, and is the automatic behavior for Python-defined observers.
Reimplemented in bertini::TypedObserver< Derived, ObservedT, ConcreteEvents >, bertini::TypedObserver< AMPPathAccumulator< TrackerT, SuccessfulStep >, TrackerT, SuccessfulStep< TrackerTraits< TrackerT >::EventEmitterType > >, bertini::TypedObserver< FirstPrecisionRecorder< TrackerT >, TrackerT, Initializing< TrackerTraits< TrackerT >::EventEmitterType, TrackerTraits< TrackerT >::BaseComplexT >, TrackingStarted< TrackerTraits< TrackerT >::EventEmitterType >, PrecisionChanged< TrackerTraits< TrackerT >::EventEmitterType > >, bertini::TypedObserver< MinMaxPrecisionRecorder< TrackerT >, TrackerT, Initializing< TrackerTraits< TrackerT >::EventEmitterType, TrackerTraits< TrackerT >::BaseComplexT >, TrackingStarted< TrackerTraits< TrackerT >::EventEmitterType >, PrecisionChanged< TrackerTraits< TrackerT >::EventEmitterType > >, bertini::TypedObserver< PathPrecisionRecorder< TrackerT >, TrackerT, TrackingStarted< TrackerTraits< TrackerT >::EventEmitterType >, PrecisionChanged< TrackerTraits< TrackerT >::EventEmitterType > >, bertini::TypedObserver< PathPrecisionRecorder< TrackerType >, TrackerType, TrackingStarted< TrackerTraits< TrackerType >::EventEmitterType >, PrecisionChanged< TrackerTraits< TrackerType >::EventEmitterType > >, and bertini::TypedObserver< StepFailScreenPrinter< TrackerT >, TrackerT, FailedStep< TrackerTraits< TrackerT >::EventEmitterType > >.
| Vec<BCT> bertini::endgame::EventRecorder< EndgameT >::converged_point |
The converged root point captured from a converged event.
| Vec<BCT> bertini::endgame::EventRecorder< EndgameT >::last_circle_point |
The most-recent circle sample point captured from an event.
| BCT bertini::endgame::EventRecorder< EndgameT >::last_circle_time |
The most-recent circle sample time captured from an event.
| unsigned bertini::endgame::EventRecorder< EndgameT >::num_approximated_root = 0 |
Number of approximated-root events observed.
| unsigned bertini::endgame::EventRecorder< EndgameT >::num_circle_advanced = 0 |
Number of circle-advanced events observed.
| unsigned bertini::endgame::EventRecorder< EndgameT >::num_closed_loop = 0 |
Number of closed-loop events observed.
| unsigned bertini::endgame::EventRecorder< EndgameT >::num_converged = 0 |
Number of converged events observed.
| unsigned bertini::endgame::EventRecorder< EndgameT >::num_events = 0 |
Total number of events observed.
| unsigned bertini::endgame::EventRecorder< EndgameT >::num_in_eg_zone = 0 |
Number of in-endgame-zone events observed.
| unsigned bertini::endgame::EventRecorder< EndgameT >::num_precision_changed = 0 |
Number of precision-changed events observed.
| unsigned bertini::endgame::EventRecorder< EndgameT >::num_sample_refined = 0 |
Number of SampleRefined events observed.
| unsigned bertini::endgame::EventRecorder< EndgameT >::num_time_advanced = 0 |
Number of TimeAdvanced events observed.