How to Contribute

Code style

All contributions should be formated according to the PEP8 standard. Slightly more than 80 characters can sometimes be tolerated if increased line width increases readability. All docstrings should follow Google Style Python Docstrings.

Dependencies

Make sure that you use Python >= 3.5 and have TensorFlow >= 2.0 installed.

Unit tests

After any change of QGOpt, one has to check whether all the tests run without errors. Currently, tests check optimization primitives (retractions, vector transports, etc.) for all manifolds and check optimizers’ performance on the simple optimization problem on complex Stiefel manifold. For any new functionality, please provide suitable unit tests. Also, if you find a bug, consider adding a test that detects the bug before fixing it.

pytest

running all test files.

pytest test_manifolds.py

running tests of all manifolds except complex Stiefel manifold.

pytest test_stiefel.py

running tests of complex Stiefel manifold.

pytest test_optimizers.py

running tests of optimizers.