]> www.ginac.de Git - ginac.git/blobdiff - check/exam_inifcns.cpp
removed some obsolete functions
[ginac.git] / check / exam_inifcns.cpp
index 91307518eb3b9156b8c7d6648a60d8c1381bfb8c..c108ada8574c1f8387218c3169ed7607143215f0 100644 (file)
@@ -4,7 +4,7 @@
  *  functions. */
 
 /*
- *  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
 #include "exams.h"
 
 /* Assorted tests on other transcendental functions. */
-static unsigned inifcns_consist_trans(void)
+static unsigned inifcns_consist_trans()
 {
+       using GiNaC::asin; using GiNaC::acos;
+
        unsigned result = 0;
        symbol x("x");
        ex chk;
@@ -90,17 +92,38 @@ static unsigned inifcns_consist_trans(void)
                ++result;
        }
        
+       // check consistency of log and eta phases:
+       for (int r1=-1; r1<=1; ++r1) {
+               for (int i1=-1; i1<=1; ++i1) {
+                       ex x1 = r1+I*i1;
+                       if (x1.is_zero())
+                               continue;
+                       for (int r2=-1; r2<=1; ++r2) {
+                               for (int i2=-1; i2<=1; ++i2) {
+                                       ex x2 = r2+I*i2;
+                                       if (x2.is_zero())
+                                               continue;
+                                       if (abs(evalf(eta(x1,x2)-log(x1*x2)+log(x1)+log(x2)))>.1e-12) {
+                                               clog << "either eta(x,y), log(x), log(y) or log(x*y) is wrong"
+                                                    << " at x==" << x1 << ", y==" << x2 << endl;
+                                               ++result;
+                                       }
+                               }
+                       }
+               }
+       }
+               
        return result;
 }
 
 /* Simple tests on the tgamma function.  We stuff in arguments where the results
  * exists in closed form and check if it's ok. */
-static unsigned inifcns_consist_gamma(void)
+static unsigned inifcns_consist_gamma()
 {
        unsigned result = 0;
        ex e;
        
-       e = tgamma(ex(1));
+       e = tgamma(1);
        for (int i=2; i<8; ++i)
                e += tgamma(ex(i));
        if (e != numeric(874)) {
@@ -109,7 +132,7 @@ static unsigned inifcns_consist_gamma(void)
                ++result;
        }
        
-       e = tgamma(ex(1));
+       e = tgamma(1);
        for (int i=2; i<8; ++i)
                e *= tgamma(ex(i));     
        if (e != numeric(24883200)) {
@@ -140,8 +163,10 @@ static unsigned inifcns_consist_gamma(void)
 
 /* Simple tests on the Psi-function (aka polygamma-function).  We stuff in
    arguments where the result exists in closed form and check if it's ok. */
-static unsigned inifcns_consist_psi(void)
+static unsigned inifcns_consist_psi()
 {
+       using GiNaC::log;
+
        unsigned result = 0;
        symbol x;
        ex e, f;
@@ -162,7 +187,7 @@ static unsigned inifcns_consist_psi(void)
 /* Simple tests on the Riemann Zeta function.  We stuff in arguments where the
  * result exists in closed form and check if it's ok.  Of course, this checks
  * the Bernoulli numbers as a side effect. */
-static unsigned inifcns_consist_zeta(void)
+static unsigned inifcns_consist_zeta()
 {
        unsigned result = 0;
        ex e;
@@ -187,7 +212,7 @@ static unsigned inifcns_consist_zeta(void)
        return result;
 }
 
-unsigned exam_inifcns(void)
+unsigned exam_inifcns()
 {
        unsigned result = 0;