1 #ifndef PROJ_H
2 # define PROJ_H
3 
4 # ifdef __cplusplus
5 extern "C" {
6 # endif // ifdef __cplusplus
7 
8 # include "types.h"
9 
10 
11 /* Define Projections onto set C involved in the ADMM algorithm */
12 
13 /**
14  * Project z onto \f$C = [l, u]\f$
15  * @param z    Vector to project
16  * @param work Workspace
17  */
18 void project(OSQPWorkspace *work,
19              c_float       *z);
20 
21 
22 /**
23  * Ensure z satisfies box constraints and y is is normal cone of z
24  * @param work Workspace
25  * @param z    Primal variable z
26  * @param y    Dual variable y
27  */
28 void project_normalcone(OSQPWorkspace *work,
29                         c_float       *z,
30                         c_float       *y);
31 
32 
33 # ifdef __cplusplus
34 }
35 # endif // ifdef __cplusplus
36 
37 #endif // ifndef PROJ_H
38