52 G4AdjointInterpolator::G4AdjointInterpolator()
76 G4double B=std::log(y2/y1)/std::log(x2/x1);
88 G4double B=(std::log(y2)-std::log(y1));
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])
143 }
while (ind2 - ind1 > 1);
147 size_t midBin = (ind1 + ind2)/2;
148 if (x < x_vec[midBin])
152 }
while (ind2 - ind1 > 1);
193 return Interpolation( x,x_vec[i],x_vec[i+1],y_vec[i],y_vec[i+1],InterPolMethod);
202 if (x>x0) ind=
int((x-x0)/dx);
203 if (ind >= index_vec.size()-1) ind= index_vec.size()-2;
204 size_t ind1 = index_vec[ind];
205 size_t ind2 = index_vec[ind+1];
213 return Interpolation( x,x_vec[ind],x_vec[ind+1],y_vec[ind],y_vec[ind+1],
"Lin");
G4double InterpolateWithIndexVector(G4double &x, std::vector< G4double > &x_vec, std::vector< G4double > &y_vec, std::vector< size_t > &index_vec, G4double x0, G4double dx)
typedef int(XMLCALL *XML_NotStandaloneHandler)(void *userData)
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")
G4double InterpolateForLogVector(G4double &x, std::vector< G4double > &x_vec, std::vector< G4double > &y_vec)
G4double Interpolate(G4double &x, std::vector< G4double > &x_vec, std::vector< G4double > &y_vec, G4String InterPolMethod="Log")
static G4AdjointInterpolator * GetAdjointInterpolator()
size_t FindPositionForLogVector(G4double &x, std::vector< G4double > &x_vec)
size_t FindPosition(G4double &x, std::vector< G4double > &x_vec, size_t ind_min=0, size_t ind_max=0)
G4double LinearInterpolation(G4double &x, G4double &x1, G4double &x2, G4double &y1, G4double &y2)
static G4AdjointInterpolator * GetInstance()
G4double ExponentialInterpolation(G4double &x, G4double &x1, G4double &x2, G4double &y1, G4double &y2)