On Wed, Jan 10, 2018 at 11:27 PM, Saagar Jha <[email protected]> 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 < > [email protected]> wrote: > > 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 > > >
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
