SuperSCS  1.3.2
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
cones.h
Go to the documentation of this file.
1 /*
2  * The MIT License (MIT)
3  *
4  * Copyright (c) 2017 Pantelis Sopasakis (https://alphaville.github.io),
5  * Krina Menounou (https://www.linkedin.com/in/krinamenounou),
6  * Panagiotis Patrinos (http://homes.esat.kuleuven.be/~ppatrino)
7  * Copyright (c) 2012 Brendan O'Donoghue (bodonoghue85@gmail.com)
8  *
9  * Permission is hereby granted, free of charge, to any person obtaining a copy
10  * of this software and associated documentation files (the "Software"), to deal
11  * in the Software without restriction, including without limitation the rights
12  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13  * copies of the Software, and to permit persons to whom the Software is
14  * furnished to do so, subject to the following conditions:
15  *
16  * The above copyright notice and this permission notice shall be included in all
17  * copies or substantial portions of the Software.
18  *
19  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25  * SOFTWARE.
26  *
27  */
28 #ifndef SCS_CONES_H_GUARD
29 #define SCS_CONES_H_GUARD
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 #include "glbopts.h"
36 #include "scs_blas.h"
37 
38  /* NB: rows of data matrix A must be specified in this exact order */
39 
48  struct scs_cone {
126  };
127 
131  typedef struct scs_cone_work {
132 #ifdef LAPACK_LIB_FOUND
133  /* workspace for eigenvector decompositions: */
134  scs_float * RESTRICT Xs;
135  scs_float * RESTRICT Z;
136  scs_float * RESTRICT e;
137  scs_float * RESTRICT work;
138  blasint * RESTRICT iwork, lwork, liwork;
139 #endif
141  } ScsConeWork;
142 
152  const ScsCone * RESTRICT k,
153  scs_int ** RESTRICT boundaries);
154 
156 
157  char *scs_get_cone_header(const ScsCone *k);
158 
160  const ScsData * RESTRICT d,
161  const ScsCone * RESTRICT k);
162 
169  scs_float * RESTRICT x,
170  const ScsCone * RESTRICT k,
171  ScsConeWork * RESTRICT c,
172  const scs_float * RESTRICT warm_start,
173  scs_int iter);
174 
175  void scs_finish_cone(
176  ScsConeWork * RESTRICT coneWork);
177 
178  char *scs_get_cone_summary(
179  const ScsInfo * RESTRICT info,
180  ScsConeWork * RESTRICT c);
181 
182 #ifdef __cplusplus
183 }
184 #endif
185 #endif
scs_int f
Number of linear equality constraints .
Definition: cones.h:55
scs_int l
Dimension of LP cone .
Definition: cones.h:65
scs_float total_cone_time
Definition: cones.h:140
Terminating information.
Definition: scs.h:539
#define RESTRICT
Definition: glbopts.h:44
scs_int scs_validate_cones(const ScsData *RESTRICT d, const ScsCone *RESTRICT k)
scs_int scs_project_dual_cone(scs_float *RESTRICT x, const ScsCone *RESTRICT k, ScsConeWork *RESTRICT c, const scs_float *RESTRICT warm_start, scs_int iter)
char * scs_get_cone_summary(const ScsInfo *RESTRICT info, ScsConeWork *RESTRICT c)
scs_int *RESTRICT q
Array of SOC constraints .
Definition: cones.h:80
scs_int psize
Number of (primal and dual) power cone tuples .
Definition: cones.h:125
ScsConeWork * scs_init_conework(const ScsCone *RESTRICT k)
char * scs_get_cone_header(const ScsCone *k)
int scs_int
Definition: glbopts.h:96
struct scs_cone_work ScsConeWork
Workspace for cones.
scs_int scs_get_cone_boundaries(const ScsCone *RESTRICT k, scs_int **RESTRICT boundaries)
Cone structure.
Definition: cones.h:48
void scs_finish_cone(ScsConeWork *RESTRICT coneWork)
scs_int ssize
length of PSD array
Definition: cones.h:101
double scs_float
Definition: glbopts.h:100
scs_int ep
Number of primal exponential cone triples .
Definition: cones.h:107
struct containing problem data
Definition: scs.h:254
scs_int qsize
Length of SOC array, i.e., number of second-order cones .
Definition: cones.h:87
scs_float * p
Array of power cone params .
Definition: cones.h:120
scs_int ed
number of dual exponential cone triples
Definition: cones.h:113
scs_int *RESTRICT s
array of PSD constraints
Definition: cones.h:95
Workspace for cones.
Definition: cones.h:131