31 instantiations of BFloat16
System.Private.CoreLib (31)
src\libraries\System.Private.CoreLib\src\System\BitConverter.cs (2)
953internal static BFloat16 Int16BitsToBFloat16(short value) => new BFloat16((ushort)(value)); 1011internal static BFloat16 UInt16BitsToBFloat16(ushort value) => new BFloat16(value);
src\libraries\System.Private.CoreLib\src\System\Numerics\BFloat16.cs (29)
86public static BFloat16 Epsilon => new BFloat16(EpsilonBits); 88public static BFloat16 PositiveInfinity => new BFloat16(PositiveInfinityBits); 90public static BFloat16 NegativeInfinity => new BFloat16(NegativeInfinityBits); 92public static BFloat16 NaN => new BFloat16(NegativeQNaNBits); 95public static BFloat16 MinValue => new BFloat16(MinValueBits); 98public static BFloat16 MaxValue => new BFloat16(MaxValueBits); 509return new BFloat16((ushort)bitValue); 556return new BFloat16((ushort)(roundedValueBits >> 16)); 598return new BFloat16((ushort)(!float.IsNaN(value) ? roundedBits : (bits >> 16))); 617return new BFloat16((ushort)(roundedValueBits >> 16)); 861static BFloat16 IAdditiveIdentity<BFloat16, BFloat16>.AdditiveIdentity => new BFloat16(PositiveZeroBits); 868static BFloat16 IBinaryNumber<BFloat16>.AllBitsSet => new BFloat16(0xFFFF); 909return new BFloat16((ushort)(left._value & right._value)); 915return new BFloat16((ushort)(left._value | right._value)); 921return new BFloat16((ushort)(left._value ^ right._value)); 927return new BFloat16((ushort)(~value._value)); 1079public static BFloat16 E => new BFloat16(EBits); 1082public static BFloat16 Pi => new BFloat16(PiBits); 1085public static BFloat16 Tau => new BFloat16(TauBits); 1092public static BFloat16 NegativeZero => new BFloat16(NegativeZeroBits); 1130return new BFloat16((ushort)bits); 1163return new BFloat16((ushort)bits); 1283public static BFloat16 MultiplicativeIdentity => new BFloat16(PositiveOneBits); 1309return new BFloat16((ushort)((xbits & ~SignMask) | (ybits & SignMask))); 1387public static BFloat16 One => new BFloat16(PositiveOneBits); 1393public static BFloat16 Zero => new BFloat16(PositiveZeroBits); 1396public static BFloat16 Abs(BFloat16 value) => new BFloat16((ushort)(value._value & ~SignMask)); 1979public static BFloat16 NegativeOne => new BFloat16(NegativeOneBits); 2148static BFloat16 IBinaryFloatParseAndFormatInfo<BFloat16>.BitsToFloat(ulong bits) => new BFloat16((ushort)(bits));
633 references to BFloat16
System.Private.CoreLib (591)
src\libraries\System.Private.CoreLib\src\System\BitConverter.cs (4)
951internal static short BFloat16BitsToInt16(BFloat16 value) => (short)value._value; 953internal static BFloat16 Int16BitsToBFloat16(short value) => new BFloat16((ushort)(value)); 1009internal static ushort BFloat16BitsToUInt16(BFloat16 value) => value._value; 1011internal static BFloat16 UInt16BitsToBFloat16(ushort value) => new BFloat16(value);
src\libraries\System.Private.CoreLib\src\System\Numerics\BFloat16.cs (587)
20IComparable<BFloat16>, 21IEquatable<BFloat16>, 22IBinaryFloatingPointIeee754<BFloat16>, 23IMinMaxValue<BFloat16>, 25IBinaryFloatParseAndFormatInfo<BFloat16> 86public static BFloat16 Epsilon => new BFloat16(EpsilonBits); 88public static BFloat16 PositiveInfinity => new BFloat16(PositiveInfinityBits); 90public static BFloat16 NegativeInfinity => new BFloat16(NegativeInfinityBits); 92public static BFloat16 NaN => new BFloat16(NegativeQNaNBits); 95public static BFloat16 MinValue => new BFloat16(MinValueBits); 98public static BFloat16 MaxValue => new BFloat16(MaxValueBits); 153public static bool IsFinite(BFloat16 value) 161public static bool IsInfinity(BFloat16 value) 169public static bool IsNaN(BFloat16 value) 176internal static bool IsNaNOrZero(BFloat16 value) 184public static bool IsNegative(BFloat16 value) 191public static bool IsNegativeInfinity(BFloat16 value) 199public static bool IsNormal(BFloat16 value) 207public static bool IsPositiveInfinity(BFloat16 value) 215public static bool IsSubnormal(BFloat16 value) 222public static bool IsZero(BFloat16 value) 229/// Parses a <see cref="BFloat16"/> from a <see cref="string"/> in the default parse style. 232/// <returns>The equivalent <see cref="BFloat16"/> value representing the input string. If the input exceeds BFloat16's range, a <see cref="PositiveInfinity"/> or <see cref="NegativeInfinity"/> is returned. </returns> 233public static BFloat16 Parse(string s) => Parse(s, DefaultParseStyle, provider: null); 236/// Parses a <see cref="BFloat16"/> from a <see cref="string"/> in the given <see cref="NumberStyles"/>. 240/// <returns>The equivalent <see cref="BFloat16"/> value representing the input string. If the input exceeds BFloat16's range, a <see cref="PositiveInfinity"/> or <see cref="NegativeInfinity"/> is returned. </returns> 241public static BFloat16 Parse(string s, NumberStyles style) => Parse(s, style, provider: null); 244/// Parses a <see cref="BFloat16"/> from a <see cref="string"/> and <see cref="IFormatProvider"/>. 248/// <returns>The equivalent <see cref="BFloat16"/> value representing the input string. If the input exceeds BFloat16's range, a <see cref="PositiveInfinity"/> or <see cref="NegativeInfinity"/> is returned. </returns> 249public static BFloat16 Parse(string s, IFormatProvider? provider) => Parse(s, DefaultParseStyle, provider); 252/// Parses a <see cref="BFloat16"/> from a <see cref="string"/> with the given <see cref="NumberStyles"/> and <see cref="IFormatProvider"/>. 257/// <returns>The equivalent <see cref="BFloat16"/> value representing the input string. If the input exceeds BFloat16's range, a <see cref="PositiveInfinity"/> or <see cref="NegativeInfinity"/> is returned. </returns> 258public static BFloat16 Parse(string s, NumberStyles style = DefaultParseStyle, IFormatProvider? provider = null) 268/// Parses a <see cref="BFloat16"/> from a <see cref="ReadOnlySpan{Char}"/> and <see cref="IFormatProvider"/>. 273/// <returns>The equivalent <see cref="BFloat16"/> value representing the input string. If the input exceeds BFloat16's range, a <see cref="PositiveInfinity"/> or <see cref="NegativeInfinity"/> is returned. </returns> 274public static BFloat16 Parse(ReadOnlySpan<char> s, NumberStyles style = DefaultParseStyle, IFormatProvider? provider = null) 277return Number.ParseFloat<char, BFloat16>(s, style, NumberFormatInfo.GetInstance(provider)); 281/// Tries to parse a <see cref="BFloat16"/> from a <see cref="string"/> in the default parse style. 284/// <param name="result">The equivalent <see cref="BFloat16"/> value representing the input string if the parse was successful. If the input exceeds BFloat16's range, a <see cref="PositiveInfinity"/> or <see cref="NegativeInfinity"/> is returned. If the parse was unsuccessful, a default <see cref="BFloat16"/> value is returned.</param> 286public static bool TryParse([NotNullWhen(true)] string? s, out BFloat16 result) => TryParse(s, DefaultParseStyle, provider: null, out result); 289/// Tries to parse a <see cref="BFloat16"/> from a <see cref="ReadOnlySpan{Char}"/> in the default parse style. 292/// <param name="result">The equivalent <see cref="BFloat16"/> value representing the input string if the parse was successful. If the input exceeds BFloat16's range, a <see cref="PositiveInfinity"/> or <see cref="NegativeInfinity"/> is returned. If the parse was unsuccessful, a default <see cref="BFloat16"/> value is returned.</param> 294public static bool TryParse(ReadOnlySpan<char> s, out BFloat16 result) => TryParse(s, DefaultParseStyle, provider: null, out result); 296/// <summary>Tries to convert a UTF-8 character span containing the string representation of a number to its <see cref="BFloat16"/> number equivalent.</summary> 298/// <param name="result">When this method returns, contains a <see cref="BFloat16"/> number equivalent of the numeric value or symbol contained in <paramref name="utf8Text" /> if the conversion succeeded or zero if the conversion failed. The conversion fails if the <paramref name="utf8Text" /> is <see cref="ReadOnlySpan{T}.Empty" /> or is not in a valid format. This parameter is passed uninitialized; any value originally supplied in result will be overwritten.</param> 300public static bool TryParse(ReadOnlySpan<byte> utf8Text, out BFloat16 result) => TryParse(utf8Text, DefaultParseStyle, provider: null, out result); 303/// Tries to parse a <see cref="BFloat16"/> from a <see cref="string"/> with the given <see cref="NumberStyles"/> and <see cref="IFormatProvider"/>. 308/// <param name="result">The equivalent <see cref="BFloat16"/> value representing the input string if the parse was successful. If the input exceeds BFloat16's range, a <see cref="PositiveInfinity"/> or <see cref="NegativeInfinity"/> is returned. If the parse was unsuccessful, a default <see cref="BFloat16"/> value is returned.</param> 310public static bool TryParse([NotNullWhen(true)] string? s, NumberStyles style, IFormatProvider? provider, out BFloat16 result) 323/// Tries to parse a <see cref="BFloat16"/> from a <see cref="ReadOnlySpan{Char}"/> with the given <see cref="NumberStyles"/> and <see cref="IFormatProvider"/>. 328/// <param name="result">The equivalent <see cref="BFloat16"/> value representing the input string if the parse was successful. If the input exceeds BFloat16's range, a <see cref="PositiveInfinity"/> or <see cref="NegativeInfinity"/> is returned. If the parse was unsuccessful, a default <see cref="BFloat16"/> value is returned.</param> 330public static bool TryParse(ReadOnlySpan<char> s, NumberStyles style, IFormatProvider? provider, out BFloat16 result) 342/// <exception cref="ArgumentException">Thrown when <paramref name="obj"/> is not of type <see cref="BFloat16"/>.</exception> 345if (obj is not BFloat16 other) 356public int CompareTo(BFloat16 other) => ((float)this).CompareTo((float)other); 359public static bool operator ==(BFloat16 left, BFloat16 right) => (float)left == (float)right; 362public static bool operator !=(BFloat16 left, BFloat16 right) => (float)left != (float)right; 365public static bool operator <(BFloat16 left, BFloat16 right) => (float)left < (float)right; 368public static bool operator >(BFloat16 left, BFloat16 right) => (float)left > (float)right; 371public static bool operator <=(BFloat16 left, BFloat16 right) => (float)left <= (float)right; 374public static bool operator >=(BFloat16 left, BFloat16 right) => (float)left >= (float)right; 381public bool Equals(BFloat16 other) => ((float)this).Equals((float)other); 386public override bool Equals(object? obj) => obj is BFloat16 other && Equals(other); 445/// <summary>Explicitly converts a <see cref="char" /> value to its nearest representable <see cref="BFloat16"/> value.</summary> 447/// <returns><paramref name="value" /> converted to its nearest representable <see cref="BFloat16"/> value.</returns> 448public static explicit operator BFloat16(char value) => (BFloat16)(float)value; 450/// <summary>Explicitly converts a <see cref="decimal" /> value to its nearest representable <see cref="BFloat16"/> value.</summary> 452/// <returns><paramref name="value" /> converted to its nearest representable <see cref="BFloat16"/> value.</returns> 453public static explicit operator BFloat16(decimal value) => (BFloat16)(float)value; 455/// <summary>Explicitly converts a <see cref="double" /> value to its nearest representable <see cref="BFloat16"/> value.</summary> 457/// <returns><paramref name="value" /> converted to its nearest representable <see cref="BFloat16"/> value.</returns> 458public static explicit operator BFloat16(double value) 537private static unsafe BFloat16 RoundFromSigned<TInteger>(TInteger value) 559/// <summary>Explicitly converts a <see cref="short" /> value to its nearest representable <see cref="BFloat16"/> value.</summary> 561/// <returns><paramref name="value" /> converted to its nearest representable <see cref="BFloat16"/> value.</returns> 562public static explicit operator BFloat16(short value) => (BFloat16)(float)value; 564/// <summary>Explicitly converts a <see cref="Half" /> value to its nearest representable <see cref="BFloat16"/> value.</summary> 566/// <returns><paramref name="value" /> converted to its nearest representable <see cref="BFloat16"/> value.</returns> 567public static explicit operator BFloat16(Half value) => (BFloat16)(float)value; 569/// <summary>Explicitly converts a <see cref="int" /> value to its nearest representable <see cref="BFloat16"/> value.</summary> 571/// <returns><paramref name="value" /> converted to its nearest representable <see cref="BFloat16"/> value.</returns> 572public static explicit operator BFloat16(int value) => RoundFromSigned(value); 574/// <summary>Explicitly converts a <see cref="long" /> value to its nearest representable <see cref="BFloat16"/> value.</summary> 576/// <returns><paramref name="value" /> converted to its nearest representable <see cref="BFloat16"/> value.</returns> 577public static explicit operator BFloat16(long value) => RoundFromSigned(value); 579/// <summary>Explicitly converts a <see cref="Int128" /> value to its nearest representable <see cref="BFloat16"/> value.</summary> 581/// <returns><paramref name="value" /> converted to its nearest representable <see cref="BFloat16"/> value.</returns> 582public static explicit operator BFloat16(Int128 value) => RoundFromSigned(value); 584/// <summary>Explicitly converts a <see cref="nint" /> value to its nearest representable <see cref="BFloat16"/> value.</summary> 586/// <returns><paramref name="value" /> converted to its nearest representable <see cref="BFloat16"/> value.</returns> 587public static explicit operator BFloat16(nint value) => RoundFromSigned(value); 589/// <summary>Explicitly converts a <see cref="float" /> value to its nearest representable <see cref="BFloat16"/> value.</summary> 591/// <returns><paramref name="value" /> converted to its nearest representable <see cref="BFloat16"/> value.</returns> 592public static explicit operator BFloat16(float value) 601private static unsafe BFloat16 RoundFromUnsigned<TInteger>(TInteger value) 620/// <summary>Explicitly converts a <see cref="ushort" /> value to its nearest representable <see cref="BFloat16"/> value.</summary> 622/// <returns><paramref name="value" /> converted to its nearest representable <see cref="BFloat16"/> value.</returns> 624public static explicit operator BFloat16(ushort value) => (BFloat16)(float)value; 626/// <summary>Explicitly converts a <see cref="uint" /> value to its nearest representable <see cref="BFloat16"/> value.</summary> 628/// <returns><paramref name="value" /> converted to its nearest representable <see cref="BFloat16"/> value.</returns> 630public static explicit operator BFloat16(uint value) => RoundFromUnsigned(value); 632/// <summary>Explicitly converts a <see cref="ulong" /> value to its nearest representable <see cref="BFloat16"/> value.</summary> 634/// <returns><paramref name="value" /> converted to its nearest representable <see cref="BFloat16"/> value.</returns> 636public static explicit operator BFloat16(ulong value) => RoundFromUnsigned(value); 638/// <summary>Explicitly converts a <see cref="nuint" /> value to its nearest representable <see cref="BFloat16"/> value.</summary> 640/// <returns><paramref name="value" /> converted to its nearest representable <see cref="BFloat16"/> value.</returns> 642public static explicit operator BFloat16(nuint value) => RoundFromUnsigned(value); 644/// <summary>Explicitly converts a <see cref="UInt128" /> value to its nearest representable <see cref="BFloat16"/> value.</summary> 646/// <returns><paramref name="value" /> converted to its nearest representable <see cref="BFloat16"/> value.</returns> 648public static explicit operator BFloat16(UInt128 value) => RoundFromUnsigned(value); 654/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="byte" /> value.</summary> 657public static explicit operator byte(BFloat16 value) => (byte)(float)value; 659/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="byte" /> value, throwing an overflow exception for any values that fall outside the representable range.</summary> 663public static explicit operator checked byte(BFloat16 value) => checked((byte)(float)value); 665/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="char" /> value.</summary> 668public static explicit operator char(BFloat16 value) => (char)(float)value; 670/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="char" /> value, throwing an overflow exception for any values that fall outside the representable range.</summary> 674public static explicit operator checked char(BFloat16 value) => checked((char)(float)value); 676/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="decimal" /> value.</summary> 679public static explicit operator decimal(BFloat16 value) => (decimal)(float)value; 681/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="short" /> value.</summary> 684public static explicit operator short(BFloat16 value) => (short)(float)value; 686/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="short" /> value, throwing an overflow exception for any values that fall outside the representable range.</summary> 690public static explicit operator checked short(BFloat16 value) => checked((short)(float)value); 692/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="int" /> value.</summary> 695public static explicit operator int(BFloat16 value) => (int)(float)value; 697/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="int" /> value, throwing an overflow exception for any values that fall outside the representable range.</summary> 701public static explicit operator checked int(BFloat16 value) => checked((int)(float)value); 703/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="long" /> value.</summary> 706public static explicit operator long(BFloat16 value) => (long)(float)value; 708/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="long" /> value, throwing an overflow exception for any values that fall outside the representable range.</summary> 712public static explicit operator checked long(BFloat16 value) => checked((long)(float)value); 714/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="Int128"/>.</summary> 717public static explicit operator Int128(BFloat16 value) => (Int128)(double)(value); 719/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="Int128"/>, throwing an overflow exception for any values that fall outside the representable range.</summary> 723public static explicit operator checked Int128(BFloat16 value) => checked((Int128)(double)(value)); 725/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="IntPtr" /> value.</summary> 728public static explicit operator nint(BFloat16 value) => (nint)(float)value; 730/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="IntPtr" /> value, throwing an overflow exception for any values that fall outside the representable range.</summary> 734public static explicit operator checked nint(BFloat16 value) => checked((nint)(float)value); 736/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="sbyte" /> value.</summary> 740public static explicit operator sbyte(BFloat16 value) => (sbyte)(float)value; 742/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="sbyte" /> value, throwing an overflow exception for any values that fall outside the representable range.</summary> 747public static explicit operator checked sbyte(BFloat16 value) => checked((sbyte)(float)value); 749/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="ushort" /> value.</summary> 753public static explicit operator ushort(BFloat16 value) => (ushort)(float)value; 755/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="ushort" /> value, throwing an overflow exception for any values that fall outside the representable range.</summary> 760public static explicit operator checked ushort(BFloat16 value) => checked((ushort)(float)value); 762/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="uint" /> value.</summary> 766public static explicit operator uint(BFloat16 value) => (uint)(float)value; 768/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="uint" /> value, throwing an overflow exception for any values that fall outside the representable range.</summary> 773public static explicit operator checked uint(BFloat16 value) => checked((uint)(float)value); 775/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="ulong" /> value.</summary> 779public static explicit operator ulong(BFloat16 value) => (ulong)(float)value; 781/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="ulong" /> value, throwing an overflow exception for any values that fall outside the representable range.</summary> 786public static explicit operator checked ulong(BFloat16 value) => checked((ulong)(float)value); 788/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="UInt128"/>.</summary> 792public static explicit operator UInt128(BFloat16 value) => (UInt128)(double)(value); 794/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="UInt128"/>, throwing an overflow exception for any values that fall outside the representable range.</summary> 799public static explicit operator checked UInt128(BFloat16 value) => checked((UInt128)(double)(value)); 801/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="UIntPtr" /> value.</summary> 805public static explicit operator nuint(BFloat16 value) => (nuint)(float)value; 807/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="UIntPtr" /> value, throwing an overflow exception for any values that fall outside the representable range.</summary> 812public static explicit operator checked nuint(BFloat16 value) => checked((nuint)(float)value); 814/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="Half" /> value.</summary> 817public static explicit operator Half(BFloat16 value) => (Half)(float)value; 823/// <summary>Implicitly converts a <see cref="byte" /> value to its nearest representable <see cref="BFloat16" /> value.</summary> 825/// <returns><paramref name="value" /> converted to its nearest representable <see cref="BFloat16" /> value.</returns> 826public static implicit operator BFloat16(byte value) => (BFloat16)(float)value; 828/// <summary>Implicitly converts a <see cref="sbyte" /> value to its nearest representable <see cref="BFloat16" /> value.</summary> 830/// <returns><paramref name="value" /> converted to its nearest representable <see cref="BFloat16" /> value.</returns> 832public static implicit operator BFloat16(sbyte value) => (BFloat16)(float)value; 838/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="float"/> value.</summary> 842public static explicit operator float(BFloat16 value) => BitConverter.Int32BitsToSingle(value._value << 16); 844/// <summary>Explicitly converts a <see cref="BFloat16" /> value to its nearest representable <see cref="double"/> value.</summary> 847public static explicit operator double(BFloat16 value) => (double)(float)value; 854public static BFloat16 operator +(BFloat16 left, BFloat16 right) => (BFloat16)((float)left + (float)right); 861static BFloat16 IAdditiveIdentity<BFloat16, BFloat16>.AdditiveIdentity => new BFloat16(PositiveZeroBits); 868static BFloat16 IBinaryNumber<BFloat16>.AllBitsSet => new BFloat16(0xFFFF); 871public static bool IsPow2(BFloat16 value) 900public static BFloat16 Log2(BFloat16 value) => (BFloat16)float.Log2((float)value); 907static BFloat16 IBitwiseOperators<BFloat16, BFloat16, BFloat16>.operator &(BFloat16 left, BFloat16 right) 913static BFloat16 IBitwiseOperators<BFloat16, BFloat16, BFloat16>.operator |(BFloat16 left, BFloat16 right) 919static BFloat16 IBitwiseOperators<BFloat16, BFloat16, BFloat16>.operator ^(BFloat16 left, BFloat16 right) 925static BFloat16 IBitwiseOperators<BFloat16, BFloat16, BFloat16>.operator ~(BFloat16 value) 935public static BFloat16 operator --(BFloat16 value) 939return (BFloat16)tmp; 947public static BFloat16 operator /(BFloat16 left, BFloat16 right) => (BFloat16)((float)left / (float)right); 954public static BFloat16 Exp(BFloat16 x) => (BFloat16)float.Exp((float)x); 957public static BFloat16 ExpM1(BFloat16 x) => (BFloat16)float.ExpM1((float)x); 960public static BFloat16 Exp2(BFloat16 x) => (BFloat16)float.Exp2((float)x); 963public static BFloat16 Exp2M1(BFloat16 x) => (BFloat16)float.Exp2M1((float)x); 966public static BFloat16 Exp10(BFloat16 x) => (BFloat16)float.Exp10((float)x); 969public static BFloat16 Exp10M1(BFloat16 x) => (BFloat16)float.Exp10M1((float)x); 976public static BFloat16 Ceiling(BFloat16 x) => (BFloat16)float.Ceiling((float)x); 979public static BFloat16 Floor(BFloat16 x) => (BFloat16)float.Floor((float)x); 982public static BFloat16 Round(BFloat16 x) => (BFloat16)float.Round((float)x); 985public static BFloat16 Round(BFloat16 x, int digits) => (BFloat16)float.Round((float)x, digits); 988public static BFloat16 Round(BFloat16 x, MidpointRounding mode) => (BFloat16)float.Round((float)x, mode); 991public static BFloat16 Round(BFloat16 x, int digits, MidpointRounding mode) => (BFloat16)float.Round((float)x, digits, mode); 994public static BFloat16 Truncate(BFloat16 x) => (BFloat16)float.Truncate((float)x); 997int IFloatingPoint<BFloat16>.GetExponentByteCount() => sizeof(sbyte); 1000int IFloatingPoint<BFloat16>.GetExponentShortestBitLength() 1015int IFloatingPoint<BFloat16>.GetSignificandByteCount() => sizeof(ushort); 1018int IFloatingPoint<BFloat16>.GetSignificandBitLength() => SignificandLength; 1021bool IFloatingPoint<BFloat16>.TryWriteExponentBigEndian(Span<byte> destination, out int bytesWritten) 1035bool IFloatingPoint<BFloat16>.TryWriteExponentLittleEndian(Span<byte> destination, out int bytesWritten) 1049bool IFloatingPoint<BFloat16>.TryWriteSignificandBigEndian(Span<byte> destination, out int bytesWritten) 1062bool IFloatingPoint<BFloat16>.TryWriteSignificandLittleEndian(Span<byte> destination, out int bytesWritten) 1079public static BFloat16 E => new BFloat16(EBits); 1082public static BFloat16 Pi => new BFloat16(PiBits); 1085public static BFloat16 Tau => new BFloat16(TauBits); 1092public static BFloat16 NegativeZero => new BFloat16(NegativeZeroBits); 1095public static BFloat16 Atan2(BFloat16 y, BFloat16 x) => (BFloat16)float.Atan2((float)y, (float)x); 1098public static BFloat16 Atan2Pi(BFloat16 y, BFloat16 x) => (BFloat16)float.Atan2Pi((float)y, (float)x); 1101public static BFloat16 BitDecrement(BFloat16 x) 1134public static BFloat16 BitIncrement(BFloat16 x) 1167public static BFloat16 FusedMultiplyAdd(BFloat16 left, BFloat16 right, BFloat16 addend) => (BFloat16)float.FusedMultiplyAdd((float)left, (float)right, (float)addend); 1170public static BFloat16 Ieee754Remainder(BFloat16 left, BFloat16 right) => (BFloat16)float.Ieee754Remainder((float)left, (float)right); 1173public static int ILogB(BFloat16 x) 1201public static BFloat16 Lerp(BFloat16 value1, BFloat16 value2, BFloat16 amount) => (BFloat16)float.Lerp((float)value1, (float)value2, (float)amount); 1204public static BFloat16 ReciprocalEstimate(BFloat16 x) => (BFloat16)float.ReciprocalEstimate((float)x); 1207public static BFloat16 ReciprocalSqrtEstimate(BFloat16 x) => (BFloat16)float.ReciprocalSqrtEstimate((float)x); 1210public static BFloat16 ScaleB(BFloat16 x, int n) => (BFloat16)float.ScaleB((float)x, n); 1220public static BFloat16 Acosh(BFloat16 x) => (BFloat16)float.Acosh((float)x); 1223public static BFloat16 Asinh(BFloat16 x) => (BFloat16)float.Asinh((float)x); 1226public static BFloat16 Atanh(BFloat16 x) => (BFloat16)float.Atanh((float)x); 1229public static BFloat16 Cosh(BFloat16 x) => (BFloat16)float.Cosh((float)x); 1232public static BFloat16 Sinh(BFloat16 x) => (BFloat16)float.Sinh((float)x); 1235public static BFloat16 Tanh(BFloat16 x) => (BFloat16)float.Tanh((float)x); 1242public static BFloat16 operator ++(BFloat16 value) 1246return (BFloat16)tmp; 1254public static BFloat16 Log(BFloat16 x) => (BFloat16)float.Log((float)x); 1257public static BFloat16 Log(BFloat16 x, BFloat16 newBase) => (BFloat16)float.Log((float)x, (float)newBase); 1260public static BFloat16 Log10(BFloat16 x) => (BFloat16)float.Log10((float)x); 1263public static BFloat16 LogP1(BFloat16 x) => (BFloat16)float.LogP1((float)x); 1266public static BFloat16 Log2P1(BFloat16 x) => (BFloat16)float.Log2P1((float)x); 1269public static BFloat16 Log10P1(BFloat16 x) => (BFloat16)float.Log10P1((float)x); 1276public static BFloat16 operator %(BFloat16 left, BFloat16 right) => (BFloat16)((float)left % (float)right); 1283public static BFloat16 MultiplicativeIdentity => new BFloat16(PositiveOneBits); 1290public static BFloat16 operator *(BFloat16 left, BFloat16 right) => (BFloat16)((float)left * (float)right); 1297public static BFloat16 Clamp(BFloat16 value, BFloat16 min, BFloat16 max) => (BFloat16)Math.Clamp((float)value, (float)min, (float)max); 1300public static BFloat16 CopySign(BFloat16 value, BFloat16 sign) 1313public static BFloat16 Max(BFloat16 x, BFloat16 y) => (BFloat16)float.Max((float)x, (float)y); 1316public static BFloat16 MaxNumber(BFloat16 x, BFloat16 y) 1338public static BFloat16 Min(BFloat16 x, BFloat16 y) => (BFloat16)float.Min((float)x, (float)y); 1341public static BFloat16 MinNumber(BFloat16 x, BFloat16 y) 1363public static int Sign(BFloat16 value) 1387public static BFloat16 One => new BFloat16(PositiveOneBits); 1390static int INumberBase<BFloat16>.Radix => 2; 1393public static BFloat16 Zero => new BFloat16(PositiveZeroBits); 1396public static BFloat16 Abs(BFloat16 value) => new BFloat16((ushort)(value._value & ~SignMask)); 1400public static BFloat16 CreateChecked<TOther>(TOther value) 1403BFloat16 result; 1405if (typeof(TOther) == typeof(BFloat16)) 1407result = (BFloat16)(object)value; 1419public static BFloat16 CreateSaturating<TOther>(TOther value) 1422BFloat16 result; 1424if (typeof(TOther) == typeof(BFloat16)) 1426result = (BFloat16)(object)value; 1438public static BFloat16 CreateTruncating<TOther>(TOther value) 1441BFloat16 result; 1443if (typeof(TOther) == typeof(BFloat16)) 1445result = (BFloat16)(object)value; 1456static bool INumberBase<BFloat16>.IsCanonical(BFloat16 value) => true; 1459static bool INumberBase<BFloat16>.IsComplexNumber(BFloat16 value) => false; 1462public static bool IsEvenInteger(BFloat16 value) => float.IsEvenInteger((float)value); 1465static bool INumberBase<BFloat16>.IsImaginaryNumber(BFloat16 value) => false; 1468public static bool IsInteger(BFloat16 value) => float.IsInteger((float)value); 1471public static bool IsOddInteger(BFloat16 value) => float.IsOddInteger((float)value); 1474public static bool IsPositive(BFloat16 value) => (short)(value._value) >= 0; 1477public static bool IsRealNumber(BFloat16 value) 1488static bool INumberBase<BFloat16>.IsZero(BFloat16 value) => IsZero(value); 1491public static BFloat16 MaxMagnitude(BFloat16 x, BFloat16 y) => (BFloat16)float.MaxMagnitude((float)x, (float)y); 1494public static BFloat16 MaxMagnitudeNumber(BFloat16 x, BFloat16 y) 1502BFloat16 ax = Abs(x); 1503BFloat16 ay = Abs(y); 1519public static BFloat16 MinMagnitude(BFloat16 x, BFloat16 y) => (BFloat16)float.MinMagnitude((float)x, (float)y); 1522public static BFloat16 MinMagnitudeNumber(BFloat16 x, BFloat16 y) 1530BFloat16 ax = Abs(x); 1531BFloat16 ay = Abs(y); 1548static bool INumberBase<BFloat16>.TryConvertFromChecked<TOther>(TOther value, out BFloat16 result) 1555static bool INumberBase<BFloat16>.TryConvertFromSaturating<TOther>(TOther value, out BFloat16 result) 1562static bool INumberBase<BFloat16>.TryConvertFromTruncating<TOther>(TOther value, out BFloat16 result) 1568private static bool TryConvertFrom<TOther>(TOther value, out BFloat16 result) 1577result = (BFloat16)actualValue; 1583result = (BFloat16)actualValue; 1589result = (BFloat16)actualValue; 1601result = (BFloat16)actualValue; 1607result = (BFloat16)actualValue; 1613result = (BFloat16)actualValue; 1619result = (BFloat16)actualValue; 1625result = (BFloat16)actualValue; 1631result = (BFloat16)actualValue; 1637result = (BFloat16)actualValue; 1643result = (BFloat16)actualValue; 1649result = (BFloat16)actualValue; 1655result = (BFloat16)actualValue; 1661result = (BFloat16)actualValue; 1667result = (BFloat16)actualValue; 1673result = (BFloat16)actualValue; 1685static bool INumberBase<BFloat16>.TryConvertToChecked<TOther>(BFloat16 value, [MaybeNullWhen(false)] out TOther result) 1801static bool INumberBase<BFloat16>.TryConvertToSaturating<TOther>(BFloat16 value, [MaybeNullWhen(false)] out TOther result) 1808static bool INumberBase<BFloat16>.TryConvertToTruncating<TOther>(BFloat16 value, [MaybeNullWhen(false)] out TOther result) 1814private static bool TryConvertTo<TOther>(BFloat16 value, [MaybeNullWhen(false)] out TOther result) 1949public static bool TryParse([NotNullWhen(true)] string? s, IFormatProvider? provider, out BFloat16 result) => TryParse(s, DefaultParseStyle, provider, out result); 1956public static BFloat16 Pow(BFloat16 x, BFloat16 y) => (BFloat16)float.Pow((float)x, (float)y); 1963public static BFloat16 Cbrt(BFloat16 x) => (BFloat16)float.Cbrt((float)x); 1966public static BFloat16 Hypot(BFloat16 x, BFloat16 y) => (BFloat16)float.Hypot((float)x, (float)y); 1969public static BFloat16 RootN(BFloat16 x, int n) => (BFloat16)float.RootN((float)x, n); 1972public static BFloat16 Sqrt(BFloat16 x) => (BFloat16)float.Sqrt((float)x); 1979public static BFloat16 NegativeOne => new BFloat16(NegativeOneBits); 1986public static BFloat16 Parse(ReadOnlySpan<char> s, IFormatProvider? provider) => Parse(s, DefaultParseStyle, provider); 1989public static bool TryParse(ReadOnlySpan<char> s, IFormatProvider? provider, out BFloat16 result) => TryParse(s, DefaultParseStyle, provider, out result); 1996public static BFloat16 operator -(BFloat16 left, BFloat16 right) => (BFloat16)((float)left - (float)right); 2003public static BFloat16 Acos(BFloat16 x) => (BFloat16)float.Acos((float)x); 2006public static BFloat16 AcosPi(BFloat16 x) => (BFloat16)float.AcosPi((float)x); 2009public static BFloat16 Asin(BFloat16 x) => (BFloat16)float.Asin((float)x); 2012public static BFloat16 AsinPi(BFloat16 x) => (BFloat16)float.AsinPi((float)x); 2015public static BFloat16 Atan(BFloat16 x) => (BFloat16)float.Atan((float)x); 2018public static BFloat16 AtanPi(BFloat16 x) => (BFloat16)float.AtanPi((float)x); 2021public static BFloat16 Cos(BFloat16 x) => (BFloat16)float.Cos((float)x); 2024public static BFloat16 CosPi(BFloat16 x) => (BFloat16)float.CosPi((float)x); 2027public static BFloat16 DegreesToRadians(BFloat16 degrees) 2032return (BFloat16)float.DegreesToRadians((float)degrees); 2036public static BFloat16 RadiansToDegrees(BFloat16 radians) 2041return (BFloat16)float.RadiansToDegrees((float)radians); 2045public static BFloat16 Sin(BFloat16 x) => (BFloat16)float.Sin((float)x); 2048public static (BFloat16 Sin, BFloat16 Cos) SinCos(BFloat16 x) 2051return ((BFloat16)sin, (BFloat16)cos); 2055public static (BFloat16 SinPi, BFloat16 CosPi) SinCosPi(BFloat16 x) 2058return ((BFloat16)sinPi, (BFloat16)cosPi); 2062public static BFloat16 SinPi(BFloat16 x) => (BFloat16)float.SinPi((float)x); 2065public static BFloat16 Tan(BFloat16 x) => (BFloat16)float.Tan((float)x); 2068public static BFloat16 TanPi(BFloat16 x) => (BFloat16)float.TanPi((float)x); 2075public static BFloat16 operator -(BFloat16 value) => (BFloat16)(-(float)value); 2082public static BFloat16 operator +(BFloat16 value) => value; 2089public static BFloat16 Parse(ReadOnlySpan<byte> utf8Text, NumberStyles style = DefaultParseStyle, IFormatProvider? provider = null) 2092return Number.ParseFloat<byte, BFloat16>(utf8Text, style, NumberFormatInfo.GetInstance(provider)); 2096public static bool TryParse(ReadOnlySpan<byte> utf8Text, NumberStyles style, IFormatProvider? provider, out BFloat16 result) 2103public static BFloat16 Parse(ReadOnlySpan<byte> utf8Text, IFormatProvider? provider) => Parse(utf8Text, DefaultParseStyle, provider); 2106public static bool TryParse(ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out BFloat16 result) => TryParse(utf8Text, DefaultParseStyle, provider, out result); 2112static int IBinaryFloatParseAndFormatInfo<BFloat16>.NumberBufferLength => 96 + 1 + 1; // 96 for the longest input + 1 for rounding (+1 for the null terminator) 2114static ulong IBinaryFloatParseAndFormatInfo<BFloat16>.ZeroBits => 0; 2115static ulong IBinaryFloatParseAndFormatInfo<BFloat16>.InfinityBits => PositiveInfinityBits; 2117static ulong IBinaryFloatParseAndFormatInfo<BFloat16>.NormalMantissaMask => (1UL << SignificandLength) - 1; 2118static ulong IBinaryFloatParseAndFormatInfo<BFloat16>.DenormalMantissaMask => TrailingSignificandMask; 2120static int IBinaryFloatParseAndFormatInfo<BFloat16>.MinBinaryExponent => 1 - MaxExponent; 2121static int IBinaryFloatParseAndFormatInfo<BFloat16>.MaxBinaryExponent => MaxExponent; 2123static int IBinaryFloatParseAndFormatInfo<BFloat16>.MinDecimalExponent => -41; 2124static int IBinaryFloatParseAndFormatInfo<BFloat16>.MaxDecimalExponent => 39; 2126static int IBinaryFloatParseAndFormatInfo<BFloat16>.ExponentBias => ExponentBias; 2127static ushort IBinaryFloatParseAndFormatInfo<BFloat16>.ExponentBits => BiasedExponentLength; 2129static int IBinaryFloatParseAndFormatInfo<BFloat16>.OverflowDecimalExponent => (MaxExponent + (2 * SignificandLength)) / 3; 2130static int IBinaryFloatParseAndFormatInfo<BFloat16>.InfinityExponent => MaxBiasedExponent; 2132static ushort IBinaryFloatParseAndFormatInfo<BFloat16>.NormalMantissaBits => SignificandLength; 2133static ushort IBinaryFloatParseAndFormatInfo<BFloat16>.DenormalMantissaBits => TrailingSignificandLength; 2135static int IBinaryFloatParseAndFormatInfo<BFloat16>.MinFastFloatDecimalExponent => -59; 2136static int IBinaryFloatParseAndFormatInfo<BFloat16>.MaxFastFloatDecimalExponent => 38; 2138static int IBinaryFloatParseAndFormatInfo<BFloat16>.MinExponentRoundToEven => -24; 2139static int IBinaryFloatParseAndFormatInfo<BFloat16>.MaxExponentRoundToEven => 3; 2141static int IBinaryFloatParseAndFormatInfo<BFloat16>.MaxExponentFastPath => 3; 2142static ulong IBinaryFloatParseAndFormatInfo<BFloat16>.MaxMantissaFastPath => 2UL << TrailingSignificandLength; 2144static int IBinaryFloatParseAndFormatInfo<BFloat16>.MaxRoundTripDigits => 4; 2146static int IBinaryFloatParseAndFormatInfo<BFloat16>.MaxPrecisionCustomFormat => 4; 2148static BFloat16 IBinaryFloatParseAndFormatInfo<BFloat16>.BitsToFloat(ulong bits) => new BFloat16((ushort)(bits)); 2150static ulong IBinaryFloatParseAndFormatInfo<BFloat16>.FloatToBits(BFloat16 value) => value._value;
System.Runtime (1)
artifacts\obj\System.Runtime\Debug\net10.0\System.Runtime.Forwards.cs (1)
371[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Numerics.BFloat16))]
System.Runtime.Numerics (41)
System\Numerics\BigInteger.cs (26)
1920/// <summary>Explicitly converts a big integer to a <see cref="BFloat16" /> value.</summary> 1922/// <returns><paramref name="value" /> converted to <see cref="BFloat16" /> value.</returns> 1923public static explicit operator BFloat16(BigInteger value) 1925return (BFloat16)(double)value; 2181/// <summary>Explicitly converts a <see cref="BFloat16" /> value to a big integer.</summary> 2184public static explicit operator BigInteger(BFloat16 value) 4021else if (typeof(TOther) == typeof(BFloat16)) 4023BFloat16 actualValue = (BFloat16)(object)value; 4144else if (typeof(TOther) == typeof(BFloat16)) 4146BFloat16 actualValue = (BFloat16)(object)value; 4147result = BFloat16.IsNaN(actualValue) ? Zero : (BigInteger)actualValue; 4267else if (typeof(TOther) == typeof(BFloat16)) 4269BFloat16 actualValue = (BFloat16)(object)value; 4270result = BFloat16.IsNaN(actualValue) ? Zero : (BigInteger)actualValue; 4386else if (typeof(TOther) == typeof(BFloat16)) 4388BFloat16 actualResult = (BFloat16)value; 4534else if (typeof(TOther) == typeof(BFloat16)) 4536BFloat16 actualResult = (BFloat16)value; 4745else if (typeof(TOther) == typeof(BFloat16)) 4747BFloat16 actualResult = (BFloat16)value;
System\Numerics\Complex.cs (15)
837/// <summary>Implicitly converts a <see cref="BFloat16" /> value to a double-precision complex number.</summary> 840public static implicit operator Complex(BFloat16 value) 1551else if (typeof(TOther) == typeof(BFloat16)) 1553BFloat16 actualValue = (BFloat16)(object)value; 1690else if (typeof(TOther) == typeof(BFloat16)) 1692BFloat16 actualResult = (value.m_imaginary != 0) ? BFloat16.NaN : (BFloat16)value.m_real; 1889else if (typeof(TOther) == typeof(BFloat16)) 1891BFloat16 actualResult = (BFloat16)value.m_real; 2031else if (typeof(TOther) == typeof(BFloat16)) 2033BFloat16 actualResult = (BFloat16)value.m_real;