[poincare/trigonometry] Method UnitConversionFactor

Change-Id: I4ef3e4404071a305354b572e15e5199040f9bf48
This commit is contained in:
Gabriel Ozouf
2020-11-26 17:09:05 +01:00
committed by EmilieNumworks
parent f329ca825f
commit 64208a7f3c
2 changed files with 9 additions and 0 deletions

View File

@@ -16,6 +16,7 @@ public:
static bool isDirectTrigonometryFunction(const Expression & e);
static bool isInverseTrigonometryFunction(const Expression & e);
static bool AreInverseFunctions(const Expression & directFunction, const Expression & inverseFunction);
static Expression UnitConversionFactor(Preferences::AngleUnit fromUnit, Preferences::AngleUnit toUnit);
static bool ExpressionIsEquivalentToTangent(const Expression & e);
static Expression shallowReduceDirectFunction(Expression & e, ExpressionNode::ReductionContext reductionContext);
static Expression shallowReduceInverseFunction(Expression & e, ExpressionNode::ReductionContext reductionContext);

View File

@@ -3,6 +3,7 @@
#include <poincare/constant.h>
#include <poincare/decimal.h>
#include <poincare/derivative.h>
#include <poincare/division.h>
#include <poincare/float.h>
#include <poincare/multiplication.h>
#include <poincare/power.h>
@@ -87,6 +88,13 @@ bool Trigonometry::AreInverseFunctions(const Expression & directFunction, const
return inverseFunction.type() == correspondingType;
}
Expression Trigonometry::UnitConversionFactor(Preferences::AngleUnit fromUnit, Preferences::AngleUnit toUnit) {
if (fromUnit == toUnit) {
return Rational::Builder(1);
}
return Division::Builder(piExpression(toUnit), piExpression(fromUnit));
}
bool Trigonometry::ExpressionIsEquivalentToTangent(const Expression & e) {
// We look for (cos^-1 * sin)
assert(ExpressionNode::Type::Power < ExpressionNode::Type::Sine);