scs 0.5.1 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/lib/scs/ffi.rb +2 -0
  4. data/lib/scs/version.rb +1 -1
  5. data/vendor/scs/CITATION.cff +2 -2
  6. data/vendor/scs/CMakeLists.txt +136 -6
  7. data/vendor/scs/Makefile +53 -3
  8. data/vendor/scs/README.md +1 -1
  9. data/vendor/scs/include/cones.h +47 -2
  10. data/vendor/scs/include/glbopts.h +1 -1
  11. data/vendor/scs/include/scs.h +29 -0
  12. data/vendor/scs/include/scs_blas.h +4 -0
  13. data/vendor/scs/include/scs_types.h +3 -1
  14. data/vendor/scs/include/util_spectral_cones.h +45 -0
  15. data/vendor/scs/linsys/cpu/direct/private.c +3 -3
  16. data/vendor/scs/linsys/cpu/direct/private.h +2 -1
  17. data/vendor/scs/linsys/csparse.c +1 -1
  18. data/vendor/scs/linsys/cudss/direct/private.c +279 -0
  19. data/vendor/scs/linsys/cudss/direct/private.h +63 -0
  20. data/vendor/scs/linsys/external/qdldl/qdldl_types.h +1 -1
  21. data/vendor/scs/linsys/gpu/indirect/private.c +14 -21
  22. data/vendor/scs/scs.mk +17 -2
  23. data/vendor/scs/src/aa.c +8 -12
  24. data/vendor/scs/src/cones.c +783 -12
  25. data/vendor/scs/src/rw.c +15 -1
  26. data/vendor/scs/src/scs.c +4 -0
  27. data/vendor/scs/src/spectral_cones/logdeterminant/log_cone_IPM.c +660 -0
  28. data/vendor/scs/src/spectral_cones/logdeterminant/log_cone_Newton.c +279 -0
  29. data/vendor/scs/src/spectral_cones/logdeterminant/log_cone_wrapper.c +205 -0
  30. data/vendor/scs/src/spectral_cones/logdeterminant/logdet_cone.c +143 -0
  31. data/vendor/scs/src/spectral_cones/nuclear/ell1_cone.c +221 -0
  32. data/vendor/scs/src/spectral_cones/nuclear/nuclear_cone.c +99 -0
  33. data/vendor/scs/src/spectral_cones/sum-largest/sum_largest_cone.c +196 -0
  34. data/vendor/scs/src/spectral_cones/sum-largest/sum_largest_eval_cone.c +140 -0
  35. data/vendor/scs/src/spectral_cones/util_spectral_cones.c +52 -0
  36. data/vendor/scs/test/problems/complex_PSD.h +83 -0
  37. data/vendor/scs/test/rng.h +4 -4
  38. data/vendor/scs/test/run_tests.c +25 -0
  39. data/vendor/scs/test/spectral_cones_problems/exp_design.h +141 -0
  40. data/vendor/scs/test/spectral_cones_problems/graph_partitioning.h +275 -0
  41. data/vendor/scs/test/spectral_cones_problems/robust_pca.h +253 -0
  42. data/vendor/scs/test/spectral_cones_problems/several_logdet_cones.h +222 -0
  43. data/vendor/scs/test/spectral_cones_problems/several_nuc_cone.h +285 -0
  44. data/vendor/scs/test/spectral_cones_problems/several_sum_largest.h +420 -0
  45. metadata +21 -2
data/vendor/scs/src/rw.c CHANGED
@@ -328,7 +328,7 @@ void SCS(log_data_to_csv)(const ScsCone *k, const ScsSettings *stgs,
328
328
  "tau_normalized,"
329
329
  "kap_normalized,"
330
330
  "ax_nrm_inf,"
331
- "ax_s_nrm_inf"
331
+ "ax_s_nrm_inf,"
332
332
  "px_nrm_inf,"
333
333
  "aty_nrm_inf,"
334
334
  "xt_p_x,"
@@ -348,6 +348,13 @@ void SCS(log_data_to_csv)(const ScsCone *k, const ScsSettings *stgs,
348
348
  "accepted_accel_steps,"
349
349
  "rejected_accel_steps,"
350
350
  "time,"
351
+ #ifdef USE_LAPACK
352
+ "spectral_Newton_iter,"
353
+ "plain_Newton_success,"
354
+ "res_dual_spectral,"
355
+ "res_pri_spectral,"
356
+ "comp_spectral,"
357
+ #endif
351
358
  "\n");
352
359
  }
353
360
  fprintf(fout, "%li,", (long)iter);
@@ -412,6 +419,13 @@ void SCS(log_data_to_csv)(const ScsCone *k, const ScsSettings *stgs,
412
419
  fprintf(fout, "%li,", (long)w->accepted_accel_steps);
413
420
  fprintf(fout, "%li,", (long)w->rejected_accel_steps);
414
421
  fprintf(fout, "%.16e,", SCS(tocq)(solve_timer) / 1e3);
422
+ #ifdef USE_SPECTRAL_CONES
423
+ fprintf(fout, "%li,", (long)w->cone_work->newton_stats.iter);
424
+ fprintf(fout, "%li,", (long)w->cone_work->newton_stats.newton_success);
425
+ fprintf(fout, "%.16e,", w->cone_work->newton_stats.residuals[0]);
426
+ fprintf(fout, "%.16e,", w->cone_work->newton_stats.residuals[1]);
427
+ fprintf(fout, "%.16e,", w->cone_work->newton_stats.residuals[2]);
428
+ #endif
415
429
  fprintf(fout, "\n");
416
430
  fclose(fout);
417
431
  }
data/vendor/scs/src/scs.c CHANGED
@@ -550,6 +550,10 @@ static void finalize(ScsWork *w, ScsSolution *sol, ScsInfo *info,
550
550
  info->rejected_accel_steps = w->rejected_accel_steps;
551
551
  info->accepted_accel_steps = w->accepted_accel_steps;
552
552
  info->comp_slack = ABS(sty);
553
+ #ifdef SPECTRAL_TIMING_FLAG
554
+ info->ave_time_matrix_cone_proj = w->cone_work->tot_time_mat_cone_proj / iter;
555
+ info->ave_time_vector_cone_proj = w->cone_work->tot_time_vec_cone_proj / iter;
556
+ #endif
553
557
  if (info->comp_slack > 1e-5 * MAX(nm_s, nm_y)) {
554
558
  scs_printf("WARNING - large complementary slackness residual: %f\n",
555
559
  info->comp_slack);