df?interpolate1d/df?interpolateex1d

Runs data fitting computations.

Syntax

FORTRAN:

status = dfsinterpolate1d(task, type, method, nsite, site, sitehint, ndorder, dorder, datahint, r, rhint, cell)

status = dfdinterpolate1d(task, type, method, nsite, site, sitehint, ndorder, dorder, datahint, r, rhint, cell)

status = dfsinterpolateex1d(task, type, method, nsite, site, sitehint, ndorder, dorder, datahint, r, rhint, cell, le_cb, le_params, re_cb, re_params, i_cb, i_params, search_cb, search_params)

status = dfdinterpolateex1d(task, type, method, nsite, site, sitehint, ndorder, dorder, datahint, r, rhint, cell, le_cb, le_params, re_cb, re_params, i_cb, i_params, search_cb, search_params)

C:

status = dfsInterpolate1D(task, type, method, nsite, site, sitehint, ndorder, dorder, datahint, r, rhint, cell)

status = dfdInterpolate1D(task, type, method, nsite, site, sitehint, ndorder, dorder, datahint, r, rhint, cell)

status = dfsInterpolateEx1D(task, type, method, nsite, site, sitehint, ndorder, dorder, datahint, r, rhint, cell, le_cb, le_params, re_cb, re_params, i_cb, i_params, search_cb, search_params)

status = dfdInterpolateEx1D(task, type, method, nsite, site, sitehint, ndorder, dorder, datahint, r, rhint, cell, le_cb, le_params, re_cb, re_params, i_cb, i_params, search_cb, search_params)

Include Files

Input Parameters

Name

Type

Description

task

Fortran: TYPE(DF_TASK)

C: DFTaskPtr

Descriptor of the task.

type

Fortran: INTEGER

C: MKL_INT

Type of spline-based computations. The parameter takes one or more values combined with an OR operation. For the list of possible values, see table "Computation Types Supported by the df?interpolate1d/ df?interpolate1d Routines".

method

Fortran: INTEGER

C: MKL_INT

Computation method. The supported value is DF_METHOD_PP.

nsite

Fortran: INTEGER

C: MKL_INT

Number of interpolation sites.

site

Fortran: REAL(KIND=4) DIMENSION(*) for dfsinterpolate1d/dfsinterpolateex1d

REAL(KIND=8) DIMENSION(*) for dfdinterpolate1d/dfdinterpolateex1d

C: float* for dfsInterpolate1D/dfsInterpolateEx1D

double* for dfdInterpolate1D/dfdInterpolateEx1D

Array of interpolation sites of size nsite. The structure of the array is defined by the sitehint parameter:

  • If sites form a non-uniform partition, the array should contain nsite values.

  • If sites form a uniform partition, the array should contain two entries that represent the left and the right interpolation sites. The first entry of the array contains the left-most interpolation point. The second entry of the array contains the right-most interpolation point.

sitehint

Fortran: INTEGER

C: MKL_INT

A flag describing the structure of the interpolation sites. For the list of possible values of sitehint, see table "Hint Values for Interpolation Sites". If you set the flag to DF_NO_HINT, the library interprets the site-defined partition as non-uniform.

ndorder

Fortran: INTEGER

C: MKL_INT

Maximal derivative order increased by one to be computed at interpolation sites.

dorder

Fortran: INTEGER DIMENSION(*)

C: MKL_INT*

Array of size ndorder that defines the order of the derivatives to be computed at the interpolation sites. If all the elements in dorder are zero, the library computes the spline values only. If you do not need interpolation computations, set ndorder to zero and pass a NULL pointer to dorder.

datahint

Fortran: REAL(KIND=4) DIMENSION(*) for dfsinterpolate1d/dfsinterpolateex1d

REAL(KIND=8) DIMENSION(*) for dfdinterpolate1d/dfdinterpolateex1d

C: float* for dfsInterpolate1D/dfsInterpolateEx1D

double* for dfdInterpolate1D/dfdInterpolateEx1D

Array that contains additional information about the structure of partition x and interpolation sites. This data helps to speed up the computation. If you provide a NULL pointer, the routine uses the default settings for computations. For details on the datahint array, see table "Structure of the datahint Array".

r

Fortran: REAL(KIND=4) DIMENSION(*) for dfsinterpolate1d/dfsinterpolateex1d

REAL(KIND=8) DIMENSION(*) for dfdinterpolate1d/dfdinterpolateex1d

C: float* for dfsInterpolate1D/dfsInterpolateEx1D

double* for dfdInterpolate1D/dfdInterpolateEx1D

Array that contains results of computations at the interpolation sites. If you do not need spline-based interpolation or integration, set this pointer to NULL.

rhint

Fortran: INTEGER

C: MKL_INT

A flag describing the structure of the results. For the list of possible values of rhint, see table "Hint Values for the rhint Parameter". If you set the flag to DF_NO_HINT, the library stores the result in row-major format.

cell

Fortran: INTEGER DIMENSION(*)

C: MKL_INT*

Array of cell indices in partition x that contain the interpolation sites. If you do not need cell indices, set this parameter to NULL.

le_cb

Fortran: INTEGER

C: dfsInterpCallBack for dfsInterpolateEx1D

dfdInterpCallBack for dfdInterpolateEx1D

User-defined callback function for extrapolation at the sites to the left of the interpolation interval.

le_params

Fortran: INTEGER DIMENSION(*)

C: void*

Pointer to additional user-defined parameters passed by the library to the le_cb function.

re_cb

Fortran: INTEGER

C: dfsInterpCallBack for dfsInterpolateEx1D

dfdInterpCallBack for dfdInterpolateEx1D

User-defined callback function for extrapolation at the sites to the right of the interpolation interval.

re_params

Fortran: INTEGER DIMENSION(*)

C: void*

Pointer to additional user-defined parameters passed by the library to the re_cb function.

i_cb

Fortran: INTEGER

C: dfsInterpCallBack for dfsInterpolateEx1D

dfdInterpCallBack for dfdInterpolateEx1D

User-defined callback function for interpolation within the interpolation interval.

i_params

Fortran: INTEGER DIMENSION(*)

C: void*

Pointer to additional user-defined parameters passed by the library to the i_cb function.

search_cb

Fortran: INTEGER

C: dfsSearchCellsCallBack for dfsInterpolateEx1D

dfdSearchCellsCallBack for dfdInterpolateEx1D

User-defined callback function for computing indices of cells that can contain interpolation sites.

search_params

Fortran: INTEGER DIMENSION(*)

C: void*

Pointer to additional user-defined parameters passed by the library to the search_cb function.

Output Parameters

Name

Type

Description

status

Fortran: INTEGER

C: int

Status of the routine:

  • DF_STATUS_OK if the routine execution completed successfully.
  • Non-zero error code if the routine execution failed. See "Task Status and Error Reporting" for error code definitions.

Description

The df?interpolate1d/df?interpolateex1d routine performs spline-based computations with user-defined settings. The routine supports two types of computations for interpolation sites provided in array site:

Computation Types Supported by the df?interpolate1d/df?interpolateex1d Routines

Type

Description

DF_INTERP

Compute derivatives of predefined order. The derivative of the zero order is the spline value.

DF_CELL

Compute indices of cells in partition x that contain the sites.

If the sites do not belong to interpolation interval [a, b] , the library uses:

Interpolation sites support the following hints:

Hint Values for Interpolation Sites

Value

Description

DF_NON_UNIFORM_PARTITION

Partition is non-uniform.

DF_UNIFORM_PARTITION

Partition is uniform.

DF_SORTED_DATA

Interpolation sites are sorted in the ascending order and define a non-uniform partition.

DF_NO_HINT

No hint is provided. By default, the partition defined by interpolation sites is interpreted as non-uniform.

Note iconNote

If you pass a sorted array of interpolation sites to the Intel MKL, set the sitehint parameter to the DF_SORTED_DATA value. The library uses this information when choosing the search algorithm and ignores any other data hints about the structure of the interpolation sites.

Data Fitting computation routines can use the following hints to speed up the computation:

Pass the above hints to the library when appropriate.

The r pointer defines the memory location for the sets of interpolation and integration results for all coordinates of function y. The sets are stored one by one, in the successive order of the function coordinates from y1 to yny.

You can define the following settings for packing the results within each set:

Hint Values for the rhint Parameter

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 results are stored in row-major format.

For spline-based interpolation, you should set the derivatives whose values are required for the computation. You can provide the derivatives by setting the dorder array of size ndorder as follows:

See below a common structure of the storage formats of the interpolation results within each set r for computing derivatives of order i1, i2,...,im at nsite interpolation sites. In this description, j is the coordinate of the vector-valued function:

To speed up Data Fitting computations, use the datahint parameter that provides additional information about the structure of the partition and interpolation sites. This data represents a floating-point or a double array with the following structure:

Structure of the datahint Array

Element Number

Description

0

Task dimension

1

Type of additional information

2

Reserved field

3

The total number q of elements containing additional information.

4

Element (1)

...

...

q+3

Element (q)

Data Fitting computation functions support the following types of additional information for datahint[1]:

Types of Additional Information

Type

Element Number

Parameter

DF_NO_APRIORI_INFO

0

No parameters are provided. Information about the data structure is absent.

DF_APRIORI_MOST_LIKELY_CELL

1

Index of the cell that is likely to contain interpolation sites.

To compute indices of the cells that contain interpolation sites, provide the pointer to the array of size nsite for the results. The library supports the following scheme of cell indexing for the given partition{xi}, i=1,...,nx:

cell[j] = i, if site[j] ∈[xi, xi+1), i = 0,..., nx,

where

To perform interpolation computations with spline types unsupported in the Data Fitting component, use the extended version of the routine df?interpolateex1d. With this routine, you can provide user-defined callback functions for computations within, to the left of, or to the right of interpolaton interval [a, b]. The callback functions compute indices of the cells that contain the specified interpolation sites or can serve as an approximation for computing the exact indices of such cells.

If you do not pass any function for computations at the sites outside the interval [a, b], the routine uses the default settings.

See Also


Submit feedback on this help topic