# \[ANN\] DoubleFloats.jl

**URL:** https://discourse.julialang.org/t/ann-doublefloats-jl/12678
**Category:** Community
**Tags:** package, announcement
**Created:** [July 27, 2018, 2:41am UTC](https://discourse.julialang.org/t/ann-doublefloats-jl/12678 "2018-07-27T02:41:05Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![JeffreySarnoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jeffreysarnoff/32/1980_2.png) [@JeffreySarnoff](https://discourse.julialang.org/u/JeffreySarnoff)
#### Post date: [July 27, 2018, 2:41am UTC](https://discourse.julialang.org/t/ann-doublefloats-jl/12678/1 "2018-07-27T02:41:05Z")

</div>

[DoubleFloats.jl](https://github.com/JuliaMath/DoubleFloats.jl) is available for v0.7.  
Arithmetic and elementary functions. Expect 85 bit accuracy using `Double64`.

#### Double64 relative to BigFloat

| op | speedup |
| --- | --- |
| + | 11x |
| \* | 18x |
| \ | 7x |
| trig | 3x-6x |

- results from testing with BenchmarkTools on one machine
- BigFloat precision was set to 106 bits, for fair comparison

---

<div class="post-metadata">

### Author: ![improbable22](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/improbable22/32/5464_2.png) [@improbable22](https://discourse.julialang.org/u/improbable22)
#### Post date: [July 30, 2018, 1:13pm UTC](https://discourse.julialang.org/t/ann-doublefloats-jl/12678/2 "2018-07-30T13:13:15Z")

</div>

Is there a summary somewhere of how this compares to other options besides BigFloat?

- [GitHub - saschatimme/HigherPrecision.jl: High precision replacements for Float64](https://github.com/saschatimme/HigherPrecision.jl) Looks like that may only support 0.6 (for now?) and require compiling Julia from source.

- [https://github.com/JuliaArbTypes/ArbFloats.jl](https://github.com/JuliaArbTypes/ArbFloats.jl) There’s a 0.7 branch but it was failing.

---

<div class="post-metadata">

### Author: ![JeffreySarnoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jeffreysarnoff/32/1980_2.png) [@JeffreySarnoff](https://discourse.julialang.org/u/JeffreySarnoff)
#### Post date: [July 30, 2018, 3:53pm UTC](https://discourse.julialang.org/t/ann-doublefloats-jl/12678/3 "2018-07-30T15:53:39Z")

</div>

HigherPrecision.jl is v0.6 and its author is using DoubleFloats.jl. The 0.7 branch for ArbFloats.jl was experimental and discontinued. Wait for JuliaCon.

---

<div class="post-metadata">

### Author: ![improbable22](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/improbable22/32/5464_2.png) [@improbable22](https://discourse.julialang.org/u/improbable22)
#### Post date: [July 30, 2018, 4:40pm UTC](https://discourse.julialang.org/t/ann-doublefloats-jl/12678/4 "2018-07-30T16:40:30Z")

</div>

OK got it, thanks!

---

<div class="post-metadata">

### Author: ![JeffreySarnoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jeffreysarnoff/32/1980_2.png) [@JeffreySarnoff](https://discourse.julialang.org/u/JeffreySarnoff)
#### Post date: [August 28, 2018, 6:05pm UTC](https://discourse.julialang.org/t/ann-doublefloats-jl/12678/5 "2018-08-28T18:05:23Z")

</div>

now v1 ready, some buglets addressed and a few more features added:  
`d64"0.3"` works like `big"0.3"`, maxintfloat, div, cld, fld, rem, mod available.

---

<div class="post-metadata">

### Author: ![JeffreySarnoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jeffreysarnoff/32/1980_2.png) [@JeffreySarnoff](https://discourse.julialang.org/u/JeffreySarnoff)
#### Post date: [February 13, 2019, 12:40pm UTC](https://discourse.julialang.org/t/ann-doublefloats-jl/12678/6 "2019-02-13T12:40:50Z")

</div>

DoubleFloats v0.7 is [here](https://github.com/JuliaMath/DoubleFloats.jl) with some [docs](https://juliamath.github.io/DoubleFloats.jl/stable/).

v0.7 exports `ComplexD64` with `Double64` (and so for 32, 16 bits).

---

<div class="post-metadata">

### Author: ![John\_Gibson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/john_gibson/32/5321_2.png) [@John\_Gibson](https://discourse.julialang.org/u/John_Gibson)
#### Post date: [February 13, 2019, 1:27pm UTC](https://discourse.julialang.org/t/ann-doublefloats-jl/12678/7 "2019-02-13T13:27:15Z")

</div>

bikeshedding: Do you plan to eventually rename the types to Float128, Complex128,etc? Using “double” to mean “floating-point” has always seemed to me like a misnomer.

---

<div class="post-metadata">

### Author: ![JeffreySarnoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jeffreysarnoff/32/1980_2.png) [@JeffreySarnoff](https://discourse.julialang.org/u/JeffreySarnoff)
#### Post date: [February 13, 2019, 2:20pm UTC](https://discourse.julialang.org/t/ann-doublefloats-jl/12678/8 "2019-02-13T14:20:05Z")

</div>

The name comes from the software technology, doubling the floating point format by pairing two floats to form an extended precision value. To your point, here “double” does not mean floating-point, it means two-of.

These types are not IEEE 754 compliant so naming them Float128, Complex128 is not an option (this has been suggested, discussed by the core Julia developers and not used for that reason). Julia does expect to have a `legit` Float128 type sometime (it has an Int128 type already). One difference is that standard Float128s have a larger exponent range than do the Double64s – their exponents are the same as a Float64.

---

<div class="post-metadata">

### Author: ![John\_Gibson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/john_gibson/32/5321_2.png) [@John\_Gibson](https://discourse.julialang.org/u/John_Gibson)
#### Post date: [February 13, 2019, 2:21pm UTC](https://discourse.julialang.org/t/ann-doublefloats-jl/12678/9 "2019-02-13T14:21:05Z")

</div>

Thanks for the explanation.

---

<div class="post-metadata">

### Author: ![JeffreySarnoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jeffreysarnoff/32/1980_2.png) [@JeffreySarnoff](https://discourse.julialang.org/u/JeffreySarnoff)
#### Post date: [June 5, 2019, 6:20am UTC](https://discourse.julialang.org/t/ann-doublefloats-jl/12678/10 "2019-06-05T06:20:18Z")

</div>

[DoubleFloats.jl](https://github.com/JuliaMath/DoubleFloats.jl) v0.9.0 is released.

- Some functions run a bit faster.
- Some functions are a touch more accurate – see the [abserr and relerr chart](https://juliamath.github.io/DoubleFloats.jl/stable/characteristics/#Accuracy-1).
- More functions exist: there are [matrix operations](https://juliamath.github.io/DoubleFloats.jl/stable/linearalgebra/), and [a few special functions](https://juliamath.github.io/DoubleFloats.jl/stable/special/).
- Every issue raised has been resolved.

The [docs are here](https://juliamath.github.io/DoubleFloats.jl/stable/). Let me know if something in the docs needs more clarification.
