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
- 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 ↗ - 6mo ago
Arbitrary-order exact derivatives arrive; compiled code removed
⚡ SPARKThe 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 ↗ - 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 ↗