44template <
typename AlgoT>
49template <
typename ...T>
61template <
typename A,
typename B,
typename C>
67 template <
typename OutT>
71 out <<
"\n\n\n MAINDATA \n\n\n";
74 out <<
"\n\n\n RAWDATA \n\n\n";
80 template <
typename OutT>
88 const auto n = s.size();
89 for (
decltype(s.size()) ii{0}; ii<n; ++ii)
108 template <
typename OutT>
139 template <
typename OutT,
typename SolListT>
142 out << sols.size() <<
"\n\n";
143 for (
auto const& v : sols)
151 template <
typename OutT>
155 template <
typename OutT>
159 template <
typename OutT>
163 template <
typename OutT>
169 template <
typename OutT>
174 const auto m = std::min(md.size(), sols.size());
176 std::size_t count{0};
177 for (std::size_t ii{0}; ii<m; ++ii)
181 out << count <<
"\n\n";
182 for (std::size_t ii{0}; ii<m; ++ii)
186 out << md[ii].path_index <<
"\n";
194 template <
typename OutT>
199 out << sys.NumVariables() << additional;
204 template <
typename OutT>
206 void Variables(OutT & out,
ZDT const& zd, std::string
const& additional =
"\n")
209 const auto& vars = sys.VariableOrdering();
210 for (
const auto& x : vars)
217 template <
typename OutT>
225 template <
typename OutT>
227 void StartSystem(OutT & out,
ZDT const& zd, std::string
const& additional =
"\n")
233 template <
typename OutT>
235 void Homotopy(OutT & out,
ZDT const& zd, std::string
const& additional =
"\n")
241 template <
typename IndexT,
typename OutT>
243 void EndPoint(IndexT
const& ind, OutT & out,
ZDT const& zd, std::string
const& additional =
"")
250 template <
typename IndexT,
typename OutT>
252 void EndPointDehom(IndexT
const& ind, OutT & out,
ZDT const& zd, std::string
const& additional =
"")
261 template <
typename IndexT,
typename OutT>
263 void EndPointMDFull(IndexT
const& ind, OutT & out,
ZDT const& zd, std::string
const& additional =
"\n")
266 out << data.path_index <<
'\n'
267 << data.solution_index <<
'\n'
268 << data.condition_number <<
'\n'
269 << data.function_residual <<
'\n'
270 << data.newton_residual <<
'\n';
272 out <<
'\n' << data.max_precision_used <<
'\n';
275 out <<
'\n' << data.accuracy_estimate_internal_coords <<
'\n'
276 << data.accuracy_estimate_user_coords <<
'\n'
277 << data.cycle_num <<
'\n'
278 << data.multiplicity <<
'\n'
279 << data.pre_endgame_success_code <<
' ' << data.endgame_success_code <<
'\n';
286 template <
typename IndexT,
typename OutT>
288 void EndPointMDRaw(IndexT
const& ind, OutT & out,
ZDT const& zd, std::string
const& additional =
"\n")
292 out << data.path_index <<
'\n'
295 out << data.function_residual <<
'\n'
296 << data.condition_number <<
'\n'
297 << data.newton_residual <<
'\n';
299 out <<
'\n' << data.accuracy_estimate_internal_coords <<
'\n';
301 out <<
'\n' << data.cycle_num <<
'\n'
302 << data.endgame_success_code <<
'\n'
312template <
typename A,
typename B,
typename C>
322 template<
typename AlgoT>
330 const auto& s = alg.SolutionsUserCoords();
331 const auto& m = alg.SolutionMetadata();
332 const auto n = s.size();
333 for (
decltype(s.size()) ii{0}; ii<n; ++ii)
335 const auto& d = m[ii];
339 solns.push_back(s[ii]);
353 template<
typename AlgoT>
361 const auto& s = alg.SolutionsUserCoords();
362 const auto n = s.size();
363 for (
decltype(s.size()) ii{0}; ii<n; ++ii)
365 solns.push_back(s[ii]);
Provides the generators for bertini2.
Definition algorithm_base.hpp:34
Definition algorithm_builder.hpp:36
std::deque< Vec< T > > SampCont
Definition config.hpp:33
auto DefaultPrecision()
Get the global default precision (digits) for multiprecision numbers.
Definition mpfr_complex.hpp:135
@ Success
Definition config.hpp:51
unsigned Precision(Eigen::MatrixBase< Derived > const &v)
Get the precision of an Eigen object.
Definition eigen_extensions.hpp:339
Definition config.hpp:271
The continuation primitive: given a homotopy + a source of start points, track each path through the ...
Definition zero_dim_solve.hpp:546
SolnCont< Vec< BaseComplexT > > RealSolutions(bool user_coords=true, bool merge_multiplicities=false) const
The real finite solutions (is_real applies the configured tolerance).
Definition zero_dim_solve.hpp:1341
const auto & SolutionsInternalCoords() const
Get the computed solutions in the solver's internal coordinates: homogenized, and lying on the target...
Definition zero_dim_solve.hpp:1296
SolnCont< Vec< BaseComplexT > > NonsingularSolutions(bool user_coords=true, bool merge_multiplicities=false) const
The nonsingular finite solutions (simple, well-conditioned roots).
Definition zero_dim_solve.hpp:1348
const SystemType & TargetSystem() const
Definition zero_dim_solve.hpp:624
const SystemType & Homotopy() const
Definition zero_dim_solve.hpp:628
const StartSystemBaseT & StartSystem() const
Definition zero_dim_solve.hpp:626
const auto & SolutionsUserCoords() const
Get the computed solutions, in the coordinates of the user's original variables.
Definition zero_dim_solve.hpp:1263
SolnCont< Vec< BaseComplexT > > FiniteSolutions(bool user_coords=true, bool merge_multiplicities=false) const
The finite solutions: successful, finite endpoints that ARE solutions of the target (is_finite applie...
Definition zero_dim_solve.hpp:1334
const auto & SolutionMetadata() const
Get the metadat associated with the final computed solutions.
Definition zero_dim_solve.hpp:1392
SolnCont< Vec< BaseComplexT > > SingularSolutions(bool user_coords=true, bool merge_multiplicities=false) const
The singular finite solutions (multiple or ill-conditioned roots).
Definition zero_dim_solve.hpp:1355
The zero-dimensional solve algorithm: given a polynomial system, form a start system and a homotopy,...
Definition zero_dim_solve.hpp:3255
Extracts all solutions from a solver's results.
Definition output.hpp:350
static auto Extract(AlgoT const &alg)
Collect the user-coordinate points of every solution.
Definition output.hpp:355
HomotopySolver< A, B, C > ZDT
The solver type whose results are formatted.
Definition output.hpp:64
static void EndPointDehom(IndexT const &ind, OutT &out, ZDT const &zd, std::string const &additional="")
Write one endpoint in user (dehomogenized) coordinates.
Definition output.hpp:252
static void RawData(OutT &out, ZDT const &zd)
Write the "raw data" section (per-endpoint raw metadata and the target system).
Definition output.hpp:110
static void NonsingularSolutions(OutT &out, ZDT const &zd)
Write the nonsingular solutions as a classic solution list.
Definition output.hpp:160
static void RawSolutions(OutT &out, ZDT const &zd)
Write every successful raw endpoint, each tagged by its path number (Bertini 1 order).
Definition output.hpp:170
static void SingularSolutions(OutT &out, ZDT const &zd)
Write the singular solutions as a classic solution list.
Definition output.hpp:164
static void EndPointMDFull(IndexT const &ind, OutT &out, ZDT const &zd, std::string const &additional="\n")
Write one endpoint's full metadata block (main-data form).
Definition output.hpp:263
static void StartSystem(OutT &out, ZDT const &zd, std::string const &additional="\n")
Write the start system.
Definition output.hpp:227
static void MainData(OutT &out, ZDT const &zd)
Write the human-readable "main data" section (variables, endpoints, and systems).
Definition output.hpp:82
static void EndPointMDRaw(IndexT const &ind, OutT &out, ZDT const &zd, std::string const &additional="\n")
Write one endpoint's metadata block (raw-data form).
Definition output.hpp:288
static void SolutionList(OutT &out, SolListT const &sols)
Write a count-led, blank-line-separated list of solution points (Bertini 1.7 format).
Definition output.hpp:140
static void Homotopy(OutT &out, ZDT const &zd, std::string const &additional="\n")
Write the homotopy.
Definition output.hpp:235
static void EndPoint(IndexT const &ind, OutT &out, ZDT const &zd, std::string const &additional="")
Write one endpoint in internal (homogeneous) coordinates.
Definition output.hpp:243
static void FiniteSolutions(OutT &out, ZDT const &zd)
Write the finite solutions as a classic solution list.
Definition output.hpp:152
static void TargetSystem(OutT &out, ZDT const &zd, std::string const &additional="\n")
Write the target system.
Definition output.hpp:219
static void Variables(OutT &out, ZDT const &zd, std::string const &additional="\n")
Write the names of the target system's variables, in order.
Definition output.hpp:206
static void NumVariables(OutT &out, ZDT const &zd, std::string const &additional="\n")
Write the number of variables in the target system.
Definition output.hpp:196
static void All(OutT &out, ZDT const &zd)
Write both the main-data and raw-data sections.
Definition output.hpp:69
static void RealFiniteSolutions(OutT &out, ZDT const &zd)
Write the real finite solutions as a classic solution list.
Definition output.hpp:156
Extracts the nonsingular (multiplicity-one) solutions from a solver's results.
Definition output.hpp:319
static auto Extract(AlgoT const &alg)
Collect the user-coordinate points of every successful, multiplicity-one solution.
Definition output.hpp:324
Prints data from algorithms.
Definition output.hpp:46
static bool generate(OutputIterator sink, double const &c)
Emit a double as a classic-format complex (imaginary part zero).
Definition generators.hpp:117
Provides the algorithm for computing all zero-dimensional solutions for an algberaic system.