df?Integrate1D/df?IntegrateEx1D
df?Integrate1D/df?IntegrateEx1D
Computes a spline-based integral.
Syntax
status
=
dfsIntegrate1D
(
task
,
method
,
nlim
,
llim
,
llimhint
,
rlim
,
rlimhint
,
ldatahint
,
rdatahint
,
r
,
rhint
)
status
=
dfdIntegrate1D
(
task
,
method
,
nlim
,
llim
,
llimhint
,
rlim
,
rlimhint
,
ldatahint
,
rdatahint
,
r
,
rhint
)
status
=
dfsIntegrateEx1D
(
task
,
method
,
nlim
,
llim
,
llimhint
,
rlim
,
rlimhint
,
ldatahint
,
rdatahint
,
r
,
rhint
,
le_cb
,
le_params
,
re_cb
,
re_params
,
i_cb
,
i_params
,
search_cb
,
search_params
)
status
=
dfdIntegrateEx1D
(
task
,
method
,
nlim
,
llim
,
llimhint
,
rlim
,
rlimhint
,
ldatahint
,
rdatahint
,
r
,
rhint
,
le_cb
,
le_params
,
re_cb
,
re_params
,
i_cb
,
i_params
,
search_cb
,
search_params
)
Include Files
- mkl.h
Input Parameters
Name | Type | Description |
---|---|---|
task | DFTaskPtr | Descriptor of the task. |
method | const MKL_INT | Integration method. The supported value is DF_METHOD_PP . |
nlim | const MKL_INT | Number of pairs of integration limits. |
llim | const float* for dfsIntegrate1D /dfsIntegrateEx1D const double* for dfdIntegrate1D /dfdIntegrateEx1D | Array of size nlim that defines the left-side integration limits. |
llimhint | const MKL_INT | A flag describing the structure of the left-side integration limits llim . For the list of possible values of If you set the flag to the llimhint , see table "Hint Values for Integration Limits" . DF_NO_HINT value, the library assumes that the left-side integration limits define a non-uniform partition. |
rlim | const float* for dfsIntegrate1D /dfsIntegrateEx1D const double* for dfdIntegrate1D /dfdIntegrateEx1D | Array of size nlim that defines the right-side integration limits. |
rlimhint | const MKL_INT | A flag describing the structure of the right-side integration limits rlim . For the list of possible values of If you set the flag to the rlimhint , see table "Hint Values for Integration Limits" . DF_NO_HINT value, the library assumes that the right-side integration limits define a non-uniform partition. |
ldatahint | const float* for dfsIntegrate1D /dfsIntegrateEx1D const double* for dfdIntegrate1D /dfdIntegrateEx1D | Array that contains additional information about the structure of partition x and left-side integration limits. For details on the ldatahint array, see table "Structure of the in the description of the datahint Array"df?Interpolate1D function. |
rdatahint | const float* for dfsIntegrate1D /dfsIntegrateEx1D const double* for dfdIntegrate1D /dfdIntegrateEx1D | Array that contains additional information about the structure of partition x and right-side integration limits. For details on the rdatahint array, see table "Structure of the in the description of the datahint Array"df?Interpolate1D function. |
rhint | const MKL_INT | A flag describing the structure of the results. For the list of possible values of If you set the flag to the rhint , see table "Hint Values for Integration Results" . DF_NO_HINT value, the library stores the results in row-major format. |
le_cb | const dfsIntegrCallBack for dfsIntegrateEx1D const dfdIntegrCallBack for dfdIntegrateEx1D | User-defined callback function for integration on interval [
for llim [ , i ]min (rlim [ , i ]a ))llim [ < i ]a .Set to NULL if you are not supplying a callback function. |
le_params | const void* | Pointer to additional user-defined parameters passed by the library to the le_cb function. Set to NULL if there are no additional parameters or if you are not supplying a callback function. |
re_cb | const dfsInterpCallBack for dfsIntegrateEx1D const dfdInterpCallBack for dfdIntegrateEx1D | User-defined callback function for integration on interval [ for max (llim [ , i ]b ), rlim [ )i ]rlim [ i ]≥ b .Set to NULL if you are not supplying a callback function. |
re_params | const void* | Pointer to additional user-defined parameters passed by the library to the re_cb function. Set to NULL if there are no additional parameters or if you are not supplying a callback function. |
i_cb | const dfsIntegrCallBack for dfsIntegrateEx1D const dfdIntegrCallBack for dfdIntegrateEx1D | User-defined callback function for integration on interval [ max (a , llim [ , ), i ]min (rlim [ , i ]b )).Set to NULL if you are not supplying a callback function. |
i_params | const void* | Pointer to additional user-defined parameters passed by the library to the i_cb function. Set to NULL if there are no additional parameters or if you are not supplying a callback function. |
search_cb | const dfsSearchCellsCallBack for dfsIntegrateEx1D const dfdSearchCellsCallBack for dfdIntegrateEx1D | User-defined callback function for computing indices of cells that can contain interpolation sites. Set to NULL if you are not supplying a callback function. |
search_params | const void* | Pointer to additional user-defined parameters passed by the library to the search_cb function. Set to NULL if there are no additional parameters or if you are not supplying a callback function. |
Output Parameters
Name | Type | Description |
---|---|---|
status | int | Status of the routine:
|
r | float* for dfsIntegrate1D /dfsIntegrateEx1D double* for dfdIntegrate1D /dfdIntegrateEx1D | Array of integration results. The size of the array should be sufficient to hold nlim *ny values, where ny is the dimension of the vector-valued function. The integration results are packed according to the settings in rhint .The df?Integrate1D /df?IntegrateEx1D routines do not support in-place computations. You must provide non-aliasing memory locations for the llim and rlim input parameters and the r output parameter. |
Description
The
df?Integrate1D
/df?IntegrateEx1D
routine computes spline-based integral on user-defined intervals
where = =
rl
i
rlim
[
, i
]ll
i
llim
[
, and i
]i
= 0, ...,
.ny
- 1If
rlim
[
< i
]llim
[
, the routine returns i
]
The routine supports the following hint values for integration results:
Value
| Description
|
---|---|
DF_MATRIX_STORAGE_ROWS | Data is stored in row-major format according to C conventions. |
DF_MATRIX_STORAGE_COLS | Data is stored in column-major format according to Fortran conventions. |
DF_NO_HINT | No hint is provided. By default, the coordinates of vector-valued function y are provided and stored in row-major format. |
A common structure of the storage formats for the integration results is as follows:
- Row-major formatI(0,0)...I(0,nlim- 1).........I(ny- 1,0)...I(ny- 1,nlim- 1)
- Column-major formatI(0,0)...I(ny- 1,0).........I(0,nlim- 1)...I(ny- 1,nlim- 1)
Using the
llimhint
and rlimhint
parameters, you can provide the following hint values for integration limits: Value
| Description
|
---|---|
DF_SORTED_DATA | Integration limits are sorted in the ascending order and define a non-uniform partition. |
DF_NON_UNIFORM_PARTITION | Partition defined by integration limits is non-uniform. |
DF_UNIFORM_PARTITION | Partition defined by integration limits is uniform. |
DF_NO_HINT | No hint is provided. By default, partition defined by integration limits is interpreted as non-uniform. |
To compute integration with splines unsupported in the Data Fitting component, use the extended version of the routine
df?IntegrateEx1D
. With this routine, you can provide user-defined callback functions that compute: - integrals within, to the left of, or to the right of the interpolation interval [a,b]
- indices of cells that contain the provided integration limits or can serve as an approximation for computing the exact indices of such cells
If you do not pass callback functions, the routine uses the default settings.