<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">The problem with moving divided(by:) to DoubleWidth<T> is that <T> over there.<div class=""><br class=""><div class="">When `dividing(_:)` is on the FixedWidthInteger conforming type, Self is known and it is possible to implement this operation efficiently. If it moves to the DoubleWidth<T>, because T is just “something that conforms to FixedWidthInteger” in order to be efficient, it has to delegate the functionality to something in T. So there *has to* be something in FixedWidthInteger to play that role.</div><div class=""><br class=""></div><div class="">Since the dividend is not Self in case of full-wdith division, we either flip the order of arguments and make take a shape of regular division with overflow, or we make it static as it is currently defined in the proposal.</div><div class="">Argument for the `dividing(_:)` is similarity to the rest of the operations, and if you’re doing this, you likely know what you’re doing… Unfriendliness to non-native English speakers was actually my first argument against it. But along with the lack of argument label, I think it’s OK.</div><div class="">The static fullWidthDivide(_:_:) or divide(_:_:_:FullWidth) are more natural with regards to the order of arguments, but really stand out of the rest of the API. If we agree on multiplied(by:_:FullWidth), the static full-width division would be the only static method in the protocol.</div><div class=""><br class=""></div><div class="">Max</div><div class=""><div class=""><br class=""></div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jan 31, 2017, at 8:32 PM, Xiaodi Wu <<a href="mailto:xiaodi.wu@gmail.com" class="">xiaodi.wu@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><blockquote class="gmail_quote" style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;"><span class="">> With respect to `dividing` vs `divided`, IMO it'd be a tricky name,<br class="">> especially for non-English speakers. The "ed/ing" rule has these suffixes<br class="">> used pretty interchangeably to indicate a non-mutating operation, depending<br class="">> on the vagaries of the English language, but we've never had an "ed" and an<br class="">> "ing" used for completely different things on the same type, as far as I'm<br class="">> aware. Why not move the `dividing` version to DoubleWidth, where it can be<br class="">> a proper `divided(by:)`?<br class=""><br class=""></span>Max and I discussed this; I'll let him answer.</blockquote><div style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class=""></div><div style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">Awesome. Everything else is really stylistic, but I really think the linguistic quirk of `dividing` vs `divided` is suboptimal from a helping-people-write-correct-code standpoint.</div></div></blockquote></div><br class=""></div></div></div></body></html>