|
Numworks Epsilon
1.4.1
Graphing Calculator Operating System
|
#include <expression.h>
Public Member Functions | |
| virtual | ~Expression ()=default |
| virtual Expression * | clone () const =0 |
| virtual Type | type () const =0 |
| virtual const Expression *const * | operands () const =0 |
| const Expression * | operand (int i) const |
| Expression * | editableOperand (int i) |
| virtual int | numberOfOperands () const =0 |
| Expression * | replaceWith (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) |
| Expression * | parent () const |
| void | setParent (Expression *parent) |
| bool | hasAncestor (const Expression *e) const |
| virtual Sign | sign () 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 |
| ExpressionLayout * | createLayout (PrintFloat::Mode floatDisplayMode=PrintFloat::Mode::Default, ComplexFormat complexFormat=ComplexFormat::Default) const |
| virtual int | writeTextInBuffer (char *buffer, int bufferSize, int numberOfSignificantDigits=PrintFloat::k_numberOfStoredSignificantDigits) const =0 |
| template<typename T > | |
| Expression * | approximate (Context &context, AngleUnit angleUnit=AngleUnit::Default) const |
| template<typename T > | |
| T | approximateToScalar (Context &context, AngleUnit angleUnit=AngleUnit::Default) const |
Static Public Member Functions | |
| static Expression * | parse (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 Expression * | ParseAndSimplify (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) |
Protected Types | |
| typedef float | SinglePrecision |
| typedef double | DoublePrecision |
Protected Member Functions | |
| Expression () | |
| void | detachOperandAtIndex (int i) |
Static Protected Member Functions | |
| template<typename T > | |
| static T | epsilon () |
| static int | SimplificationOrder (const Expression *e1, const Expression *e2, bool canBeInterrupted=false) |
Static Protected Attributes | |
| static constexpr int | k_maxNumberOfSteps = 10000 |
Definition at line 16 of file expression.h.
| typedef bool(* Poincare::Expression::CircuitBreaker) () |
Definition at line 169 of file expression.h.
|
protected |
Definition at line 246 of file expression.h.
| typedef bool(* Poincare::Expression::ExpressionTest) (const Expression *e, Context &context) |
Definition at line 196 of file expression.h.
|
protected |
Definition at line 245 of file expression.h.
|
strong |
| Enumerator | |
|---|---|
| Degree | |
| Radian | |
| Default | |
Definition at line 153 of file expression.h.
|
strong |
| Enumerator | |
|---|---|
| Cartesian | |
| Polar | |
| Default | |
Definition at line 148 of file expression.h.
|
strong |
| Enumerator | |
|---|---|
| Negative | |
| Unknown | |
| Positive | |
Definition at line 190 of file expression.h.
|
strong |
Definition at line 84 of file expression.h.
|
virtualdefault |
|
inlineprotected |
Definition at line 241 of file expression.h.
| template Poincare::Expression * Poincare::Expression::approximate< float > | ( | Context & | context, |
| AngleUnit | angleUnit = AngleUnit::Default |
||
| ) | const |
Definition at line 338 of file expression.cpp.
| T Poincare::Expression::approximateToScalar | ( | Context & | context, |
| AngleUnit | angleUnit = AngleUnit::Default |
||
| ) | const |
Definition at line 347 of file expression.cpp.
|
static |
Definition at line 363 of file expression.cpp.
|
virtual |
Reimplemented in Poincare::Symbol, and Poincare::Tangent.
Definition at line 179 of file expression.cpp.
|
pure virtual |
Implemented in Poincare::Symbol, Poincare::Complex< T >, Poincare::Complex< double >, Poincare::Rational, Poincare::Decimal, Poincare::Multiplication, Poincare::Power, Poincare::Addition, Poincare::SimplificationRoot, Poincare::Matrix, Poincare::Division, Poincare::Factor, Poincare::Sine, Poincare::Integral, Poincare::Logarithm, Poincare::Store, Poincare::Tangent, Poincare::AbsoluteValue, Poincare::ArcCosine, Poincare::ArcSine, Poincare::ArcTangent, Poincare::Ceiling, Poincare::ComplexArgument, Poincare::Conjugate, Poincare::Derivative, Poincare::Determinant, Poincare::DivisionQuotient, Poincare::DivisionRemainder, Poincare::Floor, Poincare::FracPart, Poincare::GreatCommonDivisor, Poincare::HyperbolicArcCosine, Poincare::HyperbolicArcSine, Poincare::HyperbolicArcTangent, Poincare::HyperbolicCosine, Poincare::HyperbolicSine, Poincare::HyperbolicTangent, Poincare::ImaginaryPart, Poincare::LeastCommonMultiple, Poincare::MatrixDimension, Poincare::MatrixInverse, Poincare::MatrixTrace, Poincare::MatrixTranspose, Poincare::NaperianLogarithm, Poincare::NthRoot, Poincare::PermuteCoefficient, Poincare::Random, Poincare::RealPart, Poincare::Round, Poincare::SquareRoot, Poincare::Subtraction, Poincare::BinomialCoefficient, Poincare::ConfidenceInterval, Poincare::Factorial, Poincare::Opposite, Poincare::Parenthesis, Poincare::PredictionInterval, Poincare::Randint, Poincare::Product, Poincare::Sum, and Poincare::Undefined.
| ExpressionLayout * Poincare::Expression::createLayout | ( | PrintFloat::Mode | floatDisplayMode = PrintFloat::Mode::Default, |
| ComplexFormat | complexFormat = ComplexFormat::Default |
||
| ) | const |
Definition at line 244 of file expression.cpp.
| void Poincare::Expression::detachOperand | ( | const Expression * | e | ) |
Definition at line 115 of file expression.cpp.
|
protected |
Definition at line 130 of file expression.cpp.
| void Poincare::Expression::detachOperands | ( | ) |
Definition at line 124 of file expression.cpp.
|
inline |
Definition at line 176 of file expression.h.
|
staticprotected |
Definition at line 370 of file expression.cpp.
| bool Poincare::Expression::hasAncestor | ( | const Expression * | e | ) | const |
Definition at line 148 of file expression.cpp.
Definition at line 173 of file expression.cpp.
|
inline |
Definition at line 219 of file expression.h.
|
static |
Definition at line 198 of file expression.cpp.
|
pure virtual |
| const Expression * Poincare::Expression::operand | ( | int | i | ) | const |
Definition at line 78 of file expression.cpp.
|
pure virtual |
|
inline |
Definition at line 185 of file expression.h.
|
static |
Definition at line 25 of file expression.cpp.
|
static |
Definition at line 265 of file expression.cpp.
|
virtual |
Reimplemented in Poincare::Symbol, Poincare::Multiplication, Poincare::Power, Poincare::Addition, Poincare::SimplificationRoot, Poincare::Matrix, Poincare::Division, Poincare::Integral, Poincare::Store, Poincare::Subtraction, Poincare::Derivative, Poincare::Opposite, Poincare::Parenthesis, Poincare::ConfidenceInterval, Poincare::PredictionInterval, and Poincare::Undefined.
Definition at line 202 of file expression.cpp.
| bool Poincare::Expression::recursivelyMatches | ( | ExpressionTest | test, |
| Context & | context | ||
| ) | const |
Definition at line 161 of file expression.cpp.
| void Poincare::Expression::replaceOperand | ( | const Expression * | oldOperand, |
| Expression * | newOperand, | ||
| bool | deleteOldOperand = true |
||
| ) |
Definition at line 91 of file expression.cpp.
|
static |
Definition at line 43 of file expression.cpp.
| Expression * Poincare::Expression::replaceWith | ( | Expression * | newOperand, |
| bool | deleteAfterReplace = true |
||
| ) |
Definition at line 85 of file expression.cpp.
|
static |
Definition at line 61 of file expression.cpp.
|
inline |
Definition at line 186 of file expression.h.
|
static |
Definition at line 65 of file expression.cpp.
|
inlinevirtual |
Reimplemented in Poincare::Symbol, Poincare::Rational, Poincare::Decimal, Poincare::Multiplication, Poincare::Power, Poincare::Opposite, Poincare::AbsoluteValue, and Poincare::Random.
Definition at line 195 of file expression.h.
|
staticprotected |
Definition at line 226 of file expression.cpp.
|
static |
Definition at line 277 of file expression.cpp.
| void Poincare::Expression::swapOperands | ( | int | i, |
| int | j | ||
| ) |
Definition at line 139 of file expression.cpp.
|
pure virtual |
Implemented in Poincare::Symbol, Poincare::Complex< T >, Poincare::Complex< double >, Poincare::Rational, Poincare::Decimal, Poincare::Multiplication, Poincare::SimplificationRoot, Poincare::Power, Poincare::Addition, Poincare::Matrix, Poincare::Division, Poincare::Factor, Poincare::Sine, Poincare::Integral, Poincare::Logarithm, Poincare::Opposite, Poincare::Parenthesis, Poincare::Store, Poincare::Tangent, Poincare::AbsoluteValue, Poincare::ArcCosine, Poincare::ArcSine, Poincare::ArcTangent, Poincare::Ceiling, Poincare::ComplexArgument, Poincare::Conjugate, Poincare::Derivative, Poincare::Determinant, Poincare::DivisionQuotient, Poincare::DivisionRemainder, Poincare::Floor, Poincare::FracPart, Poincare::GreatCommonDivisor, Poincare::HyperbolicArcCosine, Poincare::HyperbolicArcSine, Poincare::HyperbolicArcTangent, Poincare::HyperbolicCosine, Poincare::HyperbolicSine, Poincare::HyperbolicTangent, Poincare::ImaginaryPart, Poincare::LeastCommonMultiple, Poincare::MatrixDimension, Poincare::MatrixInverse, Poincare::MatrixTrace, Poincare::MatrixTranspose, Poincare::NaperianLogarithm, Poincare::NthRoot, Poincare::PermuteCoefficient, Poincare::Random, Poincare::RealPart, Poincare::Round, Poincare::SquareRoot, Poincare::Subtraction, Poincare::BinomialCoefficient, Poincare::ConfidenceInterval, Poincare::Factorial, Poincare::PredictionInterval, Poincare::Randint, Poincare::Product, Poincare::Sum, and Poincare::Undefined.
|
pure virtual |
|
friend |
Definition at line 30 of file expression.h.
|
friend |
Definition at line 22 of file expression.h.
|
friend |
Definition at line 77 of file expression.h.
|
friend |
Definition at line 31 of file expression.h.
|
friend |
Definition at line 32 of file expression.h.
|
friend |
Definition at line 33 of file expression.h.
|
friend |
Definition at line 34 of file expression.h.
|
friend |
Definition at line 35 of file expression.h.
|
friend |
Definition at line 81 of file expression.h.
|
friend |
Definition at line 80 of file expression.h.
|
friend |
Definition at line 36 of file expression.h.
|
friend |
Definition at line 37 of file expression.h.
|
friend |
Definition at line 38 of file expression.h.
|
friend |
Definition at line 28 of file expression.h.
|
friend |
Definition at line 19 of file expression.h.
|
friend |
Definition at line 39 of file expression.h.
|
friend |
Definition at line 40 of file expression.h.
|
friend |
Definition at line 25 of file expression.h.
|
friend |
Definition at line 41 of file expression.h.
|
friend |
Definition at line 42 of file expression.h.
|
friend |
Definition at line 24 of file expression.h.
|
friend |
Definition at line 23 of file expression.h.
|
friend |
Definition at line 43 of file expression.h.
|
friend |
Definition at line 44 of file expression.h.
|
friend |
Definition at line 45 of file expression.h.
|
friend |
Definition at line 46 of file expression.h.
|
friend |
Definition at line 47 of file expression.h.
|
friend |
Definition at line 48 of file expression.h.
|
friend |
Definition at line 49 of file expression.h.
|
friend |
Definition at line 50 of file expression.h.
|
friend |
Definition at line 51 of file expression.h.
|
friend |
Definition at line 52 of file expression.h.
|
friend |
Definition at line 53 of file expression.h.
|
friend |
Definition at line 79 of file expression.h.
|
friend |
Definition at line 54 of file expression.h.
|
friend |
Definition at line 55 of file expression.h.
|
friend |
Definition at line 73 of file expression.h.
|
friend |
Definition at line 56 of file expression.h.
|
friend |
Definition at line 57 of file expression.h.
|
friend |
Definition at line 58 of file expression.h.
|
friend |
Definition at line 59 of file expression.h.
|
friend |
Definition at line 20 of file expression.h.
|
friend |
Definition at line 60 of file expression.h.
|
friend |
Definition at line 61 of file expression.h.
|
friend |
Definition at line 62 of file expression.h.
|
friend |
Definition at line 63 of file expression.h.
|
friend |
Definition at line 64 of file expression.h.
|
friend |
Definition at line 21 of file expression.h.
|
friend |
Definition at line 65 of file expression.h.
|
friend |
Definition at line 66 of file expression.h.
|
friend |
Definition at line 18 of file expression.h.
|
friend |
Definition at line 67 of file expression.h.
|
friend |
Definition at line 68 of file expression.h.
|
friend |
Definition at line 75 of file expression.h.
|
friend |
Definition at line 78 of file expression.h.
|
friend |
Definition at line 74 of file expression.h.
|
friend |
Definition at line 27 of file expression.h.
|
friend |
Definition at line 69 of file expression.h.
|
friend |
Definition at line 26 of file expression.h.
|
friend |
Definition at line 70 of file expression.h.
|
friend |
Definition at line 71 of file expression.h.
|
friend |
Definition at line 72 of file expression.h.
|
friend |
Definition at line 29 of file expression.h.
|
friend |
Definition at line 76 of file expression.h.
|
friend |
Definition at line 17 of file expression.h.
|
staticprotected |
Definition at line 248 of file expression.h.