Commit Graph

752 Commits

Author SHA1 Message Date
Émilie Feral
fe8825df35 [shared] PoincareHelpers: update the complexFormat (force it to
Cartesian with complex input).
2019-01-10 11:42:04 +01:00
Émilie Feral
61d58b5dfa [shared] SimplifyAndApproximate is used with already updated
ComplexFormat
2019-01-10 11:42:04 +01:00
Émilie Feral
ecf3f2ea0f [poincare] Create a a flag on Expression that is set when the
approximation encouters a complex value

All approximation methods take the complex format into account.
2019-01-10 11:42:04 +01:00
Émilie Feral
26e2e9be0d [poincare] Add complex format as an argument of simplification 2019-01-10 11:42:04 +01:00
Émilie Feral
c6039423a9 [poincare] When simplifying an expression, also compute the approximation from the reduced
expression to avoid loss of precision.

If an expression is reduced to a ComplexCartesian(a, b), we compute the
approximation from ComplexCartesian(a,b) instead of going through the
potentially complicated expression resulting from beautifying
(sqrt(a^2+b^2)*exp(i*(arctan(b/a) -Pi/2*sign(b)) for example)
2019-01-10 11:42:03 +01:00
Émilie Feral
383ac004cf [poincare] Take into account complex format in simplify 2019-01-10 11:42:03 +01:00
Émilie Feral
9efc9e02e6 [poincare] Revert simplifyForComplexFormat 2019-01-10 11:42:03 +01:00
Émilie Feral
79e7fb2183 [calculation] Use ParseAndSimplifyForComplexFormat instead of
ParseAndSimplify
2019-01-10 11:42:03 +01:00
Léa Saviot
fd34e83a56 [apps] In curve views, display floating labels when axes non visible 2019-01-10 11:42:02 +01:00
Léa Saviot
fa24a4fd54 [apps] Put the Y labels left of the Y axis 2019-01-10 11:42:02 +01:00
Léa Saviot
6b381957df [apps] Handle cut labels in curves.
Draw all labels even if cut. If only the extrema horizontal labels are
drawn, pick the labels 1 and numberOfLabels-2 if the real extrema labels
will be cut.
2019-01-10 11:42:02 +01:00
Léa Saviot
9ac32cf8fe [apps] Use standard variables in curve view 2019-01-10 11:42:02 +01:00
Léa Saviot
d40b17a45e [apps] In curve view, draw the graduation even if the label is not drawn 2019-01-10 11:42:02 +01:00
Léa Saviot
c14483b0e7 [apps/shared] Clean some code in CurveViewRange 2019-01-10 11:42:02 +01:00
Léa Saviot
8c6ffa6d42 [apps] Fix graph X axis labels that read the same
Scenario: just zoom in in a graph
Fix:
- Do not truncate labels.
- Label size is computed depending on available size and number of
 labels.
- If labels cannot be displayed properly, just display the minimal
and maximal labels!
2019-01-10 11:42:02 +01:00
Léa Saviot
f2310a8814 [apps] Change CurveViewRange::computeGridUnit parameters 2019-01-10 11:42:02 +01:00
Léa Saviot
2aa92ecffa [apps] Add a proof for CurveViewRange::computeGridUnit's algorithm 2019-01-10 11:42:02 +01:00
Léa Saviot
a65bdb1dfc [apps] Increase the Y axis label buffer sizes in curve views 2019-01-10 11:42:02 +01:00
Léa Saviot
d76c77f323 [apps] Prevent too much zooming on curve views
This removes curve drawings that are ugly because of float imprecision,
such as cos(x)^2+sin(x)^2
2019-01-10 11:42:02 +01:00
Léa Saviot
36faebab3d [apps] Fix some KDCoordinate to float conversions 2019-01-10 11:42:02 +01:00
Léa Saviot
8de74f4158 [apps] Fix one pixel in CurveView::stampAtLocation 2019-01-10 11:42:02 +01:00
Léa Saviot
4c6a5c9819 [apps] When zooming on a curve, do not change the yRange
It changed because of the zoom banner
2019-01-10 11:42:02 +01:00
Léa Saviot
cea413e91d [apps] Fix Orthonormal setting in graphs
It was not perfectly orthormal.
2019-01-10 11:42:02 +01:00
Léa Saviot
020e459379 [apps] Clean shared/interactive_curve_view_range.cpp 2019-01-10 11:42:02 +01:00
Léa Saviot
c50aba1873 [apps] Clean shared/initialisation_parameter_controller.cpp 2019-01-10 11:42:02 +01:00
Léa Saviot
cf79795540 [apps] Fix blob left of screen when drawing curves
Try for instance f(x)=cos(x) in Graph
2019-01-10 11:42:02 +01:00
Léa Saviot
058b49a063 [apps/Seq/Reg] Do not pan to cursor if no yAuto 2019-01-10 11:42:02 +01:00
Léa Saviot
18381fd334 [apps] Add FLT_EPSILON in float comparisons in interactive_curve_vw_rge
This fixes the removal of yAuto when displaying the function f(x)=cos(x)
2019-01-10 11:42:02 +01:00
Léa Saviot
37ac12b1da [apps/graph] When changing the window manually, do not pan to cursor 2019-01-10 11:42:02 +01:00
Léa Saviot
531b555949 [apps/sequence] Fix method that should be virtual pure
The following scenaro crashed in DEBUG=1 and did not resize the window
correctly in DEBUG=0.
Got to sequence
u(n)=n
Go to sequence/graph
Remove yAuto
Go to sequence/list
v(n) = cos(n)
remove u(n)
Go to sequence/graph
2019-01-10 11:42:02 +01:00
Léa Saviot
de3d200b81 [apps/graph/reg/seq] Do not switch on y auto each time graph appears 2019-01-10 11:42:02 +01:00
Léa Saviot
19e8b2ee1c [apps] Fix InteractiveCurveViewController::addMargin 2019-01-10 11:42:02 +01:00
Léa Saviot
404db60a3d [apps/shared] Code cleaning and inlining 2019-01-10 11:42:02 +01:00
Léa Saviot
3595a8e628 [apps/sequence] Align sequence title and expression baselines 2019-01-10 11:42:02 +01:00
Léa Saviot
64446f24e6 [apps/graph] Increae horizontal margin of function name in list 2019-01-10 11:42:02 +01:00
Léa Saviot
964703bb03 [apps/graph] Increase name column width to max when editing function name 2019-01-10 11:42:02 +01:00
Léa Saviot
6ba70c332b [apps/graph] Fix redrawing bugs due to missing memoization reset 2019-01-10 11:42:02 +01:00
Léa Saviot
6e77bb4123 [apps] Revert Equal after function name 2019-01-10 11:42:02 +01:00
Léa Saviot
ff33ad3ad1 [apps] In FunctionTitleCell, draw the equal separately
This way, we can better manage the margins around the equal
2019-01-10 11:42:02 +01:00
Léa Saviot
738d21cc2b [apps/graph] Align function name and expresion baselines 2019-01-10 11:42:02 +01:00
Léa Saviot
569e0e884e [apps/graph] Memoize baselines in functions list 2019-01-10 11:42:02 +01:00
Léa Saviot
9b9a0aa009 [apps/graph] Add scroll indicators in funcitons list 2019-01-10 11:42:02 +01:00
Léa Saviot
8e8d99e8e9 [apps/graph] Do not draw the vertical separator in functions list 2019-01-10 11:42:02 +01:00
Léa Saviot
348c5c0dae [apps/graph] Add equal after function name 2019-01-10 11:42:02 +01:00
Léa Saviot
ff1c137fe1 [apps/sequence] Add scroll indicators in sequence list 2019-01-10 11:42:02 +01:00
Léa Saviot
3b2eaa5dea [apps/sequence] Sequence title cells are aligned to the right 2019-01-10 11:42:02 +01:00
Léa Saviot
216b16fc11 [apps/shared] Increase memoized heights count in StorageExpModelListCtrl 2018-12-20 14:51:51 +01:00
Léa Saviot
13419f434f [apps/shared] Memoize in StorageFuncListCtrl::indexFromCumulatedHeight 2018-12-20 14:51:51 +01:00
Léa Saviot
6740198e06 [apps/shared] Constexpr reset value in storage_expr_model_list_ctrlr 2018-12-20 14:51:51 +01:00
Léa Saviot
56504525c9 [Makfile] Remove superfluous test_objs
We now build all objects even for test, so we do not need most of the
previous test_objs
2018-12-19 09:44:58 +01:00