Welcome to the documentation of simpleopt!

What is simpleopt and where is the code?

simpleopt is a set of simple optimization routines written in Python along with a set of test functions. The module simpleopt.opt includes implementations of the steepest descent and the conjugate gradient methods, as well as a class for representing optimization problems.

The separate module quad allows to construct and call functions of the form

\[f(x)=x^{T}Ax+b^{T}x\]

where \(A \in \mathbb{R}^{n \times n}\) and \(b,x \in \mathbb{R}^{n}\). The module quad is implemented in C++ using the Eigen library for linear algebra computations, and is wrapped in Python using pybind11.

The code is available at this GitHub repository.

Contents

Requirements and Installation

To build the C++ test functions simpleopt requires a C++ compiler, the CMake and Make build systems, and the Eigen library for linear algebra computations. For the optimization routines, Python 3.9 or higher is required, as well as a set of packages listed in the requirements.txt file in the root directory of the repository. For detailed installation instructions of these components see the README file in the repository.

Indices and tables