## Expand description

argmin optimization toolbox core

This module contains the traits and types necessary for implementing optimization algorithms and tools for observing the state of optimization runs and checkpointing.

## Re-exports

`pub use crate::solver::conjugategradient::beta::NLCGBetaUpdate;`

`pub use crate::solver::linesearch::LineSearch;`

`pub use crate::solver::trustregion::TrustRegionRadius;`

## Modules

- Checkpointing
- Macros
- Observers
- Convenience utilities for testing

## Structs

- The
`Error`

type, a wrapper around a dynamic error type. - Solves an optimization problem with a solver
- Maintains the state from iteration to iteration of a solver
- A simple key-value storage
- Maintains the state from iteration to iteration of a solver
- Result of an optimization returned by after running an
`Executor`

. - Maintains the state from iteration to iteration of a population-based solver
- Wrapper around problems defined by users.

## Enums

- Argmin error type
- Types available for use in
`KV`

. - Reasons for optimization algorithms to stop
- Status of optimization execution

## Traits

- An alias for float types (
`f32`

,`f64`

) which combines multiple commonly needed traits from`num_traits`

,`std::fmt`

and for serialization/deserialization (the latter only if the`serde1`

feature is enabled). It is automatically implemented for all types which fulfill the trait bounds. - Defines computation of a cost function value
- Trait alias for
`serde`

s`DeserializeOwned`

. - Defines the computation of the gradient.
- Defines the computation of the Hessian.
- Defines the computation of the Jacobian.
- Defines a linear Program
- Defines the application of an operator to a parameter vector.
- Trait alias for
`Send`

- Trait alias for
`serde`

s`Serialize`

. - The interface all solvers are required to implement.
- Minimal interface which struct used for managing state in solvers have to implement.
- Trait alias for
`Sync`