gtopt::LpMatrixOptions struct

Configuration options for converting to flat LP representation.

Public functions

auto merge(const LpMatrixOptions& other) -> void

Public variables

bool col_with_name_map
Include column name mapping (level >= 1)
bool col_with_names
Include column names (state vars at level 0)
OptBool compute_stats
Compute coefficient min/max/ratio.
double eps
std::optional<LpEquilibrationMethod> equilibration_method
OptReal lp_coeff_ratio_threshold
LP coefficient ratio threshold for numerical conditioning diagnostics. When the global max/min |coefficient| ratio exceeds this value, a per-scene/phase breakdown is printed. (default: 1e7)
LpNamesLevel lp_names_level
bool move_names
Move instead of copy names.
std::optional<LpNamesLevel> names_level
LP naming level (user-facing JSON/CLI option).
bool row_with_name_map
Include row name mapping.
bool row_with_names
Include row names (level >= 1)
std::string solver_name
Solver backend name (empty = auto-detect)
double stats_eps

Function documentation

void gtopt::LpMatrixOptions::merge(const LpMatrixOptions& other)

Merge optional fields from another LpMatrixOptions. Non-optional fields (eps, col_with_names, etc.) are not merged — first-value-wins semantics like SolverOptions.

Variable documentation

double gtopt::LpMatrixOptions::eps

Coefficient epsilon: |v| <= eps is treated as zero. If negative, no filtering is applied.

std::optional<LpEquilibrationMethod> gtopt::LpMatrixOptions::equilibration_method

Matrix equilibration method. See LpEquilibrationMethod for options. Default is none (no scaling).

LpNamesLevel gtopt::LpMatrixOptions::lp_names_level

Computed naming level (internal)

std::optional<LpNamesLevel> gtopt::LpMatrixOptions::names_level

LP naming level (user-facing JSON/CLI option).

  • minimal: State-variable column names only (default).
  • only_cols: All column names + name-to-index maps.
  • cols_and_rows: Column + row names + maps + warn on duplicates.

Accepts integer (0/1/2) or string name in JSON.

double gtopt::LpMatrixOptions::stats_eps

Minimum |coefficient| tracked in stats min/max. Applied in addition to eps: only values with |v| > max(eps, stats_eps) update stats_min_abs. Defaults to 1e-10 for consistency with external LP analysis tools.