X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=check%2Ftime_lw_Q.cpp;h=da974501a3ffb987168919d4f73990c1ac4a2e66;hp=2ddaf44f2ae1d69b973bdc1a528d33441ad5d66d;hb=56f1beacac549ea8a66d46bffc6e0b3d8047d5c5;hpb=af922d5eb36ed70e4a9e3ffaf4c24492cf89a1a6 diff --git a/check/time_lw_Q.cpp b/check/time_lw_Q.cpp index 2ddaf44f..da974501 100644 --- a/check/time_lw_Q.cpp +++ b/check/time_lw_Q.cpp @@ -4,7 +4,7 @@ * Lewis and Michael Wester. */ /* - * GiNaC Copyright (C) 1999-2000 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2004 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,7 +23,9 @@ #include "times.h" -static unsigned test(void) +static const bool do_test = true; // set to true in order to run this beast + +static unsigned test() { // same matrix as in test P: const unsigned n = 10; @@ -52,7 +54,7 @@ static unsigned test(void) return 0; } -unsigned time_lw_Q(void) +unsigned time_lw_Q() { unsigned result = 0; unsigned count = 0; @@ -60,23 +62,28 @@ unsigned time_lw_Q(void) double time = .0; cout << "timing Lewis-Wester test Q (charpoly(P))" << flush; - clog << "-------Lewis-Wester test Q (charpoly(P))" << endl; - - rolex.start(); - // correct for very small times: - do { - result = test(); - ++count; - } while ((time=rolex.read())<0.1 && !result); - cout << '.' << flush; + clog << "-------Lewis-Wester test Q (charpoly(P)):" << endl; - if (!result) { - cout << " passed "; - clog << "(no output)" << endl; + if (do_test) { + rolex.start(); + // correct for very small times: + do { + result = test(); + ++count; + } while ((time=rolex.read())<0.1 && !result); + cout << '.' << flush; + + if (!result) { + cout << " passed "; + clog << "(no output)" << endl; + } else { + cout << " failed "; + } + cout << int(1000*(time/count))*0.001 << 's' << endl; } else { - cout << " failed "; + cout << " disabled" << endl; + clog << "(no output)" << endl; } - cout << int(1000*(time/count))*0.001 << 's' << endl; return result; }