Рекомендации для небольшой находящейся в c векторной и матричной [закрытой] библиотеки

Проблема устранена путем добавления конфигурации: parser: 'babel-eslint'

13
задан Hans Sjunnesson 13 October 2008 в 20:50
поделиться

7 ответов

Meschach является c-only векторной/матричной библиотекой, значительно меньшей, чем, например, LAPACK (согласно FAQ, по крайней мере :)

9
ответ дан 2 December 2019 в 00:19
поделиться

Многие люди говорят Вам пользоваться различными библиотеками BLAS, но это, вероятно, будет очень медленным для Вас, так как Вы работаете над маленькими матрицами. Большинство из них оптимизировано для разделения на блоки матрицы в фиксированные размеры (вокруг 50ish, элементы - зависят от размеров кэша), и воздействуйте на блоки с оптимизированным алгоритмом, затем воздействуйте на остатки с тривиальным алгоритмом. На маленьких матрицах это делает его еще медленнее, чем просто вызов тривиального алгоритма.

FWIW, когда я должен был сделать это в Фортране (2x2 и 4x4 квадратная матрица mults) я просто hardcoded полностью развернутые версии и это работало достаточно хорошо (о 20x скорость встроенного MATMUL на gfortran, но часть этого была, вероятно вследствие того, что MATMUL не существует, и моя версия была). Я никогда не мог находить, что хорошая библиотека сделала это для меня.

В C++ это было бы прекрасно, так как Вы сможете использовать БЛИЦ, но увы...

4
ответ дан 2 December 2019 в 00:19
поделиться

Попробуйте CIMG (cimg.sourceforge.net). Это - сфокусированная обработка изображений, но свободно, чрезвычайно легко (вся библиотека состоит из единственного.h файла!), и имеет весь стандартный вектор/операции над матрицей.

Это - C++, таким образом, это не будет работать, если Вы сделаете прямой C, но это достойное внимания.

1
ответ дан 2 December 2019 в 00:19
поделиться

Принятие Вас кодирует для x86, Вы могли бы изучить Интегрированные примитивы производительности (IPP) и Математическую библиотеку ядра (MKL) Intel. Они обеспечивают super-duper-fast библиотеки (вероятно, быстрее, чем кто-либо еще мог записать, так как они оптимизированы для непубличных деталей микроархитектуры) для большого количества общих операций, включая векторы и матрицы.

1
ответ дан 2 December 2019 в 00:19
поделиться

Существует много опций по Mathtools.net. Объектно-ориентированные Численные данные также перечисляют некоторые пакеты, которые могли бы работать на Вас. Так как я не уверен точно, что Вы делаете (Вам нужна большая оптимизированная линейная алгебра? Или простые операции будут достаточны?), трудно быть более конкретным.

В целом Матричная Библиотека шаблонов вполне прилично думается. И если Вам нужен некоторый серьезный пехотинец линейной алгебры, необходимо посмотреть на BLAS и LAPACK.

0
ответ дан 2 December 2019 в 00:19
поделиться

Возможно, необходимо попробовать математический lib DirectX (просто Windows...). Векторы, матрицы, операции на нем, все, в чем Вы нуждаетесь, вероятно, там. Можно только использовать это, не целый DX. Можно использовать версию 9 или 10. Это быстро :)

#include <D3DX9Math.h>
1
ответ дан 2 December 2019 в 00:19
поделиться

You may also want to have a look at the Armadillo C++ library

-1
ответ дан 2 December 2019 в 00:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: