diff options
author | maho <maho@FreeBSD.org> | 2007-12-20 06:47:57 +0800 |
---|---|---|
committer | maho <maho@FreeBSD.org> | 2007-12-20 06:47:57 +0800 |
commit | 63bfa997cc973d6569c171a5d63676bea8074fd2 (patch) | |
tree | 8fa69e558b4f5525859c6533e0fc0fc386a6cf94 | |
parent | 3cd9c1ce0097b19c9d621511637ef7613e201d00 (diff) | |
download | freebsd-ports-gnome-63bfa997cc973d6569c171a5d63676bea8074fd2.tar.gz freebsd-ports-gnome-63bfa997cc973d6569c171a5d63676bea8074fd2.tar.zst freebsd-ports-gnome-63bfa997cc973d6569c171a5d63676bea8074fd2.zip |
Update to 3.8.0.
Only verified on i386 and amd64 FreeBSD 7BETA.
Discussions with: bf <bf2006a@yahoo.com>, truckman
and Tijl Coosemans <tijl@ulyssis.org>.
PR: 118270 and 118271
22 files changed, 416 insertions, 6689 deletions
diff --git a/math/atlas/Makefile b/math/atlas/Makefile index e8d487c94226..1979b5c394d2 100644 --- a/math/atlas/Makefile +++ b/math/atlas/Makefile @@ -5,12 +5,8 @@ # $FreeBSD$ # -# NOTE: This port purposely ignores the CC and CFLAGS settings. -# Program and compiler flags are finetuned to gcc. - PORTNAME= atlas -PORTVERSION= 3.6.0 -PORTREVISION= 4 +PORTVERSION= 3.8.0 PORTEPOCH= 1 CATEGORIES= math MASTER_SITES= ${MASTER_SITE_SOURCEFORGE} @@ -29,112 +25,137 @@ USE_LDCONFIG= yes .include <bsd.port.pre.mk> +NOT_FOR_ARCHS= alpha + USE_FORTRAN= yes CCOMPILER= ${CC} LIB_DEPENDS+= blas.2:${PORTSDIR}/math/blas LIB_DEPENDS+= lapack.4:${PORTSDIR}/math/lapack -LIB_DEPENDS+= f2c:${PORTSDIR}/lang/f2c -# only affects for lapack sub project -.if defined(WITH_OPTIMIZED_FLAGS) -.if defined(CPUTYPE) -FFLAGS+= -mtune=${CPUTYPE} -pipe -O2 -ffast-math +.if ${ARCH} == "sparc64" +PICFLAG?= -fPIC .else -FFLAGS+= -pipe -O2 -ffast-math -.endif +PICFLAG?= -fpic .endif -post-patch: -.if !defined(WITH_OPTIMIZED_FLAGS) - @${ECHO_CMD} "You can optimize lapack sub project by setting WITH_OPTIMIZED_FLAGS=yes." +.if ${ARCH} == "i386" +POINTER= 32 .endif - @${REINPLACE_CMD} -e 's+%%PTHREAD_CFLAGS%%+${PTHREAD_CFLAGS}+g' \ - -e 's+%%PTHREAD_LIBS%%+${PTHREAD_LIBS}+g' \ - -e 's+%%LOCALBASE%%+${LOCALBASE}+g' \ - ${WRKSRC}/config.c -.if defined(PORTS_ARCH) - @${REINPLACE_CMD} -e 's+%%PORTS_ARCH%%+${PORTS_ARCH}+g' \ - -e 's+%%HAVE_ARCH%%+1+g' ${WRKSRC}/config.c -.else - @${REINPLACE_CMD} -e 's+%%PORTS_ARCH%%+0+g' \ - -e 's+%%HAVE_ARCH%%+0+g' ${WRKSRC}/config.c +.if ${ARCH} == "amd64" +POINTER= 64 .endif -.if (${ARCH} == "alpha") -EXTRA_PATCHES+= ${FILESDIR}/alpha-patch +.if ${ARCH} == "sparc64" +POINTER= 64 .endif -.if ${ARCH} == "sparc64" -PICFLAG?= -fPIC +.if (${OSVERSION} < 700000) && defined(WITH_GCC42KERNEL) +BUILD_DEPENDS+= gcc42:${PORTSDIR}/lang/gcc42 +KERNELFLAG= -Ss kern gcc42 .else -PICFLAG?= -fpic +KERNELFLAG= "" .endif -ANSWER_i386?= ${PRINTF} "\n\n\n\n\n\n\n\n\n\n" -ANSWER_ia64?= ${PRINTF} "\n\n\n2\n\n\n\n\nf77\n-O2 -static\n\n" - -.if defined(PACKAGE_BUILDING) && (${ARCH} == "i386") -PORTS_ARCH=IntP5 +.if defined(WITH_WALL_TIMER) +. if defined(MHZ) && ( ${ARCH} == "i386" || ${ARCH} == "amd64" ) +TIMEFLAG= -D c -DPentiumCPS=${MHZ} +. else +TIMEFLAG= -D c -DWALL +. endif +.else +TIMEFLAG= "" .endif -.if !defined(ANSWER_${ARCH}) -ANSWER= ${ANSWER_i386} +# only used for lapack sub-project +.if defined(WITH_OPTIMIZED_FLAGS) +.if defined(CPUTYPE) +FFLAGS+= -march=${CPUTYPE} -pipe -O2 -ffast-math .else -ANSWER= ${ANSWER_${ARCH}} +FFLAGS+= -pipe -O2 -ffast-math .endif - -.if defined(TIMING_TOLERANCE) -EXTRA_PATCHES+= ${FILESDIR}/timing_tolerance-patch .endif - .if defined(WITH_STATICLIB) PLIST_SUB+= WITH_STATICLIB="" .else PLIST_SUB+= WITH_STATICLIB="@comment " .endif -pre-configure: - @${ECHO_MSG} "Warning:" - @${ECHO_MSG} "Building this port can take long time" - @${ECHO_MSG} "for slow computers (over 1 day)." - @${ECHO_MSG} "And sometimes stop building for Athlon." - @${ECHO_MSG} "In this case please retype make or rebuild whole atlas." +post-extract: + @${ECHO_MSG} 'This port engages in a long, computationally-demanding tuning process.' + @${ECHO_MSG} 'Builds can take a day or more on older hardware, and temporarily occupy' + @${ECHO_MSG} 'several hundred megabytes of disk space. You are advised to disable' + @${ECHO_MSG} 'all forms of power management or CPU throttling (APM, ACPI, Intel' + @${ECHO_MSG} 'SpeedStep, AMD PowerNow, AMD Cool and Quiet, p4tcc, powerd, etc.)' + @${ECHO_MSG} 'that may change the disk I/O or CPU behavior during the build, and' + @${ECHO_MSG} 'to set operating parameters to static values at which you ultimately' + @${ECHO_MSG} 'intend to use the software. You should also avoid placing heavy loads' + @${ECHO_MSG} 'on the system during the build, and temporarily disable any automatons' + @${ECHO_MSG} 'that may do so. If you fail to follow these guidelines, you may prolong' + @${ECHO_MSG} 'the build, perhaps indefinitely, and you may obtain libraries with' + @${ECHO_MSG} 'sub-optimal performance.' @${ECHO_MSG} -.if !defined(PORTS_ARCH) - @${ECHO_MSG} "Warning:" - @${ECHO_MSG} "If your arch is not correctly detected, you can specify" - @${ECHO_MSG} "by yourself." - @${ECHO_MSG} "for example : make PORTS_ARCH=P5Int" - @${ECHO_MSG} "Available architectures for x86 are:" - @${ECHO_MSG} "IntP5, IntP5MMX, IntPPRO, IntPII, IntPIII, IntP4, IntP4E" - @${ECHO_MSG} "IntP4E64, TMEff, AmdAthlon,AmdHammer32, AmdHammer64" + @${ECHO_MSG} 'Occasionally the autoconfiguration may fail for certain platforms, and' + @${ECHO_MSG} 'you may have to override the architecture, compiler flags, assembly' + @${ECHO_MSG} 'language dialect, or pointer bit-width by issuing additional configure' + @${ECHO_MSG} 'arguments. Consult the FAQ, installation guide, and errata page at' + @${ECHO_MSG} 'the project website for help if this is necessary, and notify the' + @${ECHO_MSG} 'port maintainer.' @${ECHO_MSG} -.endif -.if !defined(TIMING_TOLERANCE) - @${ECHO_MSG} "If your install dies with unable to get timings in tolerance" - @${ECHO_MSG} "First please refer http://math-atlas.sourceforge.net/errata.html#tol" - @${ECHO_MSG} "and you can build with" - @${ECHO_MSG} "make clean; make -DTIMING_TOLERANCE" - @${ECHO_MSG} "if your build still dies, you can type make again, (and again...)" + @${ECHO_MSG} "This port purposely ignores the CC and CFLAGS settings" + @${ECHO_MSG} "Program and compiler flags are fine-tuned to the gcc 4.2.x" + @${ECHO_MSG} "compiler, although other gcc versions may be used; gcc 4.1.x" + @${ECHO_MSG} "is NOT recommended" @${ECHO_MSG} -.endif .if !defined(WITH_STATICLIB) @${ECHO_MSG} "You can build static libraries with" @${ECHO_MSG} "make -DWITH_STATICLIB" @${ECHO_MSG} .endif +.if !defined(WITH_WALL_TIMER) + @${ECHO_MSG} "If your machine will be solely dedicated to" + @${ECHO_MSG} "building atlas with gcc during the lengthy optimization" + @${ECHO_MSG} "process, and not subjected to other loads, you" + @${ECHO_MSG} "may enable the more accurate wall timer (instead of" + @${ECHO_MSG} "the default CPU-time timer) with make -DWITH_WALL_TIMER" + @${ECHO_MSG} "If, in addition, you are on i386 or amd64, you may set MHZ" + @${ECHO_MSG} "to your CPU clock frequency in MHz (rounded to the nearest" + @${ECHO_MSG} "integer value) in the build environment for cycle-to-time" + @${ECHO_MSG} "conversion" + @${ECHO_MSG} +.endif +.if (${OSVERSION} < 700000) +.if !defined(WITH_GCC42KERNEL) + @${ECHO_MSG} "If you don't want to make gcc 4.2.x your default compiler (CC)," + @${ECHO_MSG} "but you want to have ATLAS use it to compile all the kernel" + @${ECHO_MSG} "routines (this usually results in superior performance, and a" + @${ECHO_MSG} "slightly faster build), while compiling interface routines and" + @${ECHO_MSG} "doing any linking with gcc 3.x, make a hybrid build with" + @${ECHO_MSG} "make -DWITH_GCC42KERNEL" + @${ECHO_MSG} +.endif +.endif + +pre-configure: + @${REINPLACE_CMD} -e "s|%%CC%%|${CCOMPILER}|g" \ + -e "s|%%FC%%|${FC}|g" ${WRKSRC}/CONFIG/src/atlcomp.txt + @${REINPLACE_CMD} -e "s|%%PTHREAD_LIBS%%|${PTHREAD_LIBS}|g" \ + -e "s|%%PTHREAD_CFLAGS%%|${PTHREAD_CFLAGS}|g" \ + -e "s|%%LOCALBASE%%|${LOCALBASE}|g" \ + ${WRKSRC}/CONFIG/src/SpewMakeInc.c do-configure: - @(cd ${WRKSRC}; ${MAKE_ENV} ${MAKE} xconfig && \ - ${ANSWER} | ./xconfig -N 1 -c ${CCOMPILER} -f ${FC} -m ${CCOMPILER} -g ${CCOMPILER} -x ${CCOMPILER} -a NON_THREADED && \ - ${ANSWER} | ./xconfig -N 1 -c ${CCOMPILER} -f ${FC} -m ${CCOMPILER} -g ${CCOMPILER} -x ${CCOMPILER} -a NON_THREADED_PIC -C '${PICFLAG} -DPIC' -F f '${PICFLAG} -DPIC -O' ) - @(cd ${WRKSRC}; ${PATCH} < ${FILESDIR}/thread-patch && \ - ${MAKE_ENV} ${MAKE} xconfig && \ - ${ANSWER} | ./xconfig -c ${CCOMPILER} -f ${FC} -m ${CCOMPILER} -g ${CCOMPILER} -x ${CCOMPILER} -a THREADED && \ - ${ANSWER} | ./xconfig -c ${CCOMPILER} -f ${FC} -m ${CCOMPILER} -g ${CCOMPILER} -x ${CCOMPILER} -a THREADED_PIC -C '${PICFLAG} -DPIC' -F f '${PICFLAG} -DPIC -O' ) - -ATLAS_LIBS1=libalapack libatlas libcblas libf77blas libtstatlas -ATLAS_LIBS2=libptcblas libptf77blas -LAPACKWRKSRC=`cd ${WRKDIR}/lapack; ${MAKE} -V WRKSRC` +#non-threaded +#dummy f77lib, it is not used. + ${MKDIR} ${WRKSRC}/NON_THREADED ; cd ${WRKSRC}/NON_THREADED ; \ + ../configure -v 2 -t 0 ${TIMEFLAG} -b ${POINTER} -Si cputhrchk 0 ${KERNELFLAG} -Ss f77lib " " + ${MKDIR} ${WRKSRC}/NON_THREADED_PIC ; cd ${WRKSRC}/NON_THREADED_PIC ; \ + ../configure -v 2 -t 0 -b ${POINTER} -Fa alg '${PICFLAG} -DPIC' ${TIMEFLAG} -Si cputhrchk 0 ${KERNELFLAG} -Ss f77lib " " +#threaded +#dummy f77lib, it is not used. + cd ${WRKSRC}; ${PATCH} < ${FILESDIR}/thread-patch + ${MKDIR} ${WRKSRC}/THREADED ; cd ${WRKSRC}/THREADED ; \ + ../configure -v 2 -b ${POINTER} -Fa alg '${PTHREAD_CFLAGS} ' ${TIMEFLAG} -Si cputhrchk 0 ${KERNELFLAG} -Ss f77lib " " + ${MKDIR} ${WRKSRC}/THREADED_PIC ; cd ${WRKSRC}/THREADED_PIC ; \ + ../configure -v 2 -b ${POINTER} -Fa alg '${PTHREAD_CFLAGS} ${PICFLAG} -DPIC' ${TIMEFLAG} -Si cputhrchk 0 ${KERNELFLAG} -Ss f77lib " " do-build: # make lapack @@ -147,102 +168,99 @@ do-build: @${CP} ${PORTSDIR}/math/lapack/pkg-descr ${WRKDIR}/lapack @cd ${WRKDIR}/lapack ; ${MAKE} "FFLAGS=${FFLAGS}" FC="${FC}" build WRKDIRPREFIX="" .endif - @(cd ${WRKSRC}; ${MAKE} ${.MAKEFLAGS} "ARCH=NON_THREADED_PIC" install arch=NON_THREADED_PIC) - @(cd ${WRKSRC}; ${MAKE} ${.MAKEFLAGS} "ARCH=THREADED_PIC" install arch=THREADED_PIC) .if defined(WITH_STATICLIB) - @(cd ${WRKSRC}; ${MAKE} ${.MAKEFLAGS} "ARCH=NON_THREADED" install arch=NON_THREADED) - @(cd ${WRKSRC}; ${MAKE} ${.MAKEFLAGS} "ARCH=THREADED" install arch=THREADED) + (cd ${WRKSRC}/NON_THREADED ; ${MAKE}) + (cd ${WRKSRC}/THREADED ; ${MAKE}) .endif - @${MAKE} test + (cd ${WRKSRC}/NON_THREADED_PIC ; ${MAKE}) + (cd ${WRKSRC}/THREADED_PIC ; ${MAKE}) +test: + @${MAKE} do-test + +ATLAS_LIBS1=libalapack libatlas libcblas libf77blas #libtstatlas +ATLAS_LIBS2=libptcblas libptf77blas +LAPACKWRKSRC=`cd ${WRKDIR}/lapack; ${MAKE} -V WRKSRC WRKDIRPREFIX=""` post-build: .if defined(WITH_STATICLIB) -# make atlas enhanced lapack (static ver) +# make atlas-enhanced lapack (static ver) (cd ${WRKSRC}; ${MKDIR} tmp1 ; \ ${CP} ${LAPACKWRKSRC}/liblapack.a tmp1 ;\ cd tmp1 ;\ ar x liblapack.a ;\ - ar x ../lib/NON_THREADED/liblapack.a ;\ - ar r ../lib/NON_THREADED/libalapack.a *.o ;\ - ranlib ../lib/NON_THREADED/libalapack.a ) -# make atlas enhanced lapack (static and thread safe ver) + ar x ../NON_THREADED/lib/liblapack.a ;\ + ar r ../NON_THREADED/lib/libalapack.a *.o ;\ + ranlib ../NON_THREADED/lib/libalapack.a ) +# make atlas-enhanced lapack (static and thread-safe ver) (cd ${WRKSRC}; ${MKDIR} tmp2 ; \ ${CP} ${LAPACKWRKSRC}/liblapack.a tmp2 ;\ cd tmp2 ;\ ar x liblapack.a ;\ - ar x ../lib/THREADED/liblapack.a ;\ - ar r ../lib/THREADED/libalapack.a *.o ;\ - ranlib ../lib/THREADED/libalapack.a ) + ar x ../THREADED/lib/liblapack.a ;\ + ar r ../THREADED/lib/libalapack.a *.o ;\ + ranlib ../THREADED/lib/libalapack.a ) .endif -# make atlas enhanced lapack (shared ver) +# make atlas-enhanced lapack (shared ver) ( cd ${WRKSRC}; ${MKDIR} tmp3 ;\ ${CP} ${LAPACKWRKSRC}_shared/liblapack.a tmp3 ;\ cd tmp3 ;\ ar x liblapack.a ;\ - ar x ../lib/NON_THREADED_PIC/liblapack.a ;\ - ar r ../lib/NON_THREADED_PIC/libalapack.a *.o ;\ - ranlib ../lib/NON_THREADED_PIC/libalapack.a ) -# make atlas enhanced lapack (shared and thread safe ver) + ar x ../NON_THREADED_PIC/lib/liblapack.a ;\ + ar r ../NON_THREADED_PIC/lib/libalapack.a *.o ;\ + ranlib ../NON_THREADED_PIC/lib/libalapack.a ) +# make atlas-enhanced lapack (shared and thread-safe ver) ( cd ${WRKSRC}; ${MKDIR} tmp4 ;\ ${CP} ${LAPACKWRKSRC}_shared/liblapack.a tmp4 ;\ cd tmp4 ;\ ar x liblapack.a ;\ - ar x ../lib/THREADED_PIC/liblapack.a ;\ - ar r ../lib/THREADED_PIC/libalapack.a *.o ;\ - ranlib ../lib/THREADED_PIC/libalapack.a ) + ar x ../THREADED_PIC/lib/liblapack.a ;\ + ar r ../THREADED_PIC/lib/libalapack.a *.o ;\ + ranlib ../THREADED_PIC/lib/libalapack.a ) # make atlas shared library .for i in ${ATLAS_LIBS1} - ( cd ${WRKSRC}/lib/NON_THREADED_PIC/ ; \ + ( cd ${WRKSRC}/NON_THREADED_PIC/lib ; \ ld -Bshareable -o ${i}.so.2 -x -soname ${i}.so.2 --whole-archive ${i}.a ) .endfor -# make atlas shared (thread safe) library +# make atlas shared (thread-safe) library .for i in ${ATLAS_LIBS1} - ( cd ${WRKSRC}/lib/THREADED_PIC/ ; \ + ( cd ${WRKSRC}/THREADED_PIC/lib ; \ ld -Bshareable -o ${i}_r.so.2 -x -soname ${i}_r.so.2 --whole-archive ${i}.a ) .endfor .for i in ${ATLAS_LIBS2} - ( cd ${WRKSRC}/lib/THREADED_PIC/ ; \ + ( cd ${WRKSRC}/THREADED_PIC/lib ; \ ld -Bshareable -o ${i}.so.2 -x -soname ${i}.so.2 --whole-archive ${i}.a ) .endfor - do-install: .for i in ${ATLAS_LIBS1} .if defined(WITH_STATICLIB) - @${INSTALL_DATA} ${WRKSRC}/lib/NON_THREADED/${i}.a ${PREFIX}/lib + @${INSTALL_DATA} ${WRKSRC}/NON_THREADED/lib/${i}.a ${PREFIX}/lib .endif - @${INSTALL_DATA} ${WRKSRC}/lib/NON_THREADED_PIC/${i}.so.2 ${PREFIX}/lib + @${INSTALL_DATA} ${WRKSRC}/NON_THREADED_PIC/lib/${i}.so.2 ${PREFIX}/lib @${LN} -sf ${i}.so.2 ${PREFIX}/lib/${i}.so .endfor .for i in ${ATLAS_LIBS1} .if defined(WITH_STATICLIB) - @${INSTALL_DATA} ${WRKSRC}/lib/THREADED/${i}.a ${PREFIX}/lib/${i}_r.a + @${INSTALL_DATA} ${WRKSRC}/THREADED/lib/${i}.a ${PREFIX}/lib/${i}_r.a .endif - @${INSTALL_DATA} ${WRKSRC}/lib/THREADED_PIC/${i}_r.so.2 ${PREFIX}/lib/${i}_r.so.2 + @${INSTALL_DATA} ${WRKSRC}/THREADED_PIC/lib/${i}_r.so.2 ${PREFIX}/lib/${i}_r.so.2 @${LN} -sf ${i}_r.so.2 ${PREFIX}/lib/${i}_r.so .endfor .for i in ${ATLAS_LIBS2} .if defined(WITH_STATICLIB) - @${INSTALL_DATA} ${WRKSRC}/lib/THREADED/${i}.a ${PREFIX}/lib + @${INSTALL_DATA} ${WRKSRC}/THREADED/lib/${i}.a ${PREFIX}/lib .endif - @${INSTALL_DATA} ${WRKSRC}/lib/THREADED_PIC/${i}.so.2 ${PREFIX}/lib + @${INSTALL_DATA} ${WRKSRC}/THREADED_PIC/lib/${i}.so.2 ${PREFIX}/lib @${LN} -sf ${i}.so.2 ${PREFIX}/lib/${i}.so .endfor + @${INSTALL_DATA} ${WRKSRC}/include/cblas.h ${PREFIX}/include @${INSTALL_DATA} ${WRKSRC}/include/clapack.h ${PREFIX}/include - @${INSTALL_DATA} ${FILESDIR}/blas.h ${PREFIX}/include - @${INSTALL_DATA} ${FILESDIR}/lapack.h ${PREFIX}/include .if !defined(NOPORTDOCS) @${MKDIR} ${DOCSDIR} ${INSTALL_DATA} ${WRKSRC}/doc/* ${DOCSDIR} .endif - ${MKDIR} ${EXAMPLESDIR} - @for i in ${ALLTESTS} ; do \ - cd ${WRKDIR}/ATLAS/bin/NON_THREADED_PIC ; ${INSTALL_PROGRAM} $${i} ${EXAMPLESDIR} ; \ - done - @for i in ${ALLTESTS_PT} ; do \ - cd ${WRKDIR}/ATLAS/bin/THREADED_PIC ; ${INSTALL_PROGRAM} $${i} ${EXAMPLESDIR} ; \ - done + .include <${FILESDIR}/Makefile.test> .include <bsd.port.post.mk> diff --git a/math/atlas/distinfo b/math/atlas/distinfo index 3d269b2db6b9..3d44c165dd5b 100644 --- a/math/atlas/distinfo +++ b/math/atlas/distinfo @@ -1,3 +1,3 @@ -MD5 (atlas3.6.0.tar.bz2) = df2ee2eb65d1c08ee93d04370172c262 -SHA256 (atlas3.6.0.tar.bz2) = 1c2ad68fe3c66e261c012788fc1b6f74eada791f713848a3a6420c50fa35c8e8 -SIZE (atlas3.6.0.tar.bz2) = 1687723 +MD5 (atlas3.8.0.tar.bz2) = fd42a00f36243bf4815d035b226ec305 +SHA256 (atlas3.8.0.tar.bz2) = e9131d8ffd2dfdd12312676e38183ca45a52547fad5498e46f90c95954bf121c +SIZE (atlas3.8.0.tar.bz2) = 2463051 diff --git a/math/atlas/files/Makefile.test b/math/atlas/files/Makefile.test index 590300e4277d..1eaae571f323 100644 --- a/math/atlas/files/Makefile.test +++ b/math/atlas/files/Makefile.test @@ -9,26 +9,26 @@ ALLTESTS_PT = xsl3blastst_pt xdl3blastst_pt xcl3blastst_pt xzl3blastst_pt \ xslutst_pt xslutstF_pt xdlutst_pt xdlutstF_pt xclutst_pt xclutstF_pt \ xzlutst_pt xzlutstF_pt xsllttst_pt xsllttstF_pt xdllttst_pt \ xdllttstF_pt xcllttst_pt xcllttstF_pt xzllttst_pt xzllttstF_pt -#builderrors? -# xsl1blastst_pt xdl1blastst_pt xcl1blastst_pt xzl1blastst_pt \ +#build errors? # xsl2blastst_pt xdl2blastst_pt xcl2blastst_pt xzl2blastst_pt \ - -test: - for i in ${ALLTESTS} ; do \ +# xsl1blastst_pt xdl1blastst_pt xcl1blastst_pt xzl1blastst_pt \ +#Failed tests +do-test: + @for i in ${ALLTESTS} ; do \ ${ECHO_CMD} "Making $${i}" ; \ - cd ${WRKDIR}/ATLAS/bin/NON_THREADED_PIC/ ; ${MAKE} ${.MAKEFLAGS} "ARCH=NON_THREADED_PIC" $${i} ; \ + cd ${WRKDIR}/ATLAS/NON_THREADED_PIC/bin ; ${MAKE} $${i} ; \ done - for i in ${ALLTESTS_PT} ; do \ + @for i in ${ALLTESTS_PT} ; do \ ${ECHO_CMD} "Making $${i}" ; \ - cd ${WRKDIR}/ATLAS/bin/THREADED_PIC ; ${MAKE} ${.MAKEFLAGS} "ARCH=THREADED_PIC" $${i} ; \ + cd ${WRKDIR}/ATLAS/THREADED_PIC/bin ; ${MAKE} $${i} ; \ done - for i in ${ALLTESTS} ; do \ + @for i in ${ALLTESTS} ; do \ ${ECHO_CMD} "Benchmarking $${i}" ; \ - cd ${WRKDIR}/ATLAS/bin/NON_THREADED_PIC ; ./$${i} ; \ + cd ${WRKDIR}/ATLAS/NON_THREADED_PIC/bin ; ./$${i} ; \ done - for i in ${ALLTESTS_PT} ; do \ + @for i in ${ALLTESTS_PT} ; do \ ${ECHO_CMD} "Benchmarking $${i}" ; \ - cd ${WRKDIR}/ATLAS/bin/THREADED_PIC ; ./$${i} ; \ + cd ${WRKDIR}/ATLAS/THREADED_PIC/bin ; ./$${i} ; \ done diff --git a/math/atlas/files/blas.h b/math/atlas/files/blas.h deleted file mode 100644 index 774fbaefd0d1..000000000000 --- a/math/atlas/files/blas.h +++ /dev/null @@ -1,857 +0,0 @@ -// blas prototypes file for C++ -// based on BLAS/WRAP/fblaswr.h -// in clapack.tgz, version 3.0(September 20, 2000) -// available at http://www.netlib.org/clapack/ -// and modified by Nakata Maho <maho@FreeBSD.org> -// for C++, which requires proper prototype definitions. - -extern "C" -{ -#include <f2c.h> - -real -sdot_(integer* N, - real* X, integer* incX, - real* Y, integer* incY); - -doublereal -ddot_(integer* N, - doublereal* X, integer* incX, - doublereal* Y, integer* incY); - -void -cdotu_(complex* retval, - integer* N, - complex* X, integer* incX, - complex* Y, integer* incY); - -void -cdotc_(complex* retval, - integer* N, - complex* X, integer* incX, - complex* Y, integer* incY); - -void -zdotu_(doublecomplex* retval, - integer* N, - doublecomplex* X, integer* incX, - doublecomplex* Y, integer* incY); - -void -zdotc_(doublecomplex* retval, - integer* N, - doublecomplex* X, integer* incX, - doublecomplex* Y, integer* incY); - -real -snrm2_(integer* N, - real* X, integer* incX); - -real -sasum_(integer* N, - real* X, integer* incX); - -doublereal -dnrm2_(integer* N, - doublereal* X, integer* incX); - -doublereal -dasum_(integer* N, - doublereal* X, integer* incX); - -real -scnrm2_(integer* N, - complex* X, integer* incX); - -real -scasum_(integer* N, - complex* X, integer* incX); - -doublereal -dznrm2_(integer* N, - doublecomplex* X, integer* incX); - -doublereal -dzasum_(integer* N, - doublecomplex* X, integer* incX); - -integer -isamax_(integer* N, - real* X, integer* incX); - -integer -idamax_(integer* N, - doublereal* X, integer* incX); - -integer -icamax_(integer* N, - complex* X, integer* incX); - -integer -izamax_(integer* N, - doublecomplex* X, integer* incX); - -int -sswap_(integer* N, - real* X, integer* incX, - real* Y, integer* incY); - -int -scopy_(integer* N, - real* X, integer* incX, - real* Y, integer* incY); - -int -saxpy_(integer* N, - real* alpha, - real* X, integer* incX, - real* Y, integer* incY); - -int -dswap_(integer* N, - doublereal* X, integer* incX, - doublereal* Y, integer* incY); - -int -dcopy_(integer* N, - doublereal* X, integer* incX, - doublereal* Y, integer* incY); - -int -daxpy_(integer* N, - doublereal* alpha, - doublereal* X, integer* incX, - doublereal* Y, integer* incY); - -int -cswap_(integer* N, - complex* X, integer* incX, - complex* Y, integer* incY); - -int -ccopy_(integer* N, - complex* X, integer* incX, - complex* Y, integer* incY); - -int -caxpy_(integer* N, - complex* alpha, - complex* X, integer* incX, - complex* Y, integer* incY); - -int -zswap_(integer* N, - doublecomplex* X, integer* incX, - doublecomplex* Y, integer* incY); - -int -zcopy_(integer* N, - doublecomplex* X, integer* incX, - doublecomplex* Y, integer* incY); - -int -zaxpy_(integer* N, - doublecomplex* alpha, - doublecomplex* X, integer* incX, - doublecomplex* Y, integer* incY); - -int -srotg_(real* a, real* b, real* c, real* s); - -int -srot_(integer* N, - real* X, integer* incX, - real* Y, integer* incY, - real* c, real* s); - -int -drotg_(doublereal* a, doublereal* b, doublereal* c, doublereal* s); - -int -drot_(integer* N, - doublereal* X, integer* incX, - doublereal* Y, integer* incY, - doublereal* c, doublereal* s); - -int -sscal_(integer* N, - real* alpha, - real* X, integer* incX); - -int -dscal_(integer* N, - doublereal* alpha, - doublereal* X, integer* incX); - -int -cscal_(integer* N, - complex* alpha, - complex* X, integer* incX); - -int -zscal_(integer* N, - doublecomplex* alpha, - doublecomplex* X, integer* incX); - -int -csscal_(integer* N, - real* alpha, - complex* X, integer* incX); - -int -zdscal_(integer* N, - doublereal* alpha, - doublecomplex* X, integer* incX); - -int -sgemv_(char* trans, integer* M, integer* N, - real* alpha, - real* A, integer* lda, - real* X, integer* incX, - real* beta, - real* Y, integer* incY); - -int -sgbmv_(char *trans, integer *M, integer *N, integer *KL, integer *KU, - real *alpha, - real *A, integer *lda, - real *X, integer *incX, - real *beta, - real *Y, integer *incY); - -int -strmv_(char* uplo, char *trans, char* diag, integer *N, - real *A, integer *lda, - real *X, integer *incX); - -int -stbmv_(char* uplo, char* trans, char* diag, integer* N, integer* K, - real* A, integer* lda, - real* X, integer* incX); - -int -stpmv_(char* uplo, char* trans, char* diag, integer* N, - real* Ap, - real* X, integer* incX); - -int -strsv_(char* uplo, char* trans, char* diag, integer* N, - real* A, integer* lda, - real* X, integer* incX); - -int -stbsv_(char* uplo, char* trans, char* diag, integer* N, integer* K, - real* A, integer* lda, - real* X, integer* incX); - -int -stpsv_(char* uplo, char* trans, char* diag, integer* N, - real* Ap, - real* X, integer* incX); - -int -dgemv_(char* trans, integer* M, integer* N, - doublereal* alpha, - doublereal* A, integer* lda, - doublereal* X, integer* incX, - doublereal* beta, - doublereal* Y, integer* incY); - -int -dgbmv_(char *trans, integer *M, integer *N, integer *KL, integer *KU, - doublereal *alpha, - doublereal *A, integer *lda, - doublereal *X, integer *incX, - doublereal *beta, - doublereal *Y, integer *incY); - -int -dtrmv_(char* uplo, char *trans, char* diag, integer *N, - doublereal *A, integer *lda, - doublereal *X, integer *incX); - -int -dtbmv_(char* uplo, char* trans, char* diag, integer* N, integer* K, - doublereal* A, integer* lda, - doublereal* X, integer* incX); - -int -dtpmv_(char* uplo, char* trans, char* diag, integer* N, - doublereal* Ap, - doublereal* X, integer* incX); - -int -dtrsv_(char* uplo, char* trans, char* diag, integer* N, - doublereal* A, integer* lda, - doublereal* X, integer* incX); - -int -dtbsv_(char* uplo, char* trans, char* diag, integer* N, integer* K, - doublereal* A, integer* lda, - doublereal* X, integer* incX); - -int -dtpsv_(char* uplo, char* trans, char* diag, integer* N, - doublereal* Ap, - doublereal* X, integer* incX); - -int -cgemv_(char* trans, integer* M, integer* N, - complex* alpha, - complex* A, integer* lda, - complex* X, integer* incX, - complex* beta, - complex* Y, integer* incY); - -int -cgbmv_(char *trans, integer *M, integer *N, integer *KL, integer *KU, - complex *alpha, - complex *A, integer *lda, - complex *X, integer *incX, - complex *beta, - complex *Y, integer *incY); - -int -ctrmv_(char* uplo, char *trans, char* diag, integer *N, - complex *A, integer *lda, - complex *X, integer *incX); - -int -ctbmv_(char* uplo, char* trans, char* diag, integer* N, integer* K, - complex* A, integer* lda, - complex* X, integer* incX); - -int -ctpmv_(char* uplo, char* trans, char* diag, integer* N, - complex* Ap, - complex* X, integer* incX); - -int -ctrsv_(char* uplo, char* trans, char* diag, integer* N, - complex* A, integer* lda, - complex* X, integer* incX); - -int -ctbsv_(char* uplo, char* trans, char* diag, integer* N, integer* K, - complex* A, integer* lda, - complex* X, integer* incX); - -int -ctpsv_(char* uplo, char* trans, char* diag, integer* N, - complex* Ap, - complex* X, integer* incX); - -int -zgemv_(char* trans, integer* M, integer* N, - doublecomplex* alpha, - doublecomplex* A, integer* lda, - doublecomplex* X, integer* incX, - doublecomplex* beta, - doublecomplex* Y, integer* incY); - -int -zgbmv_(char *trans, integer *M, integer *N, integer *KL, integer *KU, - doublecomplex *alpha, - doublecomplex *A, integer *lda, - doublecomplex *X, integer *incX, - doublecomplex *beta, - doublecomplex *Y, integer *incY); - -int -ztrmv_(char* uplo, char *trans, char* diag, integer *N, - doublecomplex *A, integer *lda, - doublecomplex *X, integer *incX); - -int -ztbmv_(char* uplo, char* trans, char* diag, integer* N, integer* K, - doublecomplex* A, integer* lda, - doublecomplex* X, integer* incX); - - void -ztpmv_(char* uplo, char* trans, char* diag, integer* N, - doublecomplex* Ap, - doublecomplex* X, integer* incX); - -int -ztrsv_(char* uplo, char* trans, char* diag, integer* N, - doublecomplex* A, integer* lda, - doublecomplex* X, integer* incX); - -int -ztbsv_(char* uplo, char* trans, char* diag, integer* N, integer* K, - doublecomplex* A, integer* lda, - doublecomplex* X, integer* incX); - -int -ztpsv_(char* uplo, char* trans, char* diag, integer* N, - doublecomplex* Ap, - doublecomplex* X, integer* incX); - -int -ssymv_(char* uplo, integer* N, - real* alpha, - real* A, integer* lda, - real* X, integer* incX, - real* beta, - real* Y, integer* incY); - -int -ssbmv_(char* uplo, integer* N, integer* K, - real* alpha, - real* A, integer* lda, - real* X, integer* incX, - real* beta, - real* Y, integer* incY); - -int -sspmv_(char* uplo, integer* N, - real* alpha, - real* Ap, - real* X, integer* incX, - real* beta, - real* Y, integer* incY); - -int -sger_(integer* M, integer* N, - real* alpha, - real* X, integer* incX, - real* Y, integer* incY, - real* A, integer* lda); - -int -ssyr_(char* uplo, integer* N, - real* alpha, - real* X, integer* incX, - real* A, integer* lda); - -int -sspr_(char* uplo, integer* N, - real* alpha, - real* X, integer* incX, - real* Ap); - -int -ssyr2_(char* uplo, integer* N, - real* alpha, - real* X, integer* incX, - real* Y, integer* incY, - real* A, integer* lda); - -int -sspr2_(char* uplo, integer* N, - real* alpha, - real* X, integer* incX, - real* Y, integer* incY, - real* A); - -int -dsymv_(char* uplo, integer* N, - doublereal* alpha, - doublereal* A, integer* lda, - doublereal* X, integer* incX, - doublereal* beta, - doublereal* Y, integer* incY); - -int -dsbmv_(char* uplo, integer* N, integer* K, - doublereal* alpha, - doublereal* A, integer* lda, - doublereal* X, integer* incX, - doublereal* beta, - doublereal* Y, integer* incY); - -int -dspmv_(char* uplo, integer* N, - doublereal* alpha, - doublereal* Ap, - doublereal* X, integer* incX, - doublereal* beta, - doublereal* Y, integer* incY); - -int -dger_(integer* M, integer* N, - doublereal* alpha, - doublereal* X, integer* incX, - doublereal* Y, integer* incY, - doublereal* A, integer* lda); - -int -dsyr_(char* uplo, integer* N, - doublereal* alpha, - doublereal* X, integer* incX, - doublereal* A, integer* lda); - -int -dspr_(char* uplo, integer* N, - doublereal* alpha, - doublereal* X, integer* incX, - doublereal* Ap); - -int -dsyr2_(char* uplo, integer* N, - doublereal* alpha, - doublereal* X, integer* incX, - doublereal* Y, integer* incY, - doublereal* A, integer* lda); - -int -dspr2_(char* uplo, integer* N, - doublereal* alpha, - doublereal* X, integer* incX, - doublereal* Y, integer* incY, - doublereal* A); - -int -chemv_(char* uplo, integer* N, - complex* alpha, - complex* A, integer* lda, - complex* X, integer* incX, - complex* beta, - complex* Y, integer* incY); - -int -chbmv_(char* uplo, integer* N, integer* K, - complex* alpha, - complex* A, integer* lda, - complex* X, integer* incX, - complex* beta, - complex* Y, integer* incY); - -int -chpmv_(char* uplo, integer* N, - complex* alpha, - complex* Ap, - complex* X, integer* incX, - complex* beta, - complex* Y, integer* incY); - -int -cgeru_(integer* M, integer* N, - complex* alpha, - complex* X, integer* incX, - complex* Y, integer* incY, - complex* A, integer* lda); - -int -cgerc_(integer* M, integer* N, - complex* alpha, - complex* X, integer* incX, - complex* Y, integer* incY, - complex* A, integer* lda); - -int -cher_(char* uplo, integer* N, - real* alpha, - complex* X, integer* incX, - complex* A, integer* lda); - -int -chpr_(char* uplo, integer* N, - real* alpha, - complex* X, integer* incX, - complex* Ap); - -int -cher2_(char* uplo, integer* N, - complex* alpha, - complex* X, integer* incX, - complex* Y, integer* incY, - complex* A, integer* lda); - -int -chpr2_(char* uplo, integer* N, - complex* alpha, - complex* X, integer* incX, - complex* Y, integer* incY, - complex* Ap); - -int -zhemv_(char* uplo, integer* N, - doublecomplex* alpha, - doublecomplex* A, integer* lda, - doublecomplex* X, integer* incX, - doublecomplex* beta, - doublecomplex* Y, integer* incY); - -int -zhbmv_(char* uplo, integer* N, integer* K, - doublecomplex* alpha, - doublecomplex* A, integer* lda, - doublecomplex* X, integer* incX, - doublecomplex* beta, - doublecomplex* Y, integer* incY); - -int -zhpmv_(char* uplo, integer* N, - doublecomplex* alpha, - doublecomplex* Ap, - doublecomplex* X, integer* incX, - doublecomplex* beta, - doublecomplex* Y, integer* incY); - -int -zgeru_(integer* M, integer* N, - doublecomplex* alpha, - doublecomplex* X, integer* incX, - doublecomplex* Y, integer* incY, - doublecomplex* A, integer* lda); - -int -zgerc_(integer* M, integer* N, - doublecomplex* alpha, - doublecomplex* X, integer* incX, - doublecomplex* Y, integer* incY, - doublecomplex* A, integer* lda); - -int -zher_(char* uplo, integer* N, - doublereal* alpha, - doublecomplex* X, integer* incX, - doublecomplex* A, integer* lda); - -int -zhpr_(char* uplo, integer* N, - doublereal* alpha, - doublecomplex* X, integer* incX, - doublecomplex* Ap); - -int -zher2_(char* uplo, integer* N, - doublecomplex* alpha, - doublecomplex* X, integer* incX, - doublecomplex* Y, integer* incY, - doublecomplex* A, integer* lda); - -int -zhpr2_(char* uplo, integer* N, - doublecomplex* alpha, - doublecomplex* X, integer* incX, - doublecomplex* Y, integer* incY, - doublecomplex* Ap); - -int -sgemm_(char* transA, char* transB, integer* M, integer* N, integer* K, - real* alpha, - real* A, integer* lda, - real* B, integer* ldb, - real* beta, - real* C, integer* ldc); - -int -ssymm_(char* side, char* uplo, integer* M, integer* N, - real* alpha, - real* A, integer* lda, - real* B, integer* ldb, - real* beta, - real* C, integer* ldc); - -int -ssyrk_(char* uplo, char* trans, integer* N, integer* K, - real* alpha, - real* A, integer* lda, - real* beta, - real* C, integer* ldc); - -int -ssyr2k_(char* uplo, char* trans, integer* N, integer* K, - real* alpha, - real* A, integer* lda, - real* B, integer* ldb, - real* beta, - real* C, integer* ldc); - -int -strmm_(char* side, char* uplo, char* trans, char* diag, - integer* M, integer* N, - real* alpha, - real* A, integer* lda, - real* B, integer* ldb); - -int -strsm_(char* side, char* uplo, char* trans, char* diag, - integer* M, integer* N, - real* alpha, - real* A, integer* lda, - real* B, integer* ldb); - -int -dgemm_(char* transA, char* transB, integer* M, integer* N, integer* K, - doublereal* alpha, - doublereal* A, integer* lda, - doublereal* B, integer* ldb, - doublereal* beta, - doublereal* C, integer* ldc); - -int -dsymm_(char* side, char* uplo, integer* M, integer* N, - doublereal* alpha, - doublereal* A, integer* lda, - doublereal* B, integer* ldb, - doublereal* beta, - doublereal* C, integer* ldc); - -int -dsyrk_(char* uplo, char* trans, integer* N, integer* K, - doublereal* alpha, - doublereal* A, integer* lda, - doublereal* beta, - doublereal* C, integer* ldc); - -int -dsyr2k_(char* uplo, char* trans, integer* N, integer* K, - doublereal* alpha, - doublereal* A, integer* lda, - doublereal* B, integer* ldb, - doublereal* beta, - doublereal* C, integer* ldc); - -int -dtrmm_(char* side, char* uplo, char* trans, char* diag, - integer* M, integer* N, - doublereal* alpha, - doublereal* A, integer* lda, - doublereal* B, integer* ldb); - -int -dtrsm_(char* side, char* uplo, char* trans, char* diag, - integer* M, integer* N, - doublereal* alpha, - doublereal* A, integer* lda, - doublereal* B, integer* ldb); - -int -cgemm_(char* transA, char* transB, integer* M, integer* N, integer* K, - complex* alpha, - complex* A, integer* lda, - complex* B, integer* ldb, - complex* beta, - complex* C, integer* ldc); - -int -csymm_(char* side, char* uplo, integer* M, integer* N, - complex* alpha, - complex* A, integer* lda, - complex* B, integer* ldb, - complex* beta, - complex* C, integer* ldc); - -int -csyrk_(char* uplo, char* trans, integer* N, integer* K, - complex* alpha, - complex* A, integer* lda, - complex* beta, - complex* C, integer* ldc); - -int -csyr2k_(char* uplo, char* trans, integer* N, integer* K, - complex* alpha, - complex* A, integer* lda, - complex* B, integer* ldb, - complex* beta, - complex* C, integer* ldc); - -int -ctrmm_(char* side, char* uplo, char* trans, char* diag, - integer* M, integer* N, - complex* alpha, - complex* A, integer* lda, - complex* B, integer* ldb); - -int -ctrsm_(char* side, char* uplo, char* trans, char* diag, - integer* M, integer* N, - complex* alpha, - complex* A, integer* lda, - complex* B, integer* ldb); - -int -zgemm_(char* transA, char* transB, integer* M, integer* N, integer* K, - doublecomplex* alpha, - doublecomplex* A, integer* lda, - doublecomplex* B, integer* ldb, - doublecomplex* beta, - doublecomplex* C, integer* ldc); - -int -zsymm_(char* side, char* uplo, integer* M, integer* N, - doublecomplex* alpha, - doublecomplex* A, integer* lda, - doublecomplex* B, integer* ldb, - doublecomplex* beta, - doublecomplex* C, integer* ldc); - -int -zsyrk_(char* uplo, char* trans, integer* N, integer* K, - doublecomplex* alpha, - doublecomplex* A, integer* lda, - doublecomplex* beta, - doublecomplex* C, integer* ldc); - -int -zsyr2k_(char* uplo, char* trans, integer* N, integer* K, - doublecomplex* alpha, - doublecomplex* A, integer* lda, - doublecomplex* B, integer* ldb, - doublecomplex* beta, - doublecomplex* C, integer* ldc); - -int -ztrmm_(char* side, char* uplo, char* trans, char* diag, - integer* M, integer* N, - doublecomplex* alpha, - doublecomplex* A, integer* lda, - doublecomplex* B, integer* ldb); - -int -ztrsm_(char* side, char* uplo, char* trans, char* diag, - integer* M, integer* N, - doublecomplex* alpha, - doublecomplex* A, integer* lda, - doublecomplex* B, integer* ldb); - -int -chemm_(char* side, char* uplo, integer* M, integer* N, - complex* alpha, - complex* A, integer* lda, - complex* B, integer* ldb, - complex* beta, - complex* C, integer* ldc); - -int -cherk_(char* uplo, char* trans, integer* N, integer* K, - real* alpha, - complex* A, integer* lda, - real* beta, - complex* C, integer* ldc); - -int -cher2k_(char* uplo, char* trans, integer* N, integer* K, - complex* alpha, - complex* A, integer* lda, - complex* B, integer* ldb, - real* beta, - complex* C, integer* ldc); - -int -zhemm_(char* side, char* uplo, integer* M, integer* N, - doublecomplex* alpha, - doublecomplex* A, integer* lda, - doublecomplex* B, integer* ldb, - doublecomplex* beta, - doublecomplex* C, integer* ldc); - -int -zherk_(char* uplo, char* trans, integer* N, integer* K, - doublereal* alpha, - doublecomplex* A, integer* lda, - doublereal* beta, - doublecomplex* C, integer* ldc); - -int -zher2k_(char* uplo, char* trans, integer* N, integer* K, - doublecomplex* alpha, - doublecomplex* A, integer* lda, - doublecomplex* B, integer* ldb, - doublereal* beta, - doublecomplex* C, integer* ldc); -} diff --git a/math/atlas/files/lapack.h b/math/atlas/files/lapack.h deleted file mode 100644 index fd77ee5d746f..000000000000 --- a/math/atlas/files/lapack.h +++ /dev/null @@ -1,5085 +0,0 @@ -// lapack prototypes for C++ -// based on clapack.h in clapack.tgz, version 3.0(September 20, 2000) -// available at http://www.netlib.org/clapack/ -// and modified by Nakata Maho <maho@FreeBSD.org> -// for C++, which requires proper prototype definitions. - -extern "C" -{ -#include <f2c.h> - -/* Subroutine */ int cbdsqr_(char *uplo, integer *n, integer *ncvt, integer * - nru, integer *ncc, real *d__, real *e, complex *vt, integer *ldvt, - complex *u, integer *ldu, complex *c__, integer *ldc, real *rwork, - integer *info); - -/* Subroutine */ int cgbbrd_(char *vect, integer *m, integer *n, integer *ncc, - integer *kl, integer *ku, complex *ab, integer *ldab, real *d__, - real *e, complex *q, integer *ldq, complex *pt, integer *ldpt, - complex *c__, integer *ldc, complex *work, real *rwork, integer *info); - -/* Subroutine */ int cgbcon_(char *norm, integer *n, integer *kl, integer *ku, - complex *ab, integer *ldab, integer *ipiv, real *anorm, real *rcond, - complex *work, real *rwork, integer *info); - -/* Subroutine */ int cgbequ_(integer *m, integer *n, integer *kl, integer *ku, - complex *ab, integer *ldab, real *r__, real *c__, real *rowcnd, real - *colcnd, real *amax, integer *info); - -/* Subroutine */ int cgbrfs_(char *trans, integer *n, integer *kl, integer * - ku, integer *nrhs, complex *ab, integer *ldab, complex *afb, integer * - ldafb, integer *ipiv, complex *b, integer *ldb, complex *x, integer * - ldx, real *ferr, real *berr, complex *work, real *rwork, integer * - info); - -/* Subroutine */ int cgbsv_(integer *n, integer *kl, integer *ku, integer * - nrhs, complex *ab, integer *ldab, integer *ipiv, complex *b, integer * - ldb, integer *info); - -/* Subroutine */ int cgbsvx_(char *fact, char *trans, integer *n, integer *kl, - integer *ku, integer *nrhs, complex *ab, integer *ldab, complex *afb, - integer *ldafb, integer *ipiv, char *equed, real *r__, real *c__, - complex *b, integer *ldb, complex *x, integer *ldx, real *rcond, real - *ferr, real *berr, complex *work, real *rwork, integer *info); - -/* Subroutine */ int cgbtf2_(integer *m, integer *n, integer *kl, integer *ku, - complex *ab, integer *ldab, integer *ipiv, integer *info); - -/* Subroutine */ int cgbtrf_(integer *m, integer *n, integer *kl, integer *ku, - complex *ab, integer *ldab, integer *ipiv, integer *info); - -/* Subroutine */ int cgbtrs_(char *trans, integer *n, integer *kl, integer * - ku, integer *nrhs, complex *ab, integer *ldab, integer *ipiv, complex - *b, integer *ldb, integer *info); - -/* Subroutine */ int cgebak_(char *job, char *side, integer *n, integer *ilo, - integer *ihi, real *scale, integer *m, complex *v, integer *ldv, - integer *info); - -/* Subroutine */ int cgebal_(char *job, integer *n, complex *a, integer *lda, - integer *ilo, integer *ihi, real *scale, integer *info); - -/* Subroutine */ int cgebd2_(integer *m, integer *n, complex *a, integer *lda, - real *d__, real *e, complex *tauq, complex *taup, complex *work, - integer *info); - -/* Subroutine */ int cgebrd_(integer *m, integer *n, complex *a, integer *lda, - real *d__, real *e, complex *tauq, complex *taup, complex *work, - integer *lwork, integer *info); - -/* Subroutine */ int cgecon_(char *norm, integer *n, complex *a, integer *lda, - real *anorm, real *rcond, complex *work, real *rwork, integer *info); - -/* Subroutine */ int cgeequ_(integer *m, integer *n, complex *a, integer *lda, - real *r__, real *c__, real *rowcnd, real *colcnd, real *amax, - integer *info); - -/* Subroutine */ int cgees_(char *jobvs, char *sort, L_fp select, integer *n, - complex *a, integer *lda, integer *sdim, complex *w, complex *vs, - integer *ldvs, complex *work, integer *lwork, real *rwork, logical * - bwork, integer *info); - -/* Subroutine */ int cgeesx_(char *jobvs, char *sort, L_fp select, char * - sense, integer *n, complex *a, integer *lda, integer *sdim, complex * - w, complex *vs, integer *ldvs, real *rconde, real *rcondv, complex * - work, integer *lwork, real *rwork, logical *bwork, integer *info); - -/* Subroutine */ int cgeev_(char *jobvl, char *jobvr, integer *n, complex *a, - integer *lda, complex *w, complex *vl, integer *ldvl, complex *vr, - integer *ldvr, complex *work, integer *lwork, real *rwork, integer * - info); - -/* Subroutine */ int cgeevx_(char *balanc, char *jobvl, char *jobvr, char * - sense, integer *n, complex *a, integer *lda, complex *w, complex *vl, - integer *ldvl, complex *vr, integer *ldvr, integer *ilo, integer *ihi, - real *scale, real *abnrm, real *rconde, real *rcondv, complex *work, - integer *lwork, real *rwork, integer *info); - -/* Subroutine */ int cgegs_(char *jobvsl, char *jobvsr, integer *n, complex * - a, integer *lda, complex *b, integer *ldb, complex *alpha, complex * - beta, complex *vsl, integer *ldvsl, complex *vsr, integer *ldvsr, - complex *work, integer *lwork, real *rwork, integer *info); - -/* Subroutine */ int cgegv_(char *jobvl, char *jobvr, integer *n, complex *a, - integer *lda, complex *b, integer *ldb, complex *alpha, complex *beta, - complex *vl, integer *ldvl, complex *vr, integer *ldvr, complex * - work, integer *lwork, real *rwork, integer *info); - -/* Subroutine */ int cgehd2_(integer *n, integer *ilo, integer *ihi, complex * - a, integer *lda, complex *tau, complex *work, integer *info); - -/* Subroutine */ int cgehrd_(integer *n, integer *ilo, integer *ihi, complex * - a, integer *lda, complex *tau, complex *work, integer *lwork, integer - *info); - -/* Subroutine */ int cgelq2_(integer *m, integer *n, complex *a, integer *lda, - complex *tau, complex *work, integer *info); - -/* Subroutine */ int cgelqf_(integer *m, integer *n, complex *a, integer *lda, - complex *tau, complex *work, integer *lwork, integer *info); - -/* Subroutine */ int cgels_(char *trans, integer *m, integer *n, integer * - nrhs, complex *a, integer *lda, complex *b, integer *ldb, complex * - work, integer *lwork, integer *info); - -/* Subroutine */ int cgelsx_(integer *m, integer *n, integer *nrhs, complex * - a, integer *lda, complex *b, integer *ldb, integer *jpvt, real *rcond, - integer *rank, complex *work, real *rwork, integer *info); - -/* Subroutine */ int cgelsy_(integer *m, integer *n, integer *nrhs, complex * - a, integer *lda, complex *b, integer *ldb, integer *jpvt, real *rcond, - integer *rank, complex *work, integer *lwork, real *rwork, integer * - info); - -/* Subroutine */ int cgeql2_(integer *m, integer *n, complex *a, integer *lda, - complex *tau, complex *work, integer *info); - -/* Subroutine */ int cgeqlf_(integer *m, integer *n, complex *a, integer *lda, - complex *tau, complex *work, integer *lwork, integer *info); - -/* Subroutine */ int cgeqp3_(integer *m, integer *n, complex *a, integer *lda, - integer *jpvt, complex *tau, complex *work, integer *lwork, real * - rwork, integer *info); - -/* Subroutine */ int cgeqpf_(integer *m, integer *n, complex *a, integer *lda, - integer *jpvt, complex *tau, complex *work, real *rwork, integer * - info); - -/* Subroutine */ int cgeqr2_(integer *m, integer *n, complex *a, integer *lda, - complex *tau, complex *work, integer *info); - -/* Subroutine */ int cgeqrf_(integer *m, integer *n, complex *a, integer *lda, - complex *tau, complex *work, integer *lwork, integer *info); - -/* Subroutine */ int cgerfs_(char *trans, integer *n, integer *nrhs, complex * - a, integer *lda, complex *af, integer *ldaf, integer *ipiv, complex * - b, integer *ldb, complex *x, integer *ldx, real *ferr, real *berr, - complex *work, real *rwork, integer *info); - -/* Subroutine */ int cgerq2_(integer *m, integer *n, complex *a, integer *lda, - complex *tau, complex *work, integer *info); - -/* Subroutine */ int cgerqf_(integer *m, integer *n, complex *a, integer *lda, - complex *tau, complex *work, integer *lwork, integer *info); - -/* Subroutine */ int cgesc2_(integer *n, complex *a, integer *lda, complex * - rhs, integer *ipiv, integer *jpiv, real *scale); - -/* Subroutine */ int cgesv_(integer *n, integer *nrhs, complex *a, integer * - lda, integer *ipiv, complex *b, integer *ldb, integer *info); - -/* Subroutine */ int cgesvx_(char *fact, char *trans, integer *n, integer * - nrhs, complex *a, integer *lda, complex *af, integer *ldaf, integer * - ipiv, char *equed, real *r__, real *c__, complex *b, integer *ldb, - complex *x, integer *ldx, real *rcond, real *ferr, real *berr, - complex *work, real *rwork, integer *info); - -/* Subroutine */ int cgetc2_(integer *n, complex *a, integer *lda, integer * - ipiv, integer *jpiv, integer *info); - -/* Subroutine */ int cgetf2_(integer *m, integer *n, complex *a, integer *lda, - integer *ipiv, integer *info); - -/* Subroutine */ int cgetrf_(integer *m, integer *n, complex *a, integer *lda, - integer *ipiv, integer *info); - -/* Subroutine */ int cgetri_(integer *n, complex *a, integer *lda, integer * - ipiv, complex *work, integer *lwork, integer *info); - -/* Subroutine */ int cgetrs_(char *trans, integer *n, integer *nrhs, complex * - a, integer *lda, integer *ipiv, complex *b, integer *ldb, integer * - info); - -/* Subroutine */ int cggbak_(char *job, char *side, integer *n, integer *ilo, - integer *ihi, real *lscale, real *rscale, integer *m, complex *v, - integer *ldv, integer *info); - -/* Subroutine */ int cggbal_(char *job, integer *n, complex *a, integer *lda, - complex *b, integer *ldb, integer *ilo, integer *ihi, real *lscale, - real *rscale, real *work, integer *info); - -/* Subroutine */ int cgges_(char *jobvsl, char *jobvsr, char *sort, L_fp - selctg, integer *n, complex *a, integer *lda, complex *b, integer * - ldb, integer *sdim, complex *alpha, complex *beta, complex *vsl, - integer *ldvsl, complex *vsr, integer *ldvsr, complex *work, integer * - lwork, real *rwork, logical *bwork, integer *info); - -/* Subroutine */ int cggesx_(char *jobvsl, char *jobvsr, char *sort, L_fp - selctg, char *sense, integer *n, complex *a, integer *lda, complex *b, - integer *ldb, integer *sdim, complex *alpha, complex *beta, complex * - vsl, integer *ldvsl, complex *vsr, integer *ldvsr, real *rconde, real - *rcondv, complex *work, integer *lwork, real *rwork, integer *iwork, - integer *liwork, logical *bwork, integer *info); - -/* Subroutine */ int cggev_(char *jobvl, char *jobvr, integer *n, complex *a, - integer *lda, complex *b, integer *ldb, complex *alpha, complex *beta, - complex *vl, integer *ldvl, complex *vr, integer *ldvr, complex * - work, integer *lwork, real *rwork, integer *info); - -/* Subroutine */ int cggevx_(char *balanc, char *jobvl, char *jobvr, char * - sense, integer *n, complex *a, integer *lda, complex *b, integer *ldb, - complex *alpha, complex *beta, complex *vl, integer *ldvl, complex * - vr, integer *ldvr, integer *ilo, integer *ihi, real *lscale, real * - rscale, real *abnrm, real *bbnrm, real *rconde, real *rcondv, complex - *work, integer *lwork, real *rwork, integer *iwork, logical *bwork, - integer *info); - -/* Subroutine */ int cggglm_(integer *n, integer *m, integer *p, complex *a, - integer *lda, complex *b, integer *ldb, complex *d__, complex *x, - complex *y, complex *work, integer *lwork, integer *info); - -/* Subroutine */ int cgghrd_(char *compq, char *compz, integer *n, integer * - ilo, integer *ihi, complex *a, integer *lda, complex *b, integer *ldb, - complex *q, integer *ldq, complex *z__, integer *ldz, integer *info); - -/* Subroutine */ int cgglse_(integer *m, integer *n, integer *p, complex *a, - integer *lda, complex *b, integer *ldb, complex *c__, complex *d__, - complex *x, complex *work, integer *lwork, integer *info); - -/* Subroutine */ int cggqrf_(integer *n, integer *m, integer *p, complex *a, - integer *lda, complex *taua, complex *b, integer *ldb, complex *taub, - complex *work, integer *lwork, integer *info); - -/* Subroutine */ int cggrqf_(integer *m, integer *p, integer *n, complex *a, - integer *lda, complex *taua, complex *b, integer *ldb, complex *taub, - complex *work, integer *lwork, integer *info); - -/* Subroutine */ int cggsvd_(char *jobu, char *jobv, char *jobq, integer *m, - integer *n, integer *p, integer *k, integer *l, complex *a, integer * - lda, complex *b, integer *ldb, real *alpha, real *beta, complex *u, - integer *ldu, complex *v, integer *ldv, complex *q, integer *ldq, - complex *work, real *rwork, integer *iwork, integer *info); - -/* Subroutine */ int cggsvp_(char *jobu, char *jobv, char *jobq, integer *m, - integer *p, integer *n, complex *a, integer *lda, complex *b, integer - *ldb, real *tola, real *tolb, integer *k, integer *l, complex *u, - integer *ldu, complex *v, integer *ldv, complex *q, integer *ldq, - integer *iwork, real *rwork, complex *tau, complex *work, integer * - info); - -/* Subroutine */ int cgtcon_(char *norm, integer *n, complex *dl, complex * - d__, complex *du, complex *du2, integer *ipiv, real *anorm, real * - rcond, complex *work, integer *info); - -/* Subroutine */ int cgtrfs_(char *trans, integer *n, integer *nrhs, complex * - dl, complex *d__, complex *du, complex *dlf, complex *df, complex * - duf, complex *du2, integer *ipiv, complex *b, integer *ldb, complex * - x, integer *ldx, real *ferr, real *berr, complex *work, real *rwork, - integer *info); - -/* Subroutine */ int cgtsv_(integer *n, integer *nrhs, complex *dl, complex * - d__, complex *du, complex *b, integer *ldb, integer *info); - -/* Subroutine */ int cgtsvx_(char *fact, char *trans, integer *n, integer * - nrhs, complex *dl, complex *d__, complex *du, complex *dlf, complex * - df, complex *duf, complex *du2, integer *ipiv, complex *b, integer * - ldb, complex *x, integer *ldx, real *rcond, real *ferr, real *berr, - complex *work, real *rwork, integer *info); - -/* Subroutine */ int cgttrf_(integer *n, complex *dl, complex *d__, complex * - du, complex *du2, integer *ipiv, integer *info); - -/* Subroutine */ int cgttrs_(char *trans, integer *n, integer *nrhs, complex * - dl, complex *d__, complex *du, complex *du2, integer *ipiv, complex * - b, integer *ldb, integer *info); - -/* Subroutine */ int cgtts2_(integer *itrans, integer *n, integer *nrhs, - complex *dl, complex *d__, complex *du, complex *du2, integer *ipiv, - complex *b, integer *ldb); - -/* Subroutine */ int chbev_(char *jobz, char *uplo, integer *n, integer *kd, - complex *ab, integer *ldab, real *w, complex *z__, integer *ldz, - complex *work, real *rwork, integer *info); - -/* Subroutine */ int chbevd_(char *jobz, char *uplo, integer *n, integer *kd, - complex *ab, integer *ldab, real *w, complex *z__, integer *ldz, - complex *work, integer *lwork, real *rwork, integer *lrwork, integer * - iwork, integer *liwork, integer *info); - -/* Subroutine */ int chbevx_(char *jobz, char *range, char *uplo, integer *n, - integer *kd, complex *ab, integer *ldab, complex *q, integer *ldq, - real *vl, real *vu, integer *il, integer *iu, real *abstol, integer * - m, real *w, complex *z__, integer *ldz, complex *work, real *rwork, - integer *iwork, integer *ifail, integer *info); - -/* Subroutine */ int chbgst_(char *vect, char *uplo, integer *n, integer *ka, - integer *kb, complex *ab, integer *ldab, complex *bb, integer *ldbb, - complex *x, integer *ldx, complex *work, real *rwork, integer *info); - -/* Subroutine */ int chbgv_(char *jobz, char *uplo, integer *n, integer *ka, - integer *kb, complex *ab, integer *ldab, complex *bb, integer *ldbb, - real *w, complex *z__, integer *ldz, complex *work, real *rwork, - integer *info); - -/* Subroutine */ int chbgvx_(char *jobz, char *range, char *uplo, integer *n, - integer *ka, integer *kb, complex *ab, integer *ldab, complex *bb, - integer *ldbb, complex *q, integer *ldq, real *vl, real *vu, integer * - il, integer *iu, real *abstol, integer *m, real *w, complex *z__, - integer *ldz, complex *work, real *rwork, integer *iwork, integer * - ifail, integer *info); - -/* Subroutine */ int chbtrd_(char *vect, char *uplo, integer *n, integer *kd, - complex *ab, integer *ldab, real *d__, real *e, complex *q, integer * - ldq, complex *work, integer *info); - -/* Subroutine */ int checon_(char *uplo, integer *n, complex *a, integer *lda, - integer *ipiv, real *anorm, real *rcond, complex *work, integer * - info); - -/* Subroutine */ int cheev_(char *jobz, char *uplo, integer *n, complex *a, - integer *lda, real *w, complex *work, integer *lwork, real *rwork, - integer *info); - -/* Subroutine */ int cheevd_(char *jobz, char *uplo, integer *n, complex *a, - integer *lda, real *w, complex *work, integer *lwork, real *rwork, - integer *lrwork, integer *iwork, integer *liwork, integer *info); - -/* Subroutine */ int cheevr_(char *jobz, char *range, char *uplo, integer *n, - complex *a, integer *lda, real *vl, real *vu, integer *il, integer * - iu, real *abstol, integer *m, real *w, complex *z__, integer *ldz, - integer *isuppz, complex *work, integer *lwork, real *rwork, integer * - lrwork, integer *iwork, integer *liwork, integer *info); - -/* Subroutine */ int cheevx_(char *jobz, char *range, char *uplo, integer *n, - complex *a, integer *lda, real *vl, real *vu, integer *il, integer * - iu, real *abstol, integer *m, real *w, complex *z__, integer *ldz, - complex *work, integer *lwork, real *rwork, integer *iwork, integer * - ifail, integer *info); - -/* Subroutine */ int chegs2_(integer *itype, char *uplo, integer *n, complex * - a, integer *lda, complex *b, integer *ldb, integer *info); - -/* Subroutine */ int chegst_(integer *itype, char *uplo, integer *n, complex * - a, integer *lda, complex *b, integer *ldb, integer *info); - -/* Subroutine */ int chegv_(integer *itype, char *jobz, char *uplo, integer * - n, complex *a, integer *lda, complex *b, integer *ldb, real *w, - complex *work, integer *lwork, real *rwork, integer *info); - -/* Subroutine */ int chegvd_(integer *itype, char *jobz, char *uplo, integer * - n, complex *a, integer *lda, complex *b, integer *ldb, real *w, - complex *work, integer *lwork, real *rwork, integer *lrwork, integer * - iwork, integer *liwork, integer *info); - -/* Subroutine */ int chegvx_(integer *itype, char *jobz, char *range, char * - uplo, integer *n, complex *a, integer *lda, complex *b, integer *ldb, - real *vl, real *vu, integer *il, integer *iu, real *abstol, integer * - m, real *w, complex *z__, integer *ldz, complex *work, integer *lwork, - real *rwork, integer *iwork, integer *ifail, integer *info); - -/* Subroutine */ int cherfs_(char *uplo, integer *n, integer *nrhs, complex * - a, integer *lda, complex *af, integer *ldaf, integer *ipiv, complex * - b, integer *ldb, complex *x, integer *ldx, real *ferr, real *berr, - complex *work, real *rwork, integer *info); - -/* Subroutine */ int chesv_(char *uplo, integer *n, integer *nrhs, complex *a, - integer *lda, integer *ipiv, complex *b, integer *ldb, complex *work, - integer *lwork, integer *info); - -/* Subroutine */ int chesvx_(char *fact, char *uplo, integer *n, integer * - nrhs, complex *a, integer *lda, complex *af, integer *ldaf, integer * - ipiv, complex *b, integer *ldb, complex *x, integer *ldx, real *rcond, - real *ferr, real *berr, complex *work, integer *lwork, real *rwork, - integer *info); - -/* Subroutine */ int chetf2_(char *uplo, integer *n, complex *a, integer *lda, - integer *ipiv, integer *info); - -/* Subroutine */ int chetrd_(char *uplo, integer *n, complex *a, integer *lda, - real *d__, real *e, complex *tau, complex *work, integer *lwork, - integer *info); - -/* Subroutine */ int chetrf_(char *uplo, integer *n, complex *a, integer *lda, - integer *ipiv, complex *work, integer *lwork, integer *info); - -/* Subroutine */ int chetri_(char *uplo, integer *n, complex *a, integer *lda, - integer *ipiv, complex *work, integer *info); - -/* Subroutine */ int chetrs_(char *uplo, integer *n, integer *nrhs, complex * - a, integer *lda, integer *ipiv, complex *b, integer *ldb, integer * - info); - -/* Subroutine */ int chgeqz_(char *job, char *compq, char *compz, integer *n, - integer *ilo, integer *ihi, complex *a, integer *lda, complex *b, - integer *ldb, complex *alpha, complex *beta, complex *q, integer *ldq, - complex *z__, integer *ldz, complex *work, integer *lwork, real * - rwork, integer *info); - -/* Subroutine */ int chpcon_(char *uplo, integer *n, complex *ap, integer * - ipiv, real *anorm, real *rcond, complex *work, integer *info); - -/* Subroutine */ int chpev_(char *jobz, char *uplo, integer *n, complex *ap, - real *w, complex *z__, integer *ldz, complex *work, real *rwork, - integer *info); - -/* Subroutine */ int chpevd_(char *jobz, char *uplo, integer *n, complex *ap, - real *w, complex *z__, integer *ldz, complex *work, integer *lwork, - real *rwork, integer *lrwork, integer *iwork, integer *liwork, - integer *info); - -/* Subroutine */ int chpevx_(char *jobz, char *range, char *uplo, integer *n, - complex *ap, real *vl, real *vu, integer *il, integer *iu, real * - abstol, integer *m, real *w, complex *z__, integer *ldz, complex * - work, real *rwork, integer *iwork, integer *ifail, integer *info); - -/* Subroutine */ int chpgst_(integer *itype, char *uplo, integer *n, complex * - ap, complex *bp, integer *info); - -/* Subroutine */ int chpgv_(integer *itype, char *jobz, char *uplo, integer * - n, complex *ap, complex *bp, real *w, complex *z__, integer *ldz, - complex *work, real *rwork, integer *info); - -/* Subroutine */ int chpgvd_(integer *itype, char *jobz, char *uplo, integer * - n, complex *ap, complex *bp, real *w, complex *z__, integer *ldz, - complex *work, integer *lwork, real *rwork, integer *lrwork, integer * - iwork, integer *liwork, integer *info); - -/* Subroutine */ int chpgvx_(integer *itype, char *jobz, char *range, char * - uplo, integer *n, complex *ap, complex *bp, real *vl, real *vu, - integer *il, integer *iu, real *abstol, integer *m, real *w, complex * - z__, integer *ldz, complex *work, real *rwork, integer *iwork, - integer *ifail, integer *info); - -/* Subroutine */ int chprfs_(char *uplo, integer *n, integer *nrhs, complex * - ap, complex *afp, integer *ipiv, complex *b, integer *ldb, complex *x, - integer *ldx, real *ferr, real *berr, complex *work, real *rwork, - integer *info); - -/* Subroutine */ int chpsv_(char *uplo, integer *n, integer *nrhs, complex * - ap, integer *ipiv, complex *b, integer *ldb, integer *info); - -/* Subroutine */ int chpsvx_(char *fact, char *uplo, integer *n, integer * - nrhs, complex *ap, complex *afp, integer *ipiv, complex *b, integer * - ldb, complex *x, integer *ldx, real *rcond, real *ferr, real *berr, - complex *work, real *rwork, integer *info); - -/* Subroutine */ int chptrd_(char *uplo, integer *n, complex *ap, real *d__, - real *e, complex *tau, integer *info); - -/* Subroutine */ int chptrf_(char *uplo, integer *n, complex *ap, integer * - ipiv, integer *info); - -/* Subroutine */ int chptri_(char *uplo, integer *n, complex *ap, integer * - ipiv, complex *work, integer *info); - -/* Subroutine */ int chptrs_(char *uplo, integer *n, integer *nrhs, complex * - ap, integer *ipiv, complex *b, integer *ldb, integer *info); - -/* Subroutine */ int chsein_(char *side, char *eigsrc, char *initv, logical * - select, integer *n, complex *h__, integer *ldh, complex *w, complex * - vl, integer *ldvl, complex *vr, integer *ldvr, integer *mm, integer * - m, complex *work, real *rwork, integer *ifaill, integer *ifailr, - integer *info); - -/* Subroutine */ int chseqr_(char *job, char *compz, integer *n, integer *ilo, - integer *ihi, complex *h__, integer *ldh, complex *w, complex *z__, - integer *ldz, complex *work, integer *lwork, integer *info); - -/* Subroutine */ int clabrd_(integer *m, integer *n, integer *nb, complex *a, - integer *lda, real *d__, real *e, complex *tauq, complex *taup, - complex *x, integer *ldx, complex *y, integer *ldy); - -/* Subroutine */ int clacgv_(integer *n, complex *x, integer *incx); - -/* Subroutine */ int clacon_(integer *n, complex *v, complex *x, real *est, - integer *kase); - -/* Subroutine */ int clacp2_(char *uplo, integer *m, integer *n, real *a, - integer *lda, complex *b, integer *ldb); - -/* Subroutine */ int clacpy_(char *uplo, integer *m, integer *n, complex *a, - integer *lda, complex *b, integer *ldb); - -/* Subroutine */ int clacrm_(integer *m, integer *n, complex *a, integer *lda, - real *b, integer *ldb, complex *c__, integer *ldc, real *rwork); - -/* Subroutine */ int clacrt_(integer *n, complex *cx, integer *incx, complex * - cy, integer *incy, complex *c__, complex *s); - -/* Subroutine */ int claed0_(integer *qsiz, integer *n, real *d__, real *e, - complex *q, integer *ldq, complex *qstore, integer *ldqs, real *rwork, - integer *iwork, integer *info); - -/* Subroutine */ int claed7_(integer *n, integer *cutpnt, integer *qsiz, - integer *tlvls, integer *curlvl, integer *curpbm, real *d__, complex * - q, integer *ldq, real *rho, integer *indxq, real *qstore, integer * - qptr, integer *prmptr, integer *perm, integer *givptr, integer * - givcol, real *givnum, complex *work, real *rwork, integer *iwork, - integer *info); - -/* Subroutine */ int claed8_(integer *k, integer *n, integer *qsiz, complex * - q, integer *ldq, real *d__, real *rho, integer *cutpnt, real *z__, - real *dlamda, complex *q2, integer *ldq2, real *w, integer *indxp, - integer *indx, integer *indxq, integer *perm, integer *givptr, - integer *givcol, real *givnum, integer *info); - -/* Subroutine */ int claein_(logical *rightv, logical *noinit, integer *n, - complex *h__, integer *ldh, complex *w, complex *v, complex *b, - integer *ldb, real *rwork, real *eps3, real *smlnum, integer *info); - -/* Subroutine */ int claesy_(complex *a, complex *b, complex *c__, complex * - rt1, complex *rt2, complex *evscal, complex *cs1, complex *sn1); - -/* Subroutine */ int claev2_(complex *a, complex *b, complex *c__, real *rt1, - real *rt2, real *cs1, complex *sn1); - -/* Subroutine */ int clags2_(logical *upper, real *a1, complex *a2, real *a3, - real *b1, complex *b2, real *b3, real *csu, complex *snu, real *csv, - complex *snv, real *csq, complex *snq); - -/* Subroutine */ int clagtm_(char *trans, integer *n, integer *nrhs, real * - alpha, complex *dl, complex *d__, complex *du, complex *x, integer * - ldx, real *beta, complex *b, integer *ldb); - -/* Subroutine */ int clahef_(char *uplo, integer *n, integer *nb, integer *kb, - complex *a, integer *lda, integer *ipiv, complex *w, integer *ldw, - integer *info); - -/* Subroutine */ int clahqr_(logical *wantt, logical *wantz, integer *n, - integer *ilo, integer *ihi, complex *h__, integer *ldh, complex *w, - integer *iloz, integer *ihiz, complex *z__, integer *ldz, integer * - info); - -/* Subroutine */ int clahrd_(integer *n, integer *k, integer *nb, complex *a, - integer *lda, complex *tau, complex *t, integer *ldt, complex *y, - integer *ldy); - -/* Subroutine */ int claic1_(integer *job, integer *j, complex *x, real *sest, - complex *w, complex *gamma, real *sestpr, complex *s, complex *c__); - -/* Subroutine */ int clals0_(integer *icompq, integer *nl, integer *nr, - integer *sqre, integer *nrhs, complex *b, integer *ldb, complex *bx, - integer *ldbx, integer *perm, integer *givptr, integer *givcol, - integer *ldgcol, real *givnum, integer *ldgnum, real *poles, real * - difl, real *difr, real *z__, integer *k, real *c__, real *s, real * - rwork, integer *info); - -/* Subroutine */ int clalsa_(integer *icompq, integer *smlsiz, integer *n, - integer *nrhs, complex *b, integer *ldb, complex *bx, integer *ldbx, - real *u, integer *ldu, real *vt, integer *k, real *difl, real *difr, - real *z__, real *poles, integer *givptr, integer *givcol, integer * - ldgcol, integer *perm, real *givnum, real *c__, real *s, real *rwork, - integer *iwork, integer *info); - -/* Subroutine */ int clapll_(integer *n, complex *x, integer *incx, complex * - y, integer *incy, real *ssmin); - -/* Subroutine */ int clapmt_(logical *forwrd, integer *m, integer *n, complex - *x, integer *ldx, integer *k); - -/* Subroutine */ int claqgb_(integer *m, integer *n, integer *kl, integer *ku, - complex *ab, integer *ldab, real *r__, real *c__, real *rowcnd, real - *colcnd, real *amax, char *equed); - -/* Subroutine */ int claqge_(integer *m, integer *n, complex *a, integer *lda, - real *r__, real *c__, real *rowcnd, real *colcnd, real *amax, char * - equed); - -/* Subroutine */ int claqhb_(char *uplo, integer *n, integer *kd, complex *ab, - integer *ldab, real *s, real *scond, real *amax, char *equed); - -/* Subroutine */ int claqhe_(char *uplo, integer *n, complex *a, integer *lda, - real *s, real *scond, real *amax, char *equed); - -/* Subroutine */ int claqhp_(char *uplo, integer *n, complex *ap, real *s, - real *scond, real *amax, char *equed); - -/* Subroutine */ int claqp2_(integer *m, integer *n, integer *offset, complex - *a, integer *lda, integer *jpvt, complex *tau, real *vn1, real *vn2, - complex *work); - -/* Subroutine */ int claqps_(integer *m, integer *n, integer *offset, integer - *nb, integer *kb, complex *a, integer *lda, integer *jpvt, complex * - tau, real *vn1, real *vn2, complex *auxv, complex *f, integer *ldf); - -/* Subroutine */ int claqsb_(char *uplo, integer *n, integer *kd, complex *ab, - integer *ldab, real *s, real *scond, real *amax, char *equed); - -/* Subroutine */ int claqsp_(char *uplo, integer *n, complex *ap, real *s, - real *scond, real *amax, char *equed); - -/* Subroutine */ int claqsy_(char *uplo, integer *n, complex *a, integer *lda, - real *s, real *scond, real *amax, char *equed); - -/* Subroutine */ int clar1v_(integer *n, integer *b1, integer *bn, real * - sigma, real *d__, real *l, real *ld, real *lld, real *gersch, complex - *z__, real *ztz, real *mingma, integer *r__, integer *isuppz, real * - work); - -/* Subroutine */ int clar2v_(integer *n, complex *x, complex *y, complex *z__, - integer *incx, real *c__, complex *s, integer *incc); - -/* Subroutine */ int clarcm_(integer *m, integer *n, real *a, integer *lda, - complex *b, integer *ldb, complex *c__, integer *ldc, real *rwork); - -/* Subroutine */ int clarf_(char *side, integer *m, integer *n, complex *v, - integer *incv, complex *tau, complex *c__, integer *ldc, complex * - work); - -/* Subroutine */ int clarfb_(char *side, char *trans, char *direct, char * - storev, integer *m, integer *n, integer *k, complex *v, integer *ldv, - complex *t, integer *ldt, complex *c__, integer *ldc, complex *work, - integer *ldwork); - -/* Subroutine */ int clarfg_(integer *n, complex *alpha, complex *x, integer * - incx, complex *tau); - -/* Subroutine */ int clarft_(char *direct, char *storev, integer *n, integer * - k, complex *v, integer *ldv, complex *tau, complex *t, integer *ldt); - -/* Subroutine */ int clarfx_(char *side, integer *m, integer *n, complex *v, - complex *tau, complex *c__, integer *ldc, complex *work); - -/* Subroutine */ int clargv_(integer *n, complex *x, integer *incx, complex * - y, integer *incy, real *c__, integer *incc); - -/* Subroutine */ int clarnv_(integer *idist, integer *iseed, integer *n, - complex *x); - -/* Subroutine */ int clarrv_(integer *n, real *d__, real *l, integer *isplit, - integer *m, real *w, integer *iblock, real *gersch, real *tol, - complex *z__, integer *ldz, integer *isuppz, real *work, integer * - iwork, integer *info); - -/* Subroutine */ int clartg_(complex *f, complex *g, real *cs, complex *sn, - complex *r__); - -/* Subroutine */ int clartv_(integer *n, complex *x, integer *incx, complex * - y, integer *incy, real *c__, complex *s, integer *incc); - -/* Subroutine */ int clarz_(char *side, integer *m, integer *n, integer *l, - complex *v, integer *incv, complex *tau, complex *c__, integer *ldc, - complex *work); - -/* Subroutine */ int clarzb_(char *side, char *trans, char *direct, char * - storev, integer *m, integer *n, integer *k, integer *l, complex *v, - integer *ldv, complex *t, integer *ldt, complex *c__, integer *ldc, - complex *work, integer *ldwork); - -/* Subroutine */ int clarzt_(char *direct, char *storev, integer *n, integer * - k, complex *v, integer *ldv, complex *tau, complex *t, integer *ldt); - -/* Subroutine */ int clascl_(char *type__, integer *kl, integer *ku, real * - cfrom, real *cto, integer *m, integer *n, complex *a, integer *lda, - integer *info); - -/* Subroutine */ int claset_(char *uplo, integer *m, integer *n, complex * - alpha, complex *beta, complex *a, integer *lda); - -/* Subroutine */ int clasr_(char *side, char *pivot, char *direct, integer *m, - integer *n, real *c__, real *s, complex *a, integer *lda); - -/* Subroutine */ int classq_(integer *n, complex *x, integer *incx, real * - scale, real *sumsq); - -/* Subroutine */ int claswp_(integer *n, complex *a, integer *lda, integer * - k1, integer *k2, integer *ipiv, integer *incx); - -/* Subroutine */ int clasyf_(char *uplo, integer *n, integer *nb, integer *kb, - complex *a, integer *lda, integer *ipiv, complex *w, integer *ldw, - integer *info); - -/* Subroutine */ int clatbs_(char *uplo, char *trans, char *diag, char * - normin, integer *n, integer *kd, complex *ab, integer *ldab, complex * - x, real *scale, real *cnorm, integer *info); - -/* Subroutine */ int clatdf_(integer *ijob, integer *n, complex *z__, integer - *ldz, complex *rhs, real *rdsum, real *rdscal, integer *ipiv, integer - *jpiv); - -/* Subroutine */ int clatps_(char *uplo, char *trans, char *diag, char * - normin, integer *n, complex *ap, complex *x, real *scale, real *cnorm, - integer *info); - -/* Subroutine */ int clatrd_(char *uplo, integer *n, integer *nb, complex *a, - integer *lda, real *e, complex *tau, complex *w, integer *ldw); - -/* Subroutine */ int clatrs_(char *uplo, char *trans, char *diag, char * - normin, integer *n, complex *a, integer *lda, complex *x, real *scale, - real *cnorm, integer *info); - -/* Subroutine */ int clatrz_(integer *m, integer *n, integer *l, complex *a, - integer *lda, complex *tau, complex *work); - -/* Subroutine */ int clatzm_(char *side, integer *m, integer *n, complex *v, - integer *incv, complex *tau, complex *c1, complex *c2, integer *ldc, - complex *work); - -/* Subroutine */ int clauu2_(char *uplo, integer *n, complex *a, integer *lda, - integer *info); - -/* Subroutine */ int clauum_(char *uplo, integer *n, complex *a, integer *lda, - integer *info); - -/* Subroutine */ int cpbcon_(char *uplo, integer *n, integer *kd, complex *ab, - integer *ldab, real *anorm, real *rcond, complex *work, real *rwork, - integer *info); - -/* Subroutine */ int cpbequ_(char *uplo, integer *n, integer *kd, complex *ab, - integer *ldab, real *s, real *scond, real *amax, integer *info); - -/* Subroutine */ int cpbrfs_(char *uplo, integer *n, integer *kd, integer * - nrhs, complex *ab, integer *ldab, complex *afb, integer *ldafb, - complex *b, integer *ldb, complex *x, integer *ldx, real *ferr, real * - berr, complex *work, real *rwork, integer *info); - -/* Subroutine */ int cpbstf_(char *uplo, integer *n, integer *kd, complex *ab, - integer *ldab, integer *info); - -/* Subroutine */ int cpbsv_(char *uplo, integer *n, integer *kd, integer * - nrhs, complex *ab, integer *ldab, complex *b, integer *ldb, integer * - info); - -/* Subroutine */ int cpbsvx_(char *fact, char *uplo, integer *n, integer *kd, - integer *nrhs, complex *ab, integer *ldab, complex *afb, integer * - ldafb, char *equed, real *s, complex *b, integer *ldb, complex *x, - integer *ldx, real *rcond, real *ferr, real *berr, complex *work, - real *rwork, integer *info); - -/* Subroutine */ int cpbtf2_(char *uplo, integer *n, integer *kd, complex *ab, - integer *ldab, integer *info); - -/* Subroutine */ int cpbtrf_(char *uplo, integer *n, integer *kd, complex *ab, - integer *ldab, integer *info); - -/* Subroutine */ int cpbtrs_(char *uplo, integer *n, integer *kd, integer * - nrhs, complex *ab, integer *ldab, complex *b, integer *ldb, integer * - info); - -/* Subroutine */ int cpocon_(char *uplo, integer *n, complex *a, integer *lda, - real *anorm, real *rcond, complex *work, real *rwork, integer *info); - -/* Subroutine */ int cpoequ_(integer *n, complex *a, integer *lda, real *s, - real *scond, real *amax, integer *info); - -/* Subroutine */ int cporfs_(char *uplo, integer *n, integer *nrhs, complex * - a, integer *lda, complex *af, integer *ldaf, complex *b, integer *ldb, - complex *x, integer *ldx, real *ferr, real *berr, complex *work, - real *rwork, integer *info); - -/* Subroutine */ int cposv_(char *uplo, integer *n, integer *nrhs, complex *a, - integer *lda, complex *b, integer *ldb, integer *info); - -/* Subroutine */ int cposvx_(char *fact, char *uplo, integer *n, integer * - nrhs, complex *a, integer *lda, complex *af, integer *ldaf, char * - equed, real *s, complex *b, integer *ldb, complex *x, integer *ldx, - real *rcond, real *ferr, real *berr, complex *work, real *rwork, - integer *info); - -/* Subroutine */ int cpotf2_(char *uplo, integer *n, complex *a, integer *lda, - integer *info); - -/* Subroutine */ int cpotrf_(char *uplo, integer *n, complex *a, integer *lda, - integer *info); - -/* Subroutine */ int cpotri_(char *uplo, integer *n, complex *a, integer *lda, - integer *info); - -/* Subroutine */ int cpotrs_(char *uplo, integer *n, integer *nrhs, complex * - a, integer *lda, complex *b, integer *ldb, integer *info); - -/* Subroutine */ int cppcon_(char *uplo, integer *n, complex *ap, real *anorm, - real *rcond, complex *work, real *rwork, integer *info); - -/* Subroutine */ int cppequ_(char *uplo, integer *n, complex *ap, real *s, - real *scond, real *amax, integer *info); - -/* Subroutine */ int cpprfs_(char *uplo, integer *n, integer *nrhs, complex * - ap, complex *afp, complex *b, integer *ldb, complex *x, integer *ldx, - real *ferr, real *berr, complex *work, real *rwork, integer *info); - -/* Subroutine */ int cppsv_(char *uplo, integer *n, integer *nrhs, complex * - ap, complex *b, integer *ldb, integer *info); - -/* Subroutine */ int cppsvx_(char *fact, char *uplo, integer *n, integer * - nrhs, complex *ap, complex *afp, char *equed, real *s, complex *b, - integer *ldb, complex *x, integer *ldx, real *rcond, real *ferr, real - *berr, complex *work, real *rwork, integer *info); - -/* Subroutine */ int cpptrf_(char *uplo, integer *n, complex *ap, integer * - info); - -/* Subroutine */ int cpptri_(char *uplo, integer *n, complex *ap, integer * - info); - -/* Subroutine */ int cpptrs_(char *uplo, integer *n, integer *nrhs, complex * - ap, complex *b, integer *ldb, integer *info); - -/* Subroutine */ int cptcon_(integer *n, real *d__, complex *e, real *anorm, - real *rcond, real *rwork, integer *info); - -/* Subroutine */ int cptrfs_(char *uplo, integer *n, integer *nrhs, real *d__, - complex *e, real *df, complex *ef, complex *b, integer *ldb, complex - *x, integer *ldx, real *ferr, real *berr, complex *work, real *rwork, - integer *info); - -/* Subroutine */ int cptsv_(integer *n, integer *nrhs, real *d__, complex *e, - complex *b, integer *ldb, integer *info); - -/* Subroutine */ int cptsvx_(char *fact, integer *n, integer *nrhs, real *d__, - complex *e, real *df, complex *ef, complex *b, integer *ldb, complex - *x, integer *ldx, real *rcond, real *ferr, real *berr, complex *work, - real *rwork, integer *info); - -/* Subroutine */ int cpttrf_(integer *n, real *d__, complex *e, integer *info); - -/* Subroutine */ int cpttrs_(char *uplo, integer *n, integer *nrhs, real *d__, - complex *e, complex *b, integer *ldb, integer *info); - -/* Subroutine */ int cptts2_(integer *iuplo, integer *n, integer *nrhs, real * - d__, complex *e, complex *b, integer *ldb); - -/* Subroutine */ int crot_(integer *n, complex *cx, integer *incx, complex * - cy, integer *incy, real *c__, complex *s); - -/* Subroutine */ int cspcon_(char *uplo, integer *n, complex *ap, integer * - ipiv, real *anorm, real *rcond, complex *work, integer *info); - -/* Subroutine */ int cspmv_(char *uplo, integer *n, complex *alpha, complex * - ap, complex *x, integer *incx, complex *beta, complex *y, integer * - incy); - -/* Subroutine */ int cspr_(char *uplo, integer *n, complex *alpha, complex *x, - integer *incx, complex *ap); - -/* Subroutine */ int csprfs_(char *uplo, integer *n, integer *nrhs, complex * - ap, complex *afp, integer *ipiv, complex *b, integer *ldb, complex *x, - integer *ldx, real *ferr, real *berr, complex *work, real *rwork, - integer *info); - -/* Subroutine */ int cspsv_(char *uplo, integer *n, integer *nrhs, complex * - ap, integer *ipiv, complex *b, integer *ldb, integer *info); - -/* Subroutine */ int cspsvx_(char *fact, char *uplo, integer *n, integer * - nrhs, complex *ap, complex *afp, integer *ipiv, complex *b, integer * - ldb, complex *x, integer *ldx, real *rcond, real *ferr, real *berr, - complex *work, real *rwork, integer *info); - -/* Subroutine */ int csptrf_(char *uplo, integer *n, complex *ap, integer * - ipiv, integer *info); - -/* Subroutine */ int csptri_(char *uplo, integer *n, complex *ap, integer * - ipiv, complex *work, integer *info); - -/* Subroutine */ int csptrs_(char *uplo, integer *n, integer *nrhs, complex * - ap, integer *ipiv, complex *b, integer *ldb, integer *info); - -/* Subroutine */ int csrot_(integer *n, complex *cx, integer *incx, complex * - cy, integer *incy, real *c__, real *s); - -/* Subroutine */ int csrscl_(integer *n, real *sa, complex *sx, integer *incx); - -/* Subroutine */ int cstedc_(char *compz, integer *n, real *d__, real *e, - complex *z__, integer *ldz, complex *work, integer *lwork, real * - rwork, integer *lrwork, integer *iwork, integer *liwork, integer * - info); - -/* Subroutine */ int cstein_(integer *n, real *d__, real *e, integer *m, real - *w, integer *iblock, integer *isplit, complex *z__, integer *ldz, - real *work, integer *iwork, integer *ifail, integer *info); - -/* Subroutine */ int csteqr_(char *compz, integer *n, real *d__, real *e, - complex *z__, integer *ldz, real *work, integer *info); - -/* Subroutine */ int csycon_(char *uplo, integer *n, complex *a, integer *lda, - integer *ipiv, real *anorm, real *rcond, complex *work, integer * - info); - -/* Subroutine */ int csymv_(char *uplo, integer *n, complex *alpha, complex * - a, integer *lda, complex *x, integer *incx, complex *beta, complex *y, - integer *incy); - -/* Subroutine */ int csyr_(char *uplo, integer *n, complex *alpha, complex *x, - integer *incx, complex *a, integer *lda); - -/* Subroutine */ int csyrfs_(char *uplo, integer *n, integer *nrhs, complex * - a, integer *lda, complex *af, integer *ldaf, integer *ipiv, complex * - b, integer *ldb, complex *x, integer *ldx, real *ferr, real *berr, - complex *work, real *rwork, integer *info); - -/* Subroutine */ int csysv_(char *uplo, integer *n, integer *nrhs, complex *a, - integer *lda, integer *ipiv, complex *b, integer *ldb, complex *work, - integer *lwork, integer *info); - -/* Subroutine */ int csysvx_(char *fact, char *uplo, integer *n, integer * - nrhs, complex *a, integer *lda, complex *af, integer *ldaf, integer * - ipiv, complex *b, integer *ldb, complex *x, integer *ldx, real *rcond, - real *ferr, real *berr, complex *work, integer *lwork, real *rwork, - integer *info); - -/* Subroutine */ int csytf2_(char *uplo, integer *n, complex *a, integer *lda, - integer *ipiv, integer *info); - -/* Subroutine */ int csytrf_(char *uplo, integer *n, complex *a, integer *lda, - integer *ipiv, complex *work, integer *lwork, integer *info); - -/* Subroutine */ int csytri_(char *uplo, integer *n, complex *a, integer *lda, - integer *ipiv, complex *work, integer *info); - -/* Subroutine */ int csytrs_(char *uplo, integer *n, integer *nrhs, complex * - a, integer *lda, integer *ipiv, complex *b, integer *ldb, integer * - info); - -/* Subroutine */ int ctbcon_(char *norm, char *uplo, char *diag, integer *n, - integer *kd, complex *ab, integer *ldab, real *rcond, complex *work, - real *rwork, integer *info); - -/* Subroutine */ int ctbrfs_(char *uplo, char *trans, char *diag, integer *n, - integer *kd, integer *nrhs, complex *ab, integer *ldab, complex *b, - integer *ldb, complex *x, integer *ldx, real *ferr, real *berr, - complex *work, real *rwork, integer *info); - -/* Subroutine */ int ctbtrs_(char *uplo, char *trans, char *diag, integer *n, - integer *kd, integer *nrhs, complex *ab, integer *ldab, complex *b, - integer *ldb, integer *info); - -/* Subroutine */ int ctgevc_(char *side, char *howmny, logical *select, - integer *n, complex *a, integer *lda, complex *b, integer *ldb, - complex *vl, integer *ldvl, complex *vr, integer *ldvr, integer *mm, - integer *m, complex *work, real *rwork, integer *info); - -/* Subroutine */ int ctgex2_(logical *wantq, logical *wantz, integer *n, - complex *a, integer *lda, complex *b, integer *ldb, complex *q, - integer *ldq, complex *z__, integer *ldz, integer *j1, integer *info); - -/* Subroutine */ int ctgexc_(logical *wantq, logical *wantz, integer *n, - complex *a, integer *lda, complex *b, integer *ldb, complex *q, - integer *ldq, complex *z__, integer *ldz, integer *ifst, integer * - ilst, integer *info); - -/* Subroutine */ int ctgsen_(integer *ijob, logical *wantq, logical *wantz, - logical *select, integer *n, complex *a, integer *lda, complex *b, - integer *ldb, complex *alpha, complex *beta, complex *q, integer *ldq, - complex *z__, integer *ldz, integer *m, real *pl, real *pr, real * - dif, complex *work, integer *lwork, integer *iwork, integer *liwork, - integer *info); - -/* Subroutine */ int ctgsja_(char *jobu, char *jobv, char *jobq, integer *m, - integer *p, integer *n, integer *k, integer *l, complex *a, integer * - lda, complex *b, integer *ldb, real *tola, real *tolb, real *alpha, - real *beta, complex *u, integer *ldu, complex *v, integer *ldv, - complex *q, integer *ldq, complex *work, integer *ncycle, integer * - info); - -/* Subroutine */ int ctgsna_(char *job, char *howmny, logical *select, - integer *n, complex *a, integer *lda, complex *b, integer *ldb, - complex *vl, integer *ldvl, complex *vr, integer *ldvr, real *s, real - *dif, integer *mm, integer *m, complex *work, integer *lwork, integer - *iwork, integer *info); - -/* Subroutine */ int ctgsy2_(char *trans, integer *ijob, integer *m, integer * - n, complex *a, integer *lda, complex *b, integer *ldb, complex *c__, - integer *ldc, complex *d__, integer *ldd, complex *e, integer *lde, - complex *f, integer *ldf, real *scale, real *rdsum, real *rdscal, - integer *info); - -/* Subroutine */ int ctgsyl_(char *trans, integer *ijob, integer *m, integer * - n, complex *a, integer *lda, complex *b, integer *ldb, complex *c__, - integer *ldc, complex *d__, integer *ldd, complex *e, integer *lde, - complex *f, integer *ldf, real *scale, real *dif, complex *work, - integer *lwork, integer *iwork, integer *info); - -/* Subroutine */ int ctpcon_(char *norm, char *uplo, char *diag, integer *n, - complex *ap, real *rcond, complex *work, real *rwork, integer *info); - -/* Subroutine */ int ctprfs_(char *uplo, char *trans, char *diag, integer *n, - integer *nrhs, complex *ap, complex *b, integer *ldb, complex *x, - integer *ldx, real *ferr, real *berr, complex *work, real *rwork, - integer *info); - -/* Subroutine */ int ctptri_(char *uplo, char *diag, integer *n, complex *ap, - integer *info); - -/* Subroutine */ int ctptrs_(char *uplo, char *trans, char *diag, integer *n, - integer *nrhs, complex *ap, complex *b, integer *ldb, integer *info); - -/* Subroutine */ int ctrcon_(char *norm, char *uplo, char *diag, integer *n, - complex *a, integer *lda, real *rcond, complex *work, real *rwork, - integer *info); - -/* Subroutine */ int ctrevc_(char *side, char *howmny, logical *select, - integer *n, complex *t, integer *ldt, complex *vl, integer *ldvl, - complex *vr, integer *ldvr, integer *mm, integer *m, complex *work, - real *rwork, integer *info); - -/* Subroutine */ int ctrexc_(char *compq, integer *n, complex *t, integer * - ldt, complex *q, integer *ldq, integer *ifst, integer *ilst, integer * - info); - -/* Subroutine */ int ctrrfs_(char *uplo, char *trans, char *diag, integer *n, - integer *nrhs, complex *a, integer *lda, complex *b, integer *ldb, - complex *x, integer *ldx, real *ferr, real *berr, complex *work, real - *rwork, integer *info); - -/* Subroutine */ int ctrsen_(char *job, char *compq, logical *select, integer - *n, complex *t, integer *ldt, complex *q, integer *ldq, complex *w, - integer *m, real *s, real *sep, complex *work, integer *lwork, - integer *info); - -/* Subroutine */ int ctrsna_(char *job, char *howmny, logical *select, - integer *n, complex *t, integer *ldt, complex *vl, integer *ldvl, - complex *vr, integer *ldvr, real *s, real *sep, integer *mm, integer * - m, complex *work, integer *ldwork, real *rwork, integer *info); - -/* Subroutine */ int ctrsyl_(char *trana, char *tranb, integer *isgn, integer - *m, integer *n, complex *a, integer *lda, complex *b, integer *ldb, - complex *c__, integer *ldc, real *scale, integer *info); - -/* Subroutine */ int ctrti2_(char *uplo, char *diag, integer *n, complex *a, - integer *lda, integer *info); - -/* Subroutine */ int ctrtri_(char *uplo, char *diag, integer *n, complex *a, - integer *lda, integer *info); - -/* Subroutine */ int ctrtrs_(char *uplo, char *trans, char *diag, integer *n, - integer *nrhs, complex *a, integer *lda, complex *b, integer *ldb, - integer *info); - -/* Subroutine */ int ctzrqf_(integer *m, integer *n, complex *a, integer *lda, - complex *tau, integer *info); - -/* Subroutine */ int ctzrzf_(integer *m, integer *n, complex *a, integer *lda, - complex *tau, complex *work, integer *lwork, integer *info); - -/* Subroutine */ int cung2l_(integer *m, integer *n, integer *k, complex *a, - integer *lda, complex *tau, complex *work, integer *info); - -/* Subroutine */ int cung2r_(integer *m, integer *n, integer *k, complex *a, - integer *lda, complex *tau, complex *work, integer *info); - -/* Subroutine */ int cungbr_(char *vect, integer *m, integer *n, integer *k, - complex *a, integer *lda, complex *tau, complex *work, integer *lwork, - integer *info); - -/* Subroutine */ int cunghr_(integer *n, integer *ilo, integer *ihi, complex * - a, integer *lda, complex *tau, complex *work, integer *lwork, integer - *info); - -/* Subroutine */ int cungl2_(integer *m, integer *n, integer *k, complex *a, - integer *lda, complex *tau, complex *work, integer *info); - -/* Subroutine */ int cunglq_(integer *m, integer *n, integer *k, complex *a, - integer *lda, complex *tau, complex *work, integer *lwork, integer * - info); - -/* Subroutine */ int cungql_(integer *m, integer *n, integer *k, complex *a, - integer *lda, complex *tau, complex *work, integer *lwork, integer * - info); - -/* Subroutine */ int cungqr_(integer *m, integer *n, integer *k, complex *a, - integer *lda, complex *tau, complex *work, integer *lwork, integer * - info); - -/* Subroutine */ int cungr2_(integer *m, integer *n, integer *k, complex *a, - integer *lda, complex *tau, complex *work, integer *info); - -/* Subroutine */ int cungrq_(integer *m, integer *n, integer *k, complex *a, - integer *lda, complex *tau, complex *work, integer *lwork, integer * - info); - -/* Subroutine */ int cungtr_(char *uplo, integer *n, complex *a, integer *lda, - complex *tau, complex *work, integer *lwork, integer *info); - -/* Subroutine */ int cunm2l_(char *side, char *trans, integer *m, integer *n, - integer *k, complex *a, integer *lda, complex *tau, complex *c__, - integer *ldc, complex *work, integer *info); - -/* Subroutine */ int cunm2r_(char *side, char *trans, integer *m, integer *n, - integer *k, complex *a, integer *lda, complex *tau, complex *c__, - integer *ldc, complex *work, integer *info); - -/* Subroutine */ int cunmbr_(char *vect, char *side, char *trans, integer *m, - integer *n, integer *k, complex *a, integer *lda, complex *tau, - complex *c__, integer *ldc, complex *work, integer *lwork, integer * - info); - -/* Subroutine */ int cunmhr_(char *side, char *trans, integer *m, integer *n, - integer *ilo, integer *ihi, complex *a, integer *lda, complex *tau, - complex *c__, integer *ldc, complex *work, integer *lwork, integer * - info); - -/* Subroutine */ int cunml2_(char *side, char *trans, integer *m, integer *n, - integer *k, complex *a, integer *lda, complex *tau, complex *c__, - integer *ldc, complex *work, integer *info); - -/* Subroutine */ int cunmlq_(char *side, char *trans, integer *m, integer *n, - integer *k, complex *a, integer *lda, complex *tau, complex *c__, - integer *ldc, complex *work, integer *lwork, integer *info); - -/* Subroutine */ int cunmql_(char *side, char *trans, integer *m, integer *n, - integer *k, complex *a, integer *lda, complex *tau, complex *c__, - integer *ldc, complex *work, integer *lwork, integer *info); - -/* Subroutine */ int cunmqr_(char *side, char *trans, integer *m, integer *n, - integer *k, complex *a, integer *lda, complex *tau, complex *c__, - integer *ldc, complex *work, integer *lwork, integer *info); - -/* Subroutine */ int cunmr2_(char *side, char *trans, integer *m, integer *n, - integer *k, complex *a, integer *lda, complex *tau, complex *c__, - integer *ldc, complex *work, integer *info); - -/* Subroutine */ int cunmr3_(char *side, char *trans, integer *m, integer *n, - integer *k, integer *l, complex *a, integer *lda, complex *tau, - complex *c__, integer *ldc, complex *work, integer *info); - -/* Subroutine */ int cunmrq_(char *side, char *trans, integer *m, integer *n, - integer *k, complex *a, integer *lda, complex *tau, complex *c__, - integer *ldc, complex *work, integer *lwork, integer *info); - -/* Subroutine */ int cunmrz_(char *side, char *trans, integer *m, integer *n, - integer *k, integer *l, complex *a, integer *lda, complex *tau, - complex *c__, integer *ldc, complex *work, integer *lwork, integer * - info); - -/* Subroutine */ int cunmtr_(char *side, char *uplo, char *trans, integer *m, - integer *n, complex *a, integer *lda, complex *tau, complex *c__, - integer *ldc, complex *work, integer *lwork, integer *info); - -/* Subroutine */ int cupgtr_(char *uplo, integer *n, complex *ap, complex * - tau, complex *q, integer *ldq, complex *work, integer *info); - -/* Subroutine */ int cupmtr_(char *side, char *uplo, char *trans, integer *m, - integer *n, complex *ap, complex *tau, complex *c__, integer *ldc, - complex *work, integer *info); - -/* Subroutine */ int dbdsdc_(char *uplo, char *compq, integer *n, doublereal * - d__, doublereal *e, doublereal *u, integer *ldu, doublereal *vt, - integer *ldvt, doublereal *q, integer *iq, doublereal *work, integer * - iwork, integer *info); - -/* Subroutine */ int dbdsqr_(char *uplo, integer *n, integer *ncvt, integer * - nru, integer *ncc, doublereal *d__, doublereal *e, doublereal *vt, - integer *ldvt, doublereal *u, integer *ldu, doublereal *c__, integer * - ldc, doublereal *work, integer *info); - -/* Subroutine */ int ddisna_(char *job, integer *m, integer *n, doublereal * - d__, doublereal *sep, integer *info); - -/* Subroutine */ int dgbbrd_(char *vect, integer *m, integer *n, integer *ncc, - integer *kl, integer *ku, doublereal *ab, integer *ldab, doublereal * - d__, doublereal *e, doublereal *q, integer *ldq, doublereal *pt, - integer *ldpt, doublereal *c__, integer *ldc, doublereal *work, - integer *info); - -/* Subroutine */ int dgbcon_(char *norm, integer *n, integer *kl, integer *ku, - doublereal *ab, integer *ldab, integer *ipiv, doublereal *anorm, - doublereal *rcond, doublereal *work, integer *iwork, integer *info); - -/* Subroutine */ int dgbequ_(integer *m, integer *n, integer *kl, integer *ku, - doublereal *ab, integer *ldab, doublereal *r__, doublereal *c__, - doublereal *rowcnd, doublereal *colcnd, doublereal *amax, integer * - info); - -/* Subroutine */ int dgbrfs_(char *trans, integer *n, integer *kl, integer * - ku, integer *nrhs, doublereal *ab, integer *ldab, doublereal *afb, - integer *ldafb, integer *ipiv, doublereal *b, integer *ldb, - doublereal *x, integer *ldx, doublereal *ferr, doublereal *berr, - doublereal *work, integer *iwork, integer *info); - -/* Subroutine */ int dgbsv_(integer *n, integer *kl, integer *ku, integer * - nrhs, doublereal *ab, integer *ldab, integer *ipiv, doublereal *b, - integer *ldb, integer *info); - -/* Subroutine */ int dgbsvx_(char *fact, char *trans, integer *n, integer *kl, - integer *ku, integer *nrhs, doublereal *ab, integer *ldab, - doublereal *afb, integer *ldafb, integer *ipiv, char *equed, - doublereal *r__, doublereal *c__, doublereal *b, integer *ldb, - doublereal *x, integer *ldx, doublereal *rcond, doublereal *ferr, - doublereal *berr, doublereal *work, integer *iwork, integer *info); - -/* Subroutine */ int dgbtf2_(integer *m, integer *n, integer *kl, integer *ku, - doublereal *ab, integer *ldab, integer *ipiv, integer *info); - -/* Subroutine */ int dgbtrf_(integer *m, integer *n, integer *kl, integer *ku, - doublereal *ab, integer *ldab, integer *ipiv, integer *info); - -/* Subroutine */ int dgbtrs_(char *trans, integer *n, integer *kl, integer * - ku, integer *nrhs, doublereal *ab, integer *ldab, integer *ipiv, - doublereal *b, integer *ldb, integer *info); - -/* Subroutine */ int dgebak_(char *job, char *side, integer *n, integer *ilo, - integer *ihi, doublereal *scale, integer *m, doublereal *v, integer * - ldv, integer *info); - -/* Subroutine */ int dgebal_(char *job, integer *n, doublereal *a, integer * - lda, integer *ilo, integer *ihi, doublereal *scale, integer *info); - -/* Subroutine */ int dgebd2_(integer *m, integer *n, doublereal *a, integer * - lda, doublereal *d__, doublereal *e, doublereal *tauq, doublereal * - taup, doublereal *work, integer *info); - -/* Subroutine */ int dgebrd_(integer *m, integer *n, doublereal *a, integer * - lda, doublereal *d__, doublereal *e, doublereal *tauq, doublereal * - taup, doublereal *work, integer *lwork, integer *info); - -/* Subroutine */ int dgecon_(char *norm, integer *n, doublereal *a, integer * - lda, doublereal *anorm, doublereal *rcond, doublereal *work, integer * - iwork, integer *info); - -/* Subroutine */ int dgeequ_(integer *m, integer *n, doublereal *a, integer * - lda, doublereal *r__, doublereal *c__, doublereal *rowcnd, doublereal - *colcnd, doublereal *amax, integer *info); - -/* Subroutine */ int dgees_(char *jobvs, char *sort, L_fp select, integer *n, - doublereal *a, integer *lda, integer *sdim, doublereal *wr, - doublereal *wi, doublereal *vs, integer *ldvs, doublereal *work, - integer *lwork, logical *bwork, integer *info); - -/* Subroutine */ int dgeesx_(char *jobvs, char *sort, L_fp select, char * - sense, integer *n, doublereal *a, integer *lda, integer *sdim, - doublereal *wr, doublereal *wi, doublereal *vs, integer *ldvs, - doublereal *rconde, doublereal *rcondv, doublereal *work, integer * - lwork, integer *iwork, integer *liwork, logical *bwork, integer *info); - -/* Subroutine */ int dgeev_(char *jobvl, char *jobvr, integer *n, doublereal * - a, integer *lda, doublereal *wr, doublereal *wi, doublereal *vl, - integer *ldvl, doublereal *vr, integer *ldvr, doublereal *work, - integer *lwork, integer *info); - -/* Subroutine */ int dgeevx_(char *balanc, char *jobvl, char *jobvr, char * - sense, integer *n, doublereal *a, integer *lda, doublereal *wr, - doublereal *wi, doublereal *vl, integer *ldvl, doublereal *vr, - integer *ldvr, integer *ilo, integer *ihi, doublereal *scale, - doublereal *abnrm, doublereal *rconde, doublereal *rcondv, doublereal - *work, integer *lwork, integer *iwork, integer *info); - -/* Subroutine */ int dgegs_(char *jobvsl, char *jobvsr, integer *n, - doublereal *a, integer *lda, doublereal *b, integer *ldb, doublereal * - alphar, doublereal *alphai, doublereal *beta, doublereal *vsl, - integer *ldvsl, doublereal *vsr, integer *ldvsr, doublereal *work, - integer *lwork, integer *info); - -/* Subroutine */ int dgegv_(char *jobvl, char *jobvr, integer *n, doublereal * - a, integer *lda, doublereal *b, integer *ldb, doublereal *alphar, - doublereal *alphai, doublereal *beta, doublereal *vl, integer *ldvl, - doublereal *vr, integer *ldvr, doublereal *work, integer *lwork, - integer *info); - -/* Subroutine */ int dgehd2_(integer *n, integer *ilo, integer *ihi, - doublereal *a, integer *lda, doublereal *tau, doublereal *work, - integer *info); - -/* Subroutine */ int dgehrd_(integer *n, integer *ilo, integer *ihi, - doublereal *a, integer *lda, doublereal *tau, doublereal *work, - integer *lwork, integer *info); - -/* Subroutine */ int dgelq2_(integer *m, integer *n, doublereal *a, integer * - lda, doublereal *tau, doublereal *work, integer *info); - -/* Subroutine */ int dgelqf_(integer *m, integer *n, doublereal *a, integer * - lda, doublereal *tau, doublereal *work, integer *lwork, integer *info); - -/* Subroutine */ int dgels_(char *trans, integer *m, integer *n, integer * - nrhs, doublereal *a, integer *lda, doublereal *b, integer *ldb, - doublereal *work, integer *lwork, integer *info); - -/* Subroutine */ int dgelsd_(integer *m, integer *n, integer *nrhs, - doublereal *a, integer *lda, doublereal *b, integer *ldb, doublereal * - s, doublereal *rcond, integer *rank, doublereal *work, integer *lwork, - integer *iwork, integer *info); - -/* Subroutine */ int dgelss_(integer *m, integer *n, integer *nrhs, - doublereal *a, integer *lda, doublereal *b, integer *ldb, doublereal * - s, doublereal *rcond, integer *rank, doublereal *work, integer *lwork, - integer *info); - -/* Subroutine */ int dgelsx_(integer *m, integer *n, integer *nrhs, - doublereal *a, integer *lda, doublereal *b, integer *ldb, integer * - jpvt, doublereal *rcond, integer *rank, doublereal *work, integer * - info); - -/* Subroutine */ int dgelsy_(integer *m, integer *n, integer *nrhs, - doublereal *a, integer *lda, doublereal *b, integer *ldb, integer * - jpvt, doublereal *rcond, integer *rank, doublereal *work, integer * - lwork, integer *info); - -/* Subroutine */ int dgeql2_(integer *m, integer *n, doublereal *a, integer * - lda, doublereal *tau, doublereal *work, integer *info); - -/* Subroutine */ int dgeqlf_(integer *m, integer *n, doublereal *a, integer * - lda, doublereal *tau, doublereal *work, integer *lwork, integer *info); - -/* Subroutine */ int dgeqp3_(integer *m, integer *n, doublereal *a, integer * - lda, integer *jpvt, doublereal *tau, doublereal *work, integer *lwork, - integer *info); - -/* Subroutine */ int dgeqpf_(integer *m, integer *n, doublereal *a, integer * - lda, integer *jpvt, doublereal *tau, doublereal *work, integer *info); - -/* Subroutine */ int dgeqr2_(integer *m, integer *n, doublereal *a, integer * - lda, doublereal *tau, doublereal *work, integer *info); - -/* Subroutine */ int dgeqrf_(integer *m, integer *n, doublereal *a, integer * - lda, doublereal *tau, doublereal *work, integer *lwork, integer *info); - -/* Subroutine */ int dgerfs_(char *trans, integer *n, integer *nrhs, - doublereal *a, integer *lda, doublereal *af, integer *ldaf, integer * - ipiv, doublereal *b, integer *ldb, doublereal *x, integer *ldx, - doublereal *ferr, doublereal *berr, doublereal *work, integer *iwork, - integer *info); - -/* Subroutine */ int dgerq2_(integer *m, integer *n, doublereal *a, integer * - lda, doublereal *tau, doublereal *work, integer *info); - -/* Subroutine */ int dgerqf_(integer *m, integer *n, doublereal *a, integer * - lda, doublereal *tau, doublereal *work, integer *lwork, integer *info); - -/* Subroutine */ int dgesc2_(integer *n, doublereal *a, integer *lda, - doublereal *rhs, integer *ipiv, integer *jpiv, doublereal *scale); - -/* Subroutine */ int dgesdd_(char *jobz, integer *m, integer *n, doublereal * - a, integer *lda, doublereal *s, doublereal *u, integer *ldu, - doublereal *vt, integer *ldvt, doublereal *work, integer *lwork, - integer *iwork, integer *info); - -/* Subroutine */ int dgesv_(integer *n, integer *nrhs, doublereal *a, integer - *lda, integer *ipiv, doublereal *b, integer *ldb, integer *info); - -/* Subroutine */ int dgesvd_(char *jobu, char *jobvt, integer *m, integer *n, - doublereal *a, integer *lda, doublereal *s, doublereal *u, integer * - ldu, doublereal *vt, integer *ldvt, doublereal *work, integer *lwork, - integer *info); - -/* Subroutine */ int dgesvx_(char *fact, char *trans, integer *n, integer * - nrhs, doublereal *a, integer *lda, doublereal *af, integer *ldaf, - integer *ipiv, char *equed, doublereal *r__, doublereal *c__, - doublereal *b, integer *ldb, doublereal *x, integer *ldx, doublereal * - rcond, doublereal *ferr, doublereal *berr, doublereal *work, integer * - iwork, integer *info); - -/* Subroutine */ int dgetc2_(integer *n, doublereal *a, integer *lda, integer - *ipiv, integer *jpiv, integer *info); - -/* Subroutine */ int dgetf2_(integer *m, integer *n, doublereal *a, integer * - lda, integer *ipiv, integer *info); - -/* Subroutine */ int dgetrf_(integer *m, integer *n, doublereal *a, integer * - lda, integer *ipiv, integer *info); - -/* Subroutine */ int dgetri_(integer *n, doublereal *a, integer *lda, integer - *ipiv, doublereal *work, integer *lwork, integer *info); - -/* Subroutine */ int dgetrs_(char *trans, integer *n, integer *nrhs, - doublereal *a, integer *lda, integer *ipiv, doublereal *b, integer * - ldb, integer *info); - -/* Subroutine */ int dggbak_(char *job, char *side, integer *n, integer *ilo, - integer *ihi, doublereal *lscale, doublereal *rscale, integer *m, - doublereal *v, integer *ldv, integer *info); - -/* Subroutine */ int dggbal_(char *job, integer *n, doublereal *a, integer * - lda, doublereal *b, integer *ldb, integer *ilo, integer *ihi, - doublereal *lscale, doublereal *rscale, doublereal *work, integer * - info); - -/* Subroutine */ int dgges_(char *jobvsl, char *jobvsr, char *sort, L_fp - delctg, integer *n, doublereal *a, integer *lda, doublereal *b, - integer *ldb, integer *sdim, doublereal *alphar, doublereal *alphai, - doublereal *beta, doublereal *vsl, integer *ldvsl, doublereal *vsr, - integer *ldvsr, doublereal *work, integer *lwork, logical *bwork, - integer *info); - -/* Subroutine */ int dggesx_(char *jobvsl, char *jobvsr, char *sort, L_fp - delctg, char *sense, integer *n, doublereal *a, integer *lda, - doublereal *b, integer *ldb, integer *sdim, doublereal *alphar, - doublereal *alphai, doublereal *beta, doublereal *vsl, integer *ldvsl, - doublereal *vsr, integer *ldvsr, doublereal *rconde, doublereal * - rcondv, doublereal *work, integer *lwork, integer *iwork, integer * - liwork, logical *bwork, integer *info); - -/* Subroutine */ int dggev_(char *jobvl, char *jobvr, integer *n, doublereal * - a, integer *lda, doublereal *b, integer *ldb, doublereal *alphar, - doublereal *alphai, doublereal *beta, doublereal *vl, integer *ldvl, - doublereal *vr, integer *ldvr, doublereal *work, integer *lwork, - integer *info); - -/* Subroutine */ int dggevx_(char *balanc, char *jobvl, char *jobvr, char * - sense, integer *n, doublereal *a, integer *lda, doublereal *b, - integer *ldb, doublereal *alphar, doublereal *alphai, doublereal * - beta, doublereal *vl, integer *ldvl, doublereal *vr, integer *ldvr, - integer *ilo, integer *ihi, doublereal *lscale, doublereal *rscale, - doublereal *abnrm, doublereal *bbnrm, doublereal *rconde, doublereal * - rcondv, doublereal *work, integer *lwork, integer *iwork, logical * - bwork, integer *info); - -/* Subroutine */ int dggglm_(integer *n, integer *m, integer *p, doublereal * - a, integer *lda, doublereal *b, integer *ldb, doublereal *d__, - doublereal *x, doublereal *y, doublereal *work, integer *lwork, - integer *info); - -/* Subroutine */ int dgghrd_(char *compq, char *compz, integer *n, integer * - ilo, integer *ihi, doublereal *a, integer *lda, doublereal *b, - integer *ldb, doublereal *q, integer *ldq, doublereal *z__, integer * - ldz, integer *info); - -/* Subroutine */ int dgglse_(integer *m, integer *n, integer *p, doublereal * - a, integer *lda, doublereal *b, integer *ldb, doublereal *c__, - doublereal *d__, doublereal *x, doublereal *work, integer *lwork, - integer *info); - -/* Subroutine */ int dggqrf_(integer *n, integer *m, integer *p, doublereal * - a, integer *lda, doublereal *taua, doublereal *b, integer *ldb, - doublereal *taub, doublereal *work, integer *lwork, integer *info); - -/* Subroutine */ int dggrqf_(integer *m, integer *p, integer *n, doublereal * - a, integer *lda, doublereal *taua, doublereal *b, integer *ldb, - doublereal *taub, doublereal *work, integer *lwork, integer *info); - -/* Subroutine */ int dggsvd_(char *jobu, char *jobv, char *jobq, integer *m, - integer *n, integer *p, integer *k, integer *l, doublereal *a, - integer *lda, doublereal *b, integer *ldb, doublereal *alpha, - doublereal *beta, doublereal *u, integer *ldu, doublereal *v, integer - *ldv, doublereal *q, integer *ldq, doublereal *work, integer *iwork, - integer *info); - -/* Subroutine */ int dggsvp_(char *jobu, char *jobv, char *jobq, integer *m, - integer *p, integer *n, doublereal *a, integer *lda, doublereal *b, - integer *ldb, doublereal *tola, doublereal *tolb, integer *k, integer - *l, doublereal *u, integer *ldu, doublereal *v, integer *ldv, - doublereal *q, integer *ldq, integer *iwork, doublereal *tau, - doublereal *work, integer *info); - -/* Subroutine */ int dgtcon_(char *norm, integer *n, doublereal *dl, - doublereal *d__, doublereal *du, doublereal *du2, integer *ipiv, - doublereal *anorm, doublereal *rcond, doublereal *work, integer * - iwork, integer *info); - -/* Subroutine */ int dgtrfs_(char *trans, integer *n, integer *nrhs, - doublereal *dl, doublereal *d__, doublereal *du, doublereal *dlf, - doublereal *df, doublereal *duf, doublereal *du2, integer *ipiv, - doublereal *b, integer *ldb, doublereal *x, integer *ldx, doublereal * - ferr, doublereal *berr, doublereal *work, integer *iwork, integer * - info); - -/* Subroutine */ int dgtsv_(integer *n, integer *nrhs, doublereal *dl, - doublereal *d__, doublereal *du, doublereal *b, integer *ldb, integer - *info); - -/* Subroutine */ int dgtsvx_(char *fact, char *trans, integer *n, integer * - nrhs, doublereal *dl, doublereal *d__, doublereal *du, doublereal * - dlf, doublereal *df, doublereal *duf, doublereal *du2, integer *ipiv, - doublereal *b, integer *ldb, doublereal *x, integer *ldx, doublereal * - rcond, doublereal *ferr, doublereal *berr, doublereal *work, integer * - iwork, integer *info); - -/* Subroutine */ int dgttrf_(integer *n, doublereal *dl, doublereal *d__, - doublereal *du, doublereal *du2, integer *ipiv, integer *info); - -/* Subroutine */ int dgttrs_(char *trans, integer *n, integer *nrhs, - doublereal *dl, doublereal *d__, doublereal *du, doublereal *du2, - integer *ipiv, doublereal *b, integer *ldb, integer *info); - -/* Subroutine */ int dgtts2_(integer *itrans, integer *n, integer *nrhs, - doublereal *dl, doublereal *d__, doublereal *du, doublereal *du2, - integer *ipiv, doublereal *b, integer *ldb); - -/* Subroutine */ int dhgeqz_(char *job, char *compq, char *compz, integer *n, - integer *ilo, integer *ihi, doublereal *a, integer *lda, doublereal * - b, integer *ldb, doublereal *alphar, doublereal *alphai, doublereal * - beta, doublereal *q, integer *ldq, doublereal *z__, integer *ldz, - doublereal *work, integer *lwork, integer *info); - -/* Subroutine */ int dhsein_(char *side, char *eigsrc, char *initv, logical * - select, integer *n, doublereal *h__, integer *ldh, doublereal *wr, - doublereal *wi, doublereal *vl, integer *ldvl, doublereal *vr, - integer *ldvr, integer *mm, integer *m, doublereal *work, integer * - ifaill, integer *ifailr, integer *info); - -/* Subroutine */ int dhseqr_(char *job, char *compz, integer *n, integer *ilo, - integer *ihi, doublereal *h__, integer *ldh, doublereal *wr, - doublereal *wi, doublereal *z__, integer *ldz, doublereal *work, - integer *lwork, integer *info); - -/* Subroutine */ int dlabad_(doublereal *small, doublereal *large); - -/* Subroutine */ int dlabrd_(integer *m, integer *n, integer *nb, doublereal * - a, integer *lda, doublereal *d__, doublereal *e, doublereal *tauq, - doublereal *taup, doublereal *x, integer *ldx, doublereal *y, integer - *ldy); - -/* Subroutine */ int dlacon_(integer *n, doublereal *v, doublereal *x, - integer *isgn, doublereal *est, integer *kase); - -/* Subroutine */ int dlacpy_(char *uplo, integer *m, integer *n, doublereal * - a, integer *lda, doublereal *b, integer *ldb); - -/* Subroutine */ int dladiv_(doublereal *a, doublereal *b, doublereal *c__, - doublereal *d__, doublereal *p, doublereal *q); - -/* Subroutine */ int dlae2_(doublereal *a, doublereal *b, doublereal *c__, - doublereal *rt1, doublereal *rt2); - -/* Subroutine */ int dlaebz_(integer *ijob, integer *nitmax, integer *n, - integer *mmax, integer *minp, integer *nbmin, doublereal *abstol, - doublereal *reltol, doublereal *pivmin, doublereal *d__, doublereal * - e, doublereal *e2, integer *nval, doublereal *ab, doublereal *c__, - integer *mout, integer *nab, doublereal *work, integer *iwork, - integer *info); - -/* Subroutine */ int dlaed0_(integer *icompq, integer *qsiz, integer *n, - doublereal *d__, doublereal *e, doublereal *q, integer *ldq, - doublereal *qstore, integer *ldqs, doublereal *work, integer *iwork, - integer *info); - -/* Subroutine */ int dlaed1_(integer *n, doublereal *d__, doublereal *q, - integer *ldq, integer *indxq, doublereal *rho, integer *cutpnt, - doublereal *work, integer *iwork, integer *info); - -/* Subroutine */ int dlaed2_(integer *k, integer *n, integer *n1, doublereal * - d__, doublereal *q, integer *ldq, integer *indxq, doublereal *rho, - doublereal *z__, doublereal *dlamda, doublereal *w, doublereal *q2, - integer *indx, integer *indxc, integer *indxp, integer *coltyp, - integer *info); - -/* Subroutine */ int dlaed3_(integer *k, integer *n, integer *n1, doublereal * - d__, doublereal *q, integer *ldq, doublereal *rho, doublereal *dlamda, - doublereal *q2, integer *indx, integer *ctot, doublereal *w, - doublereal *s, integer *info); - -/* Subroutine */ int dlaed4_(integer *n, integer *i__, doublereal *d__, - doublereal *z__, doublereal *delta, doublereal *rho, doublereal *dlam, - integer *info); - -/* Subroutine */ int dlaed5_(integer *i__, doublereal *d__, doublereal *z__, - doublereal *delta, doublereal *rho, doublereal *dlam); - -/* Subroutine */ int dlaed6_(integer *kniter, logical *orgati, doublereal * - rho, doublereal *d__, doublereal *z__, doublereal *finit, doublereal * - tau, integer *info); - -/* Subroutine */ int dlaed7_(integer *icompq, integer *n, integer *qsiz, - integer *tlvls, integer *curlvl, integer *curpbm, doublereal *d__, - doublereal *q, integer *ldq, integer *indxq, doublereal *rho, integer - *cutpnt, doublereal *qstore, integer *qptr, integer *prmptr, integer * - perm, integer *givptr, integer *givcol, doublereal *givnum, - doublereal *work, integer *iwork, integer *info); - -/* Subroutine */ int dlaed8_(integer *icompq, integer *k, integer *n, integer - *qsiz, doublereal *d__, doublereal *q, integer *ldq, integer *indxq, - doublereal *rho, integer *cutpnt, doublereal *z__, doublereal *dlamda, - doublereal *q2, integer *ldq2, doublereal *w, integer *perm, integer - *givptr, integer *givcol, doublereal *givnum, integer *indxp, integer - *indx, integer *info); - -/* Subroutine */ int dlaed9_(integer *k, integer *kstart, integer *kstop, - integer *n, doublereal *d__, doublereal *q, integer *ldq, doublereal * - rho, doublereal *dlamda, doublereal *w, doublereal *s, integer *lds, - integer *info); - -/* Subroutine */ int dlaeda_(integer *n, integer *tlvls, integer *curlvl, - integer *curpbm, integer *prmptr, integer *perm, integer *givptr, - integer *givcol, doublereal *givnum, doublereal *q, integer *qptr, - doublereal *z__, doublereal *ztemp, integer *info); - -/* Subroutine */ int dlaein_(logical *rightv, logical *noinit, integer *n, - doublereal *h__, integer *ldh, doublereal *wr, doublereal *wi, - doublereal *vr, doublereal *vi, doublereal *b, integer *ldb, - doublereal *work, doublereal *eps3, doublereal *smlnum, doublereal * - bignum, integer *info); - -/* Subroutine */ int dlaev2_(doublereal *a, doublereal *b, doublereal *c__, - doublereal *rt1, doublereal *rt2, doublereal *cs1, doublereal *sn1); - -/* Subroutine */ int dlaexc_(logical *wantq, integer *n, doublereal *t, - integer *ldt, doublereal *q, integer *ldq, integer *j1, integer *n1, - integer *n2, doublereal *work, integer *info); - -/* Subroutine */ int dlag2_(doublereal *a, integer *lda, doublereal *b, - integer *ldb, doublereal *safmin, doublereal *scale1, doublereal * - scale2, doublereal *wr1, doublereal *wr2, doublereal *wi); - -/* Subroutine */ int dlags2_(logical *upper, doublereal *a1, doublereal *a2, - doublereal *a3, doublereal *b1, doublereal *b2, doublereal *b3, - doublereal *csu, doublereal *snu, doublereal *csv, doublereal *snv, - doublereal *csq, doublereal *snq); - -/* Subroutine */ int dlagtf_(integer *n, doublereal *a, doublereal *lambda, - doublereal *b, doublereal *c__, doublereal *tol, doublereal *d__, - integer *in, integer *info); - -/* Subroutine */ int dlagtm_(char *trans, integer *n, integer *nrhs, - doublereal *alpha, doublereal *dl, doublereal *d__, doublereal *du, - doublereal *x, integer *ldx, doublereal *beta, doublereal *b, integer - *ldb); - -/* Subroutine */ int dlagts_(integer *job, integer *n, doublereal *a, - doublereal *b, doublereal *c__, doublereal *d__, integer *in, - doublereal *y, doublereal *tol, integer *info); - -/* Subroutine */ int dlagv2_(doublereal *a, integer *lda, doublereal *b, - integer *ldb, doublereal *alphar, doublereal *alphai, doublereal * - beta, doublereal *csl, doublereal *snl, doublereal *csr, doublereal * - snr); - -/* Subroutine */ int dlahqr_(logical *wantt, logical *wantz, integer *n, - integer *ilo, integer *ihi, doublereal *h__, integer *ldh, doublereal - *wr, doublereal *wi, integer *iloz, integer *ihiz, doublereal *z__, - integer *ldz, integer *info); - -/* Subroutine */ int dlahrd_(integer *n, integer *k, integer *nb, doublereal * - a, integer *lda, doublereal *tau, doublereal *t, integer *ldt, - doublereal *y, integer *ldy); - -/* Subroutine */ int dlaic1_(integer *job, integer *j, doublereal *x, - doublereal *sest, doublereal *w, doublereal *gamma, doublereal * - sestpr, doublereal *s, doublereal *c__); - -/* Subroutine */ int dlaln2_(logical *ltrans, integer *na, integer *nw, - doublereal *smin, doublereal *ca, doublereal *a, integer *lda, - doublereal *d1, doublereal *d2, doublereal *b, integer *ldb, - doublereal *wr, doublereal *wi, doublereal *x, integer *ldx, - doublereal *scale, doublereal *xnorm, integer *info); - -/* Subroutine */ int dlals0_(integer *icompq, integer *nl, integer *nr, - integer *sqre, integer *nrhs, doublereal *b, integer *ldb, doublereal - *bx, integer *ldbx, integer *perm, integer *givptr, integer *givcol, - integer *ldgcol, doublereal *givnum, integer *ldgnum, doublereal * - poles, doublereal *difl, doublereal *difr, doublereal *z__, integer * - k, doublereal *c__, doublereal *s, doublereal *work, integer *info); - -/* Subroutine */ int dlalsa_(integer *icompq, integer *smlsiz, integer *n, - integer *nrhs, doublereal *b, integer *ldb, doublereal *bx, integer * - ldbx, doublereal *u, integer *ldu, doublereal *vt, integer *k, - doublereal *difl, doublereal *difr, doublereal *z__, doublereal * - poles, integer *givptr, integer *givcol, integer *ldgcol, integer * - perm, doublereal *givnum, doublereal *c__, doublereal *s, doublereal * - work, integer *iwork, integer *info); - -/* Subroutine */ int dlalsd_(char *uplo, integer *smlsiz, integer *n, integer - *nrhs, doublereal *d__, doublereal *e, doublereal *b, integer *ldb, - doublereal *rcond, integer *rank, doublereal *work, integer *iwork, - integer *info); - -/* Subroutine */ int dlamc1_(integer *beta, integer *t, logical *rnd, logical - *ieee1); - -/* Subroutine */ int dlamc2_(integer *beta, integer *t, logical *rnd, - doublereal *eps, integer *emin, doublereal *rmin, integer *emax, - doublereal *rmax); - -/* Subroutine */ int dlamc4_(integer *emin, doublereal *start, integer *base); - -/* Subroutine */ int dlamc5_(integer *beta, integer *p, integer *emin, - logical *ieee, integer *emax, doublereal *rmax); - -/* Subroutine */ int dlamrg_(integer *n1, integer *n2, doublereal *a, integer - *dtrd1, integer *dtrd2, integer *index); - -/* Subroutine */ int dlanv2_(doublereal *a, doublereal *b, doublereal *c__, - doublereal *d__, doublereal *rt1r, doublereal *rt1i, doublereal *rt2r, - doublereal *rt2i, doublereal *cs, doublereal *sn); - -/* Subroutine */ int dlapll_(integer *n, doublereal *x, integer *incx, - doublereal *y, integer *incy, doublereal *ssmin); - -/* Subroutine */ int dlapmt_(logical *forwrd, integer *m, integer *n, - doublereal *x, integer *ldx, integer *k); - -/* Subroutine */ int dlaqgb_(integer *m, integer *n, integer *kl, integer *ku, - doublereal *ab, integer *ldab, doublereal *r__, doublereal *c__, - doublereal *rowcnd, doublereal *colcnd, doublereal *amax, char *equed); - -/* Subroutine */ int dlaqge_(integer *m, integer *n, doublereal *a, integer * - lda, doublereal *r__, doublereal *c__, doublereal *rowcnd, doublereal - *colcnd, doublereal *amax, char *equed); - -/* Subroutine */ int dlaqp2_(integer *m, integer *n, integer *offset, - doublereal *a, integer *lda, integer *jpvt, doublereal *tau, - doublereal *vn1, doublereal *vn2, doublereal *work); - -/* Subroutine */ int dlaqps_(integer *m, integer *n, integer *offset, integer - *nb, integer *kb, doublereal *a, integer *lda, integer *jpvt, - doublereal *tau, doublereal *vn1, doublereal *vn2, doublereal *auxv, - doublereal *f, integer *ldf); - -/* Subroutine */ int dlaqsb_(char *uplo, integer *n, integer *kd, doublereal * - ab, integer *ldab, doublereal *s, doublereal *scond, doublereal *amax, - char *equed); - -/* Subroutine */ int dlaqsp_(char *uplo, integer *n, doublereal *ap, - doublereal *s, doublereal *scond, doublereal *amax, char *equed); - -/* Subroutine */ int dlaqsy_(char *uplo, integer *n, doublereal *a, integer * - lda, doublereal *s, doublereal *scond, doublereal *amax, char *equed); - -/* Subroutine */ int dlaqtr_(logical *ltran, logical *lreal, integer *n, - doublereal *t, integer *ldt, doublereal *b, doublereal *w, doublereal - *scale, doublereal *x, doublereal *work, integer *info); - -/* Subroutine */ int dlar1v_(integer *n, integer *b1, integer *bn, doublereal - *sigma, doublereal *d__, doublereal *l, doublereal *ld, doublereal * - lld, doublereal *gersch, doublereal *z__, doublereal *ztz, doublereal - *mingma, integer *r__, integer *isuppz, doublereal *work); - -/* Subroutine */ int dlar2v_(integer *n, doublereal *x, doublereal *y, - doublereal *z__, integer *incx, doublereal *c__, doublereal *s, - integer *incc); - -/* Subroutine */ int dlarf_(char *side, integer *m, integer *n, doublereal *v, - integer *incv, doublereal *tau, doublereal *c__, integer *ldc, - doublereal *work); - -/* Subroutine */ int dlarfb_(char *side, char *trans, char *direct, char * - storev, integer *m, integer *n, integer *k, doublereal *v, integer * - ldv, doublereal *t, integer *ldt, doublereal *c__, integer *ldc, - doublereal *work, integer *ldwork); - -/* Subroutine */ int dlarfg_(integer *n, doublereal *alpha, doublereal *x, - integer *incx, doublereal *tau); - -/* Subroutine */ int dlarft_(char *direct, char *storev, integer *n, integer * - k, doublereal *v, integer *ldv, doublereal *tau, doublereal *t, - integer *ldt); - -/* Subroutine */ int dlarfx_(char *side, integer *m, integer *n, doublereal * - v, doublereal *tau, doublereal *c__, integer *ldc, doublereal *work); - -/* Subroutine */ int dlargv_(integer *n, doublereal *x, integer *incx, - doublereal *y, integer *incy, doublereal *c__, integer *incc); - -/* Subroutine */ int dlarnv_(integer *idist, integer *iseed, integer *n, - doublereal *x); - -/* Subroutine */ int dlarrb_(integer *n, doublereal *d__, doublereal *l, - doublereal *ld, doublereal *lld, integer *ifirst, integer *ilast, - doublereal *sigma, doublereal *reltol, doublereal *w, doublereal * - wgap, doublereal *werr, doublereal *work, integer *iwork, integer * - info); - -/* Subroutine */ int dlarre_(integer *n, doublereal *d__, doublereal *e, - doublereal *tol, integer *nsplit, integer *isplit, integer *m, - doublereal *w, doublereal *woff, doublereal *gersch, doublereal *work, - integer *info); - -/* Subroutine */ int dlarrf_(integer *n, doublereal *d__, doublereal *l, - doublereal *ld, doublereal *lld, integer *ifirst, integer *ilast, - doublereal *w, doublereal *dplus, doublereal *lplus, doublereal *work, - integer *iwork, integer *info); - -/* Subroutine */ int dlarrv_(integer *n, doublereal *d__, doublereal *l, - integer *isplit, integer *m, doublereal *w, integer *iblock, - doublereal *gersch, doublereal *tol, doublereal *z__, integer *ldz, - integer *isuppz, doublereal *work, integer *iwork, integer *info); - -/* Subroutine */ int dlartg_(doublereal *f, doublereal *g, doublereal *cs, - doublereal *sn, doublereal *r__); - -/* Subroutine */ int dlartv_(integer *n, doublereal *x, integer *incx, - doublereal *y, integer *incy, doublereal *c__, doublereal *s, integer - *incc); - -/* Subroutine */ int dlaruv_(integer *iseed, integer *n, doublereal *x); - -/* Subroutine */ int dlarz_(char *side, integer *m, integer *n, integer *l, - doublereal *v, integer *incv, doublereal *tau, doublereal *c__, - integer *ldc, doublereal *work); - -/* Subroutine */ int dlarzb_(char *side, char *trans, char *direct, char * - storev, integer *m, integer *n, integer *k, integer *l, doublereal *v, - integer *ldv, doublereal *t, integer *ldt, doublereal *c__, integer * - ldc, doublereal *work, integer *ldwork); - -/* Subroutine */ int dlarzt_(char *direct, char *storev, integer *n, integer * - k, doublereal *v, integer *ldv, doublereal *tau, doublereal *t, - integer *ldt); - -/* Subroutine */ int dlas2_(doublereal *f, doublereal *g, doublereal *h__, - doublereal *ssmin, doublereal *ssmax); - -/* Subroutine */ int dlascl_(char *type__, integer *kl, integer *ku, - doublereal *cfrom, doublereal *cto, integer *m, integer *n, - doublereal *a, integer *lda, integer *info); - -/* Subroutine */ int dlasd0_(integer *n, integer *sqre, doublereal *d__, - doublereal *e, doublereal *u, integer *ldu, doublereal *vt, integer * - ldvt, integer *smlsiz, integer *iwork, doublereal *work, integer * - info); - -/* Subroutine */ int dlasd1_(integer *nl, integer *nr, integer *sqre, - doublereal *d__, doublereal *alpha, doublereal *beta, doublereal *u, - integer *ldu, doublereal *vt, integer *ldvt, integer *idxq, integer * - iwork, doublereal *work, integer *info); - -/* Subroutine */ int dlasd2_(integer *nl, integer *nr, integer *sqre, integer - *k, doublereal *d__, doublereal *z__, doublereal *alpha, doublereal * - beta, doublereal *u, integer *ldu, doublereal *vt, integer *ldvt, - doublereal *dsigma, doublereal *u2, integer *ldu2, doublereal *vt2, - integer *ldvt2, integer *idxp, integer *idx, integer *idxc, integer * - idxq, integer *coltyp, integer *info); - -/* Subroutine */ int dlasd3_(integer *nl, integer *nr, integer *sqre, integer - *k, doublereal *d__, doublereal *q, integer *ldq, doublereal *dsigma, - doublereal *u, integer *ldu, doublereal *u2, integer *ldu2, - doublereal *vt, integer *ldvt, doublereal *vt2, integer *ldvt2, - integer *idxc, integer *ctot, doublereal *z__, integer *info); - -/* Subroutine */ int dlasd4_(integer *n, integer *i__, doublereal *d__, - doublereal *z__, doublereal *delta, doublereal *rho, doublereal * - sigma, doublereal *work, integer *info); - -/* Subroutine */ int dlasd5_(integer *i__, doublereal *d__, doublereal *z__, - doublereal *delta, doublereal *rho, doublereal *dsigma, doublereal * - work); - -/* Subroutine */ int dlasd6_(integer *icompq, integer *nl, integer *nr, - integer *sqre, doublereal *d__, doublereal *vf, doublereal *vl, - doublereal *alpha, doublereal *beta, integer *idxq, integer *perm, - integer *givptr, integer *givcol, integer *ldgcol, doublereal *givnum, - integer *ldgnum, doublereal *poles, doublereal *difl, doublereal * - difr, doublereal *z__, integer *k, doublereal *c__, doublereal *s, - doublereal *work, integer *iwork, integer *info); - -/* Subroutine */ int dlasd7_(integer *icompq, integer *nl, integer *nr, - integer *sqre, integer *k, doublereal *d__, doublereal *z__, - doublereal *zw, doublereal *vf, doublereal *vfw, doublereal *vl, - doublereal *vlw, doublereal *alpha, doublereal *beta, doublereal * - dsigma, integer *idx, integer *idxp, integer *idxq, integer *perm, - integer *givptr, integer *givcol, integer *ldgcol, doublereal *givnum, - integer *ldgnum, doublereal *c__, doublereal *s, integer *info); - -/* Subroutine */ int dlasd8_(integer *icompq, integer *k, doublereal *d__, - doublereal *z__, doublereal *vf, doublereal *vl, doublereal *difl, - doublereal *difr, integer *lddifr, doublereal *dsigma, doublereal * - work, integer *info); - -/* Subroutine */ int dlasd9_(integer *icompq, integer *ldu, integer *k, - doublereal *d__, doublereal *z__, doublereal *vf, doublereal *vl, - doublereal *difl, doublereal *difr, doublereal *dsigma, doublereal * - work, integer *info); - -/* Subroutine */ int dlasda_(integer *icompq, integer *smlsiz, integer *n, - integer *sqre, doublereal *d__, doublereal *e, doublereal *u, integer - *ldu, doublereal *vt, integer *k, doublereal *difl, doublereal *difr, - doublereal *z__, doublereal *poles, integer *givptr, integer *givcol, - integer *ldgcol, integer *perm, doublereal *givnum, doublereal *c__, - doublereal *s, doublereal *work, integer *iwork, integer *info); - -/* Subroutine */ int dlasdq_(char *uplo, integer *sqre, integer *n, integer * - ncvt, integer *nru, integer *ncc, doublereal *d__, doublereal *e, - doublereal *vt, integer *ldvt, doublereal *u, integer *ldu, - doublereal *c__, integer *ldc, doublereal *work, integer *info); - -/* Subroutine */ int dlasdt_(integer *n, integer *lvl, integer *nd, integer * - inode, integer *ndiml, integer *ndimr, integer *msub); - -/* Subroutine */ int dlaset_(char *uplo, integer *m, integer *n, doublereal * - alpha, doublereal *beta, doublereal *a, integer *lda); - -/* Subroutine */ int dlasq1_(integer *n, doublereal *d__, doublereal *e, - doublereal *work, integer *info); - -/* Subroutine */ int dlasq2_(integer *n, doublereal *z__, integer *info); - -/* Subroutine */ int dlasq3_(integer *i0, integer *n0, doublereal *z__, - integer *pp, doublereal *dmin__, doublereal *sigma, doublereal *desig, - doublereal *qmax, integer *nfail, integer *iter, integer *ndiv, - logical *ieee); - -/* Subroutine */ int dlasq4_(integer *i0, integer *n0, doublereal *z__, - integer *pp, integer *n0in, doublereal *dmin__, doublereal *dmin1, - doublereal *dmin2, doublereal *dn, doublereal *dn1, doublereal *dn2, - doublereal *tau, integer *ttype); - -/* Subroutine */ int dlasq5_(integer *i0, integer *n0, doublereal *z__, - integer *pp, doublereal *tau, doublereal *dmin__, doublereal *dmin1, - doublereal *dmin2, doublereal *dn, doublereal *dnm1, doublereal *dnm2, - logical *ieee); - -/* Subroutine */ int dlasq6_(integer *i0, integer *n0, doublereal *z__, - integer *pp, doublereal *dmin__, doublereal *dmin1, doublereal *dmin2, - doublereal *dn, doublereal *dnm1, doublereal *dnm2); - -/* Subroutine */ int dlasr_(char *side, char *pivot, char *direct, integer *m, - integer *n, doublereal *c__, doublereal *s, doublereal *a, integer * - lda); - -/* Subroutine */ int dlasrt_(char *id, integer *n, doublereal *d__, integer * - info); - -/* Subroutine */ int dlassq_(integer *n, doublereal *x, integer *incx, - doublereal *scale, doublereal *sumsq); - -/* Subroutine */ int dlasv2_(doublereal *f, doublereal *g, doublereal *h__, - doublereal *ssmin, doublereal *ssmax, doublereal *snr, doublereal * - csr, doublereal *snl, doublereal *csl); - -/* Subroutine */ int dlaswp_(integer *n, doublereal *a, integer *lda, integer - *k1, integer *k2, integer *ipiv, integer *incx); - -/* Subroutine */ int dlasy2_(logical *ltranl, logical *ltranr, integer *isgn, - integer *n1, integer *n2, doublereal *tl, integer *ldtl, doublereal * - tr, integer *ldtr, doublereal *b, integer *ldb, doublereal *scale, - doublereal *x, integer *ldx, doublereal *xnorm, integer *info); - -/* Subroutine */ int dlasyf_(char *uplo, integer *n, integer *nb, integer *kb, - doublereal *a, integer *lda, integer *ipiv, doublereal *w, integer * - ldw, integer *info); - -/* Subroutine */ int dlatbs_(char *uplo, char *trans, char *diag, char * - normin, integer *n, integer *kd, doublereal *ab, integer *ldab, - doublereal *x, doublereal *scale, doublereal *cnorm, integer *info); - -/* Subroutine */ int dlatdf_(integer *ijob, integer *n, doublereal *z__, - integer *ldz, doublereal *rhs, doublereal *rdsum, doublereal *rdscal, - integer *ipiv, integer *jpiv); - -/* Subroutine */ int dlatps_(char *uplo, char *trans, char *diag, char * - normin, integer *n, doublereal *ap, doublereal *x, doublereal *scale, - doublereal *cnorm, integer *info); - -/* Subroutine */ int dlatrd_(char *uplo, integer *n, integer *nb, doublereal * - a, integer *lda, doublereal *e, doublereal *tau, doublereal *w, - integer *ldw); - -/* Subroutine */ int dlatrs_(char *uplo, char *trans, char *diag, char * - normin, integer *n, doublereal *a, integer *lda, doublereal *x, - doublereal *scale, doublereal *cnorm, integer *info); - -/* Subroutine */ int dlatrz_(integer *m, integer *n, integer *l, doublereal * - a, integer *lda, doublereal *tau, doublereal *work); - -/* Subroutine */ int dlatzm_(char *side, integer *m, integer *n, doublereal * - v, integer *incv, doublereal *tau, doublereal *c1, doublereal *c2, - integer *ldc, doublereal *work); - -/* Subroutine */ int dlauu2_(char *uplo, integer *n, doublereal *a, integer * - lda, integer *info); - -/* Subroutine */ int dlauum_(char *uplo, integer *n, doublereal *a, integer * - lda, integer *info); - -/* Subroutine */ int dopgtr_(char *uplo, integer *n, doublereal *ap, - doublereal *tau, doublereal *q, integer *ldq, doublereal *work, - integer *info); - -/* Subroutine */ int dopmtr_(char *side, char *uplo, char *trans, integer *m, - integer *n, doublereal *ap, doublereal *tau, doublereal *c__, integer - *ldc, doublereal *work, integer *info); - -/* Subroutine */ int dorg2l_(integer *m, integer *n, integer *k, doublereal * - a, integer *lda, doublereal *tau, doublereal *work, integer *info); - -/* Subroutine */ int dorg2r_(integer *m, integer *n, integer *k, doublereal * - a, integer *lda, doublereal *tau, doublereal *work, integer *info); - -/* Subroutine */ int dorgbr_(char *vect, integer *m, integer *n, integer *k, - doublereal *a, integer *lda, doublereal *tau, doublereal *work, - integer *lwork, integer *info); - -/* Subroutine */ int dorghr_(integer *n, integer *ilo, integer *ihi, - doublereal *a, integer *lda, doublereal *tau, doublereal *work, - integer *lwork, integer *info); - -/* Subroutine */ int dorgl2_(integer *m, integer *n, integer *k, doublereal * - a, integer *lda, doublereal *tau, doublereal *work, integer *info); - -/* Subroutine */ int dorglq_(integer *m, integer *n, integer *k, doublereal * - a, integer *lda, doublereal *tau, doublereal *work, integer *lwork, - integer *info); - -/* Subroutine */ int dorgql_(integer *m, integer *n, integer *k, doublereal * - a, integer *lda, doublereal *tau, doublereal *work, integer *lwork, - integer *info); - -/* Subroutine */ int dorgqr_(integer *m, integer *n, integer *k, doublereal * - a, integer *lda, doublereal *tau, doublereal *work, integer *lwork, - integer *info); - -/* Subroutine */ int dorgr2_(integer *m, integer *n, integer *k, doublereal * - a, integer *lda, doublereal *tau, doublereal *work, integer *info); - -/* Subroutine */ int dorgrq_(integer *m, integer *n, integer *k, doublereal * - a, integer *lda, doublereal *tau, doublereal *work, integer *lwork, - integer *info); - -/* Subroutine */ int dorgtr_(char *uplo, integer *n, doublereal *a, integer * - lda, doublereal *tau, doublereal *work, integer *lwork, integer *info); - -/* Subroutine */ int dorm2l_(char *side, char *trans, integer *m, integer *n, - integer *k, doublereal *a, integer *lda, doublereal *tau, doublereal * - c__, integer *ldc, doublereal *work, integer *info); - -/* Subroutine */ int dorm2r_(char *side, char *trans, integer *m, integer *n, - integer *k, doublereal *a, integer *lda, doublereal *tau, doublereal * - c__, integer *ldc, doublereal *work, integer *info); - -/* Subroutine */ int dormbr_(char *vect, char *side, char *trans, integer *m, - integer *n, integer *k, doublereal *a, integer *lda, doublereal *tau, - doublereal *c__, integer *ldc, doublereal *work, integer *lwork, - integer *info); - -/* Subroutine */ int dormhr_(char *side, char *trans, integer *m, integer *n, - integer *ilo, integer *ihi, doublereal *a, integer *lda, doublereal * - tau, doublereal *c__, integer *ldc, doublereal *work, integer *lwork, - integer *info); - -/* Subroutine */ int dorml2_(char *side, char *trans, integer *m, integer *n, - integer *k, doublereal *a, integer *lda, doublereal *tau, doublereal * - c__, integer *ldc, doublereal *work, integer *info); - -/* Subroutine */ int dormlq_(char *side, char *trans, integer *m, integer *n, - integer *k, doublereal *a, integer *lda, doublereal *tau, doublereal * - c__, integer *ldc, doublereal *work, integer *lwork, integer *info); - -/* Subroutine */ int dormql_(char *side, char *trans, integer *m, integer *n, - integer *k, doublereal *a, integer *lda, doublereal *tau, doublereal * - c__, integer *ldc, doublereal *work, integer *lwork, integer *info); - -/* Subroutine */ int dormqr_(char *side, char *trans, integer *m, integer *n, - integer *k, doublereal *a, integer *lda, doublereal *tau, doublereal * - c__, integer *ldc, doublereal *work, integer *lwork, integer *info); - -/* Subroutine */ int dormr2_(char *side, char *trans, integer *m, integer *n, - integer *k, doublereal *a, integer *lda, doublereal *tau, doublereal * - c__, integer *ldc, doublereal *work, integer *info); - -/* Subroutine */ int dormr3_(char *side, char *trans, integer *m, integer *n, - integer *k, integer *l, doublereal *a, integer *lda, doublereal *tau, - doublereal *c__, integer *ldc, doublereal *work, integer *info); - -/* Subroutine */ int dormrq_(char *side, char *trans, integer *m, integer *n, - integer *k, doublereal *a, integer *lda, doublereal *tau, doublereal * - c__, integer *ldc, doublereal *work, integer *lwork, integer *info); - -/* Subroutine */ int dormrz_(char *side, char *trans, integer *m, integer *n, - integer *k, integer *l, doublereal *a, integer *lda, doublereal *tau, - doublereal *c__, integer *ldc, doublereal *work, integer *lwork, - integer *info); - -/* Subroutine */ int dormtr_(char *side, char *uplo, char *trans, integer *m, - integer *n, doublereal *a, integer *lda, doublereal *tau, doublereal * - c__, integer *ldc, doublereal *work, integer *lwork, integer *info); - -/* Subroutine */ int dpbcon_(char *uplo, integer *n, integer *kd, doublereal * - ab, integer *ldab, doublereal *anorm, doublereal *rcond, doublereal * - work, integer *iwork, integer *info); - -/* Subroutine */ int dpbequ_(char *uplo, integer *n, integer *kd, doublereal * - ab, integer *ldab, doublereal *s, doublereal *scond, doublereal *amax, - integer *info); - -/* Subroutine */ int dpbrfs_(char *uplo, integer *n, integer *kd, integer * - nrhs, doublereal *ab, integer *ldab, doublereal *afb, integer *ldafb, - doublereal *b, integer *ldb, doublereal *x, integer *ldx, doublereal * - ferr, doublereal *berr, doublereal *work, integer *iwork, integer * - info); - -/* Subroutine */ int dpbstf_(char *uplo, integer *n, integer *kd, doublereal * - ab, integer *ldab, integer *info); - -/* Subroutine */ int dpbsv_(char *uplo, integer *n, integer *kd, integer * - nrhs, doublereal *ab, integer *ldab, doublereal *b, integer *ldb, - integer *info); - -/* Subroutine */ int dpbsvx_(char *fact, char *uplo, integer *n, integer *kd, - integer *nrhs, doublereal *ab, integer *ldab, doublereal *afb, - integer *ldafb, char *equed, doublereal *s, doublereal *b, integer * - ldb, doublereal *x, integer *ldx, doublereal *rcond, doublereal *ferr, - doublereal *berr, doublereal *work, integer *iwork, integer *info); - -/* Subroutine */ int dpbtf2_(char *uplo, integer *n, integer *kd, doublereal * - ab, integer *ldab, integer *info); - -/* Subroutine */ int dpbtrf_(char *uplo, integer *n, integer *kd, doublereal * - ab, integer *ldab, integer *info); - -/* Subroutine */ int dpbtrs_(char *uplo, integer *n, integer *kd, integer * - nrhs, doublereal *ab, integer *ldab, doublereal *b, integer *ldb, - integer *info); - -/* Subroutine */ int dpocon_(char *uplo, integer *n, doublereal *a, integer * - lda, doublereal *anorm, doublereal *rcond, doublereal *work, integer * - iwork, integer *info); - -/* Subroutine */ int dpoequ_(integer *n, doublereal *a, integer *lda, - doublereal *s, doublereal *scond, doublereal *amax, integer *info); - -/* Subroutine */ int dporfs_(char *uplo, integer *n, integer *nrhs, - doublereal *a, integer *lda, doublereal *af, integer *ldaf, - doublereal *b, integer *ldb, doublereal *x, integer *ldx, doublereal * - ferr, doublereal *berr, doublereal *work, integer *iwork, integer * - info); - -/* Subroutine */ int dposv_(char *uplo, integer *n, integer *nrhs, doublereal - *a, integer *lda, doublereal *b, integer *ldb, integer *info); - -/* Subroutine */ int dposvx_(char *fact, char *uplo, integer *n, integer * - nrhs, doublereal *a, integer *lda, doublereal *af, integer *ldaf, - char *equed, doublereal *s, doublereal *b, integer *ldb, doublereal * - x, integer *ldx, doublereal *rcond, doublereal *ferr, doublereal * - berr, doublereal *work, integer *iwork, integer *info); - -/* Subroutine */ int dpotf2_(char *uplo, integer *n, doublereal *a, integer * - lda, integer *info); - -/* Subroutine */ int dpotrf_(char *uplo, integer *n, doublereal *a, integer * - lda, integer *info); - -/* Subroutine */ int dpotri_(char *uplo, integer *n, doublereal *a, integer * - lda, integer *info); - -/* Subroutine */ int dpotrs_(char *uplo, integer *n, integer *nrhs, - doublereal *a, integer *lda, doublereal *b, integer *ldb, integer * - info); - -/* Subroutine */ int dppcon_(char *uplo, integer *n, doublereal *ap, - doublereal *anorm, doublereal *rcond, doublereal *work, integer * - iwork, integer *info); - -/* Subroutine */ int dppequ_(char *uplo, integer *n, doublereal *ap, - doublereal *s, doublereal *scond, doublereal *amax, integer *info); - -/* Subroutine */ int dpprfs_(char *uplo, integer *n, integer *nrhs, - doublereal *ap, doublereal *afp, doublereal *b, integer *ldb, - doublereal *x, integer *ldx, doublereal *ferr, doublereal *berr, - doublereal *work, integer *iwork, integer *info); - -/* Subroutine */ int dppsv_(char *uplo, integer *n, integer *nrhs, doublereal - *ap, doublereal *b, integer *ldb, integer *info); - -/* Subroutine */ int dppsvx_(char *fact, char *uplo, integer *n, integer * - nrhs, doublereal *ap, doublereal *afp, char *equed, doublereal *s, - doublereal *b, integer *ldb, doublereal *x, integer *ldx, doublereal * - rcond, doublereal *ferr, doublereal *berr, doublereal *work, integer * - iwork, integer *info); - -/* Subroutine */ int dpptrf_(char *uplo, integer *n, doublereal *ap, integer * - info); - -/* Subroutine */ int dpptri_(char *uplo, integer *n, doublereal *ap, integer * - info); - -/* Subroutine */ int dpptrs_(char *uplo, integer *n, integer *nrhs, - doublereal *ap, doublereal *b, integer *ldb, integer *info); - -/* Subroutine */ int dptcon_(integer *n, doublereal *d__, doublereal *e, - doublereal *anorm, doublereal *rcond, doublereal *work, integer *info); - -/* Subroutine */ int dpteqr_(char *compz, integer *n, doublereal *d__, - doublereal *e, doublereal *z__, integer *ldz, doublereal *work, - integer *info); - -/* Subroutine */ int dptrfs_(integer *n, integer *nrhs, doublereal *d__, - doublereal *e, doublereal *df, doublereal *ef, doublereal *b, integer - *ldb, doublereal *x, integer *ldx, doublereal *ferr, doublereal *berr, - doublereal *work, integer *info); - -/* Subroutine */ int dptsv_(integer *n, integer *nrhs, doublereal *d__, - doublereal *e, doublereal *b, integer *ldb, integer *info); - -/* Subroutine */ int dptsvx_(char *fact, integer *n, integer *nrhs, - doublereal *d__, doublereal *e, doublereal *df, doublereal *ef, - doublereal *b, integer *ldb, doublereal *x, integer *ldx, doublereal * - rcond, doublereal *ferr, doublereal *berr, doublereal *work, integer * - info); - -/* Subroutine */ int dpttrf_(integer *n, doublereal *d__, doublereal *e, - integer *info); - -/* Subroutine */ int dpttrs_(integer *n, integer *nrhs, doublereal *d__, - doublereal *e, doublereal *b, integer *ldb, integer *info); - -/* Subroutine */ int dptts2_(integer *n, integer *nrhs, doublereal *d__, - doublereal *e, doublereal *b, integer *ldb); - -/* Subroutine */ int drscl_(integer *n, doublereal *sa, doublereal *sx, - integer *incx); - -/* Subroutine */ int dsbev_(char *jobz, char *uplo, integer *n, integer *kd, - doublereal *ab, integer *ldab, doublereal *w, doublereal *z__, - integer *ldz, doublereal *work, integer *info); - -/* Subroutine */ int dsbevd_(char *jobz, char *uplo, integer *n, integer *kd, - doublereal *ab, integer *ldab, doublereal *w, doublereal *z__, - integer *ldz, doublereal *work, integer *lwork, integer *iwork, - integer *liwork, integer *info); - -/* Subroutine */ int dsbevx_(char *jobz, char *range, char *uplo, integer *n, - integer *kd, doublereal *ab, integer *ldab, doublereal *q, integer * - ldq, doublereal *vl, doublereal *vu, integer *il, integer *iu, - doublereal *abstol, integer *m, doublereal *w, doublereal *z__, - integer *ldz, doublereal *work, integer *iwork, integer *ifail, - integer *info); - -/* Subroutine */ int dsbgst_(char *vect, char *uplo, integer *n, integer *ka, - integer *kb, doublereal *ab, integer *ldab, doublereal *bb, integer * - ldbb, doublereal *x, integer *ldx, doublereal *work, integer *info); - -/* Subroutine */ int dsbgv_(char *jobz, char *uplo, integer *n, integer *ka, - integer *kb, doublereal *ab, integer *ldab, doublereal *bb, integer * - ldbb, doublereal *w, doublereal *z__, integer *ldz, doublereal *work, - integer *info); - -/* Subroutine */ int dsbgvd_(char *jobz, char *uplo, integer *n, integer *ka, - integer *kb, doublereal *ab, integer *ldab, doublereal *bb, integer * - ldbb, doublereal *w, doublereal *z__, integer *ldz, doublereal *work, - integer *lwork, integer *iwork, integer *liwork, integer *info); - -/* Subroutine */ int dsbgvx_(char *jobz, char *range, char *uplo, integer *n, - integer *ka, integer *kb, doublereal *ab, integer *ldab, doublereal * - bb, integer *ldbb, doublereal *q, integer *ldq, doublereal *vl, - doublereal *vu, integer *il, integer *iu, doublereal *abstol, integer - *m, doublereal *w, doublereal *z__, integer *ldz, doublereal *work, - integer *iwork, integer *ifail, integer *info); - -/* Subroutine */ int dsbtrd_(char *vect, char *uplo, integer *n, integer *kd, - doublereal *ab, integer *ldab, doublereal *d__, doublereal *e, - doublereal *q, integer *ldq, doublereal *work, integer *info); - -/* Subroutine */ int dspcon_(char *uplo, integer *n, doublereal *ap, integer * - ipiv, doublereal *anorm, doublereal *rcond, doublereal *work, integer - *iwork, integer *info); - -/* Subroutine */ int dspev_(char *jobz, char *uplo, integer *n, doublereal * - ap, doublereal *w, doublereal *z__, integer *ldz, doublereal *work, - integer *info); - -/* Subroutine */ int dspevd_(char *jobz, char *uplo, integer *n, doublereal * - ap, doublereal *w, doublereal *z__, integer *ldz, doublereal *work, - integer *lwork, integer *iwork, integer *liwork, integer *info); - -/* Subroutine */ int dspevx_(char *jobz, char *range, char *uplo, integer *n, - doublereal *ap, doublereal *vl, doublereal *vu, integer *il, integer * - iu, doublereal *abstol, integer *m, doublereal *w, doublereal *z__, - integer *ldz, doublereal *work, integer *iwork, integer *ifail, - integer *info); - -/* Subroutine */ int dspgst_(integer *itype, char *uplo, integer *n, - doublereal *ap, doublereal *bp, integer *info); - -/* Subroutine */ int dspgv_(integer *itype, char *jobz, char *uplo, integer * - n, doublereal *ap, doublereal *bp, doublereal *w, doublereal *z__, - integer *ldz, doublereal *work, integer *info); - -/* Subroutine */ int dspgvd_(integer *itype, char *jobz, char *uplo, integer * - n, doublereal *ap, doublereal *bp, doublereal *w, doublereal *z__, - integer *ldz, doublereal *work, integer *lwork, integer *iwork, - integer *liwork, integer *info); - -/* Subroutine */ int dspgvx_(integer *itype, char *jobz, char *range, char * - uplo, integer *n, doublereal *ap, doublereal *bp, doublereal *vl, - doublereal *vu, integer *il, integer *iu, doublereal *abstol, integer - *m, doublereal *w, doublereal *z__, integer *ldz, doublereal *work, - integer *iwork, integer *ifail, integer *info); - -/* Subroutine */ int dsprfs_(char *uplo, integer *n, integer *nrhs, - doublereal *ap, doublereal *afp, integer *ipiv, doublereal *b, - integer *ldb, doublereal *x, integer *ldx, doublereal *ferr, - doublereal *berr, doublereal *work, integer *iwork, integer *info); - -/* Subroutine */ int dspsv_(char *uplo, integer *n, integer *nrhs, doublereal - *ap, integer *ipiv, doublereal *b, integer *ldb, integer *info); - -/* Subroutine */ int dspsvx_(char *fact, char *uplo, integer *n, integer * - nrhs, doublereal *ap, doublereal *afp, integer *ipiv, doublereal *b, - integer *ldb, doublereal *x, integer *ldx, doublereal *rcond, - doublereal *ferr, doublereal *berr, doublereal *work, integer *iwork, - integer *info); - -/* Subroutine */ int dsptrd_(char *uplo, integer *n, doublereal *ap, - doublereal *d__, doublereal *e, doublereal *tau, integer *info); - -/* Subroutine */ int dsptrf_(char *uplo, integer *n, doublereal *ap, integer * - ipiv, integer *info); - -/* Subroutine */ int dsptri_(char *uplo, integer *n, doublereal *ap, integer * - ipiv, doublereal *work, integer *info); - -/* Subroutine */ int dsptrs_(char *uplo, integer *n, integer *nrhs, - doublereal *ap, integer *ipiv, doublereal *b, integer *ldb, integer * - info); - -/* Subroutine */ int dstebz_(char *range, char *order, integer *n, doublereal - *vl, doublereal *vu, integer *il, integer *iu, doublereal *abstol, - doublereal *d__, doublereal *e, integer *m, integer *nsplit, - doublereal *w, integer *iblock, integer *isplit, doublereal *work, - integer *iwork, integer *info); - -/* Subroutine */ int dstedc_(char *compz, integer *n, doublereal *d__, - doublereal *e, doublereal *z__, integer *ldz, doublereal *work, - integer *lwork, integer *iwork, integer *liwork, integer *info); - -/* Subroutine */ int dstegr_(char *jobz, char *range, integer *n, doublereal * - d__, doublereal *e, doublereal *vl, doublereal *vu, integer *il, - integer *iu, doublereal *abstol, integer *m, doublereal *w, - doublereal *z__, integer *ldz, integer *isuppz, doublereal *work, - integer *lwork, integer *iwork, integer *liwork, integer *info); - -/* Subroutine */ int dstein_(integer *n, doublereal *d__, doublereal *e, - integer *m, doublereal *w, integer *iblock, integer *isplit, - doublereal *z__, integer *ldz, doublereal *work, integer *iwork, - integer *ifail, integer *info); - -/* Subroutine */ int dsteqr_(char *compz, integer *n, doublereal *d__, - doublereal *e, doublereal *z__, integer *ldz, doublereal *work, - integer *info); - -/* Subroutine */ int dsterf_(integer *n, doublereal *d__, doublereal *e, - integer *info); - -/* Subroutine */ int dstev_(char *jobz, integer *n, doublereal *d__, - doublereal *e, doublereal *z__, integer *ldz, doublereal *work, - integer *info); - -/* Subroutine */ int dstevd_(char *jobz, integer *n, doublereal *d__, - doublereal *e, doublereal *z__, integer *ldz, doublereal *work, - integer *lwork, integer *iwork, integer *liwork, integer *info); - -/* Subroutine */ int dstevr_(char *jobz, char *range, integer *n, doublereal * - d__, doublereal *e, doublereal *vl, doublereal *vu, integer *il, - integer *iu, doublereal *abstol, integer *m, doublereal *w, - doublereal *z__, integer *ldz, integer *isuppz, doublereal *work, - integer *lwork, integer *iwork, integer *liwork, integer *info); - -/* Subroutine */ int dstevx_(char *jobz, char *range, integer *n, doublereal * - d__, doublereal *e, doublereal *vl, doublereal *vu, integer *il, - integer *iu, doublereal *abstol, integer *m, doublereal *w, - doublereal *z__, integer *ldz, doublereal *work, integer *iwork, - integer *ifail, integer *info); - -/* Subroutine */ int dsycon_(char *uplo, integer *n, doublereal *a, integer * - lda, integer *ipiv, doublereal *anorm, doublereal *rcond, doublereal * - work, integer *iwork, integer *info); - -/* Subroutine */ int dsyev_(char *jobz, char *uplo, integer *n, doublereal *a, - integer *lda, doublereal *w, doublereal *work, integer *lwork, - integer *info); - -/* Subroutine */ int dsyevd_(char *jobz, char *uplo, integer *n, doublereal * - a, integer *lda, doublereal *w, doublereal *work, integer *lwork, - integer *iwork, integer *liwork, integer *info); - -/* Subroutine */ int dsyevr_(char *jobz, char *range, char *uplo, integer *n, - doublereal *a, integer *lda, doublereal *vl, doublereal *vu, integer * - il, integer *iu, doublereal *abstol, integer *m, doublereal *w, - doublereal *z__, integer *ldz, integer *isuppz, doublereal *work, - integer *lwork, integer *iwork, integer *liwork, integer *info); - -/* Subroutine */ int dsyevx_(char *jobz, char *range, char *uplo, integer *n, - doublereal *a, integer *lda, doublereal *vl, doublereal *vu, integer * - il, integer *iu, doublereal *abstol, integer *m, doublereal *w, - doublereal *z__, integer *ldz, doublereal *work, integer *lwork, - integer *iwork, integer *ifail, integer *info); - -/* Subroutine */ int dsygs2_(integer *itype, char *uplo, integer *n, - doublereal *a, integer *lda, doublereal *b, integer *ldb, integer * - info); - -/* Subroutine */ int dsygst_(integer *itype, char *uplo, integer *n, - doublereal *a, integer *lda, doublereal *b, integer *ldb, integer * - info); - -/* Subroutine */ int dsygv_(integer *itype, char *jobz, char *uplo, integer * - n, doublereal *a, integer *lda, doublereal *b, integer *ldb, - doublereal *w, doublereal *work, integer *lwork, integer *info); - -/* Subroutine */ int dsygvd_(integer *itype, char *jobz, char *uplo, integer * - n, doublereal *a, integer *lda, doublereal *b, integer *ldb, - doublereal *w, doublereal *work, integer *lwork, integer *iwork, - integer *liwork, integer *info); - -/* Subroutine */ int dsygvx_(integer *itype, char *jobz, char *range, char * - uplo, integer *n, doublereal *a, integer *lda, doublereal *b, integer - *ldb, doublereal *vl, doublereal *vu, integer *il, integer *iu, - doublereal *abstol, integer *m, doublereal *w, doublereal *z__, - integer *ldz, doublereal *work, integer *lwork, integer *iwork, - integer *ifail, integer *info); - -/* Subroutine */ int dsyrfs_(char *uplo, integer *n, integer *nrhs, - doublereal *a, integer *lda, doublereal *af, integer *ldaf, integer * - ipiv, doublereal *b, integer *ldb, doublereal *x, integer *ldx, - doublereal *ferr, doublereal *berr, doublereal *work, integer *iwork, - integer *info); - -/* Subroutine */ int dsysv_(char *uplo, integer *n, integer *nrhs, doublereal - *a, integer *lda, integer *ipiv, doublereal *b, integer *ldb, - doublereal *work, integer *lwork, integer *info); - -/* Subroutine */ int dsysvx_(char *fact, char *uplo, integer *n, integer * - nrhs, doublereal *a, integer *lda, doublereal *af, integer *ldaf, - integer *ipiv, doublereal *b, integer *ldb, doublereal *x, integer * - ldx, doublereal *rcond, doublereal *ferr, doublereal *berr, - doublereal *work, integer *lwork, integer *iwork, integer *info); - -/* Subroutine */ int dsytd2_(char *uplo, integer *n, doublereal *a, integer * - lda, doublereal *d__, doublereal *e, doublereal *tau, integer *info); - -/* Subroutine */ int dsytf2_(char *uplo, integer *n, doublereal *a, integer * - lda, integer *ipiv, integer *info); - -/* Subroutine */ int dsytrd_(char *uplo, integer *n, doublereal *a, integer * - lda, doublereal *d__, doublereal *e, doublereal *tau, doublereal * - work, integer *lwork, integer *info); - -/* Subroutine */ int dsytrf_(char *uplo, integer *n, doublereal *a, integer * - lda, integer *ipiv, doublereal *work, integer *lwork, integer *info); - -/* Subroutine */ int dsytri_(char *uplo, integer *n, doublereal *a, integer * - lda, integer *ipiv, doublereal *work, integer *info); - -/* Subroutine */ int dsytrs_(char *uplo, integer *n, integer *nrhs, - doublereal *a, integer *lda, integer *ipiv, doublereal *b, integer * - ldb, integer *info); - -/* Subroutine */ int dtbcon_(char *norm, char *uplo, char *diag, integer *n, - integer *kd, doublereal *ab, integer *ldab, doublereal *rcond, - doublereal *work, integer *iwork, integer *info); - -/* Subroutine */ int dtbrfs_(char *uplo, char *trans, char *diag, integer *n, - integer *kd, integer *nrhs, doublereal *ab, integer *ldab, doublereal - *b, integer *ldb, doublereal *x, integer *ldx, doublereal *ferr, - doublereal *berr, doublereal *work, integer *iwork, integer *info); - -/* Subroutine */ int dtbtrs_(char *uplo, char *trans, char *diag, integer *n, - integer *kd, integer *nrhs, doublereal *ab, integer *ldab, doublereal - *b, integer *ldb, integer *info); - -/* Subroutine */ int dtgevc_(char *side, char *howmny, logical *select, - integer *n, doublereal *a, integer *lda, doublereal *b, integer *ldb, - doublereal *vl, integer *ldvl, doublereal *vr, integer *ldvr, integer - *mm, integer *m, doublereal *work, integer *info); - -/* Subroutine */ int dtgex2_(logical *wantq, logical *wantz, integer *n, - doublereal *a, integer *lda, doublereal *b, integer *ldb, doublereal * - q, integer *ldq, doublereal *z__, integer *ldz, integer *j1, integer * - n1, integer *n2, doublereal *work, integer *lwork, integer *info); - -/* Subroutine */ int dtgexc_(logical *wantq, logical *wantz, integer *n, - doublereal *a, integer *lda, doublereal *b, integer *ldb, doublereal * - q, integer *ldq, doublereal *z__, integer *ldz, integer *ifst, - integer *ilst, doublereal *work, integer *lwork, integer *info); - -/* Subroutine */ int dtgsen_(integer *ijob, logical *wantq, logical *wantz, - logical *select, integer *n, doublereal *a, integer *lda, doublereal * - b, integer *ldb, doublereal *alphar, doublereal *alphai, doublereal * - beta, doublereal *q, integer *ldq, doublereal *z__, integer *ldz, - integer *m, doublereal *pl, doublereal *pr, doublereal *dif, - doublereal *work, integer *lwork, integer *iwork, integer *liwork, - integer *info); - -/* Subroutine */ int dtgsja_(char *jobu, char *jobv, char *jobq, integer *m, - integer *p, integer *n, integer *k, integer *l, doublereal *a, - integer *lda, doublereal *b, integer *ldb, doublereal *tola, - doublereal *tolb, doublereal *alpha, doublereal *beta, doublereal *u, - integer *ldu, doublereal *v, integer *ldv, doublereal *q, integer * - ldq, doublereal *work, integer *ncycle, integer *info); - -/* Subroutine */ int dtgsna_(char *job, char *howmny, logical *select, - integer *n, doublereal *a, integer *lda, doublereal *b, integer *ldb, - doublereal *vl, integer *ldvl, doublereal *vr, integer *ldvr, - doublereal *s, doublereal *dif, integer *mm, integer *m, doublereal * - work, integer *lwork, integer *iwork, integer *info); - -/* Subroutine */ int dtgsy2_(char *trans, integer *ijob, integer *m, integer * - n, doublereal *a, integer *lda, doublereal *b, integer *ldb, - doublereal *c__, integer *ldc, doublereal *d__, integer *ldd, - doublereal *e, integer *lde, doublereal *f, integer *ldf, doublereal * - scale, doublereal *rdsum, doublereal *rdscal, integer *iwork, integer - *pq, integer *info); - -/* Subroutine */ int dtgsyl_(char *trans, integer *ijob, integer *m, integer * - n, doublereal *a, integer *lda, doublereal *b, integer *ldb, - doublereal *c__, integer *ldc, doublereal *d__, integer *ldd, - doublereal *e, integer *lde, doublereal *f, integer *ldf, doublereal * - scale, doublereal *dif, doublereal *work, integer *lwork, integer * - iwork, integer *info); - -/* Subroutine */ int dtpcon_(char *norm, char *uplo, char *diag, integer *n, - doublereal *ap, doublereal *rcond, doublereal *work, integer *iwork, - integer *info); - -/* Subroutine */ int dtprfs_(char *uplo, char *trans, char *diag, integer *n, - integer *nrhs, doublereal *ap, doublereal *b, integer *ldb, - doublereal *x, integer *ldx, doublereal *ferr, doublereal *berr, - doublereal *work, integer *iwork, integer *info); - -/* Subroutine */ int dtptri_(char *uplo, char *diag, integer *n, doublereal * - ap, integer *info); - -/* Subroutine */ int dtptrs_(char *uplo, char *trans, char *diag, integer *n, - integer *nrhs, doublereal *ap, doublereal *b, integer *ldb, integer * - info); - -/* Subroutine */ int dtrcon_(char *norm, char *uplo, char *diag, integer *n, - doublereal *a, integer *lda, doublereal *rcond, doublereal *work, - integer *iwork, integer *info); - -/* Subroutine */ int dtrevc_(char *side, char *howmny, logical *select, - integer *n, doublereal *t, integer *ldt, doublereal *vl, integer * - ldvl, doublereal *vr, integer *ldvr, integer *mm, integer *m, - doublereal *work, integer *info); - -/* Subroutine */ int dtrexc_(char *compq, integer *n, doublereal *t, integer * - ldt, doublereal *q, integer *ldq, integer *ifst, integer *ilst, - doublereal *work, integer *info); - -/* Subroutine */ int dtrrfs_(char *uplo, char *trans, char *diag, integer *n, - integer *nrhs, doublereal *a, integer *lda, doublereal *b, integer * - ldb, doublereal *x, integer *ldx, doublereal *ferr, doublereal *berr, - doublereal *work, integer *iwork, integer *info); - -/* Subroutine */ int dtrsen_(char *job, char *compq, logical *select, integer - *n, doublereal *t, integer *ldt, doublereal *q, integer *ldq, - doublereal *wr, doublereal *wi, integer *m, doublereal *s, doublereal - *sep, doublereal *work, integer *lwork, integer *iwork, integer * - liwork, integer *info); - -/* Subroutine */ int dtrsna_(char *job, char *howmny, logical *select, - integer *n, doublereal *t, integer *ldt, doublereal *vl, integer * - ldvl, doublereal *vr, integer *ldvr, doublereal *s, doublereal *sep, - integer *mm, integer *m, doublereal *work, integer *ldwork, integer * - iwork, integer *info); - -/* Subroutine */ int dtrsyl_(char *trana, char *tranb, integer *isgn, integer - *m, integer *n, doublereal *a, integer *lda, doublereal *b, integer * - ldb, doublereal *c__, integer *ldc, doublereal *scale, integer *info); - -/* Subroutine */ int dtrti2_(char *uplo, char *diag, integer *n, doublereal * - a, integer *lda, integer *info); - -/* Subroutine */ int dtrtri_(char *uplo, char *diag, integer *n, doublereal * - a, integer *lda, integer *info); - -/* Subroutine */ int dtrtrs_(char *uplo, char *trans, char *diag, integer *n, - integer *nrhs, doublereal *a, integer *lda, doublereal *b, integer * - ldb, integer *info); - -/* Subroutine */ int dtzrqf_(integer *m, integer *n, doublereal *a, integer * - lda, doublereal *tau, integer *info); - -/* Subroutine */ int dtzrzf_(integer *m, integer *n, doublereal *a, integer * - lda, doublereal *tau, doublereal *work, integer *lwork, integer *info); - -integer icmax1_(integer *n, complex *cx, integer *incx); - -integer ieeeck_(integer *ispec, real *zero, real *one); - -integer ilaenv_(integer *ispec, char *name__, char *opts, integer *n1, - integer *n2, integer *n3, integer *n4, ftnlen name_len, ftnlen - opts_len); - -integer izmax1_(integer *n, doublecomplex *cx, integer *incx); - -/* Subroutine */ int sbdsdc_(char *uplo, char *compq, integer *n, real *d__, - real *e, real *u, integer *ldu, real *vt, integer *ldvt, real *q, - integer *iq, real *work, integer *iwork, integer *info); - -/* Subroutine */ int sbdsqr_(char *uplo, integer *n, integer *ncvt, integer * - nru, integer *ncc, real *d__, real *e, real *vt, integer *ldvt, real * - u, integer *ldu, real *c__, integer *ldc, real *work, integer *info); - -/* Subroutine */ int sdisna_(char *job, integer *m, integer *n, real *d__, - real *sep, integer *info); - -/* Subroutine */ int sgbbrd_(char *vect, integer *m, integer *n, integer *ncc, - integer *kl, integer *ku, real *ab, integer *ldab, real *d__, real * - e, real *q, integer *ldq, real *pt, integer *ldpt, real *c__, integer - *ldc, real *work, integer *info); - -/* Subroutine */ int sgbcon_(char *norm, integer *n, integer *kl, integer *ku, - real *ab, integer *ldab, integer *ipiv, real *anorm, real *rcond, - real *work, integer *iwork, integer *info); - -/* Subroutine */ int sgbequ_(integer *m, integer *n, integer *kl, integer *ku, - real *ab, integer *ldab, real *r__, real *c__, real *rowcnd, real * - colcnd, real *amax, integer *info); - -/* Subroutine */ int sgbrfs_(char *trans, integer *n, integer *kl, integer * - ku, integer *nrhs, real *ab, integer *ldab, real *afb, integer *ldafb, - integer *ipiv, real *b, integer *ldb, real *x, integer *ldx, real * - ferr, real *berr, real *work, integer *iwork, integer *info); - -/* Subroutine */ int sgbsv_(integer *n, integer *kl, integer *ku, integer * - nrhs, real *ab, integer *ldab, integer *ipiv, real *b, integer *ldb, - integer *info); - -/* Subroutine */ int sgbsvx_(char *fact, char *trans, integer *n, integer *kl, - integer *ku, integer *nrhs, real *ab, integer *ldab, real *afb, - integer *ldafb, integer *ipiv, char *equed, real *r__, real *c__, - real *b, integer *ldb, real *x, integer *ldx, real *rcond, real *ferr, - real *berr, real *work, integer *iwork, integer *info); - -/* Subroutine */ int sgbtf2_(integer *m, integer *n, integer *kl, integer *ku, - real *ab, integer *ldab, integer *ipiv, integer *info); - -/* Subroutine */ int sgbtrf_(integer *m, integer *n, integer *kl, integer *ku, - real *ab, integer *ldab, integer *ipiv, integer *info); - -/* Subroutine */ int sgbtrs_(char *trans, integer *n, integer *kl, integer * - ku, integer *nrhs, real *ab, integer *ldab, integer *ipiv, real *b, - integer *ldb, integer *info); - -/* Subroutine */ int sgebak_(char *job, char *side, integer *n, integer *ilo, - integer *ihi, real *scale, integer *m, real *v, integer *ldv, integer - *info); - -/* Subroutine */ int sgebal_(char *job, integer *n, real *a, integer *lda, - integer *ilo, integer *ihi, real *scale, integer *info); - -/* Subroutine */ int sgebd2_(integer *m, integer *n, real *a, integer *lda, - real *d__, real *e, real *tauq, real *taup, real *work, integer *info); - -/* Subroutine */ int sgebrd_(integer *m, integer *n, real *a, integer *lda, - real *d__, real *e, real *tauq, real *taup, real *work, integer * - lwork, integer *info); - -/* Subroutine */ int sgecon_(char *norm, integer *n, real *a, integer *lda, - real *anorm, real *rcond, real *work, integer *iwork, integer *info); - -/* Subroutine */ int sgeequ_(integer *m, integer *n, real *a, integer *lda, - real *r__, real *c__, real *rowcnd, real *colcnd, real *amax, integer - *info); - -/* Subroutine */ int sgees_(char *jobvs, char *sort, L_fp select, integer *n, - real *a, integer *lda, integer *sdim, real *wr, real *wi, real *vs, - integer *ldvs, real *work, integer *lwork, logical *bwork, integer * - info); - -/* Subroutine */ int sgeesx_(char *jobvs, char *sort, L_fp select, char * - sense, integer *n, real *a, integer *lda, integer *sdim, real *wr, - real *wi, real *vs, integer *ldvs, real *rconde, real *rcondv, real * - work, integer *lwork, integer *iwork, integer *liwork, logical *bwork, - integer *info); - -/* Subroutine */ int sgeev_(char *jobvl, char *jobvr, integer *n, real *a, - integer *lda, real *wr, real *wi, real *vl, integer *ldvl, real *vr, - integer *ldvr, real *work, integer *lwork, integer *info); - -/* Subroutine */ int sgeevx_(char *balanc, char *jobvl, char *jobvr, char * - sense, integer *n, real *a, integer *lda, real *wr, real *wi, real * - vl, integer *ldvl, real *vr, integer *ldvr, integer *ilo, integer * - ihi, real *scale, real *abnrm, real *rconde, real *rcondv, real *work, - integer *lwork, integer *iwork, integer *info); - -/* Subroutine */ int sgegs_(char *jobvsl, char *jobvsr, integer *n, real *a, - integer *lda, real *b, integer *ldb, real *alphar, real *alphai, real - *beta, real *vsl, integer *ldvsl, real *vsr, integer *ldvsr, real * - work, integer *lwork, integer *info); - -/* Subroutine */ int sgegv_(char *jobvl, char *jobvr, integer *n, real *a, - integer *lda, real *b, integer *ldb, real *alphar, real *alphai, real - *beta, real *vl, integer *ldvl, real *vr, integer *ldvr, real *work, - integer *lwork, integer *info); - -/* Subroutine */ int sgehd2_(integer *n, integer *ilo, integer *ihi, real *a, - integer *lda, real *tau, real *work, integer *info); - -/* Subroutine */ int sgehrd_(integer *n, integer *ilo, integer *ihi, real *a, - integer *lda, real *tau, real *work, integer *lwork, integer *info); - -/* Subroutine */ int sgelq2_(integer *m, integer *n, real *a, integer *lda, - real *tau, real *work, integer *info); - -/* Subroutine */ int sgelqf_(integer *m, integer *n, real *a, integer *lda, - real *tau, real *work, integer *lwork, integer *info); - -/* Subroutine */ int sgels_(char *trans, integer *m, integer *n, integer * - nrhs, real *a, integer *lda, real *b, integer *ldb, real *work, - integer *lwork, integer *info); - -/* Subroutine */ int sgelsd_(integer *m, integer *n, integer *nrhs, real *a, - integer *lda, real *b, integer *ldb, real *s, real *rcond, integer * - rank, real *work, integer *lwork, integer *iwork, integer *info); - -/* Subroutine */ int sgelss_(integer *m, integer *n, integer *nrhs, real *a, - integer *lda, real *b, integer *ldb, real *s, real *rcond, integer * - rank, real *work, integer *lwork, integer *info); - -/* Subroutine */ int sgelsx_(integer *m, integer *n, integer *nrhs, real *a, - integer *lda, real *b, integer *ldb, integer *jpvt, real *rcond, - integer *rank, real *work, integer *info); - -/* Subroutine */ int sgelsy_(integer *m, integer *n, integer *nrhs, real *a, - integer *lda, real *b, integer *ldb, integer *jpvt, real *rcond, - integer *rank, real *work, integer *lwork, integer *info); - -/* Subroutine */ int sgeql2_(integer *m, integer *n, real *a, integer *lda, - real *tau, real *work, integer *info); - -/* Subroutine */ int sgeqlf_(integer *m, integer *n, real *a, integer *lda, - real *tau, real *work, integer *lwork, integer *info); - -/* Subroutine */ int sgeqp3_(integer *m, integer *n, real *a, integer *lda, - integer *jpvt, real *tau, real *work, integer *lwork, integer *info); - -/* Subroutine */ int sgeqpf_(integer *m, integer *n, real *a, integer *lda, - integer *jpvt, real *tau, real *work, integer *info); - -/* Subroutine */ int sgeqr2_(integer *m, integer *n, real *a, integer *lda, - real *tau, real *work, integer *info); - -/* Subroutine */ int sgeqrf_(integer *m, integer *n, real *a, integer *lda, - real *tau, real *work, integer *lwork, integer *info); - -/* Subroutine */ int sgerfs_(char *trans, integer *n, integer *nrhs, real *a, - integer *lda, real *af, integer *ldaf, integer *ipiv, real *b, - integer *ldb, real *x, integer *ldx, real *ferr, real *berr, real * - work, integer *iwork, integer *info); - -/* Subroutine */ int sgerq2_(integer *m, integer *n, real *a, integer *lda, - real *tau, real *work, integer *info); - -/* Subroutine */ int sgerqf_(integer *m, integer *n, real *a, integer *lda, - real *tau, real *work, integer *lwork, integer *info); - -/* Subroutine */ int sgesc2_(integer *n, real *a, integer *lda, real *rhs, - integer *ipiv, integer *jpiv, real *scale); - -/* Subroutine */ int sgesdd_(char *jobz, integer *m, integer *n, real *a, - integer *lda, real *s, real *u, integer *ldu, real *vt, integer *ldvt, - real *work, integer *lwork, integer *iwork, integer *info); - -/* Subroutine */ int sgesv_(integer *n, integer *nrhs, real *a, integer *lda, - integer *ipiv, real *b, integer *ldb, integer *info); - -/* Subroutine */ int sgesvd_(char *jobu, char *jobvt, integer *m, integer *n, - real *a, integer *lda, real *s, real *u, integer *ldu, real *vt, - integer *ldvt, real *work, integer *lwork, integer *info); - -/* Subroutine */ int sgesvx_(char *fact, char *trans, integer *n, integer * - nrhs, real *a, integer *lda, real *af, integer *ldaf, integer *ipiv, - char *equed, real *r__, real *c__, real *b, integer *ldb, real *x, - integer *ldx, real *rcond, real *ferr, real *berr, real *work, - integer *iwork, integer *info); - -/* Subroutine */ int sgetc2_(integer *n, real *a, integer *lda, integer *ipiv, - integer *jpiv, integer *info); - -/* Subroutine */ int sgetf2_(integer *m, integer *n, real *a, integer *lda, - integer *ipiv, integer *info); - -/* Subroutine */ int sgetrf_(integer *m, integer *n, real *a, integer *lda, - integer *ipiv, integer *info); - -/* Subroutine */ int sgetri_(integer *n, real *a, integer *lda, integer *ipiv, - real *work, integer *lwork, integer *info); - -/* Subroutine */ int sgetrs_(char *trans, integer *n, integer *nrhs, real *a, - integer *lda, integer *ipiv, real *b, integer *ldb, integer *info); - -/* Subroutine */ int sggbak_(char *job, char *side, integer *n, integer *ilo, - integer *ihi, real *lscale, real *rscale, integer *m, real *v, - integer *ldv, integer *info); - -/* Subroutine */ int sggbal_(char *job, integer *n, real *a, integer *lda, - real *b, integer *ldb, integer *ilo, integer *ihi, real *lscale, real - *rscale, real *work, integer *info); - -/* Subroutine */ int sgges_(char *jobvsl, char *jobvsr, char *sort, L_fp - selctg, integer *n, real *a, integer *lda, real *b, integer *ldb, - integer *sdim, real *alphar, real *alphai, real *beta, real *vsl, - integer *ldvsl, real *vsr, integer *ldvsr, real *work, integer *lwork, - logical *bwork, integer *info); - -/* Subroutine */ int sggesx_(char *jobvsl, char *jobvsr, char *sort, L_fp - selctg, char *sense, integer *n, real *a, integer *lda, real *b, - integer *ldb, integer *sdim, real *alphar, real *alphai, real *beta, - real *vsl, integer *ldvsl, real *vsr, integer *ldvsr, real *rconde, - real *rcondv, real *work, integer *lwork, integer *iwork, integer * - liwork, logical *bwork, integer *info); - -/* Subroutine */ int sggev_(char *jobvl, char *jobvr, integer *n, real *a, - integer *lda, real *b, integer *ldb, real *alphar, real *alphai, real - *beta, real *vl, integer *ldvl, real *vr, integer *ldvr, real *work, - integer *lwork, integer *info); - -/* Subroutine */ int sggevx_(char *balanc, char *jobvl, char *jobvr, char * - sense, integer *n, real *a, integer *lda, real *b, integer *ldb, real - *alphar, real *alphai, real *beta, real *vl, integer *ldvl, real *vr, - integer *ldvr, integer *ilo, integer *ihi, real *lscale, real *rscale, - real *abnrm, real *bbnrm, real *rconde, real *rcondv, real *work, - integer *lwork, integer *iwork, logical *bwork, integer *info); - -/* Subroutine */ int sggglm_(integer *n, integer *m, integer *p, real *a, - integer *lda, real *b, integer *ldb, real *d__, real *x, real *y, - real *work, integer *lwork, integer *info); - -/* Subroutine */ int sgghrd_(char *compq, char *compz, integer *n, integer * - ilo, integer *ihi, real *a, integer *lda, real *b, integer *ldb, real - *q, integer *ldq, real *z__, integer *ldz, integer *info); - -/* Subroutine */ int sgglse_(integer *m, integer *n, integer *p, real *a, - integer *lda, real *b, integer *ldb, real *c__, real *d__, real *x, - real *work, integer *lwork, integer *info); - -/* Subroutine */ int sggqrf_(integer *n, integer *m, integer *p, real *a, - integer *lda, real *taua, real *b, integer *ldb, real *taub, real * - work, integer *lwork, integer *info); - -/* Subroutine */ int sggrqf_(integer *m, integer *p, integer *n, real *a, - integer *lda, real *taua, real *b, integer *ldb, real *taub, real * - work, integer *lwork, integer *info); - -/* Subroutine */ int sggsvd_(char *jobu, char *jobv, char *jobq, integer *m, - integer *n, integer *p, integer *k, integer *l, real *a, integer *lda, - real *b, integer *ldb, real *alpha, real *beta, real *u, integer * - ldu, real *v, integer *ldv, real *q, integer *ldq, real *work, - integer *iwork, integer *info); - -/* Subroutine */ int sggsvp_(char *jobu, char *jobv, char *jobq, integer *m, - integer *p, integer *n, real *a, integer *lda, real *b, integer *ldb, - real *tola, real *tolb, integer *k, integer *l, real *u, integer *ldu, - real *v, integer *ldv, real *q, integer *ldq, integer *iwork, real * - tau, real *work, integer *info); - -/* Subroutine */ int sgtcon_(char *norm, integer *n, real *dl, real *d__, - real *du, real *du2, integer *ipiv, real *anorm, real *rcond, real * - work, integer *iwork, integer *info); - -/* Subroutine */ int sgtrfs_(char *trans, integer *n, integer *nrhs, real *dl, - real *d__, real *du, real *dlf, real *df, real *duf, real *du2, - integer *ipiv, real *b, integer *ldb, real *x, integer *ldx, real * - ferr, real *berr, real *work, integer *iwork, integer *info); - -/* Subroutine */ int sgtsv_(integer *n, integer *nrhs, real *dl, real *d__, - real *du, real *b, integer *ldb, integer *info); - -/* Subroutine */ int sgtsvx_(char *fact, char *trans, integer *n, integer * - nrhs, real *dl, real *d__, real *du, real *dlf, real *df, real *duf, - real *du2, integer *ipiv, real *b, integer *ldb, real *x, integer * - ldx, real *rcond, real *ferr, real *berr, real *work, integer *iwork, - integer *info); - -/* Subroutine */ int sgttrf_(integer *n, real *dl, real *d__, real *du, real * - du2, integer *ipiv, integer *info); - -/* Subroutine */ int sgttrs_(char *trans, integer *n, integer *nrhs, real *dl, - real *d__, real *du, real *du2, integer *ipiv, real *b, integer *ldb, - integer *info); - -/* Subroutine */ int sgtts2_(integer *itrans, integer *n, integer *nrhs, real - *dl, real *d__, real *du, real *du2, integer *ipiv, real *b, integer * - ldb); - -/* Subroutine */ int shgeqz_(char *job, char *compq, char *compz, integer *n, - integer *ilo, integer *ihi, real *a, integer *lda, real *b, integer * - ldb, real *alphar, real *alphai, real *beta, real *q, integer *ldq, - real *z__, integer *ldz, real *work, integer *lwork, integer *info); - -/* Subroutine */ int shsein_(char *side, char *eigsrc, char *initv, logical * - select, integer *n, real *h__, integer *ldh, real *wr, real *wi, real - *vl, integer *ldvl, real *vr, integer *ldvr, integer *mm, integer *m, - real *work, integer *ifaill, integer *ifailr, integer *info); - -/* Subroutine */ int shseqr_(char *job, char *compz, integer *n, integer *ilo, - integer *ihi, real *h__, integer *ldh, real *wr, real *wi, real *z__, - integer *ldz, real *work, integer *lwork, integer *info); - -/* Subroutine */ int slabad_(real *small, real *large); - -/* Subroutine */ int slabrd_(integer *m, integer *n, integer *nb, real *a, - integer *lda, real *d__, real *e, real *tauq, real *taup, real *x, - integer *ldx, real *y, integer *ldy); - -/* Subroutine */ int slacon_(integer *n, real *v, real *x, integer *isgn, - real *est, integer *kase); - -/* Subroutine */ int slacpy_(char *uplo, integer *m, integer *n, real *a, - integer *lda, real *b, integer *ldb); - -/* Subroutine */ int sladiv_(real *a, real *b, real *c__, real *d__, real *p, - real *q); - -/* Subroutine */ int slae2_(real *a, real *b, real *c__, real *rt1, real *rt2); - -/* Subroutine */ int slaebz_(integer *ijob, integer *nitmax, integer *n, - integer *mmax, integer *minp, integer *nbmin, real *abstol, real * - reltol, real *pivmin, real *d__, real *e, real *e2, integer *nval, - real *ab, real *c__, integer *mout, integer *nab, real *work, integer - *iwork, integer *info); - -/* Subroutine */ int slaed0_(integer *icompq, integer *qsiz, integer *n, real - *d__, real *e, real *q, integer *ldq, real *qstore, integer *ldqs, - real *work, integer *iwork, integer *info); - -/* Subroutine */ int slaed1_(integer *n, real *d__, real *q, integer *ldq, - integer *indxq, real *rho, integer *cutpnt, real *work, integer * - iwork, integer *info); - -/* Subroutine */ int slaed2_(integer *k, integer *n, integer *n1, real *d__, - real *q, integer *ldq, integer *indxq, real *rho, real *z__, real * - dlamda, real *w, real *q2, integer *indx, integer *indxc, integer * - indxp, integer *coltyp, integer *info); - -/* Subroutine */ int slaed3_(integer *k, integer *n, integer *n1, real *d__, - real *q, integer *ldq, real *rho, real *dlamda, real *q2, integer * - indx, integer *ctot, real *w, real *s, integer *info); - -/* Subroutine */ int slaed4_(integer *n, integer *i__, real *d__, real *z__, - real *delta, real *rho, real *dlam, integer *info); - -/* Subroutine */ int slaed5_(integer *i__, real *d__, real *z__, real *delta, - real *rho, real *dlam); - -/* Subroutine */ int slaed6_(integer *kniter, logical *orgati, real *rho, - real *d__, real *z__, real *finit, real *tau, integer *info); - -/* Subroutine */ int slaed7_(integer *icompq, integer *n, integer *qsiz, - integer *tlvls, integer *curlvl, integer *curpbm, real *d__, real *q, - integer *ldq, integer *indxq, real *rho, integer *cutpnt, real * - qstore, integer *qptr, integer *prmptr, integer *perm, integer * - givptr, integer *givcol, real *givnum, real *work, integer *iwork, - integer *info); - -/* Subroutine */ int slaed8_(integer *icompq, integer *k, integer *n, integer - *qsiz, real *d__, real *q, integer *ldq, integer *indxq, real *rho, - integer *cutpnt, real *z__, real *dlamda, real *q2, integer *ldq2, - real *w, integer *perm, integer *givptr, integer *givcol, real * - givnum, integer *indxp, integer *indx, integer *info); - -/* Subroutine */ int slaed9_(integer *k, integer *kstart, integer *kstop, - integer *n, real *d__, real *q, integer *ldq, real *rho, real *dlamda, - real *w, real *s, integer *lds, integer *info); - -/* Subroutine */ int slaeda_(integer *n, integer *tlvls, integer *curlvl, - integer *curpbm, integer *prmptr, integer *perm, integer *givptr, - integer *givcol, real *givnum, real *q, integer *qptr, real *z__, - real *ztemp, integer *info); - -/* Subroutine */ int slaein_(logical *rightv, logical *noinit, integer *n, - real *h__, integer *ldh, real *wr, real *wi, real *vr, real *vi, real - *b, integer *ldb, real *work, real *eps3, real *smlnum, real *bignum, - integer *info); - -/* Subroutine */ int slaev2_(real *a, real *b, real *c__, real *rt1, real * - rt2, real *cs1, real *sn1); - -/* Subroutine */ int slaexc_(logical *wantq, integer *n, real *t, integer * - ldt, real *q, integer *ldq, integer *j1, integer *n1, integer *n2, - real *work, integer *info); - -/* Subroutine */ int slag2_(real *a, integer *lda, real *b, integer *ldb, - real *safmin, real *scale1, real *scale2, real *wr1, real *wr2, real * - wi); - -/* Subroutine */ int slags2_(logical *upper, real *a1, real *a2, real *a3, - real *b1, real *b2, real *b3, real *csu, real *snu, real *csv, real * - snv, real *csq, real *snq); - -/* Subroutine */ int slagtf_(integer *n, real *a, real *lambda, real *b, real - *c__, real *tol, real *d__, integer *in, integer *info); - -/* Subroutine */ int slagtm_(char *trans, integer *n, integer *nrhs, real * - alpha, real *dl, real *d__, real *du, real *x, integer *ldx, real * - beta, real *b, integer *ldb); - -/* Subroutine */ int slagts_(integer *job, integer *n, real *a, real *b, real - *c__, real *d__, integer *in, real *y, real *tol, integer *info); - -/* Subroutine */ int slagv2_(real *a, integer *lda, real *b, integer *ldb, - real *alphar, real *alphai, real *beta, real *csl, real *snl, real * - csr, real *snr); - -/* Subroutine */ int slahqr_(logical *wantt, logical *wantz, integer *n, - integer *ilo, integer *ihi, real *h__, integer *ldh, real *wr, real * - wi, integer *iloz, integer *ihiz, real *z__, integer *ldz, integer * - info); - -/* Subroutine */ int slahrd_(integer *n, integer *k, integer *nb, real *a, - integer *lda, real *tau, real *t, integer *ldt, real *y, integer *ldy); - -/* Subroutine */ int slaic1_(integer *job, integer *j, real *x, real *sest, - real *w, real *gamma, real *sestpr, real *s, real *c__); - -/* Subroutine */ int slaln2_(logical *ltrans, integer *na, integer *nw, real * - smin, real *ca, real *a, integer *lda, real *d1, real *d2, real *b, - integer *ldb, real *wr, real *wi, real *x, integer *ldx, real *scale, - real *xnorm, integer *info); - -/* Subroutine */ int slals0_(integer *icompq, integer *nl, integer *nr, - integer *sqre, integer *nrhs, real *b, integer *ldb, real *bx, - integer *ldbx, integer *perm, integer *givptr, integer *givcol, - integer *ldgcol, real *givnum, integer *ldgnum, real *poles, real * - difl, real *difr, real *z__, integer *k, real *c__, real *s, real * - work, integer *info); - -/* Subroutine */ int slalsa_(integer *icompq, integer *smlsiz, integer *n, - integer *nrhs, real *b, integer *ldb, real *bx, integer *ldbx, real * - u, integer *ldu, real *vt, integer *k, real *difl, real *difr, real * - z__, real *poles, integer *givptr, integer *givcol, integer *ldgcol, - integer *perm, real *givnum, real *c__, real *s, real *work, integer * - iwork, integer *info); - -/* Subroutine */ int slalsd_(char *uplo, integer *smlsiz, integer *n, integer - *nrhs, real *d__, real *e, real *b, integer *ldb, real *rcond, - integer *rank, real *work, integer *iwork, integer *info); - -/* Subroutine */ int slamc1_(integer *beta, integer *t, logical *rnd, logical - *ieee1); - -/* Subroutine */ int slamc2_(integer *beta, integer *t, logical *rnd, real * - eps, integer *emin, real *rmin, integer *emax, real *rmax); - -/* Subroutine */ int slamc4_(integer *emin, real *start, integer *base); - -/* Subroutine */ int slamc5_(integer *beta, integer *p, integer *emin, - logical *ieee, integer *emax, real *rmax); - -/* Subroutine */ int slamrg_(integer *n1, integer *n2, real *a, integer * - strd1, integer *strd2, integer *index); - -/* Subroutine */ int slanv2_(real *a, real *b, real *c__, real *d__, real * - rt1r, real *rt1i, real *rt2r, real *rt2i, real *cs, real *sn); - -/* Subroutine */ int slapll_(integer *n, real *x, integer *incx, real *y, - integer *incy, real *ssmin); - -/* Subroutine */ int slapmt_(logical *forwrd, integer *m, integer *n, real *x, - integer *ldx, integer *k); - -/* Subroutine */ int slaqgb_(integer *m, integer *n, integer *kl, integer *ku, - real *ab, integer *ldab, real *r__, real *c__, real *rowcnd, real * - colcnd, real *amax, char *equed); - -/* Subroutine */ int slaqge_(integer *m, integer *n, real *a, integer *lda, - real *r__, real *c__, real *rowcnd, real *colcnd, real *amax, char * - equed); - -/* Subroutine */ int slaqp2_(integer *m, integer *n, integer *offset, real *a, - integer *lda, integer *jpvt, real *tau, real *vn1, real *vn2, real * - work); - -/* Subroutine */ int slaqps_(integer *m, integer *n, integer *offset, integer - *nb, integer *kb, real *a, integer *lda, integer *jpvt, real *tau, - real *vn1, real *vn2, real *auxv, real *f, integer *ldf); - -/* Subroutine */ int slaqsb_(char *uplo, integer *n, integer *kd, real *ab, - integer *ldab, real *s, real *scond, real *amax, char *equed); - -/* Subroutine */ int slaqsp_(char *uplo, integer *n, real *ap, real *s, real * - scond, real *amax, char *equed); - -/* Subroutine */ int slaqsy_(char *uplo, integer *n, real *a, integer *lda, - real *s, real *scond, real *amax, char *equed); - -/* Subroutine */ int slaqtr_(logical *ltran, logical *lreal, integer *n, real - *t, integer *ldt, real *b, real *w, real *scale, real *x, real *work, - integer *info); - -/* Subroutine */ int slar1v_(integer *n, integer *b1, integer *bn, real * - sigma, real *d__, real *l, real *ld, real *lld, real *gersch, real * - z__, real *ztz, real *mingma, integer *r__, integer *isuppz, real * - work); - -/* Subroutine */ int slar2v_(integer *n, real *x, real *y, real *z__, integer - *incx, real *c__, real *s, integer *incc); - -/* Subroutine */ int slarf_(char *side, integer *m, integer *n, real *v, - integer *incv, real *tau, real *c__, integer *ldc, real *work); - -/* Subroutine */ int slarfb_(char *side, char *trans, char *direct, char * - storev, integer *m, integer *n, integer *k, real *v, integer *ldv, - real *t, integer *ldt, real *c__, integer *ldc, real *work, integer * - ldwork); - -/* Subroutine */ int slarfg_(integer *n, real *alpha, real *x, integer *incx, - real *tau); - -/* Subroutine */ int slarft_(char *direct, char *storev, integer *n, integer * - k, real *v, integer *ldv, real *tau, real *t, integer *ldt); - -/* Subroutine */ int slarfx_(char *side, integer *m, integer *n, real *v, - real *tau, real *c__, integer *ldc, real *work); - -/* Subroutine */ int slargv_(integer *n, real *x, integer *incx, real *y, - integer *incy, real *c__, integer *incc); - -/* Subroutine */ int slarnv_(integer *idist, integer *iseed, integer *n, real - *x); - -/* Subroutine */ int slarrb_(integer *n, real *d__, real *l, real *ld, real * - lld, integer *ifirst, integer *ilast, real *sigma, real *reltol, real - *w, real *wgap, real *werr, real *work, integer *iwork, integer *info); - -/* Subroutine */ int slarre_(integer *n, real *d__, real *e, real *tol, - integer *nsplit, integer *isplit, integer *m, real *w, real *woff, - real *gersch, real *work, integer *info); - -/* Subroutine */ int slarrf_(integer *n, real *d__, real *l, real *ld, real * - lld, integer *ifirst, integer *ilast, real *w, real *dplus, real * - lplus, real *work, integer *iwork, integer *info); - -/* Subroutine */ int slarrv_(integer *n, real *d__, real *l, integer *isplit, - integer *m, real *w, integer *iblock, real *gersch, real *tol, real * - z__, integer *ldz, integer *isuppz, real *work, integer *iwork, - integer *info); - -/* Subroutine */ int slartg_(real *f, real *g, real *cs, real *sn, real *r__); - -/* Subroutine */ int slartv_(integer *n, real *x, integer *incx, real *y, - integer *incy, real *c__, real *s, integer *incc); - -/* Subroutine */ int slaruv_(integer *iseed, integer *n, real *x); - -/* Subroutine */ int slarz_(char *side, integer *m, integer *n, integer *l, - real *v, integer *incv, real *tau, real *c__, integer *ldc, real * - work); - -/* Subroutine */ int slarzb_(char *side, char *trans, char *direct, char * - storev, integer *m, integer *n, integer *k, integer *l, real *v, - integer *ldv, real *t, integer *ldt, real *c__, integer *ldc, real * - work, integer *ldwork); - -/* Subroutine */ int slarzt_(char *direct, char *storev, integer *n, integer * - k, real *v, integer *ldv, real *tau, real *t, integer *ldt); - -/* Subroutine */ int slas2_(real *f, real *g, real *h__, real *ssmin, real * - ssmax); - -/* Subroutine */ int slascl_(char *type__, integer *kl, integer *ku, real * - cfrom, real *cto, integer *m, integer *n, real *a, integer *lda, - integer *info); - -/* Subroutine */ int slasd0_(integer *n, integer *sqre, real *d__, real *e, - real *u, integer *ldu, real *vt, integer *ldvt, integer *smlsiz, - integer *iwork, real *work, integer *info); - -/* Subroutine */ int slasd1_(integer *nl, integer *nr, integer *sqre, real * - d__, real *alpha, real *beta, real *u, integer *ldu, real *vt, - integer *ldvt, integer *idxq, integer *iwork, real *work, integer * - info); - -/* Subroutine */ int slasd2_(integer *nl, integer *nr, integer *sqre, integer - *k, real *d__, real *z__, real *alpha, real *beta, real *u, integer * - ldu, real *vt, integer *ldvt, real *dsigma, real *u2, integer *ldu2, - real *vt2, integer *ldvt2, integer *idxp, integer *idx, integer *idxc, - integer *idxq, integer *coltyp, integer *info); - -/* Subroutine */ int slasd3_(integer *nl, integer *nr, integer *sqre, integer - *k, real *d__, real *q, integer *ldq, real *dsigma, real *u, integer * - ldu, real *u2, integer *ldu2, real *vt, integer *ldvt, real *vt2, - integer *ldvt2, integer *idxc, integer *ctot, real *z__, integer * - info); - -/* Subroutine */ int slasd4_(integer *n, integer *i__, real *d__, real *z__, - real *delta, real *rho, real *sigma, real *work, integer *info); - -/* Subroutine */ int slasd5_(integer *i__, real *d__, real *z__, real *delta, - real *rho, real *dsigma, real *work); - -/* Subroutine */ int slasd6_(integer *icompq, integer *nl, integer *nr, - integer *sqre, real *d__, real *vf, real *vl, real *alpha, real *beta, - integer *idxq, integer *perm, integer *givptr, integer *givcol, - integer *ldgcol, real *givnum, integer *ldgnum, real *poles, real * - difl, real *difr, real *z__, integer *k, real *c__, real *s, real * - work, integer *iwork, integer *info); - -/* Subroutine */ int slasd7_(integer *icompq, integer *nl, integer *nr, - integer *sqre, integer *k, real *d__, real *z__, real *zw, real *vf, - real *vfw, real *vl, real *vlw, real *alpha, real *beta, real *dsigma, - integer *idx, integer *idxp, integer *idxq, integer *perm, integer * - givptr, integer *givcol, integer *ldgcol, real *givnum, integer * - ldgnum, real *c__, real *s, integer *info); - -/* Subroutine */ int slasd8_(integer *icompq, integer *k, real *d__, real * - z__, real *vf, real *vl, real *difl, real *difr, integer *lddifr, - real *dsigma, real *work, integer *info); - -/* Subroutine */ int slasd9_(integer *icompq, integer *ldu, integer *k, real * - d__, real *z__, real *vf, real *vl, real *difl, real *difr, real * - dsigma, real *work, integer *info); - -/* Subroutine */ int slasda_(integer *icompq, integer *smlsiz, integer *n, - integer *sqre, real *d__, real *e, real *u, integer *ldu, real *vt, - integer *k, real *difl, real *difr, real *z__, real *poles, integer * - givptr, integer *givcol, integer *ldgcol, integer *perm, real *givnum, - real *c__, real *s, real *work, integer *iwork, integer *info); - -/* Subroutine */ int slasdq_(char *uplo, integer *sqre, integer *n, integer * - ncvt, integer *nru, integer *ncc, real *d__, real *e, real *vt, - integer *ldvt, real *u, integer *ldu, real *c__, integer *ldc, real * - work, integer *info); - -/* Subroutine */ int slasdt_(integer *n, integer *lvl, integer *nd, integer * - inode, integer *ndiml, integer *ndimr, integer *msub); - -/* Subroutine */ int slaset_(char *uplo, integer *m, integer *n, real *alpha, - real *beta, real *a, integer *lda); - -/* Subroutine */ int slasq1_(integer *n, real *d__, real *e, real *work, - integer *info); - -/* Subroutine */ int slasq2_(integer *n, real *z__, integer *info); - -/* Subroutine */ int slasq3_(integer *i0, integer *n0, real *z__, integer *pp, - real *dmin__, real *sigma, real *desig, real *qmax, integer *nfail, - integer *iter, integer *ndiv, logical *ieee); - -/* Subroutine */ int slasq4_(integer *i0, integer *n0, real *z__, integer *pp, - integer *n0in, real *dmin__, real *dmin1, real *dmin2, real *dn, - real *dn1, real *dn2, real *tau, integer *ttype); - -/* Subroutine */ int slasq5_(integer *i0, integer *n0, real *z__, integer *pp, - real *tau, real *dmin__, real *dmin1, real *dmin2, real *dn, real * - dnm1, real *dnm2, logical *ieee); - -/* Subroutine */ int slasq6_(integer *i0, integer *n0, real *z__, integer *pp, - real *dmin__, real *dmin1, real *dmin2, real *dn, real *dnm1, real * - dnm2); - -/* Subroutine */ int slasr_(char *side, char *pivot, char *direct, integer *m, - integer *n, real *c__, real *s, real *a, integer *lda); - -/* Subroutine */ int slasrt_(char *id, integer *n, real *d__, integer *info); - -/* Subroutine */ int slassq_(integer *n, real *x, integer *incx, real *scale, - real *sumsq); - -/* Subroutine */ int slasv2_(real *f, real *g, real *h__, real *ssmin, real * - ssmax, real *snr, real *csr, real *snl, real *csl); - -/* Subroutine */ int slaswp_(integer *n, real *a, integer *lda, integer *k1, - integer *k2, integer *ipiv, integer *incx); - -/* Subroutine */ int slasy2_(logical *ltranl, logical *ltranr, integer *isgn, - integer *n1, integer *n2, real *tl, integer *ldtl, real *tr, integer * - ldtr, real *b, integer *ldb, real *scale, real *x, integer *ldx, real - *xnorm, integer *info); - -/* Subroutine */ int slasyf_(char *uplo, integer *n, integer *nb, integer *kb, - real *a, integer *lda, integer *ipiv, real *w, integer *ldw, integer - *info); - -/* Subroutine */ int slatbs_(char *uplo, char *trans, char *diag, char * - normin, integer *n, integer *kd, real *ab, integer *ldab, real *x, - real *scale, real *cnorm, integer *info); - -/* Subroutine */ int slatdf_(integer *ijob, integer *n, real *z__, integer * - ldz, real *rhs, real *rdsum, real *rdscal, integer *ipiv, integer * - jpiv); - -/* Subroutine */ int slatps_(char *uplo, char *trans, char *diag, char * - normin, integer *n, real *ap, real *x, real *scale, real *cnorm, - integer *info); - -/* Subroutine */ int slatrd_(char *uplo, integer *n, integer *nb, real *a, - integer *lda, real *e, real *tau, real *w, integer *ldw); - -/* Subroutine */ int slatrs_(char *uplo, char *trans, char *diag, char * - normin, integer *n, real *a, integer *lda, real *x, real *scale, real - *cnorm, integer *info); - -/* Subroutine */ int slatrz_(integer *m, integer *n, integer *l, real *a, - integer *lda, real *tau, real *work); - -/* Subroutine */ int slatzm_(char *side, integer *m, integer *n, real *v, - integer *incv, real *tau, real *c1, real *c2, integer *ldc, real * - work); - -/* Subroutine */ int slauu2_(char *uplo, integer *n, real *a, integer *lda, - integer *info); - -/* Subroutine */ int slauum_(char *uplo, integer *n, real *a, integer *lda, - integer *info); - -/* Subroutine */ int sopgtr_(char *uplo, integer *n, real *ap, real *tau, - real *q, integer *ldq, real *work, integer *info); - -/* Subroutine */ int sopmtr_(char *side, char *uplo, char *trans, integer *m, - integer *n, real *ap, real *tau, real *c__, integer *ldc, real *work, - integer *info); - -/* Subroutine */ int sorg2l_(integer *m, integer *n, integer *k, real *a, - integer *lda, real *tau, real *work, integer *info); - -/* Subroutine */ int sorg2r_(integer *m, integer *n, integer *k, real *a, - integer *lda, real *tau, real *work, integer *info); - -/* Subroutine */ int sorgbr_(char *vect, integer *m, integer *n, integer *k, - real *a, integer *lda, real *tau, real *work, integer *lwork, integer - *info); - -/* Subroutine */ int sorghr_(integer *n, integer *ilo, integer *ihi, real *a, - integer *lda, real *tau, real *work, integer *lwork, integer *info); - -/* Subroutine */ int sorgl2_(integer *m, integer *n, integer *k, real *a, - integer *lda, real *tau, real *work, integer *info); - -/* Subroutine */ int sorglq_(integer *m, integer *n, integer *k, real *a, - integer *lda, real *tau, real *work, integer *lwork, integer *info); - -/* Subroutine */ int sorgql_(integer *m, integer *n, integer *k, real *a, - integer *lda, real *tau, real *work, integer *lwork, integer *info); - -/* Subroutine */ int sorgqr_(integer *m, integer *n, integer *k, real *a, - integer *lda, real *tau, real *work, integer *lwork, integer *info); - -/* Subroutine */ int sorgr2_(integer *m, integer *n, integer *k, real *a, - integer *lda, real *tau, real *work, integer *info); - -/* Subroutine */ int sorgrq_(integer *m, integer *n, integer *k, real *a, - integer *lda, real *tau, real *work, integer *lwork, integer *info); - -/* Subroutine */ int sorgtr_(char *uplo, integer *n, real *a, integer *lda, - real *tau, real *work, integer *lwork, integer *info); - -/* Subroutine */ int sorm2l_(char *side, char *trans, integer *m, integer *n, - integer *k, real *a, integer *lda, real *tau, real *c__, integer *ldc, - real *work, integer *info); - -/* Subroutine */ int sorm2r_(char *side, char *trans, integer *m, integer *n, - integer *k, real *a, integer *lda, real *tau, real *c__, integer *ldc, - real *work, integer *info); - -/* Subroutine */ int sormbr_(char *vect, char *side, char *trans, integer *m, - integer *n, integer *k, real *a, integer *lda, real *tau, real *c__, - integer *ldc, real *work, integer *lwork, integer *info); - -/* Subroutine */ int sormhr_(char *side, char *trans, integer *m, integer *n, - integer *ilo, integer *ihi, real *a, integer *lda, real *tau, real * - c__, integer *ldc, real *work, integer *lwork, integer *info); - -/* Subroutine */ int sorml2_(char *side, char *trans, integer *m, integer *n, - integer *k, real *a, integer *lda, real *tau, real *c__, integer *ldc, - real *work, integer *info); - -/* Subroutine */ int sormlq_(char *side, char *trans, integer *m, integer *n, - integer *k, real *a, integer *lda, real *tau, real *c__, integer *ldc, - real *work, integer *lwork, integer *info); - -/* Subroutine */ int sormql_(char *side, char *trans, integer *m, integer *n, - integer *k, real *a, integer *lda, real *tau, real *c__, integer *ldc, - real *work, integer *lwork, integer *info); - -/* Subroutine */ int sormqr_(char *side, char *trans, integer *m, integer *n, - integer *k, real *a, integer *lda, real *tau, real *c__, integer *ldc, - real *work, integer *lwork, integer *info); - -/* Subroutine */ int sormr2_(char *side, char *trans, integer *m, integer *n, - integer *k, real *a, integer *lda, real *tau, real *c__, integer *ldc, - real *work, integer *info); - -/* Subroutine */ int sormr3_(char *side, char *trans, integer *m, integer *n, - integer *k, integer *l, real *a, integer *lda, real *tau, real *c__, - integer *ldc, real *work, integer *info); - -/* Subroutine */ int sormrq_(char *side, char *trans, integer *m, integer *n, - integer *k, real *a, integer *lda, real *tau, real *c__, integer *ldc, - real *work, integer *lwork, integer *info); - -/* Subroutine */ int sormrz_(char *side, char *trans, integer *m, integer *n, - integer *k, integer *l, real *a, integer *lda, real *tau, real *c__, - integer *ldc, real *work, integer *lwork, integer *info); - -/* Subroutine */ int sormtr_(char *side, char *uplo, char *trans, integer *m, - integer *n, real *a, integer *lda, real *tau, real *c__, integer *ldc, - real *work, integer *lwork, integer *info); - -/* Subroutine */ int spbcon_(char *uplo, integer *n, integer *kd, real *ab, - integer *ldab, real *anorm, real *rcond, real *work, integer *iwork, - integer *info); - -/* Subroutine */ int spbequ_(char *uplo, integer *n, integer *kd, real *ab, - integer *ldab, real *s, real *scond, real *amax, integer *info); - -/* Subroutine */ int spbrfs_(char *uplo, integer *n, integer *kd, integer * - nrhs, real *ab, integer *ldab, real *afb, integer *ldafb, real *b, - integer *ldb, real *x, integer *ldx, real *ferr, real *berr, real * - work, integer *iwork, integer *info); - -/* Subroutine */ int spbstf_(char *uplo, integer *n, integer *kd, real *ab, - integer *ldab, integer *info); - -/* Subroutine */ int spbsv_(char *uplo, integer *n, integer *kd, integer * - nrhs, real *ab, integer *ldab, real *b, integer *ldb, integer *info); - -/* Subroutine */ int spbsvx_(char *fact, char *uplo, integer *n, integer *kd, - integer *nrhs, real *ab, integer *ldab, real *afb, integer *ldafb, - char *equed, real *s, real *b, integer *ldb, real *x, integer *ldx, - real *rcond, real *ferr, real *berr, real *work, integer *iwork, - integer *info); - -/* Subroutine */ int spbtf2_(char *uplo, integer *n, integer *kd, real *ab, - integer *ldab, integer *info); - -/* Subroutine */ int spbtrf_(char *uplo, integer *n, integer *kd, real *ab, - integer *ldab, integer *info); - -/* Subroutine */ int spbtrs_(char *uplo, integer *n, integer *kd, integer * - nrhs, real *ab, integer *ldab, real *b, integer *ldb, integer *info); - -/* Subroutine */ int spocon_(char *uplo, integer *n, real *a, integer *lda, - real *anorm, real *rcond, real *work, integer *iwork, integer *info); - -/* Subroutine */ int spoequ_(integer *n, real *a, integer *lda, real *s, real - *scond, real *amax, integer *info); - -/* Subroutine */ int sporfs_(char *uplo, integer *n, integer *nrhs, real *a, - integer *lda, real *af, integer *ldaf, real *b, integer *ldb, real *x, - integer *ldx, real *ferr, real *berr, real *work, integer *iwork, - integer *info); - -/* Subroutine */ int sposv_(char *uplo, integer *n, integer *nrhs, real *a, - integer *lda, real *b, integer *ldb, integer *info); - -/* Subroutine */ int sposvx_(char *fact, char *uplo, integer *n, integer * - nrhs, real *a, integer *lda, real *af, integer *ldaf, char *equed, - real *s, real *b, integer *ldb, real *x, integer *ldx, real *rcond, - real *ferr, real *berr, real *work, integer *iwork, integer *info); - -/* Subroutine */ int spotf2_(char *uplo, integer *n, real *a, integer *lda, - integer *info); - -/* Subroutine */ int spotrf_(char *uplo, integer *n, real *a, integer *lda, - integer *info); - -/* Subroutine */ int spotri_(char *uplo, integer *n, real *a, integer *lda, - integer *info); - -/* Subroutine */ int spotrs_(char *uplo, integer *n, integer *nrhs, real *a, - integer *lda, real *b, integer *ldb, integer *info); - -/* Subroutine */ int sppcon_(char *uplo, integer *n, real *ap, real *anorm, - real *rcond, real *work, integer *iwork, integer *info); - -/* Subroutine */ int sppequ_(char *uplo, integer *n, real *ap, real *s, real * - scond, real *amax, integer *info); - -/* Subroutine */ int spprfs_(char *uplo, integer *n, integer *nrhs, real *ap, - real *afp, real *b, integer *ldb, real *x, integer *ldx, real *ferr, - real *berr, real *work, integer *iwork, integer *info); - -/* Subroutine */ int sppsv_(char *uplo, integer *n, integer *nrhs, real *ap, - real *b, integer *ldb, integer *info); - -/* Subroutine */ int sppsvx_(char *fact, char *uplo, integer *n, integer * - nrhs, real *ap, real *afp, char *equed, real *s, real *b, integer * - ldb, real *x, integer *ldx, real *rcond, real *ferr, real *berr, real - *work, integer *iwork, integer *info); - -/* Subroutine */ int spptrf_(char *uplo, integer *n, real *ap, integer *info); - -/* Subroutine */ int spptri_(char *uplo, integer *n, real *ap, integer *info); - -/* Subroutine */ int spptrs_(char *uplo, integer *n, integer *nrhs, real *ap, - real *b, integer *ldb, integer *info); - -/* Subroutine */ int sptcon_(integer *n, real *d__, real *e, real *anorm, - real *rcond, real *work, integer *info); - -/* Subroutine */ int spteqr_(char *compz, integer *n, real *d__, real *e, - real *z__, integer *ldz, real *work, integer *info); - -/* Subroutine */ int sptrfs_(integer *n, integer *nrhs, real *d__, real *e, - real *df, real *ef, real *b, integer *ldb, real *x, integer *ldx, - real *ferr, real *berr, real *work, integer *info); - -/* Subroutine */ int sptsv_(integer *n, integer *nrhs, real *d__, real *e, - real *b, integer *ldb, integer *info); - -/* Subroutine */ int sptsvx_(char *fact, integer *n, integer *nrhs, real *d__, - real *e, real *df, real *ef, real *b, integer *ldb, real *x, integer - *ldx, real *rcond, real *ferr, real *berr, real *work, integer *info); - -/* Subroutine */ int spttrf_(integer *n, real *d__, real *e, integer *info); - -/* Subroutine */ int spttrs_(integer *n, integer *nrhs, real *d__, real *e, - real *b, integer *ldb, integer *info); - -/* Subroutine */ int sptts2_(integer *n, integer *nrhs, real *d__, real *e, - real *b, integer *ldb); - -/* Subroutine */ int srscl_(integer *n, real *sa, real *sx, integer *incx); - -/* Subroutine */ int ssbev_(char *jobz, char *uplo, integer *n, integer *kd, - real *ab, integer *ldab, real *w, real *z__, integer *ldz, real *work, - integer *info); - -/* Subroutine */ int ssbevd_(char *jobz, char *uplo, integer *n, integer *kd, - real *ab, integer *ldab, real *w, real *z__, integer *ldz, real *work, - integer *lwork, integer *iwork, integer *liwork, integer *info); - -/* Subroutine */ int ssbevx_(char *jobz, char *range, char *uplo, integer *n, - integer *kd, real *ab, integer *ldab, real *q, integer *ldq, real *vl, - real *vu, integer *il, integer *iu, real *abstol, integer *m, real * - w, real *z__, integer *ldz, real *work, integer *iwork, integer * - ifail, integer *info); - -/* Subroutine */ int ssbgst_(char *vect, char *uplo, integer *n, integer *ka, - integer *kb, real *ab, integer *ldab, real *bb, integer *ldbb, real * - x, integer *ldx, real *work, integer *info); - -/* Subroutine */ int ssbgv_(char *jobz, char *uplo, integer *n, integer *ka, - integer *kb, real *ab, integer *ldab, real *bb, integer *ldbb, real * - w, real *z__, integer *ldz, real *work, integer *info); - -/* Subroutine */ int ssbgvd_(char *jobz, char *uplo, integer *n, integer *ka, - integer *kb, real *ab, integer *ldab, real *bb, integer *ldbb, real * - w, real *z__, integer *ldz, real *work, integer *lwork, integer * - iwork, integer *liwork, integer *info); - -/* Subroutine */ int ssbgvx_(char *jobz, char *range, char *uplo, integer *n, - integer *ka, integer *kb, real *ab, integer *ldab, real *bb, integer * - ldbb, real *q, integer *ldq, real *vl, real *vu, integer *il, integer - *iu, real *abstol, integer *m, real *w, real *z__, integer *ldz, real - *work, integer *iwork, integer *ifail, integer *info); - -/* Subroutine */ int ssbtrd_(char *vect, char *uplo, integer *n, integer *kd, - real *ab, integer *ldab, real *d__, real *e, real *q, integer *ldq, - real *work, integer *info); - -/* Subroutine */ int sspcon_(char *uplo, integer *n, real *ap, integer *ipiv, - real *anorm, real *rcond, real *work, integer *iwork, integer *info); - -/* Subroutine */ int sspev_(char *jobz, char *uplo, integer *n, real *ap, - real *w, real *z__, integer *ldz, real *work, integer *info); - -/* Subroutine */ int sspevd_(char *jobz, char *uplo, integer *n, real *ap, - real *w, real *z__, integer *ldz, real *work, integer *lwork, integer - *iwork, integer *liwork, integer *info); - -/* Subroutine */ int sspevx_(char *jobz, char *range, char *uplo, integer *n, - real *ap, real *vl, real *vu, integer *il, integer *iu, real *abstol, - integer *m, real *w, real *z__, integer *ldz, real *work, integer * - iwork, integer *ifail, integer *info); - -/* Subroutine */ int sspgst_(integer *itype, char *uplo, integer *n, real *ap, - real *bp, integer *info); - -/* Subroutine */ int sspgv_(integer *itype, char *jobz, char *uplo, integer * - n, real *ap, real *bp, real *w, real *z__, integer *ldz, real *work, - integer *info); - -/* Subroutine */ int sspgvd_(integer *itype, char *jobz, char *uplo, integer * - n, real *ap, real *bp, real *w, real *z__, integer *ldz, real *work, - integer *lwork, integer *iwork, integer *liwork, integer *info); - -/* Subroutine */ int sspgvx_(integer *itype, char *jobz, char *range, char * - uplo, integer *n, real *ap, real *bp, real *vl, real *vu, integer *il, - integer *iu, real *abstol, integer *m, real *w, real *z__, integer * - ldz, real *work, integer *iwork, integer *ifail, integer *info); - -/* Subroutine */ int ssprfs_(char *uplo, integer *n, integer *nrhs, real *ap, - real *afp, integer *ipiv, real *b, integer *ldb, real *x, integer * - ldx, real *ferr, real *berr, real *work, integer *iwork, integer * - info); - -/* Subroutine */ int sspsv_(char *uplo, integer *n, integer *nrhs, real *ap, - integer *ipiv, real *b, integer *ldb, integer *info); - -/* Subroutine */ int sspsvx_(char *fact, char *uplo, integer *n, integer * - nrhs, real *ap, real *afp, integer *ipiv, real *b, integer *ldb, real - *x, integer *ldx, real *rcond, real *ferr, real *berr, real *work, - integer *iwork, integer *info); - -/* Subroutine */ int ssptrd_(char *uplo, integer *n, real *ap, real *d__, - real *e, real *tau, integer *info); - -/* Subroutine */ int ssptrf_(char *uplo, integer *n, real *ap, integer *ipiv, - integer *info); - -/* Subroutine */ int ssptri_(char *uplo, integer *n, real *ap, integer *ipiv, - real *work, integer *info); - -/* Subroutine */ int ssptrs_(char *uplo, integer *n, integer *nrhs, real *ap, - integer *ipiv, real *b, integer *ldb, integer *info); - -/* Subroutine */ int sstebz_(char *range, char *order, integer *n, real *vl, - real *vu, integer *il, integer *iu, real *abstol, real *d__, real *e, - integer *m, integer *nsplit, real *w, integer *iblock, integer * - isplit, real *work, integer *iwork, integer *info); - -/* Subroutine */ int sstedc_(char *compz, integer *n, real *d__, real *e, - real *z__, integer *ldz, real *work, integer *lwork, integer *iwork, - integer *liwork, integer *info); - -/* Subroutine */ int sstegr_(char *jobz, char *range, integer *n, real *d__, - real *e, real *vl, real *vu, integer *il, integer *iu, real *abstol, - integer *m, real *w, real *z__, integer *ldz, integer *isuppz, real * - work, integer *lwork, integer *iwork, integer *liwork, integer *info); - -/* Subroutine */ int sstein_(integer *n, real *d__, real *e, integer *m, real - *w, integer *iblock, integer *isplit, real *z__, integer *ldz, real * - work, integer *iwork, integer *ifail, integer *info); - -/* Subroutine */ int ssteqr_(char *compz, integer *n, real *d__, real *e, - real *z__, integer *ldz, real *work, integer *info); - -/* Subroutine */ int ssterf_(integer *n, real *d__, real *e, integer *info); - -/* Subroutine */ int sstev_(char *jobz, integer *n, real *d__, real *e, real * - z__, integer *ldz, real *work, integer *info); - -/* Subroutine */ int sstevd_(char *jobz, integer *n, real *d__, real *e, real - *z__, integer *ldz, real *work, integer *lwork, integer *iwork, - integer *liwork, integer *info); - -/* Subroutine */ int sstevr_(char *jobz, char *range, integer *n, real *d__, - real *e, real *vl, real *vu, integer *il, integer *iu, real *abstol, - integer *m, real *w, real *z__, integer *ldz, integer *isuppz, real * - work, integer *lwork, integer *iwork, integer *liwork, integer *info); - -/* Subroutine */ int sstevx_(char *jobz, char *range, integer *n, real *d__, - real *e, real *vl, real *vu, integer *il, integer *iu, real *abstol, - integer *m, real *w, real *z__, integer *ldz, real *work, integer * - iwork, integer *ifail, integer *info); - -/* Subroutine */ int ssycon_(char *uplo, integer *n, real *a, integer *lda, - integer *ipiv, real *anorm, real *rcond, real *work, integer *iwork, - integer *info); - -/* Subroutine */ int ssyev_(char *jobz, char *uplo, integer *n, real *a, - integer *lda, real *w, real *work, integer *lwork, integer *info); - -/* Subroutine */ int ssyevd_(char *jobz, char *uplo, integer *n, real *a, - integer *lda, real *w, real *work, integer *lwork, integer *iwork, - integer *liwork, integer *info); - -/* Subroutine */ int ssyevr_(char *jobz, char *range, char *uplo, integer *n, - real *a, integer *lda, real *vl, real *vu, integer *il, integer *iu, - real *abstol, integer *m, real *w, real *z__, integer *ldz, integer * - isuppz, real *work, integer *lwork, integer *iwork, integer *liwork, - integer *info); - -/* Subroutine */ int ssyevx_(char *jobz, char *range, char *uplo, integer *n, - real *a, integer *lda, real *vl, real *vu, integer *il, integer *iu, - real *abstol, integer *m, real *w, real *z__, integer *ldz, real * - work, integer *lwork, integer *iwork, integer *ifail, integer *info); - -/* Subroutine */ int ssygs2_(integer *itype, char *uplo, integer *n, real *a, - integer *lda, real *b, integer *ldb, integer *info); - -/* Subroutine */ int ssygst_(integer *itype, char *uplo, integer *n, real *a, - integer *lda, real *b, integer *ldb, integer *info); - -/* Subroutine */ int ssygv_(integer *itype, char *jobz, char *uplo, integer * - n, real *a, integer *lda, real *b, integer *ldb, real *w, real *work, - integer *lwork, integer *info); - -/* Subroutine */ int ssygvd_(integer *itype, char *jobz, char *uplo, integer * - n, real *a, integer *lda, real *b, integer *ldb, real *w, real *work, - integer *lwork, integer *iwork, integer *liwork, integer *info); - -/* Subroutine */ int ssygvx_(integer *itype, char *jobz, char *range, char * - uplo, integer *n, real *a, integer *lda, real *b, integer *ldb, real * - vl, real *vu, integer *il, integer *iu, real *abstol, integer *m, - real *w, real *z__, integer *ldz, real *work, integer *lwork, integer - *iwork, integer *ifail, integer *info); - -/* Subroutine */ int ssyrfs_(char *uplo, integer *n, integer *nrhs, real *a, - integer *lda, real *af, integer *ldaf, integer *ipiv, real *b, - integer *ldb, real *x, integer *ldx, real *ferr, real *berr, real * - work, integer *iwork, integer *info); - -/* Subroutine */ int ssysv_(char *uplo, integer *n, integer *nrhs, real *a, - integer *lda, integer *ipiv, real *b, integer *ldb, real *work, - integer *lwork, integer *info); - -/* Subroutine */ int ssysvx_(char *fact, char *uplo, integer *n, integer * - nrhs, real *a, integer *lda, real *af, integer *ldaf, integer *ipiv, - real *b, integer *ldb, real *x, integer *ldx, real *rcond, real *ferr, - real *berr, real *work, integer *lwork, integer *iwork, integer * - info); - -/* Subroutine */ int ssytd2_(char *uplo, integer *n, real *a, integer *lda, - real *d__, real *e, real *tau, integer *info); - -/* Subroutine */ int ssytf2_(char *uplo, integer *n, real *a, integer *lda, - integer *ipiv, integer *info); - -/* Subroutine */ int ssytrd_(char *uplo, integer *n, real *a, integer *lda, - real *d__, real *e, real *tau, real *work, integer *lwork, integer * - info); - -/* Subroutine */ int ssytrf_(char *uplo, integer *n, real *a, integer *lda, - integer *ipiv, real *work, integer *lwork, integer *info); - -/* Subroutine */ int ssytri_(char *uplo, integer *n, real *a, integer *lda, - integer *ipiv, real *work, integer *info); - -/* Subroutine */ int ssytrs_(char *uplo, integer *n, integer *nrhs, real *a, - integer *lda, integer *ipiv, real *b, integer *ldb, integer *info); - -/* Subroutine */ int stbcon_(char *norm, char *uplo, char *diag, integer *n, - integer *kd, real *ab, integer *ldab, real *rcond, real *work, - integer *iwork, integer *info); - -/* Subroutine */ int stbrfs_(char *uplo, char *trans, char *diag, integer *n, - integer *kd, integer *nrhs, real *ab, integer *ldab, real *b, integer - *ldb, real *x, integer *ldx, real *ferr, real *berr, real *work, - integer *iwork, integer *info); - -/* Subroutine */ int stbtrs_(char *uplo, char *trans, char *diag, integer *n, - integer *kd, integer *nrhs, real *ab, integer *ldab, real *b, integer - *ldb, integer *info); - -/* Subroutine */ int stgevc_(char *side, char *howmny, logical *select, - integer *n, real *a, integer *lda, real *b, integer *ldb, real *vl, - integer *ldvl, real *vr, integer *ldvr, integer *mm, integer *m, real - *work, integer *info); - -/* Subroutine */ int stgex2_(logical *wantq, logical *wantz, integer *n, real - *a, integer *lda, real *b, integer *ldb, real *q, integer *ldq, real * - z__, integer *ldz, integer *j1, integer *n1, integer *n2, real *work, - integer *lwork, integer *info); - -/* Subroutine */ int stgexc_(logical *wantq, logical *wantz, integer *n, real - *a, integer *lda, real *b, integer *ldb, real *q, integer *ldq, real * - z__, integer *ldz, integer *ifst, integer *ilst, real *work, integer * - lwork, integer *info); - -/* Subroutine */ int stgsen_(integer *ijob, logical *wantq, logical *wantz, - logical *select, integer *n, real *a, integer *lda, real *b, integer * - ldb, real *alphar, real *alphai, real *beta, real *q, integer *ldq, - real *z__, integer *ldz, integer *m, real *pl, real *pr, real *dif, - real *work, integer *lwork, integer *iwork, integer *liwork, integer * - info); - -/* Subroutine */ int stgsja_(char *jobu, char *jobv, char *jobq, integer *m, - integer *p, integer *n, integer *k, integer *l, real *a, integer *lda, - real *b, integer *ldb, real *tola, real *tolb, real *alpha, real * - beta, real *u, integer *ldu, real *v, integer *ldv, real *q, integer * - ldq, real *work, integer *ncycle, integer *info); - -/* Subroutine */ int stgsna_(char *job, char *howmny, logical *select, - integer *n, real *a, integer *lda, real *b, integer *ldb, real *vl, - integer *ldvl, real *vr, integer *ldvr, real *s, real *dif, integer * - mm, integer *m, real *work, integer *lwork, integer *iwork, integer * - info); - -/* Subroutine */ int stgsy2_(char *trans, integer *ijob, integer *m, integer * - n, real *a, integer *lda, real *b, integer *ldb, real *c__, integer * - ldc, real *d__, integer *ldd, real *e, integer *lde, real *f, integer - *ldf, real *scale, real *rdsum, real *rdscal, integer *iwork, integer - *pq, integer *info); - -/* Subroutine */ int stgsyl_(char *trans, integer *ijob, integer *m, integer * - n, real *a, integer *lda, real *b, integer *ldb, real *c__, integer * - ldc, real *d__, integer *ldd, real *e, integer *lde, real *f, integer - *ldf, real *scale, real *dif, real *work, integer *lwork, integer * - iwork, integer *info); - -/* Subroutine */ int stpcon_(char *norm, char *uplo, char *diag, integer *n, - real *ap, real *rcond, real *work, integer *iwork, integer *info); - -/* Subroutine */ int stprfs_(char *uplo, char *trans, char *diag, integer *n, - integer *nrhs, real *ap, real *b, integer *ldb, real *x, integer *ldx, - real *ferr, real *berr, real *work, integer *iwork, integer *info); - -/* Subroutine */ int stptri_(char *uplo, char *diag, integer *n, real *ap, - integer *info); - -/* Subroutine */ int stptrs_(char *uplo, char *trans, char *diag, integer *n, - integer *nrhs, real *ap, real *b, integer *ldb, integer *info); - -/* Subroutine */ int strcon_(char *norm, char *uplo, char *diag, integer *n, - real *a, integer *lda, real *rcond, real *work, integer *iwork, - integer *info); - -/* Subroutine */ int strevc_(char *side, char *howmny, logical *select, - integer *n, real *t, integer *ldt, real *vl, integer *ldvl, real *vr, - integer *ldvr, integer *mm, integer *m, real *work, integer *info); - -/* Subroutine */ int strexc_(char *compq, integer *n, real *t, integer *ldt, - real *q, integer *ldq, integer *ifst, integer *ilst, real *work, - integer *info); - -/* Subroutine */ int strrfs_(char *uplo, char *trans, char *diag, integer *n, - integer *nrhs, real *a, integer *lda, real *b, integer *ldb, real *x, - integer *ldx, real *ferr, real *berr, real *work, integer *iwork, - integer *info); - -/* Subroutine */ int strsen_(char *job, char *compq, logical *select, integer - *n, real *t, integer *ldt, real *q, integer *ldq, real *wr, real *wi, - integer *m, real *s, real *sep, real *work, integer *lwork, integer * - iwork, integer *liwork, integer *info); - -/* Subroutine */ int strsna_(char *job, char *howmny, logical *select, - integer *n, real *t, integer *ldt, real *vl, integer *ldvl, real *vr, - integer *ldvr, real *s, real *sep, integer *mm, integer *m, real * - work, integer *ldwork, integer *iwork, integer *info); - -/* Subroutine */ int strsyl_(char *trana, char *tranb, integer *isgn, integer - *m, integer *n, real *a, integer *lda, real *b, integer *ldb, real * - c__, integer *ldc, real *scale, integer *info); - -/* Subroutine */ int strti2_(char *uplo, char *diag, integer *n, real *a, - integer *lda, integer *info); - -/* Subroutine */ int strtri_(char *uplo, char *diag, integer *n, real *a, - integer *lda, integer *info); - -/* Subroutine */ int strtrs_(char *uplo, char *trans, char *diag, integer *n, - integer *nrhs, real *a, integer *lda, real *b, integer *ldb, integer * - info); - -/* Subroutine */ int stzrqf_(integer *m, integer *n, real *a, integer *lda, - real *tau, integer *info); - -/* Subroutine */ int stzrzf_(integer *m, integer *n, real *a, integer *lda, - real *tau, real *work, integer *lwork, integer *info); - -/* Subroutine */ int xerbla_(char *srname, integer *info); - -/* Subroutine */ int zbdsqr_(char *uplo, integer *n, integer *ncvt, integer * - nru, integer *ncc, doublereal *d__, doublereal *e, doublecomplex *vt, - integer *ldvt, doublecomplex *u, integer *ldu, doublecomplex *c__, - integer *ldc, doublereal *rwork, integer *info); - -/* Subroutine */ int zdrot_(integer *n, doublecomplex *cx, integer *incx, - doublecomplex *cy, integer *incy, doublereal *c__, doublereal *s); - -/* Subroutine */ int zdrscl_(integer *n, doublereal *sa, doublecomplex *sx, - integer *incx); - -/* Subroutine */ int zgbbrd_(char *vect, integer *m, integer *n, integer *ncc, - integer *kl, integer *ku, doublecomplex *ab, integer *ldab, - doublereal *d__, doublereal *e, doublecomplex *q, integer *ldq, - doublecomplex *pt, integer *ldpt, doublecomplex *c__, integer *ldc, - doublecomplex *work, doublereal *rwork, integer *info); - -/* Subroutine */ int zgbcon_(char *norm, integer *n, integer *kl, integer *ku, - doublecomplex *ab, integer *ldab, integer *ipiv, doublereal *anorm, - doublereal *rcond, doublecomplex *work, doublereal *rwork, integer * - info); - -/* Subroutine */ int zgbequ_(integer *m, integer *n, integer *kl, integer *ku, - doublecomplex *ab, integer *ldab, doublereal *r__, doublereal *c__, - doublereal *rowcnd, doublereal *colcnd, doublereal *amax, integer * - info); - -/* Subroutine */ int zgbrfs_(char *trans, integer *n, integer *kl, integer * - ku, integer *nrhs, doublecomplex *ab, integer *ldab, doublecomplex * - afb, integer *ldafb, integer *ipiv, doublecomplex *b, integer *ldb, - doublecomplex *x, integer *ldx, doublereal *ferr, doublereal *berr, - doublecomplex *work, doublereal *rwork, integer *info); - -/* Subroutine */ int zgbsv_(integer *n, integer *kl, integer *ku, integer * - nrhs, doublecomplex *ab, integer *ldab, integer *ipiv, doublecomplex * - b, integer *ldb, integer *info); - -/* Subroutine */ int zgbsvx_(char *fact, char *trans, integer *n, integer *kl, - integer *ku, integer *nrhs, doublecomplex *ab, integer *ldab, - doublecomplex *afb, integer *ldafb, integer *ipiv, char *equed, - doublereal *r__, doublereal *c__, doublecomplex *b, integer *ldb, - doublecomplex *x, integer *ldx, doublereal *rcond, doublereal *ferr, - doublereal *berr, doublecomplex *work, doublereal *rwork, integer * - info); - -/* Subroutine */ int zgbtf2_(integer *m, integer *n, integer *kl, integer *ku, - doublecomplex *ab, integer *ldab, integer *ipiv, integer *info); - -/* Subroutine */ int zgbtrf_(integer *m, integer *n, integer *kl, integer *ku, - doublecomplex *ab, integer *ldab, integer *ipiv, integer *info); - -/* Subroutine */ int zgbtrs_(char *trans, integer *n, integer *kl, integer * - ku, integer *nrhs, doublecomplex *ab, integer *ldab, integer *ipiv, - doublecomplex *b, integer *ldb, integer *info); - -/* Subroutine */ int zgebak_(char *job, char *side, integer *n, integer *ilo, - integer *ihi, doublereal *scale, integer *m, doublecomplex *v, - integer *ldv, integer *info); - -/* Subroutine */ int zgebal_(char *job, integer *n, doublecomplex *a, integer - *lda, integer *ilo, integer *ihi, doublereal *scale, integer *info); - -/* Subroutine */ int zgebd2_(integer *m, integer *n, doublecomplex *a, - integer *lda, doublereal *d__, doublereal *e, doublecomplex *tauq, - doublecomplex *taup, doublecomplex *work, integer *info); - -/* Subroutine */ int zgebrd_(integer *m, integer *n, doublecomplex *a, - integer *lda, doublereal *d__, doublereal *e, doublecomplex *tauq, - doublecomplex *taup, doublecomplex *work, integer *lwork, integer * - info); - -/* Subroutine */ int zgecon_(char *norm, integer *n, doublecomplex *a, - integer *lda, doublereal *anorm, doublereal *rcond, doublecomplex * - work, doublereal *rwork, integer *info); - -/* Subroutine */ int zgeequ_(integer *m, integer *n, doublecomplex *a, - integer *lda, doublereal *r__, doublereal *c__, doublereal *rowcnd, - doublereal *colcnd, doublereal *amax, integer *info); - -/* Subroutine */ int zgees_(char *jobvs, char *sort, L_fp select, integer *n, - doublecomplex *a, integer *lda, integer *sdim, doublecomplex *w, - doublecomplex *vs, integer *ldvs, doublecomplex *work, integer *lwork, - doublereal *rwork, logical *bwork, integer *info); - -/* Subroutine */ int zgeesx_(char *jobvs, char *sort, L_fp select, char * - sense, integer *n, doublecomplex *a, integer *lda, integer *sdim, - doublecomplex *w, doublecomplex *vs, integer *ldvs, doublereal * - rconde, doublereal *rcondv, doublecomplex *work, integer *lwork, - doublereal *rwork, logical *bwork, integer *info); - -/* Subroutine */ int zgeev_(char *jobvl, char *jobvr, integer *n, - doublecomplex *a, integer *lda, doublecomplex *w, doublecomplex *vl, - integer *ldvl, doublecomplex *vr, integer *ldvr, doublecomplex *work, - integer *lwork, doublereal *rwork, integer *info); - -/* Subroutine */ int zgeevx_(char *balanc, char *jobvl, char *jobvr, char * - sense, integer *n, doublecomplex *a, integer *lda, doublecomplex *w, - doublecomplex *vl, integer *ldvl, doublecomplex *vr, integer *ldvr, - integer *ilo, integer *ihi, doublereal *scale, doublereal *abnrm, - doublereal *rconde, doublereal *rcondv, doublecomplex *work, integer * - lwork, doublereal *rwork, integer *info); - -/* Subroutine */ int zgegs_(char *jobvsl, char *jobvsr, integer *n, - doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb, - doublecomplex *alpha, doublecomplex *beta, doublecomplex *vsl, - integer *ldvsl, doublecomplex *vsr, integer *ldvsr, doublecomplex * - work, integer *lwork, doublereal *rwork, integer *info); - -/* Subroutine */ int zgegv_(char *jobvl, char *jobvr, integer *n, - doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb, - doublecomplex *alpha, doublecomplex *beta, doublecomplex *vl, integer - *ldvl, doublecomplex *vr, integer *ldvr, doublecomplex *work, integer - *lwork, doublereal *rwork, integer *info); - -/* Subroutine */ int zgehd2_(integer *n, integer *ilo, integer *ihi, - doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex * - work, integer *info); - -/* Subroutine */ int zgehrd_(integer *n, integer *ilo, integer *ihi, - doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex * - work, integer *lwork, integer *info); - -/* Subroutine */ int zgelq2_(integer *m, integer *n, doublecomplex *a, - integer *lda, doublecomplex *tau, doublecomplex *work, integer *info); - -/* Subroutine */ int zgelqf_(integer *m, integer *n, doublecomplex *a, - integer *lda, doublecomplex *tau, doublecomplex *work, integer *lwork, - integer *info); - -/* Subroutine */ int zgels_(char *trans, integer *m, integer *n, integer * - nrhs, doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb, - doublecomplex *work, integer *lwork, integer *info); - -/* Subroutine */ int zgelsx_(integer *m, integer *n, integer *nrhs, - doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb, - integer *jpvt, doublereal *rcond, integer *rank, doublecomplex *work, - doublereal *rwork, integer *info); - -/* Subroutine */ int zgelsy_(integer *m, integer *n, integer *nrhs, - doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb, - integer *jpvt, doublereal *rcond, integer *rank, doublecomplex *work, - integer *lwork, doublereal *rwork, integer *info); - -/* Subroutine */ int zgeql2_(integer *m, integer *n, doublecomplex *a, - integer *lda, doublecomplex *tau, doublecomplex *work, integer *info); - -/* Subroutine */ int zgeqlf_(integer *m, integer *n, doublecomplex *a, - integer *lda, doublecomplex *tau, doublecomplex *work, integer *lwork, - integer *info); - -/* Subroutine */ int zgeqp3_(integer *m, integer *n, doublecomplex *a, - integer *lda, integer *jpvt, doublecomplex *tau, doublecomplex *work, - integer *lwork, doublereal *rwork, integer *info); - -/* Subroutine */ int zgeqpf_(integer *m, integer *n, doublecomplex *a, - integer *lda, integer *jpvt, doublecomplex *tau, doublecomplex *work, - doublereal *rwork, integer *info); - -/* Subroutine */ int zgeqr2_(integer *m, integer *n, doublecomplex *a, - integer *lda, doublecomplex *tau, doublecomplex *work, integer *info); - -/* Subroutine */ int zgeqrf_(integer *m, integer *n, doublecomplex *a, - integer *lda, doublecomplex *tau, doublecomplex *work, integer *lwork, - integer *info); - -/* Subroutine */ int zgerfs_(char *trans, integer *n, integer *nrhs, - doublecomplex *a, integer *lda, doublecomplex *af, integer *ldaf, - integer *ipiv, doublecomplex *b, integer *ldb, doublecomplex *x, - integer *ldx, doublereal *ferr, doublereal *berr, doublecomplex *work, - doublereal *rwork, integer *info); - -/* Subroutine */ int zgerq2_(integer *m, integer *n, doublecomplex *a, - integer *lda, doublecomplex *tau, doublecomplex *work, integer *info); - -/* Subroutine */ int zgerqf_(integer *m, integer *n, doublecomplex *a, - integer *lda, doublecomplex *tau, doublecomplex *work, integer *lwork, - integer *info); - -/* Subroutine */ int zgesc2_(integer *n, doublecomplex *a, integer *lda, - doublecomplex *rhs, integer *ipiv, integer *jpiv, doublereal *scale); - -/* Subroutine */ int zgesv_(integer *n, integer *nrhs, doublecomplex *a, - integer *lda, integer *ipiv, doublecomplex *b, integer *ldb, integer * - info); - -/* Subroutine */ int zgesvx_(char *fact, char *trans, integer *n, integer * - nrhs, doublecomplex *a, integer *lda, doublecomplex *af, integer * - ldaf, integer *ipiv, char *equed, doublereal *r__, doublereal *c__, - doublecomplex *b, integer *ldb, doublecomplex *x, integer *ldx, - doublereal *rcond, doublereal *ferr, doublereal *berr, doublecomplex * - work, doublereal *rwork, integer *info); - -/* Subroutine */ int zgetc2_(integer *n, doublecomplex *a, integer *lda, - integer *ipiv, integer *jpiv, integer *info); - -/* Subroutine */ int zgetf2_(integer *m, integer *n, doublecomplex *a, - integer *lda, integer *ipiv, integer *info); - -/* Subroutine */ int zgetrf_(integer *m, integer *n, doublecomplex *a, - integer *lda, integer *ipiv, integer *info); - -/* Subroutine */ int zgetri_(integer *n, doublecomplex *a, integer *lda, - integer *ipiv, doublecomplex *work, integer *lwork, integer *info); - -/* Subroutine */ int zgetrs_(char *trans, integer *n, integer *nrhs, - doublecomplex *a, integer *lda, integer *ipiv, doublecomplex *b, - integer *ldb, integer *info); - -/* Subroutine */ int zggbak_(char *job, char *side, integer *n, integer *ilo, - integer *ihi, doublereal *lscale, doublereal *rscale, integer *m, - doublecomplex *v, integer *ldv, integer *info); - -/* Subroutine */ int zggbal_(char *job, integer *n, doublecomplex *a, integer - *lda, doublecomplex *b, integer *ldb, integer *ilo, integer *ihi, - doublereal *lscale, doublereal *rscale, doublereal *work, integer * - info); - -/* Subroutine */ int zgges_(char *jobvsl, char *jobvsr, char *sort, L_fp - delctg, integer *n, doublecomplex *a, integer *lda, doublecomplex *b, - integer *ldb, integer *sdim, doublecomplex *alpha, doublecomplex * - beta, doublecomplex *vsl, integer *ldvsl, doublecomplex *vsr, integer - *ldvsr, doublecomplex *work, integer *lwork, doublereal *rwork, - logical *bwork, integer *info); - -/* Subroutine */ int zggesx_(char *jobvsl, char *jobvsr, char *sort, L_fp - delctg, char *sense, integer *n, doublecomplex *a, integer *lda, - doublecomplex *b, integer *ldb, integer *sdim, doublecomplex *alpha, - doublecomplex *beta, doublecomplex *vsl, integer *ldvsl, - doublecomplex *vsr, integer *ldvsr, doublereal *rconde, doublereal * - rcondv, doublecomplex *work, integer *lwork, doublereal *rwork, - integer *iwork, integer *liwork, logical *bwork, integer *info); - -/* Subroutine */ int zggev_(char *jobvl, char *jobvr, integer *n, - doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb, - doublecomplex *alpha, doublecomplex *beta, doublecomplex *vl, integer - *ldvl, doublecomplex *vr, integer *ldvr, doublecomplex *work, integer - *lwork, doublereal *rwork, integer *info); - -/* Subroutine */ int zggevx_(char *balanc, char *jobvl, char *jobvr, char * - sense, integer *n, doublecomplex *a, integer *lda, doublecomplex *b, - integer *ldb, doublecomplex *alpha, doublecomplex *beta, - doublecomplex *vl, integer *ldvl, doublecomplex *vr, integer *ldvr, - integer *ilo, integer *ihi, doublereal *lscale, doublereal *rscale, - doublereal *abnrm, doublereal *bbnrm, doublereal *rconde, doublereal * - rcondv, doublecomplex *work, integer *lwork, doublereal *rwork, - integer *iwork, logical *bwork, integer *info); - -/* Subroutine */ int zggglm_(integer *n, integer *m, integer *p, - doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb, - doublecomplex *d__, doublecomplex *x, doublecomplex *y, doublecomplex - *work, integer *lwork, integer *info); - -/* Subroutine */ int zgghrd_(char *compq, char *compz, integer *n, integer * - ilo, integer *ihi, doublecomplex *a, integer *lda, doublecomplex *b, - integer *ldb, doublecomplex *q, integer *ldq, doublecomplex *z__, - integer *ldz, integer *info); - -/* Subroutine */ int zgglse_(integer *m, integer *n, integer *p, - doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb, - doublecomplex *c__, doublecomplex *d__, doublecomplex *x, - doublecomplex *work, integer *lwork, integer *info); - -/* Subroutine */ int zggqrf_(integer *n, integer *m, integer *p, - doublecomplex *a, integer *lda, doublecomplex *taua, doublecomplex *b, - integer *ldb, doublecomplex *taub, doublecomplex *work, integer * - lwork, integer *info); - -/* Subroutine */ int zggrqf_(integer *m, integer *p, integer *n, - doublecomplex *a, integer *lda, doublecomplex *taua, doublecomplex *b, - integer *ldb, doublecomplex *taub, doublecomplex *work, integer * - lwork, integer *info); - -/* Subroutine */ int zggsvd_(char *jobu, char *jobv, char *jobq, integer *m, - integer *n, integer *p, integer *k, integer *l, doublecomplex *a, - integer *lda, doublecomplex *b, integer *ldb, doublereal *alpha, - doublereal *beta, doublecomplex *u, integer *ldu, doublecomplex *v, - integer *ldv, doublecomplex *q, integer *ldq, doublecomplex *work, - doublereal *rwork, integer *iwork, integer *info); - -/* Subroutine */ int zggsvp_(char *jobu, char *jobv, char *jobq, integer *m, - integer *p, integer *n, doublecomplex *a, integer *lda, doublecomplex - *b, integer *ldb, doublereal *tola, doublereal *tolb, integer *k, - integer *l, doublecomplex *u, integer *ldu, doublecomplex *v, integer - *ldv, doublecomplex *q, integer *ldq, integer *iwork, doublereal * - rwork, doublecomplex *tau, doublecomplex *work, integer *info); - -/* Subroutine */ int zgtcon_(char *norm, integer *n, doublecomplex *dl, - doublecomplex *d__, doublecomplex *du, doublecomplex *du2, integer * - ipiv, doublereal *anorm, doublereal *rcond, doublecomplex *work, - integer *info); - -/* Subroutine */ int zgtrfs_(char *trans, integer *n, integer *nrhs, - doublecomplex *dl, doublecomplex *d__, doublecomplex *du, - doublecomplex *dlf, doublecomplex *df, doublecomplex *duf, - doublecomplex *du2, integer *ipiv, doublecomplex *b, integer *ldb, - doublecomplex *x, integer *ldx, doublereal *ferr, doublereal *berr, - doublecomplex *work, doublereal *rwork, integer *info); - -/* Subroutine */ int zgtsv_(integer *n, integer *nrhs, doublecomplex *dl, - doublecomplex *d__, doublecomplex *du, doublecomplex *b, integer *ldb, - integer *info); - -/* Subroutine */ int zgtsvx_(char *fact, char *trans, integer *n, integer * - nrhs, doublecomplex *dl, doublecomplex *d__, doublecomplex *du, - doublecomplex *dlf, doublecomplex *df, doublecomplex *duf, - doublecomplex *du2, integer *ipiv, doublecomplex *b, integer *ldb, - doublecomplex *x, integer *ldx, doublereal *rcond, doublereal *ferr, - doublereal *berr, doublecomplex *work, doublereal *rwork, integer * - info); - -/* Subroutine */ int zgttrf_(integer *n, doublecomplex *dl, doublecomplex * - d__, doublecomplex *du, doublecomplex *du2, integer *ipiv, integer * - info); - -/* Subroutine */ int zgttrs_(char *trans, integer *n, integer *nrhs, - doublecomplex *dl, doublecomplex *d__, doublecomplex *du, - doublecomplex *du2, integer *ipiv, doublecomplex *b, integer *ldb, - integer *info); - -/* Subroutine */ int zgtts2_(integer *itrans, integer *n, integer *nrhs, - doublecomplex *dl, doublecomplex *d__, doublecomplex *du, - doublecomplex *du2, integer *ipiv, doublecomplex *b, integer *ldb); - -/* Subroutine */ int zhbev_(char *jobz, char *uplo, integer *n, integer *kd, - doublecomplex *ab, integer *ldab, doublereal *w, doublecomplex *z__, - integer *ldz, doublecomplex *work, doublereal *rwork, integer *info); - -/* Subroutine */ int zhbevd_(char *jobz, char *uplo, integer *n, integer *kd, - doublecomplex *ab, integer *ldab, doublereal *w, doublecomplex *z__, - integer *ldz, doublecomplex *work, integer *lwork, doublereal *rwork, - integer *lrwork, integer *iwork, integer *liwork, integer *info); - -/* Subroutine */ int zhbevx_(char *jobz, char *range, char *uplo, integer *n, - integer *kd, doublecomplex *ab, integer *ldab, doublecomplex *q, - integer *ldq, doublereal *vl, doublereal *vu, integer *il, integer * - iu, doublereal *abstol, integer *m, doublereal *w, doublecomplex *z__, - integer *ldz, doublecomplex *work, doublereal *rwork, integer *iwork, - integer *ifail, integer *info); - -/* Subroutine */ int zhbgst_(char *vect, char *uplo, integer *n, integer *ka, - integer *kb, doublecomplex *ab, integer *ldab, doublecomplex *bb, - integer *ldbb, doublecomplex *x, integer *ldx, doublecomplex *work, - doublereal *rwork, integer *info); - -/* Subroutine */ int zhbgv_(char *jobz, char *uplo, integer *n, integer *ka, - integer *kb, doublecomplex *ab, integer *ldab, doublecomplex *bb, - integer *ldbb, doublereal *w, doublecomplex *z__, integer *ldz, - doublecomplex *work, doublereal *rwork, integer *info); - -/* Subroutine */ int zhbgvx_(char *jobz, char *range, char *uplo, integer *n, - integer *ka, integer *kb, doublecomplex *ab, integer *ldab, - doublecomplex *bb, integer *ldbb, doublecomplex *q, integer *ldq, - doublereal *vl, doublereal *vu, integer *il, integer *iu, doublereal * - abstol, integer *m, doublereal *w, doublecomplex *z__, integer *ldz, - doublecomplex *work, doublereal *rwork, integer *iwork, integer * - ifail, integer *info); - -/* Subroutine */ int zhbtrd_(char *vect, char *uplo, integer *n, integer *kd, - doublecomplex *ab, integer *ldab, doublereal *d__, doublereal *e, - doublecomplex *q, integer *ldq, doublecomplex *work, integer *info); - -/* Subroutine */ int zhecon_(char *uplo, integer *n, doublecomplex *a, - integer *lda, integer *ipiv, doublereal *anorm, doublereal *rcond, - doublecomplex *work, integer *info); - -/* Subroutine */ int zheev_(char *jobz, char *uplo, integer *n, doublecomplex - *a, integer *lda, doublereal *w, doublecomplex *work, integer *lwork, - doublereal *rwork, integer *info); - -/* Subroutine */ int zheevd_(char *jobz, char *uplo, integer *n, - doublecomplex *a, integer *lda, doublereal *w, doublecomplex *work, - integer *lwork, doublereal *rwork, integer *lrwork, integer *iwork, - integer *liwork, integer *info); - -/* Subroutine */ int zheevr_(char *jobz, char *range, char *uplo, integer *n, - doublecomplex *a, integer *lda, doublereal *vl, doublereal *vu, - integer *il, integer *iu, doublereal *abstol, integer *m, doublereal * - w, doublecomplex *z__, integer *ldz, integer *isuppz, doublecomplex * - work, integer *lwork, doublereal *rwork, integer *lrwork, integer * - iwork, integer *liwork, integer *info); - -/* Subroutine */ int zheevx_(char *jobz, char *range, char *uplo, integer *n, - doublecomplex *a, integer *lda, doublereal *vl, doublereal *vu, - integer *il, integer *iu, doublereal *abstol, integer *m, doublereal * - w, doublecomplex *z__, integer *ldz, doublecomplex *work, integer * - lwork, doublereal *rwork, integer *iwork, integer *ifail, integer * - info); - -/* Subroutine */ int zhegs2_(integer *itype, char *uplo, integer *n, - doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb, - integer *info); - -/* Subroutine */ int zhegst_(integer *itype, char *uplo, integer *n, - doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb, - integer *info); - -/* Subroutine */ int zhegv_(integer *itype, char *jobz, char *uplo, integer * - n, doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb, - doublereal *w, doublecomplex *work, integer *lwork, doublereal *rwork, - integer *info); - -/* Subroutine */ int zhegvd_(integer *itype, char *jobz, char *uplo, integer * - n, doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb, - doublereal *w, doublecomplex *work, integer *lwork, doublereal *rwork, - integer *lrwork, integer *iwork, integer *liwork, integer *info); - -/* Subroutine */ int zhegvx_(integer *itype, char *jobz, char *range, char * - uplo, integer *n, doublecomplex *a, integer *lda, doublecomplex *b, - integer *ldb, doublereal *vl, doublereal *vu, integer *il, integer * - iu, doublereal *abstol, integer *m, doublereal *w, doublecomplex *z__, - integer *ldz, doublecomplex *work, integer *lwork, doublereal *rwork, - integer *iwork, integer *ifail, integer *info); - -/* Subroutine */ int zherfs_(char *uplo, integer *n, integer *nrhs, - doublecomplex *a, integer *lda, doublecomplex *af, integer *ldaf, - integer *ipiv, doublecomplex *b, integer *ldb, doublecomplex *x, - integer *ldx, doublereal *ferr, doublereal *berr, doublecomplex *work, - doublereal *rwork, integer *info); - -/* Subroutine */ int zhesv_(char *uplo, integer *n, integer *nrhs, - doublecomplex *a, integer *lda, integer *ipiv, doublecomplex *b, - integer *ldb, doublecomplex *work, integer *lwork, integer *info); - -/* Subroutine */ int zhesvx_(char *fact, char *uplo, integer *n, integer * - nrhs, doublecomplex *a, integer *lda, doublecomplex *af, integer * - ldaf, integer *ipiv, doublecomplex *b, integer *ldb, doublecomplex *x, - integer *ldx, doublereal *rcond, doublereal *ferr, doublereal *berr, - doublecomplex *work, integer *lwork, doublereal *rwork, integer *info); - -/* Subroutine */ int zhetf2_(char *uplo, integer *n, doublecomplex *a, - integer *lda, integer *ipiv, integer *info); - -/* Subroutine */ int zhetrd_(char *uplo, integer *n, doublecomplex *a, - integer *lda, doublereal *d__, doublereal *e, doublecomplex *tau, - doublecomplex *work, integer *lwork, integer *info); - -/* Subroutine */ int zhetrf_(char *uplo, integer *n, doublecomplex *a, - integer *lda, integer *ipiv, doublecomplex *work, integer *lwork, - integer *info); - -/* Subroutine */ int zhetri_(char *uplo, integer *n, doublecomplex *a, - integer *lda, integer *ipiv, doublecomplex *work, integer *info); - -/* Subroutine */ int zhetrs_(char *uplo, integer *n, integer *nrhs, - doublecomplex *a, integer *lda, integer *ipiv, doublecomplex *b, - integer *ldb, integer *info); - -/* Subroutine */ int zhgeqz_(char *job, char *compq, char *compz, integer *n, - integer *ilo, integer *ihi, doublecomplex *a, integer *lda, - doublecomplex *b, integer *ldb, doublecomplex *alpha, doublecomplex * - beta, doublecomplex *q, integer *ldq, doublecomplex *z__, integer * - ldz, doublecomplex *work, integer *lwork, doublereal *rwork, integer * - info); - -/* Subroutine */ int zhpcon_(char *uplo, integer *n, doublecomplex *ap, - integer *ipiv, doublereal *anorm, doublereal *rcond, doublecomplex * - work, integer *info); - -/* Subroutine */ int zhpev_(char *jobz, char *uplo, integer *n, doublecomplex - *ap, doublereal *w, doublecomplex *z__, integer *ldz, doublecomplex * - work, doublereal *rwork, integer *info); - -/* Subroutine */ int zhpevd_(char *jobz, char *uplo, integer *n, - doublecomplex *ap, doublereal *w, doublecomplex *z__, integer *ldz, - doublecomplex *work, integer *lwork, doublereal *rwork, integer * - lrwork, integer *iwork, integer *liwork, integer *info); - -/* Subroutine */ int zhpevx_(char *jobz, char *range, char *uplo, integer *n, - doublecomplex *ap, doublereal *vl, doublereal *vu, integer *il, - integer *iu, doublereal *abstol, integer *m, doublereal *w, - doublecomplex *z__, integer *ldz, doublecomplex *work, doublereal * - rwork, integer *iwork, integer *ifail, integer *info); - -/* Subroutine */ int zhpgst_(integer *itype, char *uplo, integer *n, - doublecomplex *ap, doublecomplex *bp, integer *info); - -/* Subroutine */ int zhpgv_(integer *itype, char *jobz, char *uplo, integer * - n, doublecomplex *ap, doublecomplex *bp, doublereal *w, doublecomplex - *z__, integer *ldz, doublecomplex *work, doublereal *rwork, integer * - info); - -/* Subroutine */ int zhpgvd_(integer *itype, char *jobz, char *uplo, integer * - n, doublecomplex *ap, doublecomplex *bp, doublereal *w, doublecomplex - *z__, integer *ldz, doublecomplex *work, integer *lwork, doublereal * - rwork, integer *lrwork, integer *iwork, integer *liwork, integer * - info); - -/* Subroutine */ int zhpgvx_(integer *itype, char *jobz, char *range, char * - uplo, integer *n, doublecomplex *ap, doublecomplex *bp, doublereal * - vl, doublereal *vu, integer *il, integer *iu, doublereal *abstol, - integer *m, doublereal *w, doublecomplex *z__, integer *ldz, - doublecomplex *work, doublereal *rwork, integer *iwork, integer * - ifail, integer *info); - -/* Subroutine */ int zhprfs_(char *uplo, integer *n, integer *nrhs, - doublecomplex *ap, doublecomplex *afp, integer *ipiv, doublecomplex * - b, integer *ldb, doublecomplex *x, integer *ldx, doublereal *ferr, - doublereal *berr, doublecomplex *work, doublereal *rwork, integer * - info); - -/* Subroutine */ int zhpsv_(char *uplo, integer *n, integer *nrhs, - doublecomplex *ap, integer *ipiv, doublecomplex *b, integer *ldb, - integer *info); - -/* Subroutine */ int zhpsvx_(char *fact, char *uplo, integer *n, integer * - nrhs, doublecomplex *ap, doublecomplex *afp, integer *ipiv, - doublecomplex *b, integer *ldb, doublecomplex *x, integer *ldx, - doublereal *rcond, doublereal *ferr, doublereal *berr, doublecomplex * - work, doublereal *rwork, integer *info); - -/* Subroutine */ int zhptrd_(char *uplo, integer *n, doublecomplex *ap, - doublereal *d__, doublereal *e, doublecomplex *tau, integer *info); - -/* Subroutine */ int zhptrf_(char *uplo, integer *n, doublecomplex *ap, - integer *ipiv, integer *info); - -/* Subroutine */ int zhptri_(char *uplo, integer *n, doublecomplex *ap, - integer *ipiv, doublecomplex *work, integer *info); - -/* Subroutine */ int zhptrs_(char *uplo, integer *n, integer *nrhs, - doublecomplex *ap, integer *ipiv, doublecomplex *b, integer *ldb, - integer *info); - -/* Subroutine */ int zhsein_(char *side, char *eigsrc, char *initv, logical * - select, integer *n, doublecomplex *h__, integer *ldh, doublecomplex * - w, doublecomplex *vl, integer *ldvl, doublecomplex *vr, integer *ldvr, - integer *mm, integer *m, doublecomplex *work, doublereal *rwork, - integer *ifaill, integer *ifailr, integer *info); - -/* Subroutine */ int zhseqr_(char *job, char *compz, integer *n, integer *ilo, - integer *ihi, doublecomplex *h__, integer *ldh, doublecomplex *w, - doublecomplex *z__, integer *ldz, doublecomplex *work, integer *lwork, - integer *info); - -/* Subroutine */ int zlabrd_(integer *m, integer *n, integer *nb, - doublecomplex *a, integer *lda, doublereal *d__, doublereal *e, - doublecomplex *tauq, doublecomplex *taup, doublecomplex *x, integer * - ldx, doublecomplex *y, integer *ldy); - -/* Subroutine */ int zlacgv_(integer *n, doublecomplex *x, integer *incx); - -/* Subroutine */ int zlacon_(integer *n, doublecomplex *v, doublecomplex *x, - doublereal *est, integer *kase); - -/* Subroutine */ int zlacp2_(char *uplo, integer *m, integer *n, doublereal * - a, integer *lda, doublecomplex *b, integer *ldb); - -/* Subroutine */ int zlacpy_(char *uplo, integer *m, integer *n, - doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb); - -/* Subroutine */ int zlacrm_(integer *m, integer *n, doublecomplex *a, - integer *lda, doublereal *b, integer *ldb, doublecomplex *c__, - integer *ldc, doublereal *rwork); - -/* Subroutine */ int zlacrt_(integer *n, doublecomplex *cx, integer *incx, - doublecomplex *cy, integer *incy, doublecomplex *c__, doublecomplex * - s); - -/* Subroutine */ int zlaed0_(integer *qsiz, integer *n, doublereal *d__, - doublereal *e, doublecomplex *q, integer *ldq, doublecomplex *qstore, - integer *ldqs, doublereal *rwork, integer *iwork, integer *info); - -/* Subroutine */ int zlaed7_(integer *n, integer *cutpnt, integer *qsiz, - integer *tlvls, integer *curlvl, integer *curpbm, doublereal *d__, - doublecomplex *q, integer *ldq, doublereal *rho, integer *indxq, - doublereal *qstore, integer *qptr, integer *prmptr, integer *perm, - integer *givptr, integer *givcol, doublereal *givnum, doublecomplex * - work, doublereal *rwork, integer *iwork, integer *info); - -/* Subroutine */ int zlaed8_(integer *k, integer *n, integer *qsiz, - doublecomplex *q, integer *ldq, doublereal *d__, doublereal *rho, - integer *cutpnt, doublereal *z__, doublereal *dlamda, doublecomplex * - q2, integer *ldq2, doublereal *w, integer *indxp, integer *indx, - integer *indxq, integer *perm, integer *givptr, integer *givcol, - doublereal *givnum, integer *info); - -/* Subroutine */ int zlaein_(logical *rightv, logical *noinit, integer *n, - doublecomplex *h__, integer *ldh, doublecomplex *w, doublecomplex *v, - doublecomplex *b, integer *ldb, doublereal *rwork, doublereal *eps3, - doublereal *smlnum, integer *info); - -/* Subroutine */ int zlaesy_(doublecomplex *a, doublecomplex *b, - doublecomplex *c__, doublecomplex *rt1, doublecomplex *rt2, - doublecomplex *evscal, doublecomplex *cs1, doublecomplex *sn1); - -/* Subroutine */ int zlaev2_(doublecomplex *a, doublecomplex *b, - doublecomplex *c__, doublereal *rt1, doublereal *rt2, doublereal *cs1, - doublecomplex *sn1); - -/* Subroutine */ int zlags2_(logical *upper, doublereal *a1, doublecomplex * - a2, doublereal *a3, doublereal *b1, doublecomplex *b2, doublereal *b3, - doublereal *csu, doublecomplex *snu, doublereal *csv, doublecomplex * - snv, doublereal *csq, doublecomplex *snq); - -/* Subroutine */ int zlagtm_(char *trans, integer *n, integer *nrhs, - doublereal *alpha, doublecomplex *dl, doublecomplex *d__, - doublecomplex *du, doublecomplex *x, integer *ldx, doublereal *beta, - doublecomplex *b, integer *ldb); - -/* Subroutine */ int zlahef_(char *uplo, integer *n, integer *nb, integer *kb, - doublecomplex *a, integer *lda, integer *ipiv, doublecomplex *w, - integer *ldw, integer *info); - -/* Subroutine */ int zlahqr_(logical *wantt, logical *wantz, integer *n, - integer *ilo, integer *ihi, doublecomplex *h__, integer *ldh, - doublecomplex *w, integer *iloz, integer *ihiz, doublecomplex *z__, - integer *ldz, integer *info); - -/* Subroutine */ int zlahrd_(integer *n, integer *k, integer *nb, - doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex *t, - integer *ldt, doublecomplex *y, integer *ldy); - -/* Subroutine */ int zlaic1_(integer *job, integer *j, doublecomplex *x, - doublereal *sest, doublecomplex *w, doublecomplex *gamma, doublereal * - sestpr, doublecomplex *s, doublecomplex *c__); - -/* Subroutine */ int zlals0_(integer *icompq, integer *nl, integer *nr, - integer *sqre, integer *nrhs, doublecomplex *b, integer *ldb, - doublecomplex *bx, integer *ldbx, integer *perm, integer *givptr, - integer *givcol, integer *ldgcol, doublereal *givnum, integer *ldgnum, - doublereal *poles, doublereal *difl, doublereal *difr, doublereal * - z__, integer *k, doublereal *c__, doublereal *s, doublereal *rwork, - integer *info); - -/* Subroutine */ int zlalsa_(integer *icompq, integer *smlsiz, integer *n, - integer *nrhs, doublecomplex *b, integer *ldb, doublecomplex *bx, - integer *ldbx, doublereal *u, integer *ldu, doublereal *vt, integer * - k, doublereal *difl, doublereal *difr, doublereal *z__, doublereal * - poles, integer *givptr, integer *givcol, integer *ldgcol, integer * - perm, doublereal *givnum, doublereal *c__, doublereal *s, doublereal * - rwork, integer *iwork, integer *info); - -/* Subroutine */ int zlapll_(integer *n, doublecomplex *x, integer *incx, - doublecomplex *y, integer *incy, doublereal *ssmin); - -/* Subroutine */ int zlapmt_(logical *forwrd, integer *m, integer *n, - doublecomplex *x, integer *ldx, integer *k); - -/* Subroutine */ int zlaqgb_(integer *m, integer *n, integer *kl, integer *ku, - doublecomplex *ab, integer *ldab, doublereal *r__, doublereal *c__, - doublereal *rowcnd, doublereal *colcnd, doublereal *amax, char *equed); - -/* Subroutine */ int zlaqge_(integer *m, integer *n, doublecomplex *a, - integer *lda, doublereal *r__, doublereal *c__, doublereal *rowcnd, - doublereal *colcnd, doublereal *amax, char *equed); - -/* Subroutine */ int zlaqhb_(char *uplo, integer *n, integer *kd, - doublecomplex *ab, integer *ldab, doublereal *s, doublereal *scond, - doublereal *amax, char *equed); - -/* Subroutine */ int zlaqhe_(char *uplo, integer *n, doublecomplex *a, - integer *lda, doublereal *s, doublereal *scond, doublereal *amax, - char *equed); - -/* Subroutine */ int zlaqhp_(char *uplo, integer *n, doublecomplex *ap, - doublereal *s, doublereal *scond, doublereal *amax, char *equed); - -/* Subroutine */ int zlaqp2_(integer *m, integer *n, integer *offset, - doublecomplex *a, integer *lda, integer *jpvt, doublecomplex *tau, - doublereal *vn1, doublereal *vn2, doublecomplex *work); - -/* Subroutine */ int zlaqps_(integer *m, integer *n, integer *offset, integer - *nb, integer *kb, doublecomplex *a, integer *lda, integer *jpvt, - doublecomplex *tau, doublereal *vn1, doublereal *vn2, doublecomplex * - auxv, doublecomplex *f, integer *ldf); - -/* Subroutine */ int zlaqsb_(char *uplo, integer *n, integer *kd, - doublecomplex *ab, integer *ldab, doublereal *s, doublereal *scond, - doublereal *amax, char *equed); - -/* Subroutine */ int zlaqsp_(char *uplo, integer *n, doublecomplex *ap, - doublereal *s, doublereal *scond, doublereal *amax, char *equed); - -/* Subroutine */ int zlaqsy_(char *uplo, integer *n, doublecomplex *a, - integer *lda, doublereal *s, doublereal *scond, doublereal *amax, - char *equed); - -/* Subroutine */ int zlar1v_(integer *n, integer *b1, integer *bn, doublereal - *sigma, doublereal *d__, doublereal *l, doublereal *ld, doublereal * - lld, doublereal *gersch, doublecomplex *z__, doublereal *ztz, - doublereal *mingma, integer *r__, integer *isuppz, doublereal *work); - -/* Subroutine */ int zlar2v_(integer *n, doublecomplex *x, doublecomplex *y, - doublecomplex *z__, integer *incx, doublereal *c__, doublecomplex *s, - integer *incc); - -/* Subroutine */ int zlarcm_(integer *m, integer *n, doublereal *a, integer * - lda, doublecomplex *b, integer *ldb, doublecomplex *c__, integer *ldc, - doublereal *rwork); - -/* Subroutine */ int zlarf_(char *side, integer *m, integer *n, doublecomplex - *v, integer *incv, doublecomplex *tau, doublecomplex *c__, integer * - ldc, doublecomplex *work); - -/* Subroutine */ int zlarfb_(char *side, char *trans, char *direct, char * - storev, integer *m, integer *n, integer *k, doublecomplex *v, integer - *ldv, doublecomplex *t, integer *ldt, doublecomplex *c__, integer * - ldc, doublecomplex *work, integer *ldwork); - -/* Subroutine */ int zlarfg_(integer *n, doublecomplex *alpha, doublecomplex * - x, integer *incx, doublecomplex *tau); - -/* Subroutine */ int zlarft_(char *direct, char *storev, integer *n, integer * - k, doublecomplex *v, integer *ldv, doublecomplex *tau, doublecomplex * - t, integer *ldt); - -/* Subroutine */ int zlarfx_(char *side, integer *m, integer *n, - doublecomplex *v, doublecomplex *tau, doublecomplex *c__, integer * - ldc, doublecomplex *work); - -/* Subroutine */ int zlargv_(integer *n, doublecomplex *x, integer *incx, - doublecomplex *y, integer *incy, doublereal *c__, integer *incc); - -/* Subroutine */ int zlarnv_(integer *idist, integer *iseed, integer *n, - doublecomplex *x); - -/* Subroutine */ int zlarrv_(integer *n, doublereal *d__, doublereal *l, - integer *isplit, integer *m, doublereal *w, integer *iblock, - doublereal *gersch, doublereal *tol, doublecomplex *z__, integer *ldz, - integer *isuppz, doublereal *work, integer *iwork, integer *info); - -/* Subroutine */ int zlartg_(doublecomplex *f, doublecomplex *g, doublereal * - cs, doublecomplex *sn, doublecomplex *r__); - -/* Subroutine */ int zlartv_(integer *n, doublecomplex *x, integer *incx, - doublecomplex *y, integer *incy, doublereal *c__, doublecomplex *s, - integer *incc); - -/* Subroutine */ int zlarz_(char *side, integer *m, integer *n, integer *l, - doublecomplex *v, integer *incv, doublecomplex *tau, doublecomplex * - c__, integer *ldc, doublecomplex *work); - -/* Subroutine */ int zlarzb_(char *side, char *trans, char *direct, char * - storev, integer *m, integer *n, integer *k, integer *l, doublecomplex - *v, integer *ldv, doublecomplex *t, integer *ldt, doublecomplex *c__, - integer *ldc, doublecomplex *work, integer *ldwork); - -/* Subroutine */ int zlarzt_(char *direct, char *storev, integer *n, integer * - k, doublecomplex *v, integer *ldv, doublecomplex *tau, doublecomplex * - t, integer *ldt); - -/* Subroutine */ int zlascl_(char *type__, integer *kl, integer *ku, - doublereal *cfrom, doublereal *cto, integer *m, integer *n, - doublecomplex *a, integer *lda, integer *info); - -/* Subroutine */ int zlaset_(char *uplo, integer *m, integer *n, - doublecomplex *alpha, doublecomplex *beta, doublecomplex *a, integer * - lda); - -/* Subroutine */ int zlasr_(char *side, char *pivot, char *direct, integer *m, - integer *n, doublereal *c__, doublereal *s, doublecomplex *a, - integer *lda); - -/* Subroutine */ int zlassq_(integer *n, doublecomplex *x, integer *incx, - doublereal *scale, doublereal *sumsq); - -/* Subroutine */ int zlaswp_(integer *n, doublecomplex *a, integer *lda, - integer *k1, integer *k2, integer *ipiv, integer *incx); - -/* Subroutine */ int zlasyf_(char *uplo, integer *n, integer *nb, integer *kb, - doublecomplex *a, integer *lda, integer *ipiv, doublecomplex *w, - integer *ldw, integer *info); - -/* Subroutine */ int zlatbs_(char *uplo, char *trans, char *diag, char * - normin, integer *n, integer *kd, doublecomplex *ab, integer *ldab, - doublecomplex *x, doublereal *scale, doublereal *cnorm, integer *info); - -/* Subroutine */ int zlatdf_(integer *ijob, integer *n, doublecomplex *z__, - integer *ldz, doublecomplex *rhs, doublereal *rdsum, doublereal * - rdscal, integer *ipiv, integer *jpiv); - -/* Subroutine */ int zlatps_(char *uplo, char *trans, char *diag, char * - normin, integer *n, doublecomplex *ap, doublecomplex *x, doublereal * - scale, doublereal *cnorm, integer *info); - -/* Subroutine */ int zlatrd_(char *uplo, integer *n, integer *nb, - doublecomplex *a, integer *lda, doublereal *e, doublecomplex *tau, - doublecomplex *w, integer *ldw); - -/* Subroutine */ int zlatrs_(char *uplo, char *trans, char *diag, char * - normin, integer *n, doublecomplex *a, integer *lda, doublecomplex *x, - doublereal *scale, doublereal *cnorm, integer *info); - -/* Subroutine */ int zlatrz_(integer *m, integer *n, integer *l, - doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex * - work); - -/* Subroutine */ int zlatzm_(char *side, integer *m, integer *n, - doublecomplex *v, integer *incv, doublecomplex *tau, doublecomplex * - c1, doublecomplex *c2, integer *ldc, doublecomplex *work); - -/* Subroutine */ int zlauu2_(char *uplo, integer *n, doublecomplex *a, - integer *lda, integer *info); - -/* Subroutine */ int zlauum_(char *uplo, integer *n, doublecomplex *a, - integer *lda, integer *info); - -/* Subroutine */ int zpbcon_(char *uplo, integer *n, integer *kd, - doublecomplex *ab, integer *ldab, doublereal *anorm, doublereal * - rcond, doublecomplex *work, doublereal *rwork, integer *info); - -/* Subroutine */ int zpbequ_(char *uplo, integer *n, integer *kd, - doublecomplex *ab, integer *ldab, doublereal *s, doublereal *scond, - doublereal *amax, integer *info); - -/* Subroutine */ int zpbrfs_(char *uplo, integer *n, integer *kd, integer * - nrhs, doublecomplex *ab, integer *ldab, doublecomplex *afb, integer * - ldafb, doublecomplex *b, integer *ldb, doublecomplex *x, integer *ldx, - doublereal *ferr, doublereal *berr, doublecomplex *work, doublereal * - rwork, integer *info); - -/* Subroutine */ int zpbstf_(char *uplo, integer *n, integer *kd, - doublecomplex *ab, integer *ldab, integer *info); - -/* Subroutine */ int zpbsv_(char *uplo, integer *n, integer *kd, integer * - nrhs, doublecomplex *ab, integer *ldab, doublecomplex *b, integer * - ldb, integer *info); - -/* Subroutine */ int zpbsvx_(char *fact, char *uplo, integer *n, integer *kd, - integer *nrhs, doublecomplex *ab, integer *ldab, doublecomplex *afb, - integer *ldafb, char *equed, doublereal *s, doublecomplex *b, integer - *ldb, doublecomplex *x, integer *ldx, doublereal *rcond, doublereal * - ferr, doublereal *berr, doublecomplex *work, doublereal *rwork, - integer *info); - -/* Subroutine */ int zpbtf2_(char *uplo, integer *n, integer *kd, - doublecomplex *ab, integer *ldab, integer *info); - -/* Subroutine */ int zpbtrf_(char *uplo, integer *n, integer *kd, - doublecomplex *ab, integer *ldab, integer *info); - -/* Subroutine */ int zpbtrs_(char *uplo, integer *n, integer *kd, integer * - nrhs, doublecomplex *ab, integer *ldab, doublecomplex *b, integer * - ldb, integer *info); - -/* Subroutine */ int zpocon_(char *uplo, integer *n, doublecomplex *a, - integer *lda, doublereal *anorm, doublereal *rcond, doublecomplex * - work, doublereal *rwork, integer *info); - -/* Subroutine */ int zpoequ_(integer *n, doublecomplex *a, integer *lda, - doublereal *s, doublereal *scond, doublereal *amax, integer *info); - -/* Subroutine */ int zporfs_(char *uplo, integer *n, integer *nrhs, - doublecomplex *a, integer *lda, doublecomplex *af, integer *ldaf, - doublecomplex *b, integer *ldb, doublecomplex *x, integer *ldx, - doublereal *ferr, doublereal *berr, doublecomplex *work, doublereal * - rwork, integer *info); - -/* Subroutine */ int zposv_(char *uplo, integer *n, integer *nrhs, - doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb, - integer *info); - -/* Subroutine */ int zposvx_(char *fact, char *uplo, integer *n, integer * - nrhs, doublecomplex *a, integer *lda, doublecomplex *af, integer * - ldaf, char *equed, doublereal *s, doublecomplex *b, integer *ldb, - doublecomplex *x, integer *ldx, doublereal *rcond, doublereal *ferr, - doublereal *berr, doublecomplex *work, doublereal *rwork, integer * - info); - -/* Subroutine */ int zpotf2_(char *uplo, integer *n, doublecomplex *a, - integer *lda, integer *info); - -/* Subroutine */ int zpotrf_(char *uplo, integer *n, doublecomplex *a, - integer *lda, integer *info); - -/* Subroutine */ int zpotri_(char *uplo, integer *n, doublecomplex *a, - integer *lda, integer *info); - -/* Subroutine */ int zpotrs_(char *uplo, integer *n, integer *nrhs, - doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb, - integer *info); - -/* Subroutine */ int zppcon_(char *uplo, integer *n, doublecomplex *ap, - doublereal *anorm, doublereal *rcond, doublecomplex *work, doublereal - *rwork, integer *info); - -/* Subroutine */ int zppequ_(char *uplo, integer *n, doublecomplex *ap, - doublereal *s, doublereal *scond, doublereal *amax, integer *info); - -/* Subroutine */ int zpprfs_(char *uplo, integer *n, integer *nrhs, - doublecomplex *ap, doublecomplex *afp, doublecomplex *b, integer *ldb, - doublecomplex *x, integer *ldx, doublereal *ferr, doublereal *berr, - doublecomplex *work, doublereal *rwork, integer *info); - -/* Subroutine */ int zppsv_(char *uplo, integer *n, integer *nrhs, - doublecomplex *ap, doublecomplex *b, integer *ldb, integer *info); - -/* Subroutine */ int zppsvx_(char *fact, char *uplo, integer *n, integer * - nrhs, doublecomplex *ap, doublecomplex *afp, char *equed, doublereal * - s, doublecomplex *b, integer *ldb, doublecomplex *x, integer *ldx, - doublereal *rcond, doublereal *ferr, doublereal *berr, doublecomplex * - work, doublereal *rwork, integer *info); - -/* Subroutine */ int zpptrf_(char *uplo, integer *n, doublecomplex *ap, - integer *info); - -/* Subroutine */ int zpptri_(char *uplo, integer *n, doublecomplex *ap, - integer *info); - -/* Subroutine */ int zpptrs_(char *uplo, integer *n, integer *nrhs, - doublecomplex *ap, doublecomplex *b, integer *ldb, integer *info); - -/* Subroutine */ int zptcon_(integer *n, doublereal *d__, doublecomplex *e, - doublereal *anorm, doublereal *rcond, doublereal *rwork, integer * - info); - -/* Subroutine */ int zptrfs_(char *uplo, integer *n, integer *nrhs, - doublereal *d__, doublecomplex *e, doublereal *df, doublecomplex *ef, - doublecomplex *b, integer *ldb, doublecomplex *x, integer *ldx, - doublereal *ferr, doublereal *berr, doublecomplex *work, doublereal * - rwork, integer *info); - -/* Subroutine */ int zptsv_(integer *n, integer *nrhs, doublereal *d__, - doublecomplex *e, doublecomplex *b, integer *ldb, integer *info); - -/* Subroutine */ int zptsvx_(char *fact, integer *n, integer *nrhs, - doublereal *d__, doublecomplex *e, doublereal *df, doublecomplex *ef, - doublecomplex *b, integer *ldb, doublecomplex *x, integer *ldx, - doublereal *rcond, doublereal *ferr, doublereal *berr, doublecomplex * - work, doublereal *rwork, integer *info); - -/* Subroutine */ int zpttrf_(integer *n, doublereal *d__, doublecomplex *e, - integer *info); - -/* Subroutine */ int zpttrs_(char *uplo, integer *n, integer *nrhs, - doublereal *d__, doublecomplex *e, doublecomplex *b, integer *ldb, - integer *info); - -/* Subroutine */ int zptts2_(integer *iuplo, integer *n, integer *nrhs, - doublereal *d__, doublecomplex *e, doublecomplex *b, integer *ldb); - -/* Subroutine */ int zrot_(integer *n, doublecomplex *cx, integer *incx, - doublecomplex *cy, integer *incy, doublereal *c__, doublecomplex *s); - -/* Subroutine */ int zspcon_(char *uplo, integer *n, doublecomplex *ap, - integer *ipiv, doublereal *anorm, doublereal *rcond, doublecomplex * - work, integer *info); - -/* Subroutine */ int zspmv_(char *uplo, integer *n, doublecomplex *alpha, - doublecomplex *ap, doublecomplex *x, integer *incx, doublecomplex * - beta, doublecomplex *y, integer *incy); - -/* Subroutine */ int zspr_(char *uplo, integer *n, doublecomplex *alpha, - doublecomplex *x, integer *incx, doublecomplex *ap); - -/* Subroutine */ int zsprfs_(char *uplo, integer *n, integer *nrhs, - doublecomplex *ap, doublecomplex *afp, integer *ipiv, doublecomplex * - b, integer *ldb, doublecomplex *x, integer *ldx, doublereal *ferr, - doublereal *berr, doublecomplex *work, doublereal *rwork, integer * - info); - -/* Subroutine */ int zspsv_(char *uplo, integer *n, integer *nrhs, - doublecomplex *ap, integer *ipiv, doublecomplex *b, integer *ldb, - integer *info); - -/* Subroutine */ int zspsvx_(char *fact, char *uplo, integer *n, integer * - nrhs, doublecomplex *ap, doublecomplex *afp, integer *ipiv, - doublecomplex *b, integer *ldb, doublecomplex *x, integer *ldx, - doublereal *rcond, doublereal *ferr, doublereal *berr, doublecomplex * - work, doublereal *rwork, integer *info); - -/* Subroutine */ int zsptrf_(char *uplo, integer *n, doublecomplex *ap, - integer *ipiv, integer *info); - -/* Subroutine */ int zsptri_(char *uplo, integer *n, doublecomplex *ap, - integer *ipiv, doublecomplex *work, integer *info); - -/* Subroutine */ int zsptrs_(char *uplo, integer *n, integer *nrhs, - doublecomplex *ap, integer *ipiv, doublecomplex *b, integer *ldb, - integer *info); - -/* Subroutine */ int zstedc_(char *compz, integer *n, doublereal *d__, - doublereal *e, doublecomplex *z__, integer *ldz, doublecomplex *work, - integer *lwork, doublereal *rwork, integer *lrwork, integer *iwork, - integer *liwork, integer *info); - -/* Subroutine */ int zstein_(integer *n, doublereal *d__, doublereal *e, - integer *m, doublereal *w, integer *iblock, integer *isplit, - doublecomplex *z__, integer *ldz, doublereal *work, integer *iwork, - integer *ifail, integer *info); - -/* Subroutine */ int zsteqr_(char *compz, integer *n, doublereal *d__, - doublereal *e, doublecomplex *z__, integer *ldz, doublereal *work, - integer *info); - -/* Subroutine */ int zsycon_(char *uplo, integer *n, doublecomplex *a, - integer *lda, integer *ipiv, doublereal *anorm, doublereal *rcond, - doublecomplex *work, integer *info); - -/* Subroutine */ int zsymv_(char *uplo, integer *n, doublecomplex *alpha, - doublecomplex *a, integer *lda, doublecomplex *x, integer *incx, - doublecomplex *beta, doublecomplex *y, integer *incy); - -/* Subroutine */ int zsyr_(char *uplo, integer *n, doublecomplex *alpha, - doublecomplex *x, integer *incx, doublecomplex *a, integer *lda); - -/* Subroutine */ int zsyrfs_(char *uplo, integer *n, integer *nrhs, - doublecomplex *a, integer *lda, doublecomplex *af, integer *ldaf, - integer *ipiv, doublecomplex *b, integer *ldb, doublecomplex *x, - integer *ldx, doublereal *ferr, doublereal *berr, doublecomplex *work, - doublereal *rwork, integer *info); - -/* Subroutine */ int zsysv_(char *uplo, integer *n, integer *nrhs, - doublecomplex *a, integer *lda, integer *ipiv, doublecomplex *b, - integer *ldb, doublecomplex *work, integer *lwork, integer *info); - -/* Subroutine */ int zsysvx_(char *fact, char *uplo, integer *n, integer * - nrhs, doublecomplex *a, integer *lda, doublecomplex *af, integer * - ldaf, integer *ipiv, doublecomplex *b, integer *ldb, doublecomplex *x, - integer *ldx, doublereal *rcond, doublereal *ferr, doublereal *berr, - doublecomplex *work, integer *lwork, doublereal *rwork, integer *info); - -/* Subroutine */ int zsytf2_(char *uplo, integer *n, doublecomplex *a, - integer *lda, integer *ipiv, integer *info); - -/* Subroutine */ int zsytrf_(char *uplo, integer *n, doublecomplex *a, - integer *lda, integer *ipiv, doublecomplex *work, integer *lwork, - integer *info); - -/* Subroutine */ int zsytri_(char *uplo, integer *n, doublecomplex *a, - integer *lda, integer *ipiv, doublecomplex *work, integer *info); - -/* Subroutine */ int zsytrs_(char *uplo, integer *n, integer *nrhs, - doublecomplex *a, integer *lda, integer *ipiv, doublecomplex *b, - integer *ldb, integer *info); - -/* Subroutine */ int ztbcon_(char *norm, char *uplo, char *diag, integer *n, - integer *kd, doublecomplex *ab, integer *ldab, doublereal *rcond, - doublecomplex *work, doublereal *rwork, integer *info); - -/* Subroutine */ int ztbrfs_(char *uplo, char *trans, char *diag, integer *n, - integer *kd, integer *nrhs, doublecomplex *ab, integer *ldab, - doublecomplex *b, integer *ldb, doublecomplex *x, integer *ldx, - doublereal *ferr, doublereal *berr, doublecomplex *work, doublereal * - rwork, integer *info); - -/* Subroutine */ int ztbtrs_(char *uplo, char *trans, char *diag, integer *n, - integer *kd, integer *nrhs, doublecomplex *ab, integer *ldab, - doublecomplex *b, integer *ldb, integer *info); - -/* Subroutine */ int ztgevc_(char *side, char *howmny, logical *select, - integer *n, doublecomplex *a, integer *lda, doublecomplex *b, integer - *ldb, doublecomplex *vl, integer *ldvl, doublecomplex *vr, integer * - ldvr, integer *mm, integer *m, doublecomplex *work, doublereal *rwork, - integer *info); - -/* Subroutine */ int ztgex2_(logical *wantq, logical *wantz, integer *n, - doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb, - doublecomplex *q, integer *ldq, doublecomplex *z__, integer *ldz, - integer *j1, integer *info); - -/* Subroutine */ int ztgexc_(logical *wantq, logical *wantz, integer *n, - doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb, - doublecomplex *q, integer *ldq, doublecomplex *z__, integer *ldz, - integer *ifst, integer *ilst, integer *info); - -/* Subroutine */ int ztgsen_(integer *ijob, logical *wantq, logical *wantz, - logical *select, integer *n, doublecomplex *a, integer *lda, - doublecomplex *b, integer *ldb, doublecomplex *alpha, doublecomplex * - beta, doublecomplex *q, integer *ldq, doublecomplex *z__, integer * - ldz, integer *m, doublereal *pl, doublereal *pr, doublereal *dif, - doublecomplex *work, integer *lwork, integer *iwork, integer *liwork, - integer *info); - -/* Subroutine */ int ztgsja_(char *jobu, char *jobv, char *jobq, integer *m, - integer *p, integer *n, integer *k, integer *l, doublecomplex *a, - integer *lda, doublecomplex *b, integer *ldb, doublereal *tola, - doublereal *tolb, doublereal *alpha, doublereal *beta, doublecomplex * - u, integer *ldu, doublecomplex *v, integer *ldv, doublecomplex *q, - integer *ldq, doublecomplex *work, integer *ncycle, integer *info); - -/* Subroutine */ int ztgsna_(char *job, char *howmny, logical *select, - integer *n, doublecomplex *a, integer *lda, doublecomplex *b, integer - *ldb, doublecomplex *vl, integer *ldvl, doublecomplex *vr, integer * - ldvr, doublereal *s, doublereal *dif, integer *mm, integer *m, - doublecomplex *work, integer *lwork, integer *iwork, integer *info); - -/* Subroutine */ int ztgsy2_(char *trans, integer *ijob, integer *m, integer * - n, doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb, - doublecomplex *c__, integer *ldc, doublecomplex *d__, integer *ldd, - doublecomplex *e, integer *lde, doublecomplex *f, integer *ldf, - doublereal *scale, doublereal *rdsum, doublereal *rdscal, integer * - info); - -/* Subroutine */ int ztgsyl_(char *trans, integer *ijob, integer *m, integer * - n, doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb, - doublecomplex *c__, integer *ldc, doublecomplex *d__, integer *ldd, - doublecomplex *e, integer *lde, doublecomplex *f, integer *ldf, - doublereal *scale, doublereal *dif, doublecomplex *work, integer * - lwork, integer *iwork, integer *info); - -/* Subroutine */ int ztpcon_(char *norm, char *uplo, char *diag, integer *n, - doublecomplex *ap, doublereal *rcond, doublecomplex *work, doublereal - *rwork, integer *info); - -/* Subroutine */ int ztprfs_(char *uplo, char *trans, char *diag, integer *n, - integer *nrhs, doublecomplex *ap, doublecomplex *b, integer *ldb, - doublecomplex *x, integer *ldx, doublereal *ferr, doublereal *berr, - doublecomplex *work, doublereal *rwork, integer *info); - -/* Subroutine */ int ztptri_(char *uplo, char *diag, integer *n, - doublecomplex *ap, integer *info); - -/* Subroutine */ int ztptrs_(char *uplo, char *trans, char *diag, integer *n, - integer *nrhs, doublecomplex *ap, doublecomplex *b, integer *ldb, - integer *info); - -/* Subroutine */ int ztrcon_(char *norm, char *uplo, char *diag, integer *n, - doublecomplex *a, integer *lda, doublereal *rcond, doublecomplex * - work, doublereal *rwork, integer *info); - -/* Subroutine */ int ztrevc_(char *side, char *howmny, logical *select, - integer *n, doublecomplex *t, integer *ldt, doublecomplex *vl, - integer *ldvl, doublecomplex *vr, integer *ldvr, integer *mm, integer - *m, doublecomplex *work, doublereal *rwork, integer *info); - -/* Subroutine */ int ztrexc_(char *compq, integer *n, doublecomplex *t, - integer *ldt, doublecomplex *q, integer *ldq, integer *ifst, integer * - ilst, integer *info); - -/* Subroutine */ int ztrrfs_(char *uplo, char *trans, char *diag, integer *n, - integer *nrhs, doublecomplex *a, integer *lda, doublecomplex *b, - integer *ldb, doublecomplex *x, integer *ldx, doublereal *ferr, - doublereal *berr, doublecomplex *work, doublereal *rwork, integer * - info); - -/* Subroutine */ int ztrsen_(char *job, char *compq, logical *select, integer - *n, doublecomplex *t, integer *ldt, doublecomplex *q, integer *ldq, - doublecomplex *w, integer *m, doublereal *s, doublereal *sep, - doublecomplex *work, integer *lwork, integer *info); - -/* Subroutine */ int ztrsna_(char *job, char *howmny, logical *select, - integer *n, doublecomplex *t, integer *ldt, doublecomplex *vl, - integer *ldvl, doublecomplex *vr, integer *ldvr, doublereal *s, - doublereal *sep, integer *mm, integer *m, doublecomplex *work, - integer *ldwork, doublereal *rwork, integer *info); - -/* Subroutine */ int ztrsyl_(char *trana, char *tranb, integer *isgn, integer - *m, integer *n, doublecomplex *a, integer *lda, doublecomplex *b, - integer *ldb, doublecomplex *c__, integer *ldc, doublereal *scale, - integer *info); - -/* Subroutine */ int ztrti2_(char *uplo, char *diag, integer *n, - doublecomplex *a, integer *lda, integer *info); - -/* Subroutine */ int ztrtri_(char *uplo, char *diag, integer *n, - doublecomplex *a, integer *lda, integer *info); - -/* Subroutine */ int ztrtrs_(char *uplo, char *trans, char *diag, integer *n, - integer *nrhs, doublecomplex *a, integer *lda, doublecomplex *b, - integer *ldb, integer *info); - -/* Subroutine */ int ztzrqf_(integer *m, integer *n, doublecomplex *a, - integer *lda, doublecomplex *tau, integer *info); - -/* Subroutine */ int ztzrzf_(integer *m, integer *n, doublecomplex *a, - integer *lda, doublecomplex *tau, doublecomplex *work, integer *lwork, - integer *info); - -/* Subroutine */ int zung2l_(integer *m, integer *n, integer *k, - doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex * - work, integer *info); - -/* Subroutine */ int zung2r_(integer *m, integer *n, integer *k, - doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex * - work, integer *info); - -/* Subroutine */ int zungbr_(char *vect, integer *m, integer *n, integer *k, - doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex * - work, integer *lwork, integer *info); - -/* Subroutine */ int zunghr_(integer *n, integer *ilo, integer *ihi, - doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex * - work, integer *lwork, integer *info); - -/* Subroutine */ int zungl2_(integer *m, integer *n, integer *k, - doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex * - work, integer *info); - -/* Subroutine */ int zunglq_(integer *m, integer *n, integer *k, - doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex * - work, integer *lwork, integer *info); - -/* Subroutine */ int zungql_(integer *m, integer *n, integer *k, - doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex * - work, integer *lwork, integer *info); - -/* Subroutine */ int zungqr_(integer *m, integer *n, integer *k, - doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex * - work, integer *lwork, integer *info); - -/* Subroutine */ int zungr2_(integer *m, integer *n, integer *k, - doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex * - work, integer *info); - -/* Subroutine */ int zungrq_(integer *m, integer *n, integer *k, - doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex * - work, integer *lwork, integer *info); - -/* Subroutine */ int zungtr_(char *uplo, integer *n, doublecomplex *a, - integer *lda, doublecomplex *tau, doublecomplex *work, integer *lwork, - integer *info); - -/* Subroutine */ int zunm2l_(char *side, char *trans, integer *m, integer *n, - integer *k, doublecomplex *a, integer *lda, doublecomplex *tau, - doublecomplex *c__, integer *ldc, doublecomplex *work, integer *info); - -/* Subroutine */ int zunm2r_(char *side, char *trans, integer *m, integer *n, - integer *k, doublecomplex *a, integer *lda, doublecomplex *tau, - doublecomplex *c__, integer *ldc, doublecomplex *work, integer *info); - -/* Subroutine */ int zunmbr_(char *vect, char *side, char *trans, integer *m, - integer *n, integer *k, doublecomplex *a, integer *lda, doublecomplex - *tau, doublecomplex *c__, integer *ldc, doublecomplex *work, integer * - lwork, integer *info); - -/* Subroutine */ int zunmhr_(char *side, char *trans, integer *m, integer *n, - integer *ilo, integer *ihi, doublecomplex *a, integer *lda, - doublecomplex *tau, doublecomplex *c__, integer *ldc, doublecomplex * - work, integer *lwork, integer *info); - -/* Subroutine */ int zunml2_(char *side, char *trans, integer *m, integer *n, - integer *k, doublecomplex *a, integer *lda, doublecomplex *tau, - doublecomplex *c__, integer *ldc, doublecomplex *work, integer *info); - -/* Subroutine */ int zunmlq_(char *side, char *trans, integer *m, integer *n, - integer *k, doublecomplex *a, integer *lda, doublecomplex *tau, - doublecomplex *c__, integer *ldc, doublecomplex *work, integer *lwork, - integer *info); - -/* Subroutine */ int zunmql_(char *side, char *trans, integer *m, integer *n, - integer *k, doublecomplex *a, integer *lda, doublecomplex *tau, - doublecomplex *c__, integer *ldc, doublecomplex *work, integer *lwork, - integer *info); - -/* Subroutine */ int zunmqr_(char *side, char *trans, integer *m, integer *n, - integer *k, doublecomplex *a, integer *lda, doublecomplex *tau, - doublecomplex *c__, integer *ldc, doublecomplex *work, integer *lwork, - integer *info); - -/* Subroutine */ int zunmr2_(char *side, char *trans, integer *m, integer *n, - integer *k, doublecomplex *a, integer *lda, doublecomplex *tau, - doublecomplex *c__, integer *ldc, doublecomplex *work, integer *info); - -/* Subroutine */ int zunmr3_(char *side, char *trans, integer *m, integer *n, - integer *k, integer *l, doublecomplex *a, integer *lda, doublecomplex - *tau, doublecomplex *c__, integer *ldc, doublecomplex *work, integer * - info); - -/* Subroutine */ int zunmrq_(char *side, char *trans, integer *m, integer *n, - integer *k, doublecomplex *a, integer *lda, doublecomplex *tau, - doublecomplex *c__, integer *ldc, doublecomplex *work, integer *lwork, - integer *info); - -/* Subroutine */ int zunmrz_(char *side, char *trans, integer *m, integer *n, - integer *k, integer *l, doublecomplex *a, integer *lda, doublecomplex - *tau, doublecomplex *c__, integer *ldc, doublecomplex *work, integer * - lwork, integer *info); - -/* Subroutine */ int zunmtr_(char *side, char *uplo, char *trans, integer *m, - integer *n, doublecomplex *a, integer *lda, doublecomplex *tau, - doublecomplex *c__, integer *ldc, doublecomplex *work, integer *lwork, - integer *info); - -/* Subroutine */ int zupgtr_(char *uplo, integer *n, doublecomplex *ap, - doublecomplex *tau, doublecomplex *q, integer *ldq, doublecomplex * - work, integer *info); - -/* Subroutine */ int zupmtr_(char *side, char *uplo, char *trans, integer *m, - integer *n, doublecomplex *ap, doublecomplex *tau, doublecomplex *c__, - integer *ldc, doublecomplex *work, integer *info); -} diff --git a/math/atlas/files/patch-ATL_cmmJIK.c b/math/atlas/files/patch-ATL_cmmJIK.c deleted file mode 100644 index 14dca5155a15..000000000000 --- a/math/atlas/files/patch-ATL_cmmJIK.c +++ /dev/null @@ -1,14 +0,0 @@ -http://math-atlas.sourceforge.net/errata.html -Error in complex gemm for A*A^T. - ---- src/blas/gemm/ATL_cmmJIK.c Mon Dec 22 09:08:00 2003 -+++ src/blas/gemm/ATL_cmmJIK.c Wed Mar 7 00:26:46 2007 -@@ -190,7 +190,7 @@ - pA = ATL_AlignPtr(vB); - if (TA == AtlasNoTrans) - Mjoin(PATL,row2blkT2_a1)(M, K, A, lda, pA, alpha); -- else Mjoin(PATL,col2blk_a1)(K, M, A, lda, pA, alpha); -+ else Mjoin(PATL,col2blk2_a1)(K, M, A, lda, pA, alpha); - /* - * Can't write directly to C if alpha is not one - */ diff --git a/math/atlas/files/patch-ATL_dmm4x4x8_US.c b/math/atlas/files/patch-ATL_dmm4x4x8_US.c deleted file mode 100644 index 653cd331a34b..000000000000 --- a/math/atlas/files/patch-ATL_dmm4x4x8_US.c +++ /dev/null @@ -1,14 +0,0 @@ -http://math-atlas.sourceforge.net/errata.html -Error in UltraSPARC cleanup - ---- tune/blas/gemm/CASES/ATL_dmm4x4x8_US.c Mon Dec 22 09:12:04 2003 -+++ tune/blas/gemm/CASES/ATL_dmm4x4x8_US.c Wed Mar 7 02:57:37 2007 -@@ -272,7 +272,7 @@ - ! - ! For K == 1, we never enter the loop at all - ! --#if (KB != 2) -+#if (KB != 8) - #if KB == 0 - subcc Kstart, %g0, %g0 - bz KDRAIN diff --git a/math/atlas/files/patch-CONFIG+src+SpewMakeInc.c b/math/atlas/files/patch-CONFIG+src+SpewMakeInc.c new file mode 100644 index 000000000000..975591f13f3b --- /dev/null +++ b/math/atlas/files/patch-CONFIG+src+SpewMakeInc.c @@ -0,0 +1,21 @@ +--- CONFIG/src/SpewMakeInc.c.orig 2007-10-11 05:40:21.000000000 +0900 ++++ CONFIG/src/SpewMakeInc.c 2007-10-29 11:03:11.000000000 +0900 +@@ -693,14 +693,14 @@ + fprintf(fpout, "# ------------------------------------\n"); + fprintf(fpout, "# Reference and system libraries\n"); + fprintf(fpout, "# ------------------------------------\n"); +- fprintf(fpout, " BLASlib = \n"); +- fprintf(fpout, " FBLASlib = \n"); +- fprintf(fpout, " FLAPACKlib = "); ++ fprintf(fpout, " BLASlib = -L%%LOCALBASE%%/lib -lblas\n"); ++ fprintf(fpout, " FBLASlib = -L%%LOCALBASE%%/lib -lblas\n"); ++ fprintf(fpout, " FLAPACKlib = -L%%LOCALBASE%%/lib -llapack"); + if (flapack) fprintf(fpout, "%s", flapack); + fprintf(fpout, "\n"); + fprintf(fpout, " SLAPACKlib = \n"); + if (THREADS) +- fprintf(fpout, " LIBS = -lpthread"); ++ fprintf(fpout, " LIBS = %%PTHREAD_LIBS%%"); + else + fprintf(fpout, " LIBS ="); + if (!OSIsWin(OS)) diff --git a/math/atlas/files/patch-CONFIG+src+atlcomp.txt b/math/atlas/files/patch-CONFIG+src+atlcomp.txt new file mode 100644 index 000000000000..f8c635170767 --- /dev/null +++ b/math/atlas/files/patch-CONFIG+src+atlcomp.txt @@ -0,0 +1,119 @@ +--- CONFIG/src/atlcomp.txt.orig 2007-10-11 05:40:21.000000000 +0900 ++++ CONFIG/src/atlcomp.txt 2007-10-29 11:11:54.000000000 +0900 +@@ -40,57 +40,57 @@ + # + # Core2Solo and Core2Duo + MACH=Core2Solo,Core2Duo OS=ALL LVL=1000 COMPS=smc,dmc,skc,dkc,icc +- 'gcc' '-fomit-frame-pointer -mfpmath=sse -msse3 -O2' ++ '%%CC%%' '-fomit-frame-pointer -mfpmath=sse -msse3 -O2' + # PPRO,PII,PIII,P4,P4E,K7,HAMMER + MACH=PPRO,PII,PIII,P4,P4E,K7,HAMMER OS=ALL LVL=1000 COMPS=f77 +- 'gfortran' '-fomit-frame-pointer -mfpmath=387 -O2 -falign-loops=4' ++ '%%FC%%' '-fomit-frame-pointer -mfpmath=387 -O2 -falign-loops=4' + MACH=PPRO,PII,PIII,P4,P4E,K7,HAMMER OS=ALL LVL=1000 COMPS=smc,dmc,skc,dkc,icc +- 'gcc' '-fomit-frame-pointer -mfpmath=387 -O2 -falign-loops=4' ++ '%%CC%%' '-fomit-frame-pointer -mfpmath=387 -O2 -falign-loops=4' + # CoreSolo,CoreDuo + MACH=CoreSolo,CoreDuo OS=ALL LVL=1000 COMPS=smc,dmc,skc,dkc,icc +- 'gcc' '-fomit-frame-pointer -O3 -mfpmath=387' ++ '%%CC%%' '-fomit-frame-pointer -O3 -mfpmath=387' + # UltraSPARC III & IV + MACH=USIII,USIV OS=ALL LVL=1000 COMPS=smc,dmc,skc,dkc +- 'gcc' '-mcpu=ultrasparc3 -mtune=ultrasparc3 -O3 -funroll-all-loops' ++ '%%CC%%' '-mcpu=ultrasparc3 -mtune=ultrasparc3 -O3 -funroll-all-loops' + MACH=USIII,USIV OS=ALL LVL=1000 COMPS=icc,xcc +- 'gcc' '-mcpu=ultrasparc3 -mtune=ultrasparc3 -O' ++ '%%CC%%' '-mcpu=ultrasparc3 -mtune=ultrasparc3 -O' + MACH=USIII,USIV OS=ALL LVL=1000 COMPS=f77 +- 'f77' '-dalign -native -xO5' ++ '%%FC%%' '-dalign -native -xO5' + MACH=USIII,USIV OS=ALL LVL=100 COMPS=f77 +- 'gfortran' '-O -mcpu=ultrasparc3 -mtune=ultrasparc3' ++ '%%FC%%' '-O -mcpu=ultrasparc3 -mtune=ultrasparc3' + MACH=USIII,USIV OS=ALL LVL=10 COMPS=f77 +- 'g77' '-O -mcpu=ultrasparc3 -mtune=ultrasparc3' ++ '%%FC%%' '-O -mcpu=ultrasparc3 -mtune=ultrasparc3' + # + # Itanium & Itanium 2 + # + # These gcc 4 default flags will die on gcc3, allowing gcc3's flags to be used + MACH=IA64Itan,IA64Itan2 OS=ALL LVL=1010 COMPS=smc,dmc,skc,dkc +- 'gcc' '-fomit-frame-pointer -O2 -fno-tree-loop-optimize' ++ '%%CC%%' '-fomit-frame-pointer -O2 -fno-tree-loop-optimize' + MACH=IA64Itan,IA64Itan2 OS=ALL LVL=1000 COMPS=smc,dmc,skc,dkc +- 'gcc' '-fomit-frame-pointer -O2' ++ '%%CC%%' '-fomit-frame-pointer -O2' + MACH=IA64Itan,IA64Itan2 OS=ALL LVL=1010 COMPS=f77 +- 'gfortran' '-fomit-frame-pointer -O2 -fno-tree-loop-optimize' ++ '%%FC%%' '-fomit-frame-pointer -O2 -fno-tree-loop-optimize' + # + # IRIX/MIPS + # + MACH=MIPSR1xK OS=IRIX LVL=1000 COMPS=smc,dmc,skc,dkc +- 'cc' '-O3 -OPT:Olimit=15000 -LNO:blocking=OFF -LOPT:alias=typed' ++ '%%CC%%' '-O3 -OPT:Olimit=15000 -LNO:blocking=OFF -LOPT:alias=typed' + MACH=MIPSR1xK OS=IRIX LVL=1000 COMPS=icc,xcc +- 'cc' '-O2 -OPT:Olimit=15000 -LNO:blocking=OFF' ++ '%%CC%%' '-O2 -OPT:Olimit=15000 -LNO:blocking=OFF' + MACH=MIPSR1xK OS=IRIX LVL=1000 COMPS=f77 +- 'f77' '-O2' ++ '%%FC%%' '-O2' + # + # Linux/MIPSICE9 + # + MACH=MIPSICE9 OS=ALL LVL=1000 COMPS=icc,smc,dmc,skc,dkc,xcc +- 'gcc' '-O2 -mips64 -march=5kf -mtune=5kf -fno-schedule-insns -fschedule-insns2 -fno-peephole -fno-peephole2' ++ '%%CC%%' '-O2 -mips64 -march=5kf -mtune=5kf -fno-schedule-insns -fschedule-insns2 -fno-peephole -fno-peephole2' + # + # G4 flags + # + MACH=PPCG4 OS=ALL LVL=1000 COMPS=icc,smc,dmc,skc,dkc,xcc +- 'gcc' '-O3 -maltivec -mabi=altivec -mcpu=7400 -mtune=7400' ++ '%%CC%%' '-O3 -maltivec -mabi=altivec -mcpu=7400 -mtune=7400' + MACH=PPCG4 OS=OSX LVL=1001 COMPS=icc,smc,dmc,skc,dkc,xcc +- 'gcc' '-O3 -maltivec -mabi=altivec -mcpu=7400 -mtune=7400 -no-cpp-precomp -faltivec' ++ '%%CC%%' '-O3 -maltivec -mabi=altivec -mcpu=7400 -mtune=7400 -no-cpp-precomp -faltivec' + + # + # OS X / PowerPC970; the +@@ -99,19 +99,19 @@ + # performance by removing them (for all PowerPC platforms) + # + MACH=PPCG5 OS=OSX LVL=1001 COMPS=icc,smc,dmc,skc,dkc,xcc +- 'gcc' '-mpowerpc64 -maltivec -mabi=altivec -mcpu=970 -mtune=970 -faltivec -O3' ++ '%%CC%%' '-mpowerpc64 -maltivec -mabi=altivec -mcpu=970 -mtune=970 -faltivec -O3' + MACH=PPCG5 OS=OSX LVL=1010 COMPS=icc,smc,dmc,skc,dkc,xcc +- 'gcc' '-mpowerpc64 -maltivec -mabi=altivec -mcpu=970 -mtune=970 -faltivec -force_cpusubtype_ALL -O3 -fno-schedule-insns -fno-rerun-loop-opt' ++ '%%CC%%' '-mpowerpc64 -maltivec -mabi=altivec -mcpu=970 -mtune=970 -faltivec -force_cpusubtype_ALL -O3 -fno-schedule-insns -fno-rerun-loop-opt' + MACH=PPCG5 OS=ALL LVL=1000 COMPS=icc,smc,dmc,skc,dkc,xcc +- 'gcc' '-mpowerpc64 -maltivec -mabi=altivec -mcpu=970 -mtune=970 -O3' ++ '%%CC%%' '-mpowerpc64 -maltivec -mabi=altivec -mcpu=970 -mtune=970 -O3' + MACH=POWER5 OS=ALL LVL=1010 COMPS=icc,smc,dmc,skc,dkc,xcc +- 'gcc' '-mcpu=power5 -mtune=power5 -O3 -fno-schedule-insns -fno-rerun-loop-opt' ++ '%%CC%%' '-mcpu=power5 -mtune=power5 -O3 -fno-schedule-insns -fno-rerun-loop-opt' + MACH=POWER5 OS=ALL LVL=1010 COMPS=f77 +- 'gfortran' '-mcpu=power5 -mtune=power5 -O3 -fno-schedule-insns -fno-rerun-loop-opt' ++ '%%FC%%' '-mcpu=power5 -mtune=power5 -O3 -fno-schedule-insns -fno-rerun-loop-opt' + MACH=POWER5 OS=ALL LVL=1010 COMPS=f77 + 'xlf' '-qtune=pwr5 -qarch=pwr5 -O3 -qmaxmem=-1 -qfloat=hsflt' + MACH=POWER4 OS=ALL LVL=1010 COMPS=icc,dmc,smc,dkc,skc,xcc +- 'gcc' '-mcpu=power4 -mtune=power4 -O3 -fno-schedule-insns -fno-rerun-loop-opt' ++ '%%CC%%' '-mcpu=power4 -mtune=power4 -O3 -fno-schedule-insns -fno-rerun-loop-opt' + MACH=POWER4 OS=ALL LVL=1010 COMPS=f77 + 'xlf' '-qtune=pwr4 -qarch=pwr4 -O3 -qmaxmem=-1 -qfloat=hsflt' + # +@@ -131,10 +131,10 @@ + # Generic defaults + # + MACH=ALL OS=ALL LVL=5 COMPS=icc,smc,dmc,skc,dkc,xcc +- 'gcc' '-O -fomit-frame-pointer' ++ '%%CC%%' '-O -fomit-frame-pointer' + MACH=ALL OS=ALL LVL=5 COMPS=f77 +- 'gfortran' '-O' ++ '%%FC%%' '-O' + MACH=ALL OS=ALL LVL=4 COMPS=f77 +- 'g77' '-O' ++ '%%FC%%' '-O' + MACH=ALL OS=ALL LVL=0 COMPS=f77 +- 'f77' '-O' ++ '%%FC%%' '-O' diff --git a/math/atlas/files/patch-CONFIG+src+backend+archinfo_freebsd.c b/math/atlas/files/patch-CONFIG+src+backend+archinfo_freebsd.c new file mode 100644 index 000000000000..a8f1e062dab5 --- /dev/null +++ b/math/atlas/files/patch-CONFIG+src+backend+archinfo_freebsd.c @@ -0,0 +1,75 @@ +--- CONFIG/src/backend/archinfo_freebsd.c.orig Wed Jan 31 06:30:00 2007 ++++ CONFIG/src/backend/archinfo_freebsd.c Thu Feb 8 16:37:05 2007 +@@ -73,13 +73,24 @@ + } + break; + case AFSPARC: /* don't know */ ++ if (!CmndOneLine(NULL, "sysctl hw.model", res)) ++ { ++ if (strstr(res, "UltraSparc-IV")) mach = SunUSIV; ++ if (strstr(res, "UltraSparc-II")) mach = SunUSII; ++ if (strstr(res, "UltraSparc-I")) mach = SunUSI; ++ if (strstr(res, "UltraSparc")) mach = SunUSI; ++ else mach = SunUSI; ++ } + break; + case AFALPHA: + #if 0 + if (!CmndOneLine(NULL, "sysctl hw.model", res)) + { + if (strstr(res, "433au")) mach = Dec21164; ++ else if (strstr(res, "500au")) mach = Dec21164; ++ else if (strstr(res, "AlphaPC 164")) mach = Dec21164; + else if (strstr(res, "XP1000")) mach = Dec21264; ++ else mach = Dec21264; + } + #endif + break; +@@ -89,15 +100,33 @@ + if (!CmndOneLine(NULL, "sysctl hw.model", res)) + { + if (strstr(res, "Pentium Pro")) mach = IntPPRO; ++ else if (strstr(res, "Pentium(R) D")) mach = IntP4E; ++ else if (strstr(res, "Pentium(R) Pro")) mach = IntPPRO; ++ else if (strstr(res, "Pentium 4")) mach = IntP4; ++ else if (strstr(res, "Pentium(R) 4")) mach = IntP4; ++ else if (strstr(res, "Pentium(R) M")) mach = IntP4; + else if (strstr(res, "Pentium III")) mach = IntPIII; + else if (strstr(res, "Pentium II ")) mach = IntPII; + else if (strstr(res, "Athlon")) mach = AmdAthlon; ++ else if (strstr(res, "Pentium III/Pentium III")) mach = IntPIII; ++ else if (strstr(res, "Pentium(R) III")) mach = IntPIII; ++ else if (strstr(res, "Pentium II")) mach = IntPII; ++ else if (strstr(res, "Pentium II/PentiumII")) mach = IntPII; ++ else if (strstr(res, "Pentium(R) II ")) mach = IntPII; ++ else if (strstr(res, "Celeron")) mach = IntPII; ++ else if (strstr(res, "Celeron(R)")) mach = IntPII; ++ else if (strstr(res, "Opteron(tm)")) mach = AmdHammer; ++ else if (strstr(res, "AMD Athlon(tm) 64")) mach = AmdHammer; + else if (strstr(res, "AMD-K7")) mach = AmdAthlon; +- else if (strstr(res, "32 bit Hammer")) mach = AmdHammer; +- else if (strstr(res, "64 bit Hammer")) mach = AmdHammer; +- else if (strstr(res, "Pentium/P55C")) mach = IntP5MMX; /* sent by */ +- else if (strstr(res, "Pentium")) mach=IntP5; /* Nakata Maho */ + else if (strstr(res, "iMac4,1")) mach=IntCoreDuo; ++ else if (strstr(res, "Sempron(tm)")) mach = AmdAthlon; ++ else if (strstr(res, "AMD-K6(tm)")) mach = IntP5MMX; ++ else if (strstr(res, "Pentium/P55C")) mach = IntP5MMX; ++ else if (strstr(res, "Pentium/P54C")) mach=IntP5; ++ else if (strstr(res, "Pentium")) mach=IntP5; ++ else if (strstr(res, "VIA")) mach=IntP5MMX; ++ else if (strstr(res, "Crusoe(tm)")) mach=IntP5MMX; ++ else mach = IntP5; + } + break; + default:; +@@ -156,8 +185,8 @@ + { + int mhz=0; + char res[1024]; +- if (!CmndOneLine(NULL, "sysctl hw.cpufrequency", res) ) ++ if (!CmndOneLine(NULL, "sysctl machdep.tsc_freq", res) ) + mhz = GetFirstDouble(res) / 1000000; + return(mhz); + } + diff --git a/math/atlas/files/patch-CONFIG+src+backend+archinfo_x86.c b/math/atlas/files/patch-CONFIG+src+backend+archinfo_x86.c new file mode 100644 index 000000000000..f593ba87f93e --- /dev/null +++ b/math/atlas/files/patch-CONFIG+src+backend+archinfo_x86.c @@ -0,0 +1,10 @@ +--- CONFIG/src/backend/archinfo_x86.c~ Tue Dec 19 06:47:11 2006 ++++ CONFIG/src/backend/archinfo_x86.c Wed Dec 27 12:05:00 2006 +@@ -281,6 +281,7 @@ + case 9: + case 13: + iret = IntPM; ++ break; + case 14: + iret = IntCoreDuo; + break; diff --git a/math/atlas/files/patch-Make.top b/math/atlas/files/patch-Make.top deleted file mode 100644 index 6f062fff02ae..000000000000 --- a/math/atlas/files/patch-Make.top +++ /dev/null @@ -1,13 +0,0 @@ -http://math-atlas.sourceforge.net/errata.html -make kill from topdir removes libraries - ---- Make.top Mon Dec 22 09:06:32 2003 -+++ Make.top Wed Mar 7 02:15:31 2007 -@@ -211,7 +211,6 @@ - rm -rf src/blas/reference/level1/$(arch) - rm -rf src/auxil/$(arch) - rm -rf src/testing/$(arch) -- rm -rf lib/$(arch) - rm -rf bin/$(arch) - - killall : diff --git a/math/atlas/files/patch-USIII.flg b/math/atlas/files/patch-USIII.flg deleted file mode 100644 index 739480217770..000000000000 --- a/math/atlas/files/patch-USIII.flg +++ /dev/null @@ -1,27 +0,0 @@ -http://math-atlas.sourceforge.net/errata.html -Error in compiler flags for gcc/USIII arch defaults - ---- tune/blas/gemm/CASES/ccases.flg Mon Dec 22 09:12:07 2003 -+++ tune/blas/gemm/CASES/ccases.flg Wed Mar 7 03:06:39 2007 -@@ -5,7 +5,7 @@ - -mcpu=ultrasparc -mtune=ultrasparc -fomit-frame-pointer -O - 306 192 4 4 8 0 4 4 4 8 ATL_mm4x4x8p.c "R. Clint Whaley" \ - gcc ---O -fomit-frame-pointer -fno-schedule-insns -fno-schedule-insns2 -+-mcpu=ultrasparc -mtune=ultrasparc -O -fomit-frame-pointer -fno-schedule-insns -fno-schedule-insns2 - 307 192 4 4 16 1 0 4 4 16 ATL_smm4x4x16_av.c "R. Clint Whaley" - 308 192 4 4 4 1 0 4 4 4 ATL_smm4x4x4_av.c "R. Clint Whaley" - 309 16 0 0 4 1 0 4 4 4 ATL_smmMNCU_av.c "R. Clint Whaley" - ---- tune/blas/gemm/CASES/scases.flg Mon Dec 22 09:12:07 2003 -+++ tune/blas/gemm/CASES/scases.flg Wed Mar 7 03:08:48 2007 -@@ -5,7 +5,7 @@ - -mcpu=ultrasparc -mtune=ultrasparc -fomit-frame-pointer -O - 306 192 4 4 8 0 4 4 4 8 ATL_mm4x4x8p.c "R. Clint Whaley" \ - gcc ---O -fomit-frame-pointer -fno-schedule-insns -fno-schedule-insns2 -+-mcpu=ultrasparc -mtune=ultrasparc -O -fomit-frame-pointer -fno-schedule-insns -fno-schedule-insns2 - 307 192 4 4 16 1 0 4 4 16 ATL_smm4x4x16_av.c "R. Clint Whaley" - 308 192 4 4 4 1 0 4 4 4 ATL_smm4x4x4_av.c "R. Clint Whaley" - 309 16 0 0 4 1 0 4 4 4 ATL_smmMNCU_av.c "R. Clint Whaley" - diff --git a/math/atlas/files/patch-config.c b/math/atlas/files/patch-config.c deleted file mode 100644 index f96f241f3735..000000000000 --- a/math/atlas/files/patch-config.c +++ /dev/null @@ -1,197 +0,0 @@ ---- config.c.orig Mon Dec 22 23:06:32 2003 -+++ config.c Sat Mar 27 14:47:04 2004 -@@ -666,7 +666,9 @@ - sprintf(ln, "%s --version", gcc); - if (CmndOneLine(NULL, ln, ln2) == 0) - { -- *major = GetIntVers(ln2, &j); -+ j=0;if(isalpha(ln2[0])){for(i=0;!isspace(ln2[i]);i++)j++;} /*skip gccXXX ; XXX is number*/ -+ for (i=j; !isdigit(ln2[i]); i++) j++; -+ *major = GetIntVers(ln2+j, &i); j += i; - if (*major != -1) - { - *minor = GetIntVers(ln2+j, &i); j += i; -@@ -1188,7 +1190,9 @@ - switch(OS) - { - case OSOSX: /* don't know answer */ -- case OSFreeBSD: /* don't know answer */ -+ case OSFreeBSD: -+ if (THREADS) strcpy(LIBS, "%%PTHREAD_LIBS%% -lm"); -+ break; - case OSLinux: - break; - case OSSunOS: -@@ -1450,9 +1454,9 @@ - if (THREADS && OS == OSFreeBSD) - { - if (which == CPF77) -- strcat(flag, " -pthread"); -+ strcat(flag, " %%PTHREAD_LIBS%%"); - else -- strcat(flag, " -pthread -D_REENTRANT -D_THREAD_SAFE"); -+ strcat(flag, " %%PTHREAD_LIBS%% %%PTHREAD_CFLAGS%%"); - } - break; - case OSSunOS4: -@@ -1984,8 +1988,8 @@ - if (OS == OSFreeBSD) - { - if (strstr(comp, "cc")) -- strcat(flag, " -pthread -D_REENTRANT -D_THREAD_SAFE"); -- else strcat(flag, " -pthread"); -+ strcat(flag, " %%PTHREAD_LIBS%% %%PTHREAD_CFLAGS%%"); -+ else strcat(flag, " %%PTHREAD_LIBS%%"); - } - } - return(*comp ? comp : NULL); -@@ -2587,7 +2587,7 @@ - break; - case IntP4: - lf1 = l1 = 64; -- lf2 = l2 = 512; -+ lf2 = l2 = 4096; - s1 = 0; - s2 = 0; - break; -@@ -2687,6 +2687,7 @@ - l1 = l2 = s1 = s2 = 0; - lf2 = 4096; - } -+ s1 = 0; // XXX always calculate L1 cache size - if (lvl == 1) - { - if (AmSure) *AmSure = s1; -@@ -2799,7 +2803,7 @@ - else if (strstr(ln, "ia64")) la = LAIA64; - else if ( strstr(ln, "i686") || strstr(ln, "i586") || - strstr(ln, "i486") || strstr(ln, "i386") || -- strstr(ln, "x86_64") ) la = LAX86; -+ strstr(ln, "x86_64") || strstr(ln, "amd64") ) la = LAX86; - } - return(la); - } -@@ -2835,12 +2839,22 @@ - } - break; - case LASPARC: /* don't know */ -+ if (!CmndOneLine(targ, "sysctl hw.model", ln)) -+ { -+ if (strstr(ln, "UltraSparc-II")) mach = SunUS2; -+ if (strstr(ln, "UltraSparc-I")) mach = SunUS1; -+ if (strstr(ln, "UltraSparc")) mach = SunUSX; -+ else mach = SunUSX; -+ } - break; - case LAALPHA: - if (!CmndOneLine(targ, "sysctl hw.model", ln)) - { - if (strstr(ln, "433au")) mach = Dec21164; -+ else if (strstr(ln, "500au")) mach = Dec21164; -+ else if (strstr(ln, "AlphaPC 164")) mach = Dec21164; - else if (strstr(ln, "XP1000")) mach = Dec21264; -+ else mach = Dec21264; - } - break; - case LAIA64: /* don't know */ -@@ -2849,14 +2863,33 @@ - if (!CmndOneLine(targ, "sysctl hw.model", ln)) - { - if (strstr(ln, "Pentium Pro")) mach = IntPPRO; -+ else if (strstr(ln, "Pentium(R) Pro")) mach = IntPPRO; -+ else if (strstr(ln, "Pentium 4")) mach = IntP4; -+ else if (strstr(ln, "Pentium(R) 4")) mach = IntP4; -+ else if (strstr(ln, "Pentium(R) M")) mach = IntP4; - else if (strstr(ln, "Pentium III")) mach = IntPIII; -- else if (strstr(ln, "Pentium II ")) mach = IntPII; -+ else if (strstr(ln, "Pentium III/Pentium III")) mach = IntPIII; -+ else if (strstr(ln, "Pentium(R) III")) mach = IntPIII; -+ else if (strstr(ln, "Pentium II")) mach = IntPII; -+ else if (strstr(ln, "Pentium II/PentiumII")) mach = IntPII; -+ else if (strstr(ln, "Pentium(R) II ")) mach = IntPII; -+ else if (strstr(ln, "Celeron")) mach = IntPII; -+ else if (strstr(ln, "Celeron(R)")) mach = IntPII; -+ else if (strstr(ln, "Opteron(tm)") && sizeof(void *)==4) mach = AmdHammer32; -+ else if (strstr(ln, "Opteron(tm)") && sizeof(void *)==8) mach = AmdHammer64; -+ else if (strstr(ln, "AMD Athlon(tm) 64") && sizeof(void *)==4) mach = AmdHammer32; -+ else if (strstr(ln, "AMD Athlon(tm) 64") && sizeof(void *)==8) mach = AmdHammer64; -+ else if (strstr(ln, "Sempron(tm)")) mach = AmdAthlon; -+ else if (strstr(ln, "Athlon(tm)")) mach = AmdAthlon; - else if (strstr(ln, "Athlon")) mach = AmdAthlon; - else if (strstr(ln, "AMD-K7")) mach = AmdAthlon; -- else if (strstr(ln, "32 bit Hammer")) mach = AmdHammer32; -- else if (strstr(ln, "64 bit Hammer")) mach = AmdHammer64; -- else if (strstr(ln, "Pentium/P55C")) mach = IntP5MMX; /* sent by */ -- else if (strstr(ln, "Pentium")) mach=IntP5; /* Nakata Maho */ -+ else if (strstr(ln, "AMD-K6(tm)")) mach = IntP5MMX; -+ else if (strstr(ln, "Pentium/P55C")) mach = IntP5MMX; -+ else if (strstr(ln, "Pentium/P54C")) mach=IntP5; -+ else if (strstr(ln, "Pentium")) mach=IntP5; -+ else if (strstr(ln, "VIA")) mach=IntP5MMX; -+ else if (strstr(ln, "Crusoe(tm)")) mach=IntP5MMX; -+ else mach = IntP5; - } - break; - default:; -@@ -3641,8 +3673,8 @@ - } - if (THREADS) /* add ncpu to ARCH */ - { -- for (i=0; ARCH[i]; i++); -- sprintf(ARCH+i, "_%d", ncpu); -+// for (i=0; ARCH[i]; i++); // do not add number of cpu for ARCHNAME -+// sprintf(ARCH+i, "_%d", ncpu); // #cpu can be different in general - } - do - { -@@ -4047,9 +4079,9 @@ - if (mach == IA64Itan || mach == IA64Itan2 ) - fprintf(fpout, " -DATL_MAXNREG=128"); - if (ASMD != ASM_None) fprintf(fpout, " -DATL_%s", ASMNAM[ASMD]); -- if (mach == AmdHammer32 && (OS != OSWinNT && OS != OSWin9x)) -+ if (mach == AmdHammer32 && (OS != OSWinNT && OS != OSWin9x && OS != OSFreeBSD)) - fprintf(fpout, " -m32"); -- else if (mach == AmdHammer64) fprintf(fpout, " -m64"); -+ else if (mach == AmdHammer64 && (OS != OSFreeBSD)) fprintf(fpout, " -m64"); - if (mach == IA64Itan2 && strstr(CC, "icc")) - fprintf(fpout, " -DATL_IntelIccBugs"); - fprintf(fpout, "\n\n"); -@@ -4080,7 +4112,7 @@ - if (THREADS) - { - fprintf(fpout, " -DATL_NCPU=%d", ncpu); -- if (OS == OSFreeBSD) fprintf(fpout, " -D_THREAD_SAFE -D_REENTRANT"); -+ if (OS == OSFreeBSD) fprintf(fpout, " %%PTHREAD_CFLAGS%%"); - if (OS == OSAIX) fprintf(fpout, " -DIBM_PT_ERROR"); - if (OS == OSIRIX) fprintf(fpout, " -D_POSIX_C_SOURCE=199506L"); - } ---- config.c.orig Sat Jan 6 21:07:32 2007 -+++ config.c Sun Jan 7 06:06:08 2007 -@@ -4177,9 +4177,9 @@ - fprintf(fpout, "# ------------------------------------\n"); - fprintf(fpout, "# Reference and system libraries\n"); - fprintf(fpout, "# ------------------------------------\n"); -- fprintf(fpout, " BLASlib = %s\n", BLASlib); -- fprintf(fpout, " FBLASlib = \n"); -- fprintf(fpout, " FLAPACKlib = \n"); -+ fprintf(fpout, " BLASlib = -L%%LOCALBASE%%/lib -lblas\n"); -+ fprintf(fpout, " FBLASlib = -L%%LOCALBASE%%/lib -lblas\n"); -+ fprintf(fpout, " FLAPACKlib = -L%%LOCALBASE%%/lib -llapack\n"); - fprintf(fpout, " LIBS = %s\n\n", LIBS); - - fprintf(fpout, - -http://math-atlas.sourceforge.net/errata.html -String overrun in config for long compiler paths - ---- config.c Mon Dec 22 09:06:32 2003 -+++ config.c Wed Mar 7 02:08:34 2007 -@@ -3411,7 +3411,7 @@ - char LIBS[256]; - char TAR[256], GZIP[256], GUNZIP[256], PMAKE[128]; - -- char comp[64], cflg[512], ln[512], tnam[256], archdef[256], mmdef[256]; -+ char comp[512], cflg[512], ln[512], tnam[256], archdef[256], mmdef[256]; - char BC[256], BCFLAGS[256]; - int GOGO=0, L2IsKnown=0, Use3DNow=0, TuneL1=1; - int USEDEFL1=0; diff --git a/math/atlas/files/patch-ilaenv.f b/math/atlas/files/patch-ilaenv.f deleted file mode 100644 index 53b834de59cf..000000000000 --- a/math/atlas/files/patch-ilaenv.f +++ /dev/null @@ -1,220 +0,0 @@ -http://math-atlas.sourceforge.net/errata.html -Large blocking factors hurt LAPACK performance for small N - ---- interfaces/lapack/F77/src/ilaenv.f Mon Dec 22 09:07:51 2003 -+++ interfaces/lapack/F77/src/ilaenv.f Mon Mar 5 12:41:41 2007 -@@ -7,7 +7,7 @@ - * June 30, 1999 - * - * -- Modified by R. Clint Whaley for ATLAS Fortran77 LAPACK interface, --* 1999 -+* 1999, 2006 - * - * .. Scalar Arguments .. - CHARACTER*( * ) NAME, OPTS -@@ -111,6 +111,7 @@ - CHARACTER*3 C3 - CHARACTER*6 SUBNAM - INTEGER I, IC, IZ, NB, NBMIN, NX -+ INTEGER MN, ATLNB - * .. - * .. Intrinsic Functions .. - INTRINSIC CHAR, ICHAR, INT, MIN, REAL -@@ -207,13 +208,10 @@ - * ISPEC = 1: block size - * - * ATLAS sets default blocking factor to the internal blocking factor of --* GEMM. In routines such as QR where unblocked code addresses a panel --* (as opposed to a NBxNB block as in POTF2), this will often be too large --* to provide the optimal performance due to the slowness of the panel --* factorization. Asymptotically, however, you will want it at least --* this big. Therefore, we choose this NB as default since how much smaller --* an NB is required is very problem size and system architecture --* dependent. Note that the recursive routines provided by ATLAS -+* GEMM. For particular routines, we then examine input parameters to -+* see if we should reduce it (for instance, to ensure that we don't -+* spend too much time in the unblocked level-2 portion of the algorithm). -+* Note that the recursive routines provided by ATLAS - * (presently, LU & Cholesky) do not need this value. - * - NB = 60 -@@ -226,6 +224,179 @@ - ELSE IF (DCPLX) THEN - CALL ATL_F77WRAP_ZGETNB(NB) - ENDIF -+ ATLNB = NB -+* -+* Find minimum dimension of problem: don't want NB bigger than that -+* -+ MN = N1 -+ IF (N2 .GT. 0) THEN -+ IF (MN .GT. N2) MN = N2 -+ IF (N3 .GT. 0) THEN -+ IF (MN .GT. N3) MN = N3 -+ IF (N4 .GT. 0) THEN -+ IF (MN .GT. N4) MN = N4 -+ END IF -+ END IF -+ END IF -+* -+* Make sure NB is not close to size of entire dimension, unless smallest -+* dimension is so small you might as well use unblocked code the whole way -+* -+ IF (MN .LE. 3) THEN -+ NB = MN; -+ ELSE IF (NB*5 .GT. MN) THEN -+ IF (MN .LT. 16) THEN -+ IF (MN .LT. 8) THEN -+ NB = 2 -+ ELSE -+ NB = 4 -+ END IF -+ ELSE -+ NB = (MN / 4) -+ IF (NB .GT. 4) THEN -+ NB = (NB/4)*4 -+ ENDIF -+ END IF -+ END IF -+ IF( C2.EQ.'GE' ) THEN -+ IF( C3.EQ.'TRF' ) THEN -+ NB = NB -+* -+* QR requires extra flops for blocking, so restrain total NB -+* -+ ELSE IF( C3.EQ.'QRF' .OR. C3.EQ.'RQF' .OR. C3.EQ.'LQF' .OR. -+ $ C3.EQ.'QLF' ) THEN -+ IF (NB .GT. 80) THEN -+ IF( SNAME ) THEN -+ NB = 60 -+ ELSE -+ NB = 40 -+ END IF -+ END IF -+ ELSE IF( C3.EQ.'HRD' ) THEN -+ IF (NB .GT. 80) THEN -+ IF( SNAME ) THEN -+ NB = 60 -+ ELSE -+ NB = 40 -+ END IF -+ END IF -+ ELSE IF( C3.EQ.'BRD' ) THEN -+ IF (NB .GT. 80) THEN -+ IF( SNAME ) THEN -+ NB = 60 -+ ELSE -+ NB = 40 -+ END IF -+ END IF -+ ELSE IF( C3.EQ.'TRI' ) THEN -+ NB = NB -+ END IF -+ ELSE IF( C2.EQ.'PO' ) THEN -+ IF( C3.EQ.'TRF' ) THEN -+ NB = NB -+ END IF -+ ELSE IF( C2.EQ.'SY' ) THEN -+ IF( C3.EQ.'TRF' ) THEN -+ NB = NB -+ ELSE IF( SNAME .AND. C3.EQ.'TRD' ) THEN -+ IF (NB .GT. 80) THEN -+ IF( SNAME ) THEN -+ NB = 60 -+ ELSE -+ NB = 40 -+ END IF -+ END IF -+ ELSE IF( SNAME .AND. C3.EQ.'GST' ) THEN -+ NB = NB -+ END IF -+ ELSE IF( CNAME .AND. C2.EQ.'HE' ) THEN -+ IF( C3.EQ.'TRF' ) THEN -+ NB = NB -+ ELSE IF( C3.EQ.'TRD' ) THEN -+ IF (NB .GT. 80) THEN -+ IF( SNAME ) THEN -+ NB = 60 -+ ELSE -+ NB = 40 -+ END IF -+ END IF -+ ELSE IF( C3.EQ.'GST' ) THEN -+ NB = NB -+ END IF -+ ELSE IF( SNAME .AND. C2.EQ.'OR' ) THEN -+ IF( C3( 1:1 ).EQ.'G' ) THEN -+ IF( C4.EQ.'QR' .OR. C4.EQ.'RQ' .OR. C4.EQ.'LQ' .OR. -+ $ C4.EQ.'QL' .OR. C4.EQ.'HR' .OR. C4.EQ.'TR' .OR. -+ $ C4.EQ.'BR' ) THEN -+ IF (NB .GT. 80) NB = 60 -+ END IF -+ ELSE IF( C3( 1:1 ).EQ.'M' ) THEN -+ IF( C4.EQ.'QR' .OR. C4.EQ.'RQ' .OR. C4.EQ.'LQ' .OR. -+ $ C4.EQ.'QL' .OR. C4.EQ.'HR' .OR. C4.EQ.'TR' .OR. -+ $ C4.EQ.'BR' ) THEN -+ IF (NB .GT. 80) NB = 60 -+ END IF -+ END IF -+ ELSE IF( CNAME .AND. C2.EQ.'UN' ) THEN -+ IF( C3( 1:1 ).EQ.'G' ) THEN -+ IF( C4.EQ.'QR' .OR. C4.EQ.'RQ' .OR. C4.EQ.'LQ' .OR. -+ $ C4.EQ.'QL' .OR. C4.EQ.'HR' .OR. C4.EQ.'TR' .OR. -+ $ C4.EQ.'BR' ) THEN -+ IF (NB .GT. 80) NB = 40 -+ END IF -+ ELSE IF( C3( 1:1 ).EQ.'M' ) THEN -+ IF( C4.EQ.'QR' .OR. C4.EQ.'RQ' .OR. C4.EQ.'LQ' .OR. -+ $ C4.EQ.'QL' .OR. C4.EQ.'HR' .OR. C4.EQ.'TR' .OR. -+ $ C4.EQ.'BR' ) THEN -+ IF (NB .GT. 80) NB = 40 -+ END IF -+ END IF -+ ELSE IF( C2.EQ.'GB' ) THEN -+ IF( C3.EQ.'TRF' ) THEN -+ IF( SNAME ) THEN -+ NB = NB -+ ELSE -+ NB = NB -+ END IF -+ END IF -+ ELSE IF( C2.EQ.'PB' ) THEN -+ IF( C3.EQ.'TRF' ) THEN -+ IF( SNAME ) THEN -+ IF( N2.LE.64 ) THEN -+ NB = NB -+ ELSE -+ NB = NB -+ END IF -+ ELSE -+ IF( N2.LE.64 ) THEN -+ NB = NB -+ ELSE -+ NB = NB -+ END IF -+ END IF -+ END IF -+ ELSE IF( C2.EQ.'TR' ) THEN -+ IF( C3.EQ.'TRI' ) THEN -+ IF( SNAME ) THEN -+ NB = NB -+ ELSE -+ NB = NB -+ END IF -+ END IF -+ ELSE IF( C2.EQ.'LA' ) THEN -+ IF( C3.EQ.'UUM' ) THEN -+ IF( SNAME ) THEN -+ NB = NB -+ ELSE -+ NB = NB -+ END IF -+ END IF -+ ELSE IF( SNAME .AND. C2.EQ.'ST' ) THEN -+ IF( C3.EQ.'EBZ' ) THEN -+ NB = 1 -+ END IF -+ END IF - * - ILAENV = NB - RETURN diff --git a/math/atlas/files/patch-mmsearch.c b/math/atlas/files/patch-mmsearch.c deleted file mode 100644 index eb91fa7af5be..000000000000 --- a/math/atlas/files/patch-mmsearch.c +++ /dev/null @@ -1,16 +0,0 @@ -http://math-atlas.sourceforge.net/errata.html -Misdetection of nregs causes some x86 installs to go awry. - ---- tune/blas/gemm/mmsearch.c Mon Dec 22 09:11:57 2003 -+++ tune/blas/gemm/mmsearch.c Wed Mar 7 02:42:27 2007 -@@ -822,6 +822,10 @@ - int lat, NO1D=0; - double mf0, mf1, mf; - -+ #if defined(ATL_GAS_x8632) || defined(ATL_GAS_x8664) -+ return(0); -+ #endif -+ - if (pre == 'z') pre = 'd'; - else if (pre == 'c') pre = 's'; - diff --git a/math/atlas/files/patch-tfc.c b/math/atlas/files/patch-tfc.c deleted file mode 100644 index 3520d7f59746..000000000000 --- a/math/atlas/files/patch-tfc.c +++ /dev/null @@ -1,13 +0,0 @@ -http://math-atlas.sourceforge.net/errata.html -Install dies in tfc / ?Xover.h is incomplete ---- tune/blas/gemm/tfc.c Mon Dec 22 09:11:57 2003 -+++ tune/blas/gemm/tfc.c Wed Mar 7 02:01:20 2007 -@@ -55,7 +55,7 @@ - double time00(); - - #define DENMAT 175 --#define MAXALLOC (3*1024*1024*8) -+#define MAXALLOC (8*1024*1024*8) - - #ifdef ATL_DeclareSlens - F77_INTEGER ATL_Slen1, ATL_Slen2; diff --git a/math/atlas/files/patch-tune+sysinfo+L1CacheSize.c b/math/atlas/files/patch-tune+sysinfo+L1CacheSize.c index 2028b4ae92b8..f93ac6da884f 100644 --- a/math/atlas/files/patch-tune+sysinfo+L1CacheSize.c +++ b/math/atlas/files/patch-tune+sysinfo+L1CacheSize.c @@ -1,5 +1,5 @@ ---- tune/sysinfo/L1CacheSize.c Mon Dec 22 23:11:53 2003 -+++ ../../L1CacheSize.c Tue Jun 28 13:37:10 2005 +--- tune/sysinfo/L1CacheSize.c.orig Tue Dec 19 06:48:02 2006 ++++ tune/sysinfo/L1CacheSize.c Wed Dec 27 12:43:59 2006 @@ -31,7 +31,7 @@ #include <stdio.h> #include <stdlib.h> @@ -9,12 +9,12 @@ #ifndef time00 #define time00 ATL_cputime -@@ -134,7 +134,7 @@ +@@ -267,7 +267,7 @@ main(int nargs, char *args[]) { -- int L1Size, tmp, MaxSize=64, correct=1; -+ int L1Size, tmp, MaxSize=256, correct=1; +- int L1Size, MaxSize=64, correct=1; ++ int L1Size, MaxSize=256, correct=1; FILE *L1f; if (nargs > 2) diff --git a/math/atlas/files/thread-patch b/math/atlas/files/thread-patch index 5d6521809593..ea23f566a144 100644 --- a/math/atlas/files/thread-patch +++ b/math/atlas/files/thread-patch @@ -1,11 +1,12 @@ ---- config.c.orig Tue Jul 1 12:35:09 2003 -+++ config.c Tue Jul 1 12:35:44 2003 -@@ -79,7 +79,7 @@ - char *usermmnam[2] = {"", "GOTO"}; - enum USERGEMM {UG_None=0, UG_GOTO}; - --int XCOMP=0, THREADS=0, USEWINF77=0, NLINES=0, ISWIN=0; -+int XCOMP=0, THREADS=1, USEWINF77=0, NLINES=0, ISWIN=0; // force threading for single processor - char TARGNAM[512]; - enum MACHTYPE mach=MACHOther; - +--- CONFIG/src/SpewMakeInc.c~ Fri Feb 16 11:40:19 2007 ++++ CONFIG/src/SpewMakeInc.c Fri Feb 16 11:41:06 2007 +@@ -332,7 +332,8 @@ + &mhz, &ptrbits, &ncpu, comps, &gccflags, &outfile, &srcdir, + &blddir, &USEDEFL1, &USEARCHDEF, &nof77, &f2cdefs, &cdefs, &pmake, + &flapack, &smaflags, &dmaflags, &f77lib, &l2size, &targ); +- if (ncpu > 1) THREADS = 1; ++ /* if (ncpu > 1) THREADS = 1; */ ++ THREADS = 1; + if (!outfile) + fpout = stdout; + else diff --git a/math/atlas/files/timing_tolerance-patch b/math/atlas/files/timing_tolerance-patch deleted file mode 100644 index 5113e28405ab..000000000000 --- a/math/atlas/files/timing_tolerance-patch +++ /dev/null @@ -1,12 +0,0 @@ -http://math-atlas.sourceforge.net/errata.html#tol ---- tune/sysinfo/GetSysSum.c~ Sat Jul 24 20:40:05 2004 -+++ tune/sysinfo/GetSysSum.c Sun Jun 26 07:52:43 2005 -@@ -116,7 +116,7 @@ - fprintf(fpout, "#define ATL_fplat %d\n", lat); - fprintf(fpout, "#define ATL_lbnreg %d\n", lbnreg); - fprintf(fpout, "#define ATL_mmnreg %d\n", mmnreg); -- fprintf(fpout, "#define ATL_nkflop %d\n", nkflop); -+ fprintf(fpout, "#define ATL_nkflop %d\n", nkflop*5); - fprintf(fpout, "\n#endif\n"); - fclose(fpout); - } diff --git a/math/atlas/pkg-descr b/math/atlas/pkg-descr index c59c0267a409..cd9ce82d1dd3 100644 --- a/math/atlas/pkg-descr +++ b/math/atlas/pkg-descr @@ -2,17 +2,23 @@ The ATLAS (Automatically Tuned Linear Algebra Software) project is an ongoing research effort focusing on applying empirical techniques in order to provide portable performance. -At present, it provides C and Fortran77 interfaces to a -portably efficient BLAS implementation, as well as a few routines from LAPACK. +At present, it provides C and Fortran77 interfaces to a portable, +efficient BLAS implementation, as well as enhanced versions of +a few routines from LAPACK. -If you use blas, you can simply change flags when linking, -from -lblas to -lf77blas -latlas (order is important). +If you want to link software to ATLAS rather than the standard BLAS, simply +use -lf77blas -latlas (order is important), or -lptf77blas -latlas for the +threaded library (which is primarily useful on SMP machines), in place of +the usual -lblas. Corresponding pure C versions of the ATLAS libraries are +also included, in libcblas and libptcblas. -A few routines from LAPACK are merged into one library as libalapack. -It requres both C and Fortran77 interfaces, and thus that link line would be: --lalapack -lf77blas -lcblas -latlas -lg2c -lm . - -Other choice of CC and CFLAGS are *NOT* recommended. -They are already optimized for this platform and automatically searched. +The ATLAS-enhanced LAPACK routines are also provided. +To link software with this library instead of the standard LAPACK, use +-L/usr/local/lib/gcc-4.2.3 -L/usr/local/lib/gcc-4.2.3/gcc/i386-portbld-freebsd7.0/4.2.3 -lalapack -lf77blas -lcblas -latlas -lgfortranbegin -lgfortran -lm, or +-L/usr/local/lib/gcc-4.2.3 -L/usr/local/lib/gcc-4.2.3/gcc/i386-portbld-freebsd7.0/4.2.3 -lalapack_r -lptf77blas -lptcblas -latlas -lgfortranbegin -lgfortran +-lm for the threaded library, in place of the usual -llapack. +Note that +-L/usr/local/lib/gcc-4.2.3 -L/usr/local/lib/gcc-4.2.3/gcc/i386-portbld-freebsd7.0/4.2.3 +depends on your environment. WWW: http://math-atlas.sourceforge.net/ diff --git a/math/atlas/pkg-plist b/math/atlas/pkg-plist index f72987bc9372..73fb82ea9e77 100644 --- a/math/atlas/pkg-plist +++ b/math/atlas/pkg-plist @@ -1,7 +1,5 @@ include/cblas.h include/clapack.h -include/blas.h -include/lapack.h %%WITH_STATICLIB%%lib/libalapack.a lib/libalapack.so.2 lib/libalapack.so @@ -32,13 +30,8 @@ lib/libptcblas.so %%WITH_STATICLIB%%lib/libptf77blas.a lib/libptf77blas.so.2 lib/libptf77blas.so -%%WITH_STATICLIB%%lib/libtstatlas.a -lib/libtstatlas.so.2 -lib/libtstatlas.so -%%WITH_STATICLIB%%lib/libtstatlas_r.a -lib/libtstatlas_r.so.2 -lib/libtstatlas_r.so %%PORTDOCS%%share/doc/atlas/AtlasCredits.txt +%%PORTDOCS%%share/doc/atlas/BootSequence.txt %%PORTDOCS%%share/doc/atlas/ChangeLog %%PORTDOCS%%share/doc/atlas/DirStruct.txt %%PORTDOCS%%share/doc/atlas/INDEX.txt @@ -46,60 +39,12 @@ lib/libtstatlas_r.so %%PORTDOCS%%share/doc/atlas/TestTime.txt %%PORTDOCS%%share/doc/atlas/TroubleShoot.txt %%PORTDOCS%%share/doc/atlas/Windows.txt -%%PORTDOCS%%share/doc/atlas/atlas_contrib.ps -%%PORTDOCS%%share/doc/atlas/atlas_devel.ps -%%PORTDOCS%%share/doc/atlas/atlas_over.ps -%%PORTDOCS%%share/doc/atlas/cblas.ps -%%PORTDOCS%%share/doc/atlas/cblasqref.ps -%%PORTDOCS%%share/doc/atlas/f77blasqref.ps -%%PORTDOCS%%share/doc/atlas/lapackqref.ps +%%PORTDOCS%%share/doc/atlas/atlas_contrib.pdf +%%PORTDOCS%%share/doc/atlas/atlas_devel.pdf +%%PORTDOCS%%share/doc/atlas/atlas_install.pdf +%%PORTDOCS%%share/doc/atlas/atlas_over.pdf +%%PORTDOCS%%share/doc/atlas/cblas.pdf +%%PORTDOCS%%share/doc/atlas/cblasqref.pdf +%%PORTDOCS%%share/doc/atlas/f77blasqref.pdf +%%PORTDOCS%%share/doc/atlas/lapackqref.pdf %%PORTDOCS%%@dirrm share/doc/atlas -%%EXAMPLESDIR%%/xcl1blastst -%%EXAMPLESDIR%%/xcl2blastst -%%EXAMPLESDIR%%/xcl3blastst -%%EXAMPLESDIR%%/xcl3blastst_pt -%%EXAMPLESDIR%%/xcllttst -%%EXAMPLESDIR%%/xcllttstF -%%EXAMPLESDIR%%/xcllttstF_pt -%%EXAMPLESDIR%%/xcllttst_pt -%%EXAMPLESDIR%%/xclutst -%%EXAMPLESDIR%%/xclutstF -%%EXAMPLESDIR%%/xclutstF_pt -%%EXAMPLESDIR%%/xclutst_pt -%%EXAMPLESDIR%%/xdl1blastst -%%EXAMPLESDIR%%/xdl2blastst -%%EXAMPLESDIR%%/xdl3blastst -%%EXAMPLESDIR%%/xdl3blastst_pt -%%EXAMPLESDIR%%/xdllttst -%%EXAMPLESDIR%%/xdllttstF -%%EXAMPLESDIR%%/xdllttstF_pt -%%EXAMPLESDIR%%/xdllttst_pt -%%EXAMPLESDIR%%/xdlutst -%%EXAMPLESDIR%%/xdlutstF -%%EXAMPLESDIR%%/xdlutstF_pt -%%EXAMPLESDIR%%/xdlutst_pt -%%EXAMPLESDIR%%/xsl1blastst -%%EXAMPLESDIR%%/xsl2blastst -%%EXAMPLESDIR%%/xsl3blastst -%%EXAMPLESDIR%%/xsl3blastst_pt -%%EXAMPLESDIR%%/xsllttst -%%EXAMPLESDIR%%/xsllttstF -%%EXAMPLESDIR%%/xsllttstF_pt -%%EXAMPLESDIR%%/xsllttst_pt -%%EXAMPLESDIR%%/xslutst -%%EXAMPLESDIR%%/xslutstF -%%EXAMPLESDIR%%/xslutstF_pt -%%EXAMPLESDIR%%/xslutst_pt -%%EXAMPLESDIR%%/xzl1blastst -%%EXAMPLESDIR%%/xzl2blastst -%%EXAMPLESDIR%%/xzl3blastst -%%EXAMPLESDIR%%/xzl3blastst_pt -%%EXAMPLESDIR%%/xzllttst -%%EXAMPLESDIR%%/xzllttstF -%%EXAMPLESDIR%%/xzllttstF_pt -%%EXAMPLESDIR%%/xzllttst_pt -%%EXAMPLESDIR%%/xzlutst -%%EXAMPLESDIR%%/xzlutstF -%%EXAMPLESDIR%%/xzlutstF_pt -%%EXAMPLESDIR%%/xzlutst_pt -@dirrm %%EXAMPLESDIR%% |