scs 3.2.7__tar.gz → 3.2.8__tar.gz

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 (278) hide show
  1. {scs-3.2.7 → scs-3.2.8}/.bumpversion.cfg +1 -2
  2. scs-3.2.8/.github/workflows/build.yml +183 -0
  3. {scs-3.2.7 → scs-3.2.8}/.gitignore +4 -0
  4. scs-3.2.8/.gitmodules +6 -0
  5. scs-3.2.8/PKG-INFO +54 -0
  6. {scs-3.2.7 → scs-3.2.8}/README.md +1 -2
  7. {scs-3.2.7 → scs-3.2.8}/legacy_setup.py +23 -1
  8. scs-3.2.8/meson.build +253 -0
  9. scs-3.2.8/meson.options +27 -0
  10. scs-3.2.8/pixi.toml +12 -0
  11. scs-3.2.8/pyproject.toml +101 -0
  12. {scs-3.2.7/scs → scs-3.2.8/scs/py}/__init__.py +18 -9
  13. scs-3.2.8/scs/pythoncapi-compat/.github/workflows/build.yml +122 -0
  14. scs-3.2.8/scs/pythoncapi-compat/.gitignore +5 -0
  15. scs-3.2.8/scs/pythoncapi-compat/.readthedocs.yaml +12 -0
  16. scs-3.2.8/scs/pythoncapi-compat/CODE_OF_CONDUCT.md +11 -0
  17. scs-3.2.8/scs/pythoncapi-compat/COPYING +14 -0
  18. scs-3.2.8/scs/pythoncapi-compat/README.rst +55 -0
  19. scs-3.2.8/scs/pythoncapi-compat/docs/Makefile +20 -0
  20. scs-3.2.8/scs/pythoncapi-compat/docs/api.rst +796 -0
  21. scs-3.2.8/scs/pythoncapi-compat/docs/changelog.rst +191 -0
  22. scs-3.2.8/scs/pythoncapi-compat/docs/conf.py +53 -0
  23. scs-3.2.8/scs/pythoncapi-compat/docs/index.rst +29 -0
  24. scs-3.2.8/scs/pythoncapi-compat/docs/links.rst +29 -0
  25. scs-3.2.8/scs/pythoncapi-compat/docs/make.bat +35 -0
  26. scs-3.2.8/scs/pythoncapi-compat/docs/tests.rst +17 -0
  27. scs-3.2.8/scs/pythoncapi-compat/docs/upgrade.rst +168 -0
  28. scs-3.2.8/scs/pythoncapi-compat/docs/users.rst +74 -0
  29. scs-3.2.8/scs/pythoncapi-compat/pythoncapi_compat.h +2270 -0
  30. scs-3.2.8/scs/pythoncapi-compat/runtests.py +122 -0
  31. scs-3.2.8/scs/pythoncapi-compat/tests/__init__.py +0 -0
  32. scs-3.2.8/scs/pythoncapi-compat/tests/setup.py +110 -0
  33. scs-3.2.8/scs/pythoncapi-compat/tests/test_pythoncapi_compat.py +220 -0
  34. scs-3.2.8/scs/pythoncapi-compat/tests/test_pythoncapi_compat_cext.c +2412 -0
  35. scs-3.2.8/scs/pythoncapi-compat/tests/test_pythoncapi_compat_cppext.cpp +4 -0
  36. scs-3.2.8/scs/pythoncapi-compat/tests/test_upgrade_pythoncapi.py +962 -0
  37. scs-3.2.8/scs/pythoncapi-compat/tests/utils.py +41 -0
  38. scs-3.2.8/scs/pythoncapi-compat/upgrade_pythoncapi.py +752 -0
  39. {scs-3.2.7 → scs-3.2.8}/scs/scsmodule.h +6 -0
  40. {scs-3.2.7 → scs-3.2.8}/scs/scsobject.h +9 -7
  41. {scs-3.2.7 → scs-3.2.8}/scs_source/.bumpversion.cfg +1 -2
  42. scs-3.2.8/scs_source/.github/workflows/build_spectral.yml +36 -0
  43. scs-3.2.8/scs_source/.github/workflows/cmake_cudss.yml +36 -0
  44. {scs-3.2.7 → scs-3.2.8}/scs_source/.github/workflows/docs.yml +1 -1
  45. {scs-3.2.7 → scs-3.2.8}/scs_source/.github/workflows/gpu.yml +10 -1
  46. {scs-3.2.7 → scs-3.2.8}/scs_source/.gitignore +1 -0
  47. {scs-3.2.7 → scs-3.2.8}/scs_source/CITATION.cff +2 -2
  48. {scs-3.2.7 → scs-3.2.8}/scs_source/CMakeLists.txt +136 -6
  49. {scs-3.2.7 → scs-3.2.8}/scs_source/Makefile +53 -3
  50. {scs-3.2.7 → scs-3.2.8}/scs_source/README.md +1 -1
  51. {scs-3.2.7 → scs-3.2.8}/scs_source/cmake/scs_types.h.in +4 -5
  52. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/Doxyfile +1 -1
  53. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/api/cones.rst +42 -19
  54. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/api/index.rst +3 -0
  55. scs-3.2.8/scs_source/docs/src/api/javascript.rst +190 -0
  56. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/citing/index.rst +1 -1
  57. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/conf.py +1 -1
  58. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/contributing/index.rst +0 -1
  59. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/index.rst +3 -0
  60. scs-3.2.8/scs_source/docs/src/examples/javascript.rst +241 -0
  61. scs-3.2.8/scs_source/docs/src/examples/javascript_disc.html +316 -0
  62. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/mpc.py +1 -1
  63. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/index.rst +1 -1
  64. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/install/c.rst +32 -1
  65. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/install/index.rst +3 -0
  66. scs-3.2.8/scs_source/docs/src/install/javascript.rst +50 -0
  67. scs-3.2.8/scs_source/docs/src/install/python.rst +51 -0
  68. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/linear_solver/index.rst +17 -0
  69. {scs-3.2.7 → scs-3.2.8}/scs_source/include/cones.h +47 -2
  70. {scs-3.2.7 → scs-3.2.8}/scs_source/include/glbopts.h +1 -1
  71. {scs-3.2.7 → scs-3.2.8}/scs_source/include/scs.h +29 -0
  72. {scs-3.2.7 → scs-3.2.8}/scs_source/include/scs_blas.h +4 -0
  73. {scs-3.2.7 → scs-3.2.8}/scs_source/include/scs_types.h +3 -1
  74. scs-3.2.8/scs_source/include/util_spectral_cones.h +45 -0
  75. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/cpu/direct/private.c +3 -3
  76. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/cpu/direct/private.h +2 -1
  77. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/csparse.c +1 -1
  78. scs-3.2.8/scs_source/linsys/cudss/direct/private.c +279 -0
  79. scs-3.2.8/scs_source/linsys/cudss/direct/private.h +63 -0
  80. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/qdldl/qdldl_types.h +1 -1
  81. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/gpu/indirect/private.c +14 -21
  82. {scs-3.2.7 → scs-3.2.8}/scs_source/scs.mk +17 -2
  83. {scs-3.2.7 → scs-3.2.8}/scs_source/src/aa.c +8 -12
  84. scs-3.2.8/scs_source/src/cones.c +1605 -0
  85. {scs-3.2.7 → scs-3.2.8}/scs_source/src/rw.c +15 -1
  86. {scs-3.2.7 → scs-3.2.8}/scs_source/src/scs.c +4 -0
  87. scs-3.2.8/scs_source/src/spectral_cones/logdeterminant/log_cone_IPM.c +660 -0
  88. scs-3.2.8/scs_source/src/spectral_cones/logdeterminant/log_cone_Newton.c +279 -0
  89. scs-3.2.8/scs_source/src/spectral_cones/logdeterminant/log_cone_wrapper.c +205 -0
  90. scs-3.2.8/scs_source/src/spectral_cones/logdeterminant/logdet_cone.c +143 -0
  91. scs-3.2.8/scs_source/src/spectral_cones/nuclear/ell1_cone.c +221 -0
  92. scs-3.2.8/scs_source/src/spectral_cones/nuclear/nuclear_cone.c +99 -0
  93. scs-3.2.8/scs_source/src/spectral_cones/sum-largest/sum_largest_cone.c +196 -0
  94. scs-3.2.8/scs_source/src/spectral_cones/sum-largest/sum_largest_eval_cone.c +140 -0
  95. scs-3.2.8/scs_source/src/spectral_cones/util_spectral_cones.c +52 -0
  96. scs-3.2.8/scs_source/test/problems/complex_PSD.h +83 -0
  97. {scs-3.2.7 → scs-3.2.8}/scs_source/test/rng.h +4 -4
  98. {scs-3.2.7 → scs-3.2.8}/scs_source/test/run_tests.c +25 -0
  99. scs-3.2.8/scs_source/test/spectral_cones_problems/exp_design.h +141 -0
  100. scs-3.2.8/scs_source/test/spectral_cones_problems/graph_partitioning.h +275 -0
  101. scs-3.2.8/scs_source/test/spectral_cones_problems/robust_pca.h +253 -0
  102. scs-3.2.8/scs_source/test/spectral_cones_problems/several_logdet_cones.h +222 -0
  103. scs-3.2.8/scs_source/test/spectral_cones_problems/several_nuc_cone.h +285 -0
  104. scs-3.2.8/scs_source/test/spectral_cones_problems/several_sum_largest.h +420 -0
  105. scs-3.2.8/test/test_solve_random_cone_prob_cudss.py +82 -0
  106. {scs-3.2.7 → scs-3.2.8}/test/test_solve_random_cone_prob_mkl.py +1 -1
  107. scs-3.2.7/.github/workflows/build.yml +0 -236
  108. scs-3.2.7/.gitmodules +0 -3
  109. scs-3.2.7/MANIFEST.in +0 -17
  110. scs-3.2.7/PKG-INFO +0 -41
  111. scs-3.2.7/meson.build +0 -194
  112. scs-3.2.7/meson.options +0 -7
  113. scs-3.2.7/pyproject.toml +0 -21
  114. scs-3.2.7/scs_source/docs/src/install/python.rst +0 -54
  115. scs-3.2.7/scs_source/src/cones.c +0 -834
  116. {scs-3.2.7 → scs-3.2.8}/.github/ISSUE_TEMPLATE.md +0 -0
  117. {scs-3.2.7 → scs-3.2.8}/.github/dependabot.yml +0 -0
  118. {scs-3.2.7 → scs-3.2.8}/LICENSE +0 -0
  119. {scs-3.2.7 → scs-3.2.8}/distribute.sh +0 -0
  120. {scs-3.2.7 → scs-3.2.8}/notebooks/analyze_csv_logs.ipynb +0 -0
  121. {scs-3.2.7 → scs-3.2.8}/notebooks/scs_benchmarks.ipynb +0 -0
  122. {scs-3.2.7 → scs-3.2.8}/notebooks/scs_qp.ipynb +0 -0
  123. {scs-3.2.7 → scs-3.2.8}/scs/scspy.c +0 -0
  124. {scs-3.2.7 → scs-3.2.8}/scs_source/.github/ISSUE_TEMPLATE.md +0 -0
  125. {scs-3.2.7 → scs-3.2.8}/scs_source/.github/dependabot.yml +0 -0
  126. {scs-3.2.7 → scs-3.2.8}/scs_source/.github/workflows/build.yml +0 -0
  127. {scs-3.2.7 → scs-3.2.8}/scs_source/.github/workflows/build_mkl.yml +0 -0
  128. {scs-3.2.7 → scs-3.2.8}/scs_source/.github/workflows/build_openmp.yml +0 -0
  129. {scs-3.2.7 → scs-3.2.8}/scs_source/.github/workflows/buildpp.yml +0 -0
  130. {scs-3.2.7 → scs-3.2.8}/scs_source/.github/workflows/cmake.yml +0 -0
  131. {scs-3.2.7 → scs-3.2.8}/scs_source/.github/workflows/cmake_mkl.yml +0 -0
  132. {scs-3.2.7 → scs-3.2.8}/scs_source/.github/workflows/cmake_openmp.yml +0 -0
  133. {scs-3.2.7 → scs-3.2.8}/scs_source/.github/workflows/coverage.yml +0 -0
  134. {scs-3.2.7 → scs-3.2.8}/scs_source/.github/workflows/valgrind.yml +0 -0
  135. {scs-3.2.7 → scs-3.2.8}/scs_source/LICENSE.txt +0 -0
  136. {scs-3.2.7 → scs-3.2.8}/scs_source/cmake/AddInstallRPATHSupport.cmake +0 -0
  137. {scs-3.2.7 → scs-3.2.8}/scs_source/cmake/AddUninstallTarget.cmake +0 -0
  138. {scs-3.2.7 → scs-3.2.8}/scs_source/cmake/InstallBasicPackageFiles.cmake +0 -0
  139. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/Makefile +0 -0
  140. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/_static/css/scs_theme.css +0 -0
  141. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/_static/favicon.ico +0 -0
  142. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/_static/scs_logo.png +0 -0
  143. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/_static/scs_logo_transparent.png +0 -0
  144. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/algorithm/acceleration.rst +0 -0
  145. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/algorithm/equilibration.rst +0 -0
  146. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/algorithm/index.rst +0 -0
  147. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/algorithm/relaxation.rst +0 -0
  148. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/algorithm/scale.rst +0 -0
  149. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/algorithm/warm_start.rst +0 -0
  150. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/api/c.rst +0 -0
  151. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/api/compile_flags.rst +0 -0
  152. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/api/exit_flags.rst +0 -0
  153. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/api/info.rst +0 -0
  154. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/api/julia.rst +0 -0
  155. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/api/matlab.rst +0 -0
  156. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/api/matrices.rst +0 -0
  157. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/api/python.rst +0 -0
  158. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/api/r.rst +0 -0
  159. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/api/ruby.rst +0 -0
  160. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/api/settings.rst +0 -0
  161. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/blas_lapack/index.rst +0 -0
  162. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/.gitignore +0 -0
  163. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/c.rst +0 -0
  164. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/julia.rst +0 -0
  165. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/matlab.rst +0 -0
  166. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/basic_qp.rst +0 -0
  167. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/entropy.py +0 -0
  168. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/entropy.py.out +0 -0
  169. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/entropy.rst +0 -0
  170. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/lasso.py +0 -0
  171. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/lasso.py.out +0 -0
  172. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/lasso.rst +0 -0
  173. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/mat_completion.py +0 -0
  174. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/mat_completion.py.out +0 -0
  175. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/mat_completion.rst +0 -0
  176. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/mpc.py.out +0 -0
  177. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/mpc.rst +0 -0
  178. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/qp.py +0 -0
  179. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/qp.py.out +0 -0
  180. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python.rst +0 -0
  181. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/qp.c +0 -0
  182. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/qp.c.out +0 -0
  183. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/qp.m +0 -0
  184. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/qp.m.out +0 -0
  185. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/qp.prob +0 -0
  186. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/r.rst +0 -0
  187. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/ruby.rst +0 -0
  188. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/files/qp_solvers_benchmark.png +0 -0
  189. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/files/windows1.png +0 -0
  190. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/files/windows2.png +0 -0
  191. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/files/windows3.png +0 -0
  192. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/help/index.rst +0 -0
  193. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/install/julia.rst +0 -0
  194. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/install/matlab.rst +0 -0
  195. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/install/r.rst +0 -0
  196. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/install/ruby.rst +0 -0
  197. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/make.bat +0 -0
  198. {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/requirements.txt +0 -0
  199. {scs-3.2.7 → scs-3.2.8}/scs_source/include/aa.h +0 -0
  200. {scs-3.2.7 → scs-3.2.8}/scs_source/include/ctrlc.h +0 -0
  201. {scs-3.2.7 → scs-3.2.8}/scs_source/include/linalg.h +0 -0
  202. {scs-3.2.7 → scs-3.2.8}/scs_source/include/linsys.h +0 -0
  203. {scs-3.2.7 → scs-3.2.8}/scs_source/include/normalize.h +0 -0
  204. {scs-3.2.7 → scs-3.2.8}/scs_source/include/rw.h +0 -0
  205. {scs-3.2.7 → scs-3.2.8}/scs_source/include/scs_work.h +0 -0
  206. {scs-3.2.7 → scs-3.2.8}/scs_source/include/util.h +0 -0
  207. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/cpu/indirect/private.c +0 -0
  208. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/cpu/indirect/private.h +0 -0
  209. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/csparse.h +0 -0
  210. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/LICENSE.txt +0 -0
  211. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/SuiteSparse_config.c +0 -0
  212. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/SuiteSparse_config.h +0 -0
  213. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd.h +0 -0
  214. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd_1.c +0 -0
  215. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd_2.c +0 -0
  216. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd_aat.c +0 -0
  217. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd_control.c +0 -0
  218. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd_defaults.c +0 -0
  219. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd_dump.c +0 -0
  220. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd_global.c +0 -0
  221. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd_info.c +0 -0
  222. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd_internal.h +0 -0
  223. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd_order.c +0 -0
  224. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd_post_tree.c +0 -0
  225. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd_postorder.c +0 -0
  226. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd_preprocess.c +0 -0
  227. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd_valid.c +0 -0
  228. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/changes +0 -0
  229. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/qdldl/LICENSE +0 -0
  230. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/qdldl/README.md +0 -0
  231. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/qdldl/changes +0 -0
  232. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/qdldl/qdldl.c +0 -0
  233. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/qdldl/qdldl.h +0 -0
  234. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/gpu/gpu.c +0 -0
  235. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/gpu/gpu.h +0 -0
  236. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/gpu/indirect/private.h +0 -0
  237. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/mkl/direct/private.c +0 -0
  238. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/mkl/direct/private.h +0 -0
  239. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/scs_matrix.c +0 -0
  240. {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/scs_matrix.h +0 -0
  241. {scs-3.2.7 → scs-3.2.8}/scs_source/src/ctrlc.c +0 -0
  242. {scs-3.2.7 → scs-3.2.8}/scs_source/src/exp_cone.c +0 -0
  243. {scs-3.2.7 → scs-3.2.8}/scs_source/src/linalg.c +0 -0
  244. {scs-3.2.7 → scs-3.2.8}/scs_source/src/normalize.c +0 -0
  245. {scs-3.2.7 → scs-3.2.8}/scs_source/src/scs_version.c +0 -0
  246. {scs-3.2.7 → scs-3.2.8}/scs_source/src/util.c +0 -0
  247. {scs-3.2.7 → scs-3.2.8}/scs_source/test/minunit.h +0 -0
  248. {scs-3.2.7 → scs-3.2.8}/scs_source/test/problem_utils.h +0 -0
  249. {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/degenerate.h +0 -0
  250. {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/hs21_tiny_qp.h +0 -0
  251. {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/hs21_tiny_qp_rw.h +0 -0
  252. {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/infeasible_tiny_qp.h +0 -0
  253. {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/max_ent +0 -0
  254. {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/max_ent.h +0 -0
  255. {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/mpc_bug.h +0 -0
  256. {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/mpc_bug1 +0 -0
  257. {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/mpc_bug2 +0 -0
  258. {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/mpc_bug3 +0 -0
  259. {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/qafiro_tiny_qp.h +0 -0
  260. {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/random_prob +0 -0
  261. {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/random_prob.h +0 -0
  262. {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/rob_gauss_cov_est.h +0 -0
  263. {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/small_lp.h +0 -0
  264. {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/small_qp.h +0 -0
  265. {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/test_exp_cone.h +0 -0
  266. {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/test_prob_from_data_file.h +0 -0
  267. {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/test_validation.h +0 -0
  268. {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/unbounded_tiny_qp.h +0 -0
  269. {scs-3.2.7 → scs-3.2.8}/scs_source/test/random_socp_prob.c +0 -0
  270. {scs-3.2.7 → scs-3.2.8}/scs_source/test/run_from_file.c +0 -0
  271. {scs-3.2.7 → scs-3.2.8}/test/gen_random_cone_prob.py +0 -0
  272. {scs-3.2.7 → scs-3.2.8}/test/solve_random_cone_prob.py +0 -0
  273. {scs-3.2.7 → scs-3.2.8}/test/test_scs_basic.py +0 -0
  274. {scs-3.2.7 → scs-3.2.8}/test/test_scs_object.py +0 -0
  275. {scs-3.2.7 → scs-3.2.8}/test/test_scs_quad.py +0 -0
  276. {scs-3.2.7 → scs-3.2.8}/test/test_scs_rand.py +0 -0
  277. {scs-3.2.7 → scs-3.2.8}/test/test_scs_sdp.py +0 -0
  278. {scs-3.2.7 → scs-3.2.8}/test/test_solve_random_cone_prob.py +0 -0
@@ -1,7 +1,6 @@
1
1
  [bumpversion]
2
- current_version = 3.2.7
2
+ current_version = 3.2.8
3
3
 
4
4
  [bumpversion:file:legacy_setup.py]
5
5
 
6
6
  [bumpversion:file:pyproject.toml]
7
-
@@ -0,0 +1,183 @@
1
+ name: build
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches:
7
+ - master
8
+ tags:
9
+ - '*'
10
+
11
+ jobs:
12
+
13
+ build_openmp:
14
+ runs-on: ${{ matrix.os }}
15
+ defaults:
16
+ run:
17
+ shell: bash -l {0}
18
+ strategy:
19
+ fail-fast: false
20
+ matrix:
21
+ os: [ ubuntu-latest ]
22
+ python-version: [ 3.9, "3.10", "3.11" ]
23
+
24
+ env:
25
+ PYTHON_VERSION: ${{ matrix.python-version }}
26
+
27
+ steps:
28
+ - uses: actions/checkout@v4
29
+ with:
30
+ submodules: recursive
31
+ - uses: prefix-dev/setup-pixi@v0.8.14
32
+ with:
33
+ cache: false
34
+ pixi-version: v0.46.0
35
+ - name: Add .pixi/envs/default to the $PATH
36
+ run: echo "$(pwd)/.pixi/envs/default/bin" >> $GITHUB_PATH
37
+ shell: bash
38
+ - name: Install dependencies
39
+ run: pixi add scipy numpy pip pytest meson meson-python openblas python==${{ matrix.python-version }}
40
+ - name: Test
41
+ run: |
42
+ pixi r python -m pip install -v . --no-build-isolation -Csetup-args=-Duse_openmp=true
43
+ pixi r pytest
44
+ rm -rf build/
45
+
46
+ build_mkl:
47
+ runs-on: ${{ matrix.os }}
48
+ defaults:
49
+ run:
50
+ shell: bash -l {0}
51
+ strategy:
52
+ fail-fast: false
53
+ matrix:
54
+ # macos-13 runners have intel chips. macos-14 and above
55
+ # runners have Apple silicon chips.
56
+ os: [ ubuntu-latest ]
57
+ python-version: [ 3.9, "3.10", "3.11", "3.12", "3.13"]
58
+ link_mkl: [true]
59
+
60
+ env:
61
+ PYTHON_VERSION: ${{ matrix.python-version }}
62
+ LINK_MKL: ${{ matrix.link_mkl }}
63
+
64
+ steps:
65
+ - uses: actions/checkout@v4
66
+ with:
67
+ submodules: recursive
68
+
69
+ - name: Set Additional Envs
70
+ shell: bash
71
+ run: |
72
+ echo "PYTHON_SUBVERSION=$(echo $PYTHON_VERSION | cut -c 3-)" >> $GITHUB_ENV
73
+ - uses: prefix-dev/setup-pixi@v0.8.14
74
+ with:
75
+ cache: false
76
+ pixi-version: v0.46.0
77
+ - name: Add .pixi/envs/default to the $PATH
78
+ run: echo "$(pwd)/.pixi/envs/default/bin" >> $GITHUB_PATH
79
+ shell: bash
80
+ - name: Install dependencies
81
+ run: |
82
+ if [[ "$LINK_MKL" == "true" ]]; then
83
+ BLAS_PKGS="blas-devel=*=*mkl"
84
+ else
85
+ BLAS_PKGS="blas-devel=*=*openblas"
86
+ fi
87
+ pixi add $BLAS_PKGS pip scipy numpy pytest mkl mkl-devel pkg-config meson meson-python
88
+ - name: Build
89
+ run: |
90
+ pixi r python -c "import numpy as np;print(np.show_config())"
91
+ if [[ "$LINK_MKL" == "true" ]]; then
92
+
93
+ pixi r python -m pip install --verbose --no-build-isolation -Csetup-args=-Dlink_mkl=true .
94
+ else
95
+ pixi r python -m pip install --verbose --no-build-isolation .
96
+ fi
97
+ - name: Test
98
+ run: |
99
+ pixi r pytest
100
+ rm -rf build/
101
+
102
+ # from here to end it's a copy-paste, with few changes, of
103
+ # https://github.com/pypa/cibuildwheel/blob/main/examples/github-deploy.yml
104
+
105
+ build_wheels:
106
+ name: Build wheels on ${{ matrix.os }}
107
+ runs-on: ${{ matrix.os }}
108
+ strategy:
109
+ matrix:
110
+ # macos-13 is an intel runner, macos-14 is apple silicon
111
+ os: [ubuntu-latest, macos-14, windows-latest, macos-13]
112
+
113
+ steps:
114
+ - uses: actions/checkout@v4
115
+ with:
116
+ submodules: true
117
+
118
+ - name: Set up QEMU for aarch64 compilation on Linux
119
+ if: runner.os == 'Linux'
120
+ uses: docker/setup-qemu-action@v3
121
+ with:
122
+ platforms: all
123
+
124
+ - name: Install conda on Windows
125
+ if: runner.os == 'Windows'
126
+ uses: conda-incubator/setup-miniconda@v3
127
+ with:
128
+ miniconda-version: "latest"
129
+ channels: conda-forge, anaconda
130
+
131
+ - name: Install openblas from conda on Windows
132
+ if: runner.os == 'Windows'
133
+ run: conda install -y openblas pkgconfig
134
+
135
+ - name: Build wheels
136
+ uses: pypa/cibuildwheel@v3.1.3
137
+
138
+ - uses: actions/upload-artifact@v4
139
+ with:
140
+ name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
141
+ path: ./wheelhouse/*.whl
142
+
143
+ build_sdist:
144
+ name: Build source distribution
145
+ runs-on: ubuntu-latest
146
+ steps:
147
+ - uses: actions/checkout@v4
148
+ with:
149
+ submodules: true
150
+
151
+ - name: Build sdist
152
+ run: pipx run build --sdist -Csetup-args=-Dsdist_mode=true
153
+
154
+ - uses: actions/upload-artifact@v4
155
+ with:
156
+ name: cibw-sdist
157
+ path: dist/*.tar.gz
158
+
159
+ upload_pypi:
160
+ needs: [build_wheels, build_sdist]
161
+ runs-on: ubuntu-latest
162
+ environment: pypi
163
+ permissions:
164
+ id-token: write
165
+ # We can also upload always, with skip-existing: true, below
166
+ # We upload on every push event (only master, above) that is a new tag
167
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
168
+ # Only run this step on GH release
169
+ # if: github.event_name == 'release' && github.event.action == 'published'
170
+ steps:
171
+ - uses: actions/download-artifact@v4
172
+ with:
173
+ # unpacks all CIBW artifacts into dist/
174
+ pattern: cibw-*
175
+ path: dist
176
+ merge-multiple: true
177
+
178
+ - uses: pypa/gh-action-pypi-publish@release/v1
179
+ with:
180
+ skip-existing: false # Fail loudly for duplicates.
181
+ # To test:
182
+ # with:
183
+ # repository-url: https://test.pypi.org/legacy/
@@ -48,3 +48,7 @@ out
48
48
  *.jar
49
49
  *.egg-info
50
50
  *.ipynb_checkpoints/
51
+
52
+ # pixi environments
53
+ .pixi
54
+ *.egg-info
scs-3.2.8/.gitmodules ADDED
@@ -0,0 +1,6 @@
1
+ [submodule "scs_source"]
2
+ path = scs_source
3
+ url = https://github.com/cvxgrp/scs.git
4
+ [submodule "scs/pythoncapi-compat"]
5
+ path = scs/pythoncapi-compat
6
+ url = https://github.com/python/pythoncapi-compat
scs-3.2.8/PKG-INFO ADDED
@@ -0,0 +1,54 @@
1
+ Metadata-Version: 2.1
2
+ Name: scs
3
+ Version: 3.2.8
4
+ Summary: Splitting conic solver
5
+ Author-Email: Brendan O'Donoghue <bodonoghue85@gmail.com>
6
+ License: MIT License
7
+
8
+ Copyright (c) 2017 Brendan O'Donoghue
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
27
+
28
+ Classifier: License :: OSI Approved :: MIT License
29
+ Classifier: Programming Language :: C
30
+ Classifier: Programming Language :: Python
31
+ Classifier: Programming Language :: Python :: 3
32
+ Classifier: Programming Language :: Python :: 3.11
33
+ Classifier: Programming Language :: Python :: 3.12
34
+ Classifier: Programming Language :: Python :: 3.13
35
+ Classifier: Programming Language :: Python :: 3 :: Only
36
+ Classifier: Programming Language :: Python :: Implementation :: CPython
37
+ Classifier: Operating System :: Microsoft :: Windows
38
+ Classifier: Operating System :: POSIX
39
+ Classifier: Operating System :: Unix
40
+ Classifier: Operating System :: MacOS
41
+ Requires-Python: >=3.9
42
+ Requires-Dist: numpy
43
+ Requires-Dist: scipy
44
+ Description-Content-Type: text/markdown
45
+
46
+ scs-python
47
+ ===
48
+
49
+ [![Build Status](https://github.com/bodono/scs-python/actions/workflows/build.yml/badge.svg)](https://github.com/bodono/scs-python/actions/workflows/build.yml)
50
+ [![Documentation](https://img.shields.io/badge/docs-online-brightgreen?logo=read-the-docs&style=flat)](https://www.cvxgrp.org/scs/)
51
+ [![PyPI Downloads/Month](https://static.pepy.tech/personalized-badge/scs?period=month&units=abbreviation&left_color=grey&right_color=brightgreen&left_text=downloads/month)](https://pepy.tech/project/scs)
52
+
53
+ Python interface for [SCS](https://github.com/cvxgrp/scs) 3.0.0 and higher.
54
+ The full documentation is available [here](https://www.cvxgrp.org/scs/).
@@ -3,8 +3,7 @@ scs-python
3
3
 
4
4
  [![Build Status](https://github.com/bodono/scs-python/actions/workflows/build.yml/badge.svg)](https://github.com/bodono/scs-python/actions/workflows/build.yml)
5
5
  [![Documentation](https://img.shields.io/badge/docs-online-brightgreen?logo=read-the-docs&style=flat)](https://www.cvxgrp.org/scs/)
6
- [![PyPI package](https://img.shields.io/pypi/dm/scs?label=PyPI%20downloads)](https://pypi.org/project/scs/)
7
-
6
+ [![PyPI Downloads/Month](https://static.pepy.tech/personalized-badge/scs?period=month&units=abbreviation&left_color=grey&right_color=brightgreen&left_text=downloads/month)](https://pepy.tech/project/scs)
8
7
 
9
8
  Python interface for [SCS](https://github.com/cvxgrp/scs) 3.0.0 and higher.
10
9
  The full documentation is available [here](https://www.cvxgrp.org/scs/).
@@ -33,6 +33,13 @@ parser.add_argument(
33
33
  "to succeed. This option will be removed soon after which we shall "
34
34
  "install the MKL version by default if MKL is available.",
35
35
  )
36
+ parser.add_argument(
37
+ "--cudss",
38
+ dest="cudss",
39
+ action="store_true",
40
+ default=False,
41
+ help="Also compile the cuDSS version of SCS",
42
+ )
36
43
  parser.add_argument(
37
44
  "--openmp",
38
45
  dest="openmp",
@@ -286,9 +293,24 @@ def install_scs(**kwargs):
286
293
  )
287
294
  ext_modules += [_scs_mkl]
288
295
 
296
+ if args.cudss:
297
+ # MKL should be included in the libraries already:
298
+ _scs_cudss = Extension(
299
+ name="_scs_cudss",
300
+ sources=sources + glob("scs_source/linsys/cudss/direct/*.c"),
301
+ depends=glob("scs/*.h"),
302
+ define_macros=list(define_macros) + [("PY_CUDSS", None)],
303
+ include_dirs=include_dirs + ["scs_source/linsys/cudss/direct/"],
304
+ libraries=list(libraries),
305
+ extra_compile_args=list(extra_compile_args),
306
+ extra_link_args=list(extra_link_args),
307
+ )
308
+ ext_modules += [_scs_cudss]
309
+
310
+
289
311
  setup(
290
312
  name="scs",
291
- version="3.2.7",
313
+ version="3.2.8",
292
314
  author="Brendan O'Donoghue",
293
315
  author_email="bodonoghue85@gmail.com",
294
316
  url="http://github.com/cvxgrp/scs",
scs-3.2.8/meson.build ADDED
@@ -0,0 +1,253 @@
1
+ project('scs', 'c')
2
+
3
+ py = import('python').find_installation(pure: false)
4
+
5
+ cc = meson.get_compiler('c')
6
+ fs = import('fs')
7
+ # Check for submodule before doing anything else
8
+ if not fs.exists('scs_source/README.md')
9
+ error('Missing the `scs_source` submodule! Run `git submodule update --init` to fix this.')
10
+ endif
11
+
12
+ # Simpler check for numpy
13
+ incdir_numpy = run_command(py,['-c',
14
+ '''import os
15
+ import numpy as np
16
+ try:
17
+ incdir = os.path.relpath(np.get_include())
18
+ except Exception:
19
+ incdir = np.get_include()
20
+ print(incdir)
21
+ '''], check: true).stdout().strip()
22
+
23
+ # Get BLAS
24
+ blas_deps = []
25
+ if get_option('link_mkl')
26
+ blas_deps = [cc.find_library('mkl_rt', required : false)]
27
+ if not blas_deps[0].found()
28
+ blas_deps = [dependency('mkl-sdl', required : false)]
29
+ endif
30
+ if not blas_deps[0].found()
31
+ blas_deps = [ dependency('mkl-dynamic-ilp64-iomp', required: false) ]
32
+ endif
33
+ else
34
+ if host_machine.system() == 'darwin'
35
+ blas_deps = [dependency('Accelerate')]
36
+ else
37
+ blas_deps = [cc.find_library('openblas', static: get_option('link_blas_statically'), required : false)]
38
+ if not blas_deps[0].found()
39
+ blas_deps = [dependency(['openblas', 'OpenBLAS'], static: get_option('link_blas_statically'), required : false)]
40
+ endif
41
+ endif
42
+
43
+ # try to find blas/cblas (e.g., Linux)
44
+ if not blas_deps[0].found()
45
+ blas_deps = [cc.find_library('blas', static: get_option('link_blas_statically'), required : false)]
46
+ if not blas_deps[0].found()
47
+ blas_deps = [dependency('blas', static: get_option('link_blas_statically'), required : false)]
48
+ endif
49
+ lapack_dep = cc.find_library('lapack', static: get_option('link_blas_statically'), required : false)
50
+ if not lapack_dep.found()
51
+ lapack_dep = dependency('lapack', static: get_option('link_blas_statically'), required : false)
52
+ endif
53
+ if lapack_dep.found()
54
+ blas_deps += lapack_dep
55
+ endif
56
+ cblas_dep = cc.find_library('cblas', static: get_option('link_blas_statically'), required : false)
57
+ if not cblas_dep.found()
58
+ cblas_dep = dependency('cblas', static: get_option('link_blas_statically'), required : false)
59
+ endif
60
+ if cblas_dep.found()
61
+ blas_deps += cblas_dep
62
+ endif
63
+ endif
64
+ endif
65
+
66
+ # Since nothing above was required, we stop here if failed.
67
+ # When creating an sdist we are not compiling / linking, so don't need to fail.
68
+ if not blas_deps[0].found() and not get_option('sdist_mode')
69
+ error('OpenBLAS or Netlib BLAS/CBLAS is required on all platforms, and was not found.')
70
+ endif
71
+
72
+ # Common
73
+ common_c_args = cc.get_supported_arguments('-Wno-unused-result') + [
74
+ '-DPYTHON', '-DCTRLC=1'
75
+ ]
76
+ common_includes = [
77
+ 'scs',
78
+ 'scs_source/include',
79
+ 'scs_source/linsys',
80
+ incdir_numpy
81
+ ]
82
+ _deps = [blas_deps]
83
+ if get_option('use_openmp')
84
+ _deps += dependency('openmp')
85
+ endif
86
+
87
+ is_linux = host_machine.system() == 'linux'
88
+ if is_linux
89
+ _deps += cc.find_library('rt', required : true)
90
+ endif
91
+
92
+ if get_option('use_lapack')
93
+ common_c_args += '-DUSE_LAPACK=1'
94
+ endif
95
+
96
+ if get_option('use_singleprec')
97
+ common_c_args += '-DSFLOAT=1'
98
+ endif
99
+
100
+ if get_option('use_blas64')
101
+ common_c_args += '-DBLAS64=1'
102
+ endif
103
+
104
+ if get_option('use_extraverbose')
105
+ common_c_args += '-DVERBOSITY=999'
106
+ endif
107
+
108
+ is_gpu_build = get_option('use_gpu') or get_option('link_cudss')
109
+ use_32bit_ints = get_option('int32')
110
+
111
+ if is_gpu_build and not use_32bit_ints
112
+ error('GPU builds require 32-bit integers. Please re-run Meson with -Dint32=true')
113
+ endif
114
+
115
+ if not use_32bit_ints
116
+ common_c_args += '-DDLONG=1'
117
+ endif
118
+
119
+ cuda_dep = dependency('cuda', required: is_gpu_build)
120
+ if is_gpu_build and not cuda_dep.found()
121
+ error('GPU build requested but CUDA toolkit was not found.')
122
+ endif
123
+
124
+ if get_option('use_gpu')
125
+ gpu_c_args = common_c_args + ['-DPY_GPU=1', '-DINDIRECT=1']
126
+ _deps += cuda_dep
127
+ if get_option('gpu_atrans')
128
+ gpu_c_args += '-DGPU_TRANSPOSE_MAT=1'
129
+ endif
130
+ ext_modules += py.extension_module(
131
+ '_scs_gpu',
132
+ common_sources,
133
+ # In Meson, sources with a `.cu` extension are compiled with nvcc by default.
134
+ # To compile `.c` files with nvcc, they must be explicitly targeted.
135
+ # It is strongly recommended to rename CUDA-C files to `.cu`.
136
+ fs.glob('scs_source/linsys/gpu/*.c'),
137
+ fs.glob('scs_source/linsys/gpu/indirect/*.c'),
138
+ c_args: gpu_c_args,
139
+ dependencies: _deps,
140
+ include_directories: [
141
+ common_includes, 'scs_source/linsys/gpu/', 'scs_source/linsys/gpu/indirect'
142
+ ],
143
+ install: true,
144
+ install_dir: scs_dir,
145
+ )
146
+ endif
147
+
148
+ # Sources
149
+ scs_core_sources = files(
150
+ 'scs_source/src/aa.c',
151
+ 'scs_source/src/cones.c',
152
+ 'scs_source/src/ctrlc.c',
153
+ 'scs_source/src/exp_cone.c',
154
+ 'scs_source/src/linalg.c',
155
+ 'scs_source/src/normalize.c',
156
+ 'scs_source/src/rw.c',
157
+ 'scs_source/src/scs_version.c',
158
+ 'scs_source/src/scs.c',
159
+ 'scs_source/src/util.c'
160
+ )
161
+
162
+ common_linsys_sources = files(
163
+ 'scs_source/linsys/scs_matrix.c',
164
+ 'scs_source/linsys/csparse.c'
165
+ )
166
+
167
+ amd_sources = files(
168
+ 'scs_source/linsys/external/amd/amd_1.c',
169
+ 'scs_source/linsys/external/amd/amd_2.c',
170
+ 'scs_source/linsys/external/amd/amd_aat.c',
171
+ 'scs_source/linsys/external/amd/amd_control.c',
172
+ 'scs_source/linsys/external/amd/amd_defaults.c',
173
+ 'scs_source/linsys/external/amd/amd_dump.c',
174
+ 'scs_source/linsys/external/amd/amd_global.c',
175
+ 'scs_source/linsys/external/amd/amd_info.c',
176
+ 'scs_source/linsys/external/amd/amd_order.c',
177
+ 'scs_source/linsys/external/amd/amd_post_tree.c',
178
+ 'scs_source/linsys/external/amd/amd_postorder.c',
179
+ 'scs_source/linsys/external/amd/amd_preprocess.c',
180
+ 'scs_source/linsys/external/amd/amd_valid.c',
181
+ 'scs_source/linsys/external/amd/SuiteSparse_config.c'
182
+ )
183
+
184
+ # Build modules
185
+ scs_dir = py.get_install_dir() / 'scs'
186
+ py.extension_module(
187
+ '_scs_direct',
188
+ 'scs/scspy.c',
189
+ 'scs_source/linsys/cpu/direct/private.c',
190
+ 'scs_source/linsys/external/qdldl/qdldl.c',
191
+ common_linsys_sources,
192
+ scs_core_sources,
193
+ amd_sources,
194
+ c_args: common_c_args,
195
+ include_directories: common_includes + [
196
+ 'scs_source/linsys/cpu/direct',
197
+ 'scs_source/linsys/external/qdldl',
198
+ 'scs_source/linsys/external/amd'
199
+ ],
200
+ dependencies: _deps,
201
+ install_dir: scs_dir,
202
+ install: true,
203
+ )
204
+
205
+ py.extension_module(
206
+ '_scs_indirect',
207
+ 'scs/scspy.c',
208
+ 'scs_source/linsys/cpu/indirect/private.c',
209
+ common_linsys_sources,
210
+ scs_core_sources,
211
+ c_args: common_c_args + ['-DPY_INDIRECT', '-DINDIRECT=1'],
212
+ include_directories: common_includes + ['scs_source/linsys/cpu/indirect'],
213
+ dependencies: _deps,
214
+ install_dir: scs_dir,
215
+ install: true,
216
+ )
217
+
218
+ if get_option('link_mkl')
219
+ py.extension_module(
220
+ '_scs_mkl',
221
+ 'scs/scspy.c',
222
+ 'scs_source/linsys/mkl/direct/private.c',
223
+ common_linsys_sources,
224
+ scs_core_sources,
225
+ c_args: common_c_args + ['-DPY_MKL'],
226
+ include_directories: common_includes + ['scs_source/linsys/mkl/direct'],
227
+ dependencies: _deps,
228
+ install_dir: scs_dir,
229
+ install: true,
230
+ )
231
+ endif
232
+
233
+ if get_option('link_cudss')
234
+ _deps += cuda_dep
235
+ cudss_dep = dependency('cudss', required: true)
236
+ _deps += cudss_dep
237
+ py.extension_module(
238
+ '_scs_cudss',
239
+ 'scs/scspy.c',
240
+ 'scs_source/linsys/cudss/direct/private.c',
241
+ common_linsys_sources,
242
+ scs_core_sources,
243
+ c_args: common_c_args + ['-DPY_CUDSS'],
244
+ include_directories: common_includes + ['scs_source/linsys/cudss/direct'],
245
+ dependencies: _deps,
246
+ install_dir: scs_dir,
247
+ install: true,
248
+ )
249
+ endif
250
+
251
+
252
+
253
+ py.install_sources('scs/py/__init__.py', subdir: 'scs')
@@ -0,0 +1,27 @@
1
+ # we use this to build pre-compiled wheels on github CI
2
+ # copying anaconda openblas into SCS wheels for ease of
3
+ # installation
4
+ option('link_blas_statically', type: 'boolean',
5
+ value: false, description: 'copy BLAS compiled object into SCS module(s)')
6
+ option('link_mkl', type: 'boolean',
7
+ value: false, description: 'link to mkl-rt library')
8
+ option('link_cudss', type: 'boolean',
9
+ value: false, description: 'link to cuDSS library')
10
+ option('use_openmp', type: 'boolean',
11
+ value: false, description: 'Compile SCS with OpenMP parallelization enabled. This can make SCS faster, but requires a compiler with openMP support, the user must control how many threads OpenMP uses')
12
+ option('sdist_mode', type: 'boolean', value: false,
13
+ description: 'Set to true if building an sdist')
14
+ option('use_lapack', type: 'boolean',
15
+ value: true, description: 'use LAPACK')
16
+ option('use_singleprec', type: 'boolean',
17
+ value: false, description: 'use single precision floating point')
18
+ option('use_extraverbose', type: 'boolean',
19
+ value: false, description: 'Enable extra verbose SCS (for debugging).')
20
+ option('use_gpu', type: 'boolean',
21
+ value: false, description: 'setup the GPU variant')
22
+ option('int32', type: 'boolean',
23
+ value: false, description: 'Use 32-bit integers (required for GPU).')
24
+ option('gpu_atrans', type: 'boolean',
25
+ value: false, description: 'transpose matrices for the GPU')
26
+ option('use_blas64', type: 'boolean',
27
+ value: false, description: 'Use 64-bit convention for BLAS')
scs-3.2.8/pixi.toml ADDED
@@ -0,0 +1,12 @@
1
+ [workspace]
2
+ channels = ["conda-forge"]
3
+ name = "scs-python"
4
+ platforms = ["linux-64"]
5
+ version = "0.1.0"
6
+
7
+ [tasks]
8
+
9
+ [dependencies]
10
+ pkg-config = ">=0.29.2,<0.30"
11
+ meson = ">=1.8.1,<2"
12
+ meson-python = ">=0.18.0,<0.19"