Changelog
Changelog
Section titled “Changelog”This changelog includes end-user changes only. For internal development notes, see the repository changelog.
- Added
OnlineLoess.add_point_vector()for multivariate Online point updates. - Added
version()to report the WASM binding package version. - Added
cvto the Batch options interface for grouped cross-validation configuration alongside legacy fields. - Added
outputsarrays to Batch, Streaming, Online, and prediction options for grouped optional result selection. - Added
retain_modelandLoessResult.predict(newX, options)for out-of-sample prediction. - Added
return_gradienttoSmoothOptions,StreamingOptions, andOnlineOptions. - Added
confidence_intervals/prediction_intervals/return_seto Streaming and Online options; Online requiresupdate_mode: "full". Added the correspondingOnlineOutputbound fields and TypeScript types.
Changed
Section titled “Changed”- Clarified Batch
residual_sdas1.4826 * MAD; Streaming reports the cumulative sample standard deviation of emitted residuals. - Breaking change: replaced individual
return_*output booleans withoutputs: [...]for Batch, Streaming, Online, and prediction options. - Breaking change: replaced flat interval options and prediction levels with
intervals: { confidence, prediction }; CV uses onlycv: { fractions, method, k }with an outerseed, replacing flat CV options andcv.seed. Legacy and unknown option keys are rejected.
-
Use the fitted model’s kernel for unweighted, unpadded one-dimensional linear prediction standard errors without robustness downweighting, with smoothing influence rows and global residual degrees of freedom, including interpolation; align prediction-interval residual scales.
-
Correct tied-coordinate interpolation splits and normalized cell geometry, add two-dimensional neighboring-edge blending, and match R’s neighborhood rounding near integer span boundaries.
-
Preserve zero interpolation subdivision thresholds to match R’s small-span cell trees, retaining terminal observation vertices and correcting interpolated fits on small datasets.
-
Normalize local case weights by their neighborhood maximum so common scaling cannot turn valid positive weights into an epsilon-triggered unweighted fallback.
-
Prevented overflow in even medians, mean/bisquare scales, Batch/Streaming diagnostics and AIC, and local/all-tied weight sums for large finite inputs.
-
Restored TypeScript declarations for retained prediction and weighted Streaming, documented and validated the JavaScript-safe CV seed range, and strengthened interval output assertions.
-
Validate case-weight lengths and values before dropping missing observations, so invalid weights on dropped rows are not silently ignored.
-
Preserve case weights through sorted CV training subsets and multidimensional predictions. Serial and parallel CV now agree on seeded folds and held-out LOOCV predictions; K-fold counts above the retained observation count are rejected.
-
Reject non-positive or non-finite Streaming/Online auto-convergence tolerances. Online auto-convergence requires full updates with robustness iterations.
-
Include all observations for Gaussian smoothing and prediction while preserving the k-th-neighbor bandwidth; use the true exponential without an artificial tail floor.
-
Correct case-weighted standard errors for direct, unpadded one-dimensional linear fits and retained prediction, with matching serial/parallel local moments. Span-one fits no longer substitute a kernel-free global OLS formula.
-
Honor configured zero-weight fallback policies in constant-degree, zero-bandwidth, insufficient-neighbor, and coefficient-fit paths.
-
Match R LOESS’s even-sample bisquare MAR scale arithmetic, including extremely small residuals, while preserving the centered-MAD fallback.
-
Aligned
OnlineLoessdefaults across the Rust core and bindings:iterationsis now0with the defaultupdate_mode = "incremental"; positive robustness iterations requireupdate_mode = "full". -
Reject unknown option keys and mode-inappropriate output names; return owned typed-array copies that remain valid after freeing result owners.
- Fixed the generated
onlineoptions.mdTypeDoc page stating stale defaults (min_points: 3,update_mode: "full") that no longer matched the already-correct source.
- Added a GitHub Pages landing page at the repository root, built from
README.mdvia pandoc and deployed bydocs.yml.
Changed
Section titled “Changed”- Updated the WASM README to be binding-specific instead of using a generic README shared across bindings.
- Moved WASM documentation to GitHub Pages, served by Starlight at https://thisisamirv.github.io/loess-project/wasm/.
- Fixed
.cargo/config.tomlhardcoding absolutec:/rtools45/...paths for thex86_64-pc-windows-gnulinker and ar tool; it now uses bare tool names resolved viaPATH.
- Fixed
OnlineLoess.add_point()returningundefinedinstead ofnullwhen the sliding window has not yet accumulated enough points.
Changed
Section titled “Changed”- Moved the
tutorials/pages into a newuser-guide/use-cases/section. - Split
StreamingLoess/OnlineLoesscontent into dedicated API reference pages and standardized API examples with expected output comments. - Breaking: Renamed
OnlineOutput’ssmoothedandstd_errorgetters toyandstandard_error.
-
Added the WebAssembly binding.
-
Added weighted Streaming/Online updates, Online window diagnostics, and prediction from the current window.