Hello sympy group,

I'm looking for a python function, perhaps named isqrt(), that can find the 
truncated square root of an integer quickly.

>From 
http://code.activestate.com/recipes/577821-integer-square-root-function/
I've been using one based on Newton's root method:

def isqrt(x):
    if x < 0:
        raise ValueError('square root not defined for negative numbers')
    n = int(x)
    if n == 0:
        return 0
    a, b = divmod(n.bit_length(), 2)
    x = 2**(a+b)
    while True:
        y = (x + n//x)//2
        if y >= x:
            return x
        x = y


Does sympy have a faster one somewhere? Thanks.

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/sympy/-/AxNUBIJea20J.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sympy?hl=en.

Reply via email to