Commit Graph

135 Commits

Author SHA1 Message Date
Hugo Saint-Vignes
db69f6a6f5 [regression] Implement R2 computation using evaluated values
Change-Id: Iecf8cb84f092c2ec8a9bc17bc0265d7dddaac36c
2020-11-04 14:45:34 +01:00
Léa Saviot
588533fadf [apps/regression] Remove r and r2 for Proportional regression 2020-05-13 15:25:33 +02:00
Léa Saviot
2e5e2a3258 [apps/regression] Rename Affine -> Linear and Linear -> Proportional 2020-05-13 15:25:33 +02:00
Joachim LF
833f6ec778 [Regression] Add affine regression 2020-05-13 15:25:33 +02:00
Romain Goyet
84768472bd Explicit std::min/max template usage
This is unfortunately required in several cases:
 - Sometimes when we use either float and double (this should be changed)
 - Because KDCoordinate is not an int, so any arithmemtic promotes it to
an int
 - Because we mix pointer differences and ints
2020-04-14 09:31:02 -04:00
Romain Goyet
950862f8d0 Use std::min and std::max 2020-04-14 09:31:02 -04:00
Émilie Feral
e1d7b6bb04 [apps] Avoid unsigned/signed comparison: storeChecksumAtIndex takes an
int as parameter
2020-04-07 09:51:39 +02:00
Émilie Feral
886fc98350 [escher] Palette: factorize data color iteration 2020-04-01 10:18:08 +02:00
Léa Saviot
702772a7c9 [apps/reg] Store::m_seriesChecksum is Snapshot::m_prevModelsVersions
Share these objects instead of duplicating them
2020-03-11 11:43:36 +01:00
Léa Saviot
53705fb333 [apps/graph_ctrlr] Reload range if no previous model is present
We memoize the checksum of the x first models, and we check that one of
these models is still present when the graph view appears. If so, we do
not reload the range, other wise we reload it.

Scenario:
f(t) = [t^2  t+1] in parametric
Display the graph
f(x) = 1 on ]-inf;0]
g(x) = 2 on [0;inf[
Display the graph -> the range did not change
2020-03-11 11:43:36 +01:00
Léa Saviot
aab8974934 [apps] Memoize five model checksums 2020-03-11 11:43:36 +01:00
Ruben Dashyan
bdb29b9bf9 [apps/regression/graph_controller] Remove setRoundCrossCursorView's parameter
Get it directly from model
2020-02-26 09:50:43 +01:00
Ruben Dashyan
b8b6e4b5b8 [apps/regression/graph_controller] Update model before setting cursor view 2020-02-26 09:50:43 +01:00
Ruben Dashyan
4f279f15da [apps/regression/graph_controller] Inline selectRegressionCurve in header 2020-02-26 09:50:43 +01:00
Ruben Dashyan
436b934f76 [apps/regression/graph_controller] selectRegressionCurve does not update the cursor view
selectRegressionCurve is only called from GoToParameterController and is
part of the GraphController's API for updating the model. It should not
update the view. viewWillAppear does.
2020-02-26 09:50:43 +01:00
Ruben Dashyan
7e6a601af0 [apps/regression/graph_controller] Inline selectRegressionCurve in moveCursorVertically
In the graph controller, selectRegressionCurve is only called at one
place (in moveCursorVertically). In general, setRoundCrossCursorView is
called and *m_selectedDotIndex is updated. There is no reason at all to
do things differently.

Though selectRegressionCurve is called from GoToParameterController.
2020-02-26 09:50:43 +01:00
Ruben Dashyan
d13c243876 [apps/regression/graph_controller] Simplify viewWillAppear 2020-02-26 09:50:43 +01:00
Ruben Dashyan
7b00072ccf [apps/regression/graph_controller] Factor m_roundCursorView.setColor in setRoundCrossCursorView 2020-02-26 09:50:43 +01:00
Léa Saviot
e0bbc73b8b [apps/regression] Fix code cleaning 2020-02-12 15:13:17 +01:00
Émilie Feral
3a19939a64 [apps/regression] Missing ; 2020-02-12 15:13:16 +01:00
Ruben Dashyan
89aa0ac302 [apps/regression/graph_controller] Clean moveCursorHorizontally 2020-02-12 15:13:16 +01:00
Léa Saviot
1434158bee [apps/graph] Faster curve navigation after some time
If the user presses the LEft/Right keys for a long time, the cursor will
move faster.
2020-02-12 15:13:15 +01:00
Léa Saviot
19921ec125 [apps/regression/graph] Fix roundCursorView drawing glitch
Scenario:
f(x)=cos(x)
CalculateZeroes -> drawing glitch
Right, Back -> drawing glitch
2019-10-04 09:38:23 +02:00
Léa Saviot
2dee8f2b1f [apps/regression] Fix cursor redrawing when changing cursor type
Scenario:
double x[numberOfPoints] = {0.0, 0.975, 1.97, 2.945, 3.971, 4.887, 5.924, 6.964, 7.979, 8.974, 9.998};
double y[numberOfPoints] = {-23.784, -23.322, -28.322, -18.422, -4.813206, 7.146241, 16.631, 16.632, 9.209189, -6.050863, -19.659};
Quadratic regression, navigate on the points then go on the
regressioncurve -> there is a drawing glitch
2019-09-30 17:05:17 +02:00
Émilie Feral
4d593a6149 [poincare] PrintFloat: take into account the distinction between char
and glyph length in ConvertFloatToText
2019-09-26 11:26:48 +02:00
Léa Saviot
e67160b878 [apps/graph] Faster cursor scrolling on device
This commit is quite dirty but works well
2019-09-09 16:56:32 +02:00
Émilie Feral
0f43a04225 [apps/graph] Implement move cursor vertically on graph with
parametric/polar curves
2019-08-30 17:15:12 +02:00
Léa Saviot
28a721e96e [apps] Start fixing apps as cursor has new member variable 2019-08-29 11:07:22 +02:00
Léa Saviot
0840ca7a1e [apps/poincare] Move NormalDistribution to Poincare 2019-08-23 13:47:52 +02:00
Léa Saviot
c2b4d2b760 [strlcpy] Assertions on len parameter 2019-08-08 17:22:06 +02:00
Léa Saviot
b0b10f184e [poincare/print_float] convertFloatToText -> ConvertFloatToText 2019-08-08 17:22:06 +02:00
Ruben Dashyan
3489a1a644 [apps/regression] The GraphView does not need a pointer to the GraphController anymore 2019-07-19 15:06:25 +02:00
Ruben Dashyan
eb3da7f395 [apps] Substitute "app()->container()" by "AppsContainer::sharedAppsContainer()" 2019-07-19 15:06:25 +02:00
Émilie Feral
0222509850 [regression] GraphController: add missing banner view reload 2019-06-17 15:33:10 -04:00
Léa Saviot
bedc09f9f1 [apps/graph_controller] Clean code 2019-06-14 09:31:46 -04:00
Léa Saviot
3de7e4daab [apps/regression] Fix bannerView
For data
0 0
1 2
2 6
3 12
4 20
5 30
6 42
7 56
and square regression, the coefficient c is not fully displayed
2019-06-14 09:31:46 -04:00
Émilie Feral
a0a93a1287 [regression] GraphController: reinitialize the selected series when
displaying graph if the current selected series has been removed
2019-05-09 16:28:36 +02:00
Ruben Dashyan
3d71397949 [apps/shared] XYBannerView contains a TextField 2019-05-03 15:54:22 +02:00
Ruben Dashyan
5ff19a2506 [apps] Define Font, Text/BackgroundColor BannerView static methods 2019-05-03 15:54:21 +02:00
Ruben Dashyan
4d640e2916 [apps] XYBannerView: prepare constructor so the class may contain TextField 2019-05-03 15:54:21 +02:00
Ruben Dashyan
ba6282be45 [apps/shared] Remove InteractiveCurveViewController::didEnterResponderChain
In order to avoid reloading after Ion::Events::Toolbox/Var, but only in
viewWillAppear.
The previous behavior was masking a bug in
Regression::GraphController::viewWillAppear where the cursor could be
moved after reloading the bannerView.
2019-05-03 15:54:21 +02:00
Ruben Dashyan
94cf542ba3 [apps] Factorize InteractiveCurveViewController::moveCursorVertically 2019-05-03 15:54:21 +02:00
Ruben Dashyan
f6ceae3b8b [apps] Factorize SimpleInteractiveCurveView::moveCursorHorizontally 2019-05-03 15:54:21 +02:00
Ruben Dashyan
67f9f79322 [apps] Implement InteractiveCurveViewController::isCursorVisible
It was a pure virtual method implemented in derived classes
  Shared::FunctionGraphController,
  Regression::GraphController.
InteractiveCurveViewRange does not need anymore to hold CurveViewCursor
* m_cursor.
2019-05-03 15:54:21 +02:00
Ruben Dashyan
8629254d9a [apps] Remove Shared::InteractiveCurveViewController::displayTop/BottomMarginRatio
and replace it by the existing cursorTop/BottomMarginRatio.
There was absolutely no reason to use different margin values.
2019-05-03 15:54:21 +02:00
Ruben Dashyan
d8f97d62a4 [apps] Factorize Shared::InteractiveCurveViewController methods
cursorBottomMarginRatio(), displayBottomMarginRatio(),
estimatedBannerHeight() and k_viewHeight moved to
Shared::InteractiveCurveViewController from derived classes.

estimatedBannerNumberOfLines() moved from
Shared::FunctionGraphController to
Shared::InteractiveCurveViewController and implemented in
Regresssion::GraphController.
2019-05-03 15:54:21 +02:00
Ruben Dashyan
e13651f6fb [apps] Remove Shared::InteractiveCurveViewController::initRangeParameters virtual method 2019-05-03 15:54:21 +02:00
Ruben Dashyan
355e42734d [apps] Replace BannerView::set(Legend|Message)AtIndex by getters 2019-05-03 15:54:21 +02:00
Léa Saviot
d2b9bdd616 [unicode] Clean typography (accents, non present glyphs...) 2019-05-03 15:53:20 +02:00
Léa Saviot
4c5251f04f [unicode] Use unicode when dealing with chars - Part 2 2019-05-03 15:53:19 +02:00