Я разрабатываю инструмент на основе линейной алгебры в C ++, который позволяет пользователям ссылаться на OpenBlas/Atlas/Intel MKL в различных операционных системах. Это все хорошо и хорошо в Windows и Linux, но я бы предпочел позволить пользователям OS X ссылаться также на ускорение фреймворка. Тем не менее, в моем коде используется Lapacke, который представляет собой интерфейс C для Lapack (например, функции - LAPACKE_FXNAME), который, по -видимому, не является частью структуры ускорения. Вместо этого он имеет функции Clapack F2C'D (например, функции FXNAME_), которые имеют другой интерфейс и используют хранилище столбца. < /p>
Поскольку остальная часть моего кода работает на рядном майоне, я бы предпочел не преобразовать матрицу в мажор в столбце, чтобы я мог использовать Clapack, когда на OS X, но это мой единственный вариант? Другими словами, при разработке кроссплатформенного программного обеспечения с Lapacke есть ли способ использовать структуру ускорения? Или есть какой-либо трюк, который я могу использовать для использования функций Clapack в массивах строк мажор (возможно, просто пропустите флаг «транспонированного» для операций «не транспонированных»? Мне кажется, что матрица строк мажор хранится так же, как и матрица заказа в столбце.)?
Подробнее здесь: https://stackoverflow.com/questions/385 ... -framework