diff options
Diffstat (limited to 'src/mscorlib/src/System/Single.cs')
-rw-r--r-- | src/mscorlib/src/System/Single.cs | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/mscorlib/src/System/Single.cs b/src/mscorlib/src/System/Single.cs index 6a77f086b5..481c088617 100644 --- a/src/mscorlib/src/System/Single.cs +++ b/src/mscorlib/src/System/Single.cs @@ -37,22 +37,21 @@ namespace System { public const float NegativeInfinity = (float)-1.0 / (float)0.0; public const float NaN = (float)0.0 / (float)0.0; + internal static float NegativeZero = BitConverter.Int32BitsToSingle(unchecked((int)0x80000000)); + [Pure] - [System.Security.SecuritySafeCritical] // auto-generated [System.Runtime.Versioning.NonVersionable] public unsafe static bool IsInfinity(float f) { return (*(int*)(&f) & 0x7FFFFFFF) == 0x7F800000; } [Pure] - [System.Security.SecuritySafeCritical] // auto-generated [System.Runtime.Versioning.NonVersionable] public unsafe static bool IsPositiveInfinity(float f) { return *(int*)(&f) == 0x7F800000; } [Pure] - [System.Security.SecuritySafeCritical] // auto-generated [System.Runtime.Versioning.NonVersionable] public unsafe static bool IsNegativeInfinity(float f) { return *(int*)(&f) == unchecked((int)0xFF800000); @@ -60,11 +59,15 @@ namespace System { [Pure] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] - [System.Security.SecuritySafeCritical] [System.Runtime.Versioning.NonVersionable] public unsafe static bool IsNaN(float f) { return (*(int*)(&f) & 0x7FFFFFFF) > 0x7F800000; } + + [Pure] + internal unsafe static bool IsNegative(float f) { + return (*(uint*)(&f) & 0x80000000) == 0x80000000; + } // Compares this object to another object, returning an integer that // indicates the relationship. @@ -155,7 +158,6 @@ namespace System { return IsNaN(obj) && IsNaN(m_value); } - [System.Security.SecuritySafeCritical] // auto-generated public unsafe override int GetHashCode() { float f = m_value; if (f == 0) { @@ -166,25 +168,21 @@ namespace System { return v; } - [System.Security.SecuritySafeCritical] // auto-generated public override String ToString() { Contract.Ensures(Contract.Result<String>() != null); return Number.FormatSingle(m_value, null, NumberFormatInfo.CurrentInfo); } - [System.Security.SecuritySafeCritical] // auto-generated public String ToString(IFormatProvider provider) { Contract.Ensures(Contract.Result<String>() != null); return Number.FormatSingle(m_value, null, NumberFormatInfo.GetInstance(provider)); } - [System.Security.SecuritySafeCritical] // auto-generated public String ToString(String format) { Contract.Ensures(Contract.Result<String>() != null); return Number.FormatSingle(m_value, format, NumberFormatInfo.CurrentInfo); } - [System.Security.SecuritySafeCritical] // auto-generated public String ToString(String format, IFormatProvider provider) { Contract.Ensures(Contract.Result<String>() != null); return Number.FormatSingle(m_value, format, NumberFormatInfo.GetInstance(provider)); |