X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=check%2Ftime_gammaseries.cpp;h=0bfbe302db0bb5ce2db89bbaa113162b54bc4dea;hp=afc9f530d5fd51a5fd8078189d9f4581dbec3308;hb=5b090bb7e4951b48a28c20ba21bf9810c86eb0ca;hpb=f4ea690a3f118bf364190f0ef3c3f6d2ccdf6206 diff --git a/check/time_gammaseries.cpp b/check/time_gammaseries.cpp index afc9f530..0bfbe302 100644 --- a/check/time_gammaseries.cpp +++ b/check/time_gammaseries.cpp @@ -1,6 +1,6 @@ /** @file time_gammaseries.cpp * - * Some timings on series expansion of the gamma function around a pole. */ + * Some timings on series expansion of the Gamma function around a pole. */ /* * GiNaC Copyright (C) 1999-2000 Johannes Gutenberg University Mainz, Germany @@ -22,12 +22,12 @@ #include "times.h" -unsigned gammaseries(unsigned order) +unsigned tgammaseries(unsigned order) { unsigned result = 0; symbol x; - ex myseries = series(gamma(x),x,0,order); + ex myseries = series(tgamma(x),x==0,order); // compute the last coefficient numerically: ex last_coeff = myseries.coeff(x,order-1).evalf(); // compute a bound for that coefficient using a variation of the leading @@ -35,7 +35,7 @@ unsigned gammaseries(unsigned order) ex bound = evalf(exp(ex(-.57721566490153286*(order-1)))/(order-1)); if (evalf(abs((last_coeff-pow(-1,order))/bound)) > numeric(1)) { clog << "The " << order-1 - << "th order coefficient in the power series expansion of gamma(0) was erroneously found to be " + << "th order coefficient in the power series expansion of tgamma(0) was erroneously found to be " << last_coeff << ", violating a simple estimate." << endl; ++result; } @@ -47,8 +47,8 @@ unsigned time_gammaseries(void) { unsigned result = 0; - cout << "timing Laurent series expansion of gamma function" << flush; - clog << "-------Laurent series expansion of gamma function:" << endl; + cout << "timing Laurent series expansion of Gamma function" << flush; + clog << "-------Laurent series expansion of Gamma function:" << endl; vector sizes; vector times; @@ -61,8 +61,9 @@ unsigned time_gammaseries(void) for (vector::iterator i=sizes.begin(); i!=sizes.end(); ++i) { omega.start(); - result += gammaseries(*i); cout << '.' << flush; + result += tgammaseries(*i); times.push_back(omega.read()); + cout << '.' << flush; } if (!result) { @@ -73,13 +74,11 @@ unsigned time_gammaseries(void) } // print the report: cout << endl << " order: "; - for (vector::iterator i=sizes.begin(); i!=sizes.end(); ++i) { + for (vector::iterator i=sizes.begin(); i!=sizes.end(); ++i) cout << '\t' << (*i); - } cout << endl << " time/s:"; - for (vector::iterator i=times.begin(); i!=times.end(); ++i) { - cout << '\t' << (*i); - } + for (vector::iterator i=times.begin(); i!=times.end(); ++i) + cout << '\t' << int(1000*(*i))*0.001; cout << endl; return result;