QPALM
main
Proximal Augmented Lagrangian method for Quadratic Programs
|
Linear algebra with vectors.
Common operations, such as vector products, infinity norm, elementwise add/product/division/max etc. are included in this file.
Definition in file lin_alg.c.
#include <qpalm/lin_alg.h>
Go to the source code of this file.
Functions | |
c_float * | vec_copy (const c_float *a, size_t n) |
Copy vector a into output. | |
void | prea_vec_copy (const c_float *a, c_float *b, size_t n) |
Copy vector a into preallocated vector b. | |
void | prea_int_vec_copy (const c_int *a, c_int *b, size_t n) |
Copy integer vector a into preallocated vector b. | |
void | vec_set_scalar (c_float *a, c_float sc, size_t n) |
Fill float vector with a scalar value. | |
void | vec_set_scalar_int (c_int *a, c_int sc, size_t n) |
Fill int vector with a scalar value. | |
void | vec_self_mult_scalar (c_float *a, c_float sc, size_t n) |
Mulitply vector with a constant scale factor. | |
void | vec_mult_scalar (const c_float *a, c_float sc, c_float *b, size_t n) |
Mulitply vector with a constant scale factor and store in a different vector. | |
c_float | vec_prod (const c_float *a, const c_float *b, size_t n) |
Inner product between two vectors, \(a^T \cdot b\). | |
c_float | vec_norm_two (const c_float *a, size_t n) |
2-norm of a vector, \(\|a\|_2\). | |
void | vec_ew_prod (const c_float *a, const c_float *b, c_float *c, size_t n) |
Elementwise product, \(c_i = a_i\cdot b_i\). | |
void | vec_ew_div (const c_float *a, const c_float *b, c_float *c, size_t n) |
Elementwise division, \(c_i = a_i/b_i\). | |
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, \(c_i = a_i + sc\cdot b_i\). | |
void | vec_mult_add_scaled (c_float *a, const c_float *b, c_float sc1, c_float sc2, size_t n) |
Scaled addition of one vector to another vector, both being scaled, \(a_i = sc1\cdot a_i + sc2\cdot b_i\). | |
c_float | vec_norm_inf (const c_float *a, size_t n) |
Infinity norm of a vector, \(\|a\|_\infty\). | |
void | vec_ew_recipr (const c_float *a, c_float *b, size_t n) |
Elementwise reciprocal \(b_i = 1/a_i\). | |
void | vec_ew_max_vec (const c_float *a, const c_float *b, c_float *c, size_t n) |
Elementwise maximum between vectors, \(c_i = \textrm{max}(a_i, b_i)\). | |
void | vec_ew_min_vec (const c_float *a, const c_float *b, c_float *c, size_t n) |
Elementwise minimum between vectors, \(c_i = \textrm{min}(a_i, b_i)\). | |
void | vec_ew_mid_vec (const c_float *a, const c_float *bmin, const c_float *bmax, c_float *c, size_t n) |
Elementwise mid between vectors, \(c_i = \textrm{max}(b_{\textrm{min},i}, \textrm{min}(a_i, b_{\textrm{max},i}))\). | |
void | vec_ew_sqrt (const c_float *a, c_float *b, size_t n) |
Elementwise square root, \(b_i = \sqrt{a_i}\). | |
Scaled addition of one vector to another vector, both being scaled, \(a_i = sc1\cdot a_i + sc2\cdot b_i\).
a | Input and Output vector |
b | Input vector |
sc1 | Scaling value for a |
sc2 | Scaling value for b |
n | Vector length |
Definition at line 118 of file lin_alg.c.