<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic basic question using MKL data fitting in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/basic-question-using-MKL-data-fitting/m-p/1080437#M22782</link>
    <description>&lt;P&gt;Hi all,&lt;/P&gt;

&lt;P&gt;This is my first time using MKL data fitting function. The following code was adopted from the online example with only input data added (https://software.intel.com/en-us/node/522217). For data points of xi = 0 to 9 and &lt;SPAN style="font-size: 13.008px;"&gt;yi = xi^3&lt;/SPAN&gt;, I want to test if I used use these functions correctly. I was targeting to get the interpolation value for 20 points from 0 to 19 which should be stored in r array. "status" was negative after calling&amp;nbsp;&lt;SPAN style="font-size: 13.008px;"&gt;dfdInterpolate1D() and r array remained as its initial values.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;I suppose there is something basic that I did not get right. Can anyone advise?&lt;/P&gt;

&lt;P&gt;Regards,&lt;/P&gt;

&lt;P&gt;Hainan&amp;nbsp;&lt;/P&gt;

&lt;P&gt;#include "mkl.h"&lt;/P&gt;

&lt;P&gt;#define NX 10 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Size of partition, number of breakpoints */&lt;BR /&gt;
	#define NSITE 20 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Number of interpolation sites */&lt;BR /&gt;
	#define SPLINE_ORDER DF_PP_CUBIC &amp;nbsp; /* A cubic spline to construct */&amp;nbsp;&lt;/P&gt;

&lt;P&gt;int main()&lt;/P&gt;

&lt;P&gt;{&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;int status; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Status of a Data Fitting operation */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;DFTaskPtr task; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Data Fitting operations are task based */&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Parameters describing the partition */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MKL_INT nx; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* The size of partition x */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;double x[NX]; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Partition x */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MKL_INT xhint; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Additional information about the structure of breakpoints */&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Parameters describing the function */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MKL_INT ny; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Function dimension */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;double y[NX]; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Function values at the breakpoints */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MKL_INT yhint; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Additional information about the function */&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Parameters describing the spline */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MKL_INT &amp;nbsp;s_order; &amp;nbsp; &amp;nbsp;/* Spline order */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MKL_INT &amp;nbsp;s_type; &amp;nbsp; &amp;nbsp; /* Spline type */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MKL_INT &amp;nbsp;ic_type; &amp;nbsp; &amp;nbsp;/* Type of internal conditions */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;double* ic; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Array of internal conditions */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MKL_INT &amp;nbsp;bc_type; &amp;nbsp; &amp;nbsp;/* Type of boundary conditions */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;double* bc; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Array of boundary conditions */&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;double scoeff[(NX-1)* SPLINE_ORDER]; &amp;nbsp; /* Array of spline coefficients */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MKL_INT scoeffhint; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Additional information about the coefficients */&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Parameters describing interpolation computations */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MKL_INT nsite; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Number of interpolation sites */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;double site[NSITE]; &amp;nbsp; /* Array of interpolation sites */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MKL_INT sitehint; &amp;nbsp; &amp;nbsp; /* Additional information about the structure of&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;interpolation sites */&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MKL_INT ndorder, dorder; &amp;nbsp; &amp;nbsp;/* Parameters defining the type of interpolation */&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;double* datahint; &amp;nbsp; /* Additional information on partition and interpolation sites */&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;double r[NSITE]; &amp;nbsp; &amp;nbsp;/* Array of interpolation results */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MKL_INT rhint; &amp;nbsp; &amp;nbsp; /* Additional information on the structure of the results */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MKL_INT* cell; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Array of cell indices */&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Initialize the partition */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;nx = NX;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Set values of partition x */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//...&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;xhint = DF_NON_UNIFORM_PARTITION; &amp;nbsp;/* The partition is non-uniform. */&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Initialize the function */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ny = 1; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* The function is scalar. */&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Set function values */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; NX; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;x&lt;I&gt; = i;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;y&lt;I&gt; = pow(i, 3);&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;yhint = DF_NO_HINT; &amp;nbsp; &amp;nbsp;/* No additional information about the function is provided. */&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Create a Data Fitting task */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;status = dfdNewTask1D( &amp;amp;task, nx, x, xhint, ny, y, yhint );&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Check the Data Fitting operation status */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//...&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Initialize spline parameters */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;s_order = DF_PP_CUBIC; &amp;nbsp; &amp;nbsp; /* Spline is of the fourth order (cubic spline). */&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;s_type = DF_PP_BESSEL; &amp;nbsp; &amp;nbsp; /* Spline is of the Bessel cubic type. */&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Define internal conditions for cubic spline construction (none in this example) */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ic_type = DF_NO_IC;&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ic = NULL;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Use not-a-knot boundary conditions. In this case, the is first and the last&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;interior breakpoints are inactive, no additional values are provided. */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;bc_type = DF_BC_NOT_A_KNOT;&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;bc = NULL;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;scoeffhint = DF_NO_HINT; &amp;nbsp; &amp;nbsp;/* No additional information about the spline. */&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Set spline parameters &amp;nbsp;in the Data Fitting task */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;status = dfdEditPPSpline1D( task, s_order, s_type, bc_type, bc, ic_type,&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ic, scoeff, scoeffhint );&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Check the Data Fitting operation status */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//...&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Use a standard method to construct a cubic Bessel spline: */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Pi(x) = ci,0 + ci,1(x - xi) + ci,2(x - xi)2 + ci,3(x - xi)3, */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* The library packs spline coefficients to array scoeff: */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* scoeff[4*i+0] = ci,0, scoef[4*i+1] = ci,1, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */ &amp;nbsp;&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* scoeff[4*i+2] = ci,2, scoef[4*i+1] = ci,3, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */ &amp;nbsp;&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* i=0,...,N-2 &amp;nbsp;*/&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;status = dfdConstruct1D( task, DF_PP_SPLINE, DF_METHOD_STD );&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Check the Data Fitting operation status */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//...&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Initialize interpolation parameters */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;nsite = NSITE;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Set site values */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//...&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; NSITE; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;site&lt;I&gt; = i;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/I&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;sitehint = DF_NON_UNIFORM_PARTITION; /* Partition of sites is non-uniform */&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Request to compute spline values */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ndorder = 1;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;dorder = 1;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;datahint = DF_NO_APRIORI_INFO; &amp;nbsp;/* No additional information about breakpoints or&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;sites is provided. */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;rhint = DF_MATRIX_STORAGE_ROWS; /* The library packs interpolation results&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;in row-major format. */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cell = NULL; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Cell indices are not required. */&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Solve interpolation problem using the default method: compute the spline values&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;at the points site(i), i=0,..., nsite-1 and place the results to array r */&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;status = dfdInterpolate1D( task, DF_INTERP, DF_METHOD_STD, nsite, site,&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;sitehint, ndorder, &amp;amp;dorder, datahint, r, rhint, cell );&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Check Data Fitting operation status */&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//...&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* De-allocate Data Fitting task resources */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;status = dfDeleteTask( &amp;amp;task );&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Check Data Fitting operation status */&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//...&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return 0 ;&lt;/P&gt;

&lt;P&gt;}&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 27 Jan 2017 00:08:12 GMT</pubDate>
    <dc:creator>Hainan_W_</dc:creator>
    <dc:date>2017-01-27T00:08:12Z</dc:date>
    <item>
      <title>basic question using MKL data fitting</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/basic-question-using-MKL-data-fitting/m-p/1080437#M22782</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;

&lt;P&gt;This is my first time using MKL data fitting function. The following code was adopted from the online example with only input data added (https://software.intel.com/en-us/node/522217). For data points of xi = 0 to 9 and &lt;SPAN style="font-size: 13.008px;"&gt;yi = xi^3&lt;/SPAN&gt;, I want to test if I used use these functions correctly. I was targeting to get the interpolation value for 20 points from 0 to 19 which should be stored in r array. "status" was negative after calling&amp;nbsp;&lt;SPAN style="font-size: 13.008px;"&gt;dfdInterpolate1D() and r array remained as its initial values.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;I suppose there is something basic that I did not get right. Can anyone advise?&lt;/P&gt;

&lt;P&gt;Regards,&lt;/P&gt;

&lt;P&gt;Hainan&amp;nbsp;&lt;/P&gt;

&lt;P&gt;#include "mkl.h"&lt;/P&gt;

&lt;P&gt;#define NX 10 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Size of partition, number of breakpoints */&lt;BR /&gt;
	#define NSITE 20 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Number of interpolation sites */&lt;BR /&gt;
	#define SPLINE_ORDER DF_PP_CUBIC &amp;nbsp; /* A cubic spline to construct */&amp;nbsp;&lt;/P&gt;

&lt;P&gt;int main()&lt;/P&gt;

&lt;P&gt;{&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;int status; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Status of a Data Fitting operation */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;DFTaskPtr task; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Data Fitting operations are task based */&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Parameters describing the partition */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MKL_INT nx; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* The size of partition x */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;double x[NX]; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Partition x */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MKL_INT xhint; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Additional information about the structure of breakpoints */&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Parameters describing the function */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MKL_INT ny; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Function dimension */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;double y[NX]; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Function values at the breakpoints */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MKL_INT yhint; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Additional information about the function */&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Parameters describing the spline */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MKL_INT &amp;nbsp;s_order; &amp;nbsp; &amp;nbsp;/* Spline order */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MKL_INT &amp;nbsp;s_type; &amp;nbsp; &amp;nbsp; /* Spline type */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MKL_INT &amp;nbsp;ic_type; &amp;nbsp; &amp;nbsp;/* Type of internal conditions */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;double* ic; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Array of internal conditions */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MKL_INT &amp;nbsp;bc_type; &amp;nbsp; &amp;nbsp;/* Type of boundary conditions */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;double* bc; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Array of boundary conditions */&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;double scoeff[(NX-1)* SPLINE_ORDER]; &amp;nbsp; /* Array of spline coefficients */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MKL_INT scoeffhint; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Additional information about the coefficients */&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Parameters describing interpolation computations */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MKL_INT nsite; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Number of interpolation sites */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;double site[NSITE]; &amp;nbsp; /* Array of interpolation sites */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MKL_INT sitehint; &amp;nbsp; &amp;nbsp; /* Additional information about the structure of&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;interpolation sites */&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MKL_INT ndorder, dorder; &amp;nbsp; &amp;nbsp;/* Parameters defining the type of interpolation */&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;double* datahint; &amp;nbsp; /* Additional information on partition and interpolation sites */&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;double r[NSITE]; &amp;nbsp; &amp;nbsp;/* Array of interpolation results */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MKL_INT rhint; &amp;nbsp; &amp;nbsp; /* Additional information on the structure of the results */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MKL_INT* cell; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Array of cell indices */&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Initialize the partition */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;nx = NX;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Set values of partition x */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//...&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;xhint = DF_NON_UNIFORM_PARTITION; &amp;nbsp;/* The partition is non-uniform. */&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Initialize the function */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ny = 1; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* The function is scalar. */&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Set function values */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; NX; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;x&lt;I&gt; = i;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;y&lt;I&gt; = pow(i, 3);&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;yhint = DF_NO_HINT; &amp;nbsp; &amp;nbsp;/* No additional information about the function is provided. */&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Create a Data Fitting task */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;status = dfdNewTask1D( &amp;amp;task, nx, x, xhint, ny, y, yhint );&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Check the Data Fitting operation status */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//...&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Initialize spline parameters */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;s_order = DF_PP_CUBIC; &amp;nbsp; &amp;nbsp; /* Spline is of the fourth order (cubic spline). */&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;s_type = DF_PP_BESSEL; &amp;nbsp; &amp;nbsp; /* Spline is of the Bessel cubic type. */&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Define internal conditions for cubic spline construction (none in this example) */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ic_type = DF_NO_IC;&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ic = NULL;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Use not-a-knot boundary conditions. In this case, the is first and the last&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;interior breakpoints are inactive, no additional values are provided. */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;bc_type = DF_BC_NOT_A_KNOT;&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;bc = NULL;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;scoeffhint = DF_NO_HINT; &amp;nbsp; &amp;nbsp;/* No additional information about the spline. */&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Set spline parameters &amp;nbsp;in the Data Fitting task */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;status = dfdEditPPSpline1D( task, s_order, s_type, bc_type, bc, ic_type,&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ic, scoeff, scoeffhint );&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Check the Data Fitting operation status */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//...&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Use a standard method to construct a cubic Bessel spline: */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Pi(x) = ci,0 + ci,1(x - xi) + ci,2(x - xi)2 + ci,3(x - xi)3, */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* The library packs spline coefficients to array scoeff: */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* scoeff[4*i+0] = ci,0, scoef[4*i+1] = ci,1, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */ &amp;nbsp;&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* scoeff[4*i+2] = ci,2, scoef[4*i+1] = ci,3, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */ &amp;nbsp;&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* i=0,...,N-2 &amp;nbsp;*/&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;status = dfdConstruct1D( task, DF_PP_SPLINE, DF_METHOD_STD );&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Check the Data Fitting operation status */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//...&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Initialize interpolation parameters */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;nsite = NSITE;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Set site values */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//...&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; NSITE; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;site&lt;I&gt; = i;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/I&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;sitehint = DF_NON_UNIFORM_PARTITION; /* Partition of sites is non-uniform */&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Request to compute spline values */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ndorder = 1;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;dorder = 1;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;datahint = DF_NO_APRIORI_INFO; &amp;nbsp;/* No additional information about breakpoints or&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;sites is provided. */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;rhint = DF_MATRIX_STORAGE_ROWS; /* The library packs interpolation results&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;in row-major format. */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cell = NULL; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Cell indices are not required. */&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Solve interpolation problem using the default method: compute the spline values&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;at the points site(i), i=0,..., nsite-1 and place the results to array r */&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;status = dfdInterpolate1D( task, DF_INTERP, DF_METHOD_STD, nsite, site,&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;sitehint, ndorder, &amp;amp;dorder, datahint, r, rhint, cell );&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Check Data Fitting operation status */&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//...&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* De-allocate Data Fitting task resources */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;status = dfDeleteTask( &amp;amp;task );&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Check Data Fitting operation status */&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//...&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return 0 ;&lt;/P&gt;

&lt;P&gt;}&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 27 Jan 2017 00:08:12 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/basic-question-using-MKL-data-fitting/m-p/1080437#M22782</guid>
      <dc:creator>Hainan_W_</dc:creator>
      <dc:date>2017-01-27T00:08:12Z</dc:date>
    </item>
    <item>
      <title>Look in your .../mkl/examples</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/basic-question-using-MKL-data-fitting/m-p/1080438#M22783</link>
      <description>&lt;P&gt;Look in your .../mkl/examples/datafittingc/source directory, where you will find a complete example code (dfdcubicspline_interp.c) that generates data, calls the spline fitting routines, and checks the fitted values:&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 27 Jan 2017 00:25:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/basic-question-using-MKL-data-fitting/m-p/1080438#M22783</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2017-01-27T00:25:10Z</dc:date>
    </item>
    <item>
      <title>Hello Hainan,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/basic-question-using-MKL-data-fitting/m-p/1080439#M22784</link>
      <description>&lt;P&gt;Hello Hainan,&lt;/P&gt;

&lt;P&gt;Please change&amp;nbsp;&lt;SPAN style="font-size: 12px;"&gt;DF_METHOD_STD to&amp;nbsp;DF_METHOD_PP in the line of code that calls&amp;nbsp;dfdInterpolate1D function. The code will look like this:&lt;/SPAN&gt;&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;status = dfdInterpolate1D( task, DF_INTERP, DF_METHOD_PP, nsite, site,
            sitehint, ndorder, &amp;amp;dorder, datahint, r, rhint, cell );&lt;/PRE&gt;

&lt;P&gt;We have found that the example of a spline-based interpolation in our documentation is a bit incorrect, it passes incorrect value of method to&lt;SPAN style="font-size: 1em;"&gt;&amp;nbsp;dfdInterpolate1D function. We plan to fix this issue in the future releases of Intel&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em;"&gt;®&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em;"&gt; MKL.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;Best regards,&lt;/P&gt;

&lt;P&gt;Victoriya&lt;/P&gt;</description>
      <pubDate>Fri, 27 Jan 2017 12:56:40 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/basic-question-using-MKL-data-fitting/m-p/1080439#M22784</guid>
      <dc:creator>VictoriyaS_F_Intel</dc:creator>
      <dc:date>2017-01-27T12:56:40Z</dc:date>
    </item>
    <item>
      <title>Hi Victoriya,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/basic-question-using-MKL-data-fitting/m-p/1080440#M22785</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;SPAN style="font-size: 13.008px;"&gt;Victoriya,&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 13.008px;"&gt;Thank you for the reply. The code after applying the change you mentioned works. Then, I tried to test the code for yi = xi^2 with the following change in code:&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="font-size: 13.008px;"&gt;#define SPLINE_ORDER DF_PP_QUADRATIC&lt;/P&gt;

&lt;P style="font-size: 13.008px;"&gt;s_order = DF_PP_QUADRATIC;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 13.008px;"&gt;But it did not work: &lt;/SPAN&gt;status is -1011 after calling dfdConstruct1D( task, DF_PP_SPLINE, DF_METHOD_STD ). I tried to use&amp;nbsp;s_type = DF_PP_DEFAULT which did not work, either. Do you know where the problem might be? I currently do not have mkl examples (I will ask for my admin for it), so I have difficulty in figuring out such possibly easy issue.&lt;/P&gt;

&lt;P&gt;Regards,&lt;/P&gt;

&lt;P&gt;Hainan&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Victoriya Kardakova (Intel) wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Hello Hainan,&lt;/P&gt;

&lt;P&gt;Please change&amp;nbsp;DF_METHOD_STD to&amp;nbsp;DF_METHOD_PP in the line of code that calls&amp;nbsp;dfdInterpolate1D function. The code will look like this:&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;status = dfdInterpolate1D( task, DF_INTERP, DF_METHOD_PP, nsite, site,
            sitehint, ndorder, &amp;amp;dorder, datahint, r, rhint, cell );&lt;/PRE&gt;

&lt;P&gt;We have found that the example of a spline-based interpolation in our documentation is a bit incorrect, it passes incorrect value of method to&amp;nbsp;dfdInterpolate1D function. We plan to fix this issue in the future releases of Intel® MKL.&lt;/P&gt;

&lt;P&gt;Best regards,&lt;/P&gt;

&lt;P&gt;Victoriya&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 29 Jan 2017 08:19:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/basic-question-using-MKL-data-fitting/m-p/1080440#M22785</guid>
      <dc:creator>Hainan_W_</dc:creator>
      <dc:date>2017-01-29T08:19:39Z</dc:date>
    </item>
    <item>
      <title>Hello Hainan,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/basic-question-using-MKL-data-fitting/m-p/1080441#M22786</link>
      <description>&lt;P&gt;Hello Hainan,&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em;"&gt;The internal conditions and boundary conditions that you have used previously for the cubic spline are not valid for the quadratic spline. You can learn more about the boundary conditions here: &lt;/SPAN&gt;&lt;A href="https://software.intel.com/en-us/node/522222#TBL17-8" style="font-size: 1em;"&gt;https://software.intel.com/en-us/node/522222#TBL17-8&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;For s_type = DF_PP_DEFAULT you can use following values, for example:&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;double bc;
/***** Parameters describing boundary conditions type *****/
bc_type    = DF_BC_Q_VAL;
bc         = 1.0;
   
double* ic;
/***** Parameters describing internal conditions type *****/
/* No internal conditions are provided for quadratic spline */
ic_type    = DF_NO_IC;
ic         = 0;
&lt;/PRE&gt;

&lt;P&gt;You can also find interpretation of error codes here:&amp;nbsp;&lt;A href="https://software.intel.com/en-us/node/522218"&gt;https://software.intel.com/en-us/node/522218&lt;/A&gt;. To map the value of the error code to the corresponding macro please use the file &amp;lt;MKLROOT&amp;gt;/include/mkl_df_defines.h.&lt;/P&gt;

&lt;P&gt;Best regards,&lt;/P&gt;

&lt;P&gt;Victoriya&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 02 Feb 2017 08:08:21 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/basic-question-using-MKL-data-fitting/m-p/1080441#M22786</guid>
      <dc:creator>VictoriyaS_F_Intel</dc:creator>
      <dc:date>2017-02-02T08:08:21Z</dc:date>
    </item>
  </channel>
</rss>

