/** * @file struct_cone.h * @brief 定义锥结构体 * This is definition of cone module * @version 0.1 * @date 2021-09-17 * * @copyright Copyright (c) 2021 * */ #ifndef __STRUCT_CONE_H__ #define __STRUCT_CONE_H__ #include "csocp_config.h" /** 线性锥(非负象限)结构体 Structure for LP cone */ struct c_lp_s { c_int ndim; /**< 线性锥的维度 dimension of cone */ c_int *idxmap; /**< indices of KKT matrix scales w^2 map */ c_real *w; /**< scalings */ c_real *v; /**< = w^2 - saves multiplications */ }; /** 二阶锥结构体 Structure for SOC cone */ struct c_soc_s { c_int ndim; /**< 二阶锥的维度 dimension of SOC cones */ c_int *idxmap; /**< */ c_real *q; /**< */ c_real *sk; /**< tmp var */ c_real *zk; /**< tmp var */ c_real eta; /**< eta */ c_real eta_q; /**< eta^2 */ c_real d1; /**< first elem of D */ c_real u0; /**< eta */ c_real u1; /**< u = [u0; u1*q] */ c_real v1; /**< v = [0; v1*q] */ }; /** 锥结构的主结构体 The main cone structure */ struct c_cone_s { c_lp *lp; /**< 线性锥 LP cone */ c_int nsoc; /**< 二阶锥的数量 Number of SOC cones */ c_soc **soc; /**< 二阶锥 SOC cones */ }; #endif