#include #include namespace Poincare { template FloatNode * FloatNode::FailedAllocationStaticNode() { static AllocationFailureExpressionNode> failure; TreePool::sharedPool()->registerStaticNodeIfRequired(&failure); return &failure; } template Expression FloatNode::setSign(Sign s, Context & context, Preferences::AngleUnit angleUnit) { Expression thisExpr = Number(this); Expression result = Float(-m_value); thisExpr.replaceWithInPlace(result); return result; } template int FloatNode::simplificationOrderSameType(const ExpressionNode * e, bool canBeInterrupted) const { assert(e->type() == ExpressionNode::Type::Float); const FloatNode * other = static_cast *>(e); if (value() < other->value()) { return -1; } if (value() > other->value()) { return 1; } return 0; } template class FloatNode; template class FloatNode; }