Numworks Epsilon  1.4.1
Graphing Calculator Operating System
parenthesis.h
Go to the documentation of this file.
1 #ifndef POINCARE_PARENTHESIS_H
2 #define POINCARE_PARENTHESIS_H
3 
6 
7 namespace Poincare {
8 
9 class Parenthesis : public StaticHierarchy<1> {
10 public:
12 public:
13  Expression * clone() const override;
14  Type type() const override;
15  int polynomialDegree(char symbolName) const override;
16 private:
17  /* Layout */
18  ExpressionLayout * privateCreateLayout(PrintFloat::Mode floatDisplayMode, ComplexFormat complexFormat) const override;
19  int writeTextInBuffer(char * buffer, int bufferSize, int numberOfSignificantDigits = PrintFloat::k_numberOfStoredSignificantDigits) const override {
20  return LayoutEngine::writePrefixExpressionTextInBuffer(this, buffer, bufferSize, numberOfSignificantDigits, "");
21  }
22  /* Simplification */
23  Expression * shallowReduce(Context& context, AngleUnit angleUnit) override;
24  /* Evaluation */
25  Expression * privateApproximate(SinglePrecision p, Context& context, AngleUnit angleUnit) const override { return templatedApproximate<float>(context, angleUnit); }
26  Expression * privateApproximate(DoublePrecision p, Context& context, AngleUnit angleUnit) const override { return templatedApproximate<double>(context, angleUnit); }
27  template<typename T> Expression * templatedApproximate(Context& context, AngleUnit angleUnit) const;
28 
29 };
30 
31 }
32 
33 #endif
int polynomialDegree(char symbolName) const override
Definition: parenthesis.cpp:20
Expression * clone() const override
Definition: parenthesis.cpp:15
static int writePrefixExpressionTextInBuffer(const Expression *expression, char *buffer, int bufferSize, int numberOfDigits, const char *operatorName)
Type type() const override
Definition: parenthesis.cpp:11