Files
Upsilon/poincare/src/floor.cpp
Émilie Feral 8e5e5d97ca [poincare] Parse approximation functions (floor, ceil, frac, round)
Change-Id: I54fed14f1effe2cf793ced0111db781c0c3ab06c
2017-03-16 15:12:09 +01:00

37 lines
720 B
C++

#include <poincare/floor.h>
extern "C" {
#include <assert.h>
#include <math.h>
}
namespace Poincare {
Floor::Floor() :
Function("floor")
{
}
Expression::Type Floor::type() const {
return Type::Floor;
}
Expression * Floor::cloneWithDifferentOperands(Expression** newOperands,
int numberOfOperands, bool cloneOperands) const {
assert(numberOfOperands == 1);
assert(newOperands != nullptr);
Floor * f = new Floor();
f->setArgument(newOperands, numberOfOperands, cloneOperands);
return f;
}
float Floor::privateApproximate(Context& context, AngleUnit angleUnit) const {
assert(angleUnit != AngleUnit::Default);
float f = m_args[0]->approximate(context, angleUnit);
return floorf(f);
}
}