Report a bug
If you spot a problem with this page, click here to create a GitHub issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using a local clone.


GLAS (Generic Linear Algebra Subprograms)

The GLAS are generic routines that provide standard building blocks for performing vector and matrix operations. The Level 1 GLAS perform scalar, vector and vector-vector operations, the Level 2 GLAS perform matrix-vector operations, and the Level 3 GLAS perform matrix-matrix operations.

Implemented Routines

The list of already implemented features.
Modules Description
l1 vector operations 100% done, partially optimized for now
l2 matrix-vector operations %3 done, partially optimized for now
l3 was moved to mir-glas matrix-matrix operations 50% done
GLAS is generalization of BLAS (Basic Linear Algebra Subprograms) Because the BLAS are efficient, portable, and widely available, they are commonly used in the development of high quality linear algebra or related software, such as LAPACK, NumPy, or The Julia language.
Efficient Level 3 BLAS implementation requires cache-friendly matrix blocking. In additional, SIMD instructions should be used for all levels on modern architectures.


GLAS is ...
  • fast to execute.
  • fast to compile.
  • fast to extend using ndslices.
  • fast to add new instruction set targets.

Optimization notes

GLAS requires recent LDC >= 1.1.0-beta2.
Ilya Yaroshenko