You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/contributing/index.md
+17-9Lines changed: 17 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,18 +7,26 @@ nav_order: 5
7
7
8
8
# Contributing
9
9
10
-
Below is a non-exhaustive list of opportunities for contributing to the development of SDPA for Python.
10
+
SDPA for Python is a fork of SDPAP, SDPA's official Python wrapper. SDPA Multiprecision is a fork of SDPA-GMP, and adds an Application Binary Interface to allow its usage as a callable library. This project is an effort to maintain both for the Python ecosystem. Below is a non-exhaustive list of opportunities for contributing to one or other other.
11
11
12
-
### Small scope projects
12
+
### Common projects
13
13
14
-
1. Improving this documentation.
15
-
2. Writing unit tests/benchmarks.
14
+
You can help in improving this documentation.
16
15
17
-
### Medium scope projects
16
+
Additionally, since building from source requires compiling multiple libraries, sometimes issues may arise during compilation in some environments which otherwise do not show up in the CI infrastructure (the Python wheels are built on GitHub runners). If you run into problems building from source, please open an issue in the relevant GitHub repository so it can be investigated.
18
17
19
-
1. Implementation of `clp_toEQ` and `result_fromEQ` routines in [convert.py](https://github.com/sdpa-python/sdpa-python/blob/main/sdpap/convert.py) to allow user to choose SeDuMi Primal format as the internal representation of the problem (i.e. allow user to set `convMethod` to `EQ` in the solver options). Currently only `clp_toLMI` and `result_fromLMI` are present which convert the problem to SeDuMi Dual format.
20
-
2. Implementation of domain and range space conversion method using clique trees (i.e. `rconv_cliquetree`, `rconv_cliqueresult`, `dconv_cliquetree` and `dconv_cliqueresult` in [spcolo.py](https://github.com/sdpa-python/sdpa-python/blob/main/sdpap/spcolo/spcolo.py)
18
+
### SDPA for Python (SDPAP) specific projects
21
19
22
-
### Large scope projects
20
+
SDPAP contains (Python translations of) some routines from [SparseCoLO](https://github.com/sdpa-python/SparseCoLO)[1] to provide a more general API than SDPA, and also to exploit sparsity in nonlinear matrix inequalities. Currently only a subset of these routines are present in SDPA for Python. If you can help translate other routines, that can extend the abilities of SDPA for Python. The [Solver Options]({% link docs/usage/params.md %}) contains more information on the unimplemented routines.
23
21
24
-
1. Add support for SOCP constraints to make the package a complete SQLP solver. This is a contribution to SDPA (and not just SDPA for Python).
22
+
### SDPA Multiprecision specific projects
23
+
24
+
SDPA Multiprecision uses MPACK, a multiprecision version of BLAS/LAPACK based on the GNU Multiprecision Library. In future, this may be migrated to use [MPLAPACK](https://github.com/nakatamaho/mplapack). Any effort to this end will be appreciated.
25
+
26
+
### Testing
27
+
28
+
A GitHub Actions pipeline is setup to automatically test the Python code using CVXPY tests (using both SDPA and SDPA Multiprecision backends). Additional tests may be added under the `tests` folder to test features not otherwise tested by CVXPY tests.
29
+
30
+
If you want to contribute to SDPA for Python, you can use SparseCoLO as a reference.
31
+
32
+
[1] Sunyoung Kim, Masakazu Kojima, Martin Mevissen and Makoto Yamashita, "Exploiting sparsity in linear and nonlinear matrix inequalities via positive semidefinite matrix completion," Mathematical Programming, 129(1), 33–68. https://doi.org/10.1007/s10107-010-0402-6
0 commit comments