ABLAS Library

This document describes the ABLAS library — a lightweight basic linear algebra subroutines library with SSE2 support. The ABLAS library is used by programs that are parts of ALGLIB project to speed up the linear algebra algorithms. At the moment only C++ version of ALGLIB can use ABLAS. However, in the future it is planned to add ABLAS into ALGLIB versions based on other languages.

The language, the compiler and the OS

The library is written on Pascal. The compiler used - FreePascal (version 2.2.0 was used for compiling). Current library version supports only Win32.

Distribution and licensing

The ABLAS library is distributed under BSD license. It is distributed as precompiled binary files and as source code. These files may be downloaded from ABLAS page: http://www.alglib.net/projects/ablas/ (or http://alglib.sources.ru/projects/ablas/ in Russian).

Features

The library supports vector operations with double precision real numbers. Their elements should be allocated in memory sequentially with no spaces between them. Such vectors correspond to one-dimensional arrays and rows in 2D arrays in most high-level languages. The following operations are available:

Each operation allows the following implementation types, chosen automatically depending on the processor and operands:

Using ABLAS in C++

To be able to use ABLAS programs with ALGLIB library, two actions are required. First, set in the compiler options (or define with the define directive) the AP_WIN32 symbol. This symbol notifies the ALGLIB package that it is working under Windows and can use the corresponding operating system functions to find and load additional libraries. Second, put the library file (ablas.dll) in the same directory as your program executable. After these two steps the library will be detected and loaded automatically.

Using ABLAS in other programming languages

At the moment there are no ABLAS interfaces for other programming languages.