Émilie Feral
cedcab21ec
[poincare] Tidy tests and add TODO for tests that need to be completed
2019-08-08 17:22:04 +02:00
Léa Saviot
cdbcc3c6bc
[poincare/matrix_identity] Fix shallowReduce
2019-08-08 17:22:04 +02:00
Léa Saviot
db1eb1072f
[poincare/determinant] Try to compute exactly for dim > 3
2019-08-08 17:22:04 +02:00
Léa Saviot
d2c9ba4baa
[poincare/matrix_inverse] Remove duplicate check if matrix is square
...
Also done in Matrix::createInverse
2019-08-08 17:22:04 +02:00
Léa Saviot
4bbb8167f1
[poincare/matrix_inverse] Handle memory error in MatrixInverse
2019-08-08 17:22:04 +02:00
Léa Saviot
89b8fa7121
[poincare/matrix_inverse] Remove TODO
2019-08-08 17:22:04 +02:00
Émilie Feral
6d812fd6f7
[poincare] MultiplicationExplicite::shallowReduce: the parent expression
...
has not be reduced yet, so use isMultiplication instead of type() ==
MultiplicationExplicite.
2019-08-08 17:22:04 +02:00
Émilie Feral
b97387efc4
[poincare] Expression: fix deepBeautify
2019-08-08 17:22:04 +02:00
Émilie Feral
37de87d737
[poincare] Logarithm: when deep reducing, start with the second child to
...
be able to compare the second child to descendent of the first child (to
be able to identify log(x^y, x)
2019-08-08 17:22:04 +02:00
Émilie Feral
302fcce649
[poincare] Discard POINCARE_TESTS_PRINT_EXPRESSIONS flag (has been
...
replaced by POINCARE_TREE_LOG)
2019-08-08 17:22:04 +02:00
Émilie Feral
94598016bf
[poincare] Clean unused ExpressionNode::Type::ComplexPolar
2019-08-08 17:22:03 +02:00
Émilie Feral
fc31b5671f
[poincare] Addition and Subtraction of Matrix and Complex return NAN at
...
approximation ([[2,4][5,6]] + 1 --> NAN)
2019-08-08 17:22:03 +02:00
Émilie Feral
f546845279
[apps] Test: fix calculation and equation test with layout and
...
expression seriazlization
2019-08-08 17:22:03 +02:00
Léa Saviot
f64c5a7214
[poincare] remove duplicate ExpressionOrder definition
2019-08-08 17:22:03 +02:00
Léa Saviot
23acdd7f0d
[apps/calc] Simplify the HistoryViewCell::m_calculationCRC32 initialization
...
It is not very probable that a new CRC32 should be computed to 0, and
maybe not less probable than being computed to the CRC32 of an empty
computation. However this was not mathematially verified.
2019-08-08 17:22:03 +02:00
Léa Saviot
9c95018034
[apps/calc] Init HistoryViewCell::m_calculationCRC32 to better value
2019-08-08 17:22:03 +02:00
Léa Saviot
ee505fe02d
[apps/graph] Factorize some code
2019-08-08 17:22:03 +02:00
Léa Saviot
dfe74dc1cb
[apps/calculationStore] Remove falty assertion
2019-08-08 17:22:03 +02:00
Léa Saviot
2c783fe630
[apps/calcualtion] Remove TODOs
2019-08-08 17:22:03 +02:00
Ruben Dashyan
3bf1d233f7
[apps/probability] Turn P(14<X) into P(X>14)
2019-08-08 17:22:03 +02:00
Ruben Dashyan
a1fa7d71dc
[apps/probability] FiniteIntegralCalculation does not use RightIntegralFirstLegend
2019-08-08 17:22:03 +02:00
Ruben Dashyan
0329eb78cc
[apps/probability/calculation] Remove unused method
2019-08-08 17:22:03 +02:00
Ruben Dashyan
162e547d9d
[apps] Move some specific i18n to probability
2019-08-08 17:22:03 +02:00
Léa Saviot
76a950d572
[apps/calculation] Add assertions instead of escape cases
2019-08-08 17:22:03 +02:00
Léa Saviot
d027a01851
[apps/calculation] Fix calculation memoization
2019-08-08 17:22:03 +02:00
Léa Saviot
849f9237dd
[apps/calculation] Handle calculations too big for buffer
2019-08-08 17:22:03 +02:00
Léa Saviot
c839fb52a3
[escher/layout_field] Fix cursor position on Empty layout
...
Scenario: In the calculations app, write 1, Enter, write •|/2, go up,
then go down. There is a problem with the empty layout and the cursor.
2019-08-08 17:22:03 +02:00
Léa Saviot
ce15bc202d
[escher/layout_field] Fix EmptyLayout disappearance
...
Scenario :
In the calculation app, write 1, press Enter.
•|
Write ---
2
Then go up. The empty layout on top of the fraction disappears.
2019-08-08 17:22:03 +02:00
Léa Saviot
a7d3df39c3
Typo
2019-08-08 17:22:03 +02:00
Émilie Feral
0e40177f85
[poincare] Product, Sum, Integral, Floor etc (special layouts) serialize
...
to identifier[arg1, arg2, ...] instead of identifier([arg1, arg2, ...])
which is not parseable
2019-08-08 17:22:03 +02:00
Émilie Feral
4bffb13829
[poincare] MultiplicationImplicite: we can avoid adding system
...
parentheses around Power, Factorial and Multiplication. Precedence rules
will group together Factorial/Power before Multiplication (even
implicite multiplication)
2019-08-08 17:22:03 +02:00
Léa Saviot
f5e11b7d74
[apps/calculation] Exception checkpoint around secondary method
...
When computing [[2,3,2][ln(2),1,5][1,8,9]] there was a memory pool
failure because of the computation of
exactAndApproximateDisplayedOutputsAreEqual. Because displaying the
right equal symbol is less important than displaying a result, we
encapsulate the method in an exception checkpoint: if there was not
enough memory on the pool to compute the equal sign, just return
EqualSign::Approximation.
2019-08-08 17:22:03 +02:00
Léa Saviot
b4f6e37399
[apps/calcualtion] Optimize pool use
2019-08-08 17:22:03 +02:00
Léa Saviot
9380fafe9d
[apps/calculation] Fix coding typo
2019-08-08 17:22:03 +02:00
Léa Saviot
3f6d08dd35
[apps/calc] Use memmove that is safer than memcpy
...
There was a wrong memcpy used in the memoization buffer sliding
2019-08-08 17:22:03 +02:00
Léa Saviot
05678b48f6
[apps/calc] Remove whole calculation memoization in HistoryViewCell
...
It is no longer compatible with the new calculations as they no longer
have a constant size.
2019-08-08 17:22:03 +02:00
Léa Saviot
f43e73333a
[apps/calculation] Put back memoization
2019-08-08 17:22:02 +02:00
Léa Saviot
c3ee31f80e
[apps/calculation] Fix HistoryController/Store index
2019-08-08 17:22:02 +02:00
Léa Saviot
63f20a9844
[apps/function_store] Comment coding style
2019-08-08 17:22:02 +02:00
Léa Saviot
1af882ddae
[apps/calculation] Fix calculation history index
2019-08-08 17:22:02 +02:00
Léa Saviot
0f12d226ae
[apps/calculation] Put expression in scope
...
To reduce the number of expressions at a givent time on the pool
2019-08-08 17:22:02 +02:00
Léa Saviot
c7fd11e4b0
[apps/calculation] Calculation store has one big buffer for calculations
2019-08-08 17:22:02 +02:00
Léa Saviot
e15df6d60d
[apps] Removed unneeded paramater in ExpiringPointer
2019-08-08 17:22:02 +02:00
Émilie Feral
d0fb30028e
[poincare] Use '×' instead of '·' when pressing multiplication key
2019-08-08 17:22:02 +02:00
Émilie Feral
0d9629e226
[poincare] Omit multiplication when possible at beautifying
2019-08-08 17:22:02 +02:00
Émilie Feral
4dd445a60b
[poincare] When beautifying, add missing user parentheses once both
...
parent and child have been beautified (otherwise, the child might change
and in a new expression that requires parentheses)
2019-08-08 17:22:02 +02:00
Émilie Feral
d985872951
[poincare] Rational: make a method 'isInteger'
2019-08-08 17:22:02 +02:00
Émilie Feral
c08d7a4733
[poincare] Add Parentheses around conjugate expression to easen reading:
...
conj(2+i)*2 --> (conj(2+i))*2
2019-08-08 17:22:02 +02:00
Émilie Feral
5900dcae0e
[poincare] Clean the use of System parentheses from normal parentheses:
...
System parentheses are used when serializing a tree to keep the
structure information in the serialization. For example, we serialize
2+1
----- to [2+3]/3
3
User parentheses can be added after parsing or when beautifying a
reduced expression to make a mathematically correct expression or more
conventionnal expression. For example, parsing "1+-2" will give
Addition(One, Opposite(2)) that we will transform into Addition(One,
Parenthesis(Opposite(2))) (1+-2 --> 1+(-2)).
2019-08-08 17:22:02 +02:00
Émilie Feral
2ecc566c2c
[escher] TextField: when handling event with text, replace system
...
parenthesis by user parenthesis to switch from layout structure to
linear text.
When copying a layout and pasting it to a textfield, we add required
parentheses:
2+1
----- serializes to ---> [2+1]/3 and is turned to (2+1)/3 before being
3
handled by a textfield.
2019-08-08 17:22:02 +02:00