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