Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 10/31/2024
Public
Document Table of Contents

df?integrcallback

A callback function that you can pass into df?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?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 (llim< a), the df?integrateex1d routine passes llim as the left integration limit and min(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 (rlim> b), the df?integrateex1d routine passes max(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?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