1 write to _lower
System.Private.CoreLib (1)
src\libraries\System.Private.CoreLib\src\System\UInt128.cs (1)
42
_lower
= lower;
92 references to _lower
System.Private.CoreLib (92)
src\libraries\System.Private.CoreLib\src\System\UInt128.cs (92)
46
internal ulong Lower =>
_lower
;
97
public override int GetHashCode() => HashCode.Combine(
_lower
, _upper);
184
public static explicit operator byte(UInt128 value) => (byte)value.
_lower
;
196
return checked((byte)value.
_lower
);
202
public static explicit operator char(UInt128 value) => (char)value.
_lower
;
214
return checked((char)value.
_lower
);
222
ulong lo64 = value.
_lower
;
259
return (double)(value.
_lower
);
267
double lower = BitConverter.UInt64BitsToDouble(TwoPow52Bits | ((value.
_lower
<< 12) >> 12)) - TwoPow52;
278
double lower = BitConverter.UInt64BitsToDouble(TwoPow76Bits | ((ulong)(value >> 12) >> 12) | (value.
_lower
& 0xFFFFFF)) - TwoPow76;
293
public static explicit operator short(UInt128 value) => (short)value.
_lower
;
305
return checked((short)value.
_lower
);
311
public static explicit operator int(UInt128 value) => (int)value.
_lower
;
323
return checked((int)value.
_lower
);
329
public static explicit operator long(UInt128 value) => (long)value.
_lower
;
341
return checked((long)value.
_lower
);
348
public static explicit operator Int128(UInt128 value) => new Int128(value._upper, value.
_lower
);
361
return new Int128(value._upper, value.
_lower
);
367
public static explicit operator nint(UInt128 value) => (nint)value.
_lower
;
379
return checked((nint)value.
_lower
);
386
public static explicit operator sbyte(UInt128 value) => (sbyte)value.
_lower
;
399
return checked((sbyte)value.
_lower
);
411
public static explicit operator ushort(UInt128 value) => (ushort)value.
_lower
;
424
return checked((ushort)value.
_lower
);
431
public static explicit operator uint(UInt128 value) => (uint)value.
_lower
;
444
return checked((uint)value.
_lower
);
451
public static explicit operator ulong(UInt128 value) => value.
_lower
;
464
return value.
_lower
;
471
public static explicit operator nuint(UInt128 value) => (nuint)value.
_lower
;
484
return checked((nuint)value.
_lower
);
747
ulong lower = left.
_lower
+ right.
_lower
;
748
ulong carry = (lower < left.
_lower
) ? 1UL : 0UL;
760
ulong lower = left.
_lower
+ right.
_lower
;
761
ulong carry = (lower < left.
_lower
) ? 1UL : 0UL;
795
return 64 + BitOperations.LeadingZeroCount(value.
_lower
);
802
=> ulong.PopCount(value.
_lower
) + ulong.PopCount(value._upper);
815
if (value.
_lower
== 0)
819
return ulong.TrailingZeroCount(value.
_lower
);
987
return ulong.Log2(value.
_lower
);
997
public static UInt128 operator &(UInt128 left, UInt128 right) => new UInt128(left._upper & right._upper, left.
_lower
& right.
_lower
);
1000
public static UInt128 operator |(UInt128 left, UInt128 right) => new UInt128(left._upper | right._upper, left.
_lower
| right.
_lower
);
1003
public static UInt128 operator ^(UInt128 left, UInt128 right) => new UInt128(left._upper ^ right._upper, left.
_lower
^ right.
_lower
);
1006
public static UInt128 operator ~(UInt128 value) => new UInt128(~value._upper, ~value.
_lower
);
1016
|| (left._upper == right._upper) && (left.
_lower
< right.
_lower
);
1023
|| (left._upper == right._upper) && (left.
_lower
<= right.
_lower
);
1030
|| (left._upper == right._upper) && (left.
_lower
> right.
_lower
);
1037
|| (left._upper == right._upper) && (left.
_lower
>= right.
_lower
);
1059
if (right.
_lower
== 0)
1067
return left.
_lower
/ right.
_lower
;
1075
if (remainder >= right.
_lower
)
1077
(highRes, remainder) = X86Base.X64.DivRem(left._upper, 0, right.
_lower
);
1080
return new UInt128(highRes, X86Base.X64.DivRem(left.
_lower
, remainder, right.
_lower
).Quotient);
1144
Unsafe.WriteUnaligned(ref *(byte*)(pLeft + 0), (uint)(quotient.
_lower
>> 00));
1145
Unsafe.WriteUnaligned(ref *(byte*)(pLeft + 1), (uint)(quotient.
_lower
>> 32));
1156
Unsafe.WriteUnaligned(ref *(byte*)(pRight + 0), (uint)(divisor.
_lower
>> 00));
1157
Unsafe.WriteUnaligned(ref *(byte*)(pRight + 1), (uint)(divisor.
_lower
>> 32));
1300
public static bool operator ==(UInt128 left, UInt128 right) => (left.
_lower
== right.
_lower
) && (left._upper == right._upper);
1303
public static bool operator !=(UInt128 left, UInt128 right) => (left.
_lower
!= right.
_lower
) || (left._upper != right._upper);
1350
ulong upper = Math.BigMul(left.
_lower
, right.
_lower
, out ulong lower);
1351
upper += (left._upper * right.
_lower
) + (left.
_lower
* right._upper);
1376
ulong al = left.
_lower
;
1379
ulong bl = right.
_lower
;
1384
UInt128 tl = Math.BigMul(al, bh) + t.
_lower
;
1386
lower = new UInt128(tl.
_lower
, mull.
_lower
);
1512
public static bool IsEvenInteger(UInt128 value) => (value.
_lower
& 1) == 0;
1539
public static bool IsOddInteger(UInt128 value) => (value.
_lower
& 1) != 0;
2022
ulong upper = value.
_lower
<< shiftAmount;
2030
ulong lower = value.
_lower
<< shiftAmount;
2031
ulong upper = (value._upper << shiftAmount) | (value.
_lower
>> (64 - shiftAmount));
2066
ulong lower = (value.
_lower
>> shiftAmount) | (value._upper << (64 - shiftAmount));
2097
ulong lower = left.
_lower
- right.
_lower
;
2098
ulong borrow = (lower > left.
_lower
) ? 1UL : 0UL;
2110
ulong lower = left.
_lower
- right.
_lower
;
2111
ulong borrow = (lower > left.
_lower
) ? 1UL : 0UL;