LAPACK Functionality

by Kyle

We are often asked how much of LAPACK is in CULA.  The short answer to this that we have implemented the majority of the core functionality and that we are constantly adding more routines.

In regards to CULA, the functions in LAPACK can be broken in four major categories:

1) Core functions
2) Building block and auxiliary functions
3) Alternative (or legacy) algorithms
4) Rarely used functions

The core functions of LAPACK include major routines such as xGESV (general system solve), xSYEV (symmetric eigenvalues), or xGELS (least squares solve). These (as well as a handful of others) make up the core of widely used functions included in LAPACK. In CULA, of the functions we feel are ‘core’, we have implemented over 80%. The remaining 20% is in the functionality relating to the Schur decomposition and packed symmetric routines. Fortunately, these routines are high on our priority list and will be implmented in an upcoming CULA release.

Building block functions are routines that are typically only used internally by other LAPACK functions.  These routines include things like xGETR2 (panel factorization) or xLARFG (reflector generation).  These routines have little-to-no use outside of LAPACK and are lower priority to release to the public.  However, if one of these routines is important to you, feel free to contact us and we'll consider it for inclusion in a future release. Additionally, we do expose some of the more general purpose auxiliary function. In R11 we are releasing some useful routines like transpose and conjugate (see this blog post for more information).

Alternative and legacy functions are algorithms that have alternative methods for finding the same result. One example is solving a SVD via a divide-and-conquer method (xGESVDD). While we don't provide this implementation, we do have the general implementation (xGESVD). For these routines, we try to point out in our documentation that an alternative implementation might still be viable for you.

Finally, there are a number of rarely used functions in LAPACK that have been designed for a very specific function.  We have classified about 20% of LAPACK to fall into this category. These functions are planned for eventual inclusion in CULA, but are low on the priority list. However, if we find users with a specific need for one of these functions, we'll certainly raise them to the top! As a reminder, if you are looking for a function not in CULA, stop by our forums and let us know.

Comments (0) Trackbacks (0)

Sorry, the comment form is closed at this time.

Trackbacks are disabled.