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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/scs/ffi.rb +2 -0
- data/lib/scs/version.rb +1 -1
- data/vendor/scs/CITATION.cff +2 -2
- data/vendor/scs/CMakeLists.txt +136 -6
- data/vendor/scs/Makefile +53 -3
- data/vendor/scs/README.md +1 -1
- data/vendor/scs/include/cones.h +47 -2
- data/vendor/scs/include/glbopts.h +1 -1
- data/vendor/scs/include/scs.h +29 -0
- data/vendor/scs/include/scs_blas.h +4 -0
- data/vendor/scs/include/scs_types.h +3 -1
- data/vendor/scs/include/util_spectral_cones.h +45 -0
- data/vendor/scs/linsys/cpu/direct/private.c +3 -3
- data/vendor/scs/linsys/cpu/direct/private.h +2 -1
- data/vendor/scs/linsys/csparse.c +1 -1
- data/vendor/scs/linsys/cudss/direct/private.c +279 -0
- data/vendor/scs/linsys/cudss/direct/private.h +63 -0
- data/vendor/scs/linsys/external/qdldl/qdldl_types.h +1 -1
- data/vendor/scs/linsys/gpu/indirect/private.c +14 -21
- data/vendor/scs/scs.mk +17 -2
- data/vendor/scs/src/aa.c +8 -12
- data/vendor/scs/src/cones.c +783 -12
- data/vendor/scs/src/rw.c +15 -1
- data/vendor/scs/src/scs.c +4 -0
- data/vendor/scs/src/spectral_cones/logdeterminant/log_cone_IPM.c +660 -0
- data/vendor/scs/src/spectral_cones/logdeterminant/log_cone_Newton.c +279 -0
- data/vendor/scs/src/spectral_cones/logdeterminant/log_cone_wrapper.c +205 -0
- data/vendor/scs/src/spectral_cones/logdeterminant/logdet_cone.c +143 -0
- data/vendor/scs/src/spectral_cones/nuclear/ell1_cone.c +221 -0
- data/vendor/scs/src/spectral_cones/nuclear/nuclear_cone.c +99 -0
- data/vendor/scs/src/spectral_cones/sum-largest/sum_largest_cone.c +196 -0
- data/vendor/scs/src/spectral_cones/sum-largest/sum_largest_eval_cone.c +140 -0
- data/vendor/scs/src/spectral_cones/util_spectral_cones.c +52 -0
- data/vendor/scs/test/problems/complex_PSD.h +83 -0
- data/vendor/scs/test/rng.h +4 -4
- data/vendor/scs/test/run_tests.c +25 -0
- data/vendor/scs/test/spectral_cones_problems/exp_design.h +141 -0
- data/vendor/scs/test/spectral_cones_problems/graph_partitioning.h +275 -0
- data/vendor/scs/test/spectral_cones_problems/robust_pca.h +253 -0
- data/vendor/scs/test/spectral_cones_problems/several_logdet_cones.h +222 -0
- data/vendor/scs/test/spectral_cones_problems/several_nuc_cone.h +285 -0
- data/vendor/scs/test/spectral_cones_problems/several_sum_largest.h +420 -0
- 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);
|