]> www.ginac.de Git - ginac.git/blobdiff - ginac/ex.cpp
Happy New Year!
[ginac.git] / ginac / ex.cpp
index 290154b4838e863859db143e181ea337e8ef9e75..ccae57917ac6bb1ceba8464dcee852304480c62d 100644 (file)
@@ -3,7 +3,7 @@
  *  Implementation of GiNaC's light-weight expression handles. */
 
 /*
- *  GiNaC Copyright (C) 1999-2015 Johannes Gutenberg University Mainz, Germany
+ *  GiNaC Copyright (C) 1999-2018 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
@@ -123,7 +123,7 @@ ex ex::subs(const lst & ls, const lst & lr, unsigned options) const
 
        // Convert the lists to a map
        exmap m;
-       for (lst::const_iterator its = ls.begin(), itr = lr.begin(); its != ls.end(); ++its, ++itr) {
+       for (auto its = ls.begin(), itr = lr.begin(); its != ls.end(); ++its, ++itr) {
                m.insert(std::make_pair(*its, *itr));
 
                // Search for products and powers in the expressions to be substituted
@@ -140,7 +140,7 @@ ex ex::subs(const lst & ls, const lst & lr, unsigned options) const
 /** Substitute objects in an expression (syntactic substitution) and return
  *  the result as a new expression.  There are two valid types of
  *  replacement arguments: 1) a relational like object==ex and 2) a list of
- *  relationals lst(object1==ex1,object2==ex2,...). */
+ *  relationals lst{object1==ex1,object2==ex2,...}. */
 ex ex::subs(const ex & e, unsigned options) const
 {
        if (e.info(info_flags::relation_equal)) {
@@ -306,7 +306,7 @@ ptr<basic> ex::construct_from_basic(const basic & other)
                // apply eval() once more. The recursion stops when eval() calls
                // hold() or returns an object that already has its "evaluated"
                // flag set, such as a symbol or a numeric.
-               const ex & tmpex = other.eval(1);
+               const ex & tmpex = other.eval();
 
                // Eventually, the eval() recursion goes through the "else" branch
                // below, which assures that the object pointed to by tmpex.bp is
@@ -401,10 +401,7 @@ basic & ex::construct_from_int(int i)
        case 12:
                return *const_cast<numeric *>(_num12_p);
        default:
-               basic *bp = new numeric(i);
-               bp->setflag(status_flags::dynallocated);
-               GINAC_ASSERT(bp->get_refcount() == 0);
-               return *bp;
+               return dynallocate<numeric>(i);
        }
 }
        
@@ -438,10 +435,7 @@ basic & ex::construct_from_uint(unsigned int i)
        case 12:
                return *const_cast<numeric *>(_num12_p);
        default:
-               basic *bp = new numeric(i);
-               bp->setflag(status_flags::dynallocated);
-               GINAC_ASSERT(bp->get_refcount() == 0);
-               return *bp;
+               return dynallocate<numeric>(i);
        }
 }
        
@@ -499,10 +493,7 @@ basic & ex::construct_from_long(long i)
        case 12:
                return *const_cast<numeric *>(_num12_p);
        default:
-               basic *bp = new numeric(i);
-               bp->setflag(status_flags::dynallocated);
-               GINAC_ASSERT(bp->get_refcount() == 0);
-               return *bp;
+               return dynallocate<numeric>(i);
        }
 }
        
@@ -536,19 +527,13 @@ basic & ex::construct_from_ulong(unsigned long i)
        case 12:
                return *const_cast<numeric *>(_num12_p);
        default:
-               basic *bp = new numeric(i);
-               bp->setflag(status_flags::dynallocated);
-               GINAC_ASSERT(bp->get_refcount() == 0);
-               return *bp;
+               return dynallocate<numeric>(i);
        }
 }
        
 basic & ex::construct_from_double(double d)
 {
-       basic *bp = new numeric(d);
-       bp->setflag(status_flags::dynallocated);
-       GINAC_ASSERT(bp->get_refcount() == 0);
-       return *bp;
+       return dynallocate<numeric>(d);
 }
 
 //////////