#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]); }