* Implementation of GiNaC's products of expressions. */
/*
- * 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
return true;
return overall_coeff.info(inf);
}
- case info_flags::algebraic: {
- for (auto & it : seq) {
- if (recombine_pair_to_ex(it).info(inf))
- return true;
- }
- return false;
- }
case info_flags::positive:
case info_flags::negative: {
if ((inf==info_flags::positive) && (flags & status_flags::is_positive))
return this->hold();
}
-ex mul::evalf(int level) const
+ex mul::evalf() const
{
- if (level==1)
- return mul(seq, overall_coeff);
-
- if (level==-max_recursion_level)
- throw(std::runtime_error("max recursion level reached"));
-
epvector s;
s.reserve(seq.size());
- --level;
- for (auto & it : seq) {
- s.push_back(expair(it.rest.evalf(level), it.coeff));
- }
- return dynallocate<mul>(std::move(s), overall_coeff.evalf(level));
+ for (auto & it : seq)
+ s.push_back(expair(it.rest.evalf(), it.coeff));
+ return dynallocate<mul>(std::move(s), overall_coeff.evalf());
}
void mul::find_real_imag(ex & rp, ex & ip) const