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

Namespaces

namespace  type
namespace  config

Classes

class  AlgoBuilder
 A de-serializer, whose responsibility it is to construct runnable objects based on input files. More...
struct  ZeroDimRT
 Runtime options selecting which ZeroDim algorithm to instantiate. More...
struct  AnyAlgorithm
 Type-erased base for all nag algorithms, exposing a single Run() entry point. More...

Functions

type::Start InferStartType (System const &sys)
 Infer which start system to use from the target system's variable-group structure.
template<typename TrackerType, typename EndgameType, typename ... ConstTs>
std::unique_ptr< algorithm::AnyZeroDim > ZeroDimSpecifyComplete (ConstTs const &...ts)
 Instantiate the fully-specified ZeroDim solver – the end of the switch chain.
template<typename TrackerType, typename ... ConstTs>
std::unique_ptr< algorithm::AnyZeroDim > ZeroDimSpecifyEndgame (ZeroDimRT const &rt, ConstTs const &...ts)
 Resolve the runtime endgame choice (rt.endgame) into a compile-time endgame type, then continue.
template<typename ... ConstTs>
std::unique_ptr< algorithm::AnyZeroDim > ZeroDimSpecifyTracker (ZeroDimRT const &rt, ConstTs const &...ts)
 Resolve the runtime tracker choice (rt.tracker) into a compile-time tracker type, then continue.
template<typename ... ConstTs>
std::unique_ptr< algorithm::AnyZeroDim > ZeroDimSpecifyStart (ZeroDimRT const &rt, ConstTs const &...ts)
 Resolve the runtime start-system choice (rt.start) into a start-system factory, then continue.
template<typename ... ConstTs>
std::unique_ptr< algorithm::AnyZeroDim > MakeZeroDim (ZeroDimRT const &rt, ConstTs const &...ts)
 Build a ZeroDim solver from runtime options – the entry point of the switch chain.
template<typename TrackerType, typename EndgameType, typename ... ConstTs>
std::unique_ptr< algorithm::AnyZeroDim > UserHomSpecifyComplete (ConstTs const &...ts)
template<typename TrackerType, typename ... ConstTs>
std::unique_ptr< algorithm::AnyZeroDim > UserHomSpecifyEndgame (ZeroDimRT const &rt, ConstTs const &...ts)
template<typename ... ConstTs>
std::unique_ptr< algorithm::AnyZeroDim > UserHomSpecifyTracker (ZeroDimRT const &rt, ConstTs const &...ts)
template<typename ... ConstTs>
std::unique_ptr< algorithm::AnyZeroDim > MakeUserHom (ZeroDimRT const &rt, ConstTs const &...ts)

Function Documentation

◆ InferStartType()

type::Start bertini::blackbox::InferStartType ( System const & sys)
inline

Infer which start system to use from the target system's variable-group structure.

This replicates classic Bertini, which chooses the start system from how the user groups the variables rather than from a dedicated setting:

  • a single affine variable group, with no homogeneous variable groups -> total degree (the 1-homogeneous Bezout start system);
  • anything else with grouping – two or more variable groups, or one or more homogeneous variable groups – -> multihomogeneous, using that partition.

User-defined homotopies are not inferred here; they come with their own start system.

◆ MakeUserHom()

template<typename ... ConstTs>
std::unique_ptr< algorithm::AnyZeroDim > bertini::blackbox::MakeUserHom ( ZeroDimRT const & rt,
ConstTs const &... ts )

◆ MakeZeroDim()

template<typename ... ConstTs>
std::unique_ptr< algorithm::AnyZeroDim > bertini::blackbox::MakeZeroDim ( ZeroDimRT const & rt,
ConstTs const &... ts )

Build a ZeroDim solver from runtime options – the entry point of the switch chain.

Enters the ZeroDimSpecify* chain, which resolves each runtime option (start, tracker, endgame) into the corresponding compile-time template parameter and constructs the solver.

Template Parameters
ConstTsThe forwarded construction-argument types.
Parameters
rtThe runtime options selecting start system, tracker, and endgame.
tsThe construction arguments (the target system, ...).
Returns
An owning handle to the constructed solver, type-erased as AnyZeroDim.

◆ UserHomSpecifyComplete()

template<typename TrackerType, typename EndgameType, typename ... ConstTs>
std::unique_ptr< algorithm::AnyZeroDim > bertini::blackbox::UserHomSpecifyComplete ( ConstTs const &... ts)

◆ UserHomSpecifyEndgame()

template<typename TrackerType, typename ... ConstTs>
std::unique_ptr< algorithm::AnyZeroDim > bertini::blackbox::UserHomSpecifyEndgame ( ZeroDimRT const & rt,
ConstTs const &... ts )

◆ UserHomSpecifyTracker()

template<typename ... ConstTs>
std::unique_ptr< algorithm::AnyZeroDim > bertini::blackbox::UserHomSpecifyTracker ( ZeroDimRT const & rt,
ConstTs const &... ts )

◆ ZeroDimSpecifyComplete()

template<typename TrackerType, typename EndgameType, typename ... ConstTs>
std::unique_ptr< algorithm::AnyZeroDim > bertini::blackbox::ZeroDimSpecifyComplete ( ConstTs const &... ts)

Instantiate the fully-specified ZeroDim solver – the end of the switch chain.

By this point every algorithm choice is a compile-time template parameter, so the concrete ZeroDimSolver can be constructed. The blackbox always clones and builds its own system.

Template Parameters
TrackerTypeThe resolved path-tracker type.
EndgameTypeThe resolved endgame type.
ConstTsThe forwarded construction-argument types.
Parameters
tsThe construction arguments forwarded to the solver (target system and start-system factory).
Returns
An owning handle to the constructed solver, type-erased as AnyZeroDim.

◆ ZeroDimSpecifyEndgame()

template<typename TrackerType, typename ... ConstTs>
std::unique_ptr< algorithm::AnyZeroDim > bertini::blackbox::ZeroDimSpecifyEndgame ( ZeroDimRT const & rt,
ConstTs const &... ts )

Resolve the runtime endgame choice (rt.endgame) into a compile-time endgame type, then continue.

Template Parameters
TrackerTypeThe already-resolved path-tracker type.
ConstTsThe forwarded construction-argument types.
Parameters
rtThe runtime options carrying the endgame selection.
tsThe construction arguments forwarded down the chain.
Returns
An owning handle to the constructed solver, type-erased as AnyZeroDim.

◆ ZeroDimSpecifyStart()

template<typename ... ConstTs>
std::unique_ptr< algorithm::AnyZeroDim > bertini::blackbox::ZeroDimSpecifyStart ( ZeroDimRT const & rt,
ConstTs const &... ts )

Resolve the runtime start-system choice (rt.start) into a start-system factory, then continue.

Appends the chosen start-system factory to the argument pack before continuing down the chain (ZeroDimSolver consumes the target system and that factory).

Template Parameters
ConstTsThe forwarded construction-argument types.
Parameters
rtThe runtime options carrying the start-system selection.
tsThe construction arguments forwarded down the chain.
Returns
An owning handle to the constructed solver, type-erased as AnyZeroDim.

◆ ZeroDimSpecifyTracker()

template<typename ... ConstTs>
std::unique_ptr< algorithm::AnyZeroDim > bertini::blackbox::ZeroDimSpecifyTracker ( ZeroDimRT const & rt,
ConstTs const &... ts )

Resolve the runtime tracker choice (rt.tracker) into a compile-time tracker type, then continue.

Template Parameters
ConstTsThe forwarded construction-argument types.
Parameters
rtThe runtime options carrying the tracker selection.
tsThe construction arguments forwarded down the chain.
Returns
An owning handle to the constructed solver, type-erased as AnyZeroDim.