<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=""><br class=""><div><blockquote type="cite" class=""><div class="">On Feb 23, 2017, at 11:31 AM, David Sweeris <<a href="mailto:davesweeris@mac.com" class="">davesweeris@mac.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="content-type" content="text/html; charset=utf-8" class=""><div dir="auto" class=""><div class=""><span class=""></span></div><div class=""><meta http-equiv="content-type" content="text/html; charset=utf-8" class=""><div class=""><br class=""></div><div class="">On Feb 23, 2017, at 07:33, plx via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> wrote:<br class=""></div><blockquote type="cite" class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""></div><div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Next quibble: `Magnitude` being defined as the “absolute value” of the underlying type seems a bit nonsensical if e.g. `Number` is intended to be adoptable by complex numbers (let alone quaternions, matrices, and whatnot). What *would* a conforming complex # implementation be expected to return as e.g. `(1-i).magnitude`?</div></blockquote><div class=""><br class=""></div><div class="">sqrt(2), I believe, or as close to it as can be represented by `Magnitude`</div></div></div></div></blockquote><br class=""></div><div>…which is what I’d expect if `x.magnitude` is supposed to be `||x||` or whatnot, but the stated motivation is:</div><div><br class=""></div><div> /// The magnitude of this value.<br class=""> ///<br class=""> /// For any numeric value `x`, `x.magnitude` is the absolute value of `x`.<br class=""> /// You can use the `magnitude` property in operations that are simpler to<br class=""> /// implement in terms of unsigned values, such as printing the value of an<br class=""> /// integer, which is just printing a '-' character in front of an absolute<br class=""> /// value.<br class=""> ///<br class=""> /// let x = -200<br class=""> /// // x.magnitude == 200<br class=""><br class=""></div><div>…for which uses the norm is not really helpful (and `Magnitude` not being `Comparable` is pretty annoying if it’s intended to be a norm; it really seems only intended to work as a generic tool for writing pretty-printers).</div><br class=""></body></html>