Code for paper: Lahiri, Gao, Ganguli, "Random projections of random manifolds".
-
Run 'one-click.py' to generate and save all data and plots.
-
Run 'demo-data.py' to quickly generate example data for plots.
-
Run 'demo-plots.py' to make plots without saving.
(Un)comment lines to choose whether to use quick or full data. -
Data/
Folder containing generated data for plots.
We have provided example data. -
Figures/
Folder containing plots. -
rand_mfld_proj/
Folder containing code.- run.py
Simple functions for generating or plotting data. - Other subfolders contain the actual code.
- run.py
You will need to have the appropriate C compilers. On Linux, you should already have them. On Windows, see here.
You will need a BLAS/Lapack distribution. Anaconda on Windows usually uses MKL, but they recently moved the headers to a different package. You can install it with:
> conda install mkl-devel
Alternatively, you can downgrade to a version that has the headers, e.g.
> conda install mkl=2018.0.3
Another option is OpenBLAS
> conda install openblas -c conda-forge
(see here under Uninstalling MKL).
If your BLAS/Lapack distribution is installed somewhere numpy isn't expecting, you can provide directions in a site.cfg file.
Once you have all of the above, you can build the CPython modules in-place:
> python setup.py build_ext
or you can install it system-wide:
> python setup.py install
- python3 (only tested with 3.7)
- numpy
- matplotlib
- itertools
- math
- collections.abc
- numbers
- typing
The following aliases are used:
Styles = Sequence[Mapping[str, str]]
StyleSet = Mapping[str, Styles]
Options = Mapping[str, Any]
OptionSet = Mapping[str, Options]
Labels = Sequence[str]
LabelSet = Mapping[str, Labels]
Axes = mpl.axes.Axes
Figure = mpl.figure.Figure
Lines = Sequence[mpl.lines.Line2D]