Numworks Epsilon  1.4.1
Graphing Calculator Operating System
Poincare::Complex< T > Class Template Reference

#include <complex.h>

Inheritance diagram for Poincare::Complex< T >:
Poincare::StaticHierarchy< 0 > Poincare::Expression

Public Member Functions

 Complex ()
 
 Complex (const char *integralPart, int integralPartLength, bool integralNegative, const char *fractionalPart, int fractionalPartLength, const char *exponent, int exponentLength, bool exponentNegative)
 
 Complex (const Complex &other)
 
Complexoperator= (const Complex &other)
 
T a () const
 
T b () const
 
T r () const
 
T th () const
 
Complex< Tconjugate () const
 
T toScalar () const
 
Expression::Type type () const override
 
Complex< T > * clone () const override
 
int writeTextInBuffer (char *buffer, int bufferSize, int numberOfSignificantDigits=PrintFloat::k_numberOfStoredSignificantDigits) const override
 
bool needParenthesisWithParent (const Expression *e) 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
 
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
 
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 Complex< TFloat (T x)
 
static Complex< TCartesian (T a, T b)
 
static Complex< TPolar (T r, T theta)
 
- 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

template<typename T>
class Poincare::Complex< T >

Definition at line 12 of file complex.h.

Constructor & Destructor Documentation

◆ Complex() [1/3]

template<typename T>
Poincare::Complex< T >::Complex ( )
inline

Definition at line 14 of file complex.h.

◆ Complex() [2/3]

template<typename T >
Poincare::Complex< T >::Complex ( const char *  integralPart,
int  integralPartLength,
bool  integralNegative,
const char *  fractionalPart,
int  fractionalPartLength,
const char *  exponent,
int  exponentLength,
bool  exponentNegative 
)

Definition at line 87 of file complex.cpp.

◆ Complex() [3/3]

template<typename T >
Poincare::Complex< T >::Complex ( const Complex< T > &  other)

Definition at line 51 of file complex.cpp.

Member Function Documentation

◆ a()

template<class T >
T Poincare::Complex< T >::a ( ) const

Definition at line 99 of file complex.cpp.

◆ b()

template<class T >
T Poincare::Complex< T >::b ( ) const

Definition at line 104 of file complex.cpp.

◆ Cartesian()

template<typename T>
Complex< T > Poincare::Complex< T >::Cartesian ( T  a,
T  b 
)
static

Definition at line 28 of file complex.cpp.

◆ clone()

template<class T >
Complex< T > * Poincare::Complex< T >::clone ( ) const
overridevirtual

Implements Poincare::Expression.

Definition at line 168 of file complex.cpp.

◆ conjugate()

template<class T >
Complex< T > Poincare::Complex< T >::conjugate ( ) const

Definition at line 158 of file complex.cpp.

◆ Float()

template<typename T>
Complex< T > Poincare::Complex< T >::Float ( T  x)
static

Definition at line 23 of file complex.cpp.

◆ needParenthesisWithParent()

template<class T >
bool Poincare::Complex< T >::needParenthesisWithParent ( const Expression e) const
overridevirtual

Reimplemented from Poincare::Expression.

Definition at line 186 of file complex.cpp.

◆ operator=()

template<typename T >
Complex< T > & Poincare::Complex< T >::operator= ( const Complex< T > &  other)

Definition at line 57 of file complex.cpp.

◆ Polar()

template<typename T>
Complex< T > Poincare::Complex< T >::Polar ( T  r,
T  theta 
)
static

Definition at line 33 of file complex.cpp.

◆ r()

template<class T >
T Poincare::Complex< T >::r ( ) const

Definition at line 109 of file complex.cpp.

◆ th()

template<class T >
T Poincare::Complex< T >::th ( ) const

Definition at line 145 of file complex.cpp.

◆ toScalar()

template<typename T >
T Poincare::Complex< T >::toScalar ( ) const

Definition at line 173 of file complex.cpp.

◆ type()

template<typename T >
Expression::Type Poincare::Complex< T >::type ( ) const
overridevirtual

Implements Poincare::Expression.

Definition at line 163 of file complex.cpp.

◆ writeTextInBuffer()

template<class T >
int Poincare::Complex< T >::writeTextInBuffer ( char *  buffer,
int  bufferSize,
int  numberOfSignificantDigits = PrintFloat::k_numberOfStoredSignificantDigits 
) const
overridevirtual

Implements Poincare::Expression.

Definition at line 181 of file complex.cpp.


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