← Back to all sparks
S

slope

ANALYTICS
Velocity0.0

R package slope by jolars — release notes from GitHub.

A year after gutting itself for a C++ rewrite, SLOPE is back to polishing the interface

sparse-regressionpenalized-modelscppr-packagecross-validation
Current state
SLOPE fits sorted L-one penalized regression models. In July 2025 it replaced its entire solver with the external libslope C++ library, removing the ADMM solver, dropping debugging fields, changing alpha scaling and warning users directly that the breakage was extensive. The releases since have rebuilt convenience on top of that core: summary() and refit() methods for cross-validated objects, automatic refitting in cvSLOPE(), and a threading default reduced from half the available cores to one.
Where it's heading
The arc runs rewrite, then repair, then convenience. The 1.2.0 release is the repair phase — coefficients_scaled was returning unscaled values, which silently affected every coef.SLOPE() call — and 2.0.0 onward is convenience, with refit() now working without re-supplying training data. The tag timestamps are non-monotonic: 1.0.1 is stamped a minute after 1.1.0 despite the lower version, so ordering here reflects when tags were pushed, not what superseded what.
Prediction
With the cross-validation workflow now closing itself out through automatic refitting, further work is more likely to extend the summary and plotting surface than to touch the solver again.

Recent moves

  1. 2mo ago

    refit() defaults to training data; class-mismatch scoring fixed

    refit() can now be called without supplying x and y, defaulting to the training data — removing a step that made the cross-validation workflow more awkward than it needed to be. score() is fixed for the case where training and test classes do not match, which arises when scoring on a subset.

    View source ↗
  2. 6mo ago

    Cross-validation now refits automatically and gains summary methods

    cvSLOPE() now automatically refits on the full dataset with the optimal parameters and stores the model, and TrainedSLOPE objects gain summary() and refit() methods. A breaking change puts intercepts inside the coefficient matrix list when simplify is FALSE.

    View source ↗
  3. 9mo ago

    Single-threaded by default, interruptible, and a scaling bug fixed

    The threading default drops from half the available cores to one, curbing runaway CPU use on many-core systems, and the C++ routine becomes interruptible from R. The release also fixes coefficients_scaled, which had been returning unscaled coefficients and propagating that through coef.SLOPE().

    View source ↗
  4. 9mo ago

    M1 Mac test fix

    A platform-specific test fix for M1 Mac. Note this tag carries a timestamp a minute later than 1.1.0 despite the lower version number.

    View source ↗
  5. 9mo ago

    Glioma gene expression dataset added

    Adds a glioma gene expression dataset with patient and healthy control samples, giving the package a realistic high-dimensional example to document against.

    View source ↗
  6. 1y ago

    SLOPE 1.0.0

    ⚡ SPARK

    The solver is replaced entirely with the external libslope C++ library. The ADMM solver is removed, prox_method and method arguments are gone, alpha is now scaled by n regardless of scaling type, coefficients return as a list of sparse matrices, and debugging fields disappear. The release notes open by acknowledging the disruption and asking for patience.

    View source ↗