Skip to main content

Module alg_builder

Module alg_builder 

Source
Expand description

Algorithm builder — port of Algorithm/IpAlgBuilder.{hpp,cpp}.

Reads OptionsList, walks the dependency order documented in ref/Ipopt/AGENT_REFERENCE/ARCHITECTURE.md §“BuildBasicAlgorithm”, and assembles the strategy objects needed by IpoptAlgorithm:

  • SymLinearSolver (MA57 / MUMPS / FERAL) → AugSystemSolver (StdAugSystemSolver) → PdSystemSolver (PdFullSpaceSolver) → SearchDirCalculator (PdSearchDirCalc).
  • BacktrackingLsAcceptor (filter / penalty / cg-penalty) → BacktrackingLineSearch.
  • MuUpdate (monotone / adaptive[+oracle]).
  • ConvCheck (OptErrorConvCheck).
  • IterateInitializer (default / warm-start) and EqMultCalculator (LeastSquareMults).
  • HessianUpdater (exact / limited-memory).
  • IterationOutput (OrigIterationOutput).
  • NLPScalingObject (none / user / gradient-based / equilibration-based).

Phase 7 ships the option-driven dispatch surface; the assembled IpoptAlgorithm lands once each strategy’s arithmetic does.

Structs§

AlgorithmBuilder
AlgorithmBundle
Assembled strategy bundle. Phase 7 ships the structural bundle; IpoptAlgorithm::new reads from this when it lands.
ConvCheckOptions
Knobs read off OptionsList and baked into the assembled OptErrorConvCheck. Defaults mirror IpOptErrorConvCheck.cpp:RegisterOptions.
InitOptions
Knobs read off OptionsList and baked into DefaultIterateInitializer. Defaults mirror IpDefaultIterateInitializer.cpp:RegisterOptions. The Mehrotra cascade in application.rs overrides bound_push, bound_frac, and bound_mult_init_val to upstream’s more-aggressive values (10, 0.2, 1.0).
LineSearchOptions
Knobs baked into the assembled BacktrackingLineSearch. Defaults mirror IpBacktrackingLineSearch.cpp:RegisterOptions.
MuOptions
Knobs read off OptionsList and baked into the assembled MonotoneMuUpdate or AdaptiveMuUpdate. Defaults mirror IpMonotoneMuUpdate.cpp / IpAdaptiveMuUpdate.cpp:RegisterOptions. mu_max defaults to the sentinel -1; positive values are baked into both updaters at build time (adaptive interprets -1 as “lazy-init from mu_max_fact * avrg_compl”).
OutputOptions
Knobs baked into the assembled OrigIterationOutput. Defaults mirror IpOrigIterationOutput.cpp:RegisterOptions / IpAlgorithmRegOp.cpp.
WarmStartOptions
Knobs read off OptionsList and baked into WarmStartIterateInitializer. Defaults mirror IpWarmStartIterateInitializer.cpp:RegisterOptions.

Enums§

AlgorithmChoice
Top-level algorithm choice. InteriorPoint is pounce’s default (the existing IpoptAlgorithm); ActiveSetSqp is the Phase 5b SQP driver in crate::sqp::SqpAlgorithm, which uses pounce-qp for QP subproblem solves and reuses FilterLsAcceptor for globalization.
HessianApproxChoice
LineSearchChoice
LinearSolverChoice
LinearSystemScalingChoice
Symmetric scaling method applied to the augmented KKT system by TSymLinearSolver. Mirrors the linear_system_scaling option in IpAlgBuilder.cpp:302-318 and the RuizTSymScalingMethod / Mc19TSymScalingMethod strategies in upstream Ipopt.
MuStrategyChoice

Type Aliases§

LinearBackendFactory
Backend factory — the application supplies one before calling AlgorithmBuilder::build. Mirrors upstream’s SymLinearSolverFactory knob in IpAlgBuilder.cpp. The default factory wires in FERAL; MA57 is selectable when the ma57 cargo feature is enabled.