15 size_t n = work->
data->
n;
16 size_t m = work->
data->
m;
51 for (i = 0; i<m*2; i++){
64 for (i = 0; i<m*2; i++){
65 if (work->
delta[i] > 0) {
72 for (i = 0; i<m*2; i++){
90 if (nL == 0 || a*work->
s[0].
x+b > 0) {
106 if (a*work->
s[i].
x+b > 0) {
126 for (i = 0; i < n; i++) {
136 size_t nb_elements = 0;
137 for (i = 0; i < n; i++) {
139 b[nb_elements] = a[i];
149 for (i = 0; i < n; i++) {
163 if (f < s)
return -1;
ladel_int c_int
type for integer numbers
ladel_double c_float
type for floating point numbers
void vec_add_scaled(const c_float *a, const c_float *b, c_float *c, c_float sc, size_t n)
Scaled addition of one vector to another vector, .
void vec_ew_div(const c_float *a, const c_float *b, c_float *c, size_t n)
Elementwise division, .
void vec_self_mult_scalar(c_float *a, c_float sc, size_t n)
Mulitply vector with a constant scale factor.
void vec_ew_prod(const c_float *a, const c_float *b, c_float *c, size_t n)
Elementwise product, .
c_float vec_prod(const c_float *a, const c_float *b, size_t n)
Inner product between two vectors, .
void prea_vec_copy(const c_float *a, c_float *b, size_t n)
Copy vector a into preallocated vector b.
Linear algebra with vectors.
void vec_array_copy(c_float *a, array_element *b, size_t n)
Helper function to copy vector a in array b (with indices)
void select_subsequence(const array_element *a, array_element *b, const c_int *L, size_t n)
Select subsequence based on a set of indices, .
c_float exact_linesearch(QPALMWorkspace *work, solver_common *c)
Execute exact linesearch (using qsort)
c_float vec_prod_ind(const c_float *a, const c_float *b, const c_int *L, size_t n)
Inner product over index set, .
int compare(const void *a, const void *b)
Helper function for qsort.
Routines to perform exact linesearch.
void mat_vec(solver_sparse *A, solver_dense *x, solver_dense *y, solver_common *c)
Matrix-vector multiplication.
size_t m
number of constraints m
c_float * bmin
dense array for lower bounds (size m)
size_t n
number of variables n
solver_sparse * A
sparse linear constraints matrix A (size m x n)
c_float * bmax
dense array for upper bounds (size m)
solver_sparse * Q
sparse quadratic part of the cost Q (size n x n)
c_int proximal
boolean, use proximal method of multipliers or not
solver_dense * d
primal update step
c_float eta
linesearch parameter
c_float * delta
linesearch parameter
c_int * index_J
index set J (L xor P)
c_float * temp_m
placeholder for vector of size m
c_int * index_P
index set P (where delta>0)
c_float * sqrt_sigma
elementwise sqrt(sigma)
c_float * sigma
penalty vector
array_element * s
alpha ./ delta
c_float beta
linesearch parameter
QPALMSettings * settings
problem settings
c_float gamma
proximal penalty factor
c_float * df
gradient of the primal objective (+proximal term)
c_float * alpha
linesearch parameter
QPALMSolver * solver
linsys variables
c_float * temp_2m
placeholder for vector of size 2m
QPALMData * data
problem data to work on (possibly scaled)
c_int * index_L
index set L (where s>0)
c_float * d
primal update step
Array to sort in linesearch.
c_float x
value of the element