Многомерные массивы в стиле Фортрана в C ++ - PullRequest
6 голосов
/ 13 марта 2012

Существует ли библиотека C ++, которая предоставляет многомерные массивы в стиле Фортрана с поддержкой нарезки, передачи в качестве процедурного параметра и приличной документации?Я смотрел на блиц ++ но он мертв!

Ответы [ 2 ]

2 голосов
/ 22 августа 2013

Я настоятельно рекомендую Броненосец :

Armadillo - это библиотека линейной алгебры C ++ (математическая математика), нацеленная на достижение хорошего баланса между скоростью и простотой использования

Это библиотека шаблонов C ++:

Подход с отложенной оценкой применяется (во время компиляции) для объединения нескольких операций в одну и уменьшения (или устранения) потребности во временных затратах; это автоматически выполняется с помощью шаблонного метапрограммирования

Простой пример с веб-страницы:

#include <iostream>
#include <armadillo>

int main(int argc, char** argv)
{
    arma::mat A = arma::randu<arma::mat>(4,5);
    arma::mat B = arma::randu<arma::mat>(4,5);

    std::cout << A*B.t() << std::endl;

    return 0;
}
0 голосов
/ 13 марта 2012

Если вы работаете с OSX, вы можете бесплатно использовать библиотеки vDSP.

Если вы хотите развернуть на цели Windows, лицензируйте Intel-эквиваленты (MKL) или я думаю, что векторные математические библиотеки AMD(ACML) бесплатны.

...