On Wed, Jan 10, 2018 at 11:27 PM, Saagar Jha <saa...@saagarjha.com> wrote:
> 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. > > Yes, it would not be uniform, which is exactly what I meant by the last part of: "Assuming you are ok with signed zero and infinities and "strange" bias as result of IEEE 754" Also, I think it's impossible to get a uniform distribution of all non-Nan Double values (since they include +- infinity). /Jens > 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> 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