|
Bertini 2 d882924 (2026-10-06 19:56 UTC)
Numerical algebraic geometry library (C++ core)
|
forward declare of the NumericalIrreducibleDecomposition algorithm. More...
#include <numerical_irreducible_decomposition.hpp>
Public Types | |
| using | TrackerT = TrackerType |
| The path-tracker type. | |
| using | EndgameT = EndgameType |
| The endgame type. | |
| using | SystemT = SystemType |
| The system type. | |
| using | BaseComplexT = typename tracking::TrackerTraits<TrackerType>::BaseComplexT |
| a bunch of using statements to reduce typing. | |
| using | BaseRealT = typename tracking::TrackerTraits<TrackerType>::BaseRealT |
| The real number type of the tracker. | |
| using | Config |
| The Configured base storing this algorithm's configuration structs. | |
| using | Regeneration = RegenerationConfig |
| Regeneration configuration type. | |
| using | Tolerances = TolerancesConfig |
| Tolerances configuration type. | |
| using | Sharpening = SharpeningConfig |
| Sharpening configuration type. | |
| using | PostProcessing = PostProcessingConfig |
| Post-processing configuration type. | |
| using | ResultT = nag_datatype::NumericalIrreducibleDecomposition<BaseComplexT> |
| The decomposition result type. | |
| using | UsedConfigs |
| The list of configuration types this object holds. | |
Public Member Functions | |
| const SystemType & | TargetSystem () const |
| SystemType & | TargetSystem () |
| NumericalIrreducibleDecomposition (SystemType const &target) | |
| constructors | |
| virtual | ~NumericalIrreducibleDecomposition ()=default |
| void | Run () override |
| the main functions | |
| void | Solve () |
| Perform the numerical irreducible decomposition. | |
| ResultT | RegenerativeCascade () |
| Run the regenerative cascade. | |
| const ResultT & | GetDecomposition () const |
| Get the most recently computed decomposition. | |
| const TrackerType & | GetTracker () const |
| tracker / endgame access | |
| TrackerType & | GetTracker () |
| const EndgameType & | GetEndgame () const |
| EndgameType & | GetEndgame () |
| void | DefaultSetup () |
| setup functions | |
| void | DefaultSettingsSetup () |
| Fills the configs from default values. | |
| void | DefaultSystemSetup () |
| Homogenize and patch the owned target system to its default working form. | |
| template<typename T, typename = typename std::enable_if<IsTemplateParameter<T,Ts...>::value>::type> | |
| const T & | Get () const |
| Retrieve a stored configuration struct by type (inherited from Configured). | |
| void | Set (T const &t) |
| Set the held configuration object of type T. | |
| void | AddObserver (AnyObserver &new_observer) const |
| Add an observer (non-owning) to observe this observable. | |
| void | AddObserver (std::shared_ptr< AnyObserver > const &new_observer) const |
| Add an observer whose lifetime is co-owned by this observable. | |
| void | RemoveObserver (AnyObserver &observer) const |
| Remove an observer from this observable. | |
| virtual bool | ObservableIsA (std::type_index t) const |
| Whether this observable may be observed as the given type. | |
Public Attributes | |
| std::tuple< Ts... > | configuration_ |
| The held configuration objects, one per config type. | |
Protected Member Functions | |
| void | NotifyObservers (AnyEvent const &e) const |
| Sends an event to observers that subscribed to its exact dynamic type, then to all catch-all (untyped) observers. | |
| void | NotifyObservers (AnyEvent &e) const |
| Notify all observers of a (mutable) event. | |
| bool | HasObservers () const |
| Whether anyone is currently observing (conservative). | |
forward declare of the NumericalIrreducibleDecomposition algorithm.
The Numerical Irreducible Decomposition algorithm.
Unlike ZeroDim, NID has no start system – the regenerative cascade is a fundamentally different way of solving a polynomial system – so it carries no StartSystem template parameter. It owns a cloned target system directly (no system-management policy: this is placeholder scaffolding whose Solve() throws).
| using bertini::algorithm::NumericalIrreducibleDecomposition< TrackerType, EndgameType, SystemType >::BaseComplexT = typename tracking::TrackerTraits<TrackerType>::BaseComplexT |
a bunch of using statements to reduce typing.
The complex number type of the tracker.
| using bertini::algorithm::NumericalIrreducibleDecomposition< TrackerType, EndgameType, SystemType >::BaseRealT = typename tracking::TrackerTraits<TrackerType>::BaseRealT |
The real number type of the tracker.
| using bertini::algorithm::NumericalIrreducibleDecomposition< TrackerType, EndgameType, SystemType >::Config |
The Configured base storing this algorithm's configuration structs.
| using bertini::algorithm::NumericalIrreducibleDecomposition< TrackerType, EndgameType, SystemType >::EndgameT = EndgameType |
The endgame type.
| using bertini::algorithm::NumericalIrreducibleDecomposition< TrackerType, EndgameType, SystemType >::PostProcessing = PostProcessingConfig |
Post-processing configuration type.
| using bertini::algorithm::NumericalIrreducibleDecomposition< TrackerType, EndgameType, SystemType >::Regeneration = RegenerationConfig |
Regeneration configuration type.
| using bertini::algorithm::NumericalIrreducibleDecomposition< TrackerType, EndgameType, SystemType >::ResultT = nag_datatype::NumericalIrreducibleDecomposition<BaseComplexT> |
The decomposition result type.
| using bertini::algorithm::NumericalIrreducibleDecomposition< TrackerType, EndgameType, SystemType >::Sharpening = SharpeningConfig |
Sharpening configuration type.
| using bertini::algorithm::NumericalIrreducibleDecomposition< TrackerType, EndgameType, SystemType >::SystemT = SystemType |
The system type.
| using bertini::algorithm::NumericalIrreducibleDecomposition< TrackerType, EndgameType, SystemType >::Tolerances = TolerancesConfig |
Tolerances configuration type.
| using bertini::algorithm::NumericalIrreducibleDecomposition< TrackerType, EndgameType, SystemType >::TrackerT = TrackerType |
The path-tracker type.
|
inherited |
The list of configuration types this object holds.
|
inline |
constructors
Construct a NumericalIrreducibleDecomposition algorithm object from the system to be decomposed.
|
virtualdefault |
|
inlineinherited |
Add an observer (non-owning) to observe this observable.
Stores only a raw reference: the caller is responsible for keeping the observer alive while it is attached. This is the right overload for stack-allocated C++ observers added and removed within a scope. For an observer whose lifetime you would rather have tracked, see the shared_ptr overload.
Observers that override SubscribedEventTypes() with a non-empty list are registered in a type-indexed map so NotifyObservers only calls them for events they declared interest in. Observers returning an empty list (the default) are placed in a catch-all list and receive every event.
Safe to call from inside an observer's Observe() (i.e. during a notification): the add is deferred and applied once the current notification loop finishes. This is what lets a "meta-observer" attach new observers in response to events.
| IncompatibleObserver | if the observer's ObservedKind() is not one this observable can be observed as. |
|
inlineinherited |
Add an observer whose lifetime is co-owned by this observable.
The observable keeps a shared_ptr, so the observer stays alive (and keeps receiving events) for as long as it is attached, even after the caller drops their own reference — "attach it and forget it", with no dangling. It is released when RemoveObserver is called or this observable is destroyed. (Stack-allocated C++ observers can't be shared_ptr-owned; use the reference overload for those.)
| IncompatibleObserver | if incompatible (see the reference overload). |
|
inline |
Fills the configs from default values.
|
inline |
setup functions
|
inline |
Homogenize and patch the owned target system to its default working form.
|
inline |
Retrieve a stored configuration struct by type (inherited from Configured).
|
inline |
Get the most recently computed decomposition.
|
inline |
|
inline |
|
inline |
|
inline |
tracker / endgame access
|
inlineprotectedinherited |
Whether anyone is currently observing (conservative).
Lets an emitter skip constructing an event – and any work needed to build its payload, such as a numeric-type conversion – when there is no observer to receive it. Conservative: returns true if any watcher list is non-empty (even if a stale, emptied typed bucket lingers), so it never wrongly suppresses a real observer.
|
inlineprotectedinherited |
Notify all observers of a (mutable) event.
|
inlineprotectedinherited |
Sends an event to observers that subscribed to its exact dynamic type, then to all catch-all (untyped) observers.
Mutations of the observer lists are deferred for the duration of a notification (see AddObserver/RemoveObserver), so iterating the live lists here is safe even when an observer subscribes/unsubscribes mid-dispatch. An observer that returns ObserveResult::Unsubscribe is dropped once the (possibly nested) notification completes. The depth counter keeps this correct under re-entrant emission.
|
inlinevirtualinherited |
Whether this observable may be observed as the given type.
Drives the compatibility check in AddObserver. The default accepts the wildcard typeid(void) and this observable's own dynamic type. An observable that emits its events templated on a base type (so a single observer type serves many concrete observables) should also accept that base type — e.g. ZeroDim accepts AnyZeroDim.
Reimplemented in bertini::algorithm::HomotopySolver< TrackerType, EndgameType, SystemType >, and bertini::algorithm::HomotopySolver< A, B, C >.
|
inline |
Run the regenerative cascade.
|
inlineinherited |
Remove an observer from this observable.
Like AddObserver, this is safe to call during a notification: the removal is deferred until the current notification loop finishes.
|
inlineoverridevirtual |
the main functions
Main Run() function provided for calling from the blackbox mode.
Implements bertini::algorithm::AnyAlgorithm.
|
inlineinherited |
Set the held configuration object of type T.
|
inline |
Perform the numerical irreducible decomposition.
|
inline |
|
inline |
|
inherited |
The held configuration objects, one per config type.