Skip to content

BallisticLA/marla

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Matlab Algorithms for Randomized Linear Algebra (MARLA)

MARLA is a Matlab library for prototyping algorithms in a future C++ library for randomized numerical linear algebra. The library is meant to be "LAPACK-like" and organizes its functionality into high-level "drivers" and lower-level "computational routines". All of its driver-level functionality has at least basic tests. MARLA is to be viewed as an informal, "proof of mathematical concept"-type library, serving only as a rough sketch for the future library. At the moment, MARLA is not maintained for the purposes of external use (unless per explicit requests).

MARLA has a companion Python package called PARLA. PARLA has an object-oriented design which is more flexible than the current implementations in MARLA. The state of MARLA and PARLA's APIs and unit tests is summarized in this Google Sheets spreadsheet. (It will be hard to read that spreadsheet without having the RandLAPACK design document on-hand.)

Notes on tests

  • Tests are for basic correctness.
  • We're using an object-oriented testing framework for eigendecomposition methods (evd1, evd2). These tests were written last. We might go back and use this as an organizing principle when cleaning up other tests.

Important TODOs

  • Clean up tests.
  • Complete documentation (and revise existing documentation to follow a common style).

Less important TODOs

  • Add tests for computational routines that aren't used in downstream drivers (refer to the spreadsheet for which routines those are).
  • Matlab doesn't have native support for abstract linear operators. So far this is only a minor limitation. The main way that PARLA uses abstract linear operators is in a common interface for sketching operators that are only represented implicitly. In Matlab it would suffice to define a special class just for SRTTs. The special class would just need to overload "*" (matmul) and "'" (transpose).

About

Matlab Algorithms for Randomized Linear Algebra

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published