When a function that had previously been cached is deactivated, its
cache can be used by another function. When the function is reactivated,
if it tries to reuse its previous cache, it will be filled with values
from another function, and will not be cleared. By detaching the cache
of a function that becomes inactive, we ensure that the next time this
function is cached, the chache will be cleared.
e.g. Define to functions f(x)=x, g(x)=-x, draw them both.
Deactivate f, the redraw the graph
Reactivate f, the draw again
When three functions or more, the third function and later don't use
caching. But it is still possible for them to have been linked to a
cache (for instance if previous functions had been deactivated earlier).
To avoid a function tapping into another function's cache, we reset the
cache.
e.g. Define 3 functions f(x)=1, g(x)=2, h(x)=3, and deactivate f.
Draw the graph, come back, reactivate f, then draw again.
---> The space between y=2 and y=3 will be filled with the color of h,
as h "remembers" using cache n°2, wich currently contains the values of
function g.
The angleUnitVersion check is no longer needed, as changing the angle
unit with a trigonometric function set would leave the cursor hanging.
Change-Id: I17d99c05daeacfec953865158cdfe7706635cd32
The cursor now initially aligns with the grid, and tries to avoid points
where the function is not defined.
Change-Id: Ie3b304281f5848102c2f3c0aa5c031b351418186
When entering the Navigate menu, a portion of the Y axis is memoized to
preserve the grid units.
However, this portion was not modified when zooming, causing some
glitches.
Change-Id: I06b4ee044eaa75d48b8f338c9ef6ea33bb299e39
If the user opens the Navigate menu, then closes it immediately, the
Auto status is not turned off.
Change-Id: I2d1ca0cfdae1b9c957dede7bf9f3c2890dea1bb0
When using the Navigate menu on graphs, the grid units are computed
using the normal graph's range, so that the units won't change.
Change-Id: I8ff8853868e5c90319619a6271d6a7d87ae82ab0
Scenario: (with the current auto zoom algorithm)
Graph f(x) = x! -> Auto axes are x=[-13,17647;13,17647],
y=[3628793;2628807]
Press "0" "EXE" to go to x = 0 -> Axes are x=[-13,17647;13,17647],
y=[-0.8612717;13.13873]
Press auto
Press "0" "EXE" to go to x = 0 -> the assertion about KDCoordinates
breaks.
Fixes the following bug :
- Plot ln(x) (or any other curve that's normlalized by default)
- Go back and replace ln(x) with log(x) (or any other curve that's NOT
normalized by default)
--> The 'Equal Axes' button is still on.
Change-Id: I0ef50dc9866e908894bd4f5c3ade198f9b3ea318