API reference#

CVXlab is designed to be intuitive enough to use without first consulting the API reference. Reading the User Guide, practicing with the tutorial notebook available in the Resources section, and looking at existing models in Models gallery will suffice to acquaint you with the package. Nonetheless, the API reference is included for those who are comfortable reading technical documentation.

The package structure is illustrated in the figure below, where the main classes and their hierarchy are shown. At the top level, cvxlab.Model orchestrates the workflow by coordinating Core, settings utilities, and support utilities. Core groups modelling components (Index, Database, and Problem), with Index organizing structural abstractions (SetTable, DataTable, and Variable), while settings classes (ModelSettings and RunSettings) centralize configuration, and support classes (FileManager, SQLManager, and utility functions) provide shared operational services.

package structure package structure

The classes and functions documented in this section are those imported into the CVXlab namespace. The documentation is grouped in the following sections:

API reference sections#

Section

Description

Model

Documents the main package class cvxlab.Model, embedding all the main package APIs necessary to generate, handle, and solve the numerical model.

Utility functions

Documents various utility functions available in the package, including the guided interactive interface (cvxlab.gui()) and functions for initializing model directories and handling model class instances.

Symbolic operators

Documents built-in symbolic operators available in CVXlab, including standard arithmetic operations, matrix operations, and various mathematical functions. Provides guidelines on how to create new symbolic operators or add built-in operators to the package.

Constants

Documents the various built-in constant data types available in CVXlab, necessary to assign numerical values to constants in numerical problems. Provides guidelines on how to create new constant data types or add built-in types to the package.

Templates

Documents the template modules included in the CVXlab package, including user-defined symbolic operators and user-defined constants.

Defaults

Documents the cvxlab.constants module, which includes various default settings used throughout the package that may be customized by the developer.