From 625a89e610686c97320f4581006e6ef63bc0a796 Mon Sep 17 00:00:00 2001 From: Gabriel Ozouf Date: Wed, 9 Dec 2020 12:16:56 +0100 Subject: [PATCH] [poincare/zoom] RefinedYRangeForDisplay signature --- apps/shared/continuous_function.cpp | 4 ++-- poincare/include/poincare/zoom.h | 2 +- poincare/src/zoom.cpp | 8 ++++---- poincare/test/zoom.cpp | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/shared/continuous_function.cpp b/apps/shared/continuous_function.cpp index 4a22f028e..e127feed5 100644 --- a/apps/shared/continuous_function.cpp +++ b/apps/shared/continuous_function.cpp @@ -287,7 +287,7 @@ void ContinuousFunction::rangeForDisplay(float * xMin, float * xMax, float * yMi if (fullyComputed) { /* The function has points of interest. */ - Zoom::RefinedYRangeForDisplay(evaluation, *xMin, *xMax, yMin, yMax, context, this); + Zoom::RefinedYRangeForDisplay(evaluation, xMin, xMax, yMin, yMax, context, this); return; } @@ -301,7 +301,7 @@ void ContinuousFunction::rangeForDisplay(float * xMin, float * xMax, float * yMi * Try a basic range. */ *xMin = - Zoom::k_defaultHalfRange; *xMax = Zoom::k_defaultHalfRange; - Zoom::RefinedYRangeForDisplay(evaluation, *xMin, *xMax, yMin, yMax, context, this); + Zoom::RefinedYRangeForDisplay(evaluation, xMin, xMax, yMin, yMax, context, this); if (std::isfinite(*xMin) && std::isfinite(*xMax) && std::isfinite(*yMin) && std::isfinite(*yMax)) { return; } diff --git a/poincare/include/poincare/zoom.h b/poincare/include/poincare/zoom.h index 4bd5c0165..ed61d072b 100644 --- a/poincare/include/poincare/zoom.h +++ b/poincare/include/poincare/zoom.h @@ -22,7 +22,7 @@ public: static bool InterestingRangesForDisplay(ValueAtAbscissa evaluation, float * xMin, float * xMax, float * yMin, float * yMax, float tMin, float tMax, Context * context, const void * auxiliary); /* Find the best Y range to display the function on [xMin, xMax], but crop * the values that are outside of the function's order of magnitude. */ - static void RefinedYRangeForDisplay(ValueAtAbscissa evaluation, float xMin, float xMax, float * yMin, float * yMax, Context * context, const void * auxiliary, int sampleSize = k_sampleSize); + static void RefinedYRangeForDisplay(ValueAtAbscissa evaluation, float * xMin, float * xMax, float * yMin, float * yMax, Context * context, const void * auxiliary); /* Find the best window to display functions, with a specified ratio * between X and Y. Usually used to find the most fitting orthonormal range. */ static void RangeWithRatioForDisplay(ValueAtAbscissa evaluation, float yxRatio, float * xMin, float * xMax, float * yMin, float * yMax, Context * context, const void * auxiliary); diff --git a/poincare/src/zoom.cpp b/poincare/src/zoom.cpp index 7cb7b46a6..36bec8977 100644 --- a/poincare/src/zoom.cpp +++ b/poincare/src/zoom.cpp @@ -195,20 +195,20 @@ bool Zoom::InterestingRangesForDisplay(ValueAtAbscissa evaluation, float * xMin, return true; } -void Zoom::RefinedYRangeForDisplay(ValueAtAbscissa evaluation, float xMin, float xMax, float * yMin, float * yMax, Context * context, const void * auxiliary, int sampleSize) { +void Zoom::RefinedYRangeForDisplay(ValueAtAbscissa evaluation, float * xMin, float * xMax, float * yMin, float * yMax, Context * context, const void * auxiliary) { /* This methods computes the Y range that will be displayed for cartesian * functions and sequences, given an X range (xMin, xMax) and bounds yMin and * yMax that must be inside the Y range.*/ assert(yMin && yMax); float sampleYMin = FLT_MAX, sampleYMax = -FLT_MAX; - const float step = (xMax - xMin) / (sampleSize - 1); + const float step = (*xMax - *xMin) / (k_sampleSize - 1); float x, y; float sum = 0.f; int pop = 0; - for (int i = 1; i < sampleSize - 1; i++) { - x = xMin + i * step; + for (int i = 1; i < k_sampleSize - 1; i++) { + x = *xMin + i * step; y = evaluation(x, context, auxiliary); if (!std::isfinite(y)) { continue; diff --git a/poincare/test/zoom.cpp b/poincare/test/zoom.cpp index 3fee10f16..49b53cb38 100644 --- a/poincare/test/zoom.cpp +++ b/poincare/test/zoom.cpp @@ -98,7 +98,7 @@ void assert_refined_range_is(const char * definition, float xMin, float xMax, fl Shared::GlobalContext globalContext; Expression e = parse_expression(definition, &globalContext, false); ParametersPack aux(e, symbol, angleUnit); - Zoom::RefinedYRangeForDisplay(evaluate_expression, xMin, xMax, &yMin, &yMax, &globalContext, &aux); + Zoom::RefinedYRangeForDisplay(evaluate_expression, &xMin, &xMax, &yMin, &yMax, &globalContext, &aux); quiz_assert_print_if_failure(range1D_matches(yMin, yMax, targetYMin, targetYMax), definition); }