Added prebuilt GPU library release jobs and installer selection for Linux ARM64, musl/Alpine x86_64 and ARM64, and Windows ARM64.
Enabled the optional wgpu DirectX 12 backend for GPU-enabled Windows builds. DXC is loaded dynamically with an FXC fallback, avoiding eager imports of dxcompiler.dll and dxil.dll.
Added GLES for Android GPU builds with a target-scoped wgpu feature; Windows continues to omit the GLES-only loader imports.
Added cv_opts() to configure grouped cross-validation options for Lowess(cv = ...).
Added an “Alternative Software” vignette comparing rfastlowess with stats::lowess().
Changed
Clarified that Batch residual_sd is 1.4826 * MAD, while Streaming reports the cumulative sample standard deviation of emitted residuals.
Breaking change: replaced individual return_* arguments with grouped outputs, and replaced Lowess()’s four cv_* arguments with cv = cv_opts(...).
Breaking change: replaced confidence_intervals/prediction_intervals (and predict()’s confidence_level/prediction_level) with intervals = intervals_opts(confidence, prediction, bootstrap), and moved the cross-validation seed from cv_opts(seed = ...) to a shared seed argument.
Represent unavailable diagnostic metrics as R NA rather than generic NaN values.
Fixed
Fixed CPU Gaussian standard errors for fitted and queried values to use the full unbounded kernel support.
Made even-sample medians and mean-absolute residual scaling overflow-resistant for large finite values, and centered Batch/Streaming R-squared accumulation to preserve one-ULP response variation at large offsets.
Made Batch RMSE, MAE, and R-squared reductions scale-safe for large finite values, preserved bisquare downweighting when tuned scales exceed the numeric range, and normalized custom weights before summation in local and all-tied fits.
Kept AIC finite when raw residual-square sums overflow, and made local/all-tied WLS invariant to common scaling of large finite case weights.
Reject unused constructor options, factors/multidimensional inputs, and malformed grouped options. Keep GPU sidecars mapped for live model finalizers, try older valid sidecars, verify native ABI/version and argument counts, bound candidate probes, and check download SHA-256 digests before execution.
Validate Streaming/Online iterations and plain-list CV fold counts before coercion, and accept integer custom weights.
Detect R’s linked libc, confirm local GPU installs before probing candidates, use canonical library filenames, and activate versioned Windows GPU sidecars on restart without replacing loaded DLLs.
Fixed global OLS fits treating predictor values with a large offset as degenerate; translated inputs now retain their fitted slope.
Fixed fraction-1 global fits ignoring custom weights, including when Batch sorts observations by x.
Fixed Batch missing = "drop" accepting custom weights with a length different from the original input; weights are validated before rows are dropped.
Fixed standard errors for global weighted fits to account for observation weights and weighted prediction leverage.
Fixed local Batch and retained-model prediction standard errors ignoring custom_weights; local SE moments now include the per-observation case weights.
Fixed global fits with all-zero custom weights to honor the configured zero-weight fallback policy.
Fixed fraction-1 global fits ignoring configured robustness iterations; they now reweight observations and report iterations used.
Fixed Batch cross-validation candidate fits ignoring custom_weights; K-fold CV now rejects more folds than observations instead of returning zero scores.
Fixed Streaming and Online accepting invalid auto_converge tolerances; Online also rejects invalid explicit delta values while retaining NaN as its default sentinel.
Fixed GPU Batch fits misaligning fitted values with unsorted inputs; results now preserve input and requested sorted order.
Fixed GPU Batch silently ignoring custom_weights; GPU fit and CV candidate kernels now apply them directly.
Reduced GPU adapter buffer requirements from 30 storage/32 total buffer bindings to 7 storage/8 total per shader stage by using per-compute-pipeline resource layouts.
Fixed Online incremental mode accepting positive delta and auto_converge settings it cannot use; unsupported combinations now error.
Fixed grouped intervals discarding distinct confidence and prediction levels; each requested coverage is now applied independently.
Fixed the default boundary_policy ("extend") letting synthetic boundary points bias the shared robustness scale estimate used to reweight every point, compounding across robustness iterations.
Improved agreement with R/Cleveland on sparse, asymmetric, and high-iteration fits by aligning robustness stopping, local-linear degeneracy handling, neighborhood traversal, delta interpolation, and weighted accumulation.
Fixed zero-radius neighborhoods dropping tied observations or accumulating normalized weights in a different order under robust fits.
Fixed Gaussian fits clipping the unbounded kernel to the neighbor window and flooring far-tail weights; all observations now contribute under the standard Gaussian formula.
Reject fractional integer/count options and validate GPU candidate libraries and supported prebuilt targets; refuse in-place overwrite when atomic replacement fails.
rfastlowess 4.1.0
Added
Added retain_model and predict.Lowess() for out-of-sample prediction.
Added support for installing a locally built GPU artifact with install_gpu().
Changed
Breaking change: removed return_diagnostics, return_residuals, and parallel from the OnlineLowess() constructor; these options had no effect in online mode.
Breaking change: removed confidence_intervals and prediction_intervals from OnlineLowess() and StreamingLowess() constructors because those options were not computed.
Breaking change: the streaming overlap default now resolves dynamically to chunk_size / 10, clamped to [1, chunk_size - 10], instead of a fixed 500.
Improved the R API documentation, including the overlap default.
Fixed
Fixed the real-time vignette example failing with two data points by aligning its minimum point count with the library’s minimum of two.
Fixed install_gpu() replacing a loaded shared library in place; it now installs through a temporary file and atomic rename.
rfastlowess 3.2.1
Changed
Clarified that results are returned in input order, even though the algorithm sorts internally.
rfastlowess 3.2.0
Changed
Expanded and reorganized the R documentation with parameter guidance, examples, and clearer adapter-selection advice.
Fixed
Corrected the OnlineLowess() defaults to min_points = 2L and update_mode = "incremental".
Corrected the Handling Outliers example to use a fraction that downweights the injected outlier.
Improved the Online, streaming, merge, robustness, and use-case examples so they show representative output and run successfully.
rfastlowess 3.1.0
Changed
Moved R documentation to GitHub Pages using pkgdown and updated the README with package-specific guidance.
Lowered the minimum supported R version to 4.4.0.
Fixed
Fixed extra positional arguments being accepted outside the initial positional argument; constructors now reject unnamed arguments in later positions.
rfastlowess 3.0.0
Added
Added an opt-in GPU backend through the gpu Cargo feature and install_gpu() to download a prebuilt GPU library; using it requires restarting R.
Organized Streaming and Online API documentation and tutorials into dedicated user-guide pages.
rfastlowess 2.0.0
Added
Added custom_weights to batch fitting for non-negative per-observation weights.
Changed
Breaking change: replaced vector-based OnlineLowess()$add_points(x, y) with scalar add_point(x, y), which processes one point at a time and returns NULL until enough points are available.
rfastlowess 1.3.0
Fixed
Registered the extendr panic hook so Rust panics are reported as R errors instead of crashing the R session.
rfastlowess 1.2.0
Added
Added print() and plot() examples for LowessResult objects.
rfastlowess 1.1.2
Under-the-hood maintenance; no changes to the public API or runtime behavior.
rfastlowess 1.1.1
Fixed
Fixed GPU configuration and initialization problems, and improved recovery after missing hardware/drivers or earlier GPU execution errors.
rfastlowess 1.1.0
Added
Expanded GPU fitting support to selectable kernels, robustness and scaling methods, boundary policies, automatic convergence, prediction, and cross-validation.
Fixed
Fixed the Extend boundary policy not being applied and improved numerical precision through coordinate centering.
Fixed GPU integer overflow, initialization failures, and resource exhaustion.
rfastlowess 1.0.0
Added
Added the mean scaling method (Mean Absolute Deviation).
Added print() and plot() methods for LowessResult objects.
Changed
Breaking change: returned LowessResult S3 objects instead of raw vectors.
rfastlowess 0.99.9
Added
Made the package available on conda-forge as r-rfastlowess.
Changed
Introduced class-based builders for streaming and online processing.
rfastlowess 0.99.8
Under-the-hood maintenance; no changes to the public API or runtime behavior.
rfastlowess 0.99.7
Fixed
Fixed links in the shared project README.
rfastlowess 0.99.6
Fixed
Fixed formatting and links in the shared project README.
rfastlowess 0.99.5
Changed
Reduced the published package size by excluding development-only files.
rfastlowess 0.99.2
Added
Added a pkgdown documentation site and examples for exported functions.
Added input validation for exported functions.
Changed
Breaking change: renamed exported functions to avoid conflicts with base R.
Fixed
Fixed package startup messages.
rfastlowess 0.99.1
Changed
Prepared the R package for Bioconductor submission.
rfastlowess 0.99.0
Added
Added NoBoundary boundary handling and MAD/MAR scaling methods from fastLowess v0.4.0.
Changed
Changed the license from AGPL-3.0-or-later to dual MIT OR Apache-2.0.
rfastlowess 0.7.0
Added
Added NoBoundary handling and MAD/MAR scaling methods to the underlying LOWESS core.
Changed
Improved fitting and cross-validation performance through SIMD accumulation, reusable buffers, and optimized window and scale calculations.
rfastlowess 0.6.0
Added
Added a seed option for reproducible k-fold cross-validation.
Fixed
Fixed Batch and Streaming adapter conversion behavior in the LOWESS core.
rfastlowess 0.5.3
Changed
Improved fitting and cross-validation performance by optimizing sorting, window operations, robust scale estimation, regression, and delta interpolation.
rfastlowess 0.4.0
Added
Added support for fastLowess v0.4.0 fitting and cross-validation improvements.
Changed
Changed the license from AGPL-3.0-or-later to dual MIT OR Apache-2.0.
rfastlowess 0.3.0
Added
Added installation from R-universe without requiring Rust.
Changed
Updated the cross-validation API for fastLowess v0.3.0.
rfastlowess 0.2.0
Added
Added support for fastLowess v0.2.0 fitting improvements.