vendor/scs/include/cones.h in scs-0.3.1 vs vendor/scs/include/cones.h in scs-0.3.2
- old
+ new
@@ -6,40 +6,43 @@
#endif
#include "glbopts.h"
#include "scs.h"
#include "scs_blas.h"
+#include "scs_work.h"
+#include <string.h>
/* private data to help cone projection step */
struct SCS_CONE_WORK {
/*
* cone_boundaries will contain array of indices of rows of A corresponding to
* cone boundaries, boundaries[0] is starting index for cones of size larger
* than 1
*/
- scs_float *s; /* used for Moreau decomposition in projection */
- scs_int cone_len;
+ const ScsCone *k; /* original cone information */
+ scs_int *cone_boundaries;
+ scs_int cone_boundaries_len;
+ scs_int scaled_cones; /* boolean, whether the cones have been scaled */
+ scs_float *s; /* used for Moreau decomposition in projection */
+ scs_int m; /* total length of cone */
/* box cone quantities */
scs_float *bl, *bu, box_t_warm_start;
#ifdef USE_LAPACK
/* workspace for eigenvector decompositions: */
scs_float *Xs, *Z, *e, *work;
blas_int lwork;
#endif
};
-ScsConeWork *SCS(init_cone)(const ScsCone *k, const ScsScaling *scal,
- scs_int cone_len);
+ScsConeWork *SCS(init_cone)(const ScsCone *k, scs_int m);
char *SCS(get_cone_header)(const ScsCone *k);
scs_int SCS(validate_cones)(const ScsData *d, const ScsCone *k);
-scs_int SCS(set_cone_boundaries)(const ScsCone *k, scs_int **cone_boundaries);
-
-scs_int SCS(proj_dual_cone)(scs_float *x, const ScsCone *k, ScsConeWork *c,
- scs_int normalize);
+scs_int SCS(proj_dual_cone)(scs_float *x, ScsConeWork *c, ScsScaling *scal,
+ scs_float *r_y);
void SCS(finish_cone)(ScsConeWork *c);
-
-void SCS(set_rho_y_vec)(const ScsCone *k, scs_float scale, scs_float *rho_y_vec,
- scs_int m);
+void SCS(set_r_y)(const ScsConeWork *c, scs_float scale, scs_float *r_y);
+void SCS(enforce_cone_boundaries)(const ScsConeWork *c, scs_float *vec,
+ scs_float (*f)(const scs_float *, scs_int));
#ifdef __cplusplus
}
#endif
#endif