Not a floating point expert, but are you sure this works? I have a feeling this would lead to a distribution that’s not uniform.
Saagar Jha > On Jan 10, 2018, at 14:07, Jens Persson via swift-evolution > <swift-evolution@swift.org> wrote: > > On Tue, Jan 9, 2018 at 10:07 PM, Jonathan Hull via swift-evolution > <swift-evolution@swift.org <mailto:swift-evolution@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 > > _______________________________________________ > swift-evolution mailing list > swift-evolution@swift.org > https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution