/**
 @file interp.h
 @brief Interpolation functions.
 @author CLS
 */
#ifndef _INTERP_H
#define _INTERP_H

/**
 @fn bilinearInterp(const double x_1, const double x_2, const double y_1,
 const double y_2, const double value_11, const double value_21,
 const double value_12, const double value_22, const double x,
 const double y)

 @brief Interpolate a value at a given point.

 @param x_1       X-coordinate X1
 @param x_2       X-coordinate X2
 @param y_1       Y-coordinate Y1
 @param y_2        Y-coordinate Y2
 @param value_11  Value of the point (X1, Y1)
 @param value_21  Value of the point (X2, Y1)
 @param value_12  Value of the point (X1, Y2)
 @param value_22  Value of the point (X2, Y2)
 @param x         X-coordinate of the point where the interpolation is carried
 out
 @param y         Y-coordinate of the point where the interpolation is carried
 out

 @return The interpolated value at the given point.
 */
double bilinearInterp(
        const double x_1,
        const double x_2,
        const double y_1,
        const double y_2,
        const double value_11,
        const double value_21,
        const double value_12,
        const double value_22,
        const double x,
        const double y);
#endif
