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

Configuration for post-processing solutions (reality/finiteness/singularity classification). More...

#include <config.hpp>

Public Types

using T = NumErrorT
 The numeric (error) type.

Public Attributes

T real_threshold = T(1)/T(100000000)
 Bertini 1's ImagThreshold. Threshold on the imaginary part of a (dehomogenized) solution coordinate being 0: a point is real if the infinity norm of the imaginary parts is below this. If the imag part exceeds this, the point is considered complex. Currently, this is the implemented available way in Bertini2 for determining this, but there are other methods. Smale's alpha theory provides ways to prove that a point is real. If this is something you need, please consider adding the method to the library, for all to use! Or, if this is technically beyond your C++ capabilities, add as an issue on the github page, and indicate it as a feature request. B1 default 1e-8.
T endpoint_finite_threshold = T(100000)
 Bertini 1's EndpointFiniteThreshold. An endpoint is considered to be at infinity if the infinity norm of its dehomogenized coordinates is larger than this value. This uses the same dehomogenize-then-infinity-norm computation the endgame uses for its Security::max_norm divergence check (a separate, smaller threshold for bailing out during the endgame). There is also path_truncation_threshold on the tracker, which tells it to abandon a path if exceeded. B1 default 1e5.
T same_point_tolerance_multiplier {T(10)}
 Bertini 1's EndpointSameThreshold. A multiplier (>= 1) on final_tolerance: two endpoints are considered the same point if the infinity norm of the difference of their dehomogenized coordinates is below final_tolerance * same_point_tolerance_multiplier. Keeping it a multiplier (rather than an absolute tolerance) means the same-point test always stays a fixed factor looser than the accuracy you tracked to, even if final_tolerance is changed. B1 default 10.
T condition_number_threshold {T(100000000)}
 Bertini 1's CondNumThreshold. An endpoint is considered singular if it is the endpoint of multiple paths (multiplicity > 1), or if the approximation of the condition number (in the spectral norm, as estimated by the tracker) is larger than this value. B1 default 1e8.

Detailed Description

Configuration for post-processing solutions (reality/finiteness/singularity classification).

Member Typedef Documentation

◆ T

The numeric (error) type.

Member Data Documentation

◆ condition_number_threshold

T bertini::algorithm::PostProcessingConfig::condition_number_threshold {T(100000000)}

Bertini 1's CondNumThreshold. An endpoint is considered singular if it is the endpoint of multiple paths (multiplicity > 1), or if the approximation of the condition number (in the spectral norm, as estimated by the tracker) is larger than this value. B1 default 1e8.

◆ endpoint_finite_threshold

T bertini::algorithm::PostProcessingConfig::endpoint_finite_threshold = T(100000)

Bertini 1's EndpointFiniteThreshold. An endpoint is considered to be at infinity if the infinity norm of its dehomogenized coordinates is larger than this value. This uses the same dehomogenize-then-infinity-norm computation the endgame uses for its Security::max_norm divergence check (a separate, smaller threshold for bailing out during the endgame). There is also path_truncation_threshold on the tracker, which tells it to abandon a path if exceeded. B1 default 1e5.

◆ real_threshold

T bertini::algorithm::PostProcessingConfig::real_threshold = T(1)/T(100000000)

Bertini 1's ImagThreshold. Threshold on the imaginary part of a (dehomogenized) solution coordinate being 0: a point is real if the infinity norm of the imaginary parts is below this. If the imag part exceeds this, the point is considered complex. Currently, this is the implemented available way in Bertini2 for determining this, but there are other methods. Smale's alpha theory provides ways to prove that a point is real. If this is something you need, please consider adding the method to the library, for all to use! Or, if this is technically beyond your C++ capabilities, add as an issue on the github page, and indicate it as a feature request. B1 default 1e-8.

◆ same_point_tolerance_multiplier

T bertini::algorithm::PostProcessingConfig::same_point_tolerance_multiplier {T(10)}

Bertini 1's EndpointSameThreshold. A multiplier (>= 1) on final_tolerance: two endpoints are considered the same point if the infinity norm of the difference of their dehomogenized coordinates is below final_tolerance * same_point_tolerance_multiplier. Keeping it a multiplier (rather than an absolute tolerance) means the same-point test always stays a fixed factor looser than the accuracy you tracked to, even if final_tolerance is changed. B1 default 10.