Quentin Guidée
fb4e174cd0
Symbolic Calculation
2019-08-10 09:45:51 +02:00
Émilie Feral
8c2f8a9aea
[calculation] DisplayOutput: avoid to recursively scan the expression
...
multiple times instead of one.
2019-05-03 15:54:22 +02:00
Émilie Feral
cbbb827532
[poincare] Clean recursive tests on expression (isApproximate, IsRandom,
...
IsMatrix etc)
2019-05-03 15:54:22 +02:00
Émilie Feral
7f373a5c3c
[calculation] Calculations involving matrices display only approximate
...
results and should not toggle the exact output.
2019-05-03 15:54:22 +02:00
Émilie Feral
138587ee8e
[calculation] Calculation: memoized display output
2019-05-03 15:54:21 +02:00
Émilie Feral
a30191ccb4
[calculation] Change name: 'calculation selected' --> 'calculation
...
expanded'
2019-05-03 15:54:21 +02:00
Émilie Feral
12876b177f
[calculation] Calculation: discard Calculation::toggleDisplayExact (this
...
feature will be developed later)
2019-05-03 15:54:21 +02:00
Émilie Feral
7db575a4ba
[calculation] Calculation: improve memoization of a calculation height
2019-05-03 15:54:21 +02:00
Émilie Feral
6fd5cb360b
[calculation] Improve Calculation model: new display mode
...
ExactAndApproximateToggle
2019-05-03 15:54:20 +02:00
Léa Saviot
8ea5f1b642
[apps/calc] If result contains random/round, display approximation only
2019-05-03 15:54:20 +02:00
Léa Saviot
b007286581
[apps/calc] displayExactOuputOnly only if the input is store in function
...
This prevents 1+x->f(x) from displaying 1+x = undef
[[1,2]] + [[1][2]] displays undef
2019-05-03 15:53:21 +02:00
Léa Saviot
6f7fe5089a
[apps/calculation] Calculation::DisplayOutput can be Exact/Approx/Both
2019-05-03 15:53:21 +02:00
Léa Saviot
267d27f114
[poincare] Remove symbolic computation
2019-05-03 15:53:21 +02:00
Léa Saviot
496d346049
Remove max/min inline from KDCoordinate header
2019-05-03 15:53:19 +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