pounce-algorithm 0.3.0

Algorithm-side core for POUNCE (port of Ipopt's src/Algorithm/): IteratesVector, IpoptData, CalculatedQuantities, KKT solvers, line search, mu update, conv check, initializer, IpoptAlg main loop, AlgBuilder.
Documentation
//! Algorithm-strategy base trait — port of `IpAlgStrategy.hpp`.
//!
//! Every strategy object (line search, mu update, conv check, etc.)
//! implements this so `IpoptAlgorithm` can call `initialize` on it
//! after option-loading and before iteration.

use pounce_common::exception::SolverException;
use pounce_common::journalist::Journalist;
use pounce_common::options_list::OptionsList;
use std::rc::Rc;

/// Ports `Ipopt::AlgorithmStrategyObject`. The `_jnlst` etc. arguments
/// match the upstream signature; concrete strategies pull what they
/// need from the four shared handles.
pub trait AlgorithmStrategy {
    fn initialize(
        &mut self,
        jnlst: &Rc<Journalist>,
        options: &OptionsList,
        prefix: &str,
    ) -> Result<(), SolverException>;
}