Bertini 2 d882924 (2026-10-06 19:56 UTC)
Numerical algebraic geometry library (C++ core)
Loading...
Searching...
No Matches
bertini::endgame Namespace Reference

Classes

class  AMPEndgame
 Specifies some necessaries for AMP style endgame implementations, which differ from the fixed precision ones. More...
struct  EGPrecSelector< tracking::AMPTracker >
 Selects the AMP endgame precision policy for the adaptive-precision tracker. More...
class  EndgameBase
 Base endgame class for all endgames offered in Bertini2. More...
class  CauchyEndgame
 Class used to finish tracking paths during Homotopy Continuation. More...
class  PowerSeriesEndgame
 class used to finish tracking paths during Homotopy Continuation More...
class  FixedPrecEndgame
 Fixed-precision endgame precision policy (refines and ensures precision at a single working precision). More...
struct  EGPrecSelector
 Base empty class. More...
struct  EndgameSelector
 Facilitates lookup of required endgame type based on tracker type. More...
struct  SecurityConfig
 Security (divergence-bailout) configuration for an endgame. More...
struct  EndgameConfig
 Configuration common to all endgames (sampling and final-approximation tolerances). More...
struct  PowerSeriesConfig
 Power-series-endgame configuration. More...
struct  CauchyConfig
 Cauchy-endgame configuration. More...
struct  TrackBackConfig
 Track-back endgame configuration. More...
struct  AlgoTraits
struct  AlgoTraits< PowerSeriesEndgame< PrecT > >
 specialization for PowerSeries, which uses CRTP More...
struct  AlgoTraits< CauchyEndgame< PrecT > >
 specialization for Cauchy, which uses CRTP More...
class  ComputedSamplePoint
 A new sample point on the path was computed, adding one point to the sequence of the endgame's approach to the target time. More...
class  CircleAdvanced
 Advanced around the circle around target time. More...
class  PrecisionChanged
 Event emitted when the endgame's working precision changes. More...
struct  EGPrecSelector< tracking::DoublePrecisionTracker >
 Selects the fixed-precision endgame policy for the double-precision tracker. More...
struct  EGPrecSelector< tracking::MultiplePrecisionTracker >
 Selects the fixed-precision endgame policy for the multiple-precision tracker. More...
struct  EGPrecSelector< tracking::FixedPrecisionTracker< D > >
 Selects the fixed-precision endgame policy for a fixed-precision tracker. More...
struct  GoryDetailLogger
 Logs the endgame run, with gory detail. More...
struct  EventRecorder
 Counts endgame events and captures their payloads, for tests and diagnostics. More...
struct  SampleSequenceCollector
 Collects an endgame's approach to the root as a time-indexed sequence, for callers that need to watch a quantity BEHAVE as the point improves rather than judge it at a single point. More...
class  EndgamePrecPolicyBase
 A common base type for various precision types, fixed and adaptive. More...

Functions

 ADD_BERTINI_EVENT_TYPE (EndgameEvent, ConstEvent)
 Generic event for Endgames.
 ADD_BERTINI_EVENT_TYPE (EndgameFailure, ConstEvent)
 Generic failure event for Endgames.
 ADD_BERTINI_EVENT_TYPE (EndgameSuccess, ConstEvent)
 Generic success event for Endgames.
 ADD_BERTINI_EVENT_TYPE (MinTrackTimeReached, EndgameFailure)
 MinTrackTime reached during endgame.
 ADD_BERTINI_EVENT_TYPE (RefiningFailed, EndgameFailure)
 Refining a sample failed for some reason.
 ADD_BERTINI_EVENT_TYPE (CycleNumTooHigh, EndgameFailure)
 Cycle number computed was too high.
 ADD_BERTINI_EVENT_TYPE (SecurityMaxNormReached, EndgameFailure)
 Security max norm reached.
 ADD_BERTINI_EVENT_TYPE (Initializing, EndgameEvent)
 Started running the endgame.
 ADD_BERTINI_EVENT_TYPE (SamplesRecomputedAtHigherPrecision, EndgameEvent)
 The adaptive endgame needed a higher precision before it had its first approximation, and recomputes its sample window at the new precision.
 ADD_BERTINI_EVENT_TYPE (TimeAdvanced, EndgameEvent)
 Time advancing.
 ADD_BERTINI_EVENT_TYPE (ClosedLoop, EndgameEvent)
 Walked a complete loop around the target time.
 ADD_BERTINI_EVENT_TYPE (ApproximatedRoot, EndgameEvent)
 Approximated a root at target time.
 ADD_BERTINI_EVENT_TYPE (Converged, EndgameSuccess)
 Converged – endgame is done!
 ADD_BERTINI_EVENT_TYPE (SampleRefined, EndgameEvent)
 Refined a sample.
 ADD_BERTINI_EVENT_TYPE (InEGOperatingZone, EndgameEvent)
 Made it into the EG operating zone, or so we believe.
template<typename ComplexT>
Vec< ComplexT > HermiteInterpolateAndSolve (ComplexT const &target_time, const unsigned int num_sample_points, const TimeCont< ComplexT > &times, const SampCont< ComplexT > &samples, const SampCont< ComplexT > &derivatives, ContStart shift_from=ContStart::Back)
 Estimates the root to interpolating polynomial.

Function Documentation

◆ ADD_BERTINI_EVENT_TYPE() [1/15]

bertini::endgame::ADD_BERTINI_EVENT_TYPE ( ApproximatedRoot ,
EndgameEvent  )

Approximated a root at target time.

◆ ADD_BERTINI_EVENT_TYPE() [2/15]

bertini::endgame::ADD_BERTINI_EVENT_TYPE ( ClosedLoop ,
EndgameEvent  )

Walked a complete loop around the target time.

◆ ADD_BERTINI_EVENT_TYPE() [3/15]

bertini::endgame::ADD_BERTINI_EVENT_TYPE ( Converged ,
EndgameSuccess  )

Converged – endgame is done!

◆ ADD_BERTINI_EVENT_TYPE() [4/15]

bertini::endgame::ADD_BERTINI_EVENT_TYPE ( CycleNumTooHigh ,
EndgameFailure  )

Cycle number computed was too high.

◆ ADD_BERTINI_EVENT_TYPE() [5/15]

bertini::endgame::ADD_BERTINI_EVENT_TYPE ( EndgameEvent ,
ConstEvent  )

Generic event for Endgames.

◆ ADD_BERTINI_EVENT_TYPE() [6/15]

bertini::endgame::ADD_BERTINI_EVENT_TYPE ( EndgameFailure ,
ConstEvent  )

Generic failure event for Endgames.

◆ ADD_BERTINI_EVENT_TYPE() [7/15]

bertini::endgame::ADD_BERTINI_EVENT_TYPE ( EndgameSuccess ,
ConstEvent  )

Generic success event for Endgames.

◆ ADD_BERTINI_EVENT_TYPE() [8/15]

bertini::endgame::ADD_BERTINI_EVENT_TYPE ( InEGOperatingZone ,
EndgameEvent  )

Made it into the EG operating zone, or so we believe.

◆ ADD_BERTINI_EVENT_TYPE() [9/15]

bertini::endgame::ADD_BERTINI_EVENT_TYPE ( Initializing ,
EndgameEvent  )

Started running the endgame.

◆ ADD_BERTINI_EVENT_TYPE() [10/15]

bertini::endgame::ADD_BERTINI_EVENT_TYPE ( MinTrackTimeReached ,
EndgameFailure  )

MinTrackTime reached during endgame.

◆ ADD_BERTINI_EVENT_TYPE() [11/15]

bertini::endgame::ADD_BERTINI_EVENT_TYPE ( RefiningFailed ,
EndgameFailure  )

Refining a sample failed for some reason.

◆ ADD_BERTINI_EVENT_TYPE() [12/15]

bertini::endgame::ADD_BERTINI_EVENT_TYPE ( SampleRefined ,
EndgameEvent  )

Refined a sample.

◆ ADD_BERTINI_EVENT_TYPE() [13/15]

bertini::endgame::ADD_BERTINI_EVENT_TYPE ( SamplesRecomputedAtHigherPrecision ,
EndgameEvent  )

The adaptive endgame needed a higher precision before it had its first approximation, and recomputes its sample window at the new precision.

The samples it announced at the lower precision are superseded – the endgame discards them and tracks the window again from the boundary point – so an observer keeping the sequence of samples should drop them too. (A precision increase LATER in the run, once approximations exist, keeps the samples and widens them in place; that one announces only PrecisionChanged.) Emitted right after the matching PrecisionChanged.

◆ ADD_BERTINI_EVENT_TYPE() [14/15]

bertini::endgame::ADD_BERTINI_EVENT_TYPE ( SecurityMaxNormReached ,
EndgameFailure  )

Security max norm reached.

◆ ADD_BERTINI_EVENT_TYPE() [15/15]

bertini::endgame::ADD_BERTINI_EVENT_TYPE ( TimeAdvanced ,
EndgameEvent  )

Time advancing.

◆ HermiteInterpolateAndSolve()

template<typename ComplexT>
Vec< ComplexT > bertini::endgame::HermiteInterpolateAndSolve ( ComplexT const & target_time,
const unsigned int num_sample_points,
const TimeCont< ComplexT > & times,
const SampCont< ComplexT > & samples,
const SampCont< ComplexT > & derivatives,
ContStart shift_from = ContStart::Back )

Estimates the root to interpolating polynomial.

Input: target_time is the time value that we wish to interpolate at. samples are space values that correspond to the time values in times. derivatives are the dx_dt or dx_ds values at the (time,sample) values.

Output: Since we have a target_time the function returns the corrsponding space value at that time.

Details: We compare our approximations to the tracked value to come up with the cycle number. Also, we use the Hermite interpolation to interpolate at the origin. Once two interpolants are withing FinalTol we say we have converged.

Parameters
target_timeThe time value that we wish to interpolate at.
num_sample_pointsThe number of (time, sample) points used in the interpolation.
timesThe time values of the samples used for interpolation.
samplesThe space values corresponding to the time values in times.
derivativesThe dx/dt (or dx/ds) values at the (time, sample) points.
shift_fromWhich end of the sample containers to interpolate from.
Template Parameters
ComplexTThe complex number type.