rgmin#
- Author:
Overview#
rgmin is the local-minimization crate of the OmniPotentRPC family, beside rgpot; it was xtsci-optimize until the xtensor heritage stopped being true.
Algorithms live only in Rust, over
eindir ~DifferentiableObjective~s.
C and C++ keep the old xts::optimize names through an hourglass C ABI
(rgmin_solver_t / rgmin_minimize) that carries dlpk
DLManagedTensorVersioned tensors.
include/xts/optimize.hpp is the C++ wrapper; include/xts/xtensor.hpp
adapts xt::xarray. There is no second solver implementation in C++.
The C ABI also accepts an eindir_objective_t* through
rgmin_minimize_eindir. The caller supplies the eindir_abi_stamp_t,
retains ownership of the objective, and gets the same CPU f64 DLPack
path. That is how rgpot’s first-member eindir_objective_t embedding
reaches the solvers without a callback shim in each consumer.
The production unconstrained local method is limited-memory BFGS with
the strong Wolfe conditions (Nocedal and Wright 7.4 and algorithms
3.5–3.6). Hopping chains keep that solver’s pair history on Lbfgs;
anneal’s WarmLbfgs is a thin handle around it.
git clone https://github.com/OmniPotentRPC/rgmin.git
cd rgmin
# Build and test on the remote builder, not a laptop.
cargo test --features capi
Tutorials
How-To Guides
Explanation
Reference
Development
License#
MIT.