Changelog#

Unreleased#

Molecular manifolds: rigid_quotient is Sella Cartesian R^{3N}/SE(3) (fix_translation + fix_rotation); mw_rigid is the Page–McIver / Sella IRC Eckart metric on the same quotient (rgmin_solver_set_masses). SO(3) is length 9 and SE(3) is length 12; a 3N cluster is rejected rather than packed or prefix-interpreted. Periodic bulk sets rgmin_solver_set_periodic: Sella proj_rot = false, quotient R^{3N}/T(3). Isolated stays R^{3N}/SE(3). abi_minor 10.

Embedded manopt tokens: Euclidean (default), sphere, SO(3), Stiefel St(n,1), SE(3). Hourglass mark and the Diataxis book under docs/orgmode/.

0.2.0#

rgmin_solver_set_highs: opt-in HiGHS feasible-set step. With a host Hessian this is the convex Newton QP min 1/2 p^T P p + g^T p and per-coordinate boxes. Without the highs feature the setter returns

  1. eindir / rgpot / eOn share the same session.

0.1.0#

Rust rewrite of the C++ xtensor tree (0.0.1 on the previous main). Solvers live in Rust. C and C++ reach them through rgmin_solver_t and rgmin_minimize over dlpk tensors.

  • Session API: create / step / step_hess / step_fg / fused evalgrad / forget / free

  • Methods: L-BFGS, BFGS, SR1, SR2, shifted Newton, RFO, eight NLCG conjugacies, steepest, Adam, PSO, FIRE, FIRE 2.0, Barzilai-Borwein, Powell dogleg

  • Host Hessian policy: qn_step two-loop / Newton / RFO; pair H0 = P^{-1}

  • Accept: none / energy / nonmonotone

  • Per-atom maxmove and optional rigid-body projection

  • Optional highs feature: two-loop direction, HiGHS only for a feasible set (box, trust, equalities)

The previous C++ main is unrelated history. This tag is the first Rust release.