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

Classes

class  MHomogeneous
 The $m$-homogeneous start system for Numerical Algebraic Geometry. More...
class  TotalDegreeBinomial
 Roots-of-unity start system for 1-homogeneous polynomial systems. More...
class  TotalDegreeLinearProduct
 Total degree start system for 1-homogeneous polynomial systems, built from random linear products. More...
class  User
 The user-provided start system for Numerical Algebraic Geometry. More...
class  StartSystem
 Abstract base class for other start systems. More...

Typedefs

template<typename SystemType>
using StartSystemFactory
 A factory that builds a start system from a (prepared) target system.

Functions

template<typename StartType, typename SystemType = bertini::System>
StartSystemFactory< SystemType > MakeStartFactory ()
 Build a StartSystemFactory that mints a concrete start system from the target.

Typedef Documentation

◆ StartSystemFactory

template<typename SystemType>
using bertini::start_system::StartSystemFactory
Initial value:
std::function<std::shared_ptr<StartSystem>(SystemType const&)>

A factory that builds a start system from a (prepared) target system.

The zero-dim algorithm holds its start system polymorphically through the StartSystem base; the construction site (which knows the concrete start-system type) hands ZeroDimSolver one of these factories, which it calls on the homogenized/patched target to mint the start system. Adding a new start system therefore costs no new solver instantiation – just a factory.

Function Documentation

◆ MakeStartFactory()

template<typename StartType, typename SystemType = bertini::System>
StartSystemFactory< SystemType > bertini::start_system::MakeStartFactory ( )

Build a StartSystemFactory that mints a concrete start system from the target.

The single place a concrete start-system type is named when wiring up a ZeroDimSolver. MakeStartFactory<start_system::TotalDegreeLinearProduct>() yields a factory that make_shareds a TotalDegreeLinearProduct from the (prepared) target. Used by the blackbox switch ladder, the python bindings, ZeroDimSolver's default, and the C++ tests. This template is only instantiated where the concrete StartType is complete, so start_base.hpp need not include the concrete start systems.