Commit Graph

7312 Commits

Author SHA1 Message Date
Émilie Feral
9871894363 [poincare] Enable to detachOperand of uncomplete expression
Change-Id: If75a8c3d432796720c83d393b66d8602494c1a5c
2017-11-17 13:34:45 +01:00
Émilie Feral
563d9f989c [poincare] add tests
Change-Id: I5afc4c7f0232bb50af2f3ffdbfe2678c8f114237
2017-11-17 13:34:45 +01:00
Émilie Feral
d91a0dfb92 [poincare] Add rule log(a*b)=log(a)+log(b) if a,b>0
Change-Id: I5912d25ad838f1e5ef9219a8d126d0b4ab0de10b
2017-11-17 13:34:45 +01:00
Émilie Feral
59ca69647e [poincare] Clean tests
Change-Id: Idf75977f3426c4235080282d9a8fba07e74b424a
2017-11-17 13:34:45 +01:00
Émilie Feral
75246e9bbd [poincare] Improve ImaginaryPart::shallowReduce
Change-Id: I6506fd11447d30da1ec56b31cbb13c385a209021
2017-11-17 13:34:44 +01:00
Émilie Feral
011eee0841 [poincare] Add tests
Change-Id: I5c534524a1929f93052ac47e03db32ac9bb86e66
2017-11-17 13:34:44 +01:00
Émilie Feral
b6a0733fea [poincare] Handle edge case in removeZeroAtTheEnd of the mantissa
Change-Id: I8e73d99037fe7f7c280730844b4ec6ebef4d3474
2017-11-17 13:34:44 +01:00
Émilie Feral
3585023b83 [poincare] Improve Conjugate::shallowReduce
Change-Id: I507f63271a60a53e8f925b61540097bbb5cf4974
2017-11-17 13:34:44 +01:00
Émilie Feral
6b7eea2146 [poincare] Fix Confidence Interval shallowReduce
Change-Id: I45f3f7ee695f1b524fef4eeca41d8d5dfa344b37
2017-11-17 13:34:44 +01:00
Émilie Feral
8289264cfa [poincare] Fix BinomialCoefficient::shallowReduce
Change-Id: Iafc84162427db910e0c208297efe9904ce768313
2017-11-17 13:34:38 +01:00
Émilie Feral
efd108b91f [poincare] Fix simplification engine and add tests
Change-Id: Ibde03afc9036baf8562c8c635874f4188e1f7f6d
2017-11-17 13:32:58 +01:00
Émilie Feral
f73c15d055 [poincare] Add matrix inverse test
Change-Id: If274e187f62dbc3cd6614aff852af94762333e34
2017-11-17 13:32:57 +01:00
Émilie Feral
7e68cbf386 [poincare] Fix bug when converting double to decimal: 0.999999999999999
exponent is -1 but it is stored with a mantissa of 1

Change-Id: I48f79a7aacc9fc69674f7d32e49d2d528f80ca16
2017-11-17 13:32:57 +01:00
Romain Goyet
024067d8a8 Python: Use MPZ 2017-11-17 12:00:35 +01:00
Léa Saviot
07bffe9069 [code] Increased memory allocated for scripts to 4096.
Change-Id: Ida0c3190e4aa21a2e373bf3d1561a97006c84e4b
2017-11-17 11:59:50 +01:00
Léa Saviot
4194165217 [apps] Fixed size_t / int comparison warnings.
Change-Id: I08bae0d687a52d708053c4279f68b42c5bb5d180
2017-11-17 11:59:50 +01:00
Léa Saviot
42e6435973 [code] Fixed Script edition cursor bugs.
The scroll is now reloaded when text is inserted or a new line is
entered. When opening a script, the cursor moves to the end of the
script.

Change-Id: I027ea80db485916fc3fc962cfa9e032ca0bbc81e
2017-11-17 11:59:50 +01:00
Léa Saviot
8668de21a1 [code] MathToolbox cleaning.
Removed some constants by computing the text to insert in the textfield from the command
with arguments. Used the TextToInsertForCommandMessage method from
toolbox_helpers.h.

Change-Id: I864ad886fb74882f476d74160e427595be27df40
2017-11-17 11:59:50 +01:00
Léa Saviot
13bf8c2d62 [code] Python toolbox.
Change-Id: I4028b05c662cae04a5ac3af5021f3438bb22dcd0
2017-11-17 11:59:50 +01:00
Léa Saviot
a19377ad5e [code] Default numbered script names (e.g. script1.py)
When the script name is empty after renaming a script, a default new name is
given. We look for the first available scriptI.py name, with 0<I<100.

Change-Id: If17f1df95c552320c0412ce652e7ae7e0cfd9cbc
2017-11-17 11:59:50 +01:00
Léa Saviot
2456c7eeba [code] Improved console command editing.
When the user scrolls the history, the draft command is not erased.
When pasting a previous command, the text is inserted at the cursor
location.

Change-Id: I1cd9645de74f34fad4ed0898203e05bd3352456a
2017-11-17 11:59:50 +01:00
Léa Saviot
0d6cb75425 [escher] Inlined TextField methods.
Change-Id: I2653bd3a97ba5c5a010f17ac3f7eb054013cd9d3
2017-11-17 11:59:50 +01:00
Léa Saviot
59d0e6dabf [code] Left/right navigation in the console history.
Change-Id: Ibbd534aa80f2f8dcb41d10e38f4abfcc7dbfd4a7
2017-11-17 11:59:50 +01:00
Léa Saviot
ce51228ca8 [escher/code] Changed Console and TitleBar margins.
Change-Id: I8ac4d84da84e0194122f34bb6259a1a7b6a1c81e
2017-11-17 11:59:50 +01:00
Léa Saviot
fbdf6379d8 [code] Script editor and Console are stacked.
Before, they appeared in modal views.

Change-Id: I42ea742370cd3cf0854965f67fc44b43db4cc309
2017-11-17 11:59:50 +01:00
Léa Saviot
eadf4a018a [escher] New handling of stack view headers in StackViewController.
A boolean in ViewController states if the ViewController wants MaximumSpace (do
not show any stack view headers), or if it does not want to add its own title to
the stack view headers. If the ViewController's title is null, it is not added
to the stack view headers.
By default, ButtonRowControllers do not want to add their title (because they
are only used for now in TabViews, where the title is already displayed in the
tab).

Change-Id: I9e4c64b845262e4d44eb03cf769950f9c9e67a3a
2017-11-17 11:59:50 +01:00
Léa Saviot
68e237702b [escher/apps] Factorization of Toolbox.
MathToolbox methods moved to its parent, Toolbox (in escher).
Node and ToolboxNode classes renamed MessageTree and ToolboxMessageTree.
They are now in escher/, not in apps/.

Change-Id: Ibb26b0e9016094cef79506a1e9fc6dfb492d7103
2017-11-17 11:59:50 +01:00
Léa Saviot
fc603df886 [code] Activate AlphaLock mode when renaming a script.
Default Alphalock mode when finishing or aborting edition.

Change-Id: I6455d5e18957c822de34271c53b64be43a5099ea
2017-11-17 11:59:50 +01:00
Léa Saviot
98f2db900c [apps] Cleaned useless functions for updating the title bar.
Change-Id: I119d1bd29aef1be4b65a9281d21400b81f801cc6
2017-11-17 11:59:50 +01:00
Léa Saviot
6ee47d6168 [code] Prevent script name extension edition.
Change-Id: I4ac8d032fd88b853670afeebaecc8d6fd5ef981d
2017-11-17 11:59:50 +01:00
Léa Saviot
95c6d9532b [escher] Fixed TextField.
A TextField delegate should process events before the TextField itself.
EditableCellTableViewController now verifies the position of the cursor to
determine if a Left or Right event should finish the TextField edition.

Change-Id: I6c8e78d6d02c7ab87e7d81770b4242a16fecde32
2017-11-17 11:59:50 +01:00
Léa Saviot
b7baec4a40 [code] Keyboard events translation, for script or command edition.
For instance, the "power" event should insert "**" in the text, not "^".
Added a universal i18n file in apps/code.

Change-Id: I5d067b0c5b86590af95aa98856522d54e42acba6
2017-11-17 11:59:50 +01:00
Léa Saviot
681be23c30 [code] Auto indentation in the script editor.
Change-Id: I7066c41fa53068e6f18a5ad226b5e72f591f02e2
2017-11-17 11:59:50 +01:00
Léa Saviot
239e702d37 [code] Navigation in the console history.
The user can copy previous commands or results, into the clipboard or in
the console prompt.

Change-Id: I280fff2d4937f4d17ab6c8907d6e5c359a322372
2017-11-17 11:59:50 +01:00
Léa Saviot
745eddfa05 [code] Added default Fibonacci script.
Change-Id: I2766fa542ee64722018486a874e9855a5976a788
2017-11-17 11:59:50 +01:00
Léa Saviot
35520fb3d4 [code] Scripts can be automatically imported when the console is opened.
Editing, renaming, deleting or changing the auto-importation of a script
triggers the reloading of the console (the history is cleared, Python
restarted and the scripts re-imported).

Change-Id: If8b933cc077ecd36cab09214b5e7a181aa3ae030
2017-11-17 11:59:50 +01:00
Léa Saviot
45aa526cd6 [code] Fixed SelectableTableView selection problem.
If adding a script fails, the selectableTableView should select the "Add
script" line.

Change-Id: I373cdfa0afcc334e4bf306b1cee4bfb817417980
2017-11-17 11:59:50 +01:00
Léa Saviot
fbb5c70339 [code] Cleaned Script and ScriptStore classes, created accordion.h
A Script object now contains its AutoImport marker, its name and its
content. The ScripStore methods have better names and the optimization
is cleaner.

Change-Id: I1b21af2d23f1c9a34f984309512b0c01b2f1c320
2017-11-17 11:59:50 +01:00
Léa Saviot
a14cfd0aea [code] Script names are displayed and can be edited.
Change-Id: I5acc468920b66673e78da130bf90a74d0c062211
2017-11-17 11:59:50 +01:00
Léa Saviot
68f368fcde [code] The user can delete scripts.
Change-Id: I1b60a4c79a58efe5213add1b1c5d60cdfe85c1e6
2017-11-17 11:59:50 +01:00
Léa Saviot
5de4b5cd67 [code] Each script has a name, stored in the accordeon buffer.
A script can now be imported in the console.
Moved all the MicroPython functions to python/port files.

Change-Id: I0a23e8cb20005719b800e81470e1c574c702c3b7
2017-11-17 11:59:50 +01:00
Léa Saviot
f3200fe2e9 [code] Program store that uses an accordeon buffer to store the
programs. The user can now add scripts.
A contextual menu displays various options when clicking on a script,
such as editing.

Change-Id: I124a17f7584b0beedb897e8499ca0a1bb6c13cbe
2017-11-17 11:59:50 +01:00
Léa Saviot
adabf95b59 [code] The interface is a list with a button at the bottom to
start the console.

Change-Id: I4a4a432db2d4cdc72e9a0ad7aa5904c1ded3c0e1
2017-11-17 11:59:50 +01:00
Léa Saviot
c57f9cf8b1 [code] The Python console compiles and executes commands entered.
It stores and displays the result in the console store.
An empty line returned at the end of the execution is deleted.

Change-Id: Ic90e02e2d91d0a0033413da0588032d9450aefd0
2017-11-17 11:59:50 +01:00
Léa Saviot
493cef0d4d [code] Python console that stores and displays commands that are
entered.

Change-Id: I0343c38b60f4bbea6dfab173e2b5f46f66b83251
2017-11-17 11:59:50 +01:00
Romain Goyet
9fa5ac0acf [python] Use the extended math functions 2017-11-17 11:59:49 +01:00
Romain Goyet
f265822792 [liba] Add extra math functions (erf erfc log2 logb tgamma rint scalb) 2017-11-17 11:59:49 +01:00
Romain Goyet
440813bdc3 [python] Switch to using doubles 2017-11-17 11:59:49 +01:00
Romain Goyet
0ca52e201f [liba] Add extra libm symbols (ldexp, fmod, trunc, atan2) 2017-11-17 11:59:49 +01:00
Romain Goyet
3adc5d9fac Use OpenBSD 4.9's libm
This version still has all the double function (and not the long-double
ones). And apart from this, it's virtually identical to the 6.0 code.
2017-11-17 11:59:49 +01:00