# Contributing to decompy We welcome contributions to `decompy`! By contributing, you can help improve the package and make it more useful for others. Please take a moment to review the guidelines below before making any contributions. ## Algorithm Contributions If you would like to contribute a new algorithm to `decompy`, please follow these guidelines: 1. Create a new Python file in one of the following folders, based on the type of algorithm: - `matrix_factorization`: For matrix factorization algorithms. - `rankmethods`: For robust algorithms to estimate rank of matrix or low rank component of data in a factor model. - `tensor_factorization`: For tensor factorization algorithms. 2. Make sure your algorithm file includes a proper docstring with the following information: - Description of the algorithm and its functionality. - Input and output specifications. - Usage examples, if applicable. - References section with proper citations to the algorithm paper or source code. ## Code Style and Guidelines To maintain a consistent codebase, please adhere to the following guidelines: - Follow the PEP 8 style guide for Python code. - Use meaningful variable and function names. - Include comments when necessary to explain the code's functionality. - Write clear and concise code that is easy to understand. ## Submitting a Pull Request When you're ready to submit your contribution, please follow these steps: 1. Fork the `decompy` repository on GitHub. 2. Create a new branch for your contribution. 3. Commit your changes to the new branch. 4. Push the branch to your forked repository. 5. Open a pull request from your branch to the `decompy` repository. ## License By contributing to `decompy`, you agree that your contributions will be licensed under the [BSD 3-Clause License](LICENSE). If you have any questions or need further assistance, feel free to reach out to us. Thank you for your contributions!