Skip to content

Commit 39087d4

Browse files
committed
Update contributing page
1 parent 808565b commit 39087d4

File tree

2 files changed

+18
-9
lines changed

2 files changed

+18
-9
lines changed

docs/contributing/index.md

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,25 @@ nav_order: 5
77

88
# Contributing
99

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.
1111

12-
### Small scope projects
12+
### Common projects
1313

14-
1. Improving this documentation.
15-
2. Writing unit tests/benchmarks.
14+
1. You can help by improving this documentation website.
15+
2. 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.
1616

17-
### Medium scope projects
17+
### SDPA for Python (SDPAP) specific projects
1818

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)
19+
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.
2120

22-
### Large scope projects
21+
### SDPA Multiprecision specific projects
2322

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).
23+
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.
24+
25+
### Testing
26+
27+
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.
28+
29+
If you want to contribute to SDPA for Python, you can use SparseCoLO as a reference.
30+
31+
[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. doi: [10.1007/s10107-010-0402-6](https://doi.org/10.1007/s10107-010-0402-6)

index.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ pip install sdpa-multiprecision
3939

4040
For supported platforms, please see the [Installation](docs/installation/) section.
4141

42+
If this project is useful for your work, please consider leaving a star on the relevant GitHub repository: [SDPA for Python](https://github.com/sdpa-python/sdpa-python) and/or [SDPA Multiprecision](https://github.com/sdpa-python/sdpa-multiprecision)
43+
4244
### Usage
4345

4446
To get started, see the [Usage](docs/usage/) section.

0 commit comments

Comments
 (0)