A bare-bones NMF implementation for method optimization and development
For more exhaustive nmf implementations see "RcppML" and "singlet".
TO DO:
- GPU parallelization instead of OpenMP
- MPI distributed updates
- Incorporate cross-validation for automatic rank determination (see code in "singlet" /src)