41 lines
879 B
C
41 lines
879 B
C
#include "test.h"
|
|
|
|
datatype *A[2], *Work;
|
|
int *ipiv[2], info;
|
|
|
|
void pre() {
|
|
x2matgen(n, n, A[0], A[1]);
|
|
memset(ipiv[0], 0, n * sizeof(int));
|
|
memset(ipiv[1], 0, n * sizeof(int));
|
|
}
|
|
|
|
void post() {
|
|
error = x2vecerr(n * n, A[0], A[1]) + i2vecerr(n, ipiv[0], ipiv[1]);
|
|
}
|
|
|
|
void tests() {
|
|
const int lWork = n * n;
|
|
A[0] = xmalloc(n * n);
|
|
A[1] = xmalloc(n * n);
|
|
ipiv[0] = imalloc(n);
|
|
ipiv[1] = imalloc(n);
|
|
Work = xmalloc(lWork);
|
|
|
|
#define ROUTINE XPREF(hetrf)
|
|
|
|
TEST("L", &n, A[i], &n, ipiv[i], Work, &lWork, &info);
|
|
TEST("U", &n, A[i], &n, ipiv[i], Work, &lWork, &info);
|
|
|
|
#undef ROUTINE
|
|
#define ROUTINE XPREF(hetrf_rook)
|
|
|
|
TEST("L", &n, A[i], &n, ipiv[i], Work, &lWork, &info);
|
|
TEST("U", &n, A[i], &n, ipiv[i], Work, &lWork, &info);
|
|
|
|
free(A[0]);
|
|
free(A[1]);
|
|
free(ipiv[0]);
|
|
free(ipiv[1]);
|
|
free(Work);
|
|
}
|