Numworks Epsilon  1.4.1
Graphing Calculator Operating System
Poincare::Decimal Class Reference

#include <decimal.h>

Inheritance diagram for Poincare::Decimal:
Poincare::StaticHierarchy< 0 > Poincare::Expression

Public Member Functions

 Decimal (Integer mantissa, int exponent)
 
 Decimal (double f)
 
int exponent () const
 
Integer mantissa () const
 
Type type () const override
 
Expressionclone () const override
 
int writeTextInBuffer (char *buffer, int bufferSize, int numberOfSignificantDigits=PrintFloat::k_numberOfStoredSignificantDigits) const override
 
Sign sign () const override
 
- Public Member Functions inherited from Poincare::StaticHierarchy< 0 >
 StaticHierarchy ()
 
 StaticHierarchy (const Expression *const *operands, bool cloneOperands=true)
 
 StaticHierarchy (const Expression *expression, bool cloneOperands=true)
 
 StaticHierarchy (const Expression *expression1, const Expression *expression2, bool cloneOperands=true)
 
 StaticHierarchy (const StaticHierarchy &other)=delete
 
 StaticHierarchy (StaticHierarchy &&other)=delete
 
 StaticHierarchy (const Expression *e, bool cloneOperands)
 
 StaticHierarchy (const Expression *e1, const Expression *e2, bool cloneOperands)
 
 ~StaticHierarchy ()
 
StaticHierarchyoperator= (const StaticHierarchy &other)=delete
 
StaticHierarchyoperator= (StaticHierarchy &&other)=delete
 
virtual void setArgument (ListData *listData, int numberOfEntries, bool clone)
 
int numberOfOperands () const override
 
const Expression *const * operands () const override
 
virtual bool hasValidNumberOfOperands (int numberOfOperands) const
 
- Public Member Functions inherited from Poincare::Expression
virtual ~Expression ()=default
 
const Expressionoperand (int i) const
 
ExpressioneditableOperand (int i)
 
ExpressionreplaceWith (Expression *newOperand, bool deleteAfterReplace=true)
 
void replaceOperand (const Expression *oldOperand, Expression *newOperand, bool deleteOldOperand=true)
 
void detachOperand (const Expression *e)
 
void detachOperands ()
 
void swapOperands (int i, int j)
 
Expressionparent () const
 
void setParent (Expression *parent)
 
bool hasAncestor (const Expression *e) const
 
bool recursivelyMatches (ExpressionTest test, Context &context) const
 
bool isApproximate (Context &context) const
 
virtual float characteristicXRange (Context &context, AngleUnit angleUnit=AngleUnit::Default) const
 
virtual int polynomialDegree (char symbolName) const
 
bool isIdenticalTo (const Expression *e) const
 
ExpressionLayoutcreateLayout (PrintFloat::Mode floatDisplayMode=PrintFloat::Mode::Default, ComplexFormat complexFormat=ComplexFormat::Default) const
 
template<typename T >
Expressionapproximate (Context &context, AngleUnit angleUnit=AngleUnit::Default) const
 
template<typename T >
T approximateToScalar (Context &context, AngleUnit angleUnit=AngleUnit::Default) const
 

Static Public Member Functions

static int exponent (const char *integralPart, int integralPartLength, const char *fractionalPart, int fractionalPartLength, const char *exponent, int exponentLength, bool exponentNegative)
 
static Integer mantissa (const char *integralPart, int integralPartLength, const char *fractionalPart, int fractionalPartLength, bool negative)
 
- Static Public Member Functions inherited from Poincare::Expression
static Expressionparse (char const *string)
 
static void ReplaceSymbolWithExpression (Expression **expressionAddress, char symbol, Expression *expression)
 
static void setCircuitBreaker (CircuitBreaker cb)
 
static bool shouldStopProcessing ()
 
static bool IsMatrix (const Expression *e, Context &context)
 
static ExpressionParseAndSimplify (const char *text, Context &context, AngleUnit angleUnit=AngleUnit::Default)
 
static void Simplify (Expression **expressionAddress, Context &context, AngleUnit angleUnit=AngleUnit::Default)
 
template<typename T >
static T approximateToScalar (const char *text, Context &context, AngleUnit angleUnit=AngleUnit::Default)
 

Additional Inherited Members

- Public Types inherited from Poincare::Expression
enum  Type : uint8_t {
  Type::Undefined = 0, Type::Rational = 1, Type::Decimal, Type::Multiplication,
  Type::Power, Type::Addition, Type::Factorial, Type::Division,
  Type::Store, Type::Sine, Type::Cosine, Type::Tangent,
  Type::AbsoluteValue, Type::ArcCosine, Type::ArcSine, Type::ArcTangent,
  Type::BinomialCoefficient, Type::Ceiling, Type::ComplexArgument, Type::Conjugate,
  Type::Derivative, Type::Determinant, Type::DivisionQuotient, Type::DivisionRemainder,
  Type::Factor, Type::Floor, Type::FracPart, Type::GreatCommonDivisor,
  Type::HyperbolicArcCosine, Type::HyperbolicArcSine, Type::HyperbolicArcTangent, Type::HyperbolicCosine,
  Type::HyperbolicSine, Type::HyperbolicTangent, Type::ImaginaryPart, Type::Integral,
  Type::LeastCommonMultiple, Type::Logarithm, Type::MatrixTrace, Type::NaperianLogarithm,
  Type::NthRoot, Type::Opposite, Type::Parenthesis, Type::PermuteCoefficient,
  Type::Product, Type::Random, Type::Randint, Type::RealPart,
  Type::Round, Type::SquareRoot, Type::Subtraction, Type::Sum,
  Type::Symbol, Type::Complex, Type::Matrix, Type::ConfidenceInterval,
  Type::MatrixDimension, Type::MatrixInverse, Type::MatrixTranspose, Type::PredictionInterval,
  Type::SimplificationRoot
}
 
enum  ComplexFormat { ComplexFormat::Cartesian = 0, ComplexFormat::Polar = 1, ComplexFormat::Default = 2 }
 
enum  AngleUnit { AngleUnit::Degree = 0, AngleUnit::Radian = 1, AngleUnit::Default = 2 }
 
enum  Sign { Sign::Negative = -1, Sign::Unknown = 0, Sign::Positive = 1 }
 
typedef bool(* CircuitBreaker) ()
 
typedef bool(* ExpressionTest) (const Expression *e, Context &context)
 
- Protected Types inherited from Poincare::Expression
typedef float SinglePrecision
 
typedef double DoublePrecision
 
- Protected Member Functions inherited from Poincare::StaticHierarchy< 0 >
void build (const Expression *const *operands, int numberOfOperands, bool cloneOperands)
 
int simplificationOrderSameType (const Expression *e, bool canBeInterrupted) const override
 
- Protected Member Functions inherited from Poincare::Expression
 Expression ()
 
void detachOperandAtIndex (int i)
 
- Static Protected Member Functions inherited from Poincare::Expression
template<typename T >
static T epsilon ()
 
static int SimplificationOrder (const Expression *e1, const Expression *e2, bool canBeInterrupted=false)
 
- Protected Attributes inherited from Poincare::StaticHierarchy< 0 >
const Expressionm_operands [T]
 
- Static Protected Attributes inherited from Poincare::Expression
static constexpr int k_maxNumberOfSteps = 10000
 

Detailed Description

Definition at line 14 of file decimal.h.

Constructor & Destructor Documentation

◆ Decimal() [1/2]

Poincare::Decimal::Decimal ( Integer  mantissa,
int  exponent 
)

Definition at line 74 of file decimal.cpp.

◆ Decimal() [2/2]

Poincare::Decimal::Decimal ( double  f)

Definition at line 80 of file decimal.cpp.

Member Function Documentation

◆ clone()

Expression * Poincare::Decimal::clone ( ) const
overridevirtual

Implements Poincare::Expression.

Definition at line 106 of file decimal.cpp.

◆ exponent() [1/2]

int Poincare::Decimal::exponent ( const char *  integralPart,
int  integralPartLength,
const char *  fractionalPart,
int  fractionalPartLength,
const char *  exponent,
int  exponentLength,
bool  exponentNegative 
)
static

Definition at line 16 of file decimal.cpp.

◆ exponent() [2/2]

int Poincare::Decimal::exponent ( ) const
inline

Definition at line 20 of file decimal.h.

◆ mantissa() [1/2]

Integer Poincare::Decimal::mantissa ( const char *  integralPart,
int  integralPartLength,
const char *  fractionalPart,
int  fractionalPartLength,
bool  negative 
)
static

Definition at line 61 of file decimal.cpp.

◆ mantissa() [2/2]

Integer Poincare::Decimal::mantissa ( ) const
inline

Definition at line 21 of file decimal.h.

◆ sign()

Sign Poincare::Decimal::sign ( ) const
inlineoverridevirtual

Reimplemented from Poincare::Expression.

Definition at line 26 of file decimal.h.

◆ type()

Expression::Type Poincare::Decimal::type ( ) const
overridevirtual

Implements Poincare::Expression.

Definition at line 102 of file decimal.cpp.

◆ writeTextInBuffer()

int Poincare::Decimal::writeTextInBuffer ( char *  buffer,
int  bufferSize,
int  numberOfSignificantDigits = PrintFloat::k_numberOfStoredSignificantDigits 
) const
overridevirtual

Implements Poincare::Expression.

Definition at line 116 of file decimal.cpp.


The documentation for this class was generated from the following files: