37 double estimate = 0.,
y1, integral_, coarse;
52 if( ( status = quadratureFunction( integrandFunction, argList,
x1,
x2, &integral_ ) ) !=
nfu_Okay )
return( status );
53 estimate = 0.5 * ( estimate * (
x2 -
x1 ) / numberOfInitialPoints + integral_ );
54 if( estimate == 0. ) estimate =
x2 -
x1;
57 if( ( status = quadratureFunction( integrandFunction, argList, x1,
x2, &coarse ) ) !=
nfu_Okay )
return( status );
60 for( i1 = 0; i1 < 2; i1++ ) {
61 if( integral_ == 0. )
break;
62 y1 = integral_ / estimate;
63 if( (
y1 > 0.1 ) && (
y1 < 10. ) )
break;
67 *evaluations += adaptiveQuadrature_info.
evaluations;
72 *evaluations += adaptiveQuadrature_info.
evaluations;
73 if( adaptiveQuadrature_info.
status ==
nfu_Okay ) *integral = integral_;
74 return( adaptiveQuadrature_info.
status );
static double nf_GnG_adaptiveQuadrature2(nf_GnG_adaptiveQuadrature_info *adaptiveQuadrature_info, double currentIntrgral, double x1, double x2, int depth)
static int numberOfInitialPoints
static const G4double tolerance
#define nf_GnG_adaptiveQuadrature_MaxMaxDepth
static double initialPoints[]
enum nfu_status_e nfu_status