← Back to all sparks
N

nabla

ANALYTICS
Velocity0.0

Exact Derivatives via Automatic Differentiation

nabla dropped its C++ engine to chase exact derivatives at any order.

automatic-differentiationdual-numberspure-rpackage-renamecran
Current state
nabla does forward-mode automatic differentiation in R using dual numbers, returning derivatives exact to machine precision rather than approximated by finite differences. It shipped as dualr in January 2026, then a day later released 0.5.0 under a changed identity: derivatives generalise from a hardcoded second order to arbitrary order through recursive nesting, and the Rcpp and C++ fast paths are deleted so the package is pure R. The current release, 0.7.1, is CRAN resubmission cleanup.
Where it's heading
The 0.5.0 release note states the positioning explicitly: exact machine-precision derivatives at any order, not speed. Removing compiled code to make that claim coherent is an unusual direction, most numerical R packages move the other way, and it commits the package to a niche where correctness beats throughput. The old second-order API survives as deprecated thin wrappers, so the pivot was made without stranding early users. The rapid rename and version jump suggest identity was settled late.
Prediction
Expect CRAN acceptance to be followed by work on the optimiser and MLE integration paths, where arbitrary-order derivatives have the clearest use.

Recent moves

  1. 5mo ago

    CRAN resubmission cleanup after reviewer feedback

    Addresses CRAN reviewer comments on examples, DESCRIPTION wording, par() restoration and superassignment in vignettes. Submission mechanics following the 0.5.0 redesign.

    View source ↗
  2. 6mo ago

    Arbitrary-order exact derivatives arrive; compiled code removed

    ⚡ SPARK

    The release that defines what the package is for, one day after its first. Generalising past second order and deleting the C++ paths are the same decision viewed twice: correctness at any order is the product, speed is not.

    View source ↗
  3. 6mo ago

    First release as dualr: dual-number autodiff with MLE helpers

    The initial release under the earlier name dualr, with an S4 dual class, second-order nesting, score and Hessian helpers, and four vignettes. Superseded a day later by the 0.5.0 redesign and rename.

    View source ↗