fn u128_msb(mut i: u128) -> u8 {
    debug_assert_ne!(i, 0);
    const IDX_MAP: [u8; 16] = [0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4];
    let mut n: u8 = 0;
    if i & 0xffffffffffffffff0000000000000000_u128 != 0 {
        n = 64;
        i >>= 64;
    };
    if i & 0x0000000000000000ffffffff00000000_u128 != 0 {
        n += 32;
        i >>= 32;
    };
    if i & 0x000000000000000000000000ffff0000_u128 != 0 {
        n += 16;
        i >>= 16;
    };
    if i & 0x0000000000000000000000000000ff00_u128 != 0 {
        n += 8;
        i >>= 8;
    };
    if i & 0x000000000000000000000000000000f0_u128 != 0 {
        n += 4;
        i >>= 4;
    };
    n + IDX_MAP[i as usize] - 1
}
/// Return the index of the most significant bit of an u128.
/// The given u128 must not be zero!
Return the index of the most significant bit of an u128.
The given u128 must not be zero!
Return the index of the most significant bit of an u128 . The given u128 must not be zero!
fn u128_msb(mut i: u128) -> u8 {
    debug_assert_ne!(i, 0);
    const IDX_MAP: [u8; 16] = [0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4];
    let mut n: u8 = 0;
    if i & 0xffffffffffffffff0000000000000000_u128 != 0 {
        n = 64;
        i >>= 64;
    };
    if i & 0x0000000000000000ffffffff00000000_u128 != 0 {
        n += 32;
        i >>= 32;
    };
    if i & 0x000000000000000000000000ffff0000_u128 != 0 {
        n += 16;
        i >>= 16;
    };
    if i & 0x0000000000000000000000000000ff00_u128 != 0 {
        n += 8;
        i >>= 8;
    };
    if i & 0x000000000000000000000000000000f0_u128 != 0 {
        n += 4;
        i >>= 4;
    };
    n + IDX_MAP[i as usize] - 1
}
fn u128_msb ( mut i : u128 ) -> u8 { debug_assert_ne ! ( i 0 ) ; const IDX_MAP : [ u8 ; 16 ] = [ 0 , 1 , 2 , 2 , 3 , 3 , 3 , 3 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 ] ; let mut n : u8 = 0 ; if i & 0xffffffffffffffff0000000000000000_u128 != 0 { n = 64 ; i >>= 64 ; } ; if i & 0x0000000000000000ffffffff00000000_u128 != 0 { n += 32 ; i >>= 32 ; } ; if i & 0x000000000000000000000000ffff0000_u128 != 0 { n += 16 ; i >>= 16 ; } ; if i & 0x0000000000000000000000000000ff00_u128 != 0 { n += 8 ; i >>= 8 ; } ; if i & 0x000000000000000000000000000000f0_u128 != 0 { n += 4 ; i >>= 4 ; } ; n + IDX_MAP [ i as usize ] - 1 }
Return the index of the most significant bit of an u128.
Return the index of the most significant bit of an u128 .
i
u128