# Reference guide¶

The package is mainly organized around two class hierarchies: the functions and
the solvers. Instantiated functions represent convex functions to optimize.
Instantiated solvers represent solving algorithms. The
`pyunlocbox.solvers.solve()`

solving function takes as parameters a solver
object and some function objects to actually solve the optimization problem.
See this function’s documentation for a typical usage example.

The `pyunlocbox`

package is divided into the following modules:

`functions`

: objective functions to define an optimization problem,`solvers`

: the main solving function and common solvers,`acceleration`

: general acceleration schemes for various solvers,`operators`

: some operators.