Hi Dan, New protocols are in the making for both integers and floating point numbers.
You particular problem is addressed here: https://github.com/stephentyrone/swift/commits/floating-point-revision max > On Mar 30, 2016, at 6:36 AM, Dan Raviv via swift-evolution > <swift-evolution@swift.org> wrote: > > While FloatingPointType can be initialized from various Int type variants, it > seems to be missing an initializer from Double/Float. Similarly, there are no > initializers from FloatingPointType to Double/Float. Is this intentional? > > I've tried implementing the following: > > // https://en.wikipedia.org/wiki/Window_function#Tukey_window > <https://en.wikipedia.org/wiki/Window_function#Tukey_window> > public func tukeyWindowFunc(index: Int, N: Int) -> Double { > let L = N/8 > let indexAbs = min(index, N-1-index) > if indexAbs >= L { > return 1.0 > } > else { > let r = Double(indexAbs) / Double(L) > return 0.5*(1.0 + cos(M_PI * (r - 1.0))) > } > } > > extension Array where Element: FloatingPointType { > public func tukeyWindowArray() -> [Element] { > return (0..<count).map{self[$0] * tukeyWindowFunc($0, N: count)} > } > } > > The extension failed to compile no matter how I spun it, since Double and > FloatingPointType can't multiply each other and neither type can be cast to > the other. > > I would settle for extending just Array<Double>, but that isn't supported yet > either ;) > > Cheers, > Dan > _______________________________________________ > 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