[swift-evolution] [Proposal] Random Unification

Jens Persson jens at bitcycle.com
Wed Jan 10 16:07:42 CST 2018


On Tue, Jan 9, 2018 at 10:07 PM, Jonathan Hull via swift-evolution <
swift-evolution at swift.org> wrote:

>
> One additional question.  How do you ergonomically get a Double which
> doesn’t have a range, but also isn’t NaN?
>
>
Assuming you are ok with signed zero and infinities and "strange" bias as
result of IEEE 754:

func randomNonNanDouble<R: RandomNumberGenerator>(using generator: R) ->
Double {
    while true {
        let rndUInt64 = generator.next()
        let rndDouble = Double(bitPattern: rndUInt64)
        if rndDouble != Double.nan { return rndDouble }
    }
}

/Jens
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20180110/b8d7de41/attachment.html>


More information about the swift-evolution mailing list