LAPACK требует, чтобы данные, отправленные на него, были в массиве стиля FORTRAN (порядок столбцов). Вы не сможете передавать данные непосредственно из SQL в LAPACK, но вам нужно будет прочитать данные в непрерывный массив памяти, упорядоченный по столбцам, и передать указатель на первый элемент массива в интересующую процедуру LAPACK.
Существует множество оболочек LAPACK для C / C ++, которые делают это намного проще.
Редактировать: только что увидел, что вы ищете специально для того, чтобы передать такой массив. Как я уже упоминал, для этого существует множество оберток (просто выполните поиск C / C ++ LAPACK). Простой способ создать ваш массив - использовать класс std :: vector. Затем вы будете читать данные в столбце за столбцом, добавляя элементы к вашему вектору. Таким образом, если вы захотите упорядочить столбец в массиве, который вы показываете в своем примере, ваш вектор будет выглядеть примерно так:
//Column 1 Column 2 Column 3 ... last element
[565 497 467 488 ... 526 491 516 466 ... 472 483 480 547 ... ... 494]
Затем вы должны передать интересующую вас подпрограмму LAPACK в ячейку памяти первого элемента, например:
&myVector[0]
Это возможно при использовании std :: vector, так как стандарт гарантирует, что вектор использует непрерывную память. Все подпрограммы LAPACK также требуют размера / размеров матрицы / векторов, которые вы передаете ей (поэтому вам нужно вычислить / указать эти значения для вызова функции).
Если вы можете опубликовать конкретную подпрограмму LAPACK, которую хотите использовать, я могу привести более подробный пример.