Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
df?integrcallback df?IntegrCallBack
A callback function that you can pass into df?integrateex1ddf?IntegrateEx1D to define integration computations.
Syntax
status = dfsintegrcallback ( n , lcell , llim , rcell , rlim , r , user_params , library_params )
status = dfdintegrcallback ( n , lcell , llim , rcell , rlim , r , user_params , library_params )
Include Files
mkl_df.f90
Input Parameters
Name |
Type |
Description |
|---|---|---|
n |
INTEGER(KIND=8) |
Number of pairs of integration limits. |
lcell |
INTEGER(KIND=8) DIMENSION(*) |
Array of size n with indices of the cells that contain the left-side integration limits in array llim . |
llim |
REAL(KIND=4) DIMENSION(*) for dfsintegrcallback REAL(KIND=8) DIMENSION(*) for dfdintegrcallback |
Array of size n that holds the left-side integration limits. |
rcell |
INTEGER(KIND=8) DIMENSION(*) |
Array of size n with indices of the cells that contain the right-side integration limits in array rlim . |
rlim |
REAL(KIND=4) DIMENSION(*) for dfsintegrcallback REAL(KIND=8) DIMENSION(*) for dfdintegrcallback |
Array of size n that holds the right-side integration limits. |
user_params |
INTEGER DIMENSION(*) , optional |
Pointer to user-defined parameters of the callback function. |
library_params |
TYPE(DF_INTEGR_CALLBACK_LIBRARY_PARAMS) , optional |
Pointer to library-defined parameters of the callback function. |
Output Parameters
Name |
Type |
Description |
|---|---|---|
status |
INTEGER |
The status returned by the callback function: Zero indicates successful completion of the callback operation. A negative value indicates an error. A positive value indicates a warning. See “Task Status and Error Reporting” for error code definitions. |
r |
REAL(KIND=4) DIMENSION(*) for dfsintegrcallback REAL(KIND=8) DIMENSION(*) for dfdintegrcallback |
Array of integration results. For packing the results in row-major format, follow the instructions described in df?Interpolate1D/df?InterpolateEx1D. |
Description
When passed into the df?integrateex1ddf?IntegrateEx1D routine, this function defines integration computations. If at least one of the integration limits is outside the interpolation interval \([a, b]\), the library decomposes the integration into sub-intervals that belong to the extrapolation range to the left of \(a\), the extrapolation range to the right of \(b\), and the interpolation interval \([a, b]\), as follows:
If the left integration limit is to the left of the interpolation interval (\(\text{llim} < a\)), the df?integrateex1ddf?IntegrateEx1D routine passes llim as the left integration limit and \(\min(\text{rlim}, a)\) as the right integration limit to the user-defined callback function.
If the right integration limit is to the right of the interpolation interval (\(\text{rlim} > b\)), the df?integrateex1ddf?IntegrateEx1D routine passes \(\max(\text{llim}, b)\) as the left integration limit and rlim as the right integration limit to the user-defined callback function.
If the left and the right integration limits belong to the interpolation interval, the df?integrateex1ddf?IntegrateEx1D routine passes them to the user-defined callback function unchanged.
The value of the integral is the sum of integral values obtained on the sub-intervals.
The library_params parameter allows the library to provide extra parameters, which the callback function can use to organize computations effectively. Currently no parameters are provided.
Product and Performance Information |
|---|
Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex . Notice revision #20201201 |