From: Richard Kreckel Date: Tue, 12 Jun 2001 22:52:22 +0000 (+0000) Subject: - Just because it's fun: make the test more general using a formula for X-Git-Tag: release_0-9-1~40 X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=commitdiff_plain;h=6e3e0fec75584b29ad6a18734e52d249dccc2a36;hp=ac23228bd6e65b92b483e84c36f479e4aa08549c - Just because it's fun: make the test more general using a formula for the closed form of the result suggested by David B. --- diff --git a/check/time_lw_H.cpp b/check/time_lw_H.cpp index d9604b11..1621a6e1 100644 --- a/check/time_lw_H.cpp +++ b/check/time_lw_H.cpp @@ -23,17 +23,32 @@ #include "times.h" -static unsigned test(void) +static unsigned test(unsigned n) { - matrix h80(80,80); + matrix hilbert(n,n); - for (unsigned r=0; r<80; ++r) - for (unsigned c=0; c<80; ++c) - h80.set(r,c,numeric(1,r+c+1)); - ex det = h80.determinant(); + for (unsigned r=0; rnumeric("1.E-3800")) { - clog << "determinant of 80x80 erroneously returned " << det << endl; + // The closed form of the determinant of n x n Hilbert matrices is: + // + // n-1 / n-1 \ + // ----- | ----- | + // | | | pow(factorial(r),2) | | hilbert(r,c) | + // | | | | | | + // r = 0 \ c = 0 / + + ex hilbdet = 1; + for (unsigned r=0; r