<?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 Re:Error: Different function-signatures between some aliased LAPACK functions in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Different-function-signatures-between-some-aliased-LAPACK/m-p/1406132#M33475</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Thank you for posting on Intel communities.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;I noticed, that some of these function tuples have different function signatures although they should just be aliases of each other, which leads to compiler errors.&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;gt; Could you please let us know what sort of compiler errors were faced by you? &lt;/P&gt;&lt;P&gt;Do you mean you are getting compiler errors (like type miss-match) when calling a function with it's alias name?&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Shanmukh.SS&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Shanmukh.SS&lt;/P&gt;&lt;BR /&gt;</description>
    <pubDate>Thu, 04 Aug 2022 22:01:10 GMT</pubDate>
    <dc:creator>ShanmukhS_Intel</dc:creator>
    <dc:date>2022-08-04T22:01:10Z</dc:date>
    <item>
      <title>Different function-signatures between some aliased LAPACK functions</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Different-function-signatures-between-some-aliased-LAPACK/m-p/1405734#M33467</link>
      <description>&lt;P class="sub_section_element_selectors"&gt;&lt;STRONG&gt;&lt;SPAN class="sub_section_element_selectors"&gt;Background information&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="sub_section_element_selectors"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="sub_section_element_selectors"&gt;&lt;SPAN class="sub_section_element_selectors"&gt;In general, every LAPACK function has four names under which it can be called from C, which are all defined in header &lt;EM&gt;mkl_lapack.h&lt;/EM&gt;:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="sub_section_element_selectors"&gt;&lt;SPAN class="sub_section_element_selectors"&gt;An &lt;EM&gt;all uppercase&lt;/EM&gt; version, an &lt;EM&gt;all lowercase&lt;/EM&gt; version, an &lt;EM&gt;all uppercase&lt;/EM&gt; version &lt;EM&gt;with a trailing underscore&lt;/EM&gt; and an &lt;EM&gt;all lowercase&lt;/EM&gt; version &lt;EM&gt;with a trailing underscore&lt;/EM&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="sub_section_element_selectors"&gt;&lt;SPAN class="sub_section_element_selectors"&gt;Besides these, there also exist similar 64-integer versions with &lt;EM&gt;all uppercase&lt;/EM&gt; or &lt;EM&gt;all lowercase&lt;/EM&gt; names that have "&lt;EM&gt;_64&lt;/EM&gt;" appended.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="sub_section_element_selectors"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="sub_section_element_selectors"&gt;&lt;STRONG&gt;&lt;SPAN class="sub_section_element_selectors"&gt;Problem&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="sub_section_element_selectors"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="sub_section_element_selectors"&gt;&lt;SPAN class="sub_section_element_selectors"&gt;I noticed, that some of these function tuples have different function signatures although they should just be aliases of each other, which leads to compiler errors due to non-matching parameter-types (when trying the different function aliases with the exact same type of parameters).&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="sub_section_element_selectors"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="sub_section_element_selectors"&gt;&lt;SPAN class="sub_section_element_selectors"&gt;In particular, the following functions differ in their function signature compared to their aliases.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="sub_section_element_selectors"&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI class="sub_section_element_selectors"&gt;&lt;SPAN class="sub_section_element_selectors"&gt;&lt;STRONG&gt;SGEJSV&lt;/STRONG&gt;: Its second parameter "&lt;EM&gt;jobu&lt;/EM&gt;" is missing the&amp;nbsp;&lt;EM&gt;const&lt;/EM&gt;&amp;nbsp;keyword. Its alias functions all have a &lt;EM&gt;const&lt;/EM&gt;&amp;nbsp;parameter "&lt;EM&gt;jobu&lt;/EM&gt;".&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class="sub_section_element_selectors"&gt;&lt;SPAN class="sub_section_element_selectors"&gt;&lt;STRONG&gt;SGEJSV_64&lt;/STRONG&gt;: Same error as for&amp;nbsp;&lt;EM&gt;SGEJSV&lt;/EM&gt;.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class="sub_section_element_selectors"&gt;&lt;SPAN class="sub_section_element_selectors"&gt;&lt;STRONG&gt;CLAQZ0&lt;/STRONG&gt;: Its first three parameters "&lt;EM&gt;wants&lt;/EM&gt;", "&lt;EM&gt;wantq&lt;/EM&gt;" and "&lt;EM&gt;wantz&lt;/EM&gt;" are of type &lt;EM&gt;const char*&lt;/EM&gt;&amp;nbsp;while its three alias functions define them as &lt;EM&gt;const MKL_INT*&lt;/EM&gt;. According to the LAPACK documentation at netlib.org &lt;EM&gt;const char*&lt;/EM&gt; seems to be correct. So the three alternatives are wrong.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class="sub_section_element_selectors"&gt;&lt;SPAN class="sub_section_element_selectors"&gt;&lt;STRONG&gt;CLAQZ0_64 / claqz0_64&lt;/STRONG&gt;: Here the first three parameters are of type &lt;EM&gt;const MKL_INT64*&lt;/EM&gt;. These should probably also be of type &lt;EM&gt;const char*&lt;/EM&gt; instead!?&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN class="sub_section_element_selectors"&gt;&lt;STRONG&gt;ZLAQZ0&lt;/STRONG&gt;: The same comment as for CLAQZ0 applies here.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN class="sub_section_element_selectors"&gt;&lt;STRONG&gt;ZLAQZ0_64 / zlaqz0_64&lt;/STRONG&gt;: The same comment as for &lt;EM&gt;CLAQZ0_64 / claqz0_64&lt;/EM&gt;&amp;nbsp;applies here.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN class="sub_section_element_selectors"&gt;&lt;STRONG&gt;ZLAQZ1&lt;/STRONG&gt;: The four parameters "&lt;EM&gt;a&lt;/EM&gt;", "&lt;EM&gt;b&lt;/EM&gt;", "&lt;EM&gt;q&lt;/EM&gt;"&amp;nbsp;and "&lt;EM&gt;z&lt;/EM&gt;" are of type &lt;EM&gt;MKL_Complex8*&lt;/EM&gt;&amp;nbsp;while its three alias functions define them as &lt;EM&gt;MKL_Comples16*&lt;/EM&gt;. According to the LAPACK documentation at netlib.org &lt;EM&gt;MKL_Complex16*&lt;/EM&gt; seems to be correct. So the three alternatives are correct.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN class="sub_section_element_selectors"&gt;Additional information&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class="sub_section_element_selectors"&gt;I am seeing this problem with MKL 2022.1.0.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 03 Aug 2022 17:09:55 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Different-function-signatures-between-some-aliased-LAPACK/m-p/1405734#M33467</guid>
      <dc:creator>DenizBahadir</dc:creator>
      <dc:date>2022-08-03T17:09:55Z</dc:date>
    </item>
    <item>
      <title>Re:Error: Different function-signatures between some aliased LAPACK functions</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Different-function-signatures-between-some-aliased-LAPACK/m-p/1406132#M33475</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Thank you for posting on Intel communities.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;I noticed, that some of these function tuples have different function signatures although they should just be aliases of each other, which leads to compiler errors.&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;gt; Could you please let us know what sort of compiler errors were faced by you? &lt;/P&gt;&lt;P&gt;Do you mean you are getting compiler errors (like type miss-match) when calling a function with it's alias name?&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Shanmukh.SS&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Shanmukh.SS&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Thu, 04 Aug 2022 22:01:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Different-function-signatures-between-some-aliased-LAPACK/m-p/1406132#M33475</guid>
      <dc:creator>ShanmukhS_Intel</dc:creator>
      <dc:date>2022-08-04T22:01:10Z</dc:date>
    </item>
    <item>
      <title>Re:Error: Different function-signatures between some aliased LAPACK functions</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Different-function-signatures-between-some-aliased-LAPACK/m-p/1406269#M33481</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Thank you for pointing out and sharing the findings.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;We are working on your issue internally. We'll get back to you soon with an update.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Best Regards.&lt;/P&gt;&lt;P&gt;Shanmukh.SS&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Fri, 05 Aug 2022 08:41:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Different-function-signatures-between-some-aliased-LAPACK/m-p/1406269#M33481</guid>
      <dc:creator>ShanmukhS_Intel</dc:creator>
      <dc:date>2022-08-05T08:41:34Z</dc:date>
    </item>
    <item>
      <title>Re: Re:Error: Different function-signatures between some aliased LAPACK functions</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Different-function-signatures-between-some-aliased-LAPACK/m-p/1406284#M33482</link>
      <description>&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;I noticed, that some of these function tuples have different function signatures although they should just be aliases of each other, which leads to compiler errors.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt; Could you please let us know what sort of compiler errors were faced by you?&lt;/P&gt;
&lt;P&gt;Do you mean you are getting compiler errors (like type miss-match) when calling a function with it's alias name?&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P class="sub_section_element_selectors"&gt;Exactly. (To be precise, these are warnings, but as I am treating warnings as errors, these are compiler errors for me.)&lt;/P&gt;
&lt;P class="sub_section_element_selectors"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="sub_section_element_selectors"&gt;For example:&lt;/P&gt;
&lt;P class="sub_section_element_selectors"&gt;Assume, I have a wrapper-function around&amp;nbsp;&lt;STRONG class="sub_section_element_selectors"&gt;&lt;SPAN class="sub_section_element_selectors"&gt;CLAQZ0&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN class="sub_section_element_selectors"&gt;&amp;nbsp;which is defined like this:&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="cpp"&gt;#include &amp;lt;mkl_lapack.h&amp;gt;

/* My_CLAQZ0 has the same signature as CLAQZ0! */
void My_CLAQZ0( const char* wants, const char* wantq, const char* wantz, const MKL_INT* n,
                const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex8* a, const MKL_INT* lda,
                MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* alpha, MKL_Complex8* beta,
                MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* z, const MKL_INT* ldz,
                MKL_Complex8* work, const MKL_INT* lwork, float* rwork, const MKL_INT* rec,
                MKL_INT* info)
{
    #if defined(WRAP_CLAQZ0)
        return CLAQZ0( wants, wantq, wantz, n,
                       ilo, ihi, a, lda,
                       b, ldb, alpha, beta,
                       q, ldq, z, ldz,
                       work, lwork, rwork, rec,
                       info );
    #elif defined(WRAP_claqz0)
        return claqz0( wants, wantq, wantz, n,
                       ilo, ihi, a, lda,
                       b, ldb, alpha, beta,
                       q, ldq, z, ldz,
                       work, lwork, rwork, rec,
                       info );
    #else
        #error "Either define WRAP_CLAQZ0 or WRAP_claqz0!"
    #endif
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="sub_section_element_selectors"&gt;&lt;SPAN class="sub_section_element_selectors"&gt;If you try to compile this with&amp;nbsp;&lt;EM&gt;WRAP_CLAQZ0&lt;/EM&gt; defined everything compiles.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="sub_section_element_selectors"&gt;&lt;SPAN class="sub_section_element_selectors"&gt;If, however, you try to compile this with &lt;EM&gt;WRAP_claqz0&lt;/EM&gt; defined, you will get errors as the following ones (which came from Clang 12):&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="none"&gt;$&amp;gt; clang-12 -Werror -Wall -c My_CLAQZ0.c -I /opt/intel/oneapi/mkl/2022.1.0/include -DWRAP_claqz0

My_CLAQZ0.c:18:24: error: incompatible pointer types passing 'const char *' to parameter of type 'const int *' [-Werror,-Wincompatible-pointer-types]
        return claqz0( wants, wantq, wantz, n,
                       ^~~~~
/opt/intel/oneapi/mkl/2022.1.0/include/mkl_lapack.h:11520:29: note: passing argument to parameter 'wants' here
void claqz0( const MKL_INT* wants, const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
                            ^
My_CLAQZ0.c:18:31: error: incompatible pointer types passing 'const char *' to parameter of type 'const int *' [-Werror,-Wincompatible-pointer-types]
        return claqz0( wants, wantq, wantz, n,
                              ^~~~~
/opt/intel/oneapi/mkl/2022.1.0/include/mkl_lapack.h:11520:51: note: passing argument to parameter 'wantq' here
void claqz0( const MKL_INT* wants, const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
                                                  ^
My_CLAQZ0.c:18:38: error: incompatible pointer types passing 'const char *' to parameter of type 'const int *' [-Werror,-Wincompatible-pointer-types]
        return claqz0( wants, wantq, wantz, n,
                                     ^~~~~
/opt/intel/oneapi/mkl/2022.1.0/include/mkl_lapack.h:11520:73: note: passing argument to parameter 'wantz' here
void claqz0( const MKL_INT* wants, const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
                                                                        ^
3 errors generated.&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 05 Aug 2022 10:00:30 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Different-function-signatures-between-some-aliased-LAPACK/m-p/1406284#M33482</guid>
      <dc:creator>DenizBahadir</dc:creator>
      <dc:date>2022-08-05T10:00:30Z</dc:date>
    </item>
    <item>
      <title>Re:Error: Different function-signatures between some aliased LAPACK functions</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Different-function-signatures-between-some-aliased-LAPACK/m-p/1406369#M33487</link>
      <description>&lt;P&gt;the issues you reported here were escalated and would be fixed into one of the next   releases/updates. The thread will keep updated.&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Fri, 05 Aug 2022 16:57:08 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Different-function-signatures-between-some-aliased-LAPACK/m-p/1406369#M33487</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2022-08-05T16:57:08Z</dc:date>
    </item>
    <item>
      <title>Re: Different function-signatures between some aliased LAPACK functions</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Different-function-signatures-between-some-aliased-LAPACK/m-p/1440229#M34027</link>
      <description>&lt;P&gt;It seems as if this issue is fixed by MKL 2023.0.0.&lt;/P&gt;
&lt;P&gt;Thank you!&lt;/P&gt;</description>
      <pubDate>Tue, 20 Dec 2022 18:44:12 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Different-function-signatures-between-some-aliased-LAPACK/m-p/1440229#M34027</guid>
      <dc:creator>DenizBahadir</dc:creator>
      <dc:date>2022-12-20T18:44:12Z</dc:date>
    </item>
  </channel>
</rss>

