|
Bertini 2 d882924 (2026-10-06 19:56 UTC)
Numerical algebraic geometry library (C++ core)
|
Owns and builds the target / start system / homotopy for a zero-dim solve. More...
#include <zero_dim_solve.hpp>
Public Types | |
| using | StartSystemBaseT = bertini::start_system::StartSystem |
| The start-system base type. | |
| using | FactoryT = bertini::start_system::StartSystemFactory<SystemType> |
| The start-system factory type. | |
Public Member Functions | |
| OwnedHomotopy (SystemType const &target, FactoryT factory, std::string const &path_variable_name) | |
| Build and own the target, start system, and homotopy from a target system and factory. | |
| SystemType const & | BuiltTarget () const |
| SystemType const & | UserTarget () const |
| StartSystemBaseT const & | BuiltStart () const |
| SystemType const & | BuiltHomotopy () const |
Protected Member Functions | |
| void | ConsistencyCheck () const |
| Reject targets that cannot have isolated solutions for structural reasons. | |
| void | SquareUp () |
| If the target is over-determined (more equations than the affine dimension), replace it with n generic combinations (System::Randomize) so a start system can track it. | |
| void | RankCheck () const |
| Reject a square target whose solution set is still positive-dimensional. | |
Static Protected Member Functions | |
| static void | PrepareTarget (SystemType &target) |
| Homogenize and auto-patch the (already square) target system in place. | |
Protected Attributes | |
| SystemType | user_target_ |
| The target exactly as supplied (pristine; the records' target identity). | |
| SystemType | owned_target_ |
| The owned (cloned, prepared) target system. | |
| std::shared_ptr< StartSystemBaseT > | owned_start_ |
| The owned start system. | |
| SystemType | owned_homotopy_ |
| The owned homotopy. | |
| FactoryT | owned_factory_ |
| The start-system factory used to build the start system. | |
| bool | was_randomized_ = false |
| Whether an over-determined target was squared up by randomization. | |
| SystemType | original_natural_target_ |
| The original (natural, un-homogenized) target, kept to discard extraneous solutions. | |
| Mat< complex_mp > | randomization_matrix_ |
| The exact coefficient matrix used to square up the system. | |
Owns and builds the target / start system / homotopy for a zero-dim solve.
Constructed as the FIRST base of ZeroDimSolver – before the HomotopySolver engine base, which holds references into these systems – so the homotopy is fully formed before the engine reads it. This holds the system-building half of the algorithm, plus the feasibility / rank checks the algorithm owns. Members carry an owned_ prefix so they do not collide with the engine base's reference members.
| using bertini::algorithm::zero_dim_detail::OwnedHomotopy< SystemType >::FactoryT = bertini::start_system::StartSystemFactory<SystemType> |
The start-system factory type.
| using bertini::algorithm::zero_dim_detail::OwnedHomotopy< SystemType >::StartSystemBaseT = bertini::start_system::StartSystem |
The start-system base type.
|
inline |
Build and own the target, start system, and homotopy from a target system and factory.
|
inline |
|
inline |
|
inline |
|
inlineprotected |
Reject targets that cannot have isolated solutions for structural reasons.
|
inlinestaticprotected |
Homogenize and auto-patch the (already square) target system in place.
| target | The target system to prepare. |
|
inlineprotected |
Reject a square target whose solution set is still positive-dimensional.
ConsistencyCheck only counts equations; a system can be square yet positive-dimensional (e.g. a repeated equation). At a generic point a zero-dimensional system has a full-rank n x n Jacobian, so a rank-deficient Jacobian there means no isolated solutions. Runs only when the (natural, pre-homogenize) system is square; projective/structured inputs whose Jacobian is not n x n are left to ConsistencyCheck.
|
inlineprotected |
If the target is over-determined (more equations than the affine dimension), replace it with n generic combinations (System::Randomize) so a start system can track it.
The randomized system's isolated solutions contain the original's plus extraneous ones; the original system is kept (original_natural_target_) so ZeroDimSolver can filter those out.
|
inline |
|
protected |
The original (natural, un-homogenized) target, kept to discard extraneous solutions.
|
protected |
The start-system factory used to build the start system.
|
protected |
The owned homotopy.
|
protected |
The owned start system.
|
protected |
The owned (cloned, prepared) target system.
|
protected |
The exact coefficient matrix used to square up the system.
|
protected |
The target exactly as supplied (pristine; the records' target identity).
|
protected |
Whether an over-determined target was squared up by randomization.