Вы хотите использовать BLAS для базовых операций линейной алгебры, таких как суммирование или умножение двух матриц, и LAPACK для более ресурсоемких алгоритмов, таких как матрицы факторинга.
У подпрограмм BLAS есть забавные имена, похожие на алфавитный супЭто из-за старых ограничений Фортрана на длину имени функции.Первая буква имени указывает тип данных, на котором работает подпрограмма BLAS.Поскольку вас интересуют комплексные числа, вы хотите посмотреть на подпрограммы, начинающиеся с c
(для комплексной одинарной точности) или z
(для двойной комплексной двойной точности).Например, подпрограмма BLAS для умножения сложных матриц A
и B
равна CGEMM
или ZGEMM
(здесь GEMM
обозначает умножение матриц общей матрицы).
Похоже, что в Задаче C,BLAS доступен через Accelerate framework.Соглашение о присвоении имен заключается в добавлении cblas_
к исходному имени BLAS.Например, вот документация для cblas_zgemm
.
Обычно поставщики предоставляют оптимизированные версии BLAS для своей платформы.Эти подпрограммы часто могут быть значительно быстрее, чем наивные реализации этих матричных операций.Часто пиковая производительность машины с плавающей точкой может быть достигнута или почти достигнута с помощью этих процедур.Фактически, тест LINPACK (LINPACK был предшественником LAPACK) использует эти процедуры для тестирования и ранжирования суперкомпьютеров.