Commit Graph

3064 Commits

Author SHA1 Message Date
Émilie Feral
d855ee8364 [poincare] Add a method isPositive on expressions
Change-Id: I3eb0064f8d64678326e74216517e0104eaa007fe
2017-10-06 17:06:23 +02:00
Émilie Feral
6524ab9286 [poincare] Clean Power::Simplify
Change-Id: Ic3ce764e38c6443f3918cdfb0347c6f6046df79a
2017-10-06 16:41:19 +02:00
Émilie Feral
61865fbfa0 [poincare] Improve Power::simplify
Change-Id: I4388f3580666620d490bc5e1967fe739cb7fb01b
2017-10-06 15:57:57 +02:00
Émilie Feral
ed9aae3003 [poincare] Correct Multiplication::simplify to avoid factorizing
2*2^(1/2)

Change-Id: I32d51584a372afa29a36a3e94f65b024bc9e9bc4
2017-10-06 15:55:42 +02:00
Émilie Feral
22be8032e1 [poincare] First version of Power::simplify
Change-Id: Ief654c8f57bacd84a3ee5e386548b131c1ed65d3
2017-10-06 13:53:29 +02:00
Émilie Feral
5fa0d8e089 [poincare] Fix bug in Multiplication::simplify
Change-Id: I32c3489507c92658bec2fe97ec159d9181965224
2017-10-06 13:53:29 +02:00
Émilie Feral
78b85ed0df [poincare] Add methods in rational
Change-Id: I4ed056792d3358f7c8502533c71c11dd93240fb9
2017-10-06 13:53:23 +02:00
Émilie Feral
3d717eb4af [poincare]Fix addition and multiplication simplify: delete constant in 1*A or 0+B
Change-Id: Ia46f385937e5690769cf2739820ede10cc0f24b5
2017-10-06 12:04:21 +02:00
Émilie Feral
1ede897a37 [poincare] Create a class undefined
Change-Id: I0d30b907179f38b77ed65136fddede6e16fb08e1
2017-10-06 12:03:54 +02:00
Émilie Feral
96661a53e2 [poincare] Opposite::simplify
Change-Id: I6af7c645f989e43b86a210430868e164f3f18f64
2017-10-05 18:24:35 +02:00
Émilie Feral
58cdf3e6c3 [poincare] Change name: privateSimplify->immediateSimplify
Change-Id: I08c46354c3ad8ebb5de2a152554dd7ad36a7d255
2017-10-05 18:05:01 +02:00
Émilie Feral
6533e115ec [poincare] Parenthesis simplify
Change-Id: I2ebcc1d5148eacb087be407559e5593c6ac6641e
2017-10-05 18:02:38 +02:00
Émilie Feral
e29872789c [poincare] add distribution in multiplication simplify
Change-Id: I9d159b1577f4e02ebdc24e19ff45b66a1b2eb2a3
2017-10-05 18:02:02 +02:00
Émilie Feral
d35caae854 [poincare] Fix Multiplication::simplify
Change-Id: I8c2b7a1f40a54c121c3068abb15e4a711d1aa115
2017-10-05 18:01:19 +02:00
Émilie Feral
d995226baa [poincare] Fix Addition::simplify
Change-Id: I054f01c410f289095353ae31f69d7f5d2cc2d94c
2017-10-05 17:56:26 +02:00
Émilie Feral
34ff77f1ef [poincare] First version of Multiplication::simplification
Change-Id: I8e2486bde60629ffbbd1128e6e2a52c10f6b7bab
2017-10-05 15:57:59 +02:00
Émilie Feral
d443862cca [poincare] Fix addition simplification
Change-Id: If55c28f3df6e56db88f259ee2d9ef1ea1f2de296
2017-10-05 15:57:21 +02:00
Émilie Feral
412aae7b48 [poincare] Addition simplify uses rational instead of integer
Change-Id: I92d54afc04b827a902aff17de836e4487effa968
2017-10-05 15:01:14 +02:00
Émilie Feral
b8944f5141 [poincare] Parse decimal number in rational
Change-Id: I9d2d6a244c42841d09aa82f52d18dbb91e77036b
2017-10-05 15:01:14 +02:00
Émilie Feral
40893e04c3 [poincare] Create rational class
Change-Id: I6cc8b42a473a3a7c7b96c369152c0c5eb5735de4
2017-10-05 15:01:14 +02:00
Émilie Feral
4eca9571bc [poincare] Clean useless methods
Change-Id: I6a960c2d774cc3c67dc3dafaae28386e7b5ac288
2017-10-05 15:01:14 +02:00
Émilie Feral
0e18a6ad14 [poincare] Delete method isCommutative
Change-Id: Id3a61aa4a0eb837e7a8f78ca2b1672b754a0cb4f
2017-10-05 15:01:14 +02:00
Émilie Feral
646ca4448d [poincare] Change simplification design: first version of simplify on addition
Change-Id: I54c54569068b5cce41b850dfe97ee2c980205acb
2017-10-05 15:01:07 +02:00
Émilie Feral
4a1d064f68 [poincare] Change sorting to sort like terms together
Change-Id: I3d87d1be1c5f1985980805ce4c37b7273f978c12
2017-10-04 17:16:49 +02:00
Émilie Feral
7375099f0d [poincare] Add rule a*1->a and a+0->a
Change-Id: I887a7dd877c8feb00418786640d1c9db2b1d5352
2017-10-02 17:33:07 +02:00
Émilie Feral
7f937d8be7 [poincare] Clean integer power transform
Change-Id: I3d000ab3802aa542c35ce2b5e45dcf68434f89d3
2017-10-02 17:23:21 +02:00
Émilie Feral
855b42a710 [poincare] Add a rule 1^a->1
Change-Id: I550d6639f520d82e37dc5db7234654669249eac2
2017-10-02 17:05:10 +02:00
Émilie Feral
0bc31dc4d5 [poincare] TO CHECK CARREFULLY: replaceOperand already detach the new
child from its parent

Change-Id: I2a23bfa5f658b21e240bbc16de57eb83422bd4e3
2017-10-02 16:56:37 +02:00
Émilie Feral
1ef01117bb [poincare] Avoid calling Expression::replaceOperand with nullptr
Change-Id: I7b0497f34bfd8c1107b4dd1758b32e0ac16c3dca
2017-10-02 16:23:50 +02:00
Émilie Feral
70d7011d90 [poincare] In combination, enable or disable crossings
Change-Id: Id1d4756bf633d25e26f258b08e29bb5c9425bbfa
2017-10-02 16:20:08 +02:00
Émilie Feral
8abbc66dce [poincare] Implement default acceptsLocationInCombination in selector
Change-Id: Ie77fc817f8affc4ca140ef58af755af9e212caa9
2017-10-02 16:18:47 +02:00
Émilie Feral
d4e5f60b5c [poincare] In rulegen, do not sort children of non-commutative nodes!!
Change-Id: Ibe228f400e688a17aeff4721fe6e77ab4bca1373
2017-10-02 16:12:35 +02:00
Émilie Feral
1a000540fa [poincare] Clean integer_dynamic_hierarchy_transform.cpp
Change-Id: I460fed82e82c92a8a1bba386873ee63835b24177
2017-10-02 12:30:40 +02:00
Émilie Feral
6565b7793c [poincare] Handle single child in dynamic hierarchy
Change-Id: If9968d26763e4425f232f8ab37ca1ae48cc7732b
2017-10-02 12:30:20 +02:00
Émilie Feral
1853d31827 [poincare] Fix implemenation of AnySelector
Change-Id: I8b17cf9e06a22bdcb84787a03fb9011b08dc93c4
2017-10-02 11:48:44 +02:00
Romain Goyet
d00948171a [poincare] Normalize Zero (Integer(-0) becomes Integer(0)) 2017-09-30 19:10:27 +02:00
Romain Goyet
375fcfe949 [poincare] Cleanup the OppositeTransform 2017-09-30 18:11:10 +02:00
Romain Goyet
6c312b8915 [poincare] Leaner RationalAddition transforms 2017-09-30 18:02:35 +02:00
Romain Goyet
4862a634c9 [poincare] Avoid calling Expression::replaceOperand with nullptr 2017-09-30 18:01:02 +02:00
Romain Goyet
15dd41e9a0 [poincare] Handle Expression::replaceOperand with a descendant 2017-09-30 17:59:46 +02:00
Romain Goyet
9c171525d0 [poincare] Add Expression::replaceWith and Expression::removeFromParent
Those are shorthands methods, but convenient nonetheless
2017-09-30 17:59:04 +02:00
Romain Goyet
0a10860726 [poincare] Fix Expression::hasAncestor 2017-09-30 17:58:16 +02:00
Romain Goyet
6070ee8927 [poincare] Add DynamicHierarchy::removeOperandAtIndex 2017-09-30 17:57:09 +02:00
Romain Goyet
149c88daf3 [poincare] Implement two rules using ReplaceWithTransform 2017-09-29 21:19:27 +02:00
Romain Goyet
7387e161e6 [poincare] Add ReplaceWithTransform 2017-09-29 21:18:12 +02:00
Romain Goyet
c0b67fb635 [poincare] Actually implement AnySelector 2017-09-29 21:17:12 +02:00
Romain Goyet
57fccade6a [poincare] Parse selectors with Type, identifier and value 2017-09-29 21:16:13 +02:00
Romain Goyet
1b0708d224 [poincare] Add Expression::hasAncestor 2017-09-29 21:15:44 +02:00
Romain Goyet
dbdd2744ce [poincare] Add Hierarchy::detachOperand to detach a single operand 2017-09-29 21:13:10 +02:00
Émilie Feral
9587447b19 [poincare] Improve expression_debug
Change-Id: I5816ef0972a1f6809ab22e864cc5f7daf1cdc74f
2017-09-29 17:58:02 +02:00