This is a project submitted as a requirement for this course. The course was administered in Fall 2019-2020 (before the Coronavirus outbreak...) in Tel-Aviv University - School of Mathematical Sciences, and taught by Prof. Yoel Shkolnisky. This project is a reconstruction of experiments of [1] for algorithms for Randomized SVD and Randomized Interpolative Decompositions. A complete documentation of the code is available here(open it in a web browser).
The code can be fetched from this repo. The Jupyter Notebook version does the same work, and can be deployed to Google Colab. While the the notebook version can be used immediately, this code has some prerequisites. Any questions about this project may be sent by mail to 'eladeatah' at mail.tau.ac.il (replace 'at' by @).
This code was developed for Windows10 OS and tested using the following Python 3.7.6 dependencies. These dependencies are listed in requirements.txt. All these packages can be installed using the 'pip' package manager (when the command window is in the main directory where requirements.txt is located):
pip install -r requirements.txt
All the packages, except for Sacred, are available as well using 'conda' package manager.
The Unit-Test files are:
- test_data_creation.py - Tests the data created for all experiments is the data described in the paper [1] .
- test_random_svd.py - Tests the implementation of the Random SVD algorithm.
- test_random_id.py - Tests the implementation of the Random Interpolative Decomposition algorithm.
Running any of these tests can be performed by:
<python_path> -m unittest <test_file_path>
Credits for the original algorithms, paper and results of [1] belong to its respectful authors: P.-G. Martinsson, V. Rokhlin, and M. Tygert.
This project is licensed under the MIT License - see the LICENSE file for details
[1] P.-G. Martinsson, V. Rokhlin, and M. Tygert. A randomized al- gorithm for the decomposition of matrices. Applied and Computa- tional Harmonic Analysis, 30(1):47—68, 2011.