Reflect a 3-D point through a plane intersecting the origin.

    nv defines the normal vector to the plane (needs not be normalized)

    .. todo:: Complete point_reflect docstring

    Raises
    ------
    ValueError : If pt or nv are not reducible to 3-D vectors
    ValueError : If norm of nv is too small

def point_reflect(pt, nv):
    """ Reflect a 3-D point through a plane intersecting the origin.

    nv defines the normal vector to the plane (needs not be normalized)

    .. todo:: Complete point_reflect docstring

    Raises
    ------
    ValueError : If pt or nv are not reducible to 3-D vectors
    ValueError : If norm of nv is too small
    """

    # Imports
    import numpy as np
    from scipy import linalg as spla

    # Ensure pt is reducible to 3-D vector
    pt = make_nd_vec(pt, nd=3, t=np.float64, norm=False)

    # Transform the point and return
    refl_pt = np.dot(mtx_refl(nv, reps=1), pt)
    return refl_pt