------------------------------------------------------------------------
RTMB 1.9 (2026-03-20)
------------------------------------------------------------------------

o Special functions have been added:
  dchisq(), pchisq(), qchisq(),
  pnorm() now supports all arguments (i.e. 'log.p' and 'lower.tail').

o Special functions now pass argument attributes on to the result.

o New autodiff features:
  - AD adaptive integration via integrate().
  - AD root finding via uniroot().
  - Fast AD version of Vectorize().
  - Atomic sparse matrix times vector available via TapeConfig().
  - Experimental atomic branching via ADoverload('if').
  - AD order() now works.

o Change default to TapeConfig(matmul='plain') because 'atomic' could
  slow down too many examples.

o New 'tips' vignette.

------------------------------------------------------------------------
RTMB 1.8 (2025-10-13)
------------------------------------------------------------------------

o Special functions have been added:
  pnbinom(), lbeta(), dcauchy()

o Special functions have been improved:
  Add 'expon.scaled' argument to Bessel functions. dmvnorm() now allows zero-dim covariance. Fixed dgamma() rate argument.

o Some discrete methods now work with autodiff:
  Modulus ('%%'), sort(), findInterval() and taped subsetting by an AD index using '['.
  Math group: Added floor, ceiling, trunc.

o Improved splinefun():
  Spline derivatives have been generalized to work for *all* parts of the spline including evaluation pooints and knots.
  In addition, the spline object now has a 'deriv' argument (like stats).

o Methods that now work for 'adsparse' class:
  band(), tril(), triu(), kronecker().

o Sparse matrix exponential expAv() now applies internal rescaling to gain robustness.
  In addition, caching can now improve memory efficiency when the same generator is used multiple times.

o New methods for the 'Tape' class:
  reorder(), timer(), force.update().

o MakeADFun: Model object now has a force.update() method for better interoperability with the DataEval() function.
  An example is given on the '?DataEval' help page.

o RTMB can now be built with preprocessor flag 'EIGEN_USE_BLAS' enabled.

o ADjoint() no longer crashes by errors thrown by user's forward or reverse mode code.
