<?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 The F77 interfaces are more in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-LAPACK-SBGVX-example/m-p/934588#M14000</link>
    <description>&lt;P&gt;The F77 interfaces are more complicated and error-prone, involving many more arguments than the F95 interfaces. In particular, no interface declarations are provided for the F77 routines, so the compiler is unable to check if the arguments are of the correct type. If you still want to use the former, please read the documentation carefully.&lt;/P&gt;

&lt;P&gt;The tenth argument, EQUED, is an &lt;EM&gt;output&lt;/EM&gt; &lt;EM&gt;variable&lt;/EM&gt; when the first argument, FACT, is not equal to 'F'. You are passing a character &lt;EM&gt;constant&lt;/EM&gt;, which leads to the access violation. The solution is to declare a character(len=1) variable, say, "equed", assign 'N' to it if you want to, and pass the variable as the tenth argument.&lt;/P&gt;</description>
    <pubDate>Mon, 10 Mar 2014 14:18:00 GMT</pubDate>
    <dc:creator>mecej4</dc:creator>
    <dc:date>2014-03-10T14:18:00Z</dc:date>
    <item>
      <title>MKL LAPACK SBGVX example</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-LAPACK-SBGVX-example/m-p/934582#M13994</link>
      <description>&lt;P&gt;SBGVX computes a few eigenvalues/eigenvectors of a real symmetric matrix so it should be very useful for FEA where we want only a few eigenvalues/vectors of a very large matrix. So, I implemented a test example following the documentations but I cannot get it to work. &amp;nbsp;I get an access violation.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;Does anyone has a working example using this routine?&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;Here is mine:&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;
program Console1
implicit none
    ! Variables
    ! &lt;A href="http://software.intel.com/sites/products/documentation/hpc/mkl/mklman/index.htm#GUID-659297EE-D35B-428C-ABBE-1A7EBE2B0F6E.htm#GUID-659297EE-D35B-428C-ABBE-1A7EBE2B0F6E" target="_blank"&gt;http://software.intel.com/sites/products/documentation/hpc/mkl/mklman/index.htm#GUID-659297EE-D35B-428C-ABBE-1A7EBE2B0F6E.htm#GUID-659297EE-D35B-428C-ABBE-1A7EBE2B0F6E&lt;/A&gt; 
    !
    ! N: matrix size
    ! NJ: number of upper diagonals + 1 
    integer, parameter :: N=3, NJ=2, ku=NJ-1, kl=0, ldab=ku+1, iwork=7*N
    !compute eigenvalues with index il to iu included
    integer, parameter :: il=1, iu=2, ldz=N, ldq=N
    integer info, m
    integer, dimension (N) :: ifail
    doubleprecision, dimension (N,N) :: KG, KM
    doubleprecision, dimension (ldab,N) :: KGB, KMB
    doubleprecision, dimension (N) :: W !eigenvalues
    doubleprecision, dimension (N,N) :: q, z
    doubleprecision vl, vu  !not referenced if range="I"
    doubleprecision, parameter :: abstol=0.0D-3  !absolute error tolerance for eigenvalues
    doubleprecision, dimension (iwork) :: work
    character*1, parameter :: jobz="V"  !compute eigenvalues
    character*1, parameter :: range="I" !compute in interval il--iu
    character*1, parameter :: uplo="U"  !upper triangular symmetric

    !local
    integer i,j

    m = iu-il+1
    
    !test matrix
    KG = 0
    KM = 0
    KG(1,1) = 100
    KG(2,2) = 100
    KG(1,2) =  25
    KG(2,1) =  25
    do i=1,N
        KM(i,i) = 1
    enddo
    print *, "KG"
    write(*,"(3G9.3)") ((KG(i,j),j=1,N),i=1,N)

    !copy to band form using 
    !http://software.intel.com/sites/products/documentation/hpc/mkl/mklman/index.htm#GUID-659297EE-D35B-428C-ABBE-1A7EBE2B0F6E.htm#GUID-659297EE-D35B-428C-ABBE-1A7EBE2B0F6E
    KGB = 0
    KMB = 0
    do i=1,N
        do j=1,N
            if (i.ge.max(1,j-ku).and.i.le.min(N,j+kl)) KGB(ku+1+i-j,j) = KG(i,j)
            if (i.ge.max(1,j-ku).and.i.le.min(N,j+kl)) KMB(ku+1+i-j,j) = KM(i,j)
        enddo
    enddo
    print *, "KGB"
    write(*,"(3G9.3)") ((KGB(i,j),j=1,N),i=1,ku+1)
    print *, "KGM"
    write(*,"(3G9.3)") ((KMB(i,j),j=1,N),i=1,ku+1)
    
    !call sbgvx(KGB, KMB, w) 
    
!                  1      2     3  4   5   6    7     8    9    10 11   12  13  14  15  16      17 18 19 20   21    22     23     24    25
    call dsbgvx(jobz, range, uplo, N, ku, ku, KGB, ldab, KMB, ldab, q, ldq, vl, vu, il, iu, abstol, m, w, z, ldz, work, iwork, ifail, info)
    print *, "Eigenvalues found=",m
    print *, "Eigenvalues. Info=",info
    write(*,*) W
    pause "Hit ENTER to continue"

end program Console1
&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 03 Mar 2014 21:12:54 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-LAPACK-SBGVX-example/m-p/934582#M13994</guid>
      <dc:creator>Ever_B_</dc:creator>
      <dc:date>2014-03-03T21:12:54Z</dc:date>
    </item>
    <item>
      <title>c:Program Files (x86</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-LAPACK-SBGVX-example/m-p/934583#M13995</link>
      <description>&lt;P&gt;As of today, I find that the &lt;STRONG&gt;IDZ forums are blanking out the text&lt;/STRONG&gt; of the first post in many threads. This problem affects even the display of the online MKL manual; I looked up sbgvx, and was given a page with nothing but the name of the routine.&lt;/P&gt;

&lt;P&gt;I am, therefore, replying based only on the title of the thread, so my response may be off the mark. Assuming that you want to see an example of using ?sbgvx():&lt;/P&gt;

&lt;P&gt;[bash]c:\\Program Files (x86)\\Intel\Composer XE 2013 SP1\\mkl\\examples&amp;gt;unzip -v examples_f95.zip | grep sbgvx&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; 97 &amp;nbsp;Defl:N &amp;nbsp; &amp;nbsp; &amp;nbsp; 49 &amp;nbsp;50% 04-15-2008 05:28 f0b2a533 &amp;nbsp;lapack95/data/sbgvx.d&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; 3255 &amp;nbsp;Defl:N &amp;nbsp; &amp;nbsp; 1249 &amp;nbsp;62% 12-31-2013 01:01 d2fa34b4 &amp;nbsp;lapack95/source/sbgvx.f90[/bash]&lt;/P&gt;

&lt;P&gt;Previous versions of MKL may have provided a fixed format Fortran example for this routine.&lt;/P&gt;</description>
      <pubDate>Mon, 03 Mar 2014 23:50:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-LAPACK-SBGVX-example/m-p/934583#M13995</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2014-03-03T23:50:00Z</dc:date>
    </item>
    <item>
      <title>The blank display problem has</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-LAPACK-SBGVX-example/m-p/934584#M13996</link>
      <description>&lt;P&gt;The blank display problem has gone behind the scenes, so I can see your post now. It appears to me that you started out trying to use the F95 interface, ran into difficulties and switched to the F77 interface.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Your program works fine with a small fix-up. Replace[fortran]program Console1[/fortran] with [fortran]include 'lapack.f90'&lt;/P&gt;

&lt;P&gt;program Console1&lt;/P&gt;

&lt;P&gt;use mkl95_lapack[/fortran]In fact, the "include.." line can be left out if the module file mkl95_lapack.mod is already present in the .../mkl/include/&amp;lt;arch&amp;gt; directory, where &amp;lt;arch&amp;gt; is "ia32" or "intel64".&lt;/P&gt;

&lt;P&gt;Then, after commenting out the F77 call and activating the F95 call, I compiled using the command [bash]ifort /Qmkl /MD /traceback xsbgvx.f90 mkl_lapack95.lib[/bash] Running the resulting program gave me[bash]...&lt;/P&gt;

&lt;P&gt;&amp;nbsp;Eigenvalues found= &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2&lt;/P&gt;

&lt;P&gt;&amp;nbsp;Eigenvalues. Info= &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/P&gt;

&lt;P&gt;&amp;nbsp; 0.000000000000000E+000 &amp;nbsp; 75.0000000000000 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;125.000000000000[/bash]&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 04 Mar 2014 13:51:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-LAPACK-SBGVX-example/m-p/934584#M13996</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2014-03-04T13:51:00Z</dc:date>
    </item>
    <item>
      <title>How do I tell VS2010 where to</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-LAPACK-SBGVX-example/m-p/934585#M13997</link>
      <description>&lt;P&gt;Thanks I go it to work. In addition to the use statement, I set up VS as follows:&lt;/P&gt;

&lt;P&gt;! Project&amp;gt; Properties&amp;gt; Fortran&amp;gt; General&amp;gt; Additional include directories&amp;gt; C:\Program Files (x86)\Intel\Composer XE 2011 SP1\mkl\include\ia32&lt;BR /&gt;
	! Project&amp;gt; Properties&amp;gt; Fortran&amp;gt; Libraries&amp;gt; Use Intel Math Kernel Library&amp;gt; Sequential&lt;BR /&gt;
	! Project&amp;gt; Properties&amp;gt; Fortran&amp;gt; External Procedures&amp;gt; Calling Conventions&amp;gt; Default&lt;BR /&gt;
	! Project&amp;gt; Properties&amp;gt; Linker&amp;gt; General&amp;gt; Enable Incremental Linking&amp;gt; No&lt;BR /&gt;
	! Project&amp;gt; Properties&amp;gt; Linker&amp;gt; Input&amp;gt; Additional dependencies&amp;gt; mkl_lapack95.lib&lt;/P&gt;

&lt;P&gt;Thanks a lot.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 10 Mar 2014 01:49:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-LAPACK-SBGVX-example/m-p/934585#M13997</guid>
      <dc:creator>Ever_B_</dc:creator>
      <dc:date>2014-03-10T01:49:00Z</dc:date>
    </item>
    <item>
      <title>Quote:Ever B. wrote:</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-LAPACK-SBGVX-example/m-p/934586#M13998</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Ever B. wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;How do I tell VS2010 where to find "mkl95_lapack.mod" ?&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Add the path to the directory containing the module file to the list (possibly initially empty) of locations in the "include files" box.&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Is the mod already there? or do I have to generate it?&amp;nbsp;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;&lt;/SPAN&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;Look in the .../mkl/include/ia32 (or .../mkl/include/intel64/lp64, etc.) directory. If the file is not already there, after you once compile a source file containing the "include '&lt;/SPAN&gt;&lt;SPAN style="color: rgb(0, 0, 255); font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; line-height: 14.30880069732666px;"&gt;lapack.f90'" statement the module will be generated in the working directory. You can then copy or move the module file to the appropriate MKL include directory.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 10 Mar 2014 02:15:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-LAPACK-SBGVX-example/m-p/934586#M13998</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2014-03-10T02:15:00Z</dc:date>
    </item>
    <item>
      <title>Now I have problems with</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-LAPACK-SBGVX-example/m-p/934587#M13999</link>
      <description>&lt;P&gt;Now I have problems with&amp;nbsp;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 1em; line-height: 1.5;"&gt;pbsvx. I can make the F95 interface work but not the F77 interface. What am I doing wrong?&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;
! Project&amp;gt; Properties&amp;gt; Fortran&amp;gt; General&amp;gt; Additional include directories&amp;gt; C:\Program Files (x86)\Intel\Composer XE 2011 SP1\mkl\include\ia32
! Project&amp;gt; Properties&amp;gt; Fortran&amp;gt; Libraries&amp;gt; Use Intel Math Kernel Library&amp;gt; Sequential
! Project&amp;gt; Properties&amp;gt; Fortran&amp;gt; External Procedures&amp;gt; Calling Conventions&amp;gt; Default
! Project&amp;gt; Properties&amp;gt; Linker&amp;gt; General&amp;gt; Enable Incremental Linking&amp;gt; No
! Project&amp;gt; Properties&amp;gt; Linker&amp;gt; Input&amp;gt; Additional dependencies&amp;gt; mkl_lapack95.lib

program Main1
    ! test MKL symmetric linear algebraic system solver

    use mkl95_lapack        ! F95 explicit interface names are here
    implicit none

    integer, parameter :: neq=3, nhbw=2
    integer i, j, info, kd, nrhs, n
    integer, dimension(neq) :: iwork
    real(8) rcond, ferr(1), berr(1), work(3*neq)
    real(8), dimension(neq,neq) :: A
    real(8), dimension(neq) :: b, x, s
    real(8), dimension(nhbw,neq) :: ab, afb

    n = neq
    kd = nhbw-1
    nrhs = 1
    
    A = 0.0 
    do i = 1, neq 
        b (i) = 1.0
        a (i, i) = 1.d0/i 
    enddo 

    do i = 1, neq
        do j = 1, neq
&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;            !from full to band storage
&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;            if (i.ge.max(1,j-kd).and.i.le.j) ab(kd+1+i-j,j) = a(i,j)    
&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;        enddo
&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;    enddo&lt;/SPAN&gt;&lt;/PRE&gt;

&lt;PRE class="brush:fortran;"&gt;
    
    ! F95 interface works fine
    !call pbsvx( ab, b, x, info=info )

    ! F77 interface -&amp;gt; Access violation. Why?
    call dpbsvx( "N", "U", neq, kd, nrhs, ab, kd+1, afb, kd+1, "N", s, b, neq, x, neq, rcond, ferr, berr, work, iwork, info )
    
    write(*,*) x
    pause "Hit Enter to continue"
endprogram&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 10 Mar 2014 02:40:32 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-LAPACK-SBGVX-example/m-p/934587#M13999</guid>
      <dc:creator>Ever_B_</dc:creator>
      <dc:date>2014-03-10T02:40:32Z</dc:date>
    </item>
    <item>
      <title>The F77 interfaces are more</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-LAPACK-SBGVX-example/m-p/934588#M14000</link>
      <description>&lt;P&gt;The F77 interfaces are more complicated and error-prone, involving many more arguments than the F95 interfaces. In particular, no interface declarations are provided for the F77 routines, so the compiler is unable to check if the arguments are of the correct type. If you still want to use the former, please read the documentation carefully.&lt;/P&gt;

&lt;P&gt;The tenth argument, EQUED, is an &lt;EM&gt;output&lt;/EM&gt; &lt;EM&gt;variable&lt;/EM&gt; when the first argument, FACT, is not equal to 'F'. You are passing a character &lt;EM&gt;constant&lt;/EM&gt;, which leads to the access violation. The solution is to declare a character(len=1) variable, say, "equed", assign 'N' to it if you want to, and pass the variable as the tenth argument.&lt;/P&gt;</description>
      <pubDate>Mon, 10 Mar 2014 14:18:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-LAPACK-SBGVX-example/m-p/934588#M14000</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2014-03-10T14:18:00Z</dc:date>
    </item>
    <item>
      <title>THANK YOU mecej4 !!! </title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-LAPACK-SBGVX-example/m-p/934589#M14001</link>
      <description>&lt;P&gt;THANK YOU mecej4 !!!&amp;nbsp;&lt;/P&gt;

&lt;P&gt;I was trying to use F77 interface (and thanks to you, I can use it now) because using Interoperative systems to call a Fortran DLL from C#&lt;/P&gt;

&lt;PRE class="brush:csharp;"&gt;
[DLLImport(Path)]
public static extern void foo()&lt;/PRE&gt;

&lt;P&gt;I could not get the linker to find the F95 MKL's. But (again) thanks to your previous suggestion, reproduced below:&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px;"&gt;! Project&amp;gt; Properties&amp;gt; Fortran&amp;gt; General&amp;gt; Additional include directories&amp;gt; C:\Program Files (x86)\Intel\Composer XE 2011 SP1\mkl\include\ia32&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;now, the Linker finds the F95 and my problems are OVER !!!&lt;/P&gt;

&lt;P&gt;The DLLImport requires "foo" to have the following !DEC$ declaration:&lt;/P&gt;

&lt;P&gt;!DEC$ATTRIBUTES REFERENCE, STDCALL, DLLEXPORT:: foo&lt;/P&gt;

&lt;P&gt;My remaining question is this: "I do not understand why...???" but you cannot set everything as STDCALL, REFERENCE in Project&amp;gt; Properties&amp;gt; Fortran&amp;gt; External Procedures&amp;gt; Calling Conventions&amp;gt; STDCALL, REFERENCE,&amp;nbsp; &amp;nbsp; because then it will not find the MKL's.&lt;/P&gt;

&lt;P&gt;So what I did was to let Calling Conventions&amp;gt;DEFAULT for the entire solution and force STDCALL only for "foo" using the !DEC$ card.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;A mystery but it works!&lt;/P&gt;</description>
      <pubDate>Mon, 10 Mar 2014 20:50:17 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-LAPACK-SBGVX-example/m-p/934589#M14001</guid>
      <dc:creator>Ever_B_</dc:creator>
      <dc:date>2014-03-10T20:50:17Z</dc:date>
    </item>
    <item>
      <title>Quote:Ever B. wrote:My</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-LAPACK-SBGVX-example/m-p/934590#M14002</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Ever B. wrote:&lt;BR /&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;My remaining question is this: "I do not understand why...???" but you cannot set everything as STDCALL, REFERENCE in Project&amp;gt; Properties&amp;gt; Fortran&amp;gt; External Procedures&amp;gt; Calling Conventions&amp;gt; STDCALL, REFERENCE,&amp;nbsp; &amp;nbsp; because then it will not find the MKL's.&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;&lt;/SPAN&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;There is not much of a mystery here. With current releases of IFort/IntelC++/MKL, the STDCALL-compatible runtime libraries are not installed unless you specify at installation time that such libraries should be included. If STDCALL library routines have not been installed and you still specify STDCALL in the VS IDE, you will have link-time failures. I think that name decoration being done differently for STDCALL is a &lt;STRONG&gt;good thing&lt;/STRONG&gt; because, without this distinction, we would suffer mysterious run-time failures instead of easily observed link-time errors.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 10 Mar 2014 21:48:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-LAPACK-SBGVX-example/m-p/934590#M14002</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2014-03-10T21:48:00Z</dc:date>
    </item>
    <item>
      <title>MKL Lapack SBGVX, a</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-LAPACK-SBGVX-example/m-p/934591#M14003</link>
      <description>&lt;P&gt;MKL Lapack SBGVX, a disappointment&lt;/P&gt;

&lt;P&gt;I selected&amp;nbsp;SBGVX because it&amp;nbsp;can solve for "selected" eigenvalues/modes (both positive and negative), thinking it would be efficient, but it is extremely slow when compared with Bathe's subspace iteration eigensolver, which unfortunately can solve only for positive eigenvalues. I need only the smallest positive eigenvalue and its mode.&lt;/P&gt;

&lt;P&gt;I am trying to solve the problem (K - e * M) u = 0 with M not +definite, and A that is +definite.&amp;nbsp;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;Since SBGVX needs the second matrix to be +definite, I multiply by -1/e and rearrange it as (M - e' * K) u = 0, then look for the highest e', which is positive, to then compute the lowest positive eigenvalue e=1/e' . It works, but it is very slow.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;Does anyone know how to modify Bathe's subspace iteration eigensolver to compute the highest eigenvalue instead of the smaller?&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;Or, how can I transform (K - e * M) u = 0 to solve for eigenvalues e^2 instead of e? so I can use Bathe's solver to find the smallest e. Bathe's solver crashes trying to solve for the smallest e when the problem has negative eigenvalues.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 12 Mar 2014 18:43:32 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-LAPACK-SBGVX-example/m-p/934591#M14003</guid>
      <dc:creator>Ever_B_</dc:creator>
      <dc:date>2014-03-12T18:43:32Z</dc:date>
    </item>
    <item>
      <title>Maybe I spotted another issue</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-LAPACK-SBGVX-example/m-p/934592#M14004</link>
      <description>&lt;P&gt;Maybe I spotted another issue:&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;
07	    ! NJ: number of upper diagonals + 1
08	    integer, parameter :: N=3, NJ=2, ku=NJ-1, kl=0, ldab=ku+1, iwork=7*N
09	    !compute eigenvalues with index il to iu included&lt;/PRE&gt;

&lt;P&gt;iwork should be an array with dimension 5*n, according to the documentation on dsbgvx.&lt;/P&gt;

&lt;P&gt;Good luck!&lt;/P&gt;</description>
      <pubDate>Tue, 25 Mar 2014 10:14:59 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-LAPACK-SBGVX-example/m-p/934592#M14004</guid>
      <dc:creator>martenjan</dc:creator>
      <dc:date>2014-03-25T10:14:59Z</dc:date>
    </item>
    <item>
      <title>Quote:martenjan wrote:</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-LAPACK-SBGVX-example/m-p/934593#M14005</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;martenjan wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Maybe I spotted another issue:&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;
08	    integer, parameter :: N=3, NJ=2, ku=NJ-1, kl=0, ldab=ku+1, iwork=7*N&lt;SPAN style="font-family: Arial, 宋体, Tahoma, Helvetica, sans-serif; font-size: 1em; line-height: 1.5;"&gt;iwork should be an array with dimension 5*n, according to the documentation on dsbgvx.&lt;/SPAN&gt;
&lt;/PRE&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt; It is always a good idea to check the documentation for the required array size of MKL routine arguments. In this case, however, there need be no concern, because the array argument is an assumed size argument, for which the documentation specifies the&amp;nbsp;&lt;EM&gt;minimum&lt;/EM&gt;&amp;nbsp;size of the array. Passing an array larger than the minimum size is acceptable, if wasteful. In some cases, the same work array may be passed to more than one routine, and in those cases it is natural to declare the work array to be the largest of those specified in the documentation for each routine.&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 25 Mar 2014 13:00:11 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-LAPACK-SBGVX-example/m-p/934593#M14005</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2014-03-25T13:00:11Z</dc:date>
    </item>
  </channel>
</rss>

