1 #ifndef POINCARE_ADDITION_H 2 #define POINCARE_ADDITION_H 33 bool needParenthesisWithParent(
const Expression * e)
const override;
37 int writeTextInBuffer(
char * buffer,
int bufferSize,
int numberOfSignificantDigits = PrintFloat::k_numberOfStoredSignificantDigits)
const override {
40 static const char * name() {
return "+"; }
50 template<
typename T>
static Matrix * computeOnMatrixAndComplex(
const Matrix * m,
const Complex<T> *
c) {
54 return ApproximationEngine::mapReduce<float>(
this, context, angleUnit, compute<float>, computeOnComplexAndMatrix<float>, computeOnMatrixAndComplex<float>, computeOnMatrices<float>);
57 return ApproximationEngine::mapReduce<double>(
this, context, angleUnit, compute<double>, computeOnComplexAndMatrix<double>, computeOnMatrixAndComplex<double>, computeOnMatrices<double>);
int polynomialDegree(char symbolName) const override
static int writeInfixExpressionTextInBuffer(const Expression *expression, char *buffer, int bufferSize, int numberOfDigits, const char *operatorName)
static Matrix * computeOnMatrices(const Matrix *m, const Matrix *n)
Type type() const override
Expression * clone() const override
static Complex< T > compute(const Complex< T > c, const Complex< T > d)
static Matrix * elementWiseOnComplexAndComplexMatrix(const Complex< T > *c, const Matrix *n, ComplexAndComplexReduction< T > computeOnComplexes)
static ExpressionLayout * createInfixLayout(const Expression *expression, PrintFloat::Mode floatDisplayMode, Expression::ComplexFormat complexFormat, const char *operatorName)
static Matrix * computeOnComplexAndMatrix(const Complex< T > *c, const Matrix *m)
static Matrix * elementWiseOnComplexMatrices(const Matrix *m, const Matrix *n, ComplexAndComplexReduction< T > computeOnComplexes)