QPALM main
Proximal Augmented Lagrangian method for Quadratic Programs
Loading...
Searching...
No Matches
nonconvex.h
Go to the documentation of this file.
1/**
2 * @file nonconvex.h
3 * @author Ben Hermans
4 * @brief Routines to deal with nonconvex QPs.
5 * @details The functions in this file serve to set up QPALM for a nonconvex QP. The main routine in
6 * this file computes the minimum eigenvalue of a square matrix, based on lobpcg \cite knyazev2001toward. Furthermore,
7 * some setting updates are performed. In addition, the spectrum of a matrix can be upper bounded using
8 * Gershgorin's circle theorem, which is used in the gamma_boost routine in iteration.c.
9 */
10
11#ifndef NONCONVEX_H
12#define NONCONVEX_H
13
14# ifdef __cplusplus
15extern "C" {
16# endif
17
18#include <qpalm/types.h>
19
20/**
21 * Calculate the Gershgorin upper bound for the eigenvalues of a symmetric matrix.
22 *
23 * This routine uses the Gershgorin circle theorem to compute an upper bound on the eigenvalues of
24 * a matrix.
25 *
26 * @note M is assumed to be symmetric
27 *
28 * @param M Matrix
29 * @param center Vector of size M->ncol to hold the values of the centers of the discs
30 * @param radius Vector of size M->ncol to hold the values of the radii of the discs
31 * @return Upper bound on the eigenvalues of M
32 */
34 c_float *center,
35 c_float *radius);
36
37/**
38 * Set the proximal parameters for nonconvex QPs.
39 *
40 * QPALM can deal with nonconvex QPs, by setting the initial and maximal proximal penalty small enough
41 * (smaller than @f$ \frac{1}{|\lambda_\textrm{min}|} @f$). This ensures positive definiteness of
42 * @f$ Q + \frac{1}{\gamma}I @f$ during the iterations. The minimum eigenvalue is computed using lobpcg.
43 *
44 * @param work Workspace
45 * @param c Linear systems solver environment
46 */
48 solver_common *c);
49
50
51# ifdef __cplusplus
52}
53# endif /* ifdef __cplusplus */
54
55#endif /*NONCONVEX_H*/
ladel_double c_float
type for floating point numbers
Definition global_opts.h:41
void set_settings_nonconvex(QPALMWorkspace *work, solver_common *c)
Set the proximal parameters for nonconvex QPs.
Definition nonconvex.c:331
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.
Definition nonconvex.c:353
QPALM Workspace.
Definition types.h:204
Internal data structures used in QPALM.
ladel_work solver_common
Definition types.h:25
ladel_sparse_matrix solver_sparse
Definition types.h:26