Isn’t the point of standard inlineable library module to prevent the need to copy and paste code like this into every project? Currently I have a “math.swift” file I copy and paste into all of my projects, and since I occasionally update it, there exists about 15 different versions of it floating around, so I know this is not a sustainable practice.
On Mon, Jul 31, 2017 at 1:45 PM, Hooman Mehr <hoo...@mac.com> wrote: > I prefer an approach that preserves how I am used to seeing math > expressions. I use this myself: > > protocol FloatingPointMath: FloatingPoint > { > static func sqrt(_ value: Self) -> Self > > static func sin(_ value: Self) -> Self > static func cos(_ value: Self) -> Self > static func tan(_ value: Self) -> Self > static func asin(_ value: Self) -> Self > static func acos(_ value: Self) -> Self > static func atan(_ value: Self) -> Self > > > static func ln(_ value: Self) -> Self > static func log(_ value: Self, base: Self) -> Self > static func pow(_ value: Self, exponent:Self) -> Self > static func exp(_ value: Self) -> Self > } > > It does not pollute the global namespace and gives nice contextual > auto-completion. And I don’t want it in the standard library: I only add > the file when I need it. (it is not a separate module for optimization > reasons). > > On Jul 31, 2017, at 10:29 AM, Taylor Swift via swift-evolution < > swift-evolution@swift.org> wrote: > > > > On Mon, Jul 31, 2017 at 1:23 PM, Adrian Zubarev < > adrian.zuba...@devandartist.com> wrote: > >> I’m not sure how I would feel about this. To be honest I’d avoid such >> additional changes from the stdlib, because they really don’t belong there. >> Instead some `Math` module/package would be a better fit than clustering >> everything into stdlib until we end up also adding UI stuff. >> >> Furthermore, I don’t think a function would make any sense here. It >> really should be a computed property. >> >> >> > I think a standard Math module would be a good idea, but only if it > benefits from the same inlining and specialization as the standard library. > Also squareRoot() should be moved to the Math module if it is ever created. > > >> Am 31. Juli 2017 um 19:03:49, Taylor Swift via swift-evolution ( >> swift-evolution@swift.org) schrieb: >> >> How would people feel about adding a protocol >> >> protocol MathFloatingPoint:FloatingPoint >> { >> func sin() -> Self >> func cos() -> Self >> func tan() -> Self >> func asin() -> Self >> func acos() -> Self >> func atan() -> Self >> >> func ln() -> Self >> func log(base:Self) -> Self >> func pow(exponent:Self) -> Self >> func exp() -> Self >> } >> >> to the standard library? Float and Double would then be made to conform >> by default using Swift implementations instead of having to import Glibc / >> Darwin and writing the extensions, depending on platform. >> _______________________________________________ >> 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 > > >
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution