Hi all,

A few weeks ago, Joe Groff challenged users on Twitter to create a
Rational<T> type making use of the new integer protocols implemented for
Swift 4. As it happens, I'd already started a project to try out these new
number protocols. Now that I think the most embarrassing bugs have been
squashed in that project, I thought I'd share it here in case anyone else
might find it useful.

NumericAnnex <https://github.com/xwu/NumericAnnex> is meant to supplement
the standard library's numerics facilities in Swift 4. At the moment, it
provides:

* Extensions to BinaryInteger for GCD, LCM, and exponentiation

* Protocols Math (refines SignedNumeric), Real (refines Math and
FloatingPoint), and PRNG  (refines Sequence and IteratorProtocol)

* Types Complex<T>, Rational<T>, and Random

Documentation is available at <https://xwu.github.io/NumericAnnex/>.

I'd love to hear feedback. I'll follow up shortly on Swift Evolution with
some thoughts on future improvements to integer protocols based on this
experience.
_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to