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

Emit a System (and, with a config, a whole solve) as a Bertini 1 classic input file. More...

#include "bertini2/system/system.hpp"
#include "bertini2/function_tree/find.hpp"
#include "bertini2/trackers/config.hpp"
#include <ostream>
#include <sstream>
#include <iomanip>
#include <string>
#include <vector>
Include dependency graph for classic_writer.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  bertini::classic::ClassicWriteOptions
 Tracking / precision settings to emit in the CONFIG section, in Bertini 1 terms. More...

Namespaces

namespace  bertini
namespace  bertini::classic

Functions

void bertini::classic::EmitSystem (std::ostream &out, System const &sys)
 Emit the INPUT-section body of a system in classic syntax: the variable groups, any named subexpressions (as name = expr; subfunctions, defined before the functions that use them), and the functions (function f0,f1,...; then f0 = ...;).
std::string bertini::classic::SystemToClassic (System const &sys)
 The INPUT-section body as a string.
int bertini::classic::PredictorToClassic (tracking::Predictor p)
 Map a Bertini 2 Predictor to its Bertini 1 classic odepredictor integer.
void bertini::classic::EmitConfig (std::ostream &out, System const &sys, ClassicWriteOptions const &opt)
 Emit the CONFIG-section body (no CONFIG/END wrapper).
void bertini::classic::WriteClassicInput (std::ostream &out, System const &sys, ClassicWriteOptions const &opt=ClassicWriteOptions{})
 Write a complete Bertini 1 classic input file: CONFIG ... END;\nINPUT ... END;.
std::string bertini::classic::SystemToClassicFile (System const &sys, ClassicWriteOptions const &opt=ClassicWriteOptions{})
 The complete classic input file as a string.

Detailed Description

Emit a System (and, with a config, a whole solve) as a Bertini 1 classic input file.

The classic parser (io/parsing) reads Bertini 1 input files; this is its inverse. Emitting a CONFIG ... END;\nINPUT ... END; file lets the same problem be run in Bertini 1 for cross-validation – e.g. to check whether a path-crossing or a root count reproduces across implementations (modulo each one's random start system).

The emitted text is round-trip-safe: parsing it back with bertini::System's classic constructor yields an equivalent system.