Félix Raimundo
e8149909ca
Merge changes I090f8bd1,I5e91414e,I21150a58,I43c333d9,I8b55a228, ...
...
* changes:
Fix the recursiveness of simplification.
Add multiplication rules.
Fix bad assert.
make isIdenticalTo aware of commutativity.
Add is_identical_to util in tests.
Add assert in operand() for comuttaive operator.
Fix bad assert in binary operation.
Fix size allocation in expression selector.
Add a test for the recursive simplification.
Refactor the simplification tests.
2016-04-18 18:27:18 +02:00
Félix Raimundo
9d3a88e3ad
Merge "Make the simplification recursive"
2016-04-18 18:26:01 +02:00
Romain Goyet
22c1194ba3
Merge "Add an Escher demo"
2016-04-18 18:18:36 +02:00
Romain Goyet
6da0bc8c00
Merge "Merge branch 'master' of ssh://git.numworks.com:2222/CalcOS"
2016-04-18 18:18:33 +02:00
Romain Goyet
196beceb4f
Merge "Escher: Adding a GUI toolkit"
2016-04-18 18:18:23 +02:00
Romain Goyet
cc6dcbb9f2
Add an Escher demo
...
Replace app.o by escher_demo.o in the Makefile to give it a run
Change-Id: Id5e81220db149b2f43f55be81559ecd252a01991
2016-04-12 18:48:28 +02:00
Romain Goyet
9c60f0bfb9
Merge branch 'master' of ssh://git.numworks.com:2222/CalcOS
...
Change-Id: I5dca6556382400727625ff2e97cba8f382be3ca7
2016-04-12 18:48:02 +02:00
Romain Goyet
a21f201cc0
Escher: Adding a GUI toolkit
...
Change-Id: I9c78cc1afdd35968110484c3e3782c866b88c671
2016-04-12 18:47:36 +02:00
Felix Raimundo
4e7f8d81bf
Fix the recursiveness of simplification.
...
Change-Id: I090f8bd14a85ff46d6cb9807e5a1204894a5c152
2016-04-11 16:50:08 +02:00
Felix Raimundo
3f8c05ad7e
Add multiplication rules.
...
Change-Id: I5e91414e8c6ad45e0ff2d19fc7c5dc3914fa247a
2016-04-11 16:50:08 +02:00
Felix Raimundo
def625cca1
Fix bad assert.
...
Now the method cloneWithDifferentOperands can happen to integers.
Change-Id: I21150a58d137376ee74d25c1dec14efebf6d5605
2016-04-11 16:33:03 +02:00
Felix Raimundo
39d6f9b1d5
make isIdenticalTo aware of commutativity.
...
Change-Id: I43c333d9aef9fe10ad042c56996a157c04c0830a
2016-04-11 12:57:49 +02:00
Felix Raimundo
44ec987008
Add is_identical_to util in tests.
...
Change-Id: I8b55a228e1bd27e4c7b72891ff887bdc15b02fad
2016-04-11 12:47:24 +02:00
Felix Raimundo
5385f0a714
Add assert in operand() for comuttaive operator.
...
Change-Id: I677b87c3325084a82fbaae07ec4e51ea9a9cabdc
2016-04-11 12:37:24 +02:00
Felix Raimundo
f7f12f59b6
Fix bad assert in binary operation.
...
Change-Id: If3c26ea332a81ac07266d00b4639e287c85730bc
2016-04-11 12:37:24 +02:00
Felix Raimundo
94c17afc2c
Fix size allocation in expression selector.
...
Change-Id: I86fd920b463c3f304346e7c1b013563986435a2e
2016-04-11 12:37:24 +02:00
Felix Raimundo
9d4c95eeea
Add a test for the recursive simplification.
...
Note that this test will stop passing as soon as we add rules for simpficating
products of integer.
Change-Id: I4087bd92516e1dbe41da2dae77c2cdab8da5f8a5
2016-04-11 12:37:22 +02:00
Felix Raimundo
93914a21fc
Refactor the simplification tests.
...
The assert_simpfilies_to is now a util function.
Change-Id: Iac164359e7f8136434860e10d9b414b17c6b6268
2016-04-11 12:26:06 +02:00
Felix Raimundo
782abe876f
Make the simplification recursive
...
Change-Id: Ic4f99508358e158982901a7a3c7568d8502277c3
2016-04-11 12:26:05 +02:00
Felix Raimundo
2f7b1f4860
Add the cloneWithNewOperands method.
...
This allows to replace the operands of an expression with new ones.
Change-Id: I3c2d183bbdbcc43b776f7ce2a302216c52e494bd
2016-04-11 12:21:14 +02:00
Felix Raimundo
33226cc3a9
Dirty fix device build.
...
It seems that gcc generates instructions it cannot use which is weird.
The offending line was:
char input[255] = {0};
It was trying tp use __eabi_memclr for that which it did not have.
We need to find out why it generates instruction it cannot use (probably some
wrong flags somewhere).
Change-Id: I6a05280ce8876aa50e2cd6d5a112d18d266581c4
2016-04-08 18:23:18 +02:00
Felix Raimundo
ecab47b1e4
Fix bad assert.
...
Change-Id: Id9c6b9d100a978df8e25758d84f828ab31babe3d
2016-04-08 13:43:57 +02:00
Felix Raimundo
efb35e184a
Plot auto zooms.
...
Change-Id: I8c15f4265e098ff05fcddf3226409491913ae8e0
2016-04-08 13:43:57 +02:00
Felix Raimundo
8025b5d77b
Change comments style.
...
Change-Id: If25ab708d6ebb3ad8793a0635e05d345b26bc5b0
2016-04-08 13:43:55 +02:00
Félix Raimundo
a53231b513
Merge changes I6f080a4c,I676e8b80,I9d2ff286
...
* changes:
Nicer plot
Prototype of the history for user inputs.
First part for adding history to the user input.
2016-04-07 18:49:30 +02:00
Romain Goyet
639d24940a
Poincare: Remove in-class implementation
...
Since those have to be inline though, keep them in the header
Change-Id: I561abd3cdfd5acfa33099e2ccd36cf05d53a5bca
2016-04-07 18:15:09 +02:00
Romain Goyet
9141be784b
Poincare: Simplify products
...
Change-Id: Ic1c558c9b210c1e7f4fcc859118cf18f73adab68
2016-04-07 18:08:57 +02:00
Romain Goyet
e9f28c4f45
Poincare: Fix tests
...
Change-Id: Ie5f08a35dae854a16a3286a3015e9942c612948b
2016-04-07 17:53:48 +02:00
Romain Goyet
0ac978468a
Poincare: Pointer arithmetics doesn't play well with inheritance
...
Change-Id: I78cc57ca60bb703f00922f5257d53d6112a97f91
2016-04-07 17:31:05 +02:00
Felix Raimundo
f334977c6a
Nicer plot
...
Change-Id: I6f080a4c26ad8ce574661228a4d4b53632d2f870
2016-04-07 16:53:39 +02:00
Romain Goyet
b849baf0d9
Poincare: ExpressionSelector is not a POD object anymore
...
Change-Id: Ie07c4b308d06e1726d6a9ba9dc54bafe8ab57655
2016-04-07 15:57:32 +02:00
Romain Goyet
07f749ff2a
Poincare: Proper macro to enable expression debug
...
Change-Id: Ie1e880f5f80a5ce49424319a9af9d97bf10f2ef4
2016-04-07 15:51:16 +02:00
Romain Goyet
d2a010be70
Poincare: RuleGen now uses a more explicit grammar
...
Change-Id: I22ca00a7115d8c60fd0aa95ec17deec829e0a69d
Examples: Integer.a and Integer["0"]
2016-04-07 15:51:16 +02:00
Romain Goyet
1f64dfda9d
Ignore the rulegen generated files
...
Change-Id: Icbbe984dedbedf7c4b74e496fbd43279cc49b7e0
2016-04-07 15:51:16 +02:00
Romain Goyet
e41150f56d
Poincare: Removing dead code
...
Change-Id: I6d38a7f7be99e8b219f541673b6cb5815b9408d9
2016-04-07 15:51:16 +02:00
Romain Goyet
d9354ac1cc
ExpressionBuilder now has both BuildFromType and BuildFromTypeAndValue
...
Change-Id: If4a25b9b4df4097b0b3b7e92cbd49e2ac764d075
2016-04-07 15:51:16 +02:00
Romain Goyet
91505631c7
Poincare: Simplification is not a POD object either but uses constexpr
...
Change-Id: If7b6a33720eddb41b5cdf016e131bde873474043
2016-04-07 15:51:16 +02:00
Romain Goyet
c870c28e61
Poincare: ExpressionBuilder and ExpressionSelector are not PODs anymore
...
This means we cannot initialize them by using C99-style static init.
C++11 to the rescue: we're using constexpr constructor to build them
statically, without any runtime cost.
This allows us to have private member variables, and a base class.
Change-Id: I0617d196e87f946b48375f42b600eb73e366d87d
2016-04-07 15:51:16 +02:00
Romain Goyet
acef4c079e
Poincare: Add a ContiguousTree class
...
Note that this class is not being used yet.
Change-Id: Iaf58ab2e90f54df11ab81ed4ac62ab26b524b99d
2016-04-07 15:51:16 +02:00
Felix Raimundo
4e8ee1bf02
Prototype of the history for user inputs.
...
Change-Id: I676e8b80ec092891117827eda5213c6f1cfac733
2016-04-07 12:44:05 +02:00
Felix Raimundo
11a5550bfd
Fix issue in a selector.
...
Change-Id: I8079ffd7aeb4117f0edec9c292cacb56adf20a7f
2016-04-07 12:44:05 +02:00
Felix Raimundo
23aef52622
First part for adding history to the user input.
...
Change-Id: I9d2ff28641f0d3b7fe382a765ad8cc084840c2ef
2016-04-07 12:44:05 +02:00
Felix Raimundo
7a7df647f3
Fix the printing of integers.
...
Because yes, multiples of 10 would not print...
Change-Id: Id58305086d499eb091ea5612fedcc5ec6f25c415
2016-04-07 12:44:05 +02:00
Felix Raimundo
5c96e04a6a
Add tests for the simplification rules.
...
Change-Id: I086e18b2fcea5deb725872cf1254b6c2636a032a
2016-04-07 12:44:05 +02:00
Felix Raimundo
906363d4f6
Make simplifictaion able to deal with commutativity.
...
Change-Id: Ide620b0453ac54f0edbf2efa4c986f969392a701
2016-04-07 12:44:05 +02:00
Félix Raimundo
68cc944cdc
Merge "Fix the build"
2016-04-07 12:43:53 +02:00
Felix Raimundo
e584bdf4b9
Big fingers
...
Change-Id: I54b0515cb519fc395c0e24ea0809316ffec1a42f
2016-04-06 19:04:24 +02:00
Romain Goyet
344c2d1ead
Fix the build
...
Change-Id: I17bb89c51b1d4231a3cec3b91b453583e872d1b2
2016-04-06 15:20:36 +02:00
Félix Raimundo
c50125e631
Merge changes I0b5de34d,I2b67ac89,I657df96c,I9a2ed44d,I682fed31, ...
...
* changes:
Add the multip[lictaion by zero rule.
Add coment to move operator in expression match.
Add the isCommutative method to expression.
Fix untreated case in rule generation.
Fix the precedence of the operations.
Fix unitialized variables in HorizontalLayout.
Writes the simplified version of an expression.
2016-04-05 16:02:37 +02:00
Félix Raimundo
ade4dd30ed
Merge "Draw rectangles with lines."
2016-04-05 16:01:57 +02:00