When choosing a language and then pressing back from the country menu to
get back to the language menu, the previously selected language remains
selected.
Change-Id: I018c51cce09d47b15bb4864c135d381a94b2a72f
Do not display the regular view when the main view takes up all the
frame.
This fixes a bug causing the language menu to be briefly visible before
the logo on start-up.
Change-Id: Ia2de44de52ac6f852e0eca05101587042f02913b
u(n+2) = u(n+1) + u(n) + u(2)
u(0) = 2
u(1) = 2
Crashed because the global context was not checking if the sequence was
badly referencing itself
Change-Id: I97f694955e15518bb088db50deb761d7ee09d75f
char buffers m_distribution and m_calculation had too weak an alignment,
causing a crash when starting the web simulator.
Change-Id: Ibfd3c2582bc4de97beb4d6cc51b9fb86300edb5e
Cache did not check that the step was the same before panning, causing
old values to remains cached.
e.g. :
- Type f(x) = x, and plot it.
- Go to Axes, and set Xmax = 0.
- Confirm
Change-Id: Ie8ed10c336cf517a65f19b05bd14866daf8128c2
Temperatures can be converted to and from degree Celsius and Fahrenheit.
When used in non-trivial calculations, they are always reduced to undef,
as the rules for manipulating relative scales are not well defined.
Change-Id: If59e224a0e7f940b421bc894bbe2279c90f38d04
Fix a bug preventing the cursor from moving to other curves using UP and
DOWN when the y value was undef.
To reproduce :
- In Graph, define f(x) = 1 and g(x) = ln(x), then draw the curves
- Press DOWN to select g
- Press LEFT until g is not defined anymore
--> Pressing UP or DOWN won't allow you to select f
Change-Id: I79ed4a57b78ac0b8dac3f66e722e358bd4be18d9
Fixed issues due to copy/paste of empty formulas. When pasted, empty
formulas are now recognized by the parser and apear with the
correct layout
Without this process, copying an empty integral then pasting it gives :
int((), x, (), ()) instead of drawing an empty integral
Change-Id: I680aaf4eea953149e2d57efa8153ab4d3f93e2a7
When a formula is pasted in a script or in the shell, some symbols are
replaced by their equivalent in python :
x turns into *
^ turns into **
√ turns into sqrt
etc
Change-Id: If6f2a22d4f3c148c2655e0892023b0e28058a9a6
When selecting a country, the table would be cropped by the text, with
no separator between the white of the cropped cell and the background
color.
Change-Id: Ia6be40bce40b7cdb3efa064989d45ef5c046e364
The solutions of equations that need numerical approximations to be
solved are now computed base on the undeveloped equation (instead of
fully the expended one used to identify polynomials)
This allow (x-10)^7=0 to yield x=10 as result (9.95 before)
Change-Id: Ia8acbe57a9cfebf0b5016e9c896d21c8ddac7a64
Mixed fractions for negative rational numbers are now computed as the
opposite of their opposite's mixed fraction, as is conventionnal.
ex : -9/5 is now decomposed as -1-4/5 instead of -2+1/5
Change-Id: I6df3dce585ccadd1bcd7cc562576995face98f9c
The Equal sign now triggers a syntax error in all apps but Solver. This
make its behaviour symmetrical with that of < and >.
Change-Id: Ia886c547a315d5627a69f3f2acac2cbce0e202c2
Sequences can now be defined using specific terms form other sequences :
Un = n
Vn = u(3)
Initial values can also depend on other sequences.
Should there be a circular dependency, the sequences concerned will
display "undef" as value
Change-Id: I6fe1f3ff7b500f35d480ddefb42de729c327432e
In UnitConvert::shallowBeautify, an orphan expression would be reduced
without reaffecting the reduction's result. The reduction not being
taken into account would cause problem when handling undef values.
ex : Try to calculate i->_min
Change-Id: I4e53afa40ba838fed8c2fba9944c9c9ed1dc95b4
Implemented std::nextafter to replace hand made one.
Methods next and previous are no longer making the difference between -0
and +0
Change-Id: I42e1a073623b70656d9df954694803840cf3088c
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
Method characteristicXHalfRange was used to compute the range on which
to display cartesian function in Graph. With the new zoom algorithm,
this method is deprecated.
Change-Id: Ic681fab8d58d0f5628a94302a7b49dacaaa1a6a3
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
In Graph, the weak ReductionTarget would cause _X^0 to not be simplified
to 1, and would break an assertion in
Unit::chooseBestRepresentativeAndPrefix.
Change-Id: I8167a472802baf0a73bf48513f492e78517107ef
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
When factoring 1^inf * 1^-inf with Multiplication::factorizeBase, an
Undef factor would appear an be carried into the reduced multiplication.
We escape early in this situation by returning Undef.
Change-Id: Id826ad3cc131349e5bb460f7a8c82fe606294b97