Skip to content

mechmotum/cyipopt

Repository files navigation

README for cyipopt

Ipopt (Interior Point OPTimizer, pronounced eye-pea-opt) is a software package for large-scale nonlinear optimization. Ipopt is available from the COIN-OR initiative, under the Eclipse Public License (EPL).

cyipopt is a Python wrapper around Ipopt. It enables using Ipopt from the comfort of the Python programming language.

Status

Anaconda

image

image

PyPI

image

image

Read the Docs Documentation Status

History

This repository was forked in 2016 from https://bitbucket.org/amitibo/cyipopt and is now considered the primary repository. The fork includes a SciPy-style interface and ability to handle exceptions in the callback functions.

As of version 1.1.0 (2021-09-07), the distribution is released under the name "cyipopt" on PyPi (https://pypi.org/project/cyipopt). Before version 1.1.0, it was released under the name "ipopt" (https://pypi.org/project/ipopt).

Installation

We recommend using conda to install cyipopt on Linux, Mac, and Windows:

conda install -c conda-forge cyipopt

Other installation options are present in the documentation.

Building manylinux wheels

manylinux wheels can be built for a tagged version (GIT_TAG below) of cyipopt via docker by running (while in the root of this repo):

docker run -v $(pwd):/wheels --rm --platform=linux/amd64 quay.io/pypa/manylinux_2_28_x86_64 bash /wheels/build_manylinux_wheels.sh GIT_TAG

for linux/amd64 and:

docker run -v $(pwd):/wheels --rm --platform=linux/aarch64 quay.io/pypa/manylinux_2_28_aarch64 bash /wheels/build_manylinux_wheels.sh GIT_TAG

for linux/aarch64 platforms. Built wheels appear at the folder the command was executed from.

Warning

Docker supports emulating non-native platforms to e.g. produce ARM binaries from an AMD64 host. However this can be quite slow (~1h for our case).

License

cyipopt is open-source code released under the EPL license, see the LICENSE file.

Contributing

For bug reports, feature requests, comments, patches use the GitHub issue tracker and/or pull request system.