Skip to content

Double64 subnormals bug? #181

Open
Open
@milankl

Description

@milankl

Just stumbled across this one here

julia> a = Double64(floatmin(Float64))
2.2250738585072014e-308

julia> b = Double64(0.0,floatmin(Float64))
2.22507385850720138309023271733240406e-308

julia> Float64(a)
2.2250738585072014e-308

julia> Float64(b)
0.0

a,b are technically the same number but one has floatmin in hi one in low, the conversion to Float64 disregards the lo, which for all other Double64s makes sense because as far as I understand eps(hi) > 2lo so truncation to hi is round to nearest in those cases. With b ☝🏼 however I created a Double64 for which eps(hi) > 2lo and so it doesn't round correctly. Is there a function that recalculates hi, lo given a Double64 so that this eps-requirement holds again?

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