<?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: Calling mkl zgesvd from C in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344516#M32461</link>
    <description>&lt;P&gt;Tim,&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&lt;SPAN&gt;Yes, I know that link. But that only mentions what I already mentioned to&amp;nbsp;&lt;/SPAN&gt;&lt;A id="link_14" class="lia-link-navigation lia-page-link lia-user-name-link sub_section_element_selectors" href="https://community.intel.com/t5/user/viewprofilepage/user-id/41971" target="_self" aria-label="View Profile of mecej4"&gt;&lt;SPAN class="sub_section_element_selectors"&gt;mecej4&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;, i.e.,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="sub_section_element_selectors"&gt;changing the setting under "Use Intel MKL" under "Intel Performance Libraries" under the property pages. The problem is that you do not know what logic the IDE hides in the background.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;&amp;lt; Then You choose "Use Intel MKL" button, You will have the following options: No, Parallel, Sequential, Cluster. This option will say compiler to link against the corresponding mkl's libraries&lt;/P&gt;
&lt;P&gt;parallel:&amp;nbsp;mkl_intel_lp64.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib&lt;/P&gt;
&lt;P&gt;sequential: mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib&lt;/P&gt;
&lt;P&gt;here you could see some details:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.intel.com/content/www/us/en/develop/documentation/onemkl-windows-developer-guide/top/linking-your-application-with-onemkl/linking-quick-start/using-the-qmkl-compiler-option.html" target="_blank"&gt;https://www.intel.com/content/www/us/en/develop/documentation/onemkl-windows-developer-guide/top/linking-your-application-with-onemkl/linking-quick-start/using-the-qmkl-compiler-option.html&lt;/A&gt;&lt;/P&gt;</description>
    <pubDate>Thu, 16 Dec 2021 06:57:58 GMT</pubDate>
    <dc:creator>Gennady_F_Intel</dc:creator>
    <dc:date>2021-12-16T06:57:58Z</dc:date>
    <item>
      <title>Calling mkl zgesvd from C</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344254#M32453</link>
      <description>&lt;P&gt;Dear reader,&lt;/P&gt;
&lt;P&gt;So far I have been using the IMSL Fortran library for all of my computational work. My main code is in C and so I'm calling Fortran library from C. Currently, I'm testing to replace the&amp;nbsp; double precision Singular Value Decomposition (SVD) of the IMSL Fortran library (DLSVCR()) by the MKL one (zgesvd()). I compile and link with the intel compiler (version 19) using the Visual Studio IDE. I get no errors but the result of the SVD is wrong. I have a strong impression this has something to do with the data type mapping. Below the call, as far as I think important to the problem:&lt;/P&gt;
&lt;P&gt;######C-code snapshot#####################################&lt;/P&gt;
&lt;P&gt;char jobu, jobvt;&lt;/P&gt;
&lt;P&gt;jobu = 'A';&lt;BR /&gt;jobvt = 'A';&lt;/P&gt;
&lt;P&gt;info = -1; // info should be zero after the call. Indeed it is!&lt;/P&gt;
&lt;P&gt;zgesvd(&amp;amp;jobu, &amp;amp;jobvt, &amp;amp;NRA, &amp;amp;NCA, SCAT_TR, &amp;amp;LDA, S_SVD_2, U_SVD, &amp;amp;LDU, V_SVD, &amp;amp;LDV, work, lwork, rwork, &amp;amp;info);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;####END of snapshot####################################################&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As far as the Fortran double complex data type I have used my own structure, which is included in my header file (snapshot below):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;typedef struct&lt;BR /&gt;{&lt;BR /&gt;double real;&lt;BR /&gt;double imag;&lt;BR /&gt;} COMPLEX16;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The prototype for zgesvd() is listed in my header file as follows:&lt;/P&gt;
&lt;P&gt;extern "C"&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;void zgesvd(char *jobu, char *jobvt, int *NRA, int *NCA, COMPLEX16 *SCAT_TR, int *LDA, double *S_SVD, COMPLEX16 *U_SVD, int *LDU, COMPLEX16 *V_SVD, int *LDV, COMPLEX16 *work, int *lwork, double *rwork, int *info);&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;PS: With the IMSL routine all of this works just fine.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Any comments what could be the problem with my approach in calling zgesvd()??&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;With kind regards,&lt;/P&gt;
&lt;P&gt;Tim.&lt;/P&gt;</description>
      <pubDate>Wed, 15 Dec 2021 10:59:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344254#M32453</guid>
      <dc:creator>geerits</dc:creator>
      <dc:date>2021-12-15T10:59:04Z</dc:date>
    </item>
    <item>
      <title>Re: Calling mkl zgesvd from C</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344293#M32454</link>
      <description>&lt;P&gt;If you wish to call ZGESVD from C through the F77 interface, see the example (part of the MKL examples provided in Zip form in the .../mkl/examples directory, or &lt;A href="https://software.intel.com/sites/products/documentation/doclib/mkl_sa/11/mkl_lapack_examples/zgesvd_ex.c.htm" target="_blank" rel="noopener"&gt;zgesvd_ex.c.html (intel.com)&lt;/A&gt;&amp;nbsp;.&lt;/P&gt;
&lt;P&gt;Even if you get the calling sequence right, there can still be errors caused by not linking with the appropriate MKL libraries. The &lt;A href="https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl-link-line-advisor.html" target="_self"&gt;MKL Link Line Advisor&lt;/A&gt; can be of help.&lt;/P&gt;</description>
      <pubDate>Wed, 15 Dec 2021 13:58:59 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344293#M32454</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2021-12-15T13:58:59Z</dc:date>
    </item>
    <item>
      <title>Re: Calling mkl zgesvd from C</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344305#M32455</link>
      <description>&lt;P&gt;Many thanks for your prompt and useful reply! I double checked the calling sequence and the user-defined type. All seems to be correct. You refer to the MKL link-line advisor. However, I'm using MS VS IDE and do not know WHERE to invoke the link line (Linker&amp;gt;Command Line ???). The MKL documentation appears to be very vague on how to use the MKL libraries in conjunction with the VS IDE. The only thing I could find was changing the setting under "Use Intel MKL" under "Intel Performance Libraries" under the property pages. Looking forward to your insights.&lt;/P&gt;</description>
      <pubDate>Wed, 15 Dec 2021 14:38:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344305#M32455</guid>
      <dc:creator>geerits</dc:creator>
      <dc:date>2021-12-15T14:38:39Z</dc:date>
    </item>
    <item>
      <title>Re: Calling mkl zgesvd from C</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344310#M32456</link>
      <description>&lt;P&gt;You may try to check the developer guide following the link:&amp;nbsp;&lt;A href="https://www.intel.com/content/www/us/en/develop/documentation/onemkl-windows-developer-guide/top/programming-onemkl-in-ide/configure-integrated-dev-env-to-link-with-onemkl/config-microsoft-visual-c-dev-sys-to-link-onemkl.html" target="_blank"&gt;https://www.intel.com/content/www/us/en/develop/documentation/onemkl-windows-developer-guide/top/programming-onemkl-in-ide/configure-integrated-dev-env-to-link-with-onemkl/config-microsoft-visual-c-dev-sys-to-link-onemkl.html&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 15 Dec 2021 14:53:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344310#M32456</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2021-12-15T14:53:29Z</dc:date>
    </item>
    <item>
      <title>Re:Calling mkl zgesvd from C</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344312#M32457</link>
      <description>&lt;P&gt;and also You might build the F77 example which meaej4 pointed out, from command  line prompt and see if the computed results could  be correct or not.&lt;/P&gt;&lt;P&gt;-Gennady&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Wed, 15 Dec 2021 15:01:52 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344312#M32457</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2021-12-15T15:01:52Z</dc:date>
    </item>
    <item>
      <title>Re: Calling mkl zgesvd from C</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344318#M32458</link>
      <description>&lt;P&gt;Yes, I know that link. But that only mentions what I already mentioned to&amp;nbsp;&lt;A id="link_14" class="lia-link-navigation lia-page-link lia-user-name-link" href="https://community.intel.com/t5/user/viewprofilepage/user-id/41971" target="_self" aria-label="View Profile of mecej4"&gt;&lt;SPAN class=""&gt;mecej4&lt;/SPAN&gt;&lt;/A&gt;, i.e.,&amp;nbsp;&lt;SPAN&gt;changing the setting under "Use Intel MKL" under "Intel Performance Libraries" under the property pages. The problem is that you do not know what logic the IDE hides in the background. Yes, if I do not get this problem solved quickly, I might have to dive into the command line approach again (like in the old UNIX days :-)) as suggested by you.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 15 Dec 2021 15:32:16 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344318#M32458</guid>
      <dc:creator>geerits</dc:creator>
      <dc:date>2021-12-15T15:32:16Z</dc:date>
    </item>
    <item>
      <title>Re: Calling mkl zgesvd from C</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344366#M32460</link>
      <description>&lt;P&gt;I took the MKL ZGESVD example at&amp;nbsp;&lt;A href="https://software.intel.com/sites/products/documentation/doclib/mkl_sa/11/mkl_lapack_examples/zgesvd_ex.c.htm" target="_blank"&gt;https://software.intel.com/sites/products/documentation/doclib/mkl_sa/11/mkl_lapack_examples/zgesvd_ex.c.htm&lt;/A&gt;&amp;nbsp;, and modified the source file to use the 6 X 3 matrix that is shown in the &lt;A href="https://help.imsl.com/fortran/7.1/html/fnlmath/index.html#page/FNLMath/mch1.04.131.html" target="_self"&gt;IMSL documentation for LSVCR&lt;/A&gt;. I compiled and linked the C source file using the command&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;icl /Qmkl xzgesvd.c&lt;/P&gt;
&lt;P&gt;and ran the resulting EXE.&amp;nbsp; The resulting singular values and right and left singular vectors agreed with those that are displayed in the IMSL manual.&lt;/P&gt;</description>
      <pubDate>Wed, 15 Dec 2021 18:16:14 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344366#M32460</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2021-12-15T18:16:14Z</dc:date>
    </item>
    <item>
      <title>Re: Calling mkl zgesvd from C</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344516#M32461</link>
      <description>&lt;P&gt;Tim,&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&lt;SPAN&gt;Yes, I know that link. But that only mentions what I already mentioned to&amp;nbsp;&lt;/SPAN&gt;&lt;A id="link_14" class="lia-link-navigation lia-page-link lia-user-name-link sub_section_element_selectors" href="https://community.intel.com/t5/user/viewprofilepage/user-id/41971" target="_self" aria-label="View Profile of mecej4"&gt;&lt;SPAN class="sub_section_element_selectors"&gt;mecej4&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;, i.e.,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="sub_section_element_selectors"&gt;changing the setting under "Use Intel MKL" under "Intel Performance Libraries" under the property pages. The problem is that you do not know what logic the IDE hides in the background.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;&amp;lt; Then You choose "Use Intel MKL" button, You will have the following options: No, Parallel, Sequential, Cluster. This option will say compiler to link against the corresponding mkl's libraries&lt;/P&gt;
&lt;P&gt;parallel:&amp;nbsp;mkl_intel_lp64.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib&lt;/P&gt;
&lt;P&gt;sequential: mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib&lt;/P&gt;
&lt;P&gt;here you could see some details:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.intel.com/content/www/us/en/develop/documentation/onemkl-windows-developer-guide/top/linking-your-application-with-onemkl/linking-quick-start/using-the-qmkl-compiler-option.html" target="_blank"&gt;https://www.intel.com/content/www/us/en/develop/documentation/onemkl-windows-developer-guide/top/linking-your-application-with-onemkl/linking-quick-start/using-the-qmkl-compiler-option.html&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 16 Dec 2021 06:57:58 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344516#M32461</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2021-12-16T06:57:58Z</dc:date>
    </item>
    <item>
      <title>Re: Calling mkl zgesvd from C</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344518#M32462</link>
      <description>&lt;P&gt;thanks mecej4,&lt;/P&gt;
&lt;P&gt;I see the same outputs with the current version of oneMKL 2021. I switched on the verbose mode to see all needed the mkl and zgesvd calls details:&lt;/P&gt;
&lt;P&gt;ZGESVD Example Program Results&lt;BR /&gt;MKL_VERBOSE oneMKL 2021.0 Update 4 Product build 20210904 for Intel(R) 64 architecture Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) enabled processors, Win 2.60GHz cdecl intel_thread&lt;BR /&gt;MKL_VERBOSE ZGESVD(A,A,3,6,00000078D4F4F2C0,3,00000078D4F4F3E0,00000078D4F4F400,3,00000078D4F4F510,6,00000078D4F4F2A8,-1,00000078D4F4F490,0) 1.36ms CNR:OFF Dyn:1 FastMM:1 TID:0 NThr:2&lt;BR /&gt;MKL_VERBOSE ZGESVD(A,A,3,6,00000078D4F4F2C0,3,00000078D4F4F3E0,00000078D4F4F400,3,00000078D4F4F510,6,000001B4ECC88ED0,12,00000078D4F4F490,0) 278.30us CNR:OFF Dyn:1 FastMM:1 TID:0 NThr:2&lt;/P&gt;
&lt;P&gt;Singular values&lt;BR /&gt;11.77 9.30 4.99&lt;/P&gt;
&lt;P&gt;Left singular vectors (stored columnwise)&lt;BR /&gt;( -0.66, 0.00) ( 0.27, 0.00) ( -0.70, 0.00)&lt;BR /&gt;( -0.74, 0.04) ( -0.38, -0.07) ( 0.55, -0.06)&lt;BR /&gt;( -0.05, -0.13) ( -0.17, 0.86) ( -0.02, 0.45)&lt;/P&gt;
&lt;P&gt;Right singular vectors (stored rowwise)&lt;BR /&gt;( -0.20, -0.22) ( -0.34, 0.35) ( -0.15, -0.23) ( -0.30, 0.08) ( -0.23, 0.60) ( -0.29, 0.03)&lt;BR /&gt;( -0.50, -0.02) ( 0.29, -0.02) ( 0.54, -0.14) ( -0.22, -0.27) ( 0.13, -0.14) ( -0.44, 0.04)&lt;BR /&gt;( -0.20, -0.10) ( 0.12, -0.23) ( -0.44, -0.44) ( -0.05, -0.09) ( 0.32, -0.01) ( 0.05, -0.62)&lt;/P&gt;</description>
      <pubDate>Thu, 16 Dec 2021 07:01:07 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344518#M32462</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2021-12-16T07:01:07Z</dc:date>
    </item>
    <item>
      <title>Re: Calling mkl zgesvd from C</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344585#M32463</link>
      <description>&lt;P&gt;Hi Gennady_F_Intel,&lt;/P&gt;
&lt;P&gt;I use the "sequential" option. But that doesn't solve my problem. However, your link triggered a question from my side with regards to "cdecl" (IA-32) versus "LP64". Since my target platform in Visual Studio is X64, should I use different data types in my C call to Fortran LAPACK routine zgesvd (i.e., in particular, replace int* by MKL_INT*)??? Weird though that I do not get any error message during link time. Your comments/suggestions are very much appreciated!&lt;/P&gt;</description>
      <pubDate>Thu, 16 Dec 2021 10:43:47 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344585#M32463</guid>
      <dc:creator>geerits</dc:creator>
      <dc:date>2021-12-16T10:43:47Z</dc:date>
    </item>
    <item>
      <title>Re: Calling mkl zgesvd from C</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344603#M32464</link>
      <description>&lt;P&gt;If you are building 64-bit EXEs or DLLs, you may choose either the &lt;A href="https://www.intel.com/content/www/us/en/develop/documentation/onemkl-linux-developer-guide/top/linking-your-application-with-onemkl/linking-in-detail/linking-with-interface-libraries/using-the-ilp64-interface-vs-lp64-interface.html" target="_self"&gt;LP64 or the ILP64 libraries&lt;/A&gt;. Unless you are going to use very large arrays (large enough to need 64-bit subscript variables), the LP64 model should suffice. In short, the difference is that integer arguments passed to MKL routines are 32-bit integers in LP64 and are 64-bit integers in ILP64.&lt;/P&gt;
&lt;P&gt;There is no reason to tie IA32 and CDECL.&lt;/P&gt;
&lt;P&gt;If you link to LP64 libraries when you should have used ILP64, or vice versa, you will not see any link errors since the routine names do not change from LP64 to ILP64. The program, when run, will either crash or produce incorrect results.&lt;/P&gt;</description>
      <pubDate>Thu, 16 Dec 2021 12:08:33 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344603#M32464</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2021-12-16T12:08:33Z</dc:date>
    </item>
    <item>
      <title>Re: Calling mkl zgesvd from C</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344632#M32465</link>
      <description>&lt;P&gt;Hi mecej4,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I found the problem after a second inspection of the example you sent me in your very first reply. It turned out I didn't understand the documentation when it comes to the use of the "work" array in zgesvd(). Its original size "1"&amp;nbsp; (while lwork=-1) cannot be kept at successive calls. I now understand what is meant with "&lt;SPAN&gt;If&amp;nbsp;&lt;/SPAN&gt;&lt;SAMP class="codeph"&gt;&lt;VAR&gt;lwork&lt;/VAR&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;= -1&lt;/SAMP&gt;&lt;SPAN&gt;, then a workspace query is assumed; the routine only calculates the optimal size of the&amp;nbsp;&lt;/SPAN&gt;&lt;VAR&gt;work&lt;/VAR&gt;&lt;SPAN&gt;&amp;nbsp;array, returns this value as the first entry of the&amp;nbsp;&lt;/SPAN&gt;&lt;VAR&gt;work&lt;/VAR&gt;&lt;SPAN&gt;&amp;nbsp;array, and no error message related to&amp;nbsp;&lt;/SPAN&gt;&lt;VAR&gt;lwork&lt;/VAR&gt;&lt;SPAN&gt;&amp;nbsp;is issued by&amp;nbsp;&lt;/SPAN&gt;&lt;A class="allformats" href="https://community.intel.com/GUID-F3536B0B-2FA0-40B4-AF9B-51A182827F73.htm#GUID-F3536B0B-2FA0-40B4-AF9B-51A182827F73" target="_blank"&gt;xerbla&lt;/A&gt;&lt;SPAN&gt;. See&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Application Notes&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;for details.&lt;/SPAN&gt;", in the reference manual. By the way, the idea of having to make a separate call to zgesvd() in order to determine the optimum size of "work" seems unnecessary. What is the exact function of the "work" array?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In any case, I have clicked "Accept solution" in your original reply. Many thanks for your assistance!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;With kind regards,&lt;/P&gt;
&lt;P&gt;Tim.&lt;/P&gt;</description>
      <pubDate>Thu, 16 Dec 2021 14:56:21 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344632#M32465</guid>
      <dc:creator>geerits</dc:creator>
      <dc:date>2021-12-16T14:56:21Z</dc:date>
    </item>
    <item>
      <title>Re: Calling mkl zgesvd from C</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344645#M32467</link>
      <description>&lt;P&gt;Major parts of BLAS and Lapack were developed in the 1970s and 1980s, and the Fortran versions available were various versions of Fortran 77 and earlier. Those versions of Fortran had rather primitive and highly restricted ways of allocating memory for workspace (a.k.a. scratchpad) memory. In particular, one could not read problem data, calculate the required workspace size, and then allocate the exact size required. Thus, a user had to estimate the size needed, write the program with that estimate and make trial runs. If the Lapack library found the size inadequate, it would print an error message and abort, following which the programmer would adjust the memory size and try again.&lt;/P&gt;
&lt;P&gt;We do not need those restrictions anymore, but the interfaces have been set and so widely used in software that we still use the old protocols for assigning workspace, etc.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 16 Dec 2021 15:52:08 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344645#M32467</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2021-12-16T15:52:08Z</dc:date>
    </item>
    <item>
      <title>Re:Calling mkl zgesvd from C</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344835#M32469</link>
      <description>&lt;P&gt;This issue has been resolved and we will no longer respond to this thread.&amp;nbsp;If you require additional assistance from Intel, please start a new thread.&amp;nbsp;Any further interaction in this thread will be considered community only.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Fri, 17 Dec 2021 03:54:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-mkl-zgesvd-from-C/m-p/1344835#M32469</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2021-12-17T03:54:34Z</dc:date>
    </item>
  </channel>
</rss>

