Commit Graph

5609 Commits

Author SHA1 Message Date
Émilie Feral
7f0dc24f8d [poincare] Integer: add safeguards on infinite Integer 2018-08-14 18:20:12 +02:00
Émilie Feral
503edea946 [poincare] Decimal: shallowReduce can turn into Float if we cannot
create a Rational
2018-08-14 18:17:19 +02:00
Émilie Feral
4174289d34 [poincare] Rational: shallowReduce turn them into Infinity or 0 when the
numerator or the denominator is infinity
2018-08-14 18:17:19 +02:00
Émilie Feral
5b25c0c890 [poincare] Integer, Rational, Decimal: discard premature optimizations.
Overflow on Integer, Rational, Decimal nodes have a size corresponding to
their number of digits
2018-08-14 18:17:19 +02:00
Léa Saviot
6b54f72f79 [poincare] Fix new node address computation in TreePool::moveChildren 2018-08-14 18:14:37 +02:00
Léa Saviot
22abc46f11 [poincare] Static nodes are not copied when cloned 2018-08-14 18:14:14 +02:00
Léa Saviot
06ac37cbc1 [poincare] Remove wrong asserts 2018-08-14 18:01:02 +02:00
Léa Saviot
c5a85edf8e [poincare] Remove invalid nullptr return values 2018-08-14 17:57:59 +02:00
Léa Saviot
942e1a8f25 [poincare] TreeNode::parent() should never return nullptr 2018-08-14 17:53:32 +02:00
Léa Saviot
cd43d84b1e [poincare] Fix TreeRef deletion: releaseNode shouldn't create a TreeRef 2018-08-14 17:31:47 +02:00
Léa Saviot
220e2285b1 [poincare] Fix typo 2018-08-14 16:40:51 +02:00
Léa Saviot
71c807b565 [poincare] Node->isDefined becomes !Node->isUninitialized 2018-08-14 16:40:12 +02:00
Léa Saviot
a3d09bde1c [poincare] Fix typos 2018-08-14 16:03:42 +02:00
Léa Saviot
d8732a9e2f [poincare] TreeRefs should never have the NoNode identifier 2018-08-14 15:27:25 +02:00
Léa Saviot
5d9e69dedc [poincare] Remove Tree constructors that use nullptr as parameter 2018-08-14 14:58:47 +02:00
Léa Saviot
423dfa0654 [poincare] AllocationFail and Uninitialized inherit from Exception
Implemented for expressions, layouts, and evaluations
2018-08-14 14:22:29 +02:00
Émilie Feral
67f4c3de77 [poincare] Expression: methods that should return an Expression HAVE to
be implemented on Expression and not on ExpressionNode in order to copy
the returned Expression.
2018-08-14 13:41:45 +02:00
Émilie Feral
dab9b5cd21 [poincare] Fix and add tests on Integer::Division 2018-08-14 13:21:13 +02:00
Émilie Feral
ca1bd60688 [poincare] Clean Integer constructors 2018-08-13 19:48:36 +02:00
Émilie Feral
88a3077f95 [poincare] Integer: tests on Multiplication 2018-08-13 19:48:36 +02:00
Émilie Feral
2bf0eefd92 [poincare] Integer: fix and add tests on Integer::Subtraction 2018-08-13 19:48:36 +02:00
Émilie Feral
47348b6d65 [poincare] Integer: fix and add tests on Integer::Addition 2018-08-13 19:48:36 +02:00
Léa Saviot
b49d898b89 [poincare] Some code cleaning 2018-08-13 17:58:31 +02:00
Léa Saviot
cbc26a8508 [poincare] ExceptionNode and ExceptionExpressionNode 2018-08-13 17:57:53 +02:00
Léa Saviot
fcaa32c753 [poincare] Write Simplification code of Addition 2018-08-13 17:28:39 +02:00
Léa Saviot
db4a91716f [poincare] Fix some missing copy 2018-08-13 17:28:06 +02:00
Léa Saviot
80c7cf0f82 [poincare] Expression::simpleShallowReduce 2018-08-13 17:27:01 +02:00
Émilie Feral
d64f40eb1d [poincare] Integer: test on constructors, comparison 2018-08-13 17:01:34 +02:00
Émilie Feral
256cf5203d [poincare] Fix various bugs 2018-08-13 16:54:40 +02:00
Émilie Feral
071fc1dff4 [poincare] TreeByValue: copy constructor call setTo (forgot to call
destructor before assigning)
2018-08-13 16:36:09 +02:00
Émilie Feral
c2bb07c948 [poincare] Fix size() of IntegerNode, RationalNode, DecimalNode 2018-08-13 14:57:10 +02:00
Émilie Feral
22aa86bc61 [poincare] Fix constructors of Integer, Rational and Decimal 2018-08-13 14:50:40 +02:00
Léa Saviot
4dd48139c0 [poincare] Add forgotten child retaining 2018-08-13 13:49:31 +02:00
Émilie Feral
ce64568bf4 [poincare] Integer: fix Overflow handling 2018-08-13 13:40:08 +02:00
Émilie Feral
2a4da23272 [poincare] Fix Integer constructor: avoid creating Integer without
setting the digits because at destruction the size() is wrong and
corrupt the pool
2018-08-13 13:40:08 +02:00
Léa Saviot
66c419945a [poincare] WIP Addition Test 2018-08-13 13:16:50 +02:00
Léa Saviot
3d524df8f8 [poincare] Increase TreePool::MaxNumberOfStaticNodes 2018-08-13 13:15:47 +02:00
Léa Saviot
c87c85bce0 [poincare] Update poincare/test/helper with new Expressions 2018-08-13 12:25:16 +02:00
Léa Saviot
e2dfc6f8cb [poincare] Fix problem in RationalNode::setDigits 2018-08-13 12:23:37 +02:00
Léa Saviot
37c9c34c4f [poincarê] Add an assertion 2018-08-13 12:23:16 +02:00
Léa Saviot
fe0fa95235 [poincare] Temporary commit that handles nullptr nodes in References 2018-08-13 12:22:46 +02:00
Léa Saviot
6352bbcdd9 [poincare] Fix Rational constructors to prevent malformed Rationals 2018-08-13 12:20:37 +02:00
Émilie Feral
293cce6494 [poincare] Integer: fix typo 2018-08-13 11:49:38 +02:00
Émilie Feral
c06662196f [poincare] TreePool: cannot call a virtual method on a destructed object
(fix blob tests on device)
2018-08-13 11:13:44 +02:00
Léa Saviot
d51844a5a6 [poincare] Fix Complex and Decimal constructors (did not retain nodes) 2018-08-13 10:51:38 +02:00
Romain Goyet
6d5d61cac5 [poincare] Expose "log" on TreeByValue 2018-08-13 09:04:46 +02:00
Romain Goyet
2fa52e2fef [poincare] Add a failing test on Expression 2018-08-13 09:04:03 +02:00
Romain Goyet
3ee18797db [poincare] Fix a small bug in Integer parsing 2018-08-10 21:32:53 +02:00
Romain Goyet
30a4db3e34 [poincare] Allow logging of an Expression (e.g. Integer("123").log()) 2018-08-10 21:32:27 +02:00
Romain Goyet
7998233fea [poincare] Log IntegerNode m_negative 2018-08-10 21:32:06 +02:00