44 lines
917 B
C
44 lines
917 B
C
#include "test.h"
|
|
|
|
datatype *A[2];
|
|
int *ipiv[2], info;
|
|
int kl, ku, ld;
|
|
|
|
void pre() {
|
|
int i;
|
|
x2matgen(ld, n, A[0], A[1]);
|
|
for (i = 0; i < n; i++) {
|
|
// set diagonal
|
|
A[0][x1 * (i + ld * i)] =
|
|
A[1][x1 * (i + ld * i)] = (datatype) rand() / RAND_MAX;
|
|
}
|
|
memset(ipiv[0], 0, n * sizeof(int));
|
|
memset(ipiv[1], 0, n * sizeof(int));
|
|
}
|
|
|
|
void post() {
|
|
error = x2vecerr(ld * n, A[0], A[1]) + i2vecerr(n, ipiv[0], ipiv[1]);
|
|
}
|
|
|
|
void tests() {
|
|
kl = n - 10;
|
|
ku = n;
|
|
ld = 2 * kl + ku + 1;
|
|
|
|
A[0] = xmalloc(ld * n);
|
|
A[1] = xmalloc(ld * n);
|
|
ipiv[0] = imalloc(n);
|
|
ipiv[1] = imalloc(n);
|
|
|
|
#define ROUTINE XPREF(gbtrf)
|
|
|
|
TEST(&n, &n, &kl, &ku, A[i], &ld, ipiv[i], &info);
|
|
TEST(&n, &n2, &kl, &ku, A[i], &ld, ipiv[i], &info);
|
|
TEST(&n2, &n, &kl, &ku, A[i], &ld, ipiv[i], &info);
|
|
|
|
free(A[0]);
|
|
free(A[1]);
|
|
free(ipiv[0]);
|
|
free(ipiv[1]);
|
|
}
|