Skip to content

Add ITP one dimensional root solver - #3495

Open
deveshvaidyaofficial wants to merge 2 commits into
stan-dev:developfrom
deveshvaidyaofficial:feature/solve-itp-clean
Open

deveshvaidyaofficial wants to merge 2 commits into
stan-dev:developfrom
deveshvaidyaofficial:feature/solve-itp-clean

Conversation

@deveshvaidyaofficial

Copy link
Copy Markdown

Summary

Added implementation for the Interpolate-Truncate-Project (ITP) One Dimensional Solver algorithm for solving scalar nonlinear equations in Stan Math, addressing #3362

The solver will provide a safeguarded root-finding method that combines interpolation with truncation and projection while preserving a sign-changing bracket and the algorithm's convergence guarantees.

(Based on the Patch attached in the Issue description with the necessary changes made according to the requiremnts )

Tests

Targeted tests run successfully :

  • Primitive-mode solve_itp tests: 12 passed.
  • Reverse-mode solve_itp tests: 4 passed.

Side Effects

None

Release notes

Add an Interpolate-Truncate-Project (ITP) one dimensional root-finding solver to Stan Math for solving scalar nonlinear equations, with configurable convergence controls .

Checklist

  • Copyright holder: Devesh Vaidya
    The copyright holder is typically you or your assignee, such as a university or company. By submitting this pull request, the copyright holder is agreeing to the license the submitted work under the following licenses:
    - Code: BSD 3-clause (https://opensource.org/licenses/BSD-3-Clause)
    - Documentation: CC-BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

  • the basic tests are passing

    • unit tests pass (to run, use: ./runTests.py test/unit)
    • header checks pass, (make test-headers)
    • dependencies checks pass, (make test-math-dependencies)
    • docs build, (make doxygen)
    • code passes the built in C++ standards checks (make cpplint)
  • the code is written in idiomatic C++ and changes are documented in the doxygen

  • the new changes are tested

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants