# Crate optimization_engine

source ·## Expand description

**Optimization Engine** is a framework for **fast** and **accurate** embedded nonconvex optimization.

## About Optimization Engine

Its core functionality (including all numerical routines) is written in Rust.

**Optimization Engine** can be used on PCs (all OSs are supported) and on embedded devices
(e.g., Raspberry Pi, Atom, Odroid, etc).

Note that this is the **API documentation** of **Optimization Engine**; to get started,
you should rather check out the documentation.

## Optimization Problems

Optimization Engine solves optimization problems of the general form

$$\begin{aligned} \mathrm{Minimize}\ f(u) \\ u \in U \\ F_1(u) \in C \\ F_2(u) = 0 \end{aligned}$$

where

- $u\in\mathbb{R}^{n_u}$ is the decision variable,
- $f:\mathbb{R}^n\to\mathbb{R}$ is a $C^{1,1}$-smooth cost function,
- $U$ is a (not necessarily convex) closed subset of $\mathbb{R}^{n_u}$ on which we can easily compute projections (e.g., a rectangle, a ball, a second-order cone, a finite set, etc),
- $F_1:\mathbb{R}^{n_u}\to\mathbb{R}^{n_1}$ and $F_2:\mathbb{R}^{n_u} \to\mathbb{R}^{n_2}$ are mappings with smooth partial derivatives, and
- $C\subseteq\mathbb{R}^{n_1}$ is a convex closed set on which we can easily compute projections.

## Re-exports

`pub use crate::core::fbs;`

`pub use crate::core::panoc;`

`pub use crate::core::AlgorithmEngine;`

`pub use crate::core::Optimizer;`

`pub use crate::core::Problem;`

## Modules

Augmented Lagrangian and Penalty Methods

Constraints and projections

Optimisation algorithms

Estimates a local Lipschitz constant for a mapping
$F: \mathbb{R}^n \to \mathbb{R}^n$

matrix_operations

## Enums

Exceptions/Errors that may arise while solving a problem

## Type Definitions

Result of a function call (status)