#ifndef SHRIMPS_Eikonals_Grid_H #define SHRIMPS_Eikonals_Grid_H #include "ATOOLS/Math/MathTools.H" #include namespace SHRIMPS { class Grid { private: size_t m_ff1steps, m_ff2steps; double m_ff1max, m_ff2max, m_Ymax; size_t m_ff1bin, m_ff2bin; double m_deltaff1, m_deltaff2, m_deltay; double m_ff1low, m_ff1up, m_ff2low, m_ff2up; double m_d1up, m_d1low, m_d2up, m_d2low; std::vector > > m_grid; bool FixBins(const double & ff1,const double & ff2); double ValueAtLowerYEdge(); double ValueAtUpperYEdge(); double Value(const double & y); public: Grid(const double & Ymax); ~Grid(); void Initialise(const size_t & ff1steps,const size_t & ff2steps, const double & ff1max,const double & ff2max); void InsertValues(const size_t & i,const size_t & j, const std::vector & values); double operator()(const double & ff1,const double & ff2,const double & y); }; } #endif