X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=check%2Ftime_lw_F.cpp;h=bfd8dcb614029182d48ef24028afb19c94849577;hp=ce8920e5136a218a3fa43fa070abbf2feff86d83;hb=b3283b8904fbc9617cb6293791c7a653e255ebbe;hpb=70ff026226b1a1a7530e8a1d934b98ad42795a1d;ds=sidebyside diff --git a/check/time_lw_F.cpp b/check/time_lw_F.cpp index ce8920e5..bfd8dcb6 100644 --- a/check/time_lw_F.cpp +++ b/check/time_lw_F.cpp @@ -4,7 +4,7 @@ * Lewis and Michael Wester. */ /* - * GiNaC Copyright (C) 1999-2000 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 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,46 +23,46 @@ #include "times.h" -static unsigned test(void) +static unsigned test() { - symbol x("x"); - symbol y("y"); + symbol x("x"); + symbol y("y"); - ex p = expand(pow(pow(x,2)-3*x*y+pow(y,2),4)*pow(3*x-7*y+2,5)); - ex q = expand(pow(pow(x,2)-3*x*y+pow(y,2),3)*pow(3*x-7*y-2,6)); - ex result = gcd(p,q); - if (result!=expand(pow(pow(x,2)-3*x*y+pow(y,2),3))) { - clog << "gcd((x^2-3*x*y+y^2)^4*(3*x-7*y+2)^5),(x^2-3*x*y+y^2)^3*(3*x-7*y-2)^6)) erroneously returned " << result << endl; - return 1; - } - return 0; + ex p = expand(pow(pow(x,2)-3*x*y+pow(y,2),4)*pow(3*x-7*y+2,5)); + ex q = expand(pow(pow(x,2)-3*x*y+pow(y,2),3)*pow(3*x-7*y-2,6)); + ex result = gcd(p,q); + if (result!=expand(pow(pow(x,2)-3*x*y+pow(y,2),3))) { + clog << "gcd(expand((x^2-3*x*y+y^2)^4*(3*x-7*y+2)^5),expand((x^2-3*x*y+y^2)^3*(3*x-7*y-2)^6)) erroneously returned " << result << endl; + return 1; + } + return 0; } -unsigned time_lw_F(void) +unsigned time_lw_F() { - unsigned result = 0; - unsigned count = 0; - timer rolex; - double time = .0; - - cout << "timing Lewis-Wester test F (gcd of 2-var polys)" << flush; - clog << "-------Lewis-Wester test F (gcd of 2-var polys)" << endl; - - 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; - - return result; + unsigned result = 0; + unsigned count = 0; + timer rolex; + double time = .0; + + cout << "timing Lewis-Wester test F (gcd of 2-var polys)" << flush; + clog << "-------Lewis-Wester test F (gcd of 2-var polys):" << endl; + + 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; + + return result; }