34#ifndef G4AdjointInterpolator_h
35#define G4AdjointInterpolator_h 1
64 size_t ind_min = 0,
size_t ind_max = 0);
70 std::vector<G4double>& y_vec,
74 G4double& x, std::vector<G4double>& x_vec, std::vector<G4double>& y_vec,
75 std::vector<size_t>& index_vec,
G4double x0,
79 std::vector<G4double>& y_vec);
G4AdjointInterpolator & operator=(const G4AdjointInterpolator &right)=delete
G4double Interpolation(G4double &x, G4double &x1, G4double &x2, G4double &y1, G4double &y2, G4String InterPolMethod="Log")
static G4ThreadLocal G4AdjointInterpolator * fInstance
G4double LinearInterpolation(G4double &x, G4double &x1, G4double &x2, G4double &y1, G4double &y2)
G4double ExponentialInterpolation(G4double &x, G4double &x1, G4double &x2, G4double &y1, G4double &y2)
G4double Interpolate(G4double &x, std::vector< G4double > &x_vec, std::vector< G4double > &y_vec, G4String InterPolMethod="Log")
static G4AdjointInterpolator * GetInstance()
size_t FindPosition(G4double &x, std::vector< G4double > &x_vec, size_t ind_min=0, size_t ind_max=0)
G4AdjointInterpolator(G4AdjointInterpolator &)=delete
size_t FindPositionForLogVector(G4double &x, std::vector< G4double > &x_vec)
static G4AdjointInterpolator * GetAdjointInterpolator()
G4double InterpolateWithIndexVector(G4double &x, std::vector< G4double > &x_vec, std::vector< G4double > &y_vec, std::vector< size_t > &index_vec, G4double x0, G4double dx)
G4double LogarithmicInterpolation(G4double &x, G4double &x1, G4double &x2, G4double &y1, G4double &y2)
G4double InterpolateForLogVector(G4double &x, std::vector< G4double > &x_vec, std::vector< G4double > &y_vec)