Ускоренная структура в Xcode для получения QR-факторизации A, но не удалось найти zgeqrf - PullRequest
0 голосов
/ 26 мая 2020
• 1000 вызов 'zgeqrf_' 1. Функция-кандидат нежизнеспособна: неизвестное преобразование из 'float *' в '__CLPK_doublecomplex *' для третьего аргумента "вот мой код:

include

include

int main (int arg c, const char * argv []) {

float A[4][3] = {{0,-2,1}, {1,3,1}, {0,0,1}, {1,1,5}};

__CLPK_integer m = 4;
__CLPK_integer n = 3;
__CLPK_integer ipiv[3];
__CLPK_doublecomplex tau[n];
__CLPK_doublecomplex work[n];
__CLPK_integer lwork = n;
__CLPK_integer info = 0;

sgetrf_(&m, &n, &A[0][0], &m, ipiv, &info);
zgeqrf_(&m, &n, &A[0][0], &m, tau, work, &lwork, &info);


int row, columns;

for (row=0; row<4; row++)
{
    for(columns=0; columns<3; columns++)
    {
        printf("%f", A[row][columns]);
    }
    printf("\n");
}

}

Заранее спасибо за ваше время;

1 Ответ

0 голосов
/ 29 мая 2020

Из вашего сообщения об ошибке похоже, что zgeqrf_ требует, чтобы аргумент имел тип __CLPK_doublecomplex* вместо float*, но ваш A объявлен как массив с плавающей запятой. Обратитесь к документации по zgeqrf_, чтобы понять почему.

...