X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=check%2Fexam_pseries.cpp;h=a0f87eade96c06cadbda75a74ac5045d228c8434;hp=a3fe7d87d496be2e0681c3e364f8a1cbe0af9ffe;hb=079c558d4f9758cd2777a2808a02d64cb1f70c8e;hpb=67467d256b44f5e08498ca81c946d9ffaa25d1e2 diff --git a/check/exam_pseries.cpp b/check/exam_pseries.cpp index a3fe7d87..a0f87ead 100644 --- a/check/exam_pseries.cpp +++ b/check/exam_pseries.cpp @@ -3,7 +3,7 @@ * Series expansion test (Laurent and Taylor series). */ /* - * GiNaC Copyright (C) 1999-2008 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2010 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 @@ -20,11 +20,12 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include #include "ginac.h" -using namespace std; using namespace GiNaC; +#include +using namespace std; + static symbol x("x"); static unsigned check_series(const ex &e, const ex &point, const ex &d, int order = 8) @@ -172,6 +173,7 @@ static unsigned exam_series3() // Series exponentiation static unsigned exam_series4() { + using GiNaC::tgamma; unsigned result = 0; ex e, d; @@ -210,6 +212,7 @@ static unsigned exam_series5() // Series expansion of tgamma(-1) static unsigned exam_series6() { + using GiNaC::tgamma; ex e = tgamma(2*x); ex d = pow(x+1,-1)*numeric(1,4) + pow(x+1,0)*(numeric(3,4) - @@ -327,6 +330,7 @@ static unsigned exam_series11() static unsigned exam_series12() { using GiNaC::log; + using GiNaC::atanh; unsigned result = 0; ex e, d; @@ -365,6 +369,23 @@ static unsigned exam_series13() return result; } +// Test if (1+x)^(1/x) can be expanded. +static unsigned exam_series14() +{ + unsigned result = 0; + + ex e = pow(1+x, sin(x)/x); + ex d = 1 + x - pow(x,3)/6 + Order(pow(x,4)); + try { + result += check_series(e,0,d,4); + } catch (const pole_error& err) { + clog << "series expansion of " << e << " at 0 raised an exception." << endl; + ++result; + } + + return result; +} + unsigned exam_pseries() { unsigned result = 0; @@ -384,6 +405,7 @@ unsigned exam_pseries() result += exam_series11(); cout << '.' << flush; result += exam_series12(); cout << '.' << flush; result += exam_series13(); cout << '.' << flush; + result += exam_series14(); cout << '.' << flush; return result; }