QPALM main
Proximal Augmented Lagrangian method for Quadratic Programs
Loading...
Searching...
No Matches
Functions
linesearch.c File Reference

Detailed Description

Routines to perform exact or backtracking linesearch.

Author
Ben Hermans

Once the direction is found using the semismooth Newton method, the functions in this file can be called to calculate a stepsize, either using exact linesearch or a backtracking linesearch to satisfy the armijo condition.

Definition in file linesearch.c.

#include <qpalm/linesearch.h>
#include <qpalm/lin_alg.h>
#include <stdlib.h>
+ Include dependency graph for linesearch.c:

Go to the source code of this file.

Functions

c_float exact_linesearch (QPALMWorkspace *work, solver_common *c)
 Execute exact linesearch (using qsort)
 
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, \(b = a(L)\).
 
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, \(a(L)^T\cdot b(L)\).
 
int compare (const void *a, const void *b)
 Helper function for qsort.
 

Function Documentation

◆ exact_linesearch()

c_float exact_linesearch ( QPALMWorkspace work,
solver_common c 
)

Execute exact linesearch (using qsort)

Parameters
workWorkspace
cLinear systems solver environment
Returns
tau Step size

Definition at line 14 of file linesearch.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vec_array_copy()

void vec_array_copy ( c_float a,
array_element b,
size_t  n 
)

Helper function to copy vector a in array b (with indices)

Parameters
aVector
bArray (vector with added indices)
nVector length

Definition at line 122 of file linesearch.c.

+ Here is the caller graph for this function:

◆ select_subsequence()

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, \(b = a(L)\).

Parameters
aInput array
bOutpur array
LIndex set
nLength of a

Definition at line 134 of file linesearch.c.

+ Here is the caller graph for this function:

◆ vec_prod_ind()

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, \(a(L)^T\cdot b(L)\).

Parameters
aVector
bVector
LIndex set
nVector length

Definition at line 145 of file linesearch.c.

+ Here is the caller graph for this function:

◆ compare()

int compare ( const void *  a,
const void *  b 
)

Helper function for qsort.

Carries out comparison between two array_elements

Parameters
aPointer to array element
bPointer to array element
Returns
a.x > b.x

Definition at line 158 of file linesearch.c.

+ Here is the caller graph for this function: