<?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 Feature request: double * const * const, please in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Feature-request-double-const-const-please/m-p/1080079#M22760</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;

&lt;P&gt;I would like to put in a feature request for MKL:&lt;/P&gt;

&lt;P&gt;&amp;nbsp;Currently, the c interface of mkl does not provide for const pointers. It only does for pointers to const ( i.e. double const * and not double const * const ) - the latter meaning that the pointer itself is not changing as well and not only what it points to (through it, to be exact).&lt;/P&gt;

&lt;P&gt;This results in a lot of const (un)casting when one tries to write wrapper classes, since any sensible c++ programmer would provide with 2 versions of the (example, schematically) container data:&lt;/P&gt;

&lt;P&gt;double * data() { return ptr_ ; }&lt;/P&gt;

&lt;P&gt;double const * const data() const { return ptr_ ;}&lt;/P&gt;

&lt;P&gt;This creates a logical havoc when writing lapack/blas wrappers. Would you please consider correcting it ?&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 19 Feb 2016 17:26:36 GMT</pubDate>
    <dc:creator>Petros_Mamales</dc:creator>
    <dc:date>2016-02-19T17:26:36Z</dc:date>
    <item>
      <title>Feature request: double * const * const, please</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Feature-request-double-const-const-please/m-p/1080079#M22760</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;

&lt;P&gt;I would like to put in a feature request for MKL:&lt;/P&gt;

&lt;P&gt;&amp;nbsp;Currently, the c interface of mkl does not provide for const pointers. It only does for pointers to const ( i.e. double const * and not double const * const ) - the latter meaning that the pointer itself is not changing as well and not only what it points to (through it, to be exact).&lt;/P&gt;

&lt;P&gt;This results in a lot of const (un)casting when one tries to write wrapper classes, since any sensible c++ programmer would provide with 2 versions of the (example, schematically) container data:&lt;/P&gt;

&lt;P&gt;double * data() { return ptr_ ; }&lt;/P&gt;

&lt;P&gt;double const * const data() const { return ptr_ ;}&lt;/P&gt;

&lt;P&gt;This creates a logical havoc when writing lapack/blas wrappers. Would you please consider correcting it ?&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 19 Feb 2016 17:26:36 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Feature-request-double-const-const-please/m-p/1080079#M22760</guid>
      <dc:creator>Petros_Mamales</dc:creator>
      <dc:date>2016-02-19T17:26:36Z</dc:date>
    </item>
    <item>
      <title>thanks Petros, we will</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Feature-request-double-const-const-please/m-p/1080080#M22761</link>
      <description>&lt;P&gt;thanks Petros, we will consider this request into one of the next releases of Intel MKL.&lt;/P&gt;</description>
      <pubDate>Sat, 20 Feb 2016 09:24:48 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Feature-request-double-const-const-please/m-p/1080080#M22761</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2016-02-20T09:24:48Z</dc:date>
    </item>
    <item>
      <title>Hi Petros,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Feature-request-double-const-const-please/m-p/1080081#M22762</link>
      <description>&lt;P&gt;Hi Petros,&lt;/P&gt;

&lt;P&gt;Could you give a more detailed example which demonstrates the problem? Many C interfaces accept pointers by value, and function is allowed to change these parameters because the change will not affect corresponding arguments. If a function has a 'const T' parameter of a non-reference type T, then const qualifier is disregarded in many respects. For example, one cannot overload a function with a parameter of non-reference type T by making the parameter 'const T'.&lt;/P&gt;

&lt;P&gt;Thanks&lt;BR /&gt;
	&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;Dima&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 09 Mar 2016 18:54:54 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Feature-request-double-const-const-please/m-p/1080081#M22762</guid>
      <dc:creator>Dmitry_B_Intel</dc:creator>
      <dc:date>2016-03-09T18:54:54Z</dc:date>
    </item>
  </channel>
</rss>

