https://github.com/cvxgrp/scs
Raw File
Tip revision: cdea8dfde1a2bffdf976b69dffd08cd0b87394ef authored by Brendan O'Donoghue on 30 November 2017, 11:04:50 UTC
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
back to top