Commit Graph

67 Commits

Author SHA1 Message Date
devdl11
5ed8aef907 Bootloader pre-release 2022-04-25 18:22:19 +02:00
Arthur Camouseigt
1995781a9f [Poincare/IEEE754] Changed methods to use std function
Implemented std::nextafter to replace hand made one.
Methods next and previous are no longer making the difference between -0
and +0

Change-Id: I42e1a073623b70656d9df954694803840cf3088c
2020-11-04 15:30:53 +01:00
Hugo Saint-Vignes
53e204db3a [liba] Add abs function for int
Change-Id: Ic133ff2f34c7ff24ecbec69d5f31e447a72ae4fe
2020-11-04 15:11:43 +01:00
Neven Sajko
201ecaef5b Performance fixes relating to floating point: erf and erfc
erf and erfc are missing float versions, so I import them from
openlibm. erf is used from Poincare::NormalDistribution::
StandardNormalCumulativeDistributiveFunctionAtAbscissa<float>, and erfc
is used (?) just from MicroPython.

To clarify, if there is no float version of a function like erf, but
there is a double version, C++ promotes the possible float parameter to
double and soft-float hilarity ensues.
2020-04-09 13:58:56 +02:00
Neven Sajko
bdc5be94b6 Performance fixes relating to floating point
Removes unneccesary usage of soft-float double usage. The reason for the
useless double math being done were broken standard C++ functions:
atanh<float>, sqrt<float>, asinh<float>, operator/<float>. This was in
turn caused by missing float versions of C++ functions hypot, atan2,
logb, scalbn.

A logbf implementation was missing from the libm, so I added one from
openlibm.
2020-04-09 13:58:56 +02:00
Romain Goyet
02a19fc83d [liba] Add strlcat 2020-02-17 10:31:24 -05:00
Émilie Feral
059c596a80 Makefiles: avoid building all sources for each target; introduce more
modularity
2019-08-08 17:22:01 +02:00
Romain Goyet
4f1d74f44b [build] Use an out-of-tree build 2019-03-06 15:00:59 +01:00
Romain Goyet
40f499b594 Switch to libgcc entierly when using gcc as a toolchain 2018-08-24 17:44:35 +02:00
Émilie Feral
e7619633bd [liba] Add fmax in math.h header 2018-07-18 16:32:49 +02:00
Émilie Feral
2a05247629 [liba] Add hypot in math.h header 2018-07-18 16:32:49 +02:00
Émilie Feral
90a75a320b [liba] Add __aeabi_ul2d implementation 2018-01-23 10:24:52 +01:00
Léa Saviot
fe3d470d2d [liba] Fixed Gamma function bug.
There was a problem with the definition of ldexp, used in b_log__D.c

Change-Id: I83d012815e38b76efa730c1a3d259ec276e15f11
2017-11-17 14:05:23 +01:00
Romain Goyet
f265822792 [liba] Add extra math functions (erf erfc log2 logb tgamma rint scalb) 2017-11-17 11:59:49 +01:00
Romain Goyet
0ca52e201f [liba] Add extra libm symbols (ldexp, fmod, trunc, atan2) 2017-11-17 11:59:49 +01:00
Romain Goyet
3adc5d9fac Use OpenBSD 4.9's libm
This version still has all the double function (and not the long-double
ones). And apart from this, it's virtually identical to the 6.0 code.
2017-11-17 11:59:49 +01:00
Romain Goyet
b9e83231e6 [liba] Add extra math functions (frexpf, modff, truncf) 2017-11-17 11:59:49 +01:00
Romain Goyet
5a2446eff7 [liba] Proper support for function-like macros for math functions 2017-10-19 17:31:40 +02:00
Jacob Young
f2b7f92d71 Merge in upstream openbsd commit yu8HfTXRTrrv8b2W which allows isnanf, isnand, isinff, and isinfd to be deleted. 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
925f404382 [liba] Add aeabi long conversion 2017-08-31 15:17:22 +02:00
Adrien Bertrand
f34bf67bab build: fix warnings
* escher/src/text_area.cpp:113:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
* liba/src/external/openbsd/k_rem_pio2f.c:66:54: disable -Wmisleading-indentation
2017-08-30 13:01:22 +02:00
Émilie Feral
b277d86430 [liba] Add test to setjmp longjmp
Change-Id: I6951d7948d8c6a282b16007d6bef448c179f70b8
2017-08-25 11:20:49 +02:00
Émilie Feral
6b783346cc [liba] Add setjmp and longjmp
Change-Id: I3a57787199308900de8e7c6ce5961b2a26f6d38e
2017-08-25 11:20:49 +02:00
Émilie Feral
818c56bd45 [python] Enable float
Change-Id: I94111dd821fb3a9ef1e22ae5133c3a48285c52d5
2017-08-25 11:20:49 +02:00
Émilie Feral
09aaa3a19f [liba] Do not hide open bsd building warnings
Change-Id: I13b22a4997777d8e7a9e72611fb473b0489d99c5
2017-08-16 09:55:29 +02:00
Émilie Feral
3bbc3f2cb9 [liba] Fix bug in double arithmetic implementation
Change-Id: I9344e5d9c483d17b8b8ce3a652a7b8259e0f651c
2017-08-16 09:55:22 +02:00
Émilie Feral
a66c356ec0 [liba] Mute softfloat warnings
Change-Id: Ic96e05da709ad280caa54d37d398522985cb0792
2017-08-11 14:07:14 +02:00
Romain Goyet
d9975c92bb [liba] Add a test for stddef
Change-Id: I7a1dc05642a5840b491d6c439269312739388289
2017-08-04 17:56:23 +02:00
Romain Goyet
159b6f7429 [liba] Add strchr to string.h
Change-Id: I6651daa030ad6dc5e567bb78f2f22d48f07524aa
2017-08-04 17:56:23 +02:00
Romain Goyet
3ef709502e [liba] Add memcmp to strings.h
Change-Id: Ied4281e588d423e2b00dced10018a690455544d5
2017-08-04 17:56:23 +02:00
Romain Goyet
2898ec916c [liba] Add memmove to string.h
Change-Id: I99b412dc7404e2711dbf7753f0d619694dee3d19
2017-08-04 17:56:23 +02:00
Romain Goyet
c84b378b8b [liba] Add a double-precision libm
Change-Id: I3d0b5393eaaec3e01529e739535512c07f41a088
2017-08-03 14:52:20 +02:00
Romain Goyet
a1f1e2df6a [liba] isinf/isnan both work on double
Change-Id: I08e0c338e343a5357b91ed3a3f2e63db37efc983
2017-08-03 14:51:00 +02:00
Romain Goyet
42e5a45539 [liba] Rename a libm file
Change-Id: Ic0271c3a769f29fa46dd9bc1bb65e848a0f48373
2017-08-03 13:10:36 +02:00
Romain Goyet
70b9f41de9 [liba] Implement AEABI double helpers using the softfloat library
Change-Id: If329dcc55425f6e8db4b2ce26ea7d8be15c31c8d
2017-08-03 11:10:57 +02:00
Émilie Feral
3d1fc8e5d1 [liba] Correct __aeabi_llsr, __aeabi_llsl with tests
Change-Id: I710adab0ecd232f2e5bab08adbf10ef686c651c5
2017-05-23 15:15:44 +02:00
Émilie Feral
52c15de070 [liba] Implement llsl
Change-Id: I651deb9ae7b48cabaeb7e21d13ed395f133fd0c3
2017-05-22 16:35:27 +02:00
Romain Goyet
9c63201835 [liba] Remove warnings on external code
Change-Id: I801d84ce9f780ab3a91569b3d2c6c1341d1a513a
2017-04-04 16:52:56 +02:00
Romain Goyet
47a9f8258a [liba] Add 64bit right shift as specified by AEABI
Change-Id: I901c1fd6719b7dff99df7e519e158861eb948fd5
2017-03-30 17:35:34 +02:00
Émilie Feral
e13919cca7 [poincare] Use OpenBSD function for cosh, sinh, tanh and arccosh,
arcsinh and arctanh

Change-Id: I64f6718ebdd042512ce9b9db78dffa3c943471ff
2017-03-16 17:35:36 +01:00
Émilie Feral
d11fede7e3 [liba] Add openbsd implemenation of acos and asin
Change-Id: Ifc455f4e758e7c9fd936439b988bf4faf8affe4b
2017-03-16 15:12:09 +01:00
Romain Goyet
a94e8c314f Simplify the makefile configuration
Change-Id: I826916e0d0b23f7429a66dfa7001b19dcc53080a
2017-02-16 11:00:17 +01:00
Romain Goyet
ff7df4e750 Merge changes Ib331bae9,I9d5000cd,I65ab7310,Ifbe11515,I1edddefd, ...
* changes:
  Organize the build system
  [ion/device] Enable powering the LCD controller from a GPIO
  [liba] Enable malloc/free logging
  [ion] Fix the C API
  [ion] Fix the blackbox platform
  [ion] Add a C bridge for the logging function
  [ion] Implement Log::print using SWO on the device
2017-02-16 09:34:24 +01:00
Romain Goyet
babfe50763 Organize the build system
Change-Id: Ib331bae99041b998eb721b44c3b0b44426270b38
2017-02-15 19:10:23 +01:00
Émilie Feral
a07a90c182 [liba] Add openbsd implementation of arc tan
Change-Id: I48f555ea0da4cf10d3bc225c1bc4cb931c2cc8db
2017-02-13 17:15:04 +01:00
Émilie Feral
9dc82ab35b [liba] Replace the gamma extern constant file by the open bsd file
Change-Id: I11b6a6912aff05fc31a4a75c27ee5ff3bf5e2dbd
2017-01-09 15:08:54 +01:00
Émilie Feral
6e47595eaa [liba] Add expf and lgammaf to the math library
Change-Id: I8ddca97622404bf3346a3166e354bbfc88fc299f
2016-12-15 16:17:48 +01:00
Émilie Feral
9b01508fac [liba] add the method ceilf in math library
Change-Id: I339c6e51b5b89d6d18ee5dc55f069919697aea3a
2016-12-08 15:21:52 +01:00
Romain Goyet
a0ad3c76a4 [liba] Define __aeabi_atexit
Change-Id: Ibf8d2f5453d457d62989e0adcc070ae09e1c9074
2016-12-08 14:50:12 +01:00