76 G4double B=std::log(y2/y1)/std::log(x2/x1);
99 if (InterPolMethod ==
"Log" ){
102 else if (InterPolMethod ==
"Lin" ){
105 else if (InterPolMethod ==
"Exp" ){
122 size_t ndim = x_vec.size();
124 size_t ind2 = ndim - 1;
136 if (x_vec[0] < x_vec[1] ) {
138 size_t midBin = (ind1 + ind2)/2;
139 if (x < x_vec[midBin])
144 }
while (ind2 - ind1 > 1);
148 size_t midBin = (ind1 + ind2)/2;
149 if (x < x_vec[midBin])
154 }
while (ind2 - ind1 > 1);
195 return Interpolation( x,x_vec[i],x_vec[i+1],y_vec[i],y_vec[i+1],InterPolMethod);
204 if (x>x0) ind=
int((x-x0)/dx);
205 if (ind >= index_vec.size()-1) ind= index_vec.size()-2;
206 size_t ind1 = index_vec[ind];
207 size_t ind2 = index_vec[ind+1];
215 return Interpolation( x,x_vec[ind],x_vec[ind+1],y_vec[ind],y_vec[ind+1],
"Lin");
Float_t y1[n_points_granero]
G4double LinearInterpolation(G4double &x, G4double &x1, G4double &x2, G4double &y1, G4double &y2)
Float_t x1[n_points_granero]
G4double Interpolate(G4double &x, std::vector< G4double > &x_vec, std::vector< G4double > &y_vec, G4String InterPolMethod="Log")
G4double InterpolateForLogVector(G4double &x, std::vector< G4double > &x_vec, std::vector< G4double > &y_vec)
static G4AdjointInterpolator * GetAdjointInterpolator()
G4double ExponentialInterpolation(G4double &x, G4double &x1, G4double &x2, G4double &y1, G4double &y2)
Float_t y2[n_points_geant4]
G4double LogarithmicInterpolation(G4double &x, G4double &x1, G4double &x2, G4double &y1, G4double &y2)
G4double Interpolation(G4double &x, G4double &x1, G4double &x2, G4double &y1, G4double &y2, G4String InterPolMethod="Log")
static G4ThreadLocal G4AdjointInterpolator * theInstance
G4double InterpolateWithIndexVector(G4double &x, std::vector< G4double > &x_vec, std::vector< G4double > &y_vec, std::vector< size_t > &index_vec, G4double x0, G4double dx)
size_t FindPosition(G4double &x, std::vector< G4double > &x_vec, size_t ind_min=0, size_t ind_max=0)
typedef int(XMLCALL *XML_NotStandaloneHandler)(void *userData)
double A(double temperature)
static G4AdjointInterpolator * GetInstance()
size_t FindPositionForLogVector(G4double &x, std::vector< G4double > &x_vec)
Float_t x2[n_points_geant4]
double B(double temperature)