Commit Graph

750 Commits

Author SHA1 Message Date
Émilie Feral
78e4c9066f [shared] Revert: Use Simplify instead of Reduce
To approximate an expression, it is more precise to
approximate its simplified form than its reduced form. Indeed, we want
to minimize the number of nodes in the expression before approximating.
For instance, a/b has fewer nodes than a*b^-1.
2018-12-18 09:39:43 +01:00
Émilie Feral
aa0b785f3d [shared] In models Equation, Sequence: the recorded expression does not
need to be beautified. Use Reduce instead of simplify
2018-12-17 09:41:14 +01:00
Émilie Feral
c3e7a0667a [shared] Fix StorageExpressionModel::expressionReduced: take into
account the prefered angle unit!
2018-12-17 09:41:14 +01:00
Léa Saviot
99d97ecb45 [apps] Do not recompute stop condition in for loop 2018-12-13 12:20:22 +01:00
Léa Saviot
de339c44ae [apps] Handle StorageFunction::m_color unaligned read on emscripten 2018-12-12 17:49:51 +01:00
Léa Saviot
96c6143c6e [apps] Fix graph vertical navigation
It would loop when three equal functions are defined.
2018-12-12 11:14:51 +01:00
Émilie Feral
cf92eb8506 [poincare] Discard useless argument 'replaceSymbols' from simplification
routine
2018-11-30 09:53:31 +01:00
Émilie Feral
e56cfa3f94 [shared] Fix the buffer size of curve view labels 2018-11-30 09:40:15 +01:00
Émilie Feral
e112d6cf17 [apps] Shared: revert change on ExpressionModel. The memoized expression
should be reduced.
2018-11-28 13:58:36 +01:00
Léa Saviot
f81e221f50 [apps/shared] Fix char buffer initialization (make it const) 2018-11-23 14:15:50 +01:00
Léa Saviot
d7d348deac [poincare] Fix ExpressionNode::shallowReplaceReplaceableSymbols 2018-11-23 12:04:10 +01:00
Léa Saviot
2a38e4c31d Fix comparison warning 2018-11-23 12:04:10 +01:00
Léa Saviot
53e4a290f7 [poincare] Rename Expression:parse in Parse 2018-11-23 12:04:09 +01:00
Léa Saviot
94603b2b7d [poincare] Layout::serialize is serializeForParsing or ParsedExpression
serializeForParsing serializes the layout once,
serializeParsedExpression serializes the layout, parses it and
serializes it again.
2018-11-23 12:04:09 +01:00
Émilie Feral
d600ced40d [shared] Regression and Statistics store cell use SmallFont 2018-11-23 12:04:09 +01:00
Léa Saviot
58f73dc367 [apps] Handle uninitialized expression in ExpressionCanBeSerialized 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
f5586b3d36 [apps] Clean the syntax error warning displaying 2018-11-23 12:04:09 +01:00
Léa Saviot
71c848e7df [apps] Reinit inputFormulaView text before edition 2018-11-23 12:04:08 +01:00
Léa Saviot
f6804c2d67 [apps] Use ExpressionFieldDelegateApp methods in Calculation::App
For methods textFieldDidReceiveEvent and layoutFieldDidReceiveEvent
2018-11-23 12:04:08 +01:00
Léa Saviot
48d281e44d [apps] Do not allow store expressions except in Calculation 2018-11-23 12:04:08 +01:00
Émilie Feral
e80512f362 [poincare] Context::expressionForSymbol takes a boolean notifying that
we want a copy or not
2018-11-23 12:04:08 +01:00
Émilie Feral
b44c5e6d05 [shared] Change name: StorageExpressionModel::expressionWithSymbol -->
expressionClone
2018-11-23 12:04:08 +01:00
Émilie Feral
90befab6ce [shared] Change name: StorageExpressionModel::expression --> expressionReduced 2018-11-23 12:04:08 +01:00
Léa Saviot
e3935fd9c0 [apps] Factorize closestCurveIndexVertically from Regression and Graph 2018-11-23 12:04:08 +01:00
Léa Saviot
3ccd1aabf4 [apps] Fix StorageFunctionGraphController::moveCursorVertically 2018-11-23 12:04:08 +01:00
Léa Saviot
e9974a7e7a [apps/graph] Fix vertical move on intersecting functions
When two functions are equal, there was a bug when moving the selection
up or down in the graph (the cursor would skip one function)
2018-11-23 12:04:08 +01:00
Émilie Feral
17abf68de1 [shared] StorageExpressionModel: memoize the fact that the expression is
circular to avoid lagging when approximating the model multiple times.
2018-11-23 12:04:08 +01:00
Léa Saviot
ff20cb840d [apps/poincare] Expressions are not reduced before storing in Storage 2018-11-23 12:04:07 +01:00
Léa Saviot
8088d0b57f Revert "[apps] OK icon in graphs is in the top right corner"
This reverts commit 50c0b0b8a79ce62723c13aeafe36d1afc75ce5a5.
2018-11-23 12:04:07 +01:00
Léa Saviot
ef4fae251e [apps/graph] Specific error pop ups when renaming function 2018-11-23 12:04:07 +01:00
Léa Saviot
f94dc63d16 [apps] When renaming a function, check that the name is not reserved 2018-11-23 12:04:07 +01:00
Léa Saviot
52d8192306 [apps] Changes names in ScrollableExactApproximateExpressionsView 2018-11-23 12:04:06 +01:00
Léa Saviot
0511f383d0 [apps] Add comment about variables that cannot overwrite functions 2018-11-23 12:04:06 +01:00
Léa Saviot
8b2c00d8ba [apps/poincare] Forbid variable creation with same name as existing func 2018-11-23 12:04:06 +01:00
Léa Saviot
0670057f90 [apps/graph] Destroy variable record with same name when renaming func 2018-11-23 12:04:06 +01:00
Léa Saviot
caacf63c8f Fix typo 2018-11-23 12:04:06 +01:00
Léa Saviot
c7635c5e4d [poincare] Encapsulate deepReduce in reduce 2018-11-23 12:04:06 +01:00
Léa Saviot
aea98de6ec [apps/escher] Fix "Clear" event handling in TextFieldWithExtension 2018-11-23 12:04:05 +01:00
Léa Saviot
cce6591f54 [apps] When editing an expression model, replace UnknownX with 'x' 2018-11-23 12:04:05 +01:00
Ruben Dashyan
61b1b8a09d [poincare] Add Expression::FunctionHelper class
That class is meant to contain data about named functions (e.g. sin,
tan...) in one place: their name, their number of children and a pointer to
a builder. The derived class corresponding to each such function
contains a private instance (m_functionHelper) and a getter.
The previous parser is removed, along with unecessary
constructors (used by the previous parsers).
2018-11-23 12:04:05 +01:00
Léa Saviot
7c4b7495f3 [apps/poincare] Inline some methods 2018-11-23 12:04:04 +01:00
Léa Saviot
fbe4c14d0d [apps] Prevent function defined as a store
For instance, from the Graph application, one should not be able to
defined f(x) as 3->g(x)
2018-11-23 12:04:04 +01:00
Léa Saviot
bd52162b10 Fix typo 2018-11-23 12:04:04 +01:00
Émilie Feral
8770c9010a [poincare] Create Constant inheriting from SymbolAbstrac
pi, e and i are not symbols anymore but constant
2018-11-23 12:04:04 +01:00
Léa Saviot
bea78aa3b1 [apps/escher] Invocation::Action returns a bool 2018-11-23 12:04:04 +01:00
Léa Saviot
91d6955ddf [apps] The apps displays a warning when storage is full 2018-11-23 12:04:04 +01:00
Émilie Feral
5e57a850f9 Test build: add dependencies due to global_context 2018-11-23 12:04:04 +01:00
Léa Saviot
c428a4e94b [apps] Cell heights memoized in ExprModelListCtrler, not FunctionLC 2018-11-23 12:04:04 +01:00
Léa Saviot
f259b84874 [apps/graph] Make the function list navigation faster 2018-11-23 12:04:04 +01:00