<?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 In general, nonlinear in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/dtrnlspbc-solve-yields-NaN/m-p/933440#M13889</link>
    <description>&lt;P&gt;In general, nonlinear constrained optimization methods do not visit only feasible points on the way to the optimum.&lt;/P&gt;
&lt;P&gt;If you displayed the code for your objective function, at least, perhaps some progress could be made. Keep in mind that MKL is not open source, and giving answers to the questions you asked about the methodology may involve divulging proprietary information.&lt;/P&gt;
&lt;P&gt;I think that it would be more productive to ensure that you have formulated the problem correctly and are invoking the MKL routines properly.&lt;/P&gt;</description>
    <pubDate>Fri, 20 Sep 2013 17:42:07 GMT</pubDate>
    <dc:creator>mecej4</dc:creator>
    <dc:date>2013-09-20T17:42:07Z</dc:date>
    <item>
      <title>dtrnlspbc_solve yields NaN</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/dtrnlspbc-solve-yields-NaN/m-p/933436#M13885</link>
      <description>&lt;P&gt;Dear all,&lt;/P&gt;
&lt;P&gt;For my application I use the bounded nonlinear solver almost identical to the examples provided in MKL.&lt;/P&gt;
&lt;P&gt;I show sample of my code (unfortunately it's not possible to presend a more detailed compilable version).&lt;/P&gt;
&lt;P&gt;So, in the main solver loop, after a couple of iterations I notice that &lt;STRONG&gt;after running dtrnlsbc_solve optimization_vector&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;is all nans&lt;/STRONG&gt;. I am certain that no-one else messes with it in the meantime.&lt;/P&gt;
&lt;P&gt;Also, fvec and fjac do not have any nans, infs or very small or large values. Does anybody have any idea why could this&lt;/P&gt;
&lt;P&gt;happen? Maybe an improper initialization?&lt;/P&gt;
&lt;P&gt;Note also, thatthis problematic case is unique. It runs fine in all other cases.&lt;/P&gt;
&lt;P&gt;Thank you in advance&lt;/P&gt;
&lt;P&gt;Dimitris&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;System: Linux CentOS 4, gcc-4.7.2, MKL 11.0&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;[cpp]&lt;/P&gt;
&lt;P&gt;std::vector&amp;lt;double&amp;gt; eps = {1e-5, 1e-5, 1e-5, 1e-5, 1e-5, 1e-5};&lt;BR /&gt;std::vector&amp;lt;double&amp;gt; fvec(m, 0.);&lt;BR /&gt;std::vector&amp;lt;double&amp;gt; fjac(m * n, 0.);&lt;BR /&gt;_TRNSP_HANDLE_t handle;&lt;BR /&gt;&lt;BR /&gt;int iter1 = 1000, iter2 = 100;&lt;BR /&gt;double rs = 0.0;&lt;BR /&gt;&lt;BR /&gt;if(dtrnlspbc_init(&amp;amp;handle, &amp;amp;n, &amp;amp;m,&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; optimization_vector, lower_bounds&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; upper_bounds, eps.data(), &amp;amp;iter1, &amp;amp;iter2, &amp;amp;rs)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; != TR_SUCCESS)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit(1);&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;int info[6];&lt;BR /&gt;if(dtrnlspbc_check(&amp;amp;handle, &amp;amp;n, &amp;amp;m, fjac.data(), fvec.data(),&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; lower_bounds, upper_bounds, eps.data(),&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; info) != TR_SUCCESS)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit(1);&lt;BR /&gt;}&lt;BR /&gt;else if(info[0] || info[1] || info[2] || info[3])&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit(1);&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;int RCI_Request = 0;&lt;BR /&gt;&lt;BR /&gt;// main solver loop&lt;BR /&gt;while(1)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // THE PROBLEM IS HERE&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // I print optimization_vector, fvec, fjac and they look fine but afterwards&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // optimization_vector is made into nans&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dtrnlspbc_solve(&amp;amp;handle, fvec.data(), fjac.data(), &amp;amp;RCI_Request)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; != TR_SUCCESS)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit(1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(RCI_Request == -1 || RCI_Request == -2 || RCI_Request == -3&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; || RCI_Request == -4 || RCI_Request == -5 || RCI_Request == -6)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break; // success!&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if(RCI_Request == 1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objective(&amp;amp;m, &amp;amp;n, optimization_vector, fvec.data(), this);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if(RCI_Request == 2)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(djacobix(objective, &amp;amp;n, &amp;amp;m, fjac.data(),&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; optimization_vector, eps.data(), this)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; != TR_SUCCESS)&lt;BR /&gt;&amp;nbsp;&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;&amp;nbsp;&amp;nbsp; exit(1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;double r1, r2;&lt;BR /&gt;int iter, st_cr;&lt;BR /&gt;if(dtrnlspbc_get(&amp;amp;handle, &amp;amp;iter, &amp;amp;st_cr, &amp;amp;r1, &amp;amp;r2) != TR_SUCCESS)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit(1);&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;if(dtrnlspbc_delete(&amp;amp;handle) != TR_SUCCESS)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit(1);&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;mkl_free_buffers();&lt;/P&gt;
&lt;P&gt;[/cpp]&lt;/P&gt;</description>
      <pubDate>Thu, 19 Sep 2013 13:31:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/dtrnlspbc-solve-yields-NaN/m-p/933436#M13885</guid>
      <dc:creator>Dimitris_Dakopoulos</dc:creator>
      <dc:date>2013-09-19T13:31:39Z</dc:date>
    </item>
    <item>
      <title>You have left out important</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/dtrnlspbc-solve-yields-NaN/m-p/933437#M13886</link>
      <description>&lt;P&gt;You have left out important information, such as declarations and #include statements, and it would be useful to see complete source code for the failed run. Without that information, you are essentially asking us to give our opinions on your speculations.&lt;/P&gt;</description>
      <pubDate>Fri, 20 Sep 2013 12:41:54 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/dtrnlspbc-solve-yields-NaN/m-p/933437#M13886</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2013-09-20T12:41:54Z</dc:date>
    </item>
    <item>
      <title>Exactly. I would be glad if I</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/dtrnlspbc-solve-yields-NaN/m-p/933438#M13887</link>
      <description>&lt;P&gt;Exactly. I would be glad if I got comments:&lt;/P&gt;
&lt;P&gt;* on the structure of the flow I am following&lt;/P&gt;
&lt;P&gt;* by users having dealt with something similar&lt;/P&gt;
&lt;P&gt;* theoritical hints on whether the solver is possible to fail and in which cases.&lt;/P&gt;
&lt;P&gt;Unfortunately I cannot strip down the case from my application and/or provide more "usable" code.&lt;/P&gt;
&lt;P&gt;UPDATE: After lots of debugging seems that there is a problem with my objective function&lt;/P&gt;</description>
      <pubDate>Fri, 20 Sep 2013 12:53:24 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/dtrnlspbc-solve-yields-NaN/m-p/933438#M13887</guid>
      <dc:creator>Dimitris_Dakopoulos</dc:creator>
      <dc:date>2013-09-20T12:53:24Z</dc:date>
    </item>
    <item>
      <title>UPDATE: For some reason, the</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/dtrnlspbc-solve-yields-NaN/m-p/933439#M13888</link>
      <description>&lt;P&gt;&lt;STRONG&gt;UPDATE: &lt;BR /&gt;&lt;/STRONG&gt;For some reason, the solver produces a solution vector value outside the boundaries I provided (0, inf), more precicely a negative one. My objective function contained a square root of that so it produced NaN.&lt;/P&gt;
&lt;P&gt;Now, I guess, there is another question. Why did this happen?&lt;/P&gt;</description>
      <pubDate>Fri, 20 Sep 2013 13:49:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/dtrnlspbc-solve-yields-NaN/m-p/933439#M13888</guid>
      <dc:creator>Dimitris_Dakopoulos</dc:creator>
      <dc:date>2013-09-20T13:49:06Z</dc:date>
    </item>
    <item>
      <title>In general, nonlinear</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/dtrnlspbc-solve-yields-NaN/m-p/933440#M13889</link>
      <description>&lt;P&gt;In general, nonlinear constrained optimization methods do not visit only feasible points on the way to the optimum.&lt;/P&gt;
&lt;P&gt;If you displayed the code for your objective function, at least, perhaps some progress could be made. Keep in mind that MKL is not open source, and giving answers to the questions you asked about the methodology may involve divulging proprietary information.&lt;/P&gt;
&lt;P&gt;I think that it would be more productive to ensure that you have formulated the problem correctly and are invoking the MKL routines properly.&lt;/P&gt;</description>
      <pubDate>Fri, 20 Sep 2013 17:42:07 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/dtrnlspbc-solve-yields-NaN/m-p/933440#M13889</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2013-09-20T17:42:07Z</dc:date>
    </item>
  </channel>
</rss>

