def WENOReconstruct( u_stencil, eps, p ):
    """WENO reconstruction.  This reconstructs u_{i+1/2}
    given cell averages \\bar{u}_i at each neighboring location.
    
    See `High Order Weighted Essentially Nonoscillatory Schemes for
    Convection Dominated Problems'. 

    Input
    -----

        u_stencil : 
            stencil describing current solution
        eps       : 
            regularization parameter
        p         :
            power parameter

    Returns
    -------

        uiphf     :
            u_{i+1/2} after performing the full reconstruction procedure.

    """

    uim2, uim1, ui, uip1, uip2 = u_stencil

    return uim2/30 - (13*uim1)/60 + 47*(ui/60) + 9*(uip1/20) - uip2/20