pub fn gcd_stein<T: SemiArithmetic + Bits + TrailingZeros + for<'a> SubAssign<&'a T>>( x: T, y: T, ) -> Twhere for<'a> &'a T: PartialEq + BitOr<Output = T>,