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