From f8b3156f199ee0f5395a3122b00b8a4f04294b54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9a=20Saviot?= Date: Mon, 2 Nov 2020 18:00:08 +0100 Subject: [PATCH] [poincare] Start replacing approximateContext --- poincare/include/poincare/absolute_value.h | 4 ++-- poincare/include/poincare/addition.h | 4 ++-- poincare/include/poincare/arc_cosine.h | 4 ++-- poincare/include/poincare/arc_sine.h | 4 ++-- poincare/include/poincare/arc_tangent.h | 4 ++-- poincare/include/poincare/based_integer.h | 4 ++-- poincare/include/poincare/binom_cdf.h | 4 ++-- poincare/include/poincare/binom_pdf.h | 4 ++-- poincare/include/poincare/binomial_coefficient.h | 4 ++-- poincare/include/poincare/ceiling.h | 4 ++-- poincare/include/poincare/complex_argument.h | 4 ++-- poincare/include/poincare/complex_cartesian.h | 4 ++-- poincare/include/poincare/confidence_interval.h | 4 ++-- poincare/include/poincare/conjugate.h | 4 ++-- poincare/include/poincare/constant.h | 4 ++-- poincare/include/poincare/cosine.h | 4 ++-- poincare/include/poincare/decimal.h | 4 ++-- poincare/include/poincare/derivative.h | 4 ++-- poincare/include/poincare/determinant.h | 4 ++-- poincare/include/poincare/division.h | 4 ++-- poincare/include/poincare/division_quotient.h | 4 ++-- poincare/include/poincare/division_remainder.h | 4 ++-- poincare/include/poincare/empty_expression.h | 4 ++-- poincare/include/poincare/equal.h | 4 ++-- poincare/include/poincare/factor.h | 4 ++-- poincare/include/poincare/factorial.h | 4 ++-- poincare/include/poincare/float.h | 4 ++-- poincare/include/poincare/floor.h | 4 ++-- poincare/include/poincare/frac_part.h | 4 ++-- poincare/include/poincare/function.h | 4 ++-- poincare/include/poincare/great_common_divisor.h | 4 ++-- poincare/include/poincare/hyperbolic_arc_cosine.h | 4 ++-- poincare/include/poincare/hyperbolic_arc_sine.h | 4 ++-- poincare/include/poincare/hyperbolic_arc_tangent.h | 4 ++-- poincare/include/poincare/hyperbolic_cosine.h | 4 ++-- poincare/include/poincare/hyperbolic_sine.h | 4 ++-- poincare/include/poincare/hyperbolic_tangent.h | 4 ++-- poincare/include/poincare/imaginary_part.h | 4 ++-- poincare/include/poincare/infinity.h | 4 ++-- poincare/include/poincare/integral.h | 4 ++-- poincare/include/poincare/inv_binom.h | 4 ++-- poincare/include/poincare/inv_norm.h | 4 ++-- poincare/include/poincare/least_common_multiple.h | 4 ++-- poincare/include/poincare/logarithm.h | 4 ++-- poincare/include/poincare/matrix.h | 4 ++-- poincare/include/poincare/matrix_dimension.h | 4 ++-- poincare/include/poincare/matrix_echelon_form.h | 4 ++-- poincare/include/poincare/matrix_identity.h | 4 ++-- poincare/include/poincare/matrix_inverse.h | 4 ++-- poincare/include/poincare/matrix_trace.h | 4 ++-- poincare/include/poincare/matrix_transpose.h | 4 ++-- poincare/include/poincare/multiplication.h | 4 ++-- poincare/include/poincare/naperian_logarithm.h | 4 ++-- poincare/include/poincare/norm_cdf.h | 4 ++-- poincare/include/poincare/norm_cdf2.h | 4 ++-- poincare/include/poincare/norm_pdf.h | 4 ++-- poincare/include/poincare/nth_root.h | 4 ++-- poincare/include/poincare/opposite.h | 4 ++-- poincare/include/poincare/parenthesis.h | 4 ++-- poincare/include/poincare/permute_coefficient.h | 4 ++-- poincare/include/poincare/power.h | 4 ++-- poincare/include/poincare/prediction_interval.h | 4 ++-- poincare/include/poincare/randint.h | 4 ++-- poincare/include/poincare/random.h | 4 ++-- poincare/include/poincare/rational.h | 4 ++-- poincare/include/poincare/real_part.h | 4 ++-- poincare/include/poincare/round.h | 4 ++-- poincare/include/poincare/sequence.h | 4 ++-- poincare/include/poincare/sign_function.h | 4 ++-- poincare/include/poincare/sine.h | 4 ++-- poincare/include/poincare/square_root.h | 4 ++-- poincare/include/poincare/store.h | 4 ++-- poincare/include/poincare/subtraction.h | 4 ++-- poincare/include/poincare/sum_and_product.h | 4 ++-- poincare/include/poincare/symbol.h | 4 ++-- poincare/include/poincare/tangent.h | 4 ++-- poincare/include/poincare/undefined.h | 4 ++-- poincare/include/poincare/unit.h | 4 ++-- poincare/include/poincare/unit_convert.h | 4 ++-- poincare/include/poincare/unreal.h | 4 ++-- poincare/include/poincare/vector_cross.h | 4 ++-- poincare/include/poincare/vector_dot.h | 4 ++-- poincare/include/poincare/vector_norm.h | 4 ++-- 83 files changed, 166 insertions(+), 166 deletions(-) diff --git a/poincare/include/poincare/absolute_value.h b/poincare/include/poincare/absolute_value.h index 6e841e7a7..a9324ee3f 100644 --- a/poincare/include/poincare/absolute_value.h +++ b/poincare/include/poincare/absolute_value.h @@ -28,10 +28,10 @@ public: template static Complex computeOnComplex(const std::complex c, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) { return Complex::Builder(std::abs(c)); } - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } diff --git a/poincare/include/poincare/addition.h b/poincare/include/poincare/addition.h index 346c6c11a..58e3c1bae 100644 --- a/poincare/include/poincare/addition.h +++ b/poincare/include/poincare/addition.h @@ -64,10 +64,10 @@ private: template static MatrixComplex computeOnMatrixAndComplex(const MatrixComplex m, const std::complex c, Preferences::ComplexFormat complexFormat) { return MatrixComplex::Undefined(); } - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::MapReduce(this, context, complexFormat, angleUnit, compute, computeOnComplexAndMatrix, computeOnMatrixAndComplex, computeOnMatrices); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::MapReduce(this, context, complexFormat, angleUnit, compute, computeOnComplexAndMatrix, computeOnMatrixAndComplex, computeOnMatrices); } }; diff --git a/poincare/include/poincare/arc_cosine.h b/poincare/include/poincare/arc_cosine.h index 389ac4c79..f95f34827 100644 --- a/poincare/include/poincare/arc_cosine.h +++ b/poincare/include/poincare/arc_cosine.h @@ -35,10 +35,10 @@ private: //Evaluation template static Complex computeOnComplex(const std::complex c, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit); - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit,computeOnComplex); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } }; diff --git a/poincare/include/poincare/arc_sine.h b/poincare/include/poincare/arc_sine.h index a567d55a1..f5c5c07e1 100644 --- a/poincare/include/poincare/arc_sine.h +++ b/poincare/include/poincare/arc_sine.h @@ -34,10 +34,10 @@ private: //Evaluation template static Complex computeOnComplex(const std::complex c, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit); - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit,computeOnComplex); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } }; diff --git a/poincare/include/poincare/arc_tangent.h b/poincare/include/poincare/arc_tangent.h index 44c0ff887..31147cc4a 100644 --- a/poincare/include/poincare/arc_tangent.h +++ b/poincare/include/poincare/arc_tangent.h @@ -35,10 +35,10 @@ private: //Evaluation template static Complex computeOnComplex(const std::complex c, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit); - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit,computeOnComplex); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } }; diff --git a/poincare/include/poincare/based_integer.h b/poincare/include/poincare/based_integer.h index f553902c1..5de001d3d 100644 --- a/poincare/include/poincare/based_integer.h +++ b/poincare/include/poincare/based_integer.h @@ -34,8 +34,8 @@ public: Layout createLayout(Preferences::PrintFloatMode floatDisplayMode, int numberOfSignificantDigits) const override; // Approximation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return Complex::Builder(templatedApproximate()); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return Complex::Builder(templatedApproximate()); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return Complex::Builder(templatedApproximate()); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return Complex::Builder(templatedApproximate()); } template T templatedApproximate() const; private: diff --git a/poincare/include/poincare/binom_cdf.h b/poincare/include/poincare/binom_cdf.h index 832040818..0d017fe07 100644 --- a/poincare/include/poincare/binom_cdf.h +++ b/poincare/include/poincare/binom_cdf.h @@ -29,8 +29,8 @@ private: int serialize(char * buffer, int bufferSize, Preferences::PrintFloatMode floatDisplayMode, int numberOfSignificantDigits) const override; // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/binom_pdf.h b/poincare/include/poincare/binom_pdf.h index c316e5aed..515abbb41 100644 --- a/poincare/include/poincare/binom_pdf.h +++ b/poincare/include/poincare/binom_pdf.h @@ -29,8 +29,8 @@ private: int serialize(char * buffer, int bufferSize, Preferences::PrintFloatMode floatDisplayMode, int numberOfSignificantDigits) const override; // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/binomial_coefficient.h b/poincare/include/poincare/binomial_coefficient.h index 992cf88d0..c00bc8179 100644 --- a/poincare/include/poincare/binomial_coefficient.h +++ b/poincare/include/poincare/binomial_coefficient.h @@ -30,8 +30,8 @@ private: LayoutShape leftLayoutShape() const override { return LayoutShape::BoundaryPunctuation; }; // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Complex templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/ceiling.h b/poincare/include/poincare/ceiling.h index a85897706..c6acc967c 100644 --- a/poincare/include/poincare/ceiling.h +++ b/poincare/include/poincare/ceiling.h @@ -31,10 +31,10 @@ private: // Evaluation template static Complex computeOnComplex(const std::complex c, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit); - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } }; diff --git a/poincare/include/poincare/complex_argument.h b/poincare/include/poincare/complex_argument.h index 4264428c6..04c991789 100644 --- a/poincare/include/poincare/complex_argument.h +++ b/poincare/include/poincare/complex_argument.h @@ -31,10 +31,10 @@ private: // Evaluation template static Complex computeOnComplex(const std::complex c, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit); - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit,computeOnComplex); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } }; diff --git a/poincare/include/poincare/complex_cartesian.h b/poincare/include/poincare/complex_cartesian.h index 7d9730482..37defc849 100644 --- a/poincare/include/poincare/complex_cartesian.h +++ b/poincare/include/poincare/complex_cartesian.h @@ -26,8 +26,8 @@ private: // Layout Layout createLayout(Preferences::PrintFloatMode floatDisplayMode, int numberOfSignificantDigits) const override { assert(false); return Layout(); } // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } // Simplification Expression shallowReduce(ReductionContext reductionContext) override; Expression shallowBeautify(ReductionContext reductionContext) override; diff --git a/poincare/include/poincare/confidence_interval.h b/poincare/include/poincare/confidence_interval.h index f0d78e2d3..970b15512 100644 --- a/poincare/include/poincare/confidence_interval.h +++ b/poincare/include/poincare/confidence_interval.h @@ -32,8 +32,8 @@ private: LayoutShape rightLayoutShape() const override { return LayoutShape::BoundaryPunctuation; } // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/conjugate.h b/poincare/include/poincare/conjugate.h index e2f90f170..e019b77fe 100644 --- a/poincare/include/poincare/conjugate.h +++ b/poincare/include/poincare/conjugate.h @@ -33,10 +33,10 @@ private: // Evaluation template static Complex computeOnComplex(const std::complex c, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit); - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit,computeOnComplex); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } }; diff --git a/poincare/include/poincare/constant.h b/poincare/include/poincare/constant.h index ed04a922c..33741479e 100644 --- a/poincare/include/poincare/constant.h +++ b/poincare/include/poincare/constant.h @@ -34,8 +34,8 @@ public: Layout createLayout(Preferences::PrintFloatMode floatDisplayMode, int numberOfSignificantDigits) const override; /* Approximation */ - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(); } /* Symbol properties */ bool isPi() const { return isConstantCodePoint(UCodePointGreekSmallLetterPi); } diff --git a/poincare/include/poincare/cosine.h b/poincare/include/poincare/cosine.h index bca04a2ed..9f262ebc1 100644 --- a/poincare/include/poincare/cosine.h +++ b/poincare/include/poincare/cosine.h @@ -38,10 +38,10 @@ private: Expression unaryFunctionDifferential() override; // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit,computeOnComplex); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } }; diff --git a/poincare/include/poincare/decimal.h b/poincare/include/poincare/decimal.h index 6f9267efd..b00af47b8 100644 --- a/poincare/include/poincare/decimal.h +++ b/poincare/include/poincare/decimal.h @@ -46,10 +46,10 @@ public: Expression setSign(Sign s, ReductionContext reductionContext) override; // Approximation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return Complex::Builder(templatedApproximate()); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return Complex::Builder(templatedApproximate()); } diff --git a/poincare/include/poincare/derivative.h b/poincare/include/poincare/derivative.h index 0456c54b5..439833127 100644 --- a/poincare/include/poincare/derivative.h +++ b/poincare/include/poincare/derivative.h @@ -34,8 +34,8 @@ private: LayoutShape rightLayoutShape() const override { return LayoutShape::BoundaryPunctuation; } // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; template T approximateWithArgument(T x, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; template T growthRateAroundAbscissa(T x, T h, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; diff --git a/poincare/include/poincare/determinant.h b/poincare/include/poincare/determinant.h index 1a1a043e4..b672bcaf3 100644 --- a/poincare/include/poincare/determinant.h +++ b/poincare/include/poincare/determinant.h @@ -28,8 +28,8 @@ private: LayoutShape leftLayoutShape() const override { return LayoutShape::MoreLetters; }; LayoutShape rightLayoutShape() const override { return LayoutShape::BoundaryPunctuation; } /* Approximation */ - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/division.h b/poincare/include/poincare/division.h index b48a4d883..75fdf84ab 100644 --- a/poincare/include/poincare/division.h +++ b/poincare/include/poincare/division.h @@ -33,13 +33,13 @@ public: Expression removeUnit(Expression * unit) override { assert(false); return ExpressionNode::removeUnit(unit); } // Approximation - virtual Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + virtual Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::MapReduce( this, context, complexFormat, angleUnit, compute, computeOnComplexAndMatrix, computeOnMatrixAndComplex, computeOnMatrices); } - virtual Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + virtual Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::MapReduce( this, context, complexFormat, angleUnit, compute, computeOnComplexAndMatrix, computeOnMatrixAndComplex, diff --git a/poincare/include/poincare/division_quotient.h b/poincare/include/poincare/division_quotient.h index 2db2f95db..6d4444698 100644 --- a/poincare/include/poincare/division_quotient.h +++ b/poincare/include/poincare/division_quotient.h @@ -33,8 +33,8 @@ private: // Simplification Expression shallowReduce(ReductionContext reductionContext) override; // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/division_remainder.h b/poincare/include/poincare/division_remainder.h index e8262c7a2..183e4e320 100644 --- a/poincare/include/poincare/division_remainder.h +++ b/poincare/include/poincare/division_remainder.h @@ -35,8 +35,8 @@ private: // Simplification Expression shallowReduce(ReductionContext reductionContext) override; // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/empty_expression.h b/poincare/include/poincare/empty_expression.h index 0ac5a21e7..ac3d849ac 100644 --- a/poincare/include/poincare/empty_expression.h +++ b/poincare/include/poincare/empty_expression.h @@ -33,8 +33,8 @@ private: // Layout Layout createLayout(Preferences::PrintFloatMode floatDisplayMode, int numberOfSignificantDigits) const override; // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/equal.h b/poincare/include/poincare/equal.h index b81e0b0f3..60af23182 100644 --- a/poincare/include/poincare/equal.h +++ b/poincare/include/poincare/equal.h @@ -28,8 +28,8 @@ private: Layout createLayout(Preferences::PrintFloatMode floatDisplayMode, int numberOfSignificantDigits) const override; int serialize(char * buffer, int bufferSize, Preferences::PrintFloatMode floatDisplayMode, int numberOfSignificantDigits) const override; // Evalutation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/factor.h b/poincare/include/poincare/factor.h index 329fe1902..d899399ba 100644 --- a/poincare/include/poincare/factor.h +++ b/poincare/include/poincare/factor.h @@ -33,8 +33,8 @@ private: LayoutShape rightLayoutShape() const override { return LayoutShape::BoundaryPunctuation; } /* Evaluation */ - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/factorial.h b/poincare/include/poincare/factorial.h index 2f39b2062..10ed3373f 100644 --- a/poincare/include/poincare/factorial.h +++ b/poincare/include/poincare/factorial.h @@ -37,10 +37,10 @@ private: // Evaluation template static Complex computeOnComplex(const std::complex c, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit); - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit,computeOnComplex); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } diff --git a/poincare/include/poincare/float.h b/poincare/include/poincare/float.h index d1eda0887..fce3cc20e 100644 --- a/poincare/include/poincare/float.h +++ b/poincare/include/poincare/float.h @@ -47,8 +47,8 @@ public: /* Layout */ Layout createLayout(Preferences::PrintFloatMode floatDisplayMode, int numberOfSignificantDigits) const override; /* Evaluation */ - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } private: // Simplification LayoutShape leftLayoutShape() const override { return LayoutShape::Decimal; } diff --git a/poincare/include/poincare/floor.h b/poincare/include/poincare/floor.h index 5d360389f..fee31eb69 100644 --- a/poincare/include/poincare/floor.h +++ b/poincare/include/poincare/floor.h @@ -32,10 +32,10 @@ private: // Evaluation template static Complex computeOnComplex(const std::complex c, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit); - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } }; diff --git a/poincare/include/poincare/frac_part.h b/poincare/include/poincare/frac_part.h index 54e95817e..63745f56f 100644 --- a/poincare/include/poincare/frac_part.h +++ b/poincare/include/poincare/frac_part.h @@ -33,10 +33,10 @@ private: // Evaluation template static Complex computeOnComplex(const std::complex c, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit); - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } }; diff --git a/poincare/include/poincare/function.h b/poincare/include/poincare/function.h index ddd11f81b..e1e4a8399 100644 --- a/poincare/include/poincare/function.h +++ b/poincare/include/poincare/function.h @@ -42,8 +42,8 @@ private: LayoutShape rightLayoutShape() const override { return LayoutShape::BoundaryPunctuation; } // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override; - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override; + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override; + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override; template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/great_common_divisor.h b/poincare/include/poincare/great_common_divisor.h index 09ef262ba..62346b6f8 100644 --- a/poincare/include/poincare/great_common_divisor.h +++ b/poincare/include/poincare/great_common_divisor.h @@ -30,8 +30,8 @@ private: LayoutShape leftLayoutShape() const override { return LayoutShape::MoreLetters; }; LayoutShape rightLayoutShape() const override { return LayoutShape::BoundaryPunctuation; } // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/hyperbolic_arc_cosine.h b/poincare/include/poincare/hyperbolic_arc_cosine.h index 67855d907..16db5644c 100644 --- a/poincare/include/poincare/hyperbolic_arc_cosine.h +++ b/poincare/include/poincare/hyperbolic_arc_cosine.h @@ -27,10 +27,10 @@ private: int serialize(char * buffer, int bufferSize, Preferences::PrintFloatMode floatDisplayMode, int numberOfSignificantDigits) const override; //Evaluation template static Complex computeOnComplex(const std::complex c, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit); - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit,computeOnComplex); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } }; diff --git a/poincare/include/poincare/hyperbolic_arc_sine.h b/poincare/include/poincare/hyperbolic_arc_sine.h index 2981ba622..91fba959e 100644 --- a/poincare/include/poincare/hyperbolic_arc_sine.h +++ b/poincare/include/poincare/hyperbolic_arc_sine.h @@ -25,10 +25,10 @@ private: int serialize(char * buffer, int bufferSize, Preferences::PrintFloatMode floatDisplayMode, int numberOfSignificantDigits) const override; //Evaluation template static Complex computeOnComplex(const std::complex c, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit); - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit,computeOnComplex); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } }; diff --git a/poincare/include/poincare/hyperbolic_arc_tangent.h b/poincare/include/poincare/hyperbolic_arc_tangent.h index d59827696..fada17c7b 100644 --- a/poincare/include/poincare/hyperbolic_arc_tangent.h +++ b/poincare/include/poincare/hyperbolic_arc_tangent.h @@ -25,10 +25,10 @@ private: int serialize(char * buffer, int bufferSize, Preferences::PrintFloatMode floatDisplayMode, int numberOfSignificantDigits) const override; //Evaluation template static Complex computeOnComplex(const std::complex c, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit); - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit,computeOnComplex); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } }; diff --git a/poincare/include/poincare/hyperbolic_cosine.h b/poincare/include/poincare/hyperbolic_cosine.h index c37d90fb6..0e50b8327 100644 --- a/poincare/include/poincare/hyperbolic_cosine.h +++ b/poincare/include/poincare/hyperbolic_cosine.h @@ -30,10 +30,10 @@ private: Expression unaryFunctionDifferential() override; //Evaluation template static Complex computeOnComplex(const std::complex c, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit); - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit,computeOnComplex); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } }; diff --git a/poincare/include/poincare/hyperbolic_sine.h b/poincare/include/poincare/hyperbolic_sine.h index 95ffaf720..47f0b00c9 100644 --- a/poincare/include/poincare/hyperbolic_sine.h +++ b/poincare/include/poincare/hyperbolic_sine.h @@ -28,10 +28,10 @@ private: Expression unaryFunctionDifferential() override; //Evaluation template static Complex computeOnComplex(const std::complex c, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit); - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit,computeOnComplex); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } }; diff --git a/poincare/include/poincare/hyperbolic_tangent.h b/poincare/include/poincare/hyperbolic_tangent.h index b69e6ec13..36db08f5d 100644 --- a/poincare/include/poincare/hyperbolic_tangent.h +++ b/poincare/include/poincare/hyperbolic_tangent.h @@ -28,10 +28,10 @@ private: Expression unaryFunctionDifferential() override; //Evaluation template static Complex computeOnComplex(const std::complex c, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit); - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit,computeOnComplex); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } }; diff --git a/poincare/include/poincare/imaginary_part.h b/poincare/include/poincare/imaginary_part.h index 6fd7209ff..f43de3ee0 100644 --- a/poincare/include/poincare/imaginary_part.h +++ b/poincare/include/poincare/imaginary_part.h @@ -34,10 +34,10 @@ private: template static Complex computeOnComplex(const std::complex c, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) { return Complex::Builder(std::imag(c)); } - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit,computeOnComplex); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } }; diff --git a/poincare/include/poincare/infinity.h b/poincare/include/poincare/infinity.h index a1e8ec5bf..3936a3267 100644 --- a/poincare/include/poincare/infinity.h +++ b/poincare/include/poincare/infinity.h @@ -27,10 +27,10 @@ public: Expression setSign(Sign s, ReductionContext reductionContext) override; // Approximation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(); } diff --git a/poincare/include/poincare/integral.h b/poincare/include/poincare/integral.h index e55f30e3a..164724341 100644 --- a/poincare/include/poincare/integral.h +++ b/poincare/include/poincare/integral.h @@ -31,8 +31,8 @@ private: LayoutShape leftLayoutShape() const override { return LayoutShape::BoundaryPunctuation; }; LayoutShape rightLayoutShape() const override { return LayoutShape::MoreLetters; } // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; template struct DetailedResult diff --git a/poincare/include/poincare/inv_binom.h b/poincare/include/poincare/inv_binom.h index c3b959d60..e4f30699b 100644 --- a/poincare/include/poincare/inv_binom.h +++ b/poincare/include/poincare/inv_binom.h @@ -30,8 +30,8 @@ private: Expression shallowReduce(ReductionContext reductionContext) override; // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/inv_norm.h b/poincare/include/poincare/inv_norm.h index a06d622e8..dc27eadf7 100644 --- a/poincare/include/poincare/inv_norm.h +++ b/poincare/include/poincare/inv_norm.h @@ -30,8 +30,8 @@ private: Expression shallowReduce(ReductionContext reductionContext) override; // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/least_common_multiple.h b/poincare/include/poincare/least_common_multiple.h index fe0e15a8e..f73dc7e13 100644 --- a/poincare/include/poincare/least_common_multiple.h +++ b/poincare/include/poincare/least_common_multiple.h @@ -30,8 +30,8 @@ private: LayoutShape leftLayoutShape() const override { return LayoutShape::MoreLetters; }; LayoutShape rightLayoutShape() const override { return LayoutShape::BoundaryPunctuation; } // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/logarithm.h b/poincare/include/poincare/logarithm.h index b5fb46330..1c0ab9ede 100644 --- a/poincare/include/poincare/logarithm.h +++ b/poincare/include/poincare/logarithm.h @@ -42,8 +42,8 @@ public: * (warning: log takes the other side of the cut values on ]-inf-0i, 0-0i]). */ return Complex::Builder(std::log10(c)); } - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/matrix.h b/poincare/include/poincare/matrix.h index 06013fffe..25456b7fd 100644 --- a/poincare/include/poincare/matrix.h +++ b/poincare/include/poincare/matrix.h @@ -40,10 +40,10 @@ public: Expression shallowReduce(ReductionContext reductionContext) override; // Approximation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } diff --git a/poincare/include/poincare/matrix_dimension.h b/poincare/include/poincare/matrix_dimension.h index 07c40840d..579ddd890 100644 --- a/poincare/include/poincare/matrix_dimension.h +++ b/poincare/include/poincare/matrix_dimension.h @@ -29,8 +29,8 @@ private: LayoutShape leftLayoutShape() const override { return LayoutShape::MoreLetters; }; LayoutShape rightLayoutShape() const override { return LayoutShape::BoundaryPunctuation; } // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/matrix_echelon_form.h b/poincare/include/poincare/matrix_echelon_form.h index 1a2ff0f7c..cda533715 100644 --- a/poincare/include/poincare/matrix_echelon_form.h +++ b/poincare/include/poincare/matrix_echelon_form.h @@ -21,8 +21,8 @@ private: LayoutShape leftLayoutShape() const override { return LayoutShape::MoreLetters; }; LayoutShape rightLayoutShape() const override { return LayoutShape::BoundaryPunctuation; } // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; // Properties diff --git a/poincare/include/poincare/matrix_identity.h b/poincare/include/poincare/matrix_identity.h index 8d50b39c3..775542289 100644 --- a/poincare/include/poincare/matrix_identity.h +++ b/poincare/include/poincare/matrix_identity.h @@ -27,8 +27,8 @@ private: LayoutShape leftLayoutShape() const override { return LayoutShape::MoreLetters; }; LayoutShape rightLayoutShape() const override { return LayoutShape::BoundaryPunctuation; } // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/matrix_inverse.h b/poincare/include/poincare/matrix_inverse.h index 53fefdf30..dff666e1a 100644 --- a/poincare/include/poincare/matrix_inverse.h +++ b/poincare/include/poincare/matrix_inverse.h @@ -28,8 +28,8 @@ private: LayoutShape leftLayoutShape() const override { return LayoutShape::MoreLetters; }; LayoutShape rightLayoutShape() const override { return LayoutShape::BoundaryPunctuation; } // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/matrix_trace.h b/poincare/include/poincare/matrix_trace.h index 7805cf0d5..6ff79e471 100644 --- a/poincare/include/poincare/matrix_trace.h +++ b/poincare/include/poincare/matrix_trace.h @@ -28,8 +28,8 @@ private: LayoutShape leftLayoutShape() const override { return LayoutShape::MoreLetters; }; LayoutShape rightLayoutShape() const override { return LayoutShape::BoundaryPunctuation; } // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/matrix_transpose.h b/poincare/include/poincare/matrix_transpose.h index e404c840c..fc710e933 100644 --- a/poincare/include/poincare/matrix_transpose.h +++ b/poincare/include/poincare/matrix_transpose.h @@ -28,8 +28,8 @@ private: LayoutShape leftLayoutShape() const override { return LayoutShape::MoreLetters; }; LayoutShape rightLayoutShape() const override { return LayoutShape::BoundaryPunctuation; } // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/multiplication.h b/poincare/include/poincare/multiplication.h index bdefb2c04..2007f258b 100644 --- a/poincare/include/poincare/multiplication.h +++ b/poincare/include/poincare/multiplication.h @@ -56,10 +56,10 @@ private: template static MatrixComplex computeOnMatrixAndComplex(const MatrixComplex m, const std::complex c, Preferences::ComplexFormat complexFormat) { return ApproximationHelper::ElementWiseOnMatrixComplexAndComplex(m, c, complexFormat, compute); } - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::MapReduce(this, context, complexFormat, angleUnit, compute, computeOnComplexAndMatrix, computeOnMatrixAndComplex, computeOnMatrices); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::MapReduce(this, context, complexFormat, angleUnit, compute, computeOnComplexAndMatrix, computeOnMatrixAndComplex, computeOnMatrices); } }; diff --git a/poincare/include/poincare/naperian_logarithm.h b/poincare/include/poincare/naperian_logarithm.h index b466af839..6c10d3e3a 100644 --- a/poincare/include/poincare/naperian_logarithm.h +++ b/poincare/include/poincare/naperian_logarithm.h @@ -35,10 +35,10 @@ private: * (warning: ln takes the other side of the cut values on ]-inf-0i, 0-0i]). */ return Complex::Builder(std::log(c)); } - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit,computeOnComplex); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } }; diff --git a/poincare/include/poincare/norm_cdf.h b/poincare/include/poincare/norm_cdf.h index ae9eee78c..c0c113ce8 100644 --- a/poincare/include/poincare/norm_cdf.h +++ b/poincare/include/poincare/norm_cdf.h @@ -29,8 +29,8 @@ private: int serialize(char * buffer, int bufferSize, Preferences::PrintFloatMode floatDisplayMode, int numberOfSignificantDigits) const override; // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/norm_cdf2.h b/poincare/include/poincare/norm_cdf2.h index 2db2965a4..067663eb9 100644 --- a/poincare/include/poincare/norm_cdf2.h +++ b/poincare/include/poincare/norm_cdf2.h @@ -31,8 +31,8 @@ private: int serialize(char * buffer, int bufferSize, Preferences::PrintFloatMode floatDisplayMode, int numberOfSignificantDigits) const override; // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/norm_pdf.h b/poincare/include/poincare/norm_pdf.h index 5467a478e..f9bd81648 100644 --- a/poincare/include/poincare/norm_pdf.h +++ b/poincare/include/poincare/norm_pdf.h @@ -29,8 +29,8 @@ private: int serialize(char * buffer, int bufferSize, Preferences::PrintFloatMode floatDisplayMode, int numberOfSignificantDigits) const override; // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/nth_root.h b/poincare/include/poincare/nth_root.h index b1280494a..fbb729e9a 100644 --- a/poincare/include/poincare/nth_root.h +++ b/poincare/include/poincare/nth_root.h @@ -29,8 +29,8 @@ private: LayoutShape leftLayoutShape() const override { return LayoutShape::NthRoot; }; LayoutShape rightLayoutShape() const override { return LayoutShape::Root; }; // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/opposite.h b/poincare/include/poincare/opposite.h index de8e0996f..441521a66 100644 --- a/poincare/include/poincare/opposite.h +++ b/poincare/include/poincare/opposite.h @@ -30,10 +30,10 @@ public: bool childAtIndexNeedsUserParentheses(const Expression & child, int childIndex) const override; // Approximation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, compute); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, compute); } diff --git a/poincare/include/poincare/parenthesis.h b/poincare/include/poincare/parenthesis.h index bf1fcae89..f11810b5a 100644 --- a/poincare/include/poincare/parenthesis.h +++ b/poincare/include/poincare/parenthesis.h @@ -33,8 +33,8 @@ public: LayoutShape leftLayoutShape() const override { return LayoutShape::BoundaryPunctuation; }; // Approximation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } private: template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/permute_coefficient.h b/poincare/include/poincare/permute_coefficient.h index 5ebfb0032..a2886babb 100644 --- a/poincare/include/poincare/permute_coefficient.h +++ b/poincare/include/poincare/permute_coefficient.h @@ -33,8 +33,8 @@ private: LayoutShape leftLayoutShape() const override { return LayoutShape::MoreLetters; }; LayoutShape rightLayoutShape() const override { return LayoutShape::BoundaryPunctuation; } // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/power.h b/poincare/include/poincare/power.h index e8f7f384b..72c8d0404 100644 --- a/poincare/include/poincare/power.h +++ b/poincare/include/poincare/power.h @@ -64,10 +64,10 @@ private: template static MatrixComplex computeOnComplexAndMatrix(const std::complex c, const MatrixComplex n, Preferences::ComplexFormat complexFormat); template static MatrixComplex computeOnMatrixAndComplex(const MatrixComplex m, const std::complex d, Preferences::ComplexFormat complexFormat); template static MatrixComplex computeOnMatrices(const MatrixComplex m, const MatrixComplex n, Preferences::ComplexFormat complexFormat); - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; diff --git a/poincare/include/poincare/prediction_interval.h b/poincare/include/poincare/prediction_interval.h index 734b2ba22..4691311b5 100644 --- a/poincare/include/poincare/prediction_interval.h +++ b/poincare/include/poincare/prediction_interval.h @@ -31,8 +31,8 @@ private: LayoutShape leftLayoutShape() const override { return LayoutShape::MoreLetters; }; LayoutShape rightLayoutShape() const override { return LayoutShape::BoundaryPunctuation; } // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/randint.h b/poincare/include/poincare/randint.h index b8f03edc3..e7091027c 100644 --- a/poincare/include/poincare/randint.h +++ b/poincare/include/poincare/randint.h @@ -28,10 +28,10 @@ private: Layout createLayout(Preferences::PrintFloatMode floatDisplayMode, int numberOfSignificantDigits) const override; int serialize(char * buffer, int bufferSize, Preferences::PrintFloatMode floatDisplayMode, int numberOfSignificantDigits) const override; // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templateApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templateApproximate(context, complexFormat, angleUnit); } template Evaluation templateApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit, bool * inputIsUndefined = nullptr) const; diff --git a/poincare/include/poincare/random.h b/poincare/include/poincare/random.h index 564a758ed..712b421ab 100644 --- a/poincare/include/poincare/random.h +++ b/poincare/include/poincare/random.h @@ -32,10 +32,10 @@ private: Layout createLayout(Preferences::PrintFloatMode floatDisplayMode, int numberOfSignificantDigits) const override; int serialize(char * buffer, int bufferSize, Preferences::PrintFloatMode floatDisplayMode, int numberOfSignificantDigits) const override; // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templateApproximate(); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templateApproximate(); } template Evaluation templateApproximate() const; diff --git a/poincare/include/poincare/rational.h b/poincare/include/poincare/rational.h index abde3b3e0..43dce2300 100644 --- a/poincare/include/poincare/rational.h +++ b/poincare/include/poincare/rational.h @@ -39,8 +39,8 @@ public: Layout createLayout(Preferences::PrintFloatMode floatDisplayMode, int numberOfSignificantDigits) const override; // Approximation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return Complex::Builder(templatedApproximate()); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return Complex::Builder(templatedApproximate()); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return Complex::Builder(templatedApproximate()); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return Complex::Builder(templatedApproximate()); } template T templatedApproximate() const; // Basic test diff --git a/poincare/include/poincare/real_part.h b/poincare/include/poincare/real_part.h index a35db4b94..b4a5c728e 100644 --- a/poincare/include/poincare/real_part.h +++ b/poincare/include/poincare/real_part.h @@ -36,10 +36,10 @@ private: template static Complex computeOnComplex(const std::complex c, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) { return Complex::Builder(std::real(c)); } - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit,computeOnComplex); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } }; diff --git a/poincare/include/poincare/round.h b/poincare/include/poincare/round.h index 1d4ec886b..9de713c55 100644 --- a/poincare/include/poincare/round.h +++ b/poincare/include/poincare/round.h @@ -31,8 +31,8 @@ private: LayoutShape leftLayoutShape() const override { return LayoutShape::MoreLetters; }; LayoutShape rightLayoutShape() const override { return LayoutShape::BoundaryPunctuation; } // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/sequence.h b/poincare/include/poincare/sequence.h index 043d71f4c..f2bd6ee55 100644 --- a/poincare/include/poincare/sequence.h +++ b/poincare/include/poincare/sequence.h @@ -34,8 +34,8 @@ private: LayoutShape rightLayoutShape() const override { return LayoutShape::BoundaryPunctuation; } // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override; - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override; + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override; + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override; template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/sign_function.h b/poincare/include/poincare/sign_function.h index dbb590c35..968abf164 100644 --- a/poincare/include/poincare/sign_function.h +++ b/poincare/include/poincare/sign_function.h @@ -35,10 +35,10 @@ private: LayoutShape rightLayoutShape() const override { return LayoutShape::BoundaryPunctuation; } // Evaluation template static Complex computeOnComplex(const std::complex c, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit); - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } }; diff --git a/poincare/include/poincare/sine.h b/poincare/include/poincare/sine.h index 169db870b..4579180cc 100644 --- a/poincare/include/poincare/sine.h +++ b/poincare/include/poincare/sine.h @@ -39,10 +39,10 @@ private: Expression unaryFunctionDifferential() override; // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit,computeOnComplex); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } }; diff --git a/poincare/include/poincare/square_root.h b/poincare/include/poincare/square_root.h index a6f9a69d1..45dfe0436 100644 --- a/poincare/include/poincare/square_root.h +++ b/poincare/include/poincare/square_root.h @@ -32,10 +32,10 @@ private: LayoutShape leftLayoutShape() const override { return LayoutShape::Root; }; // Evaluation template static Complex computeOnComplex(const std::complex c, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit); - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit,computeOnComplex); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } }; diff --git a/poincare/include/poincare/store.h b/poincare/include/poincare/store.h index 95bd3c146..5613c1e15 100644 --- a/poincare/include/poincare/store.h +++ b/poincare/include/poincare/store.h @@ -23,8 +23,8 @@ private: // Simplification Expression shallowReduce(ReductionContext reductionContext) override; // Evalutation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/subtraction.h b/poincare/include/poincare/subtraction.h index 92e213ba9..5ceeab30a 100644 --- a/poincare/include/poincare/subtraction.h +++ b/poincare/include/poincare/subtraction.h @@ -28,10 +28,10 @@ public: // Approximation template static Complex compute(const std::complex c, const std::complex d, Preferences::ComplexFormat complexFormat) { return Complex::Builder(c - d); } - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::MapReduce(this, context, complexFormat, angleUnit, compute, computeOnComplexAndMatrix, computeOnMatrixAndComplex, computeOnMatrices); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::MapReduce(this, context, complexFormat, angleUnit, compute, computeOnComplexAndMatrix, computeOnMatrixAndComplex, computeOnMatrices); } diff --git a/poincare/include/poincare/sum_and_product.h b/poincare/include/poincare/sum_and_product.h index a74ecc0d2..63ea7a7b6 100644 --- a/poincare/include/poincare/sum_and_product.h +++ b/poincare/include/poincare/sum_and_product.h @@ -17,8 +17,8 @@ private: Expression shallowReduce(ReductionContext reductionContext) override; LayoutShape leftLayoutShape() const override { return LayoutShape::BoundaryPunctuation; }; /* Approximation */ - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; virtual float emptySumAndProductValue() const = 0; virtual Evaluation evaluateWithNextTerm(SinglePrecision p, Evaluation a, Evaluation b, Preferences::ComplexFormat complexFormat) const = 0; diff --git a/poincare/include/poincare/symbol.h b/poincare/include/poincare/symbol.h index 8b800a5fc..ca0584799 100644 --- a/poincare/include/poincare/symbol.h +++ b/poincare/include/poincare/symbol.h @@ -40,8 +40,8 @@ public: bool derivate(ReductionContext reductionContext, Expression symbol, Expression symbolValue) override; /* Approximation */ - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } bool isUnknown() const; private: diff --git a/poincare/include/poincare/tangent.h b/poincare/include/poincare/tangent.h index 0576191b9..7bda46d97 100644 --- a/poincare/include/poincare/tangent.h +++ b/poincare/include/poincare/tangent.h @@ -37,10 +37,10 @@ private: // Evaluation template static Complex computeOnComplex(const std::complex c, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit = Preferences::AngleUnit::Radian); - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit,computeOnComplex); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return ApproximationHelper::Map(this, context, complexFormat, angleUnit, computeOnComplex); } }; diff --git a/poincare/include/poincare/undefined.h b/poincare/include/poincare/undefined.h index 3636e6751..0a4f34a7e 100644 --- a/poincare/include/poincare/undefined.h +++ b/poincare/include/poincare/undefined.h @@ -22,10 +22,10 @@ public: Expression setSign(Sign s, ReductionContext reductionContext) override; // Approximation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(); } diff --git a/poincare/include/poincare/unit.h b/poincare/include/poincare/unit.h index 2437e83d4..77f63fd91 100644 --- a/poincare/include/poincare/unit.h +++ b/poincare/include/poincare/unit.h @@ -465,8 +465,8 @@ public: int serialize(char * buffer, int bufferSize, Preferences::PrintFloatMode floatDisplayMode, int numberOfSignificantDigits) const override; /* Approximation */ - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } // Comparison int simplificationOrderSameType(const ExpressionNode * e, bool ascending, bool canBeInterrupted, bool ignoreParentheses) const override; diff --git a/poincare/include/poincare/unit_convert.h b/poincare/include/poincare/unit_convert.h index 73379fb1c..1a046500b 100644 --- a/poincare/include/poincare/unit_convert.h +++ b/poincare/include/poincare/unit_convert.h @@ -25,8 +25,8 @@ private: void deepReduceChildren(ExpressionNode::ReductionContext reductionContext) override; Expression shallowBeautify(ReductionContext reductionContext) override; // Evalutation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/unreal.h b/poincare/include/poincare/unreal.h index 6757c8a0b..8ab669aae 100644 --- a/poincare/include/poincare/unreal.h +++ b/poincare/include/poincare/unreal.h @@ -20,10 +20,10 @@ public: Type type() const override { return Type::Unreal; } // Approximation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(); } diff --git a/poincare/include/poincare/vector_cross.h b/poincare/include/poincare/vector_cross.h index e1f75e03e..c878ddb93 100644 --- a/poincare/include/poincare/vector_cross.h +++ b/poincare/include/poincare/vector_cross.h @@ -28,8 +28,8 @@ private: LayoutShape leftLayoutShape() const override { return LayoutShape::MoreLetters; }; LayoutShape rightLayoutShape() const override { return LayoutShape::BoundaryPunctuation; } // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/vector_dot.h b/poincare/include/poincare/vector_dot.h index 3b9c80342..fe4a45fd5 100644 --- a/poincare/include/poincare/vector_dot.h +++ b/poincare/include/poincare/vector_dot.h @@ -28,8 +28,8 @@ private: LayoutShape leftLayoutShape() const override { return LayoutShape::MoreLetters; }; LayoutShape rightLayoutShape() const override { return LayoutShape::BoundaryPunctuation; } // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; }; diff --git a/poincare/include/poincare/vector_norm.h b/poincare/include/poincare/vector_norm.h index 3d2da252a..0e0cf600f 100644 --- a/poincare/include/poincare/vector_norm.h +++ b/poincare/include/poincare/vector_norm.h @@ -28,8 +28,8 @@ private: Expression shallowReduce(ReductionContext reductionContext) override; LayoutShape leftLayoutShape() const override { return LayoutShape::BoundaryPunctuation; } // Evaluation - Evaluation approximate(SinglePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } - Evaluation approximate(DoublePrecision p, Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(SinglePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } + Evaluation approximate(DoublePrecision p, ApproximateContext approximateContext) const override { return templatedApproximate(context, complexFormat, angleUnit); } template Evaluation templatedApproximate(Context * context, Preferences::ComplexFormat complexFormat, Preferences::AngleUnit angleUnit) const; };