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

FullPathResult <-> track-record serialization (b2rec/1; the arc's rung 4). More...

#include <cstdio>
#include <cstdlib>
#include <string>
#include <boost/json.hpp>
#include "bertini2/num_traits.hpp"
#include "bertini2/parallel/path_result.hpp"
Include dependency graph for solver_recording.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  bertini
namespace  bertini::records

Functions

std::string bertini::records::ExactDoubleText (double v)
 A double as full-round-trip decimal text (%.17g: bit-exact per IEEE-754).
double bertini::records::DoubleFromText (std::string const &s)
 Parse a double written by ExactDoubleText (bit-exact round trip).
std::string bertini::records::EncodeRealScalar (double v)
 Encode one real scalar as text: doubles via %.17g; real_mp at full stored precision.
std::string bertini::records::EncodeRealScalar (real_mp const &v)
 Encode one multiprecision real scalar as full-precision decimal text.
boost::json::array bertini::records::EncodeComplexScalar (complex_dbl const &z)
 Encode one complex value as ["re", "im", precision] (precision in digits).
boost::json::array bertini::records::EncodeComplexScalar (complex_mp const &z)
 Encode one multiprecision complex value as ["re", "im", precision].
template<typename ComplexT>
ComplexT bertini::records::DecodeComplexScalar (boost::json::array const &triple)
 Decode a complex value written by EncodeComplexScalar, at its recorded precision.
template<>
complex_dbl bertini::records::DecodeComplexScalar< complex_dbl > (boost::json::array const &triple)
 Decode a double-precision complex value.
template<>
complex_mp bertini::records::DecodeComplexScalar< complex_mp > (boost::json::array const &triple)
 Decode a multiprecision complex value at its recorded precision.
template<typename ComplexT>
boost::json::array bertini::records::EncodePoint (Vec< ComplexT > const &point)
 Encode a point (vector of complex coordinates) as an array of scalar triples.
template<typename ComplexT>
Vec< ComplexT > bertini::records::DecodePoint (boost::json::array const &coords)
 Decode a point written by EncodePoint.
std::string bertini::records::CanonicalName (SuccessCode code)
 The fixed canonical name of a tracker/endgame SuccessCode, for the records.
std::string bertini::records::CoarsePathStatus (SuccessCode code)
 The coarse outcome of a path, from its endgame verdict: "success", "diverged" (the path went to infinity – a clean GoingToInfinity verdict, or the security check TRUNCATING it near infinity), or "failed" (the tracker gave up).
template<typename ComplexT>
boost::json::object bertini::records::EncodeFullPathResult (parallel::FullPathResult< ComplexT > const &r)
 Serialize one whole-path result as a b2rec/1 track record body.
template<typename ComplexT>
parallel::FullPathResult< ComplexT > bertini::records::DecodeFullPathResult (boost::json::object const &rec, std::size_t path_index)
 Reconstruct a whole-path result from a track record (the recall half).

Detailed Description

FullPathResult <-> track-record serialization (b2rec/1; the arc's rung 4).

The whole-path result (parallel/path_result.hpp) is the manager-side unit of completed work in every topology (serial / threaded / MPI): StoreFullPathResult is the single installation point. So a track record IS a serialized FullPathResult, and recall is decoding one and replaying it through the same installer – recalled solver state is identical to computed state BY CONSTRUCTION.

Scalar encodings are exact and human-readable: doubles as %.17g decimal (round-trips bit-exactly per IEEE-754), multiprecision values as full-precision decimal strings plus their precision. Points are the treasure – they stay readable.