Skip to content

Commit

Permalink
update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
rfourquet committed Sep 26, 2018
1 parent 1bedb36 commit e65c1c7
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,25 @@
This package is a wrapper around LLVM's builtin floating-point types with 80 and 128 bits, here called `Float80` and `Float128`.

This is very experimental:
+ I heard that support for `Float80` exists mainly only on x86;
+ I heard that support for `Float80` exists mainly only on x86 CPUs;
+ LLVM support for `Float128` operations (e.g. `log`, `cos`, etc.) is bad on my machine, except for
the most simple arithmetic, so conversion to/from `BigFloat` is done before/after computation;
+ conversions to/from other types is mostly done without consideration for rounding modes;
+ there can be unexpected segfaults;
+ there can be unexpected segfaults (which I don't understand);
+ this is tested only on Linux; some tests pass on MacOS, but I don't have a machine at hand
to check what doesn't work;
+ this uses the [BitIntegers.jl](https://github.com/rfourquet/BitIntegers.jl) package,
so the problem of slow REPL experience after `using BitFloats` carries over here;
+ arrays of `Float80` are prone to segfaults.

An issue is open for last two items in the Julia repository, which will hopefully be fixed eventually.
An issue is open for last two items in the Julia repository, so these will hopefully be fixed eventually.
It would be desirable to use a proper library for handling `Float128` computations, but I had no luck
with libquadmath for example, results were simply incorrect.

I'm way out of my areas of expertise, both in terms of "talking with LLVM",
and in terms of floating-point tricks, so there are bugs along those two dimensions.
This package is just a starting point, and will need other contributors to become reliable;
or maybe to be included in `Base` (at least for `Float128`), as some discussions already
happened on this topic.
This package is currently just a starting point, and will need other contributors to stand a chance
of becoming reliable.

Note also that there has already been some discussions regarding including a `Float128` type in `Base`,
for example [here](https://github.com/JuliaLang/julia/issues/757).

0 comments on commit e65c1c7

Please sign in to comment.