https://github.com/cvxgrp/scs
Tip revision: cdea8dfde1a2bffdf976b69dffd08cd0b87394ef authored by Brendan O'Donoghue on 30 November 2017, 11:04:50 UTC
testing
testing
Tip revision: cdea8df
cones.h
#ifndef CONES_H_GUARD
#define CONES_H_GUARD
#ifdef __cplusplus
extern "C" {
#endif
#include "glbopts.h"
#include "scs.h"
#include "scs_blas.h"
/* private data to help cone projection step */
struct SCS_CONE_WORK {
scs_float total_cone_time;
#ifdef USE_LAPACK
/* workspace for eigenvector decompositions: */
scs_float *Xs, *Z, *e, *work;
blas_int *iwork, lwork, liwork;
#endif
};
/*
* 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
* returns length of boundaries array, boundaries malloc-ed here so should be
* freed
*/
scs_int get_cone_boundaries(const ScsCone *k, scs_int **boundaries);
ScsConeWork *init_cone(const ScsCone *k);
char *get_cone_header(const ScsCone *k);
scs_int validate_cones(const ScsData *d, const ScsCone *k);
/* pass in iter to control how accurate the cone projection
with iteration, set iter < 0 for exact projection, warm_start contains guess
of solution, can be SCS_NULL*/
scs_int proj_dual_cone(scs_float *x, const ScsCone *k, ScsConeWork *c,
const scs_float *warm_start, scs_int iter);
void finish_cone(ScsConeWork *c);
char *get_cone_summary(const ScsInfo *info, ScsConeWork *c);
#ifdef __cplusplus
}
#endif
#endif