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.