31 instantiations of BFloat16
System.Private.CoreLib (31)
src\libraries\System.Private.CoreLib\src\System\BitConverter.cs (2)
1018
public static BFloat16 Int16BitsToBFloat16(short value) => new
BFloat16
((ushort)(value));
1090
public static BFloat16 UInt16BitsToBFloat16(ushort value) => new
BFloat16
(value);
src\libraries\System.Private.CoreLib\src\System\Numerics\BFloat16.cs (29)
84
public static BFloat16 Epsilon => new
BFloat16
(EpsilonBits);
86
public static BFloat16 PositiveInfinity => new
BFloat16
(PositiveInfinityBits);
88
public static BFloat16 NegativeInfinity => new
BFloat16
(NegativeInfinityBits);
90
public static BFloat16 NaN => new
BFloat16
(NegativeQNaNBits);
93
public static BFloat16 MinValue => new
BFloat16
(MinValueBits);
96
public static BFloat16 MaxValue => new
BFloat16
(MaxValueBits);
507
return new
BFloat16
((ushort)bitValue);
554
return new
BFloat16
((ushort)(roundedValueBits >> 16));
596
return new
BFloat16
((ushort)(!float.IsNaN(value) ? roundedBits : (bits >> 16)));
615
return new
BFloat16
((ushort)(roundedValueBits >> 16));
859
static BFloat16 IAdditiveIdentity<BFloat16, BFloat16>.AdditiveIdentity => new
BFloat16
(PositiveZeroBits);
866
static BFloat16 IBinaryNumber<BFloat16>.AllBitsSet => new
BFloat16
(0xFFFF);
907
return new
BFloat16
((ushort)(left._value & right._value));
913
return new
BFloat16
((ushort)(left._value | right._value));
919
return new
BFloat16
((ushort)(left._value ^ right._value));
925
return new
BFloat16
((ushort)(~value._value));
1077
public static BFloat16 E => new
BFloat16
(EBits);
1080
public static BFloat16 Pi => new
BFloat16
(PiBits);
1083
public static BFloat16 Tau => new
BFloat16
(TauBits);
1090
public static BFloat16 NegativeZero => new
BFloat16
(NegativeZeroBits);
1128
return new
BFloat16
((ushort)bits);
1161
return new
BFloat16
((ushort)bits);
1281
public static BFloat16 MultiplicativeIdentity => new
BFloat16
(PositiveOneBits);
1307
return new
BFloat16
((ushort)((xbits & ~SignMask) | (ybits & SignMask)));
1385
public static BFloat16 One => new
BFloat16
(PositiveOneBits);
1391
public static BFloat16 Zero => new
BFloat16
(PositiveZeroBits);
1394
public static BFloat16 Abs(BFloat16 value) => new
BFloat16
((ushort)(value._value & ~SignMask));
1977
public static BFloat16 NegativeOne => new
BFloat16
(NegativeOneBits);
2146
static BFloat16 IBinaryFloatParseAndFormatInfo<BFloat16>.BitsToFloat(ulong bits) => new
BFloat16
((ushort)(bits));
680 references to BFloat16
System.Private.CoreLib (638)
src\libraries\System.Private.CoreLib\src\System\BitConverter.cs (26)
312
/// Returns the specified <see cref="
BFloat16
"/> value as an array of bytes.
316
public static unsafe byte[] GetBytes(
BFloat16
value)
318
byte[] bytes = new byte[sizeof(
BFloat16
)];
325
/// Converts a <see cref="
BFloat16
"/> value into a span of bytes.
327
/// <param name="destination">When this method returns, the bytes representing the converted <see cref="
BFloat16
"/> value.</param>
328
/// <param name="value">The <see cref="
BFloat16
"/> value to convert.</param>
330
public static unsafe bool TryWriteBytes(Span<byte> destination,
BFloat16
value)
332
if (destination.Length < sizeof(
BFloat16
))
725
/// Returns a <see cref="
BFloat16
"/> number converted from two bytes at a specified position in a byte array.
729
/// <returns>A <see cref="
BFloat16
"/> number signed integer formed by two bytes beginning at <paramref name="startIndex"/>.</returns>
733
public static
BFloat16
ToBFloat16(byte[] value, int startIndex) => Int16BitsToBFloat16(ToInt16(value, startIndex));
736
/// Converts a read-only byte span into a <see cref="
BFloat16
"/> value.
739
/// <returns>A <see cref="
BFloat16
"/> value representing the converted bytes.</returns>
742
public static unsafe
BFloat16
ToBFloat16(ReadOnlySpan<byte> value)
744
if (value.Length < sizeof(
BFloat16
))
746
return Unsafe.ReadUnaligned<
BFloat16
>(ref MemoryMarshal.GetReference(value));
1005
/// Converts the specified <see cref="
BFloat16
"/> number to a 16-bit signed integer.
1010
public static short BFloat16ToInt16Bits(
BFloat16
value) => (short)value._value;
1013
/// Converts the specified 16-bit signed integer to a <see cref="
BFloat16
"/> number.
1016
/// <returns>A <see cref="
BFloat16
"/> number whose bits are identical to <paramref name="value"/>.</returns>
1018
public static
BFloat16
Int16BitsToBFloat16(short value) => new BFloat16((ushort)(value));
1075
/// Converts the specified <see cref="
BFloat16
"/> number to a 16-bit unsigned integer.
1081
public static ushort BFloat16ToUInt16Bits(
BFloat16
value) => value._value;
1084
/// Converts the specified 16-bit unsigned integer to a <see cref="
BFloat16
"/> number.
1087
/// <returns>A <see cref="
BFloat16
"/> number whose bits are identical to <paramref name="value"/>.</returns>
1090
public static
BFloat16
UInt16BitsToBFloat16(ushort value) => new BFloat16(value);
src\libraries\System.Private.CoreLib\src\System\Buffers\Binary\BinaryPrimitives.ReadBigEndian.cs (7)
47
/// Reads a <see cref="
BFloat16
" /> from the beginning of a read-only span of bytes, as big endian.
53
/// <paramref name="source"/> is too small to contain a <see cref="
BFloat16
" />.
56
public static
BFloat16
ReadBFloat16BigEndian(ReadOnlySpan<byte> source)
60
MemoryMarshal.Read<
BFloat16
>(source);
300
/// Reads a <see cref="
BFloat16
" /> from the beginning of a read-only span of bytes, as big endian.
305
/// <see langword="true" /> if the span is large enough to contain a <see cref="
BFloat16
" />; otherwise, <see langword="false" />.
309
public static bool TryReadBFloat16BigEndian(ReadOnlySpan<byte> source, out
BFloat16
value)
src\libraries\System.Private.CoreLib\src\System\Buffers\Binary\BinaryPrimitives.ReadLittleEndian.cs (6)
47
/// Reads a <see cref="
BFloat16
" /> from the beginning of a read-only span of bytes, as little endian.
56
public static
BFloat16
ReadBFloat16LittleEndian(ReadOnlySpan<byte> source)
60
MemoryMarshal.Read<
BFloat16
>(source);
300
/// Reads a <see cref="
BFloat16
" /> from the beginning of a read-only span of bytes, as little endian.
305
/// <see langword="true" /> if the span is large enough to contain a <see cref="
BFloat16
" />; otherwise, <see langword="false" />.
309
public static bool TryReadBFloat16LittleEndian(ReadOnlySpan<byte> source, out
BFloat16
value)
src\libraries\System.Private.CoreLib\src\System\Buffers\Binary\BinaryPrimitives.WriteBigEndian.cs (6)
59
/// Writes a <see cref="
BFloat16
" /> into a span of bytes, as big endian.
65
/// <paramref name="destination" /> is too small to contain a <see cref="
BFloat16
" />.
68
public static void WriteBFloat16BigEndian(Span<byte> destination,
BFloat16
value)
382
/// Writes a <see cref="
BFloat16
" /> into a span of bytes, as big endian.
387
/// <see langword="true" /> if the span is large enough to contain a <see cref="
BFloat16
" />; otherwise, <see langword="false" />.
391
public static bool TryWriteBFloat16BigEndian(Span<byte> destination,
BFloat16
value)
src\libraries\System.Private.CoreLib\src\System\Buffers\Binary\BinaryPrimitives.WriteLittleEndian.cs (6)
59
/// Writes a <see cref="
BFloat16
" /> into a span of bytes, as little endian.
65
/// <paramref name="destination" /> is too small to contain a <see cref="
BFloat16
" />.
68
public static void WriteBFloat16LittleEndian(Span<byte> destination,
BFloat16
value)
382
/// Writes a <see cref="
BFloat16
" /> into a span of bytes, as little endian.
387
/// <see langword="true" /> if the span is large enough to contain a <see cref="
BFloat16
" />; otherwise, <see langword="false" />.
391
public static bool TryWriteBFloat16LittleEndian(Span<byte> destination,
BFloat16
value)
src\libraries\System.Private.CoreLib\src\System\Numerics\BFloat16.cs (587)
18
IComparable<
BFloat16
>,
19
IEquatable<
BFloat16
>,
20
IBinaryFloatingPointIeee754<
BFloat16
>,
21
IMinMaxValue<
BFloat16
>,
23
IBinaryFloatParseAndFormatInfo<
BFloat16
>
84
public static
BFloat16
Epsilon => new BFloat16(EpsilonBits);
86
public static
BFloat16
PositiveInfinity => new BFloat16(PositiveInfinityBits);
88
public static
BFloat16
NegativeInfinity => new BFloat16(NegativeInfinityBits);
90
public static
BFloat16
NaN => new BFloat16(NegativeQNaNBits);
93
public static
BFloat16
MinValue => new BFloat16(MinValueBits);
96
public static
BFloat16
MaxValue => new BFloat16(MaxValueBits);
151
public static bool IsFinite(
BFloat16
value)
159
public static bool IsInfinity(
BFloat16
value)
167
public static bool IsNaN(
BFloat16
value)
174
internal static bool IsNaNOrZero(
BFloat16
value)
182
public static bool IsNegative(
BFloat16
value)
189
public static bool IsNegativeInfinity(
BFloat16
value)
197
public static bool IsNormal(
BFloat16
value)
205
public static bool IsPositiveInfinity(
BFloat16
value)
213
public static bool IsSubnormal(
BFloat16
value)
220
public static bool IsZero(
BFloat16
value)
227
/// Parses a <see cref="
BFloat16
"/> from a <see cref="string"/> in the default parse style.
230
/// <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>
231
public static
BFloat16
Parse(string s) => Parse(s, DefaultParseStyle, provider: null);
234
/// Parses a <see cref="
BFloat16
"/> from a <see cref="string"/> in the given <see cref="NumberStyles"/>.
238
/// <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>
239
public static
BFloat16
Parse(string s, NumberStyles style) => Parse(s, style, provider: null);
242
/// Parses a <see cref="
BFloat16
"/> from a <see cref="string"/> and <see cref="IFormatProvider"/>.
246
/// <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>
247
public static
BFloat16
Parse(string s, IFormatProvider? provider) => Parse(s, DefaultParseStyle, provider);
250
/// Parses a <see cref="
BFloat16
"/> from a <see cref="string"/> with the given <see cref="NumberStyles"/> and <see cref="IFormatProvider"/>.
255
/// <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>
256
public static
BFloat16
Parse(string s, NumberStyles style = DefaultParseStyle, IFormatProvider? provider = null)
266
/// Parses a <see cref="
BFloat16
"/> from a <see cref="ReadOnlySpan{Char}"/> and <see cref="IFormatProvider"/>.
271
/// <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>
272
public static
BFloat16
Parse(ReadOnlySpan<char> s, NumberStyles style = DefaultParseStyle, IFormatProvider? provider = null)
275
return Number.ParseFloat<char,
BFloat16
>(s, style, NumberFormatInfo.GetInstance(provider));
279
/// Tries to parse a <see cref="
BFloat16
"/> from a <see cref="string"/> in the default parse style.
282
/// <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>
284
public static bool TryParse([NotNullWhen(true)] string? s, out
BFloat16
result) => TryParse(s, DefaultParseStyle, provider: null, out result);
287
/// Tries to parse a <see cref="
BFloat16
"/> from a <see cref="ReadOnlySpan{Char}"/> in the default parse style.
290
/// <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>
292
public static bool TryParse(ReadOnlySpan<char> s, out
BFloat16
result) => TryParse(s, DefaultParseStyle, provider: null, out result);
294
/// <summary>Tries to convert a UTF-8 character span containing the string representation of a number to its <see cref="
BFloat16
"/> number equivalent.</summary>
296
/// <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>
298
public static bool TryParse(ReadOnlySpan<byte> utf8Text, out
BFloat16
result) => TryParse(utf8Text, DefaultParseStyle, provider: null, out result);
301
/// Tries to parse a <see cref="
BFloat16
"/> from a <see cref="string"/> with the given <see cref="NumberStyles"/> and <see cref="IFormatProvider"/>.
306
/// <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>
308
public static bool TryParse([NotNullWhen(true)] string? s, NumberStyles style, IFormatProvider? provider, out
BFloat16
result)
321
/// Tries to parse a <see cref="
BFloat16
"/> from a <see cref="ReadOnlySpan{Char}"/> with the given <see cref="NumberStyles"/> and <see cref="IFormatProvider"/>.
326
/// <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>
328
public static bool TryParse(ReadOnlySpan<char> s, NumberStyles style, IFormatProvider? provider, out
BFloat16
result)
340
/// <exception cref="ArgumentException">Thrown when <paramref name="obj"/> is not of type <see cref="
BFloat16
"/>.</exception>
343
if (obj is not
BFloat16
other)
354
public int CompareTo(
BFloat16
other) => ((float)this).CompareTo((float)other);
357
public static bool operator ==(
BFloat16
left,
BFloat16
right) => (float)left == (float)right;
360
public static bool operator !=(
BFloat16
left,
BFloat16
right) => (float)left != (float)right;
363
public static bool operator <(
BFloat16
left,
BFloat16
right) => (float)left < (float)right;
366
public static bool operator >(
BFloat16
left,
BFloat16
right) => (float)left > (float)right;
369
public static bool operator <=(
BFloat16
left,
BFloat16
right) => (float)left <= (float)right;
372
public static bool operator >=(
BFloat16
left,
BFloat16
right) => (float)left >= (float)right;
379
public bool Equals(
BFloat16
other) => ((float)this).Equals((float)other);
384
public override bool Equals(object? obj) => obj is
BFloat16
other && Equals(other);
443
/// <summary>Explicitly converts a <see cref="char" /> value to its nearest representable <see cref="
BFloat16
"/> value.</summary>
445
/// <returns><paramref name="value" /> converted to its nearest representable <see cref="
BFloat16
"/> value.</returns>
446
public static explicit operator
BFloat16
(char value) => (
BFloat16
)(float)value;
448
/// <summary>Explicitly converts a <see cref="decimal" /> value to its nearest representable <see cref="
BFloat16
"/> value.</summary>
450
/// <returns><paramref name="value" /> converted to its nearest representable <see cref="
BFloat16
"/> value.</returns>
451
public static explicit operator
BFloat16
(decimal value) => (
BFloat16
)(float)value;
453
/// <summary>Explicitly converts a <see cref="double" /> value to its nearest representable <see cref="
BFloat16
"/> value.</summary>
455
/// <returns><paramref name="value" /> converted to its nearest representable <see cref="
BFloat16
"/> value.</returns>
456
public static explicit operator
BFloat16
(double value)
535
private static unsafe
BFloat16
RoundFromSigned<TInteger>(TInteger value)
557
/// <summary>Explicitly converts a <see cref="short" /> value to its nearest representable <see cref="
BFloat16
"/> value.</summary>
559
/// <returns><paramref name="value" /> converted to its nearest representable <see cref="
BFloat16
"/> value.</returns>
560
public static explicit operator
BFloat16
(short value) => (
BFloat16
)(float)value;
562
/// <summary>Explicitly converts a <see cref="Half" /> value to its nearest representable <see cref="
BFloat16
"/> value.</summary>
564
/// <returns><paramref name="value" /> converted to its nearest representable <see cref="
BFloat16
"/> value.</returns>
565
public static explicit operator
BFloat16
(Half value) => (
BFloat16
)(float)value;
567
/// <summary>Explicitly converts a <see cref="int" /> value to its nearest representable <see cref="
BFloat16
"/> value.</summary>
569
/// <returns><paramref name="value" /> converted to its nearest representable <see cref="
BFloat16
"/> value.</returns>
570
public static explicit operator
BFloat16
(int value) => RoundFromSigned(value);
572
/// <summary>Explicitly converts a <see cref="long" /> value to its nearest representable <see cref="
BFloat16
"/> value.</summary>
574
/// <returns><paramref name="value" /> converted to its nearest representable <see cref="
BFloat16
"/> value.</returns>
575
public static explicit operator
BFloat16
(long value) => RoundFromSigned(value);
577
/// <summary>Explicitly converts a <see cref="Int128" /> value to its nearest representable <see cref="
BFloat16
"/> value.</summary>
579
/// <returns><paramref name="value" /> converted to its nearest representable <see cref="
BFloat16
"/> value.</returns>
580
public static explicit operator
BFloat16
(Int128 value) => RoundFromSigned(value);
582
/// <summary>Explicitly converts a <see cref="nint" /> value to its nearest representable <see cref="
BFloat16
"/> value.</summary>
584
/// <returns><paramref name="value" /> converted to its nearest representable <see cref="
BFloat16
"/> value.</returns>
585
public static explicit operator
BFloat16
(nint value) => RoundFromSigned(value);
587
/// <summary>Explicitly converts a <see cref="float" /> value to its nearest representable <see cref="
BFloat16
"/> value.</summary>
589
/// <returns><paramref name="value" /> converted to its nearest representable <see cref="
BFloat16
"/> value.</returns>
590
public static explicit operator
BFloat16
(float value)
599
private static unsafe
BFloat16
RoundFromUnsigned<TInteger>(TInteger value)
618
/// <summary>Explicitly converts a <see cref="ushort" /> value to its nearest representable <see cref="
BFloat16
"/> value.</summary>
620
/// <returns><paramref name="value" /> converted to its nearest representable <see cref="
BFloat16
"/> value.</returns>
622
public static explicit operator
BFloat16
(ushort value) => (
BFloat16
)(float)value;
624
/// <summary>Explicitly converts a <see cref="uint" /> value to its nearest representable <see cref="
BFloat16
"/> value.</summary>
626
/// <returns><paramref name="value" /> converted to its nearest representable <see cref="
BFloat16
"/> value.</returns>
628
public static explicit operator
BFloat16
(uint value) => RoundFromUnsigned(value);
630
/// <summary>Explicitly converts a <see cref="ulong" /> value to its nearest representable <see cref="
BFloat16
"/> value.</summary>
632
/// <returns><paramref name="value" /> converted to its nearest representable <see cref="
BFloat16
"/> value.</returns>
634
public static explicit operator
BFloat16
(ulong value) => RoundFromUnsigned(value);
636
/// <summary>Explicitly converts a <see cref="nuint" /> value to its nearest representable <see cref="
BFloat16
"/> value.</summary>
638
/// <returns><paramref name="value" /> converted to its nearest representable <see cref="
BFloat16
"/> value.</returns>
640
public static explicit operator
BFloat16
(nuint value) => RoundFromUnsigned(value);
642
/// <summary>Explicitly converts a <see cref="UInt128" /> value to its nearest representable <see cref="
BFloat16
"/> value.</summary>
644
/// <returns><paramref name="value" /> converted to its nearest representable <see cref="
BFloat16
"/> value.</returns>
646
public static explicit operator
BFloat16
(UInt128 value) => RoundFromUnsigned(value);
652
/// <summary>Explicitly converts a <see cref="
BFloat16
" /> value to its nearest representable <see cref="byte" /> value.</summary>
655
public static explicit operator byte(
BFloat16
value) => (byte)(float)value;
657
/// <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>
661
public static explicit operator checked byte(
BFloat16
value) => checked((byte)(float)value);
663
/// <summary>Explicitly converts a <see cref="
BFloat16
" /> value to its nearest representable <see cref="char" /> value.</summary>
666
public static explicit operator char(
BFloat16
value) => (char)(float)value;
668
/// <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>
672
public static explicit operator checked char(
BFloat16
value) => checked((char)(float)value);
674
/// <summary>Explicitly converts a <see cref="
BFloat16
" /> value to its nearest representable <see cref="decimal" /> value.</summary>
677
public static explicit operator decimal(
BFloat16
value) => (decimal)(float)value;
679
/// <summary>Explicitly converts a <see cref="
BFloat16
" /> value to its nearest representable <see cref="short" /> value.</summary>
682
public static explicit operator short(
BFloat16
value) => (short)(float)value;
684
/// <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>
688
public static explicit operator checked short(
BFloat16
value) => checked((short)(float)value);
690
/// <summary>Explicitly converts a <see cref="
BFloat16
" /> value to its nearest representable <see cref="int" /> value.</summary>
693
public static explicit operator int(
BFloat16
value) => (int)(float)value;
695
/// <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>
699
public static explicit operator checked int(
BFloat16
value) => checked((int)(float)value);
701
/// <summary>Explicitly converts a <see cref="
BFloat16
" /> value to its nearest representable <see cref="long" /> value.</summary>
704
public static explicit operator long(
BFloat16
value) => (long)(float)value;
706
/// <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>
710
public static explicit operator checked long(
BFloat16
value) => checked((long)(float)value);
712
/// <summary>Explicitly converts a <see cref="
BFloat16
" /> value to its nearest representable <see cref="Int128"/>.</summary>
715
public static explicit operator Int128(
BFloat16
value) => (Int128)(double)(value);
717
/// <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>
721
public static explicit operator checked Int128(
BFloat16
value) => checked((Int128)(double)(value));
723
/// <summary>Explicitly converts a <see cref="
BFloat16
" /> value to its nearest representable <see cref="IntPtr" /> value.</summary>
726
public static explicit operator nint(
BFloat16
value) => (nint)(float)value;
728
/// <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>
732
public static explicit operator checked nint(
BFloat16
value) => checked((nint)(float)value);
734
/// <summary>Explicitly converts a <see cref="
BFloat16
" /> value to its nearest representable <see cref="sbyte" /> value.</summary>
738
public static explicit operator sbyte(
BFloat16
value) => (sbyte)(float)value;
740
/// <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>
745
public static explicit operator checked sbyte(
BFloat16
value) => checked((sbyte)(float)value);
747
/// <summary>Explicitly converts a <see cref="
BFloat16
" /> value to its nearest representable <see cref="ushort" /> value.</summary>
751
public static explicit operator ushort(
BFloat16
value) => (ushort)(float)value;
753
/// <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>
758
public static explicit operator checked ushort(
BFloat16
value) => checked((ushort)(float)value);
760
/// <summary>Explicitly converts a <see cref="
BFloat16
" /> value to its nearest representable <see cref="uint" /> value.</summary>
764
public static explicit operator uint(
BFloat16
value) => (uint)(float)value;
766
/// <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>
771
public static explicit operator checked uint(
BFloat16
value) => checked((uint)(float)value);
773
/// <summary>Explicitly converts a <see cref="
BFloat16
" /> value to its nearest representable <see cref="ulong" /> value.</summary>
777
public static explicit operator ulong(
BFloat16
value) => (ulong)(float)value;
779
/// <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>
784
public static explicit operator checked ulong(
BFloat16
value) => checked((ulong)(float)value);
786
/// <summary>Explicitly converts a <see cref="
BFloat16
" /> value to its nearest representable <see cref="UInt128"/>.</summary>
790
public static explicit operator UInt128(
BFloat16
value) => (UInt128)(double)(value);
792
/// <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>
797
public static explicit operator checked UInt128(
BFloat16
value) => checked((UInt128)(double)(value));
799
/// <summary>Explicitly converts a <see cref="
BFloat16
" /> value to its nearest representable <see cref="UIntPtr" /> value.</summary>
803
public static explicit operator nuint(
BFloat16
value) => (nuint)(float)value;
805
/// <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>
810
public static explicit operator checked nuint(
BFloat16
value) => checked((nuint)(float)value);
812
/// <summary>Explicitly converts a <see cref="
BFloat16
" /> value to its nearest representable <see cref="Half" /> value.</summary>
815
public static explicit operator Half(
BFloat16
value) => (Half)(float)value;
821
/// <summary>Implicitly converts a <see cref="byte" /> value to its nearest representable <see cref="
BFloat16
" /> value.</summary>
823
/// <returns><paramref name="value" /> converted to its nearest representable <see cref="
BFloat16
" /> value.</returns>
824
public static implicit operator
BFloat16
(byte value) => (
BFloat16
)(float)value;
826
/// <summary>Implicitly converts a <see cref="sbyte" /> value to its nearest representable <see cref="
BFloat16
" /> value.</summary>
828
/// <returns><paramref name="value" /> converted to its nearest representable <see cref="
BFloat16
" /> value.</returns>
830
public static implicit operator
BFloat16
(sbyte value) => (
BFloat16
)(float)value;
836
/// <summary>Explicitly converts a <see cref="
BFloat16
" /> value to its nearest representable <see cref="float"/> value.</summary>
840
public static explicit operator float(
BFloat16
value) => BitConverter.Int32BitsToSingle(value._value << 16);
842
/// <summary>Explicitly converts a <see cref="
BFloat16
" /> value to its nearest representable <see cref="double"/> value.</summary>
845
public static explicit operator double(
BFloat16
value) => (double)(float)value;
852
public static
BFloat16
operator +(
BFloat16
left,
BFloat16
right) => (
BFloat16
)((float)left + (float)right);
859
static
BFloat16
IAdditiveIdentity<
BFloat16
,
BFloat16
>.AdditiveIdentity => new BFloat16(PositiveZeroBits);
866
static
BFloat16
IBinaryNumber<
BFloat16
>.AllBitsSet => new BFloat16(0xFFFF);
869
public static bool IsPow2(
BFloat16
value)
898
public static
BFloat16
Log2(
BFloat16
value) => (
BFloat16
)float.Log2((float)value);
905
static
BFloat16
IBitwiseOperators<
BFloat16
,
BFloat16
,
BFloat16
>.operator &(
BFloat16
left,
BFloat16
right)
911
static
BFloat16
IBitwiseOperators<
BFloat16
,
BFloat16
,
BFloat16
>.operator |(
BFloat16
left,
BFloat16
right)
917
static
BFloat16
IBitwiseOperators<
BFloat16
,
BFloat16
,
BFloat16
>.operator ^(
BFloat16
left,
BFloat16
right)
923
static
BFloat16
IBitwiseOperators<
BFloat16
,
BFloat16
,
BFloat16
>.operator ~(
BFloat16
value)
933
public static
BFloat16
operator --(
BFloat16
value)
937
return (
BFloat16
)tmp;
945
public static
BFloat16
operator /(
BFloat16
left,
BFloat16
right) => (
BFloat16
)((float)left / (float)right);
952
public static
BFloat16
Exp(
BFloat16
x) => (
BFloat16
)float.Exp((float)x);
955
public static
BFloat16
ExpM1(
BFloat16
x) => (
BFloat16
)float.ExpM1((float)x);
958
public static
BFloat16
Exp2(
BFloat16
x) => (
BFloat16
)float.Exp2((float)x);
961
public static
BFloat16
Exp2M1(
BFloat16
x) => (
BFloat16
)float.Exp2M1((float)x);
964
public static
BFloat16
Exp10(
BFloat16
x) => (
BFloat16
)float.Exp10((float)x);
967
public static
BFloat16
Exp10M1(
BFloat16
x) => (
BFloat16
)float.Exp10M1((float)x);
974
public static
BFloat16
Ceiling(
BFloat16
x) => (
BFloat16
)float.Ceiling((float)x);
977
public static
BFloat16
Floor(
BFloat16
x) => (
BFloat16
)float.Floor((float)x);
980
public static
BFloat16
Round(
BFloat16
x) => (
BFloat16
)float.Round((float)x);
983
public static
BFloat16
Round(
BFloat16
x, int digits) => (
BFloat16
)float.Round((float)x, digits);
986
public static
BFloat16
Round(
BFloat16
x, MidpointRounding mode) => (
BFloat16
)float.Round((float)x, mode);
989
public static
BFloat16
Round(
BFloat16
x, int digits, MidpointRounding mode) => (
BFloat16
)float.Round((float)x, digits, mode);
992
public static
BFloat16
Truncate(
BFloat16
x) => (
BFloat16
)float.Truncate((float)x);
995
int IFloatingPoint<
BFloat16
>.GetExponentByteCount() => sizeof(sbyte);
998
int IFloatingPoint<
BFloat16
>.GetExponentShortestBitLength()
1013
int IFloatingPoint<
BFloat16
>.GetSignificandByteCount() => sizeof(ushort);
1016
int IFloatingPoint<
BFloat16
>.GetSignificandBitLength() => SignificandLength;
1019
bool IFloatingPoint<
BFloat16
>.TryWriteExponentBigEndian(Span<byte> destination, out int bytesWritten)
1033
bool IFloatingPoint<
BFloat16
>.TryWriteExponentLittleEndian(Span<byte> destination, out int bytesWritten)
1047
bool IFloatingPoint<
BFloat16
>.TryWriteSignificandBigEndian(Span<byte> destination, out int bytesWritten)
1060
bool IFloatingPoint<
BFloat16
>.TryWriteSignificandLittleEndian(Span<byte> destination, out int bytesWritten)
1077
public static
BFloat16
E => new BFloat16(EBits);
1080
public static
BFloat16
Pi => new BFloat16(PiBits);
1083
public static
BFloat16
Tau => new BFloat16(TauBits);
1090
public static
BFloat16
NegativeZero => new BFloat16(NegativeZeroBits);
1093
public static
BFloat16
Atan2(
BFloat16
y,
BFloat16
x) => (
BFloat16
)float.Atan2((float)y, (float)x);
1096
public static
BFloat16
Atan2Pi(
BFloat16
y,
BFloat16
x) => (
BFloat16
)float.Atan2Pi((float)y, (float)x);
1099
public static
BFloat16
BitDecrement(
BFloat16
x)
1132
public static
BFloat16
BitIncrement(
BFloat16
x)
1165
public static
BFloat16
FusedMultiplyAdd(
BFloat16
left,
BFloat16
right,
BFloat16
addend) => (
BFloat16
)float.FusedMultiplyAdd((float)left, (float)right, (float)addend);
1168
public static
BFloat16
Ieee754Remainder(
BFloat16
left,
BFloat16
right) => (
BFloat16
)float.Ieee754Remainder((float)left, (float)right);
1171
public static int ILogB(
BFloat16
x)
1199
public static
BFloat16
Lerp(
BFloat16
value1,
BFloat16
value2,
BFloat16
amount) => (
BFloat16
)float.Lerp((float)value1, (float)value2, (float)amount);
1202
public static
BFloat16
ReciprocalEstimate(
BFloat16
x) => (
BFloat16
)float.ReciprocalEstimate((float)x);
1205
public static
BFloat16
ReciprocalSqrtEstimate(
BFloat16
x) => (
BFloat16
)float.ReciprocalSqrtEstimate((float)x);
1208
public static
BFloat16
ScaleB(
BFloat16
x, int n) => (
BFloat16
)float.ScaleB((float)x, n);
1218
public static
BFloat16
Acosh(
BFloat16
x) => (
BFloat16
)float.Acosh((float)x);
1221
public static
BFloat16
Asinh(
BFloat16
x) => (
BFloat16
)float.Asinh((float)x);
1224
public static
BFloat16
Atanh(
BFloat16
x) => (
BFloat16
)float.Atanh((float)x);
1227
public static
BFloat16
Cosh(
BFloat16
x) => (
BFloat16
)float.Cosh((float)x);
1230
public static
BFloat16
Sinh(
BFloat16
x) => (
BFloat16
)float.Sinh((float)x);
1233
public static
BFloat16
Tanh(
BFloat16
x) => (
BFloat16
)float.Tanh((float)x);
1240
public static
BFloat16
operator ++(
BFloat16
value)
1244
return (
BFloat16
)tmp;
1252
public static
BFloat16
Log(
BFloat16
x) => (
BFloat16
)float.Log((float)x);
1255
public static
BFloat16
Log(
BFloat16
x,
BFloat16
newBase) => (
BFloat16
)float.Log((float)x, (float)newBase);
1258
public static
BFloat16
Log10(
BFloat16
x) => (
BFloat16
)float.Log10((float)x);
1261
public static
BFloat16
LogP1(
BFloat16
x) => (
BFloat16
)float.LogP1((float)x);
1264
public static
BFloat16
Log2P1(
BFloat16
x) => (
BFloat16
)float.Log2P1((float)x);
1267
public static
BFloat16
Log10P1(
BFloat16
x) => (
BFloat16
)float.Log10P1((float)x);
1274
public static
BFloat16
operator %(
BFloat16
left,
BFloat16
right) => (
BFloat16
)((float)left % (float)right);
1281
public static
BFloat16
MultiplicativeIdentity => new BFloat16(PositiveOneBits);
1288
public static
BFloat16
operator *(
BFloat16
left,
BFloat16
right) => (
BFloat16
)((float)left * (float)right);
1295
public static
BFloat16
Clamp(
BFloat16
value,
BFloat16
min,
BFloat16
max) => (
BFloat16
)Math.Clamp((float)value, (float)min, (float)max);
1298
public static
BFloat16
CopySign(
BFloat16
value,
BFloat16
sign)
1311
public static
BFloat16
Max(
BFloat16
x,
BFloat16
y) => (
BFloat16
)float.Max((float)x, (float)y);
1314
public static
BFloat16
MaxNumber(
BFloat16
x,
BFloat16
y)
1336
public static
BFloat16
Min(
BFloat16
x,
BFloat16
y) => (
BFloat16
)float.Min((float)x, (float)y);
1339
public static
BFloat16
MinNumber(
BFloat16
x,
BFloat16
y)
1361
public static int Sign(
BFloat16
value)
1385
public static
BFloat16
One => new BFloat16(PositiveOneBits);
1388
static int INumberBase<
BFloat16
>.Radix => 2;
1391
public static
BFloat16
Zero => new BFloat16(PositiveZeroBits);
1394
public static
BFloat16
Abs(
BFloat16
value) => new BFloat16((ushort)(value._value & ~SignMask));
1398
public static
BFloat16
CreateChecked<TOther>(TOther value)
1401
BFloat16
result;
1403
if (typeof(TOther) == typeof(
BFloat16
))
1405
result = (
BFloat16
)(object)value;
1417
public static
BFloat16
CreateSaturating<TOther>(TOther value)
1420
BFloat16
result;
1422
if (typeof(TOther) == typeof(
BFloat16
))
1424
result = (
BFloat16
)(object)value;
1436
public static
BFloat16
CreateTruncating<TOther>(TOther value)
1439
BFloat16
result;
1441
if (typeof(TOther) == typeof(
BFloat16
))
1443
result = (
BFloat16
)(object)value;
1454
static bool INumberBase<
BFloat16
>.IsCanonical(
BFloat16
value) => true;
1457
static bool INumberBase<
BFloat16
>.IsComplexNumber(
BFloat16
value) => false;
1460
public static bool IsEvenInteger(
BFloat16
value) => float.IsEvenInteger((float)value);
1463
static bool INumberBase<
BFloat16
>.IsImaginaryNumber(
BFloat16
value) => false;
1466
public static bool IsInteger(
BFloat16
value) => float.IsInteger((float)value);
1469
public static bool IsOddInteger(
BFloat16
value) => float.IsOddInteger((float)value);
1472
public static bool IsPositive(
BFloat16
value) => (short)(value._value) >= 0;
1475
public static bool IsRealNumber(
BFloat16
value)
1486
static bool INumberBase<
BFloat16
>.IsZero(
BFloat16
value) => IsZero(value);
1489
public static
BFloat16
MaxMagnitude(
BFloat16
x,
BFloat16
y) => (
BFloat16
)float.MaxMagnitude((float)x, (float)y);
1492
public static
BFloat16
MaxMagnitudeNumber(
BFloat16
x,
BFloat16
y)
1500
BFloat16
ax = Abs(x);
1501
BFloat16
ay = Abs(y);
1517
public static
BFloat16
MinMagnitude(
BFloat16
x,
BFloat16
y) => (
BFloat16
)float.MinMagnitude((float)x, (float)y);
1520
public static
BFloat16
MinMagnitudeNumber(
BFloat16
x,
BFloat16
y)
1528
BFloat16
ax = Abs(x);
1529
BFloat16
ay = Abs(y);
1546
static bool INumberBase<
BFloat16
>.TryConvertFromChecked<TOther>(TOther value, out
BFloat16
result)
1553
static bool INumberBase<
BFloat16
>.TryConvertFromSaturating<TOther>(TOther value, out
BFloat16
result)
1560
static bool INumberBase<
BFloat16
>.TryConvertFromTruncating<TOther>(TOther value, out
BFloat16
result)
1566
private static bool TryConvertFrom<TOther>(TOther value, out
BFloat16
result)
1575
result = (
BFloat16
)actualValue;
1581
result = (
BFloat16
)actualValue;
1587
result = (
BFloat16
)actualValue;
1599
result = (
BFloat16
)actualValue;
1605
result = (
BFloat16
)actualValue;
1611
result = (
BFloat16
)actualValue;
1617
result = (
BFloat16
)actualValue;
1623
result = (
BFloat16
)actualValue;
1629
result = (
BFloat16
)actualValue;
1635
result = (
BFloat16
)actualValue;
1641
result = (
BFloat16
)actualValue;
1647
result = (
BFloat16
)actualValue;
1653
result = (
BFloat16
)actualValue;
1659
result = (
BFloat16
)actualValue;
1665
result = (
BFloat16
)actualValue;
1671
result = (
BFloat16
)actualValue;
1683
static bool INumberBase<
BFloat16
>.TryConvertToChecked<TOther>(
BFloat16
value, [MaybeNullWhen(false)] out TOther result)
1799
static bool INumberBase<
BFloat16
>.TryConvertToSaturating<TOther>(
BFloat16
value, [MaybeNullWhen(false)] out TOther result)
1806
static bool INumberBase<
BFloat16
>.TryConvertToTruncating<TOther>(
BFloat16
value, [MaybeNullWhen(false)] out TOther result)
1812
private static bool TryConvertTo<TOther>(
BFloat16
value, [MaybeNullWhen(false)] out TOther result)
1947
public static bool TryParse([NotNullWhen(true)] string? s, IFormatProvider? provider, out
BFloat16
result) => TryParse(s, DefaultParseStyle, provider, out result);
1954
public static
BFloat16
Pow(
BFloat16
x,
BFloat16
y) => (
BFloat16
)float.Pow((float)x, (float)y);
1961
public static
BFloat16
Cbrt(
BFloat16
x) => (
BFloat16
)float.Cbrt((float)x);
1964
public static
BFloat16
Hypot(
BFloat16
x,
BFloat16
y) => (
BFloat16
)float.Hypot((float)x, (float)y);
1967
public static
BFloat16
RootN(
BFloat16
x, int n) => (
BFloat16
)float.RootN((float)x, n);
1970
public static
BFloat16
Sqrt(
BFloat16
x) => (
BFloat16
)float.Sqrt((float)x);
1977
public static
BFloat16
NegativeOne => new BFloat16(NegativeOneBits);
1984
public static
BFloat16
Parse(ReadOnlySpan<char> s, IFormatProvider? provider) => Parse(s, DefaultParseStyle, provider);
1987
public static bool TryParse(ReadOnlySpan<char> s, IFormatProvider? provider, out
BFloat16
result) => TryParse(s, DefaultParseStyle, provider, out result);
1994
public static
BFloat16
operator -(
BFloat16
left,
BFloat16
right) => (
BFloat16
)((float)left - (float)right);
2001
public static
BFloat16
Acos(
BFloat16
x) => (
BFloat16
)float.Acos((float)x);
2004
public static
BFloat16
AcosPi(
BFloat16
x) => (
BFloat16
)float.AcosPi((float)x);
2007
public static
BFloat16
Asin(
BFloat16
x) => (
BFloat16
)float.Asin((float)x);
2010
public static
BFloat16
AsinPi(
BFloat16
x) => (
BFloat16
)float.AsinPi((float)x);
2013
public static
BFloat16
Atan(
BFloat16
x) => (
BFloat16
)float.Atan((float)x);
2016
public static
BFloat16
AtanPi(
BFloat16
x) => (
BFloat16
)float.AtanPi((float)x);
2019
public static
BFloat16
Cos(
BFloat16
x) => (
BFloat16
)float.Cos((float)x);
2022
public static
BFloat16
CosPi(
BFloat16
x) => (
BFloat16
)float.CosPi((float)x);
2025
public static
BFloat16
DegreesToRadians(
BFloat16
degrees)
2030
return (
BFloat16
)float.DegreesToRadians((float)degrees);
2034
public static
BFloat16
RadiansToDegrees(
BFloat16
radians)
2039
return (
BFloat16
)float.RadiansToDegrees((float)radians);
2043
public static
BFloat16
Sin(
BFloat16
x) => (
BFloat16
)float.Sin((float)x);
2046
public static (
BFloat16
Sin,
BFloat16
Cos) SinCos(
BFloat16
x)
2049
return ((
BFloat16
)sin, (
BFloat16
)cos);
2053
public static (
BFloat16
SinPi,
BFloat16
CosPi) SinCosPi(
BFloat16
x)
2056
return ((
BFloat16
)sinPi, (
BFloat16
)cosPi);
2060
public static
BFloat16
SinPi(
BFloat16
x) => (
BFloat16
)float.SinPi((float)x);
2063
public static
BFloat16
Tan(
BFloat16
x) => (
BFloat16
)float.Tan((float)x);
2066
public static
BFloat16
TanPi(
BFloat16
x) => (
BFloat16
)float.TanPi((float)x);
2073
public static
BFloat16
operator -(
BFloat16
value) => (
BFloat16
)(-(float)value);
2080
public static
BFloat16
operator +(
BFloat16
value) => value;
2087
public static
BFloat16
Parse(ReadOnlySpan<byte> utf8Text, NumberStyles style = DefaultParseStyle, IFormatProvider? provider = null)
2090
return Number.ParseFloat<byte,
BFloat16
>(utf8Text, style, NumberFormatInfo.GetInstance(provider));
2094
public static bool TryParse(ReadOnlySpan<byte> utf8Text, NumberStyles style, IFormatProvider? provider, out
BFloat16
result)
2101
public static
BFloat16
Parse(ReadOnlySpan<byte> utf8Text, IFormatProvider? provider) => Parse(utf8Text, DefaultParseStyle, provider);
2104
public static bool TryParse(ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out
BFloat16
result) => TryParse(utf8Text, DefaultParseStyle, provider, out result);
2110
static int IBinaryFloatParseAndFormatInfo<
BFloat16
>.NumberBufferLength => 96 + 1 + 1; // 96 for the longest input + 1 for rounding (+1 for the null terminator)
2112
static ulong IBinaryFloatParseAndFormatInfo<
BFloat16
>.ZeroBits => 0;
2113
static ulong IBinaryFloatParseAndFormatInfo<
BFloat16
>.InfinityBits => PositiveInfinityBits;
2115
static ulong IBinaryFloatParseAndFormatInfo<
BFloat16
>.NormalMantissaMask => (1UL << SignificandLength) - 1;
2116
static ulong IBinaryFloatParseAndFormatInfo<
BFloat16
>.DenormalMantissaMask => TrailingSignificandMask;
2118
static int IBinaryFloatParseAndFormatInfo<
BFloat16
>.MinBinaryExponent => 1 - MaxExponent;
2119
static int IBinaryFloatParseAndFormatInfo<
BFloat16
>.MaxBinaryExponent => MaxExponent;
2121
static int IBinaryFloatParseAndFormatInfo<
BFloat16
>.MinDecimalExponent => -41;
2122
static int IBinaryFloatParseAndFormatInfo<
BFloat16
>.MaxDecimalExponent => 39;
2124
static int IBinaryFloatParseAndFormatInfo<
BFloat16
>.ExponentBias => ExponentBias;
2125
static ushort IBinaryFloatParseAndFormatInfo<
BFloat16
>.ExponentBits => BiasedExponentLength;
2127
static int IBinaryFloatParseAndFormatInfo<
BFloat16
>.OverflowDecimalExponent => (MaxExponent + (2 * SignificandLength)) / 3;
2128
static int IBinaryFloatParseAndFormatInfo<
BFloat16
>.InfinityExponent => MaxBiasedExponent;
2130
static ushort IBinaryFloatParseAndFormatInfo<
BFloat16
>.NormalMantissaBits => SignificandLength;
2131
static ushort IBinaryFloatParseAndFormatInfo<
BFloat16
>.DenormalMantissaBits => TrailingSignificandLength;
2133
static int IBinaryFloatParseAndFormatInfo<
BFloat16
>.MinFastFloatDecimalExponent => -59;
2134
static int IBinaryFloatParseAndFormatInfo<
BFloat16
>.MaxFastFloatDecimalExponent => 38;
2136
static int IBinaryFloatParseAndFormatInfo<
BFloat16
>.MinExponentRoundToEven => -24;
2137
static int IBinaryFloatParseAndFormatInfo<
BFloat16
>.MaxExponentRoundToEven => 3;
2139
static int IBinaryFloatParseAndFormatInfo<
BFloat16
>.MaxExponentFastPath => 3;
2140
static ulong IBinaryFloatParseAndFormatInfo<
BFloat16
>.MaxMantissaFastPath => 2UL << TrailingSignificandLength;
2142
static int IBinaryFloatParseAndFormatInfo<
BFloat16
>.MaxRoundTripDigits => 4;
2144
static int IBinaryFloatParseAndFormatInfo<
BFloat16
>.MaxPrecisionCustomFormat => 4;
2146
static
BFloat16
IBinaryFloatParseAndFormatInfo<
BFloat16
>.BitsToFloat(ulong bits) => new BFloat16((ushort)(bits));
2148
static ulong IBinaryFloatParseAndFormatInfo<
BFloat16
>.FloatToBits(
BFloat16
value) => value._value;
System.Runtime (1)
artifacts\obj\System.Runtime\Debug\net11.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>
1923
public static explicit operator
BFloat16
(BigInteger value)
1925
return (
BFloat16
)(double)value;
2181
/// <summary>Explicitly converts a <see cref="
BFloat16
" /> value to a big integer.</summary>
2184
public static explicit operator BigInteger(
BFloat16
value)
4021
else if (typeof(TOther) == typeof(
BFloat16
))
4023
BFloat16
actualValue = (
BFloat16
)(object)value;
4144
else if (typeof(TOther) == typeof(
BFloat16
))
4146
BFloat16
actualValue = (
BFloat16
)(object)value;
4147
result =
BFloat16
.IsNaN(actualValue) ? Zero : (BigInteger)actualValue;
4267
else if (typeof(TOther) == typeof(
BFloat16
))
4269
BFloat16
actualValue = (
BFloat16
)(object)value;
4270
result =
BFloat16
.IsNaN(actualValue) ? Zero : (BigInteger)actualValue;
4386
else if (typeof(TOther) == typeof(
BFloat16
))
4388
BFloat16
actualResult = (
BFloat16
)value;
4534
else if (typeof(TOther) == typeof(
BFloat16
))
4536
BFloat16
actualResult = (
BFloat16
)value;
4745
else if (typeof(TOther) == typeof(
BFloat16
))
4747
BFloat16
actualResult = (
BFloat16
)value;
System\Numerics\Complex.cs (15)
837
/// <summary>Implicitly converts a <see cref="
BFloat16
" /> value to a double-precision complex number.</summary>
840
public static implicit operator Complex(
BFloat16
value)
1551
else if (typeof(TOther) == typeof(
BFloat16
))
1553
BFloat16
actualValue = (
BFloat16
)(object)value;
1690
else if (typeof(TOther) == typeof(
BFloat16
))
1692
BFloat16
actualResult = (value.m_imaginary != 0) ?
BFloat16
.NaN : (
BFloat16
)value.m_real;
1889
else if (typeof(TOther) == typeof(
BFloat16
))
1891
BFloat16
actualResult = (
BFloat16
)value.m_real;
2031
else if (typeof(TOther) == typeof(
BFloat16
))
2033
BFloat16
actualResult = (
BFloat16
)value.m_real;