@@ -4,9 +4,16 @@ use std::f64::consts::TAU;
44#[ cfg( not( target_arch = "wasm32" ) ) ]
55use std:: path:: { Path , PathBuf } ;
66use std:: sync:: Arc ;
7+ #[ cfg( not( target_arch = "wasm32" ) ) ]
8+ use std:: sync:: atomic:: { AtomicBool , Ordering } ;
9+ #[ cfg( not( target_arch = "wasm32" ) ) ]
10+ use std:: sync:: mpsc:: { self , Receiver , TryRecvError } ;
711use std:: time:: Duration ;
812#[ cfg( not( target_arch = "wasm32" ) ) ]
913use std:: time:: Instant ;
14+ #[ cfg( target_arch = "wasm32" ) ]
15+ use std:: { cell:: RefCell , rc:: Rc } ;
16+
1017#[ cfg( target_arch = "wasm32" ) ]
1118use web_time:: Instant ;
1219
@@ -18,32 +25,26 @@ use egui_plot::{
1825 Points as PlotPointsItem , VLine ,
1926} ;
2027
21- mod bootstrap;
22- mod layout;
23- mod model_catalog;
24- mod panel_state;
25- mod point_layers;
26- mod state;
27- mod status;
28- mod style;
29- mod types;
30-
31- mod clipboard_import;
32- mod diagnostics;
33- mod file_import;
34- mod fit_worker;
35- mod formula;
36- mod i18n;
37- mod input_parse;
38- mod normalization;
39- mod optimizer;
40- mod param_init;
41- mod plot_utils;
42- mod points_state;
43- mod points_text;
44- mod replay;
45- mod result_export;
46- mod ui;
28+ use crate :: domain:: {
29+ AdamConfig , CurveFamily , CurveParams , DEFAULT_SATURATING_TREND_TAUS_YEARS , FitResult ,
30+ LbfgsConfig , MAX_RATIONAL_DEGREE , MAX_SATURATING_TREND_TAU_COUNT , MIN_RATIONAL_DEGREE ,
31+ MIN_SATURATING_TREND_TAU_COUNT , NelderMeadConfig , NewtonCgConfig , OptimizerConfig ,
32+ OptimizerMethod , Point , Points , SaturatingTrendTauGrid , SgdConfig , SteepestDescentConfig ,
33+ } ;
34+ #[ cfg( not( target_arch = "wasm32" ) ) ]
35+ use crate :: fit:: FitError ;
36+ use crate :: fit:: IterationMetricSnapshot ;
37+ use crate :: fit:: OptimizationLossMetric ;
38+ use crate :: fit:: {
39+ DEFAULT_METRIC_QUANTIZATION_DECIMAL_PLACES , MetricQuantization ,
40+ MetricQuantizationDecimalPlaces , SplineConfig , SplineDuplicateXPolicy , SplineExtrapolation ,
41+ SplineFamilyKind , SplineKnotStrategy , SplineResult , build_spline_initial_curve_from_knot_y,
42+ calculate_iteration_metrics_with_quantization, calculate_metrics_with_quantization,
43+ default_spline_initial_knot_y, sample_curve,
44+ } ;
45+ use crate :: fit:: {
46+ IncrementalFitRunner , IncrementalFitStep , IncrementalSplineFitRunner , IncrementalSplineFitStep ,
47+ } ;
4748
4849use self :: diagnostics:: { IterationDiagnostics , diagnostics_plot_y_axis_width} ;
4950use self :: formula:: model_formula_info;
@@ -92,7 +93,6 @@ use self::replay::ReplayState;
9293#[ cfg( test) ]
9394use self :: replay:: { ReplayFrame , ReplayFramePayload } ;
9495use self :: result_export:: FitExportRecord ;
95- pub use self :: state:: CurveFitApp ;
9696#[ cfg( not( target_arch = "wasm32" ) ) ]
9797use self :: state:: FitWorkerMessage ;
9898use self :: state:: { FitRunUiSeed , ParametricIterationTraceEntry , SplineIterationTraceEntry } ;
@@ -106,33 +106,35 @@ use self::types::{
106106 PlotTool , SampledCurveCache , SprayBrush , UiLanguage , params_to_input_strings,
107107 tau_grid_to_input_strings,
108108} ;
109- use crate :: domain:: {
110- AdamConfig , CurveFamily , CurveParams , DEFAULT_SATURATING_TREND_TAUS_YEARS , FitResult ,
111- LbfgsConfig , MAX_RATIONAL_DEGREE , MAX_SATURATING_TREND_TAU_COUNT , MIN_RATIONAL_DEGREE ,
112- MIN_SATURATING_TREND_TAU_COUNT , NelderMeadConfig , NewtonCgConfig , OptimizerConfig ,
113- OptimizerMethod , Point , Points , SaturatingTrendTauGrid , SgdConfig , SteepestDescentConfig ,
114- } ;
115- #[ cfg( not( target_arch = "wasm32" ) ) ]
116- use crate :: fit:: FitError ;
117- use crate :: fit:: IterationMetricSnapshot ;
118- use crate :: fit:: OptimizationLossMetric ;
119- use crate :: fit:: {
120- DEFAULT_METRIC_QUANTIZATION_DECIMAL_PLACES , MetricQuantization ,
121- MetricQuantizationDecimalPlaces , SplineConfig , SplineDuplicateXPolicy , SplineExtrapolation ,
122- SplineFamilyKind , SplineKnotStrategy , SplineResult , build_spline_initial_curve_from_knot_y,
123- calculate_iteration_metrics_with_quantization, calculate_metrics_with_quantization,
124- default_spline_initial_knot_y, sample_curve,
125- } ;
126- use crate :: fit:: {
127- IncrementalFitRunner , IncrementalFitStep , IncrementalSplineFitRunner , IncrementalSplineFitStep ,
128- } ;
129109
130- #[ cfg( not( target_arch = "wasm32" ) ) ]
131- use std:: sync:: atomic:: { AtomicBool , Ordering } ;
132- #[ cfg( not( target_arch = "wasm32" ) ) ]
133- use std:: sync:: mpsc:: { self , Receiver , TryRecvError } ;
134- #[ cfg( target_arch = "wasm32" ) ]
135- use std:: { cell:: RefCell , rc:: Rc } ;
110+ pub use self :: state:: CurveFitApp ;
111+
112+ mod bootstrap;
113+ mod layout;
114+ mod model_catalog;
115+ mod panel_state;
116+ mod point_layers;
117+ mod state;
118+ mod status;
119+ mod style;
120+ mod types;
121+
122+ mod clipboard_import;
123+ mod diagnostics;
124+ mod file_import;
125+ mod fit_worker;
126+ mod formula;
127+ mod i18n;
128+ mod input_parse;
129+ mod normalization;
130+ mod optimizer;
131+ mod param_init;
132+ mod plot_utils;
133+ mod points_state;
134+ mod points_text;
135+ mod replay;
136+ mod result_export;
137+ mod ui;
136138
137139const PARAMETRIC_PLOT_SAMPLES : usize = 200 ;
138140const C1_MIN : f64 = 1e-8 ;
0 commit comments