<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def enu2aer(e: np.ndarray, n: np.ndarray, u: np.ndarray, deg: bool = True) -> Tuple[float, float, float]: """ ENU to Azimuth, Elevation, Range Parameters e : float or np.ndarray of float ENU East coordinate (meters) n : float or np.ndarray of float ENU North coordinate (meters) u : float or np.ndarray of float ENU Up coordinate (meters) deg : bool, optional degrees input/output (False: radians in/out) Results ------- azimuth : float or np.ndarray of float azimuth to rarget elevation : float or np.ndarray of float elevation to target srange : float or np.ndarray of float slant range [meters] """

    # 1 millimeter precision for singularity

    e = np.asarray(e)
    n = np.asarray(n)
    u = np.asarray(u)

    with np.errstate(invalid='ignore'):
        e[abs(e) < 1e-3] = 0.
        n[abs(n) < 1e-3] = 0.
        u[abs(u) < 1e-3] = 0.

        r = hypot(e, n)
        slantRange = hypot(r, u)
        elev = arctan2(u, r)
        az = arctan2(e, n) % tau

    if deg:
        az = degrees(az)
        elev = degrees(elev)

    return az, elev, slantRange