Матричная алгебра с использованием C ++ - PullRequest
3 голосов
/ 21 января 2012

Я хотел бы спросить о математических операциях с массивами. Я в основном заинтересован в проведении таких операций, как:

векторных товаров:

C=A+B
C=A*B

, где A и B - массивы (или векторы), а

матричные продукты:

D=E*F; 

где D [м] [n], E [м] [p], F [p] [n];

Может ли кто-нибудь сказать мне, каков наиболее эффективный способ манипулирования большим количеством чисел? Это возможно только за счет циклического прохождения элементов массива или есть другой способ? Можно ли использовать векторы и как?

Ответы [ 3 ]

5 голосов
/ 21 января 2012

Спецификация C ++ не имеет математических конструкций, как вы описываете. Язык, безусловно, предоставляет все функции, необходимые людям для их реализации. Существует множество библиотек, поэтому вам остается только выбрать ту, которая соответствует вашим требованиям.

Поиск по вопросам переполнения стека может дать вам представление о том, с чего начать определять эти требования, если вы их еще не знаете.

2 голосов
/ 21 января 2012

Проверьте Armadillo , он предоставляет множество функциональных возможностей матрицы в интерфейсе C ++. И он поддерживает LAPACK, который MATLAB использует для расчетов по линейной алгебре.

1 голос
/ 21 января 2012

C ++ не поставляется с какой-либо "обработкой чисел" из коробки, что является возможным исключением std::valarray. (Поставщики компиляторов могут заставить valarray использовать векторизованные операции, но, вообще говоря, они этого не делают)

...