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

Top-level configuration for a zero-dimensional solve (times, precision, threading). More...

#include <config.hpp>

Public Attributes

unsigned initial_ambient_precision = DefaultPrecision()
 Initial ambient (working) precision for the solve.
unsigned max_num_crossed_path_resolve_attempts = 2
 The maximum number of times to attempt to re-solve crossed paths at the endgame boundary.
unsigned num_threads = 0
 Number of worker threads tracking paths, in a standalone solve and on each MPI rank.
double max_path_wall_clock_duration = 0
 Wall-clock budget for each path, in seconds; 0 (the default) means none.
double max_solve_wall_clock_duration = 0
 Wall-clock budget for the whole solve, in seconds; 0 (the default) means none.
mpq_rational start_time {1}
 Homotopy start time (t=1).
mpq_rational endgame_boundary {1, 10}
 Time at which tracking hands off to the endgame (t=1/10).
mpq_rational target_time {0}
 Homotopy target time (t=0).
std::string path_variable_name = "ZERO_DIM_PATH_VARIABLE"
 Name given to the homotopy's path variable.

Detailed Description

Top-level configuration for a zero-dimensional solve (times, precision, threading).

Member Data Documentation

◆ endgame_boundary

mpq_rational bertini::algorithm::ZeroDimConfig::endgame_boundary {1, 10}

Time at which tracking hands off to the endgame (t=1/10).

◆ initial_ambient_precision

unsigned bertini::algorithm::ZeroDimConfig::initial_ambient_precision = DefaultPrecision()

Initial ambient (working) precision for the solve.

◆ max_num_crossed_path_resolve_attempts

unsigned bertini::algorithm::ZeroDimConfig::max_num_crossed_path_resolve_attempts = 2

The maximum number of times to attempt to re-solve crossed paths at the endgame boundary.

◆ max_path_wall_clock_duration

double bertini::algorithm::ZeroDimConfig::max_path_wall_clock_duration = 0

Wall-clock budget for each path, in seconds; 0 (the default) means none.

A path that has not finished when its budget runs out is abandoned between steps with SuccessCode::WallClockLimitReached, stamped with where it got to, and recorded with this limit. Deliberately NOT part of the configuration's identity: a budget says how long to wait for an answer, not what the answer is, so a 60 s and a 61 s run are the same ask; how an abandonment under one budget is treated by a later run is RecallPolicy's business. Wall-clock time is machine-dependent, so the same limit is the same amount of patience only on the same machine – the recorded stamp (steps, precision, time reached) is the machine-independent account.

◆ max_solve_wall_clock_duration

double bertini::algorithm::ZeroDimConfig::max_solve_wall_clock_duration = 0

Wall-clock budget for the whole solve, in seconds; 0 (the default) means none.

Counted from the start of Solve(). Once it runs out, no further path is started (those stay NeverStarted) and any path in flight is abandoned between steps – and the solve reads exactly as if it had been interrupted: WasStoppedEarly(), abandoned paths ExternallyTerminated, always re-tracked on recall. The per-path budget above is the finer tool (it guarantees progress path by path); this one is for a caller who thinks in terms of the whole call. Not part of the identity, for the same reason. Not applied to the MPI solve.

◆ num_threads

unsigned bertini::algorithm::ZeroDimConfig::num_threads = 0

Number of worker threads tracking paths, in a standalone solve and on each MPI rank.

0 = auto (every CPU this process may run on, as OpenMP's default); 1 = serial (no thread pool). Overridden by the BERTINI_NUM_THREADS environment variable when set. See parallel::EffectiveThreadCount.

◆ path_variable_name

std::string bertini::algorithm::ZeroDimConfig::path_variable_name = "ZERO_DIM_PATH_VARIABLE"

Name given to the homotopy's path variable.

◆ start_time

mpq_rational bertini::algorithm::ZeroDimConfig::start_time {1}

Homotopy start time (t=1).

◆ target_time

mpq_rational bertini::algorithm::ZeroDimConfig::target_time {0}

Homotopy target time (t=0).