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.
- {scs-3.2.7 → scs-3.2.8}/.bumpversion.cfg +1 -2
- scs-3.2.8/.github/workflows/build.yml +183 -0
- {scs-3.2.7 → scs-3.2.8}/.gitignore +4 -0
- scs-3.2.8/.gitmodules +6 -0
- scs-3.2.8/PKG-INFO +54 -0
- {scs-3.2.7 → scs-3.2.8}/README.md +1 -2
- {scs-3.2.7 → scs-3.2.8}/legacy_setup.py +23 -1
- scs-3.2.8/meson.build +253 -0
- scs-3.2.8/meson.options +27 -0
- scs-3.2.8/pixi.toml +12 -0
- scs-3.2.8/pyproject.toml +101 -0
- {scs-3.2.7/scs → scs-3.2.8/scs/py}/__init__.py +18 -9
- scs-3.2.8/scs/pythoncapi-compat/.github/workflows/build.yml +122 -0
- scs-3.2.8/scs/pythoncapi-compat/.gitignore +5 -0
- scs-3.2.8/scs/pythoncapi-compat/.readthedocs.yaml +12 -0
- scs-3.2.8/scs/pythoncapi-compat/CODE_OF_CONDUCT.md +11 -0
- scs-3.2.8/scs/pythoncapi-compat/COPYING +14 -0
- scs-3.2.8/scs/pythoncapi-compat/README.rst +55 -0
- scs-3.2.8/scs/pythoncapi-compat/docs/Makefile +20 -0
- scs-3.2.8/scs/pythoncapi-compat/docs/api.rst +796 -0
- scs-3.2.8/scs/pythoncapi-compat/docs/changelog.rst +191 -0
- scs-3.2.8/scs/pythoncapi-compat/docs/conf.py +53 -0
- scs-3.2.8/scs/pythoncapi-compat/docs/index.rst +29 -0
- scs-3.2.8/scs/pythoncapi-compat/docs/links.rst +29 -0
- scs-3.2.8/scs/pythoncapi-compat/docs/make.bat +35 -0
- scs-3.2.8/scs/pythoncapi-compat/docs/tests.rst +17 -0
- scs-3.2.8/scs/pythoncapi-compat/docs/upgrade.rst +168 -0
- scs-3.2.8/scs/pythoncapi-compat/docs/users.rst +74 -0
- scs-3.2.8/scs/pythoncapi-compat/pythoncapi_compat.h +2270 -0
- scs-3.2.8/scs/pythoncapi-compat/runtests.py +122 -0
- scs-3.2.8/scs/pythoncapi-compat/tests/__init__.py +0 -0
- scs-3.2.8/scs/pythoncapi-compat/tests/setup.py +110 -0
- scs-3.2.8/scs/pythoncapi-compat/tests/test_pythoncapi_compat.py +220 -0
- scs-3.2.8/scs/pythoncapi-compat/tests/test_pythoncapi_compat_cext.c +2412 -0
- scs-3.2.8/scs/pythoncapi-compat/tests/test_pythoncapi_compat_cppext.cpp +4 -0
- scs-3.2.8/scs/pythoncapi-compat/tests/test_upgrade_pythoncapi.py +962 -0
- scs-3.2.8/scs/pythoncapi-compat/tests/utils.py +41 -0
- scs-3.2.8/scs/pythoncapi-compat/upgrade_pythoncapi.py +752 -0
- {scs-3.2.7 → scs-3.2.8}/scs/scsmodule.h +6 -0
- {scs-3.2.7 → scs-3.2.8}/scs/scsobject.h +9 -7
- {scs-3.2.7 → scs-3.2.8}/scs_source/.bumpversion.cfg +1 -2
- scs-3.2.8/scs_source/.github/workflows/build_spectral.yml +36 -0
- scs-3.2.8/scs_source/.github/workflows/cmake_cudss.yml +36 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/.github/workflows/docs.yml +1 -1
- {scs-3.2.7 → scs-3.2.8}/scs_source/.github/workflows/gpu.yml +10 -1
- {scs-3.2.7 → scs-3.2.8}/scs_source/.gitignore +1 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/CITATION.cff +2 -2
- {scs-3.2.7 → scs-3.2.8}/scs_source/CMakeLists.txt +136 -6
- {scs-3.2.7 → scs-3.2.8}/scs_source/Makefile +53 -3
- {scs-3.2.7 → scs-3.2.8}/scs_source/README.md +1 -1
- {scs-3.2.7 → scs-3.2.8}/scs_source/cmake/scs_types.h.in +4 -5
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/Doxyfile +1 -1
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/api/cones.rst +42 -19
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/api/index.rst +3 -0
- scs-3.2.8/scs_source/docs/src/api/javascript.rst +190 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/citing/index.rst +1 -1
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/conf.py +1 -1
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/contributing/index.rst +0 -1
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/index.rst +3 -0
- scs-3.2.8/scs_source/docs/src/examples/javascript.rst +241 -0
- scs-3.2.8/scs_source/docs/src/examples/javascript_disc.html +316 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/mpc.py +1 -1
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/index.rst +1 -1
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/install/c.rst +32 -1
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/install/index.rst +3 -0
- scs-3.2.8/scs_source/docs/src/install/javascript.rst +50 -0
- scs-3.2.8/scs_source/docs/src/install/python.rst +51 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/linear_solver/index.rst +17 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/include/cones.h +47 -2
- {scs-3.2.7 → scs-3.2.8}/scs_source/include/glbopts.h +1 -1
- {scs-3.2.7 → scs-3.2.8}/scs_source/include/scs.h +29 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/include/scs_blas.h +4 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/include/scs_types.h +3 -1
- scs-3.2.8/scs_source/include/util_spectral_cones.h +45 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/cpu/direct/private.c +3 -3
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/cpu/direct/private.h +2 -1
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/csparse.c +1 -1
- scs-3.2.8/scs_source/linsys/cudss/direct/private.c +279 -0
- scs-3.2.8/scs_source/linsys/cudss/direct/private.h +63 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/qdldl/qdldl_types.h +1 -1
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/gpu/indirect/private.c +14 -21
- {scs-3.2.7 → scs-3.2.8}/scs_source/scs.mk +17 -2
- {scs-3.2.7 → scs-3.2.8}/scs_source/src/aa.c +8 -12
- scs-3.2.8/scs_source/src/cones.c +1605 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/src/rw.c +15 -1
- {scs-3.2.7 → scs-3.2.8}/scs_source/src/scs.c +4 -0
- scs-3.2.8/scs_source/src/spectral_cones/logdeterminant/log_cone_IPM.c +660 -0
- scs-3.2.8/scs_source/src/spectral_cones/logdeterminant/log_cone_Newton.c +279 -0
- scs-3.2.8/scs_source/src/spectral_cones/logdeterminant/log_cone_wrapper.c +205 -0
- scs-3.2.8/scs_source/src/spectral_cones/logdeterminant/logdet_cone.c +143 -0
- scs-3.2.8/scs_source/src/spectral_cones/nuclear/ell1_cone.c +221 -0
- scs-3.2.8/scs_source/src/spectral_cones/nuclear/nuclear_cone.c +99 -0
- scs-3.2.8/scs_source/src/spectral_cones/sum-largest/sum_largest_cone.c +196 -0
- scs-3.2.8/scs_source/src/spectral_cones/sum-largest/sum_largest_eval_cone.c +140 -0
- scs-3.2.8/scs_source/src/spectral_cones/util_spectral_cones.c +52 -0
- scs-3.2.8/scs_source/test/problems/complex_PSD.h +83 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/test/rng.h +4 -4
- {scs-3.2.7 → scs-3.2.8}/scs_source/test/run_tests.c +25 -0
- scs-3.2.8/scs_source/test/spectral_cones_problems/exp_design.h +141 -0
- scs-3.2.8/scs_source/test/spectral_cones_problems/graph_partitioning.h +275 -0
- scs-3.2.8/scs_source/test/spectral_cones_problems/robust_pca.h +253 -0
- scs-3.2.8/scs_source/test/spectral_cones_problems/several_logdet_cones.h +222 -0
- scs-3.2.8/scs_source/test/spectral_cones_problems/several_nuc_cone.h +285 -0
- scs-3.2.8/scs_source/test/spectral_cones_problems/several_sum_largest.h +420 -0
- scs-3.2.8/test/test_solve_random_cone_prob_cudss.py +82 -0
- {scs-3.2.7 → scs-3.2.8}/test/test_solve_random_cone_prob_mkl.py +1 -1
- scs-3.2.7/.github/workflows/build.yml +0 -236
- scs-3.2.7/.gitmodules +0 -3
- scs-3.2.7/MANIFEST.in +0 -17
- scs-3.2.7/PKG-INFO +0 -41
- scs-3.2.7/meson.build +0 -194
- scs-3.2.7/meson.options +0 -7
- scs-3.2.7/pyproject.toml +0 -21
- scs-3.2.7/scs_source/docs/src/install/python.rst +0 -54
- scs-3.2.7/scs_source/src/cones.c +0 -834
- {scs-3.2.7 → scs-3.2.8}/.github/ISSUE_TEMPLATE.md +0 -0
- {scs-3.2.7 → scs-3.2.8}/.github/dependabot.yml +0 -0
- {scs-3.2.7 → scs-3.2.8}/LICENSE +0 -0
- {scs-3.2.7 → scs-3.2.8}/distribute.sh +0 -0
- {scs-3.2.7 → scs-3.2.8}/notebooks/analyze_csv_logs.ipynb +0 -0
- {scs-3.2.7 → scs-3.2.8}/notebooks/scs_benchmarks.ipynb +0 -0
- {scs-3.2.7 → scs-3.2.8}/notebooks/scs_qp.ipynb +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs/scspy.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/.github/ISSUE_TEMPLATE.md +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/.github/dependabot.yml +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/.github/workflows/build.yml +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/.github/workflows/build_mkl.yml +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/.github/workflows/build_openmp.yml +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/.github/workflows/buildpp.yml +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/.github/workflows/cmake.yml +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/.github/workflows/cmake_mkl.yml +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/.github/workflows/cmake_openmp.yml +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/.github/workflows/coverage.yml +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/.github/workflows/valgrind.yml +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/LICENSE.txt +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/cmake/AddInstallRPATHSupport.cmake +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/cmake/AddUninstallTarget.cmake +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/cmake/InstallBasicPackageFiles.cmake +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/Makefile +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/_static/css/scs_theme.css +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/_static/favicon.ico +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/_static/scs_logo.png +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/_static/scs_logo_transparent.png +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/algorithm/acceleration.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/algorithm/equilibration.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/algorithm/index.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/algorithm/relaxation.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/algorithm/scale.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/algorithm/warm_start.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/api/c.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/api/compile_flags.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/api/exit_flags.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/api/info.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/api/julia.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/api/matlab.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/api/matrices.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/api/python.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/api/r.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/api/ruby.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/api/settings.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/blas_lapack/index.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/.gitignore +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/c.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/julia.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/matlab.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/basic_qp.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/entropy.py +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/entropy.py.out +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/entropy.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/lasso.py +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/lasso.py.out +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/lasso.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/mat_completion.py +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/mat_completion.py.out +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/mat_completion.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/mpc.py.out +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/mpc.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/qp.py +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python/qp.py.out +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/python.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/qp.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/qp.c.out +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/qp.m +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/qp.m.out +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/qp.prob +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/r.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/examples/ruby.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/files/qp_solvers_benchmark.png +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/files/windows1.png +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/files/windows2.png +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/files/windows3.png +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/help/index.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/install/julia.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/install/matlab.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/install/r.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/install/ruby.rst +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/make.bat +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/docs/src/requirements.txt +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/include/aa.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/include/ctrlc.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/include/linalg.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/include/linsys.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/include/normalize.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/include/rw.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/include/scs_work.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/include/util.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/cpu/indirect/private.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/cpu/indirect/private.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/csparse.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/LICENSE.txt +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/SuiteSparse_config.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/SuiteSparse_config.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd_1.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd_2.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd_aat.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd_control.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd_defaults.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd_dump.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd_global.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd_info.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd_internal.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd_order.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd_post_tree.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd_postorder.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd_preprocess.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/amd_valid.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/amd/changes +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/qdldl/LICENSE +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/qdldl/README.md +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/qdldl/changes +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/qdldl/qdldl.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/external/qdldl/qdldl.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/gpu/gpu.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/gpu/gpu.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/gpu/indirect/private.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/mkl/direct/private.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/mkl/direct/private.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/scs_matrix.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/linsys/scs_matrix.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/src/ctrlc.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/src/exp_cone.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/src/linalg.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/src/normalize.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/src/scs_version.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/src/util.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/test/minunit.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/test/problem_utils.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/degenerate.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/hs21_tiny_qp.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/hs21_tiny_qp_rw.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/infeasible_tiny_qp.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/max_ent +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/max_ent.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/mpc_bug.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/mpc_bug1 +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/mpc_bug2 +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/mpc_bug3 +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/qafiro_tiny_qp.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/random_prob +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/random_prob.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/rob_gauss_cov_est.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/small_lp.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/small_qp.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/test_exp_cone.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/test_prob_from_data_file.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/test_validation.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/test/problems/unbounded_tiny_qp.h +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/test/random_socp_prob.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/scs_source/test/run_from_file.c +0 -0
- {scs-3.2.7 → scs-3.2.8}/test/gen_random_cone_prob.py +0 -0
- {scs-3.2.7 → scs-3.2.8}/test/solve_random_cone_prob.py +0 -0
- {scs-3.2.7 → scs-3.2.8}/test/test_scs_basic.py +0 -0
- {scs-3.2.7 → scs-3.2.8}/test/test_scs_object.py +0 -0
- {scs-3.2.7 → scs-3.2.8}/test/test_scs_quad.py +0 -0
- {scs-3.2.7 → scs-3.2.8}/test/test_scs_rand.py +0 -0
- {scs-3.2.7 → scs-3.2.8}/test/test_scs_sdp.py +0 -0
- {scs-3.2.7 → scs-3.2.8}/test/test_solve_random_cone_prob.py +0 -0
@@ -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/
|
scs-3.2.8/.gitmodules
ADDED
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
|
+
[](https://github.com/bodono/scs-python/actions/workflows/build.yml)
|
50
|
+
[](https://www.cvxgrp.org/scs/)
|
51
|
+
[](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
|
[](https://github.com/bodono/scs-python/actions/workflows/build.yml)
|
5
5
|
[](https://www.cvxgrp.org/scs/)
|
6
|
-
[](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.
|
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')
|
scs-3.2.8/meson.options
ADDED
@@ -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