The above patch introduces eno2 to CarpetInterp2. It works very similar to the the original Lagrange interpolator. The only difference is that the new interpolator uses a new class fasterp_eno2_src_loc_t instead of the original fasterp_src_loc_t. Similar to what is done in fasterp_src_loc_t, fasterp_eno2_src_loc_t computes the stencil coefficients and stores them. The interpolation algorithm with fasterp_eno2_src_loc_t is adapted for eno2.
I had to introduce templates to recycle the surrounding code in which fasterp_src_loc_t/fasterp_eno2_src_loc_t is used.
The above patch was tested with a 2-patch and a 7-patch system, a shock tube and an excited TOV. The necessary changes to Llama/Interpolate2 are contained in a different patch.