31 #ifndef G4NeutronHPInterpolator_h
32 #define G4NeutronHPInterpolator_h 1
54 if(x2-x1==0)
return (y2+y1)/2.;
55 slope = (y2-y1)/(x2-x1);
89 G4int theScheme = aScheme;
111 result =
Random(x, x1, x2, y1, y2);
115 throw G4HadronicException(__FILE__, __LINE__,
"G4NeutronHPInterpolator::Carthesian Invalid InterpolationScheme");
133 if(x2-x1==0)
return (y2+y1)/2.;
134 slope = (y2-y1)/(x2-x1);
144 if(x==0) result = y1+y2/2.;
145 else if(x1==0) result = y1;
146 else if(x2==0) result = y2;
147 else result =
LinearLinear(std::log(x), std::log(x1), std::log(x2), y1, y2);
155 if(y1==0||y2==0) result = 0;
158 result =
LinearLinear(x, x1, x2, std::log(y1), std::log(y2));
159 result = std::exp(result);
168 if(x==0) result = y1+y2/2.;
169 else if(x1==0) result = y1;
170 else if(x2==0) result = y2;
171 if(y1==0||y2==0) result = 0;
174 result =
LinearLinear(std::log(x), std::log(x1), std::log(x2), std::log(y1), std::log(y2));
175 result = std::exp(result);
G4double LogarithmicLogarithmic(G4double x, G4double x1, G4double x2, G4double y1, G4double y2) const
~G4NeutronHPInterpolator()
G4double Interpolate(G4InterpolationScheme aScheme, G4double x, G4double x1, G4double x2, G4double y1, G4double y2) const
G4double LinearLogarithmic(G4double x, G4double x1, G4double x2, G4double y1, G4double y2) const
G4double GetWeightedBinIntegral(const G4InterpolationScheme &aScheme, const G4double x1, const G4double x2, const G4double y1, const G4double y2)
G4GLOB_DLL std::ostream G4cout
G4double Random(G4double x, G4double x1, G4double x2, G4double y1, G4double y2) const
G4double GetBinIntegral(const G4InterpolationScheme &aScheme, const G4double x1, const G4double x2, const G4double y1, const G4double y2)
G4double LinearLinear(G4double x, G4double x1, G4double x2, G4double y1, G4double y2) const
G4double Lin(G4double x, G4double x1, G4double x2, G4double y1, G4double y2)
G4double Histogram(G4double x, G4double x1, G4double x2, G4double y1, G4double y2) const
G4NeutronHPInterpolator()
G4double LogarithmicLinear(G4double x, G4double x1, G4double x2, G4double y1, G4double y2) const