You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

xgbtrf.c 917 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #include "test.h"
  2. datatype *A[2];
  3. int *ipiv[2], info;
  4. int kl, ku, ld;
  5. void pre() {
  6. int i;
  7. x2matgen(ld, n, A[0], A[1]);
  8. for (i = 0; i < n; i++) {
  9. // set diagonal
  10. A[0][x1 * (i + ld * i)] =
  11. A[1][x1 * (i + ld * i)] = (datatype) rand() / RAND_MAX;
  12. }
  13. memset(ipiv[0], 0, n * sizeof(int));
  14. memset(ipiv[1], 0, n * sizeof(int));
  15. }
  16. void post() {
  17. error = x2vecerr(ld * n, A[0], A[1]) + i2vecerr(n, ipiv[0], ipiv[1]);
  18. }
  19. void tests() {
  20. kl = n - 10;
  21. ku = n;
  22. ld = 2 * kl + ku + 1;
  23. A[0] = xmalloc(ld * n);
  24. A[1] = xmalloc(ld * n);
  25. ipiv[0] = imalloc(n);
  26. ipiv[1] = imalloc(n);
  27. #define ROUTINE XPREF(gbtrf)
  28. TEST(&n, &n, &kl, &ku, A[i], &ld, ipiv[i], &info);
  29. TEST(&n, &n2, &kl, &ku, A[i], &ld, ipiv[i], &info);
  30. TEST(&n2, &n, &kl, &ku, A[i], &ld, ipiv[i], &info);
  31. free(A[0]);
  32. free(A[1]);
  33. free(ipiv[0]);
  34. free(ipiv[1]);
  35. }