← Back to all sparks
R

robscale

INFRA · APIS
Velocity0.0

Accelerated Estimation of Robust Location and Scale

A robust-statistics package rewrote its estimators in SIMD C++ and went to CRAN in two weeks.

robust-statisticssimdperformancecranrcpp
Current state
robscale computes robust scale and location estimators, and its pitch is speed: 21 to 26 times faster than stats::mad, 37 times faster than stats::IQR on small samples, with comparable margins over robustbase for Qn and Sn. The March 2026 releases took it from a GitHub project to a CRAN package carrying eleven estimators, all with confidence intervals.
Where it's heading
Three releases in a fortnight walk a clear line: expand the public API, submit to CRAN, then tune. The 0.5.4 work is where that tuning shows, and it is unusually specific about hardware, raising sorting-network thresholds after benchmarking and dropping the AVX-512 path entirely in favour of a shorter AVX2-first dispatch chain. The build-fix lists are long, which is what a package fighting compiler and TBB variation across CRAN's platforms looks like.
Prediction
The dispatch hierarchy has been simplified once already; further releases most likely continue narrowing the SIMD surface and hardening the configure step rather than adding estimators. A new estimator would be the surprise.

Recent moves

  1. 4mo ago

    SIMD median networks land; AVX-512 dispatch is dropped

    The tuning pass after the CRAN submission. Hybrid SIMD selection networks make median dispatch 23 to 58 percent faster, sorting and median network thresholds are raised well above their previous values after benchmarking, and ensemble bootstrapping now parallelises from two cores up. The AVX-512 tanh path is removed, shortening the dispatch chain to Accelerate, libmvec, SLEEF, OpenMP, scalar.

    View source ↗
  2. 4mo ago

    CRAN submission ships 11 robust estimators with bootstrap intervals

    ⚡ SPARK

    The release that makes robscale a publishable alternative to the incumbents rather than a fast local implementation: eleven estimators with confidence intervals, BCa bootstrap intervals across all of them, Newton-Raphson replacing scoring iteration, and validation moved entirely into C++.

    View source ↗
  3. 5mo ago

    scale_robust() dispatcher and four new estimators join the public API

    The pre-CRAN release that laid out the API the submission would ship. scale_robust() picks between the weighted ensemble and Gini Mean Difference by sample size, gmd(), iqr_scaled(), mad_scaled() and sd_c4() become public, and ci = TRUE appears on every estimator. Runtime SIMD dispatch is refined across AVX2/FMA and ARM64 NEON.

    View source ↗