]> www.ginac.de Git - ginac.git/blobdiff - check/exam_normalization.cpp
Improve normalization with nested functions.
[ginac.git] / check / exam_normalization.cpp
index 6a931db5b54e03bea76af89ee5745e450155b7c5..d98dec681a79d9071d03ccc3cfd300f36545cdcc 100644 (file)
@@ -3,7 +3,7 @@
  *  Rational function normalization test suite. */
 
 /*
- *  GiNaC Copyright (C) 1999-2008 Johannes Gutenberg University Mainz, Germany
+ *  GiNaC Copyright (C) 1999-2015 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
  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-#include <iostream>
 #include "ginac.h"
-using namespace std;
 using namespace GiNaC;
 
+#include <iostream>
+using namespace std;
+
 static symbol w("w"), x("x"), y("y"), z("z");
 
 static unsigned check_normal(const ex &e, const ex &d)
@@ -162,7 +163,12 @@ static unsigned exam_normal4()
        e = (pow(x-y*2,4)/pow(pow(x,2)-pow(y,2)*4,2)+1)*(x+y*2)*(y+z)/(pow(x,2)+pow(y,2)*4);
        d = (y*2 + z*2) / (x + y*2);
        result += check_normal(e, d);
-       
+
+       // Replacement of nested functions with temporary symbols
+       e = x/(sqrt(sin(z)-1)) + y/(sqrt(sin(z)-1));
+       d = (x + y)/(sqrt(sin(z)-1));
+       result += check_normal(e, d);
+
        return result;
 }