38 lines
726 B
C
38 lines
726 B
C
#ifndef PROJ_H
|
|
# define PROJ_H
|
|
|
|
# ifdef __cplusplus
|
|
extern "C" {
|
|
# endif // ifdef __cplusplus
|
|
|
|
# include "types.h"
|
|
|
|
|
|
/* Define Projections onto set C involved in the ADMM algorithm */
|
|
|
|
/**
|
|
* Project z onto \f$C = [l, u]\f$
|
|
* @param z Vector to project
|
|
* @param work Workspace
|
|
*/
|
|
void project(OSQPWorkspace *work,
|
|
c_float *z);
|
|
|
|
|
|
/**
|
|
* Ensure z satisfies box constraints and y is is normal cone of z
|
|
* @param work Workspace
|
|
* @param z Primal variable z
|
|
* @param y Dual variable y
|
|
*/
|
|
void project_normalcone(OSQPWorkspace *work,
|
|
c_float *z,
|
|
c_float *y);
|
|
|
|
|
|
# ifdef __cplusplus
|
|
}
|
|
# endif // ifdef __cplusplus
|
|
|
|
#endif // ifndef PROJ_H
|