def squareRoot(num):
    """[summary]
    Uses the heron-procedure. 

    Arguments:
        num {[float]} -- [radikant]
    
    Returns:
        [float] -- [result]
    """
    xn = num / 10.0 # init step
    EPSILON = 0.001 # precision
    while abs(xn**2 - num) > EPSILON:
        xn = 0.5 * (xn + (num/xn))
    return xn