nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
root_solve.hpp
1// ops/root_solve.hpp
2//
3// Scalar / low-dim iterative solver KERNELS (raw double precision, FnHandle
4// objective) — the numerical core behind fzero / fminbnd / fminsearch. Core-free
5// (value layer only); the toolbox Value-API wrappers and the engine adapters live
6// above. Solver kernels belong in ops per LAYERING_TARGET_ARCHITECTURE §2/§3/§9.
7
8#pragma once
9
10#include <cstddef>
11#include <memory_resource>
12#include <nk/value/fn_handle.hpp>
13#include <nk/value/scratch.hpp>
14#include <utility>
15
16namespace nk::ops {
17
21std::pair<double, double> findBracket(FnHandle fn, double x0, std::pmr::memory_resource *mr);
22
24double brent(FnHandle fn, double a, double b, std::pmr::memory_resource *mr);
25
28double brentMin(FnHandle fn, double a, double b, double tol, std::pmr::memory_resource *mr);
29
32ScratchVec<double> nelderMead(FnHandle fn, const double *x0, std::size_t n, double tol,
33 std::pmr::memory_resource *mr);
34
35} // namespace nk::ops