On Tue, Jan 9, 2018 at 10:07 PM, Jonathan Hull via swift-evolution <
[email protected]> 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
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution