QPALM
A proximal augmented Lagrangian method for QPs.
Functions
nonconvex.h File Reference

Routines to deal with nonconvex QPs. More...

#include "types.h"

Go to the source code of this file.

Functions

c_float gershgorin_max (solver_sparse *M, c_float *center, c_float *radius)
 Calculate the Gershgorin upper bound for the eigenvalues of a symmetric matrix. More...
 
void set_settings_nonconvex (QPALMWorkspace *work, solver_common *c)
 Set the proximal parameters for nonconvex QPs. More...
 

Detailed Description

Routines to deal with nonconvex QPs.

Author
Ben Hermans

The functions in this file serve to set up QPALM for a nonconvex QP. The main routine in this file computes the minimum eigenvalue of a square matrix, based on lobpcg [3]. Furthermore, some setting updates are performed. In addition, the spectrum of a matrix can be upper bounded using Gershgorin's circle theorem, which is used in the gamma_boost routine in iteration.c.

Function Documentation

◆ gershgorin_max()

c_float gershgorin_max ( solver_sparse M,
c_float center,
c_float radius 
)

Calculate the Gershgorin upper bound for the eigenvalues of a symmetric matrix.

This routine uses the Gershgorin circle theorem to compute an upper bound on the eigenvalues of a matrix.

Note
M is assumed to be symmetric
Parameters
MMatrix
centerVector of size M->ncol to hold the values of the centers of the discs
radiusVector of size M->ncol to hold the values of the radii of the discs
Returns
Upper bound on the eigenvalues of M

◆ set_settings_nonconvex()

void set_settings_nonconvex ( QPALMWorkspace work,
solver_common c 
)

Set the proximal parameters for nonconvex QPs.

QPALM can deal with nonconvex QPs, by setting the initial and maximal proximal penalty small enough (smaller than $ \frac{1}{|\lambda_\textrm{min}|} $). This ensures positive definiteness of $ Q + \frac{1}{\gamma}I $ during the iterations. The minimum eigenvalue is computed using lobpcg.

Parameters
workWorkspace
cLinear systems solver environment