Commit Graph

211 Commits

Author SHA1 Message Date
Émilie Feral
d9150d4faa [poincare] Integer: fix approximate, round instead of truncate integers
to closest float
2018-03-21 15:57:19 +01:00
Émilie Feral
97df52d0c5 [poincare] Integer: clean approximate 2018-03-21 15:57:19 +01:00
Émilie Feral
4e3692f532 [poincare] Factorize code about IEEE754 conversion 2018-03-21 15:57:19 +01:00
Émilie Feral
b1f6b31b8c [poincare] "inf" should never appear at serialization 2018-02-01 11:49:39 +01:00
Léa Saviot
55044d8e0b [poincare] Update Expression's privateCreateLayout().
We use the new layouts and no longer the old ones such as StringLayout
or BaselineRelativeLayout.

Change-Id: Ic15167b694c3adab46f348c8f823ce19b3e5ef33
2018-01-15 11:58:05 +01:00
Léa Saviot
f49168d779 [poincare] Use editable String and BaselineRelative layouts.
Change-Id: I978c4aa43772b294251b948fc20bb0d8b8b05a08
2018-01-15 11:58:01 +01:00
Émilie Feral
8c37e8a6d0 [poincare] Fix integer subtraction (overflow in carry) 2017-12-08 10:57:43 +01:00
Émilie Feral
ccf97c0e74 [poincare] Clean Integer::udiv
Change-Id: I40735d10499ea2cf3c9a9f8f327eb3fec9ebee7b
2017-12-04 17:57:24 +01:00
Émilie Feral
1edd7ac095 [poincare] Fix bug in Integer subtraction!
Change-Id: I2404d5d3b32e282c42cefb34e10d52ea44ba8931
2017-12-04 17:57:24 +01:00
Émilie Feral
d726d582c9 [poincare] Correct assert
Change-Id: I00e71eedd63e0c7d81250bedeca4813e7eaba671
2017-12-01 17:56:50 +01:00
Émilie Feral
95ce07dfc7 [poincare] In Integer::approximate, exclude special case 0 first to
avoid breaking assertions

Change-Id: I7dea2e05a485a581251b43be1814f00615f17594
2017-12-01 11:54:00 +01:00
Émilie Feral
3f0328f5b5 Add assertions for dangerous bit shift that could trigger undefined
behaviour

Change-Id: I051ed229d407eafcae1ea4b5fc745176a751e036
2017-12-01 11:53:55 +01:00
Émilie Feral
da2829b969 [poincare] Clean Integer constructor
Change-Id: I1ced5587246507d3cd813b0c23af64f3459c6d0c
2017-11-30 10:48:38 +01:00
Émilie Feral
11ab2a871f [poincare] Fix bug in casting Integer to float/double
Change-Id: Ibfc0be39dd6e90e99e226b40f4171c01f54ddae1
2017-11-30 10:35:39 +01:00
Émilie Feral
5acafb0cdb [poincare] Cap the length of integer that are printed
Change-Id: I6d5e1f1201d1354ca48fee6f84dc0400143b7347
2017-11-23 14:52:25 +01:00
Romain Goyet
52bdf4a41f Merge branch 'cas_with_app_copy' into python_console 2017-11-21 18:44:38 +01:00
Émilie Feral
8a4af478cf [poincare] Add a constructor in Integer
Change-Id: Icf84821d1b898dbe353a2ee3cda7cfbb5c0b5468
2017-11-10 18:19:15 +01:00
Émilie Feral
045c02a213 [poincare] Fix setNegative in Integer
Change-Id: I32515c23c8897a3ce1d1cd4f238340397efc3366
2017-11-10 18:16:46 +01:00
Émilie Feral
889a0d8eb4 [poincare] Change natural comparison names in Integer
Change-Id: Ifdd4ef3991e650d601a378a9742ae2371915ce77
2017-10-31 12:02:31 +01:00
Émilie Feral
ae31a78ca6 [poincare] Integer: clean names
Change-Id: Ia6926ea8a506c91b933b6ca47dd8918217733221
2017-10-31 11:33:54 +01:00
Émilie Feral
f14b2a9e42 [poincare] Implement Factorial::immediateSimplify
Change-Id: I7bd7b3fd41421ebc8536d5dca4a261435022f7a7
2017-10-26 10:01:13 +02:00
Émilie Feral
df18bc169a [poincare] Factorize code of Integer::approximate
Change-Id: Iaa24553b2ec64868836cb006906ed85aec930d5c
2017-10-25 18:19:00 +02:00
Émilie Feral
1363c3a65f [poincare] Integer class is not an expression anymore
Change-Id: Iee1037593752a3825b8b9b58f21e296aae71e2cf
2017-10-25 18:19:00 +02:00
Émilie Feral
942862dacf [poincare] Reimplement Integer::Division non recursively
Change-Id: Ifd51a787a08aa376ce73b9574987ee358a11e1df
2017-10-25 18:18:59 +02:00
Émilie Feral
80a06054bb [poincare] Implement writeTextInBuffer for all expressions
Change-Id: I3777bd893621459dc0fb7df3cf6c0f9d20ff5c7b
2017-10-25 18:18:58 +02:00
Jacob Young
17ac54cad5 Use cmath in c++ files. 2017-10-13 18:08:15 +02:00
Jacob Young
da1e66e798 Fix #115 by fixing the math.h and cmath includes. 2017-10-13 18:08:15 +02:00
Émilie Feral
2cacda6d20 [poincare] Change isPositive method by int sign()
Change-Id: I575e7a48c4d5b82c93094f772bbafd41913646cc
2017-10-10 15:56:41 +02:00
Émilie Feral
4eca9571bc [poincare] Clean useless methods
Change-Id: I6a960c2d774cc3c67dc3dafaae28386e7b5ac288
2017-10-05 15:01:14 +02:00
Émilie Feral
4a1d064f68 [poincare] Change sorting to sort like terms together
Change-Id: I3d87d1be1c5f1985980805ce4c37b7273f978c12
2017-10-04 17:16:49 +02:00
Romain Goyet
d00948171a [poincare] Normalize Zero (Integer(-0) becomes Integer(0)) 2017-09-30 19:10:27 +02:00
Émilie Feral
9549e8ae85 [poincare] add a rule: int^int-> int or int^(-1)
Change-Id: I871c2e235debaac009c9d5e252e260ec3e0fc1d5
2017-09-29 09:50:41 +02:00
Émilie Feral
db9afebc8a [poincare] In integer, create layout for negative integers also
Change-Id: Ia0347fe1891a00f0669a8c0685af73a1b09f3e15
2017-09-28 16:17:55 +02:00
Émilie Feral
b5c06fd22b [poincare] Implement Integer::Division in Z (relative integers)
Change-Id: I72ccd4afd8188b0389b1f32863ecb1af59581c04
2017-09-28 16:17:32 +02:00
Émilie Feral
83d1179993 [poincare] Implement copy constructor and copy assignment operator of
Integer

Change-Id: Iaed652f31c3336da5471727cf4c9190bec34d51e
2017-09-27 16:13:43 +02:00
Émilie Feral
372478a142 [poincare] Parse decimal number in fraction instead of complex
Change-Id: I52dd5dff950a1adf6abfe1281079f68333be5a66
2017-09-27 12:07:50 +02:00
Émilie Feral
fabe21e6ad [poincare] Fix integer identifier
Change-Id: I11a327330bb50ddd2308c856f610a758ca4d4e32
2017-09-26 18:18:55 +02:00
Émilie Feral
483a8b1028 [poincare] Add a method to set sign on Integer
Change-Id: I88094af48775ff273eee0de198726bd91b33d5fe
2017-09-26 16:07:52 +02:00
Émilie Feral
febcea6955 [poincare] In Integer, create a static method Division returning a
struct

Change-Id: I1eb84a79c69e15cd815df87fe7b56bc7327c53be
2017-09-26 16:07:52 +02:00
Émilie Feral
59a4992a7d [poincare] Repair integer create layout
Change-Id: I05d1badc6b499b4aa4a989ddb686a88163ae6abb
2017-09-26 16:07:52 +02:00
Émilie Feral
c1a65654d7 [poincare] Clean Macro in integer
Change-Id: I0e9ebe49921269b3812e9e7a1f496465e52738aa
2017-09-25 15:04:44 +02:00
Émilie Feral
0979a26685 [poincare] Change checksum to identifier
Change-Id: I9e132ea5d731f9f3092a399c0b7fd883e3c22abd
2017-09-25 14:55:30 +02:00
Émilie Feral
ceeb43cd5f [poincare] Change comparesTo + virtual nodeCompareTo -> virtual compareTo
Change-Id: Ie54b3652ad1d5845f084b4b49ca0eb96198b853a
2017-09-25 14:54:12 +02:00
Romain Goyet
b064fabad9 [poincare] Clean the Integer class
Change-Id: I010f571b521a5c45f6131040d396dc0241517728
2017-09-25 14:24:50 +02:00
Romain Goyet
34c51ed239 [poincare] Clean Expression::isCommutative 2017-09-25 14:06:45 +02:00
Émilie Feral
590f15da65 [poincare] Add implementation of type and value selector
Change-Id: I79cf70e40a3b7415bdb54123cc1b3a7e03273504
2017-09-25 10:31:57 +02:00
Émilie Feral
23629b0939 [poincare] Restructuration of poincare (no duplication of children
storage)

Change-Id: Ia10c3cc83e10d238750c6954b7c093d26b762c94
2017-09-21 13:49:06 +02:00
Émilie Feral
d3a2109b5f [poincare] Change binary_operation -> n_ary_operation and add an order
on expressions

Change-Id: Ia881728ef965eb1f7ff9449d14253ea347fdeed7
2017-09-21 11:18:03 +02:00
Émilie Feral
82e212e771 [poincare] Template for double
Change-Id: I7404bd5cefc9ef78a5dbd572c3874a557cded28e
2017-08-16 09:55:29 +02:00
Émilie Feral
1964d61fdc [libaxx] add cmath and use cmath instead of math.h when required
Change-Id: Id839b17d33c69e2e002f370e553ff35246a1bc90
2017-08-16 09:55:29 +02:00