@@ -1232,6 +1232,7 @@ public enum FloatingPointSign: Int {
1232
1232
}
1233
1233
}
1234
1234
1235
+ @_transparent
1235
1236
@inlinable
1236
1237
public static func == ( a: FloatingPointSign , b: FloatingPointSign ) -> Bool {
1237
1238
return a. rawValue == b. rawValue
@@ -1721,9 +1722,11 @@ extension FloatingPoint {
1721
1722
/// - If `x` is `leastNonzeroMagnitude`, then `x.nextDown` is `0.0`.
1722
1723
/// - If `x` is zero, then `x.nextDown` is `-leastNonzeroMagnitude`.
1723
1724
/// - If `x` is `-greatestFiniteMagnitude`, then `x.nextDown` is `-infinity`.
1724
- @_transparent
1725
1725
public var nextDown : Self {
1726
- return - ( - self ) . nextUp
1726
+ @inline ( __always)
1727
+ get {
1728
+ return - ( - self ) . nextUp
1729
+ }
1727
1730
}
1728
1731
1729
1732
/// Returns the remainder of this value divided by the given value using
@@ -1757,7 +1760,7 @@ extension FloatingPoint {
1757
1760
/// - Parameter other: The value to use when dividing this value.
1758
1761
/// - Returns: The remainder of this value divided by `other` using
1759
1762
/// truncating division.
1760
- @_transparent
1763
+ @inline ( __always )
1761
1764
public func truncatingRemainder( dividingBy other: Self ) -> Self {
1762
1765
var lhs = self
1763
1766
lhs. formTruncatingRemainder ( dividingBy: other)
@@ -1796,7 +1799,7 @@ extension FloatingPoint {
1796
1799
///
1797
1800
/// - Parameter other: The value to use when dividing this value.
1798
1801
/// - Returns: The remainder of this value divided by `other`.
1799
- @_transparent
1802
+ @inline ( __always )
1800
1803
public func remainder( dividingBy other: Self ) -> Self {
1801
1804
var lhs = self
1802
1805
lhs. formRemainder ( dividingBy: other)
@@ -1871,7 +1874,7 @@ extension FloatingPoint {
1871
1874
/// - y: Another floating-point value.
1872
1875
/// - Returns: The minimum of `x` and `y`, or whichever is a number if the
1873
1876
/// other is NaN.
1874
- @inlinable // FIXME(sil-serialize-all)
1877
+ @inlinable
1875
1878
public static func minimum( _ x: Self , _ y: Self ) -> Self {
1876
1879
if x. isSignalingNaN || y. isSignalingNaN {
1877
1880
// Produce a quiet NaN matching platform arithmetic behavior.
@@ -1908,7 +1911,7 @@ extension FloatingPoint {
1908
1911
/// - y: Another floating-point value.
1909
1912
/// - Returns: The greater of `x` and `y`, or whichever is a number if the
1910
1913
/// other is NaN.
1911
- @inlinable // FIXME(sil-serialize-all)
1914
+ @inlinable
1912
1915
public static func maximum( _ x: Self , _ y: Self ) -> Self {
1913
1916
if x. isSignalingNaN || y. isSignalingNaN {
1914
1917
// Produce a quiet NaN matching platform arithmetic behavior.
@@ -1947,7 +1950,7 @@ extension FloatingPoint {
1947
1950
/// - y: Another floating-point value.
1948
1951
/// - Returns: Whichever of `x` or `y` has lesser magnitude, or whichever is
1949
1952
/// a number if the other is NaN.
1950
- @inlinable // FIXME(sil-serialize-all)
1953
+ @inlinable
1951
1954
public static func minimumMagnitude( _ x: Self , _ y: Self ) -> Self {
1952
1955
if x. isSignalingNaN || y. isSignalingNaN {
1953
1956
// Produce a quiet NaN matching platform arithmetic behavior.
@@ -1986,7 +1989,7 @@ extension FloatingPoint {
1986
1989
/// - y: Another floating-point value.
1987
1990
/// - Returns: Whichever of `x` or `y` has greater magnitude, or whichever is
1988
1991
/// a number if the other is NaN.
1989
- @inlinable // FIXME(sil-serialize-all)
1992
+ @inlinable
1990
1993
public static func maximumMagnitude( _ x: Self , _ y: Self ) -> Self {
1991
1994
if x. isSignalingNaN || y. isSignalingNaN {
1992
1995
// Produce a quiet NaN matching platform arithmetic behavior.
@@ -2002,7 +2005,7 @@ extension FloatingPoint {
2002
2005
/// described by the [IEEE 754 specification][spec].
2003
2006
///
2004
2007
/// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
2005
- @inlinable // FIXME(sil-serialize-all)
2008
+ @inlinable
2006
2009
public var floatingPointClass : FloatingPointClassification {
2007
2010
if isSignalingNaN { return . signalingNaN }
2008
2011
if isNaN { return . quietNaN }
@@ -2043,14 +2046,14 @@ extension BinaryFloatingPoint {
2043
2046
/// initializer has the same sign as `signOf`.
2044
2047
/// - magnitudeOf: A value from which to use the magnitude. The result of
2045
2048
/// the initializer has the same magnitude as `magnitudeOf`.
2046
- @inlinable // FIXME(sil-serialize-all)
2049
+ @inlinable
2047
2050
public init ( signOf: Self , magnitudeOf: Self ) {
2048
2051
self . init ( sign: signOf. sign,
2049
2052
exponentBitPattern: magnitudeOf. exponentBitPattern,
2050
2053
significandBitPattern: magnitudeOf. significandBitPattern)
2051
2054
}
2052
2055
2053
- @inlinable // FIXME(sil-serialize-all)
2056
+ @inlinable
2054
2057
public // @testable
2055
2058
static func _convert< Source : BinaryFloatingPoint > (
2056
2059
from source: Source
@@ -2192,7 +2195,7 @@ extension BinaryFloatingPoint {
2192
2195
/// with more trailing zeros in its significand bit pattern.
2193
2196
///
2194
2197
/// - Parameter value: A floating-point value to be converted.
2195
- @inlinable // FIXME(sil-serialize-all)
2198
+ @inlinable
2196
2199
public init < Source : BinaryFloatingPoint > ( _ value: Source ) {
2197
2200
self = Self . _convert ( from: value) . value
2198
2201
}
@@ -2204,7 +2207,7 @@ extension BinaryFloatingPoint {
2204
2207
/// result is `nil`.
2205
2208
///
2206
2209
/// - Parameter value: A floating-point value to be converted.
2207
- @inlinable // FIXME(sil-serialize-all)
2210
+ @inlinable
2208
2211
public init ? < Source : BinaryFloatingPoint > ( exactly value: Source ) {
2209
2212
let ( value_, exact) = Self . _convert ( from: value)
2210
2213
guard exact else { return nil }
@@ -2233,7 +2236,7 @@ extension BinaryFloatingPoint {
2233
2236
/// - Parameter other: A floating-point value to compare to this value.
2234
2237
/// - Returns: `true` if this value is ordered below or the same as `other`
2235
2238
/// in a total ordering of the floating-point type; otherwise, `false`.
2236
- @inlinable // FIXME(sil-serialize-all)
2239
+ @inlinable
2237
2240
public func isTotallyOrdered( belowOrEqualTo other: Self ) -> Bool {
2238
2241
// Quick return when possible.
2239
2242
if self < other { return true }
@@ -2324,7 +2327,7 @@ extension BinaryFloatingPoint where Self.RawSignificand : FixedWidthInteger {
2324
2327
/// with more trailing zeros in its significand bit pattern.
2325
2328
///
2326
2329
/// - Parameter value: The integer to convert to a floating-point value.
2327
- @inlinable // FIXME(sil-serialize-all)
2330
+ @inlinable
2328
2331
public init < Source : BinaryInteger > ( _ value: Source ) {
2329
2332
self = Self . _convert ( from: value) . value
2330
2333
}
@@ -2334,7 +2337,7 @@ extension BinaryFloatingPoint where Self.RawSignificand : FixedWidthInteger {
2334
2337
/// If the given integer cannot be represented exactly, the result is `nil`.
2335
2338
///
2336
2339
/// - Parameter value: The integer to convert to a floating-point value.
2337
- @inlinable // FIXME(sil-serialize-all)
2340
+ @inlinable
2338
2341
public init ? < Source : BinaryInteger > ( exactly value: Source ) {
2339
2342
let ( value_, exact) = Self . _convert ( from: value)
2340
2343
guard exact else { return nil }
0 commit comments