Ошибка сегментации при использовании dpbtrf

Я пытаюсь использовать подпрограмму LAPACK dpbtrf (Documentaton) в C ++, но всегда получают ошибку сегментации. Я не уверен, как пройти матрицу LAPACKE_dpbtrf и попытался повторить это из нескольких примеров, которые я нашел безуспешно. Как заставить код ниже работать?

Я хочу вычислить холецкий разложение матрицы

   1 -0.9    0    0    0
-0.9 1.81 -0.9    0    0
0 -0.9 1.81 -0.9    0
0    0 -0.9 1.81 -0.9
0    0    0 -0.9 1.81

Вот что я попробовал:

#include<iostream>
#include<lapacke.h>int main() {
lapack_int info;
lapack_int N = 5;
lapack_int KD = 1;
lapack_int LDAB = KD + 1;

double AB[N * KD] = {
1, 1.81, 1.81, 1.81, 1.81,
-0.9, -0.9, -0.9, -0.9, -0.9
};info = LAPACKE_dpbtrf( LAPACK_COL_MAJOR, 'L', N, KD, AB, LDAB);for(int i=0;i<N * KD; i++)
{
std::cout << AB[i] << std::endl;

}

return(info);

}

-1

Решение

Похоже, у вас нет подходящих размеров для AB, Согласно документации, размер (LDAB, N), а не (KD, N).

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]