Metadata-Version: 2.1
Name: qpalm
Version: 1.1.4.post1
Summary: Proximal Augmented Lagrangian method for Quadratic Programs
Keywords: optimization,augmented-lagrangian,proximal,qp,quadratic-programming,nonconvex,ladel
Author: Ben Hermans
Maintainer-email: Pieter Pas <pieter.p.dev@outlook.com>
Requires-Python: >=3.7
Description-Content-Type: text/x-rst
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: C
Classifier: Programming Language :: C++
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: MacOS
Classifier: Typing :: Typed
Requires-Dist: numpy~=1.19
Requires-Dist: scipy~=1.6
Requires-Dist: qpalm-debug==1.1.4.post1 ; extra == "debug"
Project-URL: Documentation, https://kul-optec.github.io/QPALM
Project-URL: Source, https://github.com/kul-optec/QPALM
Project-URL: Tracker, https://github.com/kul-optec/QPALM/issues
Provides-Extra: debug

Proximal Augmented Lagrangian method for Quadratic Programs
===========================================================
| QPALM is a numerical optimization package that finds stationary points of (possibly **nonconvex**) quadratic programs, that is

.. math::

        \begin{aligned}
            & \underset{x}{\textbf{minimize}}
            & & \tfrac12 x^\top Q x + q^\top x\\
            & \textbf{subject to}
            & & b_\mathrm{min} \le Ax \le b_\mathrm{max} \\
        \end{aligned}

Documentation
-------------
| The documentation can be found at: `<https://kul-optec.github.io/QPALM/Doxygen>`_  
| Examples are included as well: `<https://kul-optec.github.io/QPALM/Doxygen/examples.html>`_

Installation
------------

Python
^^^^^^
| The QPALM Python interface is available from `PyPI <https://pypi.org/project/qpalm>`_, you can install it using:

.. code-block:: sh

    python3 -m pip install qpalm


Julia, Matlab, C/C++/Fortran
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| Installation instructions for the Julia, Matlab, C, C++ and Fortran interfaces, as well as instructions for building QPALM from source, can be found on `GitHub <https://github.com/kul-optec/QPALM/>`_.

Supported platforms
-------------------
| QPALM is written in C, with interfaces for C++, Python, Julia, Matlab and Fortran. The code itself is portable across all major platforms. Binaries are available for Linux on x86-64, AArch64, ARMv7 and ARMv6, for macOS on x86-64 and ARM64, and for Windows on x86-64.

Benchmarks
----------
| Check out the papers below for detailed benchmark tests comparing QPALM with state-of-the-art solvers.

* `QPALM: A Newton-type Proximal Augmented Lagrangian Method for Quadratic Programs <https://arxiv.org/abs/1911.02934>`_.
* `QPALM: A Proximal Augmented Lagrangian Method for Nonconvex Quadratic Programs <https://arxiv.org/abs/2010.02653>`_.

Citing
------
| If you use QPALM in your research, please cite the following paper:

.. code-block:: bib

    @inproceedings{hermans2019qpalm,
        author      = {Hermans, B. and Themelis, A. and Patrinos, P.},
        booktitle   = {58th IEEE Conference on Decision and Control},
        title       = {{QPALM}: {A} {N}ewton-type {P}roximal {A}ugmented {L}agrangian {M}ethod for {Q}uadratic {P}rograms},
        year        = {2019},
        volume      = {},
        number      = {},
        pages       = {},
        doi         = {},
        issn        = {},
        month       = {Dec.},
    }

