# [−][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

## Re-exports

`pub extern crate failure;` |

`pub extern crate failure_derive;` |

## Modules

macros |
Macros |

## Macros

check_param |
Release an |

make_kv |
Creates an |

## Structs

ArgminBase |
Storage for data needed by most solvers |

ArgminIterationData |
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 |

NoOperator | |

WriteToFile |

## Enums

ArgminError | |

TerminationReason |
Indicates why the optimization algorithm stopped |

## Traits

ArgminAdd |
Add a |

ArgminDot |
Dot/scalar product of |

ArgminInv |
Compute the inverse ( |

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

ArgminLog |
Defince the interface every logger needs to expose |

ArgminMul | |

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

ArgminNextIter |
Main part of every solver: |

ArgminNorm |
Compute the l2-norm ( |

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

ArgminScale |
Scale |

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 |

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) |