This is the public code repository for On the Unreasonable Effectiveness of Single Vector Krylov Methods for Low-Rank Approximation, a paper by Raphael Meyer, Cameron Musco, and Christopher Musco.
This repo contains Julia code to recreate the paper's experiments, as well as the exact experimental data that generated our plots and the Latex code to generate our exact figures.
All of the code is in single_vec_krylov.jl
, which was made to be browsed with Julia for Visual Studio Code. The code will work perfectly fine in other IDEs, but the demarkation between different blocks of code are made for VS Code. The file is well commented, so hopefully everything you need to know is already in that file.
The code does assume that nd3k_SVD.mat
, human_gene2_SVD.mat
, appu_SVD.mat
, and exdata_1_SVD.mat
are all stored locally, in the same directory as single_vec_krylov.jl
.
So if you want to recreate the grid of plots in Figures 1 and 6, be sure to have those files downloaded. You can find the files by searching for nd3k
, human_gene_2
, appu
, and exdata_1
on this webpage and downloading the "MATLAB" file under "SVD Statistics".
We include a folder called exports
full of CSVs that contain the exact data we use in the paper. These will be effectively generated by single_vec_krylov.jl
, but we did not save the random seed for running these experiments, so we include our data for completeness. We also include the latex used to create our figures. plot_headers.tex
is a short headers file to make sure the images use the same pgfplots
version and use the same colors. Then, plot_fig_X.tex
is the code used to generate Figure X in the paper, where