<?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 Hi caden, in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/I-get-an-error-in-MKL-function-vsldCorrExec-why/m-p/1081634#M22835</link>
    <description>&lt;P&gt;Hi caden,&lt;/P&gt;

&lt;P&gt;I just thought you want to print left-top corner of result matrix. The scale of &lt;SPAN style="font-size: 13.008px;"&gt;start(n)&lt;/SPAN&gt;&amp;nbsp;is between &amp;nbsp;-3~-1 in this program, if you set start(n) out of range. There will be an error. Anyway, you could fix program and get result what you want.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Best regards,&lt;BR /&gt;
	Fiona&lt;/P&gt;</description>
    <pubDate>Wed, 21 Sep 2016 06:27:51 GMT</pubDate>
    <dc:creator>Zhen_Z_Intel</dc:creator>
    <dc:date>2016-09-21T06:27:51Z</dc:date>
    <item>
      <title>I get an error in MKL function vsldCorrExec, why?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/I-get-an-error-in-MKL-function-vsldCorrExec-why/m-p/1081631#M22832</link>
      <description>&lt;P&gt;I want to get&lt;/P&gt;

&lt;P&gt;array&lt;CODE&gt; h[16]={16,15,14,13,&lt;/CODE&gt;&lt;/P&gt;

&lt;P&gt;&lt;CODE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 12,11,10,9,&lt;/CODE&gt;&lt;/P&gt;

&lt;P&gt;&lt;CODE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 8,7,6,5,&lt;/CODE&gt;&lt;/P&gt;

&lt;P&gt;&lt;CODE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4,3,2,1,}&lt;/CODE&gt;,&lt;/P&gt;

&lt;P&gt;but I get an error:&lt;/P&gt;

&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="YZRSQ.jpg"&gt;&lt;img src="https://community.intel.com/t5/image/serverpage/image-id/9119iCE84A6D2397A103A/image-size/large?v=v2&amp;amp;px=999&amp;amp;whitelist-exif-data=Orientation%2CResolution%2COriginalDefaultFinalSize%2CCopyright" role="button" title="YZRSQ.jpg" alt="YZRSQ.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;

&lt;P&gt;line 41:"status = vsldCorrExec(task, f, f_stride, g, g_stride, h, h_stride);" status is not&amp;nbsp;VSL_STATUS_OK,it is VSL_CC_ERROR_DECIMATION,so how to set the d&lt;SPAN class="kwd"&gt;ecimation&lt;/SPAN&gt; with &lt;SPAN class="kwd"&gt;vslCorrSetDecimation&lt;/SPAN&gt;?&lt;/P&gt;

&lt;P&gt;If I delete "&lt;CODE&gt;status = vslCorrSetStart(task, h_start);&lt;/CODE&gt;" in code, it will work normally, and&lt;/P&gt;

&lt;P&gt;array&lt;CODE&gt; h[16]={0,0,0,0,&lt;/CODE&gt;&lt;/P&gt;

&lt;P&gt;&lt;CODE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0,16,15,14,&lt;/CODE&gt;&lt;/P&gt;

&lt;P&gt;&lt;CODE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0,12,11,10,&lt;/CODE&gt;&lt;/P&gt;

&lt;P&gt;&lt;CODE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0,8,7,6}&lt;/CODE&gt;.&lt;/P&gt;

&lt;P&gt;What can I do?&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;#include &amp;lt;assert.h&amp;gt;
#include &amp;lt;mkl.h&amp;gt;
#include &amp;lt;iostream&amp;gt;
using namespace std;  

int main()
{
   //input
   const double f[16] = { 1 , 2 , 3 , 4,
                          5 , 6 , 7 , 8,
                          9 , 10, 11, 12,
                          13, 14, 15, 16,};
   //kernel, a simple example
   const double g[9] = { 0, 0, 0,
                         0, 1, 0,
                         0, 0, 0 };
   //output
   double h[16] = { 0 };

   VSLCorrTaskPtr task;

   MKL_INT f_shape[2] = { 4, 4 };
   MKL_INT g_shape[2] = { 3, 3 };

   MKL_INT h_shape[2] = { 4, 4 };
   MKL_INT h_start[2] = { 1, 1 };

   MKL_INT f_stride[2] = { f_shape[1], 1 };
   MKL_INT g_stride[2] = { g_shape[1], 1 };
   MKL_INT h_stride[2] = { h_shape[1], 1 };

   int status;

   status = vsldCorrNewTask(&amp;amp;task, VSL_CORR_MODE_DIRECT, 2, f_shape, g_shape, h_shape);
   assert(status == VSL_STATUS_OK);

   status = vslCorrSetStart(task, h_start);
   assert(status == VSL_STATUS_OK);

   //always get wrong,return -2303(VSL_CC_ERROR_DECIMATION) I can't find and solve the problem
   status = vsldCorrExec(task, f, f_stride, g, g_stride, h, h_stride);
   assert(status == VSL_STATUS_OK);

   status = vslCorrDeleteTask(&amp;amp;task);
   assert(status == VSL_STATUS_OK);

   //print the result 
   for (int r = 0; r &amp;lt; 4; r++)
   {
      cout &amp;lt;&amp;lt; r &amp;lt;&amp;lt; "(output): ";
      for (int c = 0; c &amp;lt; 4; c++)
      {
         cout &amp;lt;&amp;lt; h[r * 4 + c] &amp;lt;&amp;lt; " ";
      }
      cout &amp;lt;&amp;lt; endl;
    }
   return 0;
}&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 19 Sep 2016 10:02:26 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/I-get-an-error-in-MKL-function-vsldCorrExec-why/m-p/1081631#M22832</guid>
      <dc:creator>caden_g_</dc:creator>
      <dc:date>2016-09-19T10:02:26Z</dc:date>
    </item>
    <item>
      <title>Hi caden,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/I-get-an-error-in-MKL-function-vsldCorrExec-why/m-p/1081632#M22833</link>
      <description>&lt;P&gt;Hi caden,&lt;/P&gt;

&lt;P&gt;It must belong to the interval&amp;nbsp;&lt;CODE&gt;&lt;VAR&gt;R&lt;/VAR&gt;&lt;SUB&gt;&lt;VAR&gt;n&lt;/VAR&gt;&lt;/SUB&gt;&lt;SUP&gt;&lt;VAR&gt;min&lt;/VAR&gt;&lt;/SUP&gt;≤&amp;nbsp;start(n)&amp;nbsp;≤&amp;nbsp;&lt;VAR&gt;R&lt;/VAR&gt;&lt;SUB&gt;&lt;VAR&gt;n&lt;/VAR&gt;&lt;/SUB&gt;&lt;SUP&gt;&lt;VAR&gt;max&lt;/VAR&gt;&lt;/SUP&gt;&lt;/CODE&gt;.&amp;nbsp;And while you setStart, the &lt;VAR&gt;R&lt;/VAR&gt;&lt;SUB&gt;&lt;VAR&gt;n&lt;/VAR&gt;&lt;/SUB&gt;&lt;SUP&gt;&lt;VAR&gt;min&lt;/VAR&gt;&lt;/SUP&gt;&amp;nbsp;will be replaced by start(n). And the output(n) should be equals to start(n) + (kn-1) that 1&amp;nbsp;≤&amp;nbsp;&lt;VAR&gt;k&lt;/VAR&gt;&lt;VAR&gt;n&lt;/VAR&gt;≤&amp;nbsp;xshape(&lt;VAR&gt;n&lt;/VAR&gt;).&lt;/P&gt;

&lt;P&gt;In your program, xshape[0]&amp;amp;xshape[1]=4,&amp;nbsp;&lt;BR /&gt;
	&lt;SPAN style="font-size: 1em;"&gt;=&amp;gt; the&amp;nbsp;&lt;/SPAN&gt;&lt;VAR&gt;R&lt;/VAR&gt;&lt;SUB&gt;&lt;VAR&gt;n&lt;/VAR&gt;&lt;/SUB&gt;&lt;SUP&gt;&lt;VAR&gt;min&lt;/VAR&gt;&lt;/SUP&gt;&lt;VAR&gt;=-3&lt;/VAR&gt;&lt;/P&gt;

&lt;P&gt;If you set size of zshape=4*4, that means you could move from left-top side to right-bottom side by 2 steps, thus,&amp;nbsp;&lt;VAR&gt;R&lt;/VAR&gt;&lt;SUB&gt;&lt;VAR&gt;n&lt;/VAR&gt;&lt;/SUB&gt;&lt;SUP&gt;&lt;VAR&gt;max&lt;/VAR&gt;&lt;/SUP&gt;&lt;VAR&gt;=-3+2=-1&lt;/VAR&gt;&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;int h_start[2]={-3,-3};&lt;/PRE&gt;

&lt;P&gt;&lt;IMG alt="" src="https://community.intel.com/file/524409/download" /&gt;&lt;/P&gt;

&lt;P&gt;And the output should be same as without using SetStart function. If you set zshape to 3*3, that means, -3≤&amp;nbsp;start(n)&amp;nbsp;≤0, that&amp;nbsp;&lt;VAR&gt;R&lt;/VAR&gt;&lt;SUB&gt;&lt;VAR&gt;n&lt;/VAR&gt;&lt;/SUB&gt;&lt;SUP&gt;&lt;VAR&gt;max&lt;/VAR&gt;&lt;/SUP&gt;&lt;VAR&gt;=0.&lt;/VAR&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Best regards,&lt;BR /&gt;
	Fiona&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 20 Sep 2016 07:29:44 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/I-get-an-error-in-MKL-function-vsldCorrExec-why/m-p/1081632#M22833</guid>
      <dc:creator>Zhen_Z_Intel</dc:creator>
      <dc:date>2016-09-20T07:29:44Z</dc:date>
    </item>
    <item>
      <title>Quote:Fiona Z. (Intel) wrote:</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/I-get-an-error-in-MKL-function-vsldCorrExec-why/m-p/1081633#M22834</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Fiona Z. (Intel) wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Hi caden,&lt;/P&gt;

&lt;P&gt;It must belong to the interval&amp;nbsp;R&lt;SUB&gt;n&lt;/SUB&gt;&lt;SUP&gt;min&lt;/SUP&gt;≤&amp;nbsp;start(n)&amp;nbsp;≤&amp;nbsp;R&lt;SUB&gt;n&lt;/SUB&gt;&lt;SUP&gt;max&lt;/SUP&gt;.&amp;nbsp;And while you setStart, the R&lt;SUB&gt;n&lt;/SUB&gt;&lt;SUP&gt;min&lt;/SUP&gt;&amp;nbsp;will be replaced by start(n). And the output(n) should be equals to start(n) + (kn-1) that 1&amp;nbsp;≤&amp;nbsp;kn≤&amp;nbsp;xshape(n).&lt;/P&gt;

&lt;P&gt;In your program, xshape[0]&amp;amp;xshape[1]=4,&amp;nbsp;&lt;BR /&gt;
	=&amp;gt; the&amp;nbsp;R&lt;SUB&gt;n&lt;/SUB&gt;&lt;SUP&gt;min&lt;/SUP&gt;=-3&lt;/P&gt;

&lt;P&gt;If you set size of zshape=4*4, that means you could move from left-top side to right-bottom side by 2 steps, thus,&amp;nbsp;R&lt;SUB&gt;n&lt;/SUB&gt;&lt;SUP&gt;max&lt;/SUP&gt;=-3+2=-1&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;int h_start[2]={-3,-3};&lt;/PRE&gt;

&lt;P&gt;&lt;IMG src="https://community.intel.com/file/524409/download" /&gt;&lt;/P&gt;

&lt;P&gt;And the output should be same as without using SetStart function. If you set zshape to 3*3, that means, -3≤&amp;nbsp;start(n)&amp;nbsp;≤0, that&amp;nbsp;R&lt;SUB&gt;n&lt;/SUB&gt;&lt;SUP&gt;max&lt;/SUP&gt;=0.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Best regards,&lt;BR /&gt;
	Fiona&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;thank you,Fiona.&lt;/P&gt;

&lt;P&gt;&lt;SPAN&gt;According to your suggestion,I solve this problem.But if I write "&lt;/SPAN&gt;int h_start[2]={-3,-3};",the result is wrong,too.&lt;/P&gt;

&lt;P&gt;the array h[16] is {0,0,0,0,&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0,16,15,14,&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0,12,11,10,&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0,8,7,6}.&lt;/P&gt;

&lt;P&gt;Instead of&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;int h_start[2]={-2,-2};&lt;/PRE&gt;

&lt;P&gt;then it will be right, the array h[16] is&lt;/P&gt;

&lt;P&gt;{16,15,14,13,&lt;/P&gt;

&lt;P&gt;12,11,10,9,&lt;/P&gt;

&lt;P&gt;8,7,6,5,&lt;/P&gt;

&lt;P&gt;4,3,2,1,},&lt;/P&gt;</description>
      <pubDate>Wed, 21 Sep 2016 01:40:48 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/I-get-an-error-in-MKL-function-vsldCorrExec-why/m-p/1081633#M22834</guid>
      <dc:creator>caden_g_</dc:creator>
      <dc:date>2016-09-21T01:40:48Z</dc:date>
    </item>
    <item>
      <title>Hi caden,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/I-get-an-error-in-MKL-function-vsldCorrExec-why/m-p/1081634#M22835</link>
      <description>&lt;P&gt;Hi caden,&lt;/P&gt;

&lt;P&gt;I just thought you want to print left-top corner of result matrix. The scale of &lt;SPAN style="font-size: 13.008px;"&gt;start(n)&lt;/SPAN&gt;&amp;nbsp;is between &amp;nbsp;-3~-1 in this program, if you set start(n) out of range. There will be an error. Anyway, you could fix program and get result what you want.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Best regards,&lt;BR /&gt;
	Fiona&lt;/P&gt;</description>
      <pubDate>Wed, 21 Sep 2016 06:27:51 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/I-get-an-error-in-MKL-function-vsldCorrExec-why/m-p/1081634#M22835</guid>
      <dc:creator>Zhen_Z_Intel</dc:creator>
      <dc:date>2016-09-21T06:27:51Z</dc:date>
    </item>
  </channel>
</rss>

