Commit Graph

3055 Commits

Author SHA1 Message Date
É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
Émilie Feral
fe5e87fc0d [poincare] fix bug in Parenthesis
Change-Id: Id38f52db8e423a5ef0f5cff0e8151ae6d24976c8
2017-09-29 17:43:32 +02:00
Émilie Feral
71cfc5d861 [poincare] Add rule (-1256)^(1/3)->e^(iPI/3)2*157^(1/3)
Change-Id: I3fd692bef317af4d35b6e38551f81bc306d131c4
2017-09-29 17:27:09 +02:00
Émilie Feral
11d0ad31cf [poincare] Fix implementation of utility
Change-Id: If13237893a1ded53560e53cca51146befcf424bf
2017-09-29 16:34:46 +02:00
Émilie Feral
0a6ff2edb0 [poincare] When building hierarchical expression, give a parent to
children

Change-Id: Ibeadbe98dc1ecde29be3b3c5e5d1cc9537c3c38a
2017-09-29 16:33:39 +02:00
Émilie Feral
29f10251a1 [poincare] Add rule 968750^(1/3) -> 25*62^(1/3)
Change-Id: I24115a5b25ef99cf1e40752b5ac4f7da1e2c0b9e
2017-09-29 14:48:00 +02:00
Émilie Feral
ada3ed5b11 [poincare] Improve arithmetics
Change-Id: I95b03b254cceb90978d0e0848af41f647f24274a
2017-09-29 14:41:31 +02:00
Émilie Feral
695e2fd132 [poincare] In simplification, transform root(2,3) -> 2^(3^(-1))
Change-Id: Ib10ad48498213125f0a7b0587d488156361ca40c
2017-09-29 11:42:28 +02:00
Émilie Feral
ee14968466 [poincare] Simplification: implement special cases of
Int*Int^-1+Int*Int^-1 -> Int*Int^-1

Change-Id: If21238b65ee36791aa8eb4f8ce71f4d2a32b7395
2017-09-29 11:17:01 +02:00
Émilie Feral
f8b0261e2e [poincare] Fix sorting in selectors
Change-Id: I9e8909d5e4774289be163f646b4472b69b35b318
2017-09-29 11:11:31 +02:00