← Back to all sparks
I

itp

ANALYTICS
Velocity0.0

The Interpolate, Truncate, Project (ITP) Root-Finding Algorithm

A single-algorithm root-finder that finished its job in 2022 and has been idling since

numerical-methodsroot-findingrcppcran-maintenancer-package
Current state
itp implements one thing: the Interpolate, Truncate, Project root-finding algorithm of Oliveira and Takahashi, which narrows a bracketing interval each iteration and keeps bisection's worst-case guarantee while converging faster on well-behaved functions. The package reached its intended shape within about six weeks of first release, gaining a C++ entry point and the ability to take C++ function pointers. Everything after mid-2022 is compiler and CRAN upkeep.
Where it's heading
The arc is short and complete. Three releases in June and July 2022 took the package from an R implementation to one that can run the whole algorithm in C++ and accept user-supplied C++ functions via Rcpp's external pointer framework. Since then the only releases have been reactions to Rcpp changes that would otherwise trip CRAN checks — 2023 and 2026, both traceable to specific upstream Rcpp issues.
Prediction
There is no visible development agenda here; the entries suggest the package surfaces only when Rcpp or CRAN check policy forces a patch.

Recent moves

  1. 7mo ago

    Rcpp Rf_error masking patch, README and help-file typo

    Applies the upstream Rcpp patch for Rf_error() masking, fixes README rendering and a missing word in the itp() help file. The second time in three years the package has woken up purely to absorb an Rcpp change.

    View source ↗
  2. 2y ago

    Rcpp fix clears CRAN check warnings

    Takes an upstream Rcpp fix to stop CRAN check warnings on some platforms. Pure maintenance, with no change to the algorithm or interface.

    View source ↗
  3. 4y ago

    itp_c runs the whole algorithm in C++

    Adds itp_c(), implementing ITP entirely in C++ rather than driving it from R. It completes the performance arc the previous release started and is the last functional change the package has made.

    View source ↗
  4. 4y ago

    Accepts C++ function pointers, adds a plot method

    itp() can now take an external pointer to a C++ function through Rcpp's user-supplied function framework, keeping the root-finding loop off the R side. The release is candid that the packaged examples show only modest gains, with the benefit expected on harder problems.

    View source ↗
  5. 4y ago

    Bracketing interval fix for locally decreasing functions

    Corrects a bracketing bug that returned wrong roots where the function is locally decreasing, with tests added. A week after first release, which is where this class of bug usually surfaces.

    View source ↗
  6. 4y ago

    First release of the ITP root-finding algorithm

    Initial release implementing the published ITP method, which brackets a root more tightly each iteration while retaining bisection's worst-case reliability. It defines the package's entire scope, which has not widened since.

    View source ↗