]> www.ginac.de Git - ginac.git/blobdiff - ginac/power.cpp
Remove 'level' argument of evalf().
[ginac.git] / ginac / power.cpp
index b5feebe215030c7d7a93edb49042db9875d1e8cc..5cddca8995bd475c6b6f56f5a7c8d5670280fa6a 100644 (file)
@@ -3,7 +3,7 @@
  *  Implementation of GiNaC's symbolic exponentiation (basis^exponent). */
 
 /*
- *  GiNaC Copyright (C) 1999-2015 Johannes Gutenberg University Mainz, Germany
+ *  GiNaC Copyright (C) 1999-2016 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
@@ -562,23 +562,15 @@ ex power::eval() const
        return this->hold();
 }
 
-ex power::evalf(int level) const
+ex power::evalf() const
 {
-       ex ebasis;
+       ex ebasis = basis.evalf();
        ex eexponent;
        
-       if (level==1) {
-               ebasis = basis;
+       if (!is_exactly_a<numeric>(exponent))
+               eexponent = exponent.evalf();
+       else
                eexponent = exponent;
-       } else if (level == -max_recursion_level) {
-               throw(std::runtime_error("max recursion level reached"));
-       } else {
-               ebasis = basis.evalf(level-1);
-               if (!is_exactly_a<numeric>(exponent))
-                       eexponent = exponent.evalf(level-1);
-               else
-                       eexponent = exponent;
-       }
 
        return dynallocate<power>(ebasis, eexponent);
 }