pounce-common 0.2.0

Common primitives for POUNCE (port of Ipopt's src/Common): types, exceptions, journalist, options, tagged objects, cached results.
Documentation
  • Coverage
  • 32.18%
    102 out of 317 items documented0 out of 152 items with examples
  • Size
  • Source code size: 110.19 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 2.3 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 3s Average build duration of successful builds.
  • all releases: 4s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • jkitchin/pounce
    12 2 6
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • jkitchin

pounce-common

Common primitives used across the POUNCE workspace. Port of Ipopt's src/Common/.

This is an internal crate — most users interact with POUNCE through pounce-cli, pounce-nlp, or pounce-cinterface. The types re-exported here surface in those public APIs.

What's in it

Module Purpose Ipopt counterpart
types Number = f64, Index = i32, NLP_{LOWER,UPPER}_BOUND_INF IpTypes.hpp
exception SolverException + ExceptionKind — no panic! in the algorithm path IpException.hpp
journalist Journalist, Journal, FileJournal, StringJournal — log routing IpJournalist.{hpp,cpp}
options_list OptionsList — typed get/set with default fallback IpOptionsList.{hpp,cpp}
reg_options RegisteredOptions — option registry with types, ranges, defaults IpRegOptions.{hpp,cpp}
tagged TaggedObject + TaggedCell — change-tracking for cached quantities IpTaggedObject.hpp
cached Cache<T> — tagged-key lookup for IpoptCalculatedQuantities IpCachedResults.hpp
timing TimedTask — wall-clock accumulator IpTimingStatistics.{hpp,cpp}
utils small helpers (string parsing, etc.) IpUtils.{hpp,cpp}

Conventions

  • Index is i32 to match upstream's ipindex. Sizes that exceed i32 are not supported (mirrors upstream).
  • Number is f64. No generics over scalar type.
  • The tagged / cached pair is the workhorse for invalidation: when any iterate component changes, its Tag bumps and downstream caches miss automatically. This is how the algorithm avoids re-evaluating callbacks unnecessarily.

License

EPL-2.0, matching upstream Ipopt.