Skip to main content

pounce_algorithm/
lib.rs

1//! POUNCE algorithm-side core.
2//!
3//! Port of Ipopt's `src/Algorithm/`: the `IteratesVector` data
4//! object, the mutable `IpoptData` state, the `IpoptCalculatedQuantities`
5//! lazy-cache layer, the KKT subsystem (augmented system, perturbation
6//! handler, full-space PD solver, search-direction calculator), the
7//! line search (filter + backtracking), barrier-update strategies
8//! (monotone now, adaptive in Phase 10), convergence check, iterate
9//! initialization, equality-multiplier estimation, Hessian update
10//! strategies (exact + L-BFGS/SR1 in Phase 8), iteration output,
11//! timing statistics, the algorithm builder, and the main
12//! `IpoptAlgorithm::optimize()` loop.
13//!
14//! NLP scaling (gradient-based objective/constraint scaling) lives
15//! NLP-side in [`pounce_nlp::orig_ipopt_nlp`].
16//!
17//! Strategies are wired together by [`alg_builder::AlgorithmBuilder`]
18//! per the dependency order documented in
19//! `ref/Ipopt/AGENT_REFERENCE/ARCHITECTURE.md` ยง"BuildBasicAlgorithm".
20
21#![cfg_attr(test, allow(clippy::unwrap_used, clippy::expect_used))]
22
23pub mod alg_builder;
24pub mod application;
25pub mod conv_check;
26pub mod eq_mult;
27pub mod hess;
28pub mod init;
29pub mod intermediate;
30pub mod ipopt_alg;
31pub mod ipopt_cq;
32pub mod ipopt_data;
33pub mod ipopt_nlp;
34pub mod iter_dump;
35pub mod iterate_dump;
36pub mod iterates_vector;
37pub mod kkt;
38pub mod line_search;
39pub mod mu;
40pub mod output;
41pub mod restoration;
42pub mod sqp;
43pub mod strategy;
44pub mod timing_stats;
45pub mod upstream_options;
46
47pub use application::IpoptApplication;
48pub use ipopt_cq::{IpoptCalculatedQuantities, IpoptCqHandle};
49pub use ipopt_data::{IpoptData, IpoptDataHandle, PdPerturbations};
50pub use ipopt_nlp::{IpoptNlp, Nlp};
51pub use iterates_vector::IteratesVector;
52pub use strategy::AlgorithmStrategy;