The new zoom implemented for ContinuousFunction is now factorized inside
Function to benefit the Sequence class. The same things is done to code
added to Graph::GraphController, which is moved into
FunctionGraphController.
This removes the reimplementation of several methods, most notably
computeYRange, as the implementation for function is general enough to
work on sequences.
Change-Id: I9b8211354064f46c3fa3dde3191dcb39d627a1d2
The auto zoom did not display the X axis when drawing positive curves
with roots, such as sqrt(x).
Change-Id: Ic80fd3207691dc917f7b64c07d7745ab5df1daa3
Additional checks have been added to ensure that the first move of the
cursor from the center of the graph would not cause the window to pan up
or down.
Change-Id: I44d7e86223941076cbf03db7a221e9c0427a64e4
Initial zoom for displaying curves is computed according to the
following rules :
- For polar and parametric curves, the algorithm has not changed.
Vertical and horizontal ranges are chosen in order to display the
full curve with orthonormal graduations.
- For cartesian curves, the horizontal range is chosen in order to
display all points of interest (roots, extrema, asymptotes...).
The vertical range is fitted to be able to display those points, but
also cuts out points outside of the function's order of magnitude.
Change-Id: Idf8233fc2e6586b85d34c4da152c83e75513d85c
Pressing OK or EXE with the brightness setting selected would cause a
crash because of a mishandling of the events for this cell.
Change-Id: I4978b4f749b5f19bc1e49ec05b60a32044d86638
poincareCircuitBreaker requires the Back key to be pressed for at least
50 ms before interrupting a computation.
This is effectively invisible for the user, but fixes a bug in
Calculation :
- When leaving the additional results for a result using units by
pressing the Back key, a reduction preceding a call to removeUnits
would be interrupted, causing an undefined behaviour.
Change-Id: Iec667ae964f190de2171850cc22e1726959e6cb5
After choosing a language at onboarding, the country menu now has a
specific country selected by default (Spain for Spanish, Italy for
Italian...)
Default countries are specified in apps/language_preferences.csv
Change-Id: Ia6392aceb9bebf7e62a692c5a79eb8c4d7b71a9d
1. Information about a unit's dimension now uses inheritance.
_m is an instance of DistanceAlias, which is derived from Alias.
A UnitNode now keeps a pointer to an Alias and one to a Prefix.
All aliases are still defined as constexpr.
This cleans up a lot of the code used namely for computing the
additional outputs in Calculation.
2. Instead of being defined with a string, each unit is described by its
ratio with the base SI unit (ex: _L is 0.001 instead of "0.001_m^3").
This greatly speeds up the calculations using units, as the algorithm
to find the best unit used to parse the definition.
Change-Id: I4d6ed6ad4cb967026a3f01a335aec270066e2b9f
Instead of relying on the order in which the apps are passed at compile
time, the look of the Home app is defined in a config file, and depends
on the country chosen.
Change-Id: If7f56a284e0001d6d75ece1e7efdf5fd1d0a9978
The additional results on units now include conversions into both unit
systems (metric and imperial).
Change-Id: Ie0f12eb3735e775560b66c2cbd78bc9a659145bb
Classes LanguageController and CountryController have been fused into
one class LocalizationController, as they were very similar. This allows
the Settings and OnBoarding apps to only keep one controller for both
functions.
Change-Id: Ic23f300c37122249d34caaf18a633b5815240a78
Instead of being hardcoded in the python script, preferences specific to
each country are defined in the country_preferences.h and .csv files.
Change-Id: I71e276341e1586935b4d5814be5b1be80fa170a0
Each country comes with an set of preferences, built at compile time by
apps/i18n.py, used to define :
- the exam mode
- the method for computing quartiles
- the unit system in which to output the results with units
Functions to access those preferences are available in
via sharedGlobalPreferences.
Change-Id: I220ebaa9b9e8954dfe33cd51936f47505b98978d
The new units are :
distance mile, yard, foot, inch
mass pound, ounce
volume gallon, quart, pint, cup, fluid ounce
table spoon, tea spoon
Change-Id: I6864067a1822a077764ed3b61fc46004732e9447
As some definitions now depend on the selected country, tests for the
statistics app now check that the right method is used for each country,
and that each method yields the correct results.
Change-Id: Ia5ad091136746f3284f7524376301fac0c582364
Implemented a new method for computing quartiles, used for all countries
except France and Italy. Quartiles are now computed as the medians of
the lower half and upper half of the dataset.
Change-Id: Idfb89a617799eca1d23326ebbcfbbea58e6236b8
The Dutch exam mode is now only accessible when the selected country is
Netherlands on an official firmware.
Change-Id: I6d70f79b6e728482d8c7d86ef6a2e5c53ee18a39
Added a list of supported countries to I18n, and created messages for
each country's names in each language.
Change-Id: I1b887d75da980d99e21f89cc151249e42c78de88
When opening the window for choosing the regression model, the row
corresponding to the currently selected model will be highlighted.
Change-Id: I65772186fc302c3706a5571f98ecff620e4a8ca9
This fixes the following crash: when reloading the cell before
initializing the m_textFieldBuffer, TextField::ContentView::text() will
use the content of the uninitialized m_textFieldBuffer to compute the
minimalSizeForOptimalDisplay.
In stats when selecting an action on a column, all actions listed after
the one selected were applied. Adding breaks to the switch solved the
issue
Change-Id: I4a2f8a41f734a209abb17e76388eed551bf1769c