| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590 |
- !===============================================================================
- ! Copyright 2012-2022 Intel Corporation.
- !
- ! This software and the related documents are Intel copyrighted materials, and
- ! your use of them is governed by the express license under which they were
- ! provided to you (License). Unless the License provides otherwise, you may not
- ! use, modify, copy, publish, distribute, disclose or transmit this software or
- ! the related documents without Intel's prior written permission.
- !
- ! This software and the related documents are provided as is, with no express
- ! or implied warranties, other than those that are expressly stated in the
- ! License.
- !===============================================================================
- ! Content:
- ! Intel(R) oneAPI Math Kernel Library (oneMKL) Fortran interface for
- ! oneMKL Extended Eigensolvers routines
- !*******************************************************************************
- !!!!!!!!!!!!! RCI interfaces
- interface
- subroutine dfeast_srci(ijob,N,Ze,work,workc,Aq,Sq,fpm, &
- & epsout,loop,Emin,Emax,M0,lambda,q,M,res,info)
- integer ijob,N,M0
- complex*16 Ze
- double precision work(N, *)
- complex*16 workc(N, *)
- double precision Aq(M0,*), Sq(M0,*)
- integer fpm(*)
- double precision epsout
- integer loop
- double precision Emin,Emax
- double precision lambda(*)
- double precision q(N,*)
- integer M
- double precision res(*)
- integer info
- end
- end interface
- interface
- subroutine zfeast_hrci(ijob,N,Ze,work,workc,zAq,zSq,fpm,epsout, &
- & loop,Emin,Emax,M0,lambda,q,M,res,info)
- integer ijob,N,M0
- complex*16 Ze
- complex*16 work(N, *)
- complex*16 workc(N, *)
- complex*16 zAq(M0,*), zSq(M0,*)
- integer fpm(*)
- double precision epsout
- integer loop
- double precision Emin,Emax
- double precision lambda(*)
- complex*16 q(N,*)
- integer M
- double precision res(*)
- integer info
- end
- end interface
- interface
- subroutine sfeast_srci(ijob,N,Ze,work,workc,Aq,Sq,fpm, &
- & epsout,loop,Emin,Emax,M0,lambda,q,M,res,info)
- integer ijob,N,M0
- complex Ze
- real work(N, *)
- complex workc(N, *)
- real Aq(M0,*), Sq(M0,*)
- integer fpm(*)
- real epsout
- integer loop
- real Emin, Emax
- real lambda(*)
- real q(N,*)
- integer M
- real res(*)
- integer info
- end
- end interface
- interface
- subroutine cfeast_hrci(ijob,N,Ze,work,workc,zAq,zSq,fpm,epsout, &
- & loop,Emin,Emax,M0,lambda,q,M,res,info)
- integer ijob,N,M0
- complex Ze
- complex work(N, *)
- complex workc(N, *)
- complex zAq(M0,*), zSq(M0,*)
- integer fpm(*)
- real epsout
- integer loop
- real Emin,Emax
- real lambda(*)
- complex q(N,*)
- integer M
- real res(*)
- integer info
- end
- end interface
- !!!!!!!!!! DENSE interfaces
- interface
- subroutine dfeast_sygv(UPLO,N,A,LDA,B,LDB,fpm,epsout,loop, &
- & Emin,Emax,M0,E,X,M,res,info)
- character UPLO
- integer N,LDA,LDB
- double precision A(LDA,*)
- double precision B(LDB,*)
- integer fpm(*)
- double precision epsout
- integer loop
- double precision Emin,Emax
- integer M0
- double precision E(*)
- double precision X(N,*)
- integer M
- double precision res(*)
- integer info
- end
- end interface
- interface
- subroutine dfeast_syev(UPLO,N,A,LDA,fpm,epsout,loop,Emin,Emax, &
- & M0,E,X,M,res,info)
- character UPLO
- integer N,LDA
- double precision A(LDA,*)
- integer fpm(*)
- double precision epsout
- integer loop
- double precision Emin,Emax
- integer M0
- double precision E(*)
- double precision X(N,*)
- integer M
- double precision res(*)
- integer info
- end
- end interface
- interface
- subroutine sfeast_sygv(UPLO,N,A,LDA,B,LDB,fpm,epsout,loop, &
- & Emin,Emax,M0,E,X,M,res,info)
- character UPLO
- integer N,LDA,LDB
- real A(LDA,*)
- real B(LDB,*)
- integer fpm(*)
- real epsout
- integer loop
- real Emin,Emax
- integer M0
- real E(*)
- real X(N,*)
- integer M
- real res(*)
- integer info
- end
- end interface
- interface
- subroutine sfeast_syev(UPLO,N,A,LDA,fpm,epsout,loop, &
- & Emin,Emax,M0,E,X,M,res,info)
- character UPLO
- integer N,LDA
- real A(LDA,*)
- integer fpm(*)
- real epsout
- integer loop
- real Emin,Emax
- integer M0
- real E(*)
- real X(N,*)
- integer M
- real res(*)
- integer info
- end
- end interface
- interface
- subroutine zfeast_hegv(UPLO,N,A,LDA,B,LDB,fpm,epsout,loop, &
- & Emin,Emax,M0,E,X,M,res,info)
- character UPLO
- integer N, LDA, LDB
- complex*16 A(LDA,*)
- complex*16 B(LDB,*)
- integer fpm(*)
- double precision epsout
- integer loop
- double precision Emin,Emax
- integer M0
- double precision E(*)
- complex X(N,*)
- integer M
- double precision res(*)
- integer info
- end
- end interface
- interface
- subroutine zfeast_heev(UPLO,N,A,LDA,fpm,epsout,loop,Emin,Emax, &
- & M0,E,X,M,res,info)
- character UPLO
- integer N,LDA
- complex A(LDA,*)
- integer fpm(*)
- double precision epsout
- integer loop
- double precision Emin,Emax
- integer M0
- double precision E(*)
- complex X(N,*)
- integer M
- double precision res(*)
- integer info
- end
- end interface
- interface
- subroutine cfeast_hegv(UPLO,N,A,LDA,B,LDB,fpm,epsout,loop, &
- & Emin,Emax,M0,E,X,M,res,info)
- character UPLO
- integer N,LDA,LDB
- complex A(LDA,*)
- complex B(LDB,*)
- integer fpm(*)
- real epsout
- integer loop
- real Emin,Emax
- integer M0
- real E(*)
- complex X(N,*)
- integer M
- real res(*)
- integer info
- end
- end interface
- interface
- subroutine cfeast_heev(UPLO,N,A,LDA,fpm,epsout,loop,Emin,Emax, &
- & M0,E,X,M,res,info)
- character UPLO
- integer N,LDA
- complex A(LDA,*)
- integer fpm(*)
- real epsout
- integer loop
- real Emin,Emax
- integer M0
- real E(*)
- complex X(N,*)
- integer M
- real res(*)
- integer info
- end
- end interface
- !!!!!!!!!! BANDED interfaces
- interface
- subroutine dfeast_sbgv(UPLO,N,kla,A,LDA,klb,B,LDB,fpm,epsout, &
- & loop,Emin,Emax,M0,E,X,M,res,info)
- character UPLO
- integer N,LDA,LDB,kla,klb
- double precision A(LDA,*)
- double precision B(LDB,*)
- integer fpm(*)
- double precision epsout
- integer loop
- double precision Emin,Emax
- integer M0
- double precision E(*)
- double precision X(N,*)
- integer M
- double precision res(*)
- integer info
- end
- end interface
- interface
- subroutine dfeast_sbev(UPLO,N,kla,A,LDA,fpm,epsout,loop, &
- & Emin,Emax,M0,E,X,M,res,info)
- character UPLO
- integer N,LDA,kla
- double precision A(LDA,*)
- integer fpm(*)
- double precision epsout
- integer loop
- double precision Emin,Emax
- integer M0
- double precision E(*)
- double precision X(N,*)
- integer M
- double precision res(*)
- integer info
- end
- end interface
- interface
- subroutine sfeast_sbgv(UPLO,N,kla,A,LDA,klb,B,LDB,fpm,epsout, &
- & loop,Emin,Emax,M0,E,X,M,res,info)
- character UPLO
- integer N,LDA,LDB,kla,klb
- real A(LDA,*)
- real B(LDB,*)
- integer fpm(*)
- real epsout
- integer loop
- real Emin,Emax
- integer M0
- real E(*)
- real X(N,*)
- integer M
- real res(*)
- integer info
- end
- end interface
- interface
- subroutine sfeast_sbev(UPLO,N,kla,A,LDA,fpm,epsout,loop, &
- & Emin,Emax,M0,E,X,M,res,info)
- character UPLO
- integer N,LDA,kla
- real A(LDA,*)
- integer fpm(*)
- real epsout
- integer loop
- real Emin,Emax
- integer M0
- real E(*)
- real X(N,*)
- integer M
- real res(*)
- integer info
- end
- end interface
- interface
- subroutine cfeast_hbgv(UPLO,N,kla,A,LDA,klb,B,LDB,fpm,epsout, &
- & loop,Emin,Emax,M0,E,X,M,res,info)
- character UPLO
- integer N,LDA,LDB,kla,klb
- complex A(LDA,*)
- complex B(LDB,*)
- integer fpm(*)
- real epsout
- integer loop
- real Emin,Emax
- integer M0
- real E(*)
- complex X(N,*)
- integer M
- real res(*)
- integer info
- end
- end interface
- interface
- subroutine cfeast_hbev(UPLO,N,kla,A,LDA,fpm,epsout,loop, &
- & Emin,Emax,M0,E,X,M,res,info)
- character UPLO
- integer N,LDA,kla
- complex A(LDA,*)
- integer fpm(*)
- real epsout
- integer loop
- real Emin,Emax
- integer M0
- real E(*)
- complex X(N,*)
- integer M
- real res(*)
- integer info
- end
- end interface
- interface
- subroutine zfeast_hbgv(UPLO,N,kla,A,LDA,klb,B,LDB,fpm,epsout, &
- & loop,Emin,Emax,M0,E,X,M,res,info)
- character UPLO
- integer N,LDA,LDB,kla,klb
- complex*16 A(LDA,*)
- complex*16 B(LDB,*)
- integer fpm(*)
- double precision epsout
- integer loop
- double precision Emin,Emax
- integer M0
- double precision E(*)
- complex X(N,*)
- integer M
- double precision res(*)
- integer info
- end
- end interface
- interface
- subroutine zfeast_hbev(UPLO,N,kla,A,LDA,fpm,epsout,loop, &
- & Emin,Emax,M0,E,X,M,res,info)
- character UPLO
- integer N,LDA,kla
- complex*16 A(LDA,*)
- integer fpm(*)
- double precision epsout
- integer loop
- double precision Emin,Emax
- integer M0
- double precision E(*)
- complex*16 X(N,*)
- integer M
- double precision res(*)
- integer info
- end
- end interface
- !!!!!!!!!! SPARSE interfaces
- interface
- subroutine dfeast_scsrgv(UPLO,N,sa,isa,jsa,sb,isb,jsb,fpm, &
- & epsout,loop,Emin,Emax,M0,E,X,M,res,info)
- character UPLO
- integer N
- double precision sa(*),sb(*)
- integer isa(*),jsa(*),isb(*),jsb(*)
- integer fpm(*)
- double precision epsout
- integer loop
- double precision Emin,Emax
- integer M0
- double precision E(*)
- double precision X(N,*)
- integer M
- double precision res(*)
- integer info
- end
- end interface
- interface
- subroutine dfeast_scsrev(UPLO,N,sa,isa,jsa,fpm,epsout,loop, &
- & Emin,Emax,M0,E,X,M,res,info)
- character UPLO
- integer N
- double precision sa(*)
- integer isa(*),jsa(*)
- integer fpm(*)
- double precision epsout
- integer loop
- double precision Emin,Emax
- integer M0
- double precision E(*)
- double precision X(N,*)
- integer M
- double precision res(*)
- integer info
- end
- end interface
- interface
- subroutine sfeast_scsrgv(UPLO,N,sa,isa,jsa,sb,isb,jsb,fpm, &
- & epsout,loop,Emin,Emax,M0,E,X,M,res,info)
- character UPLO
- integer N
- real sa(*),sb(*)
- integer isa(*),jsa(*),isb(*),jsb(*)
- integer fpm(*)
- real epsout
- integer loop
- real Emin,Emax
- integer M0
- real E(*)
- real X(N,*)
- integer M
- real res(*)
- integer info
- end
- end interface
- interface
- subroutine sfeast_scsrev(UPLO,N,sa,isa,jsa,fpm,epsout,loop, &
- & Emin,Emax,M0,E,X,M,res,info)
- character UPLO
- integer N
- real sa(*)
- integer isa(*),jsa(*)
- integer fpm(*)
- real epsout
- integer loop
- real Emin,Emax
- integer M0
- real E(*)
- real X(N,*)
- integer M
- real res(*)
- integer info
- end
- end interface
- interface
- subroutine zfeast_hcsrgv(UPLO,N,sa,isa,jsa,sb,isb,jsb,fpm, &
- & epsout,loop,Emin,Emax,M0,E,X,M,res,info)
- character UPLO
- integer N
- complex*16 sa(*),sb(*)
- integer isa(*),jsa(*),isb(*),jsb(*)
- integer fpm(*)
- double precision epsout
- integer loop
- double precision Emin,Emax
- integer M0
- double precision E(*)
- complex*16 X(N,*)
- integer M
- double precision res(*)
- integer info
- end
- end interface
- interface
- subroutine zfeast_hcsrev(UPLO,N,sa,isa,jsa,fpm,epsout,loop, &
- & Emin,Emax,M0,E,X,M,res,info)
- character UPLO
- integer N
- complex*16 sa(*)
- integer isa(*),jsa(*)
- integer fpm(*)
- double precision epsout
- integer loop
- double precision Emin,Emax
- integer M0
- double precision E(*)
- complex*16 X(N,*)
- integer M
- double precision res(*)
- integer info
- end
- end interface
- interface
- subroutine cfeast_hcsrgv(UPLO,N,sa,isa,jsa,sb,isb,jsb,fpm, &
- & epsout,loop,Emin,Emax,M0,E,X,M,res,info)
- character UPLO
- integer N
- complex sa(*),sb(*)
- integer isa(*),jsa(*),isb(*),jsb(*)
- integer fpm(*)
- real epsout
- integer loop
- real Emin,Emax
- integer M0
- real E(*)
- complex X(N,*)
- integer M
- real res(*)
- integer info
- end
- end interface
- interface
- subroutine cfeast_hcsrev(UPLO,N,sa,isa,jsa,fpm,epsout,loop, &
- & Emin,Emax,M0,E,X,M,res,info)
- character UPLO
- integer N
- complex sa(*)
- integer isa(*),jsa(*)
- integer fpm(*)
- real epsout
- integer loop
- real Emin,Emax
- integer M0
- real E(*)
- complex X(N,*)
- integer M
- real res(*)
- integer info
- end
- end interface
|