| 
    QPALM  
   1.2.1
   Proximal Augmented Lagrangian method for Quadratic Programs 
   | 
 
Routines to deal with nonconvex QPs.
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.
Definition in file nonconvex.c.
#include <qpalm/nonconvex.h>#include <qpalm/types.h>#include <qpalm/constants.h>#include <qpalm/global_opts.h>#include <qpalm/lin_alg.h>#include <qpalm/util.h>#include <math.h>
 Include dependency graph for nonconvex.c:Go to the source code of this file.
Macros | |
| #define | LOBPCG_TOL 1e-5 | 
| Tolerance on the infinity norm of the residual in lobpcg.   | |
| #define | M_PI 3.14159265358979323846 | 
| #define | RREF_TOL 1e-8 | 
Functions | |
| void | set_settings_nonconvex (QPALMWorkspace *work, solver_common *c) | 
| Set the proximal parameters for nonconvex QPs.   | |
| 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.   | |
| #define LOBPCG_TOL 1e-5 | 
Tolerance on the infinity norm of the residual in lobpcg.
Definition at line 22 of file nonconvex.c.
| #define M_PI 3.14159265358979323846 | 
Definition at line 25 of file nonconvex.c.
| #define RREF_TOL 1e-8 | 
Definition at line 28 of file nonconvex.c.
| 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.
| work | Workspace | 
| c | Linear systems solver environment | 
Definition at line 331 of file nonconvex.c.
| 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.
| M | Matrix | 
| center | Vector of size M->ncol to hold the values of the centers of the discs | 
| radius | Vector of size M->ncol to hold the values of the radii of the discs | 
Definition at line 353 of file nonconvex.c.
 Here is the caller graph for this function: