Я в настоящее время прототипирую некоторые алгоритмы в Matlab, которые полагаются на функциональность матрицы, DSP, статистики и анализа изображений.
Некоторые примеры того, что мне может понадобиться:
- собственные векторы
- свертка в 2D и 3D
- FFT
- Короткое преобразование Фурье
- Преобразование Гильберта
- Многочлены Чебышева
- фильтр нижних частот
- случайные многомерные гауссовские числа
- kmeans
Позже мне нужно будет реализовать эти алгоритмы в С++.
У меня также есть лицензия на Numericical Recipes в С++, которая мне нравится, потому что она хорошо документирована и имеет широкий спектр алгоритмов. Я также нашел класс, который помогает обернуть функции NR в MEX: nr3matlab.h. Поэтому, используя этот класс, я должен иметь возможность создавать обертки, которые позволяют мне называть функции NR из Matlab. Это очень важно для меня, так что я могу проверять каждый шаг при переносе из Matlab в С++. Однако числовые рецепты в С++ имеют некоторые важные недостатки:
- Алгоритмы
- реализованы в простой, а не очень эффективной способ
- not threaded
Поэтому я рассматриваю возможность использования другой числовой библиотеки. Идеальная библиотека должна:
- быть максимально широким по объему и функциональности
- хорошо документирован
- (есть коммерческая поддержка)
- уже сделали обертки Matlab
- очень надежный
- очень эффективный
- threaded
- (есть возможность выполнения GPU, которая может быть повернута вместо CPU с "переключателем" )
Какую числовую библиотеку (библиотеки) вы бы предложили?
Заранее благодарим за любые ответы!