* 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
// 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
/** 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)) {
// 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
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);
}
}
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);
}
}
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);
}
}
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);
}
//////////