Modulo operation in Swift?

Why is % not available for floating point numbers?

···

On Nov 9, 2017, at 04:51 , Martin R via swift-users <swift-users@swift.org> wrote:

There was a discussion in swift-evolution, starting at

[swift-evolution] [Pitch] 'Double modulo' operator

about adding a "true modulo" operator to the standard library. There were different opinions whether

- such a thing needs to be in the standard library at all, and if yes:
- if it should be an operator or function,
- how it should be named.

As far as I know, nothing happened until now. The above posting contains a possible (Swift 3) implementation. In Swift 4 that would be

   infix operator %%: MultiplicationPrecedence

   func %%<T: BinaryInteger>(lhs: T, rhs: T) -> T {
       return (lhs % rhs + rhs) % rhs
   }

I would probably do (as an operator or as a function)

   func %%<T: BinaryInteger>(lhs: T, rhs: T) -> T {
       let rem = lhs % rhs // -rhs <= rem <= rhs
       return rem >= 0 ? rem : rem + rhs
   }

with one division instead of two.

Regards, Martin

Am 09.11.2017 um 12:43 schrieb Jens Persson via swift-users <swift-users@swift.org>:

Hi all!
Is there a modulo operation/function in Swift? I want the "true" mathematical modulo (as % in Python), and not remainder (as % in Swift).

Do I have to implement this basic mathematical function myself and if so what is the best way to write it (it will be heavily used so I want it to be as fast as possible)?

/Jens
_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

--
Rick Mann
rmann@latencyzero.com