struct_cone.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /**
  2. * @file struct_cone.h
  3. * @brief 定义锥结构体
  4. * This is definition of cone module
  5. * @version 0.1
  6. * @date 2021-09-17
  7. *
  8. * @copyright Copyright (c) 2021
  9. *
  10. */
  11. #ifndef __STRUCT_CONE_H__
  12. #define __STRUCT_CONE_H__
  13. #include "csocp_config.h"
  14. /** 线性锥(非负象限)结构体 Structure for LP cone */
  15. struct c_lp_s {
  16. c_int ndim; /**< 线性锥的维度 dimension of cone */
  17. c_int *idxmap; /**< indices of KKT matrix scales w^2 map */
  18. c_real *w; /**< scalings */
  19. c_real *v; /**< = w^2 - saves multiplications */
  20. };
  21. /** 二阶锥结构体 Structure for SOC cone */
  22. struct c_soc_s {
  23. c_int ndim; /**< 二阶锥的维度 dimension of SOC cones */
  24. c_int *idxmap; /**< */
  25. c_real *q; /**< */
  26. c_real *sk; /**< tmp var */
  27. c_real *zk; /**< tmp var */
  28. c_real eta; /**< eta */
  29. c_real eta_q; /**< eta^2 */
  30. c_real d1; /**< first elem of D */
  31. c_real u0; /**< eta */
  32. c_real u1; /**< u = [u0; u1*q] */
  33. c_real v1; /**< v = [0; v1*q] */
  34. };
  35. /** 锥结构的主结构体 The main cone structure */
  36. struct c_cone_s {
  37. c_lp *lp; /**< 线性锥 LP cone */
  38. c_int nsoc; /**< 二阶锥的数量 Number of SOC cones */
  39. c_soc **soc; /**< 二阶锥 SOC cones */
  40. };
  41. #endif