Code for reproducing the results in "Optimal denoising of rotationally invariant rectangular matrices"
- Numpy version 1.22.2
- Scipy version 1.7.1
- MPI4PY version 3.0.3
- Matplotlib version 3.5.1
- Pandas version 1.3.2
Note that MPI4PY also requires a MPI implementation. We refer to the MPI4PY documentation for further information.
We have three kind of data:
- MMSE data: analytical estimate of the MSE of the optimal estimator. It's generated by MSE_int.py and stored in data/MMSE. It requires parameters Delta, R1, R2, NB_points (the number of subdivisions in the integration procedure) and epsilon_imag (we recommend not to change this parameter). All the others parameters have no effect on the data.
- RIE data: empirical MSE of the optimal estimator evaluated on actual matrices. It's generated by MSE_int.py and stored in data/MMSE. It requires parameters Delta, R1, R2, M and epsilon_imag (we recommend not to change this parameter). All the others parameters have no effect on the data.
The figures in the paper are obtained by running the scripts:
- Figure 1a: plot_low_rank_1.py
- Figure 1b: plot_high_rank.py
- Figure 2: plot_high_rank_approach.py
- Figure 3a: plot_low_rank_2.py
- Figure 3b: plot_low_rank_3.py