Janus 2.0.0
High-performance C++20 dual-mode numerical framework
Loading...
Searching...
No Matches
Scaling.hpp
Go to the documentation of this file.
1
5
6#pragma once
7
8#include <optional>
9#include <string>
10#include <vector>
11
12namespace janus {
13
24
34
44
61
66 int block_index = -1;
67 int size = 0;
68 std::string category = "Uncategorized";
69 bool frozen = false;
70 bool user_supplied_scale = false;
71 double scale = 1.0;
72 double init_abs_mean = 0.0;
73 double init_abs_max = 0.0;
76 std::optional<double> lower_bound;
77 std::optional<double> upper_bound;
78 double suggested_scale = 1.0;
79};
80
85 int row = -1;
86 bool has_lower_bound = false;
87 bool has_upper_bound = false;
88 bool equality = false;
89 double lower_bound = 0.0;
90 double upper_bound = 0.0;
91 double value_at_initial = 0.0;
92 double scale = 1.0;
95 double suggested_scale = 1.0;
96};
97
102 bool configured = false;
103 bool maximize = false;
105 double value_at_initial = 0.0;
106 double scale = 1.0;
107 double normalized_value = 0.0;
108 double suggested_scale = 1.0;
109};
110
123
132 std::vector<VariableScalingInfo> variables;
133 std::vector<ConstraintScalingInfo> constraints;
134 std::vector<ScalingIssue> issues;
135
138 bool has_issues() const { return !issues.empty(); }
139};
140
141} // namespace janus
Definition Diagnostics.hpp:19
ScalingIssueLevel
Severity used by Opti scaling diagnostics.
Definition Scaling.hpp:20
@ Warning
Potential scaling concern.
Definition Scaling.hpp:21
@ Critical
Severe scaling issue likely to cause solver failure.
Definition Scaling.hpp:22
ScalingIssueKind
Diagnostic category for a scaling issue.
Definition Scaling.hpp:28
@ Summary
Aggregate issue across the problem.
Definition Scaling.hpp:32
@ Objective
Issue with objective scaling.
Definition Scaling.hpp:31
@ Variable
Issue with variable scaling.
Definition Scaling.hpp:29
@ Constraint
Issue with constraint scaling.
Definition Scaling.hpp:30
Scaling metadata for one scalarized constraint row.
Definition Scaling.hpp:84
bool has_lower_bound
Definition Scaling.hpp:86
double value_at_initial
Definition Scaling.hpp:91
double normalized_magnitude
Definition Scaling.hpp:93
int row
Definition Scaling.hpp:85
double normalized_violation
Definition Scaling.hpp:94
double suggested_scale
Definition Scaling.hpp:95
double scale
Definition Scaling.hpp:92
double lower_bound
Definition Scaling.hpp:89
bool has_upper_bound
Definition Scaling.hpp:87
double upper_bound
Definition Scaling.hpp:90
bool equality
Definition Scaling.hpp:88
Scaling metadata for the current objective.
Definition Scaling.hpp:101
double scale
Definition Scaling.hpp:106
double normalized_value
Definition Scaling.hpp:107
double suggested_scale
Definition Scaling.hpp:108
bool maximize
Definition Scaling.hpp:103
double value_at_initial
Definition Scaling.hpp:105
bool configured
Definition Scaling.hpp:102
bool user_supplied_scale
Definition Scaling.hpp:104
Thresholds controlling Opti scaling diagnostics.
Definition Scaling.hpp:38
double variable_scale_ratio_warn
Warn when max(scale) / min(scale) exceeds this.
Definition Scaling.hpp:42
double normalized_low_warn
Warn when |value| / scale falls below this.
Definition Scaling.hpp:39
double normalized_high_warn
Warn when |value| / scale exceeds this.
Definition Scaling.hpp:40
double normalized_high_critical
Escalate to critical beyond this.
Definition Scaling.hpp:41
One diagnostic item produced by Opti::analyze_scaling().
Definition Scaling.hpp:50
int index
Variable block index or constraint row.
Definition Scaling.hpp:53
ScalingIssueKind kind
Definition Scaling.hpp:52
std::string label
Human-readable identifier.
Definition Scaling.hpp:54
std::string message
Explanation and suggested action.
Definition Scaling.hpp:55
ScalingIssueLevel level
Definition Scaling.hpp:51
double raw_magnitude
Magnitude in physical units.
Definition Scaling.hpp:56
double applied_scale
Current scale.
Definition Scaling.hpp:57
double suggested_scale
Heuristic recommendation.
Definition Scaling.hpp:59
double normalized_magnitude
|raw| / scale
Definition Scaling.hpp:58
Aggregate result returned by Opti::analyze_scaling().
Definition Scaling.hpp:129
ScalingSummary summary
Top-level numeric summary.
Definition Scaling.hpp:130
std::vector< VariableScalingInfo > variables
Per-variable-block metadata.
Definition Scaling.hpp:132
ObjectiveScalingInfo objective
Objective scaling metadata.
Definition Scaling.hpp:131
std::vector< ConstraintScalingInfo > constraints
Per-constraint-row metadata.
Definition Scaling.hpp:133
bool has_issues() const
Check if any scaling issues were detected.
Definition Scaling.hpp:138
std::vector< ScalingIssue > issues
Detected scaling issues.
Definition Scaling.hpp:134
Top-level scalar summary for an Opti scaling report.
Definition Scaling.hpp:114
int variable_blocks
Definition Scaling.hpp:115
double max_variable_scale
Definition Scaling.hpp:120
int scalar_constraints
Definition Scaling.hpp:116
int jacobian_nnz
Definition Scaling.hpp:117
double min_variable_scale
Definition Scaling.hpp:119
double jacobian_density
Definition Scaling.hpp:118
double variable_scale_ratio
Definition Scaling.hpp:121
Scaling metadata for one declared variable block.
Definition Scaling.hpp:65
double normalized_init_abs_mean
Definition Scaling.hpp:74
double suggested_scale
Definition Scaling.hpp:78
bool user_supplied_scale
Definition Scaling.hpp:70
std::optional< double > upper_bound
Definition Scaling.hpp:77
double normalized_init_abs_max
Definition Scaling.hpp:75
int size
Definition Scaling.hpp:67
double init_abs_max
Definition Scaling.hpp:73
double scale
Definition Scaling.hpp:71
std::string category
Definition Scaling.hpp:68
std::optional< double > lower_bound
Definition Scaling.hpp:76
int block_index
Definition Scaling.hpp:66
bool frozen
Definition Scaling.hpp:69
double init_abs_mean
Definition Scaling.hpp:72