From 38f3143eee71d942f40ab47f5a561dc9736203fc Mon Sep 17 00:00:00 2001 From: Jens Vollinga Date: Thu, 8 Jan 2009 10:26:50 +0100 Subject: [PATCH] Fixed bug in binomial(). binomial(n,0) erroneously returned 0. --- check/exam_inifcns.cpp | 15 +++++++++++++++ ginac/inifcns.cpp | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/check/exam_inifcns.cpp b/check/exam_inifcns.cpp index b86b4703..7d8cb978 100644 --- a/check/exam_inifcns.cpp +++ b/check/exam_inifcns.cpp @@ -215,6 +215,20 @@ static unsigned inifcns_consist_zeta() return result; } +static unsigned inifcns_consist_various() +{ + unsigned result = 0; + symbol n; + ex e; + + if ( binomial(n, 0) != 1 ) { + clog << "ERROR: binomial(n,0) != 1" << endl; + ++result; + } + + return result; +} + unsigned exam_inifcns() { unsigned result = 0; @@ -225,6 +239,7 @@ unsigned exam_inifcns() result += inifcns_consist_gamma(); cout << '.' << flush; result += inifcns_consist_psi(); cout << '.' << flush; result += inifcns_consist_zeta(); cout << '.' << flush; + result += inifcns_consist_various(); cout << '.' << flush; return result; } diff --git a/ginac/inifcns.cpp b/ginac/inifcns.cpp index 17a080c9..fa998b23 100644 --- a/ginac/inifcns.cpp +++ b/ginac/inifcns.cpp @@ -759,7 +759,7 @@ static ex binomial_sym(const ex & x, const numeric & y) if (y.is_integer()) { if (y.is_nonneg_integer()) { const unsigned N = y.to_int(); - if (N == 0) return _ex0; + if (N == 0) return _ex1; if (N == 1) return x; ex t = x.expand(); for (unsigned i = 2; i <= N; ++i) -- 2.49.0