Spaces Data

Minimal test - lines (81, 105)

path: .spaces[2].metrics.loc.cloc
old: 19.0
new: 20.0

path: .spaces[2].metrics.loc.sloc
old: 24.0
new: 25.0

path: .spaces[2].metrics.mi.mi_visual_studio
old: 55.672368953028176
new: 55.28563426809945

path: .spaces[2].metrics.mi.mi_sei
old: 111.026305146664
new: 110.14011844411324

path: .spaces[2].metrics.mi.mi_original
old: 95.1997509096782
new: 94.53843459845004

Code

def byte_size(number):
    '''
    Returns the number of bytes required to hold a specific long number.
    
    The number of bytes is rounded up.

    Usage::

        >>> byte_size(1 << 1023)
        128
        >>> byte_size((1 << 1024) - 1)
        128
        >>> byte_size(1 << 1024)
        129

    :param number:
        An unsigned integer
    :returns:
        The number of bytes required to hold a specific long number.
    '''
    quanta, mod = divmod(bit_size(number), 8)
    if mod or number == 0:
        quanta += 1
    return quanta
    #return int(math.ceil(bit_size(number) / 8.0))

Minimal test - lines (108, 128)

path: .spaces[3].metrics.mi.mi_sei
old: 98.09165007675044
new: 99.2862198393522

path: .spaces[3].metrics.loc.cloc
old: 10.0
new: 11.0

Code

def extended_gcd(a, b):
    '''Returns a tuple (r, i, j) such that r = gcd(a, b) = ia + jb
    '''
    # r = gcd(a,b) i = multiplicitive inverse of a mod b
    #      or      j = multiplicitive inverse of b mod a
    # Neg return values for i or j are made positive mod b or a respectively
    # Iterateive Version is faster and uses much less stack space
    x = 0
    y = 1
    lx = 1
    ly = 0
    oa = a                             #Remember original a/b to remove 
    ob = b                             #negative values from return results
    while b != 0:
        q = a // b
        (a, b)  = (b, a % b)
        (x, lx) = ((lx - (q * x)),x)
        (y, ly) = ((ly - (q * y)),y)
    if (lx < 0): lx += ob              #If neg wrap modulo orignal b
    if (ly < 0): ly += oa              #If neg wrap modulo orignal a
    return (a, lx, ly)                 #Return only positive values