Библиотеки Intel. Intel® Math Kernel Library
VML – Vector Mathematical Library
Векторизованные математические функции.
Структура
Тригонометрические | Гиперболические | Степени и корни | Экспоненциальные, логарифмические | Спецфункции | Арифметические | Округление |
---|---|---|---|---|---|---|
Sin | Sinh | Pow2o3 | Exp | Erf | Add | Floor |
Cos | Cosh | Pow3o2 | Ln | Erfc | Sub | Cell |
Tan | Tanh | Pow | Log10 | ErfInv | Sqr | Trunc |
Asin | Asinh | Powx | Exm1p | ErfcInv | Mul | Round |
Acos | Acosh | Sqrt | Log1p | TGamma | Abs | NearbyInt |
Atan | Atanh | InvSqrt | LGamma | LinearFrac | Rint |
Тригонометрические | Гиперболические | Степени и корни | Экспоненциальные, логарифмические | Арифметические |
---|---|---|---|---|
Sin | Sinh | Pow | Exp | Add |
Cos | Cosh | Powx | Ln | Sub |
Tan | Tanh | Sqrt | Log10 | Div |
Asin | Asinh | Mul | ||
Acos | Acosh | Abs | ||
Atan | Atanh | Conj |
Форматы
Вещественный и комплексный, с простой и двойной точностью.
Режимы точности и производительности
Повышенная точность (HA – High Accuracy). Правильное округление выполняется более чем в 99% случаев. Самый медленный режим.
Пониженная точность (LA – Low Accuracy). Неправильными могут быть до двух младших (наименее значимых) разрядов. Производительность, по сравнению с режимом высокой точности выше на 30-50%.
Режим улучшенной производительности (EP – Enhanced Performance). Неправильными могут быть до половины двоичных разрядов. Производительность, по сравнению с режимом низкой точности выше на 30-50%.
Библиотека поддерживает динамическое управление точностью.
Формат вызова
Вещественный и комплексный, с простой и двойной точностью.
v(s, d)Exp(n, input_array, output_array)
Функции VML могут вызываться в режиме in-place, когда входной и выходной массивы занимают одно и то же положение в памяти.
Изменение режима точности
Вызовом vmlSetMode(VML_EP)
VSL – Vector Statistical Library
Векторизованные функции генерации псевдо/квазислучайных чисел, статистика.
Структура
Генераторы случайных чисел (равномерное распределение) | Генераторы псевдослучайных чисел (неравномерное распределение) | Статистика | ||
---|---|---|---|---|
Псевдослучайные | Квазислучайные | Непрерывные | Дискретные | |
Мультипликативный конгруэнтный 59-разрядный | Соболя | Равномерное | Равномерное | Центральные моменты до 4-го порядка включительно |
Мультипликативный конгруэнтный 31-разрядный | Нидеррайтера | Нормальное | Бернулли | Эксцесс, асимметрия |
На сдвиговом регистре с обратной связью | Экспоненциальное | Биномиальное | Квантили, порядковые статистики | |
Mersenne Twister | Коши | Гипергеометрическое | Матрицы ковариации и корреляции | |
Генератор Wichmann-Hill | Бета | Пуассона |
Заголовочный файл
#include "mkl_vsl.h"
Инициализация
status = vslNewStream(&stream, VSL_BRNG_MT19937, SEED)
Генерация псевдо(квази)случайных значений
status = vdRngUniform(method, stream, vector_size, r, 0.0, 1.0)
Деинициализация
status = vslDeleteStream(&stream)