I’ve seen `Base.TwicePrecision`

in Julia v0.6

How does this compare to package `DoubleDouble`

?

I’ve seen `Base.TwicePrecision`

in Julia v0.6

How does this compare to package `DoubleDouble`

?

DoubleDouble is easier to use.

`Base.TwicePrecision`

seems to be only for storage of double precision numbers, but there seem to be hardly any math operations defined for it:

```
julia> x=Base.TwicePrecision(1.0,0.0)
Base.TwicePrecision{Float64}(1.0, 0.0)
julia> x*x
ERROR: MethodError: no method matching *(::Base.TwicePrecision{Float64}, ::Base.TwicePrecision{Float64})
Closest candidates are:
*(::Any, ::Any, ::Any, ::Any...) at operators.jl:424
*(::Base.TwicePrecision, ::Integer) at twiceprecision.jl:469
*(::Base.TwicePrecision{R}, ::S<:Number) where {S<:Number, R} at twiceprecision.jl:487
...
julia> x-x
ERROR: MethodError: no method matching -(::Base.TwicePrecision{Float64}, ::Base.TwicePrecision{Float64})
Closest candidates are:
-(::Base.TwicePrecision) at twiceprecision.jl:82
```

`DoubleDouble`

provides a full-fledged double precision number type. Or aims to do so, it appears that many mathematical functions (`exp`

etc.) are not defined for it.

OK I’ll use `DoubleDouble`

.

Are there any plans for a `Float128`

?

Don’t forget `DecFP128`

. That’s a good library.

@ScottPJones might have a wrapper for some library coming up. That will be a good stop-gap in the meantime, and I’ll test the limits of it by running it through DiffEq.

In general, there’s more work to it than you’d think. It’s useless without a Libm and so we will need a Julia-based math library for Julia-based floating point numbers to really do anything. Good thing is @pkofod is doing that for GSoC. However, even then, a lot of the functions will need to specialize on `Float128`

to get the right accuracy, so that will take some time and likely new implementations.

Here’s a link to some experiments I did awhile ago using different number types in DifferentialEquations.jl and seeing what worked:

You can see that it’s highly dependent on the number having a math library that’s “complete enough”. Shout out to @JeffreySarnoff’s ArbFloats.jl as a great arbitrary precision and very complete library. It’s much faster than BigFloat.

3 Likes

Thanks Chris for your informative reply.

Nice blog/notebook too!

The code is old and needs to be updated, but I hope it’s still helpful.