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
> <[email protected]> wrote:
>
>
>
> On Mon, Jul 31, 2017 at 1:23 PM, Adrian Zubarev
> <[email protected] <mailto:[email protected]>>
> 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
> ([email protected] <mailto:[email protected]>) 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
>> [email protected] <mailto:[email protected]>
>> https://lists.swift.org/mailman/listinfo/swift-evolution
>> <https://lists.swift.org/mailman/listinfo/swift-evolution>
>
> _______________________________________________
> 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