func (i Int128) Mul(j Int128) Int128 {
	panic("unimplemented")
}
Mul computes i * j.
package i128
type Int128 struct {
	lo int64
	hi int64
}
func (i Int128) And(j Int128) Int128 {
	return Int128{
		lo: i.lo & j.lo,
		hi: i.hi & j.hi,
	}
}
func (i Int128) Or(j Int128) Int128 {
	return Int128{
		lo: i.lo | j.lo,
		hi: i.hi | j.hi,
	}
}
func (i Int128) Xor(j Int128) Int128 {
	return Int128{
		lo: i.lo ^ j.lo,
		hi: i.hi ^ j.hi,
	}
}
func (i Int128) AndNot(j Int128) Int128 {
	return Int128{
		lo: i.lo &^ j.lo,
		hi: i.hi &^ j.hi,
	}
}
func (i Int128) Add(j Int128) Int128 {
	k := Int128{
		lo: i.lo + j.lo,
		hi: i.hi + j.hi,
	}
	if (k.lo < i.lo) != (j.lo < 0) {
		k.hi++
	}
	return k
}