4747/// [field]: https://en.wikipedia.org/wiki/Field_(mathematics)
4848public protocol AlgebraicField : SignedNumeric {
4949
50+ /// Replaces a with the (approximate) quotient `a/b`.
5051 static func /= ( a: inout Self , b: Self )
5152
53+ /// The (approximate) quotient `a/b`.
5254 static func / ( a: Self , b: Self ) -> Self
5355
5456 /// The (approximate) reciprocal (multiplicative inverse) of this number,
@@ -59,11 +61,14 @@ public protocol AlgebraicField: SignedNumeric {
5961 /// (for finite fields) or approximately the same result up to a typical
6062 /// rounding error (for floating-point formats).
6163 ///
62- /// If self is zero, or if a reciprocal would overflow or underflow such
63- /// that it cannot be accurately represented, the result is nil. Note that
64- /// `.zero.reciprocal`, somewhat surprisingly, is *not* nil for `Real` or
65- /// `Complex` types, because these types have an `.infinity` value that
66- /// acts as the reciprocal of `.zero`.
64+ /// If self is zero and the type has no representation for infinity (as
65+ /// in a typical finite field implementation), or if a reciprocal would
66+ /// overflow or underflow such that it cannot be accurately represented,
67+ /// the result is nil.
68+ ///
69+ /// Note that `.zero.reciprocal`, somewhat surprisingly, is *not* nil
70+ /// for `Real` or `Complex` types, because these types have an
71+ /// `.infinity` value that acts as the reciprocal of `.zero`.
6772 var reciprocal : Self ? { get }
6873}
6974
0 commit comments