Bertini 2 d882924 (2026-10-06 19:56 UTC)
Numerical algebraic geometry library (C++ core)
Loading...
Searching...
No Matches
bertini::algorithm::PathStarted< ObservedT > Class Template Reference

The algorithm is beginning work on one solution path, carrying its index. More...

#include <events.hpp>

Inheritance diagram for bertini::algorithm::PathStarted< ObservedT >:
[legend]
Collaboration diagram for bertini::algorithm::PathStarted< ObservedT >:
[legend]

Public Types

using HeldT = typename AlgorithmEvent<ObservedT>::HeldT
 The held-observer type the event carries.

Public Member Functions

 PathStarted (HeldT obs, std::size_t path_index, Observable const *tracker=nullptr)
 Construct the event for the path at the given index.
std::size_t PathIndex () const
Observable const * Tracker () const
 The tracker that actually executes this path.
virtual ~PathStarted ()=default
 PathStarted ()=delete

Detailed Description

template<class ObservedT>
class bertini::algorithm::PathStarted< ObservedT >

The algorithm is beginning work on one solution path, carrying its index.

Between this and the matching PathComplete, the algorithm runs everything for that path – the main homotopy track and any endgame sub-tracks – so an observer can group them together as one complete solution path.

Member Typedef Documentation

◆ HeldT

template<class ObservedT>
using bertini::algorithm::PathStarted< ObservedT >::HeldT = typename AlgorithmEvent<ObservedT>::HeldT

The held-observer type the event carries.

Constructor & Destructor Documentation

◆ PathStarted() [1/2]

template<class ObservedT>
bertini::algorithm::PathStarted< ObservedT >::PathStarted ( HeldT obs,
std::size_t path_index,
Observable const * tracker = nullptr )
inline

Construct the event for the path at the given index.

Parameters
obsThe observed object emitting the event.
path_indexThe index of the solution path being started.
trackerThe tracker that will execute this path (see Tracker()); may be null.

◆ ~PathStarted()

template<class ObservedT>
virtual bertini::algorithm::PathStarted< ObservedT >::~PathStarted ( )
virtualdefault

◆ PathStarted() [2/2]

template<class ObservedT>
bertini::algorithm::PathStarted< ObservedT >::PathStarted ( )
delete

Member Function Documentation

◆ PathIndex()

template<class ObservedT>
std::size_t bertini::algorithm::PathStarted< ObservedT >::PathIndex ( ) const
inline
Returns
The index of the solution path this event concerns.

◆ Tracker()

template<class ObservedT>
Observable const * bertini::algorithm::PathStarted< ObservedT >::Tracker ( ) const
inline

The tracker that actually executes this path.

In a serial solve this is the solver's member tracker; in a threaded solve it is the thread-local tracker clone that owns the path (Observable copies inherit no observers, so the member tracker would see nothing). A meta-observer that wants per-path tracking data must attach its sub-observer here, NOT to solver.GetTracker(). AddObserver is a const method, so observers can still be attached through this const handle. May be null if the emitter supplied no tracker.