Skip to content

Double128 using Quadmath's Float128 #115

@lrnv

Description

@lrnv

Hey,

I am trying to implement some equivalent of Double64, but based on Float128 from Quadmath.jl.

After a discourse talk there, I come to you for guidance.

After some more reading of your code, it seems like copying the Double64 methods and constructors to match the same construct but on Float128 instead of Float64 should be enough. Am i missing something ?

Since you already depend on Quadmath, there is no need for additional dependency.

Looking forward to read your oppinon about this.

Edit: While browsing your code, i do add questions / notes here

  • It seems that Float128 <: Base.IEEEFloat is false. Will that be a big issue ?
  • But Float128 <: AbstractFloat is true.
  • What are the conditions that Float128 need to meet to be a FloatWithFMA ?
  • The constants in src/doubletriple/double_consts.jl and src/doubletriple/triple_consts.jl should not be a problem.
  • src/doubletriple/triple_pi.jl seems more problematic to port.
  • All the scr/type folder seems quite easy to port, since behaviors are quite general, assuming that we can make Float 128 <: IEEEFloat
  • All the src/math/prearith folder seems given, again if Float 128 <: IEEEFloat
  • I'll stop my reading htere for today.

All over, it seems like, as the quadmath.jl readme says, "[Quadmath.jl] is a Julia interface to libquadmath, providing a Float128 type corresponding to the IEEE754 binary128 floating point format.". Hence adding it to the IEEEFloat Union, or some other union that we create to not interfere with base, should work.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions