pub struct PouncePersistent { /* private fields */ }Expand description
A stateful POUNCE handle that keeps the derivative build resident across
solves. Created by Pounce::persistent.
When the next model has the same variables, objective, and constraint
expressions with an unchanged sparsity pattern, the resident oracle
is refreshed in place, reusing the compiled tapes (and, on the enzyme
path, the exact jacobians/Hessians structure) instead of rebuilding.
Also, the solve is warm-started from the previous iterate.
Any structural change rebuilds.
A failed solve clears the resident state. The next call rebuilds from scratch.
Implementations§
Trait Implementations§
Source§impl Debug for PouncePersistent
impl Debug for PouncePersistent
Source§impl Default for PouncePersistent
impl Default for PouncePersistent
Source§fn default() -> PouncePersistent
fn default() -> PouncePersistent
Returns the “default value” for a type. Read more
Source§impl Solver for PouncePersistent
impl Solver for PouncePersistent
Source§type Options = PounceOptions
type Options = PounceOptions
Backend-specific options struct. Use
() for solvers without any
tunables.fn name(&self) -> &str
fn supports(&self, kind: ModelKind) -> bool
Source§fn solve(
&mut self,
model: &Model,
opts: &PounceOptions,
) -> Result<SolverResult, SolverError>
fn solve( &mut self, model: &Model, opts: &PounceOptions, ) -> Result<SolverResult, SolverError>
Solves the given
Model using this solver. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for PouncePersistent
impl !Send for PouncePersistent
impl !Sync for PouncePersistent
impl !UnwindSafe for PouncePersistent
impl Freeze for PouncePersistent
impl Unpin for PouncePersistent
impl UnsafeUnpin for PouncePersistent
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T, U> Imply<T> for U
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more