Commit Graph

110 Commits

Author SHA1 Message Date
Léa Saviot
43031928c3 Remove max/min inline from KDCoordinate header 2019-04-12 15:16:51 +02:00
Léa Saviot
52ae2a2643 [apps/calc] approximateOutput handles unparsable m_approximateOutputText
This fixes a crash when computing:
[[1, 0, -1, 0][0, 1, 1, 0][0, 2, 0, 1][1, 0, 0, 1]]^(-1)
2019-04-12 15:16:05 +02:00
Émilie Feral
7b5f3c570d [poincare] Change the way Expression are built 2019-02-21 11:29:35 +01:00
Léa Saviot
31866aaaf5 [apps/calculation] Fix display of unreal
For instance ln(-2) in real mode should display "unreal"
2019-01-21 11:59:20 +01:00
Léa Saviot
be3ab70e67 [apps/calculation] Do not display approximation if it is unreal
Fixes: sqrt(-1) in real complex format, then change complex format, it
then displays unreal = undef
2019-01-10 11:42:05 +01:00
Léa Saviot
027148f376 [apps/calculation] Clean comments 2019-01-10 11:42:05 +01:00
Léa Saviot
271e22628b Typo in comment 2019-01-10 11:42:05 +01:00
É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
786cefc3d4 [calculation] No special case for unreal calculation, it is handled in
simplication and approximation routines.
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
6fd3a155df [calculation] Take into account the complex format 'real' 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
8f63416097 [calculation] Fix Calculation operator == 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
fb44f8617c [apps/calculation] Fix display exact and approx results
If the results are equal but their layouts not, because of the number of
significant digits for instance, display both the equal and approximate
results.
2018-12-03 12:32:51 +00:00
Émilie Feral
cf92eb8506 [poincare] Discard useless argument 'replaceSymbols' from simplification
routine
2018-11-30 09:53:31 +01:00
Léa Saviot
53e4a290f7 [poincare] Rename Expression:parse in Parse 2018-11-23 12:04:09 +01:00
Léa Saviot
33676e915a [apps] Check that serialized expression is not too long in Graph 2018-11-23 12:04:09 +01:00
Léa Saviot
a289d77425 [apps/calculation] Fix non returning method 2018-11-23 12:04:08 +01:00
Léa Saviot
63e83c246b [poincare] Undefined::Name() gives "undef" 2018-11-23 12:04:08 +01:00
Léa Saviot
1cb9d5445c [apps/calculation] Do not display approximate output if it is undef 2018-11-23 12:04:08 +01:00
Léa Saviot
789d17189e [apps/calculation] Comment why shouldOnlyDisplayExactOutput is needed 2018-11-23 12:04:07 +01:00
Léa Saviot
5d6db930fd [apps/calc] Fix display glitch when doing 1.2->a (cell not high enough) 2018-11-23 12:04:07 +01:00
Léa Saviot
d411ff292e [poincare] Do not parse 1>ans 2018-11-23 12:04:07 +01:00
Émilie Feral
4f2985e6fb [calculation] Replace symbols when simplifying 2018-11-23 12:04:03 +01:00
Léa Saviot
4d71a3a4c6 [apps/poincare] Do not replace symbols in result of 3+c->f(x) 2018-11-23 12:04:03 +01:00
Léa Saviot
d083d05609 [apps/calculation] Display the exact layout only when the exp is Store 2018-11-23 12:04:03 +01:00
Léa Saviot
a7a719df4a [poincare] Handle functions in replaceSymbolWithExp and similar methods 2018-11-23 12:03:59 +01:00
Léa Saviot
2e2bf96bca [apps/poincare] use Symbol::k_ans constexpr char * 2018-11-23 12:03:58 +01:00
Émilie Feral
7f72f820a0 [poincare] Get rid of SpecialSymbols::Ans 2018-11-23 12:03:58 +01:00
Léa Saviot
f6edf05708 [calculation] Compare simplified exact and approx outputs to determine = 2018-11-19 18:02:55 +01:00
Léa Saviot
ed5a6d4a03 [apps/calculation] Remove unneeded arguments 2018-11-19 18:02:55 +01:00
Lionel Debroux
70a8d06cfe [apps, poincare] Optimize the preferences singletons' usage by removing superfluous checks in the setters, and performing manual CSE in the callers.
Signed-off-by: Lionel Debroux <lionel_debroux@yahoo.fr>
2018-10-23 11:49:09 +02:00
Lionel Debroux
1a8c6b6ae9 [poincare, escher, ion, apps] Split the huge umbrella header poincare.h, to reduce build time.
This should be a NFC, but surprisingly, it also reduces size... so what does it change ?
2018-10-23 11:49:09 +02:00
Émilie Feral
3e99b07adb [calculation] Calculation: output display
When reducing an input, Float expression can appear (to avoid Infinity
(2.1234567^201).
Consequently, we only the approximate output if the
exact output contains a Float.
2018-09-26 16:18:56 +02:00
Émilie Feral
8604e73e97 [calculation] No Expression memoization in Calculation: delay the
overflow of the TreePool
2018-09-25 16:55:50 +02:00
Léa Saviot
8b75802746 [calculation] Don't recompute HistoryViewCell layout if same calculation 2018-09-20 17:21:34 +02:00
Émilie Feral
365b145cf3 [poincare] Change names: LayoutReference-->Layout 2018-09-18 16:29:44 +02:00
Émilie Feral
d17b0f1afb [poincare] Get rid of char table of variable size 2018-09-17 17:14:43 +02:00
Émilie Feral
616e4c0bcc [poincare] Change name: LayoutRef --> LayoutReference 2018-09-14 16:57:12 +02:00
Émilie Feral
2cc01dc2a5 [calculation] Calculation model does not need to override copy
constructor
2018-09-06 16:37:36 +02:00
Émilie Feral
367f628b5c [calculation] Free the pool of expressions when tidying the application 2018-09-06 14:07:41 +02:00
Léa Saviot
e3a09286ac [poincare] Remove AllocationFailures 2018-09-05 16:19:11 +02:00
Léa Saviot
71c807b565 [poincare] Node->isDefined becomes !Node->isUninitialized 2018-08-14 16:40:12 +02:00
Émilie Feral
b5f66171fc [calculation] Fix all reference to Poincare 2018-08-10 13:18:46 +02:00
Émilie Feral
e9c42e221b [calculation] Fix Calculation 2018-08-10 10:14:59 +02:00
Émilie Feral
7c1649670a [shared] Fix PoincareHelpers 2018-08-10 10:13:25 +02:00
Léa Saviot
5a5f2403da [poincare] Fix calculation height allocation failure handling 2018-07-30 15:36:45 +02:00