[poincare] Create a a flag on Expression that is set when the

approximation encouters a complex value

All approximation methods take the complex format into account.
This commit is contained in:
Émilie Feral
2018-12-21 17:55:58 +01:00
committed by Léa Saviot
parent c3ad0e027c
commit ecf3f2ea0f
23 changed files with 187 additions and 122 deletions

View File

@@ -48,7 +48,7 @@ Expression ComplexArgument::shallowReduce(Context & context, Preferences::Comple
#endif
bool real = c.isReal(context);
if (real) {
float app = c.approximateToScalar<float>(context, angleUnit);
float app = c.node()->approximate(float(), context, angleUnit).toScalar();
if (!std::isnan(app) && app >= Expression::epsilon<float>()) {
// arg(x) = 0 if x > 0
Expression result = Rational(0);