# [−][src]Crate argmin_core

Argmin Optimizaton toolbox core

This crate contains the core functionality of argmin. If you just want to run an optimization
method, this is *not* what you are looking for. However, if you want to implement your own
solver based on the argmin architecture, you should find all necessary tools here.

TODOs:

- Provide an example of how to implement a solver

## Modules

finitediff | Finite Differentiation |

macros | Macros |

modcholesky | Modified Cholesky decompositions Modified Cholesky decompositions |

## Macros

check_param | Release an |

make_kv | Creates an |

## Structs

ArgminBase | Storage for data needed by most solvers |

ArgminCheckpoint | |

ArgminIterData | The datastructure which is returned by the |

ArgminKV | A simple key-value storage |

ArgminLogger | Container for |

ArgminResult | Return struct for all solvers. |

ArgminSlogLogger | A logger based on |

ArgminWriter | |

Error | The |

MinimalNoOperator | |

NoOperator | |

WriteToFile |

## Enums

ArgminError | |

CheckpointMode | |

TerminationReason | Indicates why the optimization algorithm stopped |

## Traits

ArgminAdd | Add a |

ArgminDiv | (Pointwise) Divide a |

ArgminDot | Dot/scalar product of |

ArgminEye | |

ArgminInv | Compute the inverse ( |

ArgminIter | Main part of every solver: |

ArgminLineSearch | Defines a common interface to line search methods. Requires that |

ArgminLog | Defince the interface every logger needs to expose |

ArgminMul | (Pointwise) Multiply a |

ArgminNLCGBetaUpdate | Every method for the update of beta needs to implement this trait. |

ArgminNorm | Compute the l2-norm ( |

ArgminOp | This trait needs to be implemented for every operator/cost function. |

ArgminScaledAdd | Add a |

ArgminScaledSub | Subtract a |

ArgminSolver | Defines the interface to a solver. Usually, there is no need to implement this manually, use
the |

ArgminSub | Subtract a |

ArgminTranspose | |

ArgminTrustRegion | Defines a common interface to methods which calculate approximate steps for trust region
methods. Requires that |

ArgminWeightedDot | Dot/scalar product of |

ArgminWrite | Every writer (which is something that writes parameter vectors somewhere after each iteration) needs to implement this. |

ArgminZero | Return param vector of all zeros (for now, this is a hack. It should be done better) |

## Functions

load_checkpoint |