public unsafe static Int256 operator /(Int256 left, Int256 right) { Int256 result = default; BigIntArithmetic.Div(&left.low, &right.low, &result.low, Size64); return(result); }
public unsafe static UInt128 operator *(UInt128 left, UInt128 right) { UInt128 result = default; BigIntArithmetic.Mul((uint *)&left.low, (uint *)&right.low, (uint *)&result.low, Size32); return(result); }
public unsafe static Int256 operator *(Int256 left, Int256 right) { Int256 result = default; BigIntArithmetic.Mul((uint *)&left.low, (uint *)&right.low, (uint *)&result.low, Size32); return(result); }
public unsafe static UInt128 operator /(UInt128 left, UInt128 right) { UInt128 result = default; BigIntArithmetic.Div(&left.low, &right.low, &result.low, Size64); return(result); }
// -1 to 1 public static uint *NegAlloc(uint *src, int size) { uint *temp = (uint *)Marshal.AllocHGlobal(size << 2); BigIntArithmetic.NEG(src, temp, size); return(temp); }
public unsafe static Int128 operator ^(Int128 left, Int128 right) { BigIntArithmetic.XOR(&left.low, &right.low, Size64); return(left); }
public unsafe static Int256 operator -(Int256 left, Int256 right) { BigIntArithmetic.Sub((uint *)&left.low, (uint *)&right.low, Size32); return(left); }
public unsafe static UInt256 operator ^(UInt256 left, UInt256 right) { BigIntArithmetic.XOR(&left.low, &right.low, Size64); return(left); }
public unsafe int CompareTo(Int256 other) { fixed(ulong *ptr = &low) return(BigIntArithmetic.CompareTo(ptr, &other.low, Size64)); }
public unsafe string ToString(string format) { fixed(ulong *ptr = &low) return(BigIntArithmetic.FormatString((uint *)ptr, Size32, Signed, format)); }
public unsafe static Int256 operator -(Int256 value) { BigIntArithmetic.NEG((uint *)&value.low, (uint *)&value.low, Size32); return(value); }
public unsafe static Int256 operator &(Int256 left, Int256 right) { BigIntArithmetic.AND(&left.low, &right.low, Size64); return(left); }
public unsafe static UInt256 operator +(UInt256 left, UInt256 right) { BigIntArithmetic.Add((uint *)&left.low, (uint *)&right.low, Size32); return(left); }
public unsafe static Int128 operator +(Int128 left, Int128 right) { BigIntArithmetic.Add((uint *)&left.low, (uint *)&right.low, Size32); return(left); }
public unsafe static UInt128 operator -(UInt128 value) { BigIntArithmetic.NEG((uint *)&value.low, (uint *)&value.low, Size32); return(value); }
public unsafe static UInt128 operator -(UInt128 left, UInt128 right) { BigIntArithmetic.Sub((uint *)&left.low, (uint *)&right.low, Size32); return(left); }
public unsafe static UInt128 operator &(UInt128 left, UInt128 right) { BigIntArithmetic.AND(&left.low, &right.low, Size64); return(left); }