Этот документ описывает библиотеку ABLAS - компактную библиотеку базовых операций линейной алгебры с поддержкой SSE2. Библиотека ABLAS используется программами, входящими в состав проекта ALGLIB для ускорения работы алгоритмов линейной алгебры. На данный момент только C++ версия ALGLIB может использовать ABLAS, однако в перспективе планируется добавление поддержки ABLAS в версии ALGLIB на других языках.
Библиотека написана на Pascal. Компилятор - FreePascal (для компилирования использовалась версия 2.2.0). Текущая версия библиотеки поддерживает только Win32.
Библиотека ABLAS распространяется на основе лицензии BSD. Распространение осуществляется в виде предварительно откомпилированных двоичных файлов и в виде исходных кодов. Эти файлы можно скачать со страницы ABLAS по адресу http://alglib.sources.ru/projects/ablas/.
Библиотека поддерживает операции с векторами из вещественных чисел двойной точности, элементы которых расположены в памяти последовательно, без промежутков. Такие векторы соответствуют одномерным массивам и строкам двухмерных массивов в большинстве языков высокого уровня. Доступны следующие типы операций:
ASMDotProduct1ASMMove1ASMMoveS1ASMMoveNeg1ASMAdd1ASMAddS1ASMSub1ASMMulS1Для каждой операции доступны следующие типы реализаций, выбираемые автоматически в зависимости от процессора и операндов:
Для того, чтобы программы пакета ALGLIB могли использовать ABLAS, требуется выполнить два действия. Во-первых, укажите в настройках компилятора (или определите при помощи директивы define) символ AP_WIN32. Этот символ сообщит пакету ALGLIB о том, что он работает под управлением Windows и может использовать соответствующие функции операционной системы для поиска и загрузки дополнительных библиотек. Во-вторых, поместите файл библиотеки (ablas.dll) в тот же каталог, что и исполняемый файл вашей программы. После выполнения этих двух действий библиотека будет автоматически обнаружена и загружена при запуске вашей программы.
На данный момент интерфейсы к ABLAS для других языков программирования отсутствуют.