diff -Nru ruby-lapack-1.7.2/debian/changelog ruby-lapack-1.8.1/debian/changelog --- ruby-lapack-1.7.2/debian/changelog 2018-03-01 12:30:17.000000000 +0000 +++ ruby-lapack-1.8.1/debian/changelog 2018-03-08 10:20:58.000000000 +0000 @@ -1,26 +1,27 @@ -ruby-lapack (1.7.2-1build4) bionic; urgency=high +ruby-lapack (1.8.1-1) unstable; urgency=medium - * No change rebuild against ruby-defaults without ruby2.3. - - -- Dimitri John Ledkov Thu, 01 Mar 2018 12:30:17 +0000 - -ruby-lapack (1.7.2-1build3) bionic; urgency=medium - - * No-change rebuild for ruby2.5 update. - - -- Matthias Klose Thu, 01 Feb 2018 19:14:10 +0000 - -ruby-lapack (1.7.2-1build2) xenial; urgency=medium - - * No-change rebuild for ruby2.3-only support. - - -- Matthias Klose Mon, 14 Mar 2016 09:32:24 +0000 - -ruby-lapack (1.7.2-1build1) xenial; urgency=medium + [ Cédric Boutillier ] + * Remove version in the gem2deb build-dependency + * Use https:// in Vcs-* fields + * Use https:// in Vcs-* fields + * Bump Standards-Version to 3.9.7 (no changes needed) + * Run wrap-and-sort on packaging files - * No-change rebuild to add ruby2.3 support. + [ Youhei SASAKI ] + * New upstream version 1.8.1 + * Add patch: Use vendorarchdir, Generate gemspec + * d/changelog: remove trailing-whitespace + * d/copyright: Update year, use https + * d/{control,conpat}: Bump Compat 11 + * d/control: Bump Standard Version 4.1.3 + * d/control: Add autopkgtest support + * d/ruby-tests.{rb,rake}: update testsuite + * d/{control,rules}: drop -dbg package + * d/control: use https + * d/control: Update Vcs-{Git,Browser}. use salsa + * d/{ruby-lapack.examples,rules}: Fix permission - -- Matthias Klose Sun, 13 Mar 2016 14:44:27 +0000 + -- Youhei SASAKI Thu, 08 Mar 2018 19:20:58 +0900 ruby-lapack (1.7.2-1) unstable; urgency=medium @@ -80,7 +81,7 @@ ruby-lapack (1.5-1) unstable; urgency=low [ Youhei SASAKI ] - * Initial release (Closes: #619219) + * Initial release (Closes: #619219) * Imported Upstream version 1.5 [ Lucas Nussbaum ] diff -Nru ruby-lapack-1.7.2/debian/compat ruby-lapack-1.8.1/debian/compat --- ruby-lapack-1.7.2/debian/compat 2016-02-08 09:30:03.000000000 +0000 +++ ruby-lapack-1.8.1/debian/compat 2018-03-08 09:21:23.000000000 +0000 @@ -1 +1 @@ -9 +11 diff -Nru ruby-lapack-1.7.2/debian/control ruby-lapack-1.8.1/debian/control --- ruby-lapack-1.7.2/debian/control 2018-03-01 12:30:17.000000000 +0000 +++ ruby-lapack-1.8.1/debian/control 2018-03-08 09:39:47.000000000 +0000 @@ -1,34 +1,26 @@ Source: ruby-lapack Section: ruby Priority: optional -Maintainer: Ubuntu Developers -XSBC-Original-Maintainer: Debian Ruby Extras Maintainers +Maintainer: Debian Ruby Extras Maintainers Uploaders: Youhei SASAKI -Build-Depends: debhelper (>= 9~), gem2deb (>= 0.5.0~), ruby-narray, liblapack-dev +Build-Depends: debhelper (>= 11~), + gem2deb, + liblapack-dev, + ruby-narray +Standards-Version: 4.1.3 +Homepage: https://www.gfd-dennou.org/arch/ruby/products/ruby-lapack/index.html +Vcs-Git: https://salsa.debian.org/ruby-team/ruby-lapack.git +Vcs-Browser: https://salsa.debian.org/ruby-team/ruby-lapack +Testsuite: autopkgtest-pkg-ruby XS-Ruby-Versions: all -Standards-Version: 3.9.6 -Homepage: http://www.gfd-dennou.org/arch/ruby/products/ruby-lapack/index.html -Vcs-Git: https://anonscm.debian.org/cgit/pkg-ruby-extras/ruby-lapack.git -Vcs-Browser: https://anonscm.debian.org/cgit/pkg-ruby-extras/ruby-lapack.git Package: ruby-lapack Architecture: any XB-Ruby-Versions: ${ruby:Versions} -Depends: ${shlibs:Depends}, ${misc:Depends}, ruby-narray +Depends: ruby-narray, + ${misc:Depends}, + ${shlibs:Depends} Description: Ruby wrapper of LAPACK Ruby-LAPACK is Ruby wrapper of LAPACK library using NArray. . - This package provides libraries and documents. - -Package: ruby-lapack-dbg -Section: debug -Priority: extra -Architecture: any -XB-Ruby-Versions: ${ruby:Version} -Depends: ${misc:Depends}, ruby-lapack (=${binary:Version}) -Description: Ruby wrapper of LAPACK (debugging symbols) - Ruby-LAPACK is Ruby wrapper of LAPACK library using NArray. - . - This package is provided primarily to provide a backtrace with names - in a debugger, this makes it somewhat easier to interpret core - dumps. Most people will not need this package. + This package provides libraries and documents. \ No newline at end of file diff -Nru ruby-lapack-1.7.2/debian/copyright ruby-lapack-1.8.1/debian/copyright --- ruby-lapack-1.7.2/debian/copyright 2016-02-08 09:30:03.000000000 +0000 +++ ruby-lapack-1.8.1/debian/copyright 2018-03-08 09:20:24.000000000 +0000 @@ -1,9 +1,15 @@ -Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: ruby-lapack -Source: http://www.gfd-dennou.org/arch/ruby/products/ruby-lapack/index.html +Source: https://www.gfd-dennou.org/arch/ruby/products/ruby-lapack/index.html Files: * Copyright: 2008-2011 Seiya Nishizawa +License: GPL-2+ or Ruby's + +Files: debian/* +Copyright: 2011-2018 Youhei SASAKI +License: GPL-2+ + License: Ruby's Ruby-Lapack is copyrighted free software by Seiya Nishizawa . You can redistribute it and/or modify it under either the terms of the GPL @@ -61,8 +67,6 @@ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -Files: debian/* -Copyright: 2011 Youhei SASAKI License: GPL-2+ This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru ruby-lapack-1.7.2/debian/patches/0001-Drop-RubyGems-Depends.patch ruby-lapack-1.8.1/debian/patches/0001-Drop-RubyGems-Depends.patch --- ruby-lapack-1.7.2/debian/patches/0001-Drop-RubyGems-Depends.patch 2016-02-08 10:51:30.000000000 +0000 +++ ruby-lapack-1.8.1/debian/patches/0001-Drop-RubyGems-Depends.patch 2018-03-08 10:20:58.000000000 +0000 @@ -8,7 +8,7 @@ 1 file changed, 4 deletions(-) diff --git a/lib/numru/lapack.rb b/lib/numru/lapack.rb -index 252206c..ea4cfd6 100644 +index 252206c..ea4cfd6 100755 --- a/lib/numru/lapack.rb +++ b/lib/numru/lapack.rb @@ -1,7 +1,3 @@ diff -Nru ruby-lapack-1.7.2/debian/patches/0002_Fix-Typo.patch ruby-lapack-1.8.1/debian/patches/0002_Fix-Typo.patch --- ruby-lapack-1.7.2/debian/patches/0002_Fix-Typo.patch 2016-02-08 10:54:56.000000000 +0000 +++ ruby-lapack-1.8.1/debian/patches/0002_Fix-Typo.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,801 +0,0 @@ -From: Debian Ruby Extras Maintainers - -Date: Mon, 8 Feb 2016 19:50:25 +0900 -Subject: Fix Typo - -Signed-off-by: Youhei SASAKI ---- - dev/defs/cgelsd | 4 ++-- - dev/defs/clarrv | 2 +- - dev/defs/clatdf | 2 +- - dev/defs/cstegr | 2 +- - dev/defs/dgelsd | 2 +- - dev/defs/dlamrg | 2 +- - dev/defs/dlarre | 2 +- - dev/defs/dlarrv | 2 +- - dev/defs/dlasdq | 2 +- - dev/defs/dlat2s | 2 +- - dev/defs/dlatdf | 2 +- - dev/defs/dsgesv | 2 +- - dev/defs/dsposv | 2 +- - dev/defs/dstegr | 2 +- - dev/defs/sgelsd | 2 +- - dev/defs/slamrg | 2 +- - dev/defs/slarre | 2 +- - dev/defs/slarrv | 2 +- - dev/defs/slasdq | 2 +- - dev/defs/slatdf | 2 +- - dev/defs/sstegr | 2 +- - dev/defs/zcgesv | 2 +- - dev/defs/zcposv | 2 +- - dev/defs/zgelsd | 4 ++-- - dev/defs/zlarrv | 2 +- - dev/defs/zlat2c | 2 +- - dev/defs/zlatdf | 2 +- - dev/defs/zstegr | 2 +- - ext/cgelsd.c | 2 +- - ext/clarrv.c | 2 +- - ext/clatdf.c | 2 +- - ext/cstegr.c | 2 +- - ext/dgelsd.c | 2 +- - ext/dlamrg.c | 2 +- - ext/dlarre.c | 2 +- - ext/dlarrv.c | 2 +- - ext/dlasdq.c | 2 +- - ext/dlat2s.c | 2 +- - ext/dlatdf.c | 2 +- - ext/dsgesv.c | 2 +- - ext/dsposv.c | 2 +- - ext/dstegr.c | 2 +- - ext/sgelsd.c | 2 +- - ext/slamrg.c | 2 +- - ext/slarre.c | 2 +- - ext/slarrv.c | 2 +- - ext/slasdq.c | 2 +- - ext/slatdf.c | 2 +- - ext/sstegr.c | 2 +- - ext/zcgesv.c | 2 +- - ext/zcposv.c | 2 +- - ext/zgelsd.c | 2 +- - ext/zlarrv.c | 2 +- - ext/zlat2c.c | 2 +- - ext/zlatdf.c | 2 +- - ext/zstegr.c | 2 +- - 56 files changed, 58 insertions(+), 58 deletions(-) - -diff --git a/dev/defs/cgelsd b/dev/defs/cgelsd -index 6d66fda..8d23483 100644 ---- a/dev/defs/cgelsd -+++ b/dev/defs/cgelsd -@@ -93,10 +93,10 @@ - *\n\ - * The problem is solved in three steps:\n\ - * (1) Reduce the coefficient matrix A to bidiagonal form with\n\ -- * Householder tranformations, reducing the original problem\n\ -+ * Householder transformations, reducing the original problem\n\ - * into a \"bidiagonal least squares problem\" (BLS)\n\ - * (2) Solve the BLS using a divide and conquer approach.\n\ -- * (3) Apply back all the Householder tranformations to solve\n\ -+ * (3) Apply back all the Householder transformations to solve\n\ - * the original least squares problem.\n\ - *\n\ - * The effective rank of A is determined by treating as zero those\n\ -diff --git a/dev/defs/clarrv b/dev/defs/clarrv -index 3318121..bd98ea2 100644 ---- a/dev/defs/clarrv -+++ b/dev/defs/clarrv -@@ -227,7 +227,7 @@ - * INFO (output) INTEGER\n\ - * = 0: successful exit\n\ - *\n\ -- * > 0: A problem occured in CLARRV.\n\ -+ * > 0: A problem occurred in CLARRV.\n\ - * < 0: One of the called subroutines signaled an internal problem.\n\ - * Needs inspection of the corresponding parameter IINFO\n\ - * for further information.\n\ -diff --git a/dev/defs/clatdf b/dev/defs/clatdf -index 12168b6..46efa47 100644 ---- a/dev/defs/clatdf -+++ b/dev/defs/clatdf -@@ -64,7 +64,7 @@ - * Zx = +-e - f with the sign giving the greater value of\n\ - * 2-norm(x). About 5 times as expensive as Default.\n\ - * IJOB .ne. 2: Local look ahead strategy where\n\ -- * all entries of the r.h.s. b is choosen as either +1 or\n\ -+ * all entries of the r.h.s. b is chosen as either +1 or\n\ - * -1. Default.\n\ - *\n\ - * N (input) INTEGER\n\ -diff --git a/dev/defs/cstegr b/dev/defs/cstegr -index 59c7931..fb6174c 100644 ---- a/dev/defs/cstegr -+++ b/dev/defs/cstegr -@@ -98,7 +98,7 @@ - * either an interval (VL,VU] or a range of indices IL:IU for the desired\n\ - * eigenvalues.\n\ - *\n\ -- * CSTEGR is a compatability wrapper around the improved CSTEMR routine.\n\ -+ * CSTEGR is a compatibility wrapper around the improved CSTEMR routine.\n\ - * See SSTEMR for further details.\n\ - *\n\ - * One important change is that the ABSTOL parameter no longer provides any\n\ -diff --git a/dev/defs/dgelsd b/dev/defs/dgelsd -index 05aa9b3..0a85b55 100644 ---- a/dev/defs/dgelsd -+++ b/dev/defs/dgelsd -@@ -90,7 +90,7 @@ - * Householder transformations, reducing the original problem\n\ - * into a \"bidiagonal least squares problem\" (BLS)\n\ - * (2) Solve the BLS using a divide and conquer approach.\n\ -- * (3) Apply back all the Householder tranformations to solve\n\ -+ * (3) Apply back all the Householder transformations to solve\n\ - * the original least squares problem.\n\ - *\n\ - * The effective rank of A is determined by treating as zero those\n\ -diff --git a/dev/defs/dlamrg b/dev/defs/dlamrg -index f544b90..26c7b45 100644 ---- a/dev/defs/dlamrg -+++ b/dev/defs/dlamrg -@@ -40,7 +40,7 @@ - *\n\ - * N1 (input) INTEGER\n\ - * N2 (input) INTEGER\n\ -- * These arguements contain the respective lengths of the two\n\ -+ * These arguments contain the respective lengths of the two\n\ - * sorted lists to be merged.\n\ - *\n\ - * A (input) DOUBLE PRECISION array, dimension (N1+N2)\n\ -diff --git a/dev/defs/dlarre b/dev/defs/dlarre -index afe23c3..a885387 100644 ---- a/dev/defs/dlarre -+++ b/dev/defs/dlarre -@@ -233,7 +233,7 @@ - *\n\ - * INFO (output) INTEGER\n\ - * = 0: successful exit\n\ -- * > 0: A problem occured in DLARRE.\n\ -+ * > 0: A problem occurred in DLARRE.\n\ - * < 0: One of the called subroutines signaled an internal problem.\n\ - * Needs inspection of the corresponding parameter IINFO\n\ - * for further information.\n\ -diff --git a/dev/defs/dlarrv b/dev/defs/dlarrv -index 009113d..d3858fd 100644 ---- a/dev/defs/dlarrv -+++ b/dev/defs/dlarrv -@@ -227,7 +227,7 @@ - * INFO (output) INTEGER\n\ - * = 0: successful exit\n\ - *\n\ -- * > 0: A problem occured in DLARRV.\n\ -+ * > 0: A problem occurred in DLARRV.\n\ - * < 0: One of the called subroutines signaled an internal problem.\n\ - * Needs inspection of the corresponding parameter IINFO\n\ - * for further information.\n\ -diff --git a/dev/defs/dlasdq b/dev/defs/dlasdq -index 2262b5a..09c3004 100644 ---- a/dev/defs/dlasdq -+++ b/dev/defs/dlasdq -@@ -92,7 +92,7 @@ - *\n\ - * UPLO (input) CHARACTER*1\n\ - * On entry, UPLO specifies whether the input bidiagonal matrix\n\ -- * is upper or lower bidiagonal, and wether it is square are\n\ -+ * is upper or lower bidiagonal, and whether it is square are\n\ - * not.\n\ - * UPLO = 'U' or 'u' B is upper bidiagonal.\n\ - * UPLO = 'L' or 'l' B is lower bidiagonal.\n\ -diff --git a/dev/defs/dlat2s b/dev/defs/dlat2s -index bad3745..88457d4 100644 ---- a/dev/defs/dlat2s -+++ b/dev/defs/dlat2s -@@ -41,7 +41,7 @@ - *\n\ - * RMAX is the overflow for the SINGLE PRECISION arithmetic\n\ - * DLAS2S checks that all the entries of A are between -RMAX and\n\ -- * RMAX. If not the convertion is aborted and a flag is raised.\n\ -+ * RMAX. If not the conversion is aborted and a flag is raised.\n\ - *\n\ - * This is an auxiliary routine so there is no argument checking.\n\ - *\n\n\ -diff --git a/dev/defs/dlatdf b/dev/defs/dlatdf -index ecdd975..eca3bc6 100644 ---- a/dev/defs/dlatdf -+++ b/dev/defs/dlatdf -@@ -64,7 +64,7 @@ - * Zx = +-e - f with the sign giving the greater value\n\ - * of 2-norm(x). About 5 times as expensive as Default.\n\ - * IJOB .ne. 2: Local look ahead strategy where all entries of\n\ -- * the r.h.s. b is choosen as either +1 or -1 (Default).\n\ -+ * the r.h.s. b is chosen as either +1 or -1 (Default).\n\ - *\n\ - * N (input) INTEGER\n\ - * The number of columns of the matrix Z.\n\ -diff --git a/dev/defs/dsgesv b/dev/defs/dsgesv -index 124b184..376bdd5 100644 ---- a/dev/defs/dsgesv -+++ b/dev/defs/dsgesv -@@ -155,7 +155,7 @@ - * -3 : failure of SGETRF\n\ - * -31: stop the iterative refinement after the 30th\n\ - * iterations\n\ -- * > 0: iterative refinement has been sucessfully used.\n\ -+ * > 0: iterative refinement has been successfully used.\n\ - * Returns the number of iterations\n\ - *\n\ - * INFO (output) INTEGER\n\ -diff --git a/dev/defs/dsposv b/dev/defs/dsposv -index e3abebe..6367c8e 100644 ---- a/dev/defs/dsposv -+++ b/dev/defs/dsposv -@@ -158,7 +158,7 @@ - * -3 : failure of SPOTRF\n\ - * -31: stop the iterative refinement after the 30th\n\ - * iterations\n\ -- * > 0: iterative refinement has been sucessfully used.\n\ -+ * > 0: iterative refinement has been successfully used.\n\ - * Returns the number of iterations\n\ - *\n\ - * INFO (output) INTEGER\n\ -diff --git a/dev/defs/dstegr b/dev/defs/dstegr -index 9b76a1a..aa228ac 100644 ---- a/dev/defs/dstegr -+++ b/dev/defs/dstegr -@@ -98,7 +98,7 @@ - * either an interval (VL,VU] or a range of indices IL:IU for the desired\n\ - * eigenvalues.\n\ - *\n\ -- * DSTEGR is a compatability wrapper around the improved DSTEMR routine.\n\ -+ * DSTEGR is a compatibility wrapper around the improved DSTEMR routine.\n\ - * See DSTEMR for further details.\n\ - *\n\ - * One important change is that the ABSTOL parameter no longer provides any\n\ -diff --git a/dev/defs/sgelsd b/dev/defs/sgelsd -index 46b6eda..d3c2fdf 100644 ---- a/dev/defs/sgelsd -+++ b/dev/defs/sgelsd -@@ -90,7 +90,7 @@ - * Householder transformations, reducing the original problem\n\ - * into a \"bidiagonal least squares problem\" (BLS)\n\ - * (2) Solve the BLS using a divide and conquer approach.\n\ -- * (3) Apply back all the Householder tranformations to solve\n\ -+ * (3) Apply back all the Householder transformations to solve\n\ - * the original least squares problem.\n\ - *\n\ - * The effective rank of A is determined by treating as zero those\n\ -diff --git a/dev/defs/slamrg b/dev/defs/slamrg -index 126e4f9..29330e6 100644 ---- a/dev/defs/slamrg -+++ b/dev/defs/slamrg -@@ -40,7 +40,7 @@ - *\n\ - * N1 (input) INTEGER\n\ - * N2 (input) INTEGER\n\ -- * These arguements contain the respective lengths of the two\n\ -+ * These arguments contain the respective lengths of the two\n\ - * sorted lists to be merged.\n\ - *\n\ - * A (input) REAL array, dimension (N1+N2)\n\ -diff --git a/dev/defs/slarre b/dev/defs/slarre -index 32c8620..ed9d66d 100644 ---- a/dev/defs/slarre -+++ b/dev/defs/slarre -@@ -233,7 +233,7 @@ - *\n\ - * INFO (output) INTEGER\n\ - * = 0: successful exit\n\ -- * > 0: A problem occured in SLARRE.\n\ -+ * > 0: A problem occurred in SLARRE.\n\ - * < 0: One of the called subroutines signaled an internal problem.\n\ - * Needs inspection of the corresponding parameter IINFO\n\ - * for further information.\n\ -diff --git a/dev/defs/slarrv b/dev/defs/slarrv -index 9b5055b..eb106da 100644 ---- a/dev/defs/slarrv -+++ b/dev/defs/slarrv -@@ -227,7 +227,7 @@ - * INFO (output) INTEGER\n\ - * = 0: successful exit\n\ - *\n\ -- * > 0: A problem occured in SLARRV.\n\ -+ * > 0: A problem occurred in SLARRV.\n\ - * < 0: One of the called subroutines signaled an internal problem.\n\ - * Needs inspection of the corresponding parameter IINFO\n\ - * for further information.\n\ -diff --git a/dev/defs/slasdq b/dev/defs/slasdq -index be4bdb1..45ab2d9 100644 ---- a/dev/defs/slasdq -+++ b/dev/defs/slasdq -@@ -92,7 +92,7 @@ - *\n\ - * UPLO (input) CHARACTER*1\n\ - * On entry, UPLO specifies whether the input bidiagonal matrix\n\ -- * is upper or lower bidiagonal, and wether it is square are\n\ -+ * is upper or lower bidiagonal, and whether it is square are\n\ - * not.\n\ - * UPLO = 'U' or 'u' B is upper bidiagonal.\n\ - * UPLO = 'L' or 'l' B is lower bidiagonal.\n\ -diff --git a/dev/defs/slatdf b/dev/defs/slatdf -index 80c6aeb..2410e9f 100644 ---- a/dev/defs/slatdf -+++ b/dev/defs/slatdf -@@ -64,7 +64,7 @@ - * Zx = +-e - f with the sign giving the greater value\n\ - * of 2-norm(x). About 5 times as expensive as Default.\n\ - * IJOB .ne. 2: Local look ahead strategy where all entries of\n\ -- * the r.h.s. b is choosen as either +1 or -1 (Default).\n\ -+ * the r.h.s. b is chosen as either +1 or -1 (Default).\n\ - *\n\ - * N (input) INTEGER\n\ - * The number of columns of the matrix Z.\n\ -diff --git a/dev/defs/sstegr b/dev/defs/sstegr -index 8513aea..05a63db 100644 ---- a/dev/defs/sstegr -+++ b/dev/defs/sstegr -@@ -98,7 +98,7 @@ - * either an interval (VL,VU] or a range of indices IL:IU for the desired\n\ - * eigenvalues.\n\ - *\n\ -- * SSTEGR is a compatability wrapper around the improved SSTEMR routine.\n\ -+ * SSTEGR is a compatibility wrapper around the improved SSTEMR routine.\n\ - * See SSTEMR for further details.\n\ - *\n\ - * One important change is that the ABSTOL parameter no longer provides any\n\ -diff --git a/dev/defs/zcgesv b/dev/defs/zcgesv -index 64e6a7b..1442585 100644 ---- a/dev/defs/zcgesv -+++ b/dev/defs/zcgesv -@@ -161,7 +161,7 @@ - * -3 : failure of CGETRF\n\ - * -31: stop the iterative refinement after the 30th\n\ - * iterations\n\ -- * > 0: iterative refinement has been sucessfully used.\n\ -+ * > 0: iterative refinement has been successfully used.\n\ - * Returns the number of iterations\n\ - *\n\ - * INFO (output) INTEGER\n\ -diff --git a/dev/defs/zcposv b/dev/defs/zcposv -index 874be30..cc237f6 100644 ---- a/dev/defs/zcposv -+++ b/dev/defs/zcposv -@@ -167,7 +167,7 @@ - * -3 : failure of CPOTRF\n\ - * -31: stop the iterative refinement after the 30th\n\ - * iterations\n\ -- * > 0: iterative refinement has been sucessfully used.\n\ -+ * > 0: iterative refinement has been successfully used.\n\ - * Returns the number of iterations\n\ - *\n\ - * INFO (output) INTEGER\n\ -diff --git a/dev/defs/zgelsd b/dev/defs/zgelsd -index b2bd1fe..7936b52 100644 ---- a/dev/defs/zgelsd -+++ b/dev/defs/zgelsd -@@ -93,10 +93,10 @@ - *\n\ - * The problem is solved in three steps:\n\ - * (1) Reduce the coefficient matrix A to bidiagonal form with\n\ -- * Householder tranformations, reducing the original problem\n\ -+ * Householder transformations, reducing the original problem\n\ - * into a \"bidiagonal least squares problem\" (BLS)\n\ - * (2) Solve the BLS using a divide and conquer approach.\n\ -- * (3) Apply back all the Householder tranformations to solve\n\ -+ * (3) Apply back all the Householder transformations to solve\n\ - * the original least squares problem.\n\ - *\n\ - * The effective rank of A is determined by treating as zero those\n\ -diff --git a/dev/defs/zlarrv b/dev/defs/zlarrv -index 4f629a8..100987b 100644 ---- a/dev/defs/zlarrv -+++ b/dev/defs/zlarrv -@@ -227,7 +227,7 @@ - * INFO (output) INTEGER\n\ - * = 0: successful exit\n\ - *\n\ -- * > 0: A problem occured in ZLARRV.\n\ -+ * > 0: A problem occurred in ZLARRV.\n\ - * < 0: One of the called subroutines signaled an internal problem.\n\ - * Needs inspection of the corresponding parameter IINFO\n\ - * for further information.\n\ -diff --git a/dev/defs/zlat2c b/dev/defs/zlat2c -index cd16a50..b9ac802 100644 ---- a/dev/defs/zlat2c -+++ b/dev/defs/zlat2c -@@ -41,7 +41,7 @@ - *\n\ - * RMAX is the overflow for the SINGLE PRECISION arithmetic\n\ - * ZLAT2C checks that all the entries of A are between -RMAX and\n\ -- * RMAX. If not the convertion is aborted and a flag is raised.\n\ -+ * RMAX. If not the conversion is aborted and a flag is raised.\n\ - *\n\ - * This is an auxiliary routine so there is no argument checking.\n\ - *\n\n\ -diff --git a/dev/defs/zlatdf b/dev/defs/zlatdf -index 2683ca7..5565876 100644 ---- a/dev/defs/zlatdf -+++ b/dev/defs/zlatdf -@@ -64,7 +64,7 @@ - * Zx = +-e - f with the sign giving the greater value of\n\ - * 2-norm(x). About 5 times as expensive as Default.\n\ - * IJOB .ne. 2: Local look ahead strategy where\n\ -- * all entries of the r.h.s. b is choosen as either +1 or\n\ -+ * all entries of the r.h.s. b is chosen as either +1 or\n\ - * -1. Default.\n\ - *\n\ - * N (input) INTEGER\n\ -diff --git a/dev/defs/zstegr b/dev/defs/zstegr -index 8cf0a7a..88aa424 100644 ---- a/dev/defs/zstegr -+++ b/dev/defs/zstegr -@@ -98,7 +98,7 @@ - * either an interval (VL,VU] or a range of indices IL:IU for the desired\n\ - * eigenvalues.\n\ - *\n\ -- * ZSTEGR is a compatability wrapper around the improved ZSTEMR routine.\n\ -+ * ZSTEGR is a compatibility wrapper around the improved ZSTEMR routine.\n\ - * See DSTEMR for further details.\n\ - *\n\ - * One important change is that the ABSTOL parameter no longer provides any\n\ -diff --git a/ext/cgelsd.c b/ext/cgelsd.c -index 252bd76..ac50e17 100644 ---- a/ext/cgelsd.c -+++ b/ext/cgelsd.c -@@ -43,7 +43,7 @@ rblapack_cgelsd(int argc, VALUE *argv, VALUE self){ - argc--; - rblapack_options = argv[argc]; - if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { -- printf("%s\n", "USAGE:\n s, rank, work, info, b = NumRu::Lapack.cgelsd( a, b, rcond, [:lwork => lwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CGELSD( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK, WORK, LWORK, RWORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* CGELSD computes the minimum-norm solution to a real linear least\n* squares problem:\n* minimize 2-norm(| b - A*x |)\n* using the singular value decomposition (SVD) of A. A is an M-by-N\n* matrix which may be rank-deficient.\n*\n* Several right hand side vectors b and solution vectors x can be\n* handled in a single call; they are stored as the columns of the\n* M-by-NRHS right hand side matrix B and the N-by-NRHS solution\n* matrix X.\n*\n* The problem is solved in three steps:\n* (1) Reduce the coefficient matrix A to bidiagonal form with\n* Householder tranformations, reducing the original problem\n* into a \"bidiagonal least squares problem\" (BLS)\n* (2) Solve the BLS using a divide and conquer approach.\n* (3) Apply back all the Householder tranformations to solve\n* the original least squares problem.\n*\n* The effective rank of A is determined by treating as zero those\n* singular values which are less than RCOND times the largest singular\n* value.\n*\n* The divide and conquer algorithm makes very mild assumptions about\n* floating point arithmetic. It will work on machines with a guard\n* digit in add/subtract, or on those binary machines without guard\n* digits which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or\n* Cray-2. It could conceivably fail on hexadecimal or decimal machines\n* without guard digits, but we know of none.\n*\n\n* Arguments\n* =========\n*\n* M (input) INTEGER\n* The number of rows of the matrix A. M >= 0.\n*\n* N (input) INTEGER\n* The number of columns of the matrix A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrices B and X. NRHS >= 0.\n*\n* A (input/output) COMPLEX array, dimension (LDA,N)\n* On entry, the M-by-N matrix A.\n* On exit, A has been destroyed.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* B (input/output) COMPLEX array, dimension (LDB,NRHS)\n* On entry, the M-by-NRHS right hand side matrix B.\n* On exit, B is overwritten by the N-by-NRHS solution matrix X.\n* If m >= n and RANK = n, the residual sum-of-squares for\n* the solution in the i-th column is given by the sum of\n* squares of the modulus of elements n+1:m in that column.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,M,N).\n*\n* S (output) REAL array, dimension (min(M,N))\n* The singular values of A in decreasing order.\n* The condition number of A in the 2-norm = S(1)/S(min(m,n)).\n*\n* RCOND (input) REAL\n* RCOND is used to determine the effective rank of A.\n* Singular values S(i) <= RCOND*S(1) are treated as zero.\n* If RCOND < 0, machine precision is used instead.\n*\n* RANK (output) INTEGER\n* The effective rank of A, i.e., the number of singular values\n* which are greater than RCOND*S(1).\n*\n* WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))\n* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK must be at least 1.\n* The exact minimum amount of workspace needed depends on M,\n* N and NRHS. As long as LWORK is at least\n* 2 * N + N * NRHS\n* if M is greater than or equal to N or\n* 2 * M + M * NRHS\n* if M is less than N, the code will execute correctly.\n* For good performance, LWORK should generally be larger.\n*\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the array WORK and the\n* minimum sizes of the arrays RWORK and IWORK, and returns\n* these values as the first entries of the WORK, RWORK and\n* IWORK arrays, and no error message related to LWORK is issued\n* by XERBLA.\n*\n* RWORK (workspace) REAL array, dimension (MAX(1,LRWORK))\n* LRWORK >=\n* 10*N + 2*N*SMLSIZ + 8*N*NLVL + 3*SMLSIZ*NRHS +\n* MAX( (SMLSIZ+1)**2, N*(1+NRHS) + 2*NRHS )\n* if M is greater than or equal to N or\n* 10*M + 2*M*SMLSIZ + 8*M*NLVL + 3*SMLSIZ*NRHS +\n* MAX( (SMLSIZ+1)**2, N*(1+NRHS) + 2*NRHS )\n* if M is less than N, the code will execute correctly.\n* SMLSIZ is returned by ILAENV and is equal to the maximum\n* size of the subproblems at the bottom of the computation\n* tree (usually about 25), and\n* NLVL = MAX( 0, INT( LOG_2( MIN( M,N )/(SMLSIZ+1) ) ) + 1 )\n* On exit, if INFO = 0, RWORK(1) returns the minimum LRWORK.\n*\n* IWORK (workspace) INTEGER array, dimension (MAX(1,LIWORK))\n* LIWORK >= max(1, 3*MINMN*NLVL + 11*MINMN),\n* where MINMN = MIN( M,N ).\n* On exit, if INFO = 0, IWORK(1) returns the minimum LIWORK.\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value.\n* > 0: the algorithm for computing the SVD failed to converge;\n* if INFO = i, i off-diagonal elements of an intermediate\n* bidiagonal form did not converge to zero.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Ming Gu and Ren-Cang Li, Computer Science Division, University of\n* California at Berkeley, USA\n* Osni Marques, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n\n"); -+ printf("%s\n", "USAGE:\n s, rank, work, info, b = NumRu::Lapack.cgelsd( a, b, rcond, [:lwork => lwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CGELSD( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK, WORK, LWORK, RWORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* CGELSD computes the minimum-norm solution to a real linear least\n* squares problem:\n* minimize 2-norm(| b - A*x |)\n* using the singular value decomposition (SVD) of A. A is an M-by-N\n* matrix which may be rank-deficient.\n*\n* Several right hand side vectors b and solution vectors x can be\n* handled in a single call; they are stored as the columns of the\n* M-by-NRHS right hand side matrix B and the N-by-NRHS solution\n* matrix X.\n*\n* The problem is solved in three steps:\n* (1) Reduce the coefficient matrix A to bidiagonal form with\n* Householder transformations, reducing the original problem\n* into a \"bidiagonal least squares problem\" (BLS)\n* (2) Solve the BLS using a divide and conquer approach.\n* (3) Apply back all the Householder transformations to solve\n* the original least squares problem.\n*\n* The effective rank of A is determined by treating as zero those\n* singular values which are less than RCOND times the largest singular\n* value.\n*\n* The divide and conquer algorithm makes very mild assumptions about\n* floating point arithmetic. It will work on machines with a guard\n* digit in add/subtract, or on those binary machines without guard\n* digits which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or\n* Cray-2. It could conceivably fail on hexadecimal or decimal machines\n* without guard digits, but we know of none.\n*\n\n* Arguments\n* =========\n*\n* M (input) INTEGER\n* The number of rows of the matrix A. M >= 0.\n*\n* N (input) INTEGER\n* The number of columns of the matrix A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrices B and X. NRHS >= 0.\n*\n* A (input/output) COMPLEX array, dimension (LDA,N)\n* On entry, the M-by-N matrix A.\n* On exit, A has been destroyed.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* B (input/output) COMPLEX array, dimension (LDB,NRHS)\n* On entry, the M-by-NRHS right hand side matrix B.\n* On exit, B is overwritten by the N-by-NRHS solution matrix X.\n* If m >= n and RANK = n, the residual sum-of-squares for\n* the solution in the i-th column is given by the sum of\n* squares of the modulus of elements n+1:m in that column.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,M,N).\n*\n* S (output) REAL array, dimension (min(M,N))\n* The singular values of A in decreasing order.\n* The condition number of A in the 2-norm = S(1)/S(min(m,n)).\n*\n* RCOND (input) REAL\n* RCOND is used to determine the effective rank of A.\n* Singular values S(i) <= RCOND*S(1) are treated as zero.\n* If RCOND < 0, machine precision is used instead.\n*\n* RANK (output) INTEGER\n* The effective rank of A, i.e., the number of singular values\n* which are greater than RCOND*S(1).\n*\n* WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))\n* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK must be at least 1.\n* The exact minimum amount of workspace needed depends on M,\n* N and NRHS. As long as LWORK is at least\n* 2 * N + N * NRHS\n* if M is greater than or equal to N or\n* 2 * M + M * NRHS\n* if M is less than N, the code will execute correctly.\n* For good performance, LWORK should generally be larger.\n*\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the array WORK and the\n* minimum sizes of the arrays RWORK and IWORK, and returns\n* these values as the first entries of the WORK, RWORK and\n* IWORK arrays, and no error message related to LWORK is issued\n* by XERBLA.\n*\n* RWORK (workspace) REAL array, dimension (MAX(1,LRWORK))\n* LRWORK >=\n* 10*N + 2*N*SMLSIZ + 8*N*NLVL + 3*SMLSIZ*NRHS +\n* MAX( (SMLSIZ+1)**2, N*(1+NRHS) + 2*NRHS )\n* if M is greater than or equal to N or\n* 10*M + 2*M*SMLSIZ + 8*M*NLVL + 3*SMLSIZ*NRHS +\n* MAX( (SMLSIZ+1)**2, N*(1+NRHS) + 2*NRHS )\n* if M is less than N, the code will execute correctly.\n* SMLSIZ is returned by ILAENV and is equal to the maximum\n* size of the subproblems at the bottom of the computation\n* tree (usually about 25), and\n* NLVL = MAX( 0, INT( LOG_2( MIN( M,N )/(SMLSIZ+1) ) ) + 1 )\n* On exit, if INFO = 0, RWORK(1) returns the minimum LRWORK.\n*\n* IWORK (workspace) INTEGER array, dimension (MAX(1,LIWORK))\n* LIWORK >= max(1, 3*MINMN*NLVL + 11*MINMN),\n* where MINMN = MIN( M,N ).\n* On exit, if INFO = 0, IWORK(1) returns the minimum LIWORK.\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value.\n* > 0: the algorithm for computing the SVD failed to converge;\n* if INFO = i, i off-diagonal elements of an intermediate\n* bidiagonal form did not converge to zero.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Ming Gu and Ren-Cang Li, Computer Science Division, University of\n* California at Berkeley, USA\n* Osni Marques, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n\n"); - return Qnil; - } - if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { -diff --git a/ext/clarrv.c b/ext/clarrv.c -index d27db0f..502f69d 100644 ---- a/ext/clarrv.c -+++ b/ext/clarrv.c -@@ -68,7 +68,7 @@ rblapack_clarrv(int argc, VALUE *argv, VALUE self){ - argc--; - rblapack_options = argv[argc]; - if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { -- printf("%s\n", "USAGE:\n z, isuppz, info, d, l, w, werr, wgap = NumRu::Lapack.clarrv( vl, vu, d, l, pivmin, isplit, m, dol, dou, minrgp, rtol1, rtol2, w, werr, wgap, iblock, indexw, gers, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CLARRV( N, VL, VU, D, L, PIVMIN, ISPLIT, M, DOL, DOU, MINRGP, RTOL1, RTOL2, W, WERR, WGAP, IBLOCK, INDEXW, GERS, Z, LDZ, ISUPPZ, WORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* CLARRV computes the eigenvectors of the tridiagonal matrix\n* T = L D L^T given L, D and APPROXIMATIONS to the eigenvalues of L D L^T.\n* The input eigenvalues should have been computed by SLARRE.\n*\n\n* Arguments\n* =========\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* VL (input) REAL \n* VU (input) REAL \n* Lower and upper bounds of the interval that contains the desired\n* eigenvalues. VL < VU. Needed to compute gaps on the left or right\n* end of the extremal eigenvalues in the desired RANGE.\n*\n* D (input/output) REAL array, dimension (N)\n* On entry, the N diagonal elements of the diagonal matrix D.\n* On exit, D may be overwritten.\n*\n* L (input/output) REAL array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the unit\n* bidiagonal matrix L are in elements 1 to N-1 of L\n* (if the matrix is not split.) At the end of each block\n* is stored the corresponding shift as given by SLARRE.\n* On exit, L is overwritten.\n*\n* PIVMIN (in) DOUBLE PRECISION\n* The minimum pivot allowed in the Sturm sequence.\n*\n* ISPLIT (input) INTEGER array, dimension (N)\n* The splitting points, at which T breaks up into blocks.\n* The first block consists of rows/columns 1 to\n* ISPLIT( 1 ), the second of rows/columns ISPLIT( 1 )+1\n* through ISPLIT( 2 ), etc.\n*\n* M (input) INTEGER\n* The total number of input eigenvalues. 0 <= M <= N.\n*\n* DOL (input) INTEGER\n* DOU (input) INTEGER\n* If the user wants to compute only selected eigenvectors from all\n* the eigenvalues supplied, he can specify an index range DOL:DOU.\n* Or else the setting DOL=1, DOU=M should be applied.\n* Note that DOL and DOU refer to the order in which the eigenvalues\n* are stored in W.\n* If the user wants to compute only selected eigenpairs, then\n* the columns DOL-1 to DOU+1 of the eigenvector space Z contain the\n* computed eigenvectors. All other columns of Z are set to zero.\n*\n* MINRGP (input) REAL \n*\n* RTOL1 (input) REAL \n* RTOL2 (input) REAL \n* Parameters for bisection.\n* An interval [LEFT,RIGHT] has converged if\n* RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) )\n*\n* W (input/output) REAL array, dimension (N)\n* The first M elements of W contain the APPROXIMATE eigenvalues for\n* which eigenvectors are to be computed. The eigenvalues\n* should be grouped by split-off block and ordered from\n* smallest to largest within the block ( The output array\n* W from SLARRE is expected here ). Furthermore, they are with\n* respect to the shift of the corresponding root representation\n* for their block. On exit, W holds the eigenvalues of the\n* UNshifted matrix.\n*\n* WERR (input/output) REAL array, dimension (N)\n* The first M elements contain the semiwidth of the uncertainty\n* interval of the corresponding eigenvalue in W\n*\n* WGAP (input/output) REAL array, dimension (N)\n* The separation from the right neighbor eigenvalue in W.\n*\n* IBLOCK (input) INTEGER array, dimension (N)\n* The indices of the blocks (submatrices) associated with the\n* corresponding eigenvalues in W; IBLOCK(i)=1 if eigenvalue\n* W(i) belongs to the first block from the top, =2 if W(i)\n* belongs to the second block, etc.\n*\n* INDEXW (input) INTEGER array, dimension (N)\n* The indices of the eigenvalues within each block (submatrix);\n* for example, INDEXW(i)= 10 and IBLOCK(i)=2 imply that the\n* i-th eigenvalue W(i) is the 10-th eigenvalue in the second block.\n*\n* GERS (input) REAL array, dimension (2*N)\n* The N Gerschgorin intervals (the i-th Gerschgorin interval\n* is (GERS(2*i-1), GERS(2*i)). The Gerschgorin intervals should\n* be computed from the original UNshifted matrix.\n*\n* Z (output) COMPLEX array, dimension (LDZ, max(1,M) )\n* If INFO = 0, the first M columns of Z contain the\n* orthonormal eigenvectors of the matrix T\n* corresponding to the input eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER array, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The I-th eigenvector\n* is nonzero only in elements ISUPPZ( 2*I-1 ) through\n* ISUPPZ( 2*I ).\n*\n* WORK (workspace) REAL array, dimension (12*N)\n*\n* IWORK (workspace) INTEGER array, dimension (7*N)\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n*\n* > 0: A problem occured in CLARRV.\n* < 0: One of the called subroutines signaled an internal problem.\n* Needs inspection of the corresponding parameter IINFO\n* for further information.\n*\n* =-1: Problem in SLARRB when refining a child's eigenvalues.\n* =-2: Problem in SLARRF when computing the RRR of a child.\n* When a child is inside a tight cluster, it can be difficult\n* to find an RRR. A partial remedy from the user's point of\n* view is to make the parameter MINRGP smaller and recompile.\n* However, as the orthogonality of the computed vectors is\n* proportional to 1/MINRGP, the user should be aware that\n* he might be trading in precision when he decreases MINRGP.\n* =-3: Problem in SLARRB when refining a single eigenvalue\n* after the Rayleigh correction was rejected.\n* = 5: The Rayleigh Quotient Iteration failed to converge to\n* full accuracy in MAXITR steps.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Beresford Parlett, University of California, Berkeley, USA\n* Jim Demmel, University of California, Berkeley, USA\n* Inderjit Dhillon, University of Texas, Austin, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, University of California, Berkeley, USA\n*\n* =====================================================================\n*\n\n"); -+ printf("%s\n", "USAGE:\n z, isuppz, info, d, l, w, werr, wgap = NumRu::Lapack.clarrv( vl, vu, d, l, pivmin, isplit, m, dol, dou, minrgp, rtol1, rtol2, w, werr, wgap, iblock, indexw, gers, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CLARRV( N, VL, VU, D, L, PIVMIN, ISPLIT, M, DOL, DOU, MINRGP, RTOL1, RTOL2, W, WERR, WGAP, IBLOCK, INDEXW, GERS, Z, LDZ, ISUPPZ, WORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* CLARRV computes the eigenvectors of the tridiagonal matrix\n* T = L D L^T given L, D and APPROXIMATIONS to the eigenvalues of L D L^T.\n* The input eigenvalues should have been computed by SLARRE.\n*\n\n* Arguments\n* =========\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* VL (input) REAL \n* VU (input) REAL \n* Lower and upper bounds of the interval that contains the desired\n* eigenvalues. VL < VU. Needed to compute gaps on the left or right\n* end of the extremal eigenvalues in the desired RANGE.\n*\n* D (input/output) REAL array, dimension (N)\n* On entry, the N diagonal elements of the diagonal matrix D.\n* On exit, D may be overwritten.\n*\n* L (input/output) REAL array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the unit\n* bidiagonal matrix L are in elements 1 to N-1 of L\n* (if the matrix is not split.) At the end of each block\n* is stored the corresponding shift as given by SLARRE.\n* On exit, L is overwritten.\n*\n* PIVMIN (in) DOUBLE PRECISION\n* The minimum pivot allowed in the Sturm sequence.\n*\n* ISPLIT (input) INTEGER array, dimension (N)\n* The splitting points, at which T breaks up into blocks.\n* The first block consists of rows/columns 1 to\n* ISPLIT( 1 ), the second of rows/columns ISPLIT( 1 )+1\n* through ISPLIT( 2 ), etc.\n*\n* M (input) INTEGER\n* The total number of input eigenvalues. 0 <= M <= N.\n*\n* DOL (input) INTEGER\n* DOU (input) INTEGER\n* If the user wants to compute only selected eigenvectors from all\n* the eigenvalues supplied, he can specify an index range DOL:DOU.\n* Or else the setting DOL=1, DOU=M should be applied.\n* Note that DOL and DOU refer to the order in which the eigenvalues\n* are stored in W.\n* If the user wants to compute only selected eigenpairs, then\n* the columns DOL-1 to DOU+1 of the eigenvector space Z contain the\n* computed eigenvectors. All other columns of Z are set to zero.\n*\n* MINRGP (input) REAL \n*\n* RTOL1 (input) REAL \n* RTOL2 (input) REAL \n* Parameters for bisection.\n* An interval [LEFT,RIGHT] has converged if\n* RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) )\n*\n* W (input/output) REAL array, dimension (N)\n* The first M elements of W contain the APPROXIMATE eigenvalues for\n* which eigenvectors are to be computed. The eigenvalues\n* should be grouped by split-off block and ordered from\n* smallest to largest within the block ( The output array\n* W from SLARRE is expected here ). Furthermore, they are with\n* respect to the shift of the corresponding root representation\n* for their block. On exit, W holds the eigenvalues of the\n* UNshifted matrix.\n*\n* WERR (input/output) REAL array, dimension (N)\n* The first M elements contain the semiwidth of the uncertainty\n* interval of the corresponding eigenvalue in W\n*\n* WGAP (input/output) REAL array, dimension (N)\n* The separation from the right neighbor eigenvalue in W.\n*\n* IBLOCK (input) INTEGER array, dimension (N)\n* The indices of the blocks (submatrices) associated with the\n* corresponding eigenvalues in W; IBLOCK(i)=1 if eigenvalue\n* W(i) belongs to the first block from the top, =2 if W(i)\n* belongs to the second block, etc.\n*\n* INDEXW (input) INTEGER array, dimension (N)\n* The indices of the eigenvalues within each block (submatrix);\n* for example, INDEXW(i)= 10 and IBLOCK(i)=2 imply that the\n* i-th eigenvalue W(i) is the 10-th eigenvalue in the second block.\n*\n* GERS (input) REAL array, dimension (2*N)\n* The N Gerschgorin intervals (the i-th Gerschgorin interval\n* is (GERS(2*i-1), GERS(2*i)). The Gerschgorin intervals should\n* be computed from the original UNshifted matrix.\n*\n* Z (output) COMPLEX array, dimension (LDZ, max(1,M) )\n* If INFO = 0, the first M columns of Z contain the\n* orthonormal eigenvectors of the matrix T\n* corresponding to the input eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER array, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The I-th eigenvector\n* is nonzero only in elements ISUPPZ( 2*I-1 ) through\n* ISUPPZ( 2*I ).\n*\n* WORK (workspace) REAL array, dimension (12*N)\n*\n* IWORK (workspace) INTEGER array, dimension (7*N)\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n*\n* > 0: A problem occurred in CLARRV.\n* < 0: One of the called subroutines signaled an internal problem.\n* Needs inspection of the corresponding parameter IINFO\n* for further information.\n*\n* =-1: Problem in SLARRB when refining a child's eigenvalues.\n* =-2: Problem in SLARRF when computing the RRR of a child.\n* When a child is inside a tight cluster, it can be difficult\n* to find an RRR. A partial remedy from the user's point of\n* view is to make the parameter MINRGP smaller and recompile.\n* However, as the orthogonality of the computed vectors is\n* proportional to 1/MINRGP, the user should be aware that\n* he might be trading in precision when he decreases MINRGP.\n* =-3: Problem in SLARRB when refining a single eigenvalue\n* after the Rayleigh correction was rejected.\n* = 5: The Rayleigh Quotient Iteration failed to converge to\n* full accuracy in MAXITR steps.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Beresford Parlett, University of California, Berkeley, USA\n* Jim Demmel, University of California, Berkeley, USA\n* Inderjit Dhillon, University of Texas, Austin, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, University of California, Berkeley, USA\n*\n* =====================================================================\n*\n\n"); - return Qnil; - } - if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { -diff --git a/ext/clatdf.c b/ext/clatdf.c -index cb44570..213852b 100644 ---- a/ext/clatdf.c -+++ b/ext/clatdf.c -@@ -30,7 +30,7 @@ rblapack_clatdf(int argc, VALUE *argv, VALUE self){ - argc--; - rblapack_options = argv[argc]; - if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { -- printf("%s\n", "USAGE:\n rhs, rdsum, rdscal = NumRu::Lapack.clatdf( ijob, z, rhs, rdsum, rdscal, ipiv, jpiv, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CLATDF( IJOB, N, Z, LDZ, RHS, RDSUM, RDSCAL, IPIV, JPIV )\n\n* Purpose\n* =======\n*\n* CLATDF computes the contribution to the reciprocal Dif-estimate\n* by solving for x in Z * x = b, where b is chosen such that the norm\n* of x is as large as possible. It is assumed that LU decomposition\n* of Z has been computed by CGETC2. On entry RHS = f holds the\n* contribution from earlier solved sub-systems, and on return RHS = x.\n*\n* The factorization of Z returned by CGETC2 has the form\n* Z = P * L * U * Q, where P and Q are permutation matrices. L is lower\n* triangular with unit diagonal elements and U is upper triangular.\n*\n\n* Arguments\n* =========\n*\n* IJOB (input) INTEGER\n* IJOB = 2: First compute an approximative null-vector e\n* of Z using CGECON, e is normalized and solve for\n* Zx = +-e - f with the sign giving the greater value of\n* 2-norm(x). About 5 times as expensive as Default.\n* IJOB .ne. 2: Local look ahead strategy where\n* all entries of the r.h.s. b is choosen as either +1 or\n* -1. Default.\n*\n* N (input) INTEGER\n* The number of columns of the matrix Z.\n*\n* Z (input) REAL array, dimension (LDZ, N)\n* On entry, the LU part of the factorization of the n-by-n\n* matrix Z computed by CGETC2: Z = P * L * U * Q\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDA >= max(1, N).\n*\n* RHS (input/output) REAL array, dimension (N).\n* On entry, RHS contains contributions from other subsystems.\n* On exit, RHS contains the solution of the subsystem with\n* entries according to the value of IJOB (see above).\n*\n* RDSUM (input/output) REAL\n* On entry, the sum of squares of computed contributions to\n* the Dif-estimate under computation by CTGSYL, where the\n* scaling factor RDSCAL (see below) has been factored out.\n* On exit, the corresponding sum of squares updated with the\n* contributions from the current sub-system.\n* If TRANS = 'T' RDSUM is not touched.\n* NOTE: RDSUM only makes sense when CTGSY2 is called by CTGSYL.\n*\n* RDSCAL (input/output) REAL\n* On entry, scaling factor used to prevent overflow in RDSUM.\n* On exit, RDSCAL is updated w.r.t. the current contributions\n* in RDSUM.\n* If TRANS = 'T', RDSCAL is not touched.\n* NOTE: RDSCAL only makes sense when CTGSY2 is called by\n* CTGSYL.\n*\n* IPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= i <= N, row i of the\n* matrix has been interchanged with row IPIV(i).\n*\n* JPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= j <= N, column j of the\n* matrix has been interchanged with column JPIV(j).\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Bo Kagstrom and Peter Poromaa, Department of Computing Science,\n* Umea University, S-901 87 Umea, Sweden.\n*\n* This routine is a further developed implementation of algorithm\n* BSOLVE in [1] using complete pivoting in the LU factorization.\n*\n* [1] Bo Kagstrom and Lars Westin,\n* Generalized Schur Methods with Condition Estimators for\n* Solving the Generalized Sylvester Equation, IEEE Transactions\n* on Automatic Control, Vol. 34, No. 7, July 1989, pp 745-751.\n*\n* [2] Peter Poromaa,\n* On Efficient and Robust Estimators for the Separation\n* between two Regular Matrix Pairs with Applications in\n* Condition Estimation. Report UMINF-95.05, Department of\n* Computing Science, Umea University, S-901 87 Umea, Sweden,\n* 1995.\n*\n* =====================================================================\n*\n\n"); -+ printf("%s\n", "USAGE:\n rhs, rdsum, rdscal = NumRu::Lapack.clatdf( ijob, z, rhs, rdsum, rdscal, ipiv, jpiv, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CLATDF( IJOB, N, Z, LDZ, RHS, RDSUM, RDSCAL, IPIV, JPIV )\n\n* Purpose\n* =======\n*\n* CLATDF computes the contribution to the reciprocal Dif-estimate\n* by solving for x in Z * x = b, where b is chosen such that the norm\n* of x is as large as possible. It is assumed that LU decomposition\n* of Z has been computed by CGETC2. On entry RHS = f holds the\n* contribution from earlier solved sub-systems, and on return RHS = x.\n*\n* The factorization of Z returned by CGETC2 has the form\n* Z = P * L * U * Q, where P and Q are permutation matrices. L is lower\n* triangular with unit diagonal elements and U is upper triangular.\n*\n\n* Arguments\n* =========\n*\n* IJOB (input) INTEGER\n* IJOB = 2: First compute an approximative null-vector e\n* of Z using CGECON, e is normalized and solve for\n* Zx = +-e - f with the sign giving the greater value of\n* 2-norm(x). About 5 times as expensive as Default.\n* IJOB .ne. 2: Local look ahead strategy where\n* all entries of the r.h.s. b is chosen as either +1 or\n* -1. Default.\n*\n* N (input) INTEGER\n* The number of columns of the matrix Z.\n*\n* Z (input) REAL array, dimension (LDZ, N)\n* On entry, the LU part of the factorization of the n-by-n\n* matrix Z computed by CGETC2: Z = P * L * U * Q\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDA >= max(1, N).\n*\n* RHS (input/output) REAL array, dimension (N).\n* On entry, RHS contains contributions from other subsystems.\n* On exit, RHS contains the solution of the subsystem with\n* entries according to the value of IJOB (see above).\n*\n* RDSUM (input/output) REAL\n* On entry, the sum of squares of computed contributions to\n* the Dif-estimate under computation by CTGSYL, where the\n* scaling factor RDSCAL (see below) has been factored out.\n* On exit, the corresponding sum of squares updated with the\n* contributions from the current sub-system.\n* If TRANS = 'T' RDSUM is not touched.\n* NOTE: RDSUM only makes sense when CTGSY2 is called by CTGSYL.\n*\n* RDSCAL (input/output) REAL\n* On entry, scaling factor used to prevent overflow in RDSUM.\n* On exit, RDSCAL is updated w.r.t. the current contributions\n* in RDSUM.\n* If TRANS = 'T', RDSCAL is not touched.\n* NOTE: RDSCAL only makes sense when CTGSY2 is called by\n* CTGSYL.\n*\n* IPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= i <= N, row i of the\n* matrix has been interchanged with row IPIV(i).\n*\n* JPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= j <= N, column j of the\n* matrix has been interchanged with column JPIV(j).\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Bo Kagstrom and Peter Poromaa, Department of Computing Science,\n* Umea University, S-901 87 Umea, Sweden.\n*\n* This routine is a further developed implementation of algorithm\n* BSOLVE in [1] using complete pivoting in the LU factorization.\n*\n* [1] Bo Kagstrom and Lars Westin,\n* Generalized Schur Methods with Condition Estimators for\n* Solving the Generalized Sylvester Equation, IEEE Transactions\n* on Automatic Control, Vol. 34, No. 7, July 1989, pp 745-751.\n*\n* [2] Peter Poromaa,\n* On Efficient and Robust Estimators for the Separation\n* between two Regular Matrix Pairs with Applications in\n* Condition Estimation. Report UMINF-95.05, Department of\n* Computing Science, Umea University, S-901 87 Umea, Sweden,\n* 1995.\n*\n* =====================================================================\n*\n\n"); - return Qnil; - } - if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { -diff --git a/ext/cstegr.c b/ext/cstegr.c -index fb7fff5..9c42e95 100644 ---- a/ext/cstegr.c -+++ b/ext/cstegr.c -@@ -54,7 +54,7 @@ rblapack_cstegr(int argc, VALUE *argv, VALUE self){ - argc--; - rblapack_options = argv[argc]; - if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { -- printf("%s\n", "USAGE:\n m, w, z, isuppz, work, iwork, info, d, e = NumRu::Lapack.cstegr( jobz, range, d, e, vl, vu, il, iu, abstol, [:lwork => lwork, :liwork => liwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CSTEGR( JOBZ, RANGE, N, D, E, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK, IWORK, LIWORK, INFO )\n\n* Purpose\n* =======\n*\n* CSTEGR computes selected eigenvalues and, optionally, eigenvectors\n* of a real symmetric tridiagonal matrix T. Any such unreduced matrix has\n* a well defined set of pairwise different real eigenvalues, the corresponding\n* real eigenvectors are pairwise orthogonal.\n*\n* The spectrum may be computed either completely or partially by specifying\n* either an interval (VL,VU] or a range of indices IL:IU for the desired\n* eigenvalues.\n*\n* CSTEGR is a compatability wrapper around the improved CSTEMR routine.\n* See SSTEMR for further details.\n*\n* One important change is that the ABSTOL parameter no longer provides any\n* benefit and hence is no longer used.\n*\n* Note : CSTEGR and CSTEMR work only on machines which follow\n* IEEE-754 floating-point standard in their handling of infinities and\n* NaNs. Normal execution may create these exceptiona values and hence\n* may abort due to a floating point exception in environments which\n* do not conform to the IEEE-754 standard.\n*\n\n* Arguments\n* =========\n*\n* JOBZ (input) CHARACTER*1\n* = 'N': Compute eigenvalues only;\n* = 'V': Compute eigenvalues and eigenvectors.\n*\n* RANGE (input) CHARACTER*1\n* = 'A': all eigenvalues will be found.\n* = 'V': all eigenvalues in the half-open interval (VL,VU]\n* will be found.\n* = 'I': the IL-th through IU-th eigenvalues will be found.\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* D (input/output) REAL array, dimension (N)\n* On entry, the N diagonal elements of the tridiagonal matrix\n* T. On exit, D is overwritten.\n*\n* E (input/output) REAL array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the tridiagonal\n* matrix T in elements 1 to N-1 of E. E(N) need not be set on\n* input, but is used internally as workspace.\n* On exit, E is overwritten.\n*\n* VL (input) REAL\n* VU (input) REAL\n* If RANGE='V', the lower and upper bounds of the interval to\n* be searched for eigenvalues. VL < VU.\n* Not referenced if RANGE = 'A' or 'I'.\n*\n* IL (input) INTEGER\n* IU (input) INTEGER\n* If RANGE='I', the indices (in ascending order) of the\n* smallest and largest eigenvalues to be returned.\n* 1 <= IL <= IU <= N, if N > 0.\n* Not referenced if RANGE = 'A' or 'V'.\n*\n* ABSTOL (input) REAL\n* Unused. Was the absolute error tolerance for the\n* eigenvalues/eigenvectors in previous versions.\n*\n* M (output) INTEGER\n* The total number of eigenvalues found. 0 <= M <= N.\n* If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1.\n*\n* W (output) REAL array, dimension (N)\n* The first M elements contain the selected eigenvalues in\n* ascending order.\n*\n* Z (output) COMPLEX array, dimension (LDZ, max(1,M) )\n* If JOBZ = 'V', and if INFO = 0, then the first M columns of Z\n* contain the orthonormal eigenvectors of the matrix T\n* corresponding to the selected eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* If JOBZ = 'N', then Z is not referenced.\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z; if RANGE = 'V', the exact value of M\n* is not known in advance and an upper bound must be used.\n* Supplying N columns is always safe.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', then LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER ARRAY, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The i-th computed eigenvector\n* is nonzero only in elements ISUPPZ( 2*i-1 ) through\n* ISUPPZ( 2*i ). This is relevant in the case when the matrix\n* is split. ISUPPZ is only accessed when JOBZ is 'V' and N > 0.\n*\n* WORK (workspace/output) REAL array, dimension (LWORK)\n* On exit, if INFO = 0, WORK(1) returns the optimal\n* (and minimal) LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK >= max(1,18*N)\n* if JOBZ = 'V', and LWORK >= max(1,12*N) if JOBZ = 'N'.\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the WORK array, returns\n* this value as the first entry of the WORK array, and no error\n* message related to LWORK is issued by XERBLA.\n*\n* IWORK (workspace/output) INTEGER array, dimension (LIWORK)\n* On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.\n*\n* LIWORK (input) INTEGER\n* The dimension of the array IWORK. LIWORK >= max(1,10*N)\n* if the eigenvectors are desired, and LIWORK >= max(1,8*N)\n* if only the eigenvalues are to be computed.\n* If LIWORK = -1, then a workspace query is assumed; the\n* routine only calculates the optimal size of the IWORK array,\n* returns this value as the first entry of the IWORK array, and\n* no error message related to LIWORK is issued by XERBLA.\n*\n* INFO (output) INTEGER\n* On exit, INFO\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = 1X, internal error in SLARRE,\n* if INFO = 2X, internal error in CLARRV.\n* Here, the digit X = ABS( IINFO ) < 10, where IINFO is\n* the nonzero error code returned by SLARRE or\n* CLARRV, respectively.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Inderjit Dhillon, IBM Almaden, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n* .. Local Scalars ..\n LOGICAL TRYRAC\n* ..\n* .. External Subroutines ..\n EXTERNAL CSTEMR\n* ..\n\n"); -+ printf("%s\n", "USAGE:\n m, w, z, isuppz, work, iwork, info, d, e = NumRu::Lapack.cstegr( jobz, range, d, e, vl, vu, il, iu, abstol, [:lwork => lwork, :liwork => liwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CSTEGR( JOBZ, RANGE, N, D, E, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK, IWORK, LIWORK, INFO )\n\n* Purpose\n* =======\n*\n* CSTEGR computes selected eigenvalues and, optionally, eigenvectors\n* of a real symmetric tridiagonal matrix T. Any such unreduced matrix has\n* a well defined set of pairwise different real eigenvalues, the corresponding\n* real eigenvectors are pairwise orthogonal.\n*\n* The spectrum may be computed either completely or partially by specifying\n* either an interval (VL,VU] or a range of indices IL:IU for the desired\n* eigenvalues.\n*\n* CSTEGR is a compatibility wrapper around the improved CSTEMR routine.\n* See SSTEMR for further details.\n*\n* One important change is that the ABSTOL parameter no longer provides any\n* benefit and hence is no longer used.\n*\n* Note : CSTEGR and CSTEMR work only on machines which follow\n* IEEE-754 floating-point standard in their handling of infinities and\n* NaNs. Normal execution may create these exceptiona values and hence\n* may abort due to a floating point exception in environments which\n* do not conform to the IEEE-754 standard.\n*\n\n* Arguments\n* =========\n*\n* JOBZ (input) CHARACTER*1\n* = 'N': Compute eigenvalues only;\n* = 'V': Compute eigenvalues and eigenvectors.\n*\n* RANGE (input) CHARACTER*1\n* = 'A': all eigenvalues will be found.\n* = 'V': all eigenvalues in the half-open interval (VL,VU]\n* will be found.\n* = 'I': the IL-th through IU-th eigenvalues will be found.\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* D (input/output) REAL array, dimension (N)\n* On entry, the N diagonal elements of the tridiagonal matrix\n* T. On exit, D is overwritten.\n*\n* E (input/output) REAL array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the tridiagonal\n* matrix T in elements 1 to N-1 of E. E(N) need not be set on\n* input, but is used internally as workspace.\n* On exit, E is overwritten.\n*\n* VL (input) REAL\n* VU (input) REAL\n* If RANGE='V', the lower and upper bounds of the interval to\n* be searched for eigenvalues. VL < VU.\n* Not referenced if RANGE = 'A' or 'I'.\n*\n* IL (input) INTEGER\n* IU (input) INTEGER\n* If RANGE='I', the indices (in ascending order) of the\n* smallest and largest eigenvalues to be returned.\n* 1 <= IL <= IU <= N, if N > 0.\n* Not referenced if RANGE = 'A' or 'V'.\n*\n* ABSTOL (input) REAL\n* Unused. Was the absolute error tolerance for the\n* eigenvalues/eigenvectors in previous versions.\n*\n* M (output) INTEGER\n* The total number of eigenvalues found. 0 <= M <= N.\n* If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1.\n*\n* W (output) REAL array, dimension (N)\n* The first M elements contain the selected eigenvalues in\n* ascending order.\n*\n* Z (output) COMPLEX array, dimension (LDZ, max(1,M) )\n* If JOBZ = 'V', and if INFO = 0, then the first M columns of Z\n* contain the orthonormal eigenvectors of the matrix T\n* corresponding to the selected eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* If JOBZ = 'N', then Z is not referenced.\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z; if RANGE = 'V', the exact value of M\n* is not known in advance and an upper bound must be used.\n* Supplying N columns is always safe.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', then LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER ARRAY, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The i-th computed eigenvector\n* is nonzero only in elements ISUPPZ( 2*i-1 ) through\n* ISUPPZ( 2*i ). This is relevant in the case when the matrix\n* is split. ISUPPZ is only accessed when JOBZ is 'V' and N > 0.\n*\n* WORK (workspace/output) REAL array, dimension (LWORK)\n* On exit, if INFO = 0, WORK(1) returns the optimal\n* (and minimal) LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK >= max(1,18*N)\n* if JOBZ = 'V', and LWORK >= max(1,12*N) if JOBZ = 'N'.\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the WORK array, returns\n* this value as the first entry of the WORK array, and no error\n* message related to LWORK is issued by XERBLA.\n*\n* IWORK (workspace/output) INTEGER array, dimension (LIWORK)\n* On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.\n*\n* LIWORK (input) INTEGER\n* The dimension of the array IWORK. LIWORK >= max(1,10*N)\n* if the eigenvectors are desired, and LIWORK >= max(1,8*N)\n* if only the eigenvalues are to be computed.\n* If LIWORK = -1, then a workspace query is assumed; the\n* routine only calculates the optimal size of the IWORK array,\n* returns this value as the first entry of the IWORK array, and\n* no error message related to LIWORK is issued by XERBLA.\n*\n* INFO (output) INTEGER\n* On exit, INFO\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = 1X, internal error in SLARRE,\n* if INFO = 2X, internal error in CLARRV.\n* Here, the digit X = ABS( IINFO ) < 10, where IINFO is\n* the nonzero error code returned by SLARRE or\n* CLARRV, respectively.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Inderjit Dhillon, IBM Almaden, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n* .. Local Scalars ..\n LOGICAL TRYRAC\n* ..\n* .. External Subroutines ..\n EXTERNAL CSTEMR\n* ..\n\n"); - return Qnil; - } - if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { -diff --git a/ext/dgelsd.c b/ext/dgelsd.c -index 529cae6..38b2b8e 100644 ---- a/ext/dgelsd.c -+++ b/ext/dgelsd.c -@@ -41,7 +41,7 @@ rblapack_dgelsd(int argc, VALUE *argv, VALUE self){ - argc--; - rblapack_options = argv[argc]; - if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { -- printf("%s\n", "USAGE:\n s, rank, work, info, b = NumRu::Lapack.dgelsd( a, b, rcond, [:lwork => lwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DGELSD( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK, WORK, LWORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* DGELSD computes the minimum-norm solution to a real linear least\n* squares problem:\n* minimize 2-norm(| b - A*x |)\n* using the singular value decomposition (SVD) of A. A is an M-by-N\n* matrix which may be rank-deficient.\n*\n* Several right hand side vectors b and solution vectors x can be\n* handled in a single call; they are stored as the columns of the\n* M-by-NRHS right hand side matrix B and the N-by-NRHS solution\n* matrix X.\n*\n* The problem is solved in three steps:\n* (1) Reduce the coefficient matrix A to bidiagonal form with\n* Householder transformations, reducing the original problem\n* into a \"bidiagonal least squares problem\" (BLS)\n* (2) Solve the BLS using a divide and conquer approach.\n* (3) Apply back all the Householder tranformations to solve\n* the original least squares problem.\n*\n* The effective rank of A is determined by treating as zero those\n* singular values which are less than RCOND times the largest singular\n* value.\n*\n* The divide and conquer algorithm makes very mild assumptions about\n* floating point arithmetic. It will work on machines with a guard\n* digit in add/subtract, or on those binary machines without guard\n* digits which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or\n* Cray-2. It could conceivably fail on hexadecimal or decimal machines\n* without guard digits, but we know of none.\n*\n\n* Arguments\n* =========\n*\n* M (input) INTEGER\n* The number of rows of A. M >= 0.\n*\n* N (input) INTEGER\n* The number of columns of A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrices B and X. NRHS >= 0.\n*\n* A (input) DOUBLE PRECISION array, dimension (LDA,N)\n* On entry, the M-by-N matrix A.\n* On exit, A has been destroyed.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* B (input/output) DOUBLE PRECISION array, dimension (LDB,NRHS)\n* On entry, the M-by-NRHS right hand side matrix B.\n* On exit, B is overwritten by the N-by-NRHS solution\n* matrix X. If m >= n and RANK = n, the residual\n* sum-of-squares for the solution in the i-th column is given\n* by the sum of squares of elements n+1:m in that column.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,max(M,N)).\n*\n* S (output) DOUBLE PRECISION array, dimension (min(M,N))\n* The singular values of A in decreasing order.\n* The condition number of A in the 2-norm = S(1)/S(min(m,n)).\n*\n* RCOND (input) DOUBLE PRECISION\n* RCOND is used to determine the effective rank of A.\n* Singular values S(i) <= RCOND*S(1) are treated as zero.\n* If RCOND < 0, machine precision is used instead.\n*\n* RANK (output) INTEGER\n* The effective rank of A, i.e., the number of singular values\n* which are greater than RCOND*S(1).\n*\n* WORK (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK))\n* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK must be at least 1.\n* The exact minimum amount of workspace needed depends on M,\n* N and NRHS. As long as LWORK is at least\n* 12*N + 2*N*SMLSIZ + 8*N*NLVL + N*NRHS + (SMLSIZ+1)**2,\n* if M is greater than or equal to N or\n* 12*M + 2*M*SMLSIZ + 8*M*NLVL + M*NRHS + (SMLSIZ+1)**2,\n* if M is less than N, the code will execute correctly.\n* SMLSIZ is returned by ILAENV and is equal to the maximum\n* size of the subproblems at the bottom of the computation\n* tree (usually about 25), and\n* NLVL = MAX( 0, INT( LOG_2( MIN( M,N )/(SMLSIZ+1) ) ) + 1 )\n* For good performance, LWORK should generally be larger.\n*\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the WORK array, returns\n* this value as the first entry of the WORK array, and no error\n* message related to LWORK is issued by XERBLA.\n*\n* IWORK (workspace) INTEGER array, dimension (MAX(1,LIWORK))\n* LIWORK >= max(1, 3 * MINMN * NLVL + 11 * MINMN),\n* where MINMN = MIN( M,N ).\n* On exit, if INFO = 0, IWORK(1) returns the minimum LIWORK.\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value.\n* > 0: the algorithm for computing the SVD failed to converge;\n* if INFO = i, i off-diagonal elements of an intermediate\n* bidiagonal form did not converge to zero.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Ming Gu and Ren-Cang Li, Computer Science Division, University of\n* California at Berkeley, USA\n* Osni Marques, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n\n"); -+ printf("%s\n", "USAGE:\n s, rank, work, info, b = NumRu::Lapack.dgelsd( a, b, rcond, [:lwork => lwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DGELSD( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK, WORK, LWORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* DGELSD computes the minimum-norm solution to a real linear least\n* squares problem:\n* minimize 2-norm(| b - A*x |)\n* using the singular value decomposition (SVD) of A. A is an M-by-N\n* matrix which may be rank-deficient.\n*\n* Several right hand side vectors b and solution vectors x can be\n* handled in a single call; they are stored as the columns of the\n* M-by-NRHS right hand side matrix B and the N-by-NRHS solution\n* matrix X.\n*\n* The problem is solved in three steps:\n* (1) Reduce the coefficient matrix A to bidiagonal form with\n* Householder transformations, reducing the original problem\n* into a \"bidiagonal least squares problem\" (BLS)\n* (2) Solve the BLS using a divide and conquer approach.\n* (3) Apply back all the Householder transformations to solve\n* the original least squares problem.\n*\n* The effective rank of A is determined by treating as zero those\n* singular values which are less than RCOND times the largest singular\n* value.\n*\n* The divide and conquer algorithm makes very mild assumptions about\n* floating point arithmetic. It will work on machines with a guard\n* digit in add/subtract, or on those binary machines without guard\n* digits which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or\n* Cray-2. It could conceivably fail on hexadecimal or decimal machines\n* without guard digits, but we know of none.\n*\n\n* Arguments\n* =========\n*\n* M (input) INTEGER\n* The number of rows of A. M >= 0.\n*\n* N (input) INTEGER\n* The number of columns of A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrices B and X. NRHS >= 0.\n*\n* A (input) DOUBLE PRECISION array, dimension (LDA,N)\n* On entry, the M-by-N matrix A.\n* On exit, A has been destroyed.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* B (input/output) DOUBLE PRECISION array, dimension (LDB,NRHS)\n* On entry, the M-by-NRHS right hand side matrix B.\n* On exit, B is overwritten by the N-by-NRHS solution\n* matrix X. If m >= n and RANK = n, the residual\n* sum-of-squares for the solution in the i-th column is given\n* by the sum of squares of elements n+1:m in that column.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,max(M,N)).\n*\n* S (output) DOUBLE PRECISION array, dimension (min(M,N))\n* The singular values of A in decreasing order.\n* The condition number of A in the 2-norm = S(1)/S(min(m,n)).\n*\n* RCOND (input) DOUBLE PRECISION\n* RCOND is used to determine the effective rank of A.\n* Singular values S(i) <= RCOND*S(1) are treated as zero.\n* If RCOND < 0, machine precision is used instead.\n*\n* RANK (output) INTEGER\n* The effective rank of A, i.e., the number of singular values\n* which are greater than RCOND*S(1).\n*\n* WORK (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK))\n* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK must be at least 1.\n* The exact minimum amount of workspace needed depends on M,\n* N and NRHS. As long as LWORK is at least\n* 12*N + 2*N*SMLSIZ + 8*N*NLVL + N*NRHS + (SMLSIZ+1)**2,\n* if M is greater than or equal to N or\n* 12*M + 2*M*SMLSIZ + 8*M*NLVL + M*NRHS + (SMLSIZ+1)**2,\n* if M is less than N, the code will execute correctly.\n* SMLSIZ is returned by ILAENV and is equal to the maximum\n* size of the subproblems at the bottom of the computation\n* tree (usually about 25), and\n* NLVL = MAX( 0, INT( LOG_2( MIN( M,N )/(SMLSIZ+1) ) ) + 1 )\n* For good performance, LWORK should generally be larger.\n*\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the WORK array, returns\n* this value as the first entry of the WORK array, and no error\n* message related to LWORK is issued by XERBLA.\n*\n* IWORK (workspace) INTEGER array, dimension (MAX(1,LIWORK))\n* LIWORK >= max(1, 3 * MINMN * NLVL + 11 * MINMN),\n* where MINMN = MIN( M,N ).\n* On exit, if INFO = 0, IWORK(1) returns the minimum LIWORK.\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value.\n* > 0: the algorithm for computing the SVD failed to converge;\n* if INFO = i, i off-diagonal elements of an intermediate\n* bidiagonal form did not converge to zero.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Ming Gu and Ren-Cang Li, Computer Science Division, University of\n* California at Berkeley, USA\n* Osni Marques, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n\n"); - return Qnil; - } - if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { -diff --git a/ext/dlamrg.c b/ext/dlamrg.c -index c96fc1f..27c4e36 100644 ---- a/ext/dlamrg.c -+++ b/ext/dlamrg.c -@@ -24,7 +24,7 @@ rblapack_dlamrg(int argc, VALUE *argv, VALUE self){ - argc--; - rblapack_options = argv[argc]; - if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { -- printf("%s\n", "USAGE:\n index = NumRu::Lapack.dlamrg( n1, n2, a, dtrd1, dtrd2, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DLAMRG( N1, N2, A, DTRD1, DTRD2, INDEX )\n\n* Purpose\n* =======\n*\n* DLAMRG will create a permutation list which will merge the elements\n* of A (which is composed of two independently sorted sets) into a\n* single set which is sorted in ascending order.\n*\n\n* Arguments\n* =========\n*\n* N1 (input) INTEGER\n* N2 (input) INTEGER\n* These arguements contain the respective lengths of the two\n* sorted lists to be merged.\n*\n* A (input) DOUBLE PRECISION array, dimension (N1+N2)\n* The first N1 elements of A contain a list of numbers which\n* are sorted in either ascending or descending order. Likewise\n* for the final N2 elements.\n*\n* DTRD1 (input) INTEGER\n* DTRD2 (input) INTEGER\n* These are the strides to be taken through the array A.\n* Allowable strides are 1 and -1. They indicate whether a\n* subset of A is sorted in ascending (DTRDx = 1) or descending\n* (DTRDx = -1) order.\n*\n* INDEX (output) INTEGER array, dimension (N1+N2)\n* On exit this array will contain a permutation such that\n* if B( I ) = A( INDEX( I ) ) for I=1,N1+N2, then B will be\n* sorted in ascending order.\n*\n\n* =====================================================================\n*\n* .. Local Scalars ..\n INTEGER I, IND1, IND2, N1SV, N2SV\n* ..\n\n"); -+ printf("%s\n", "USAGE:\n index = NumRu::Lapack.dlamrg( n1, n2, a, dtrd1, dtrd2, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DLAMRG( N1, N2, A, DTRD1, DTRD2, INDEX )\n\n* Purpose\n* =======\n*\n* DLAMRG will create a permutation list which will merge the elements\n* of A (which is composed of two independently sorted sets) into a\n* single set which is sorted in ascending order.\n*\n\n* Arguments\n* =========\n*\n* N1 (input) INTEGER\n* N2 (input) INTEGER\n* These arguments contain the respective lengths of the two\n* sorted lists to be merged.\n*\n* A (input) DOUBLE PRECISION array, dimension (N1+N2)\n* The first N1 elements of A contain a list of numbers which\n* are sorted in either ascending or descending order. Likewise\n* for the final N2 elements.\n*\n* DTRD1 (input) INTEGER\n* DTRD2 (input) INTEGER\n* These are the strides to be taken through the array A.\n* Allowable strides are 1 and -1. They indicate whether a\n* subset of A is sorted in ascending (DTRDx = 1) or descending\n* (DTRDx = -1) order.\n*\n* INDEX (output) INTEGER array, dimension (N1+N2)\n* On exit this array will contain a permutation such that\n* if B( I ) = A( INDEX( I ) ) for I=1,N1+N2, then B will be\n* sorted in ascending order.\n*\n\n* =====================================================================\n*\n* .. Local Scalars ..\n INTEGER I, IND1, IND2, N1SV, N2SV\n* ..\n\n"); - return Qnil; - } - if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { -diff --git a/ext/dlarre.c b/ext/dlarre.c -index 5b75b35..d8c34f4 100644 ---- a/ext/dlarre.c -+++ b/ext/dlarre.c -@@ -65,7 +65,7 @@ rblapack_dlarre(int argc, VALUE *argv, VALUE self){ - argc--; - rblapack_options = argv[argc]; - if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { -- printf("%s\n", "USAGE:\n nsplit, isplit, m, w, werr, wgap, iblock, indexw, gers, pivmin, info, vl, vu, d, e, e2 = NumRu::Lapack.dlarre( range, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DLARRE( RANGE, N, VL, VU, IL, IU, D, E, E2, RTOL1, RTOL2, SPLTOL, NSPLIT, ISPLIT, M, W, WERR, WGAP, IBLOCK, INDEXW, GERS, PIVMIN, WORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* To find the desired eigenvalues of a given real symmetric\n* tridiagonal matrix T, DLARRE sets any \"small\" off-diagonal\n* elements to zero, and for each unreduced block T_i, it finds\n* (a) a suitable shift at one end of the block's spectrum,\n* (b) the base representation, T_i - sigma_i I = L_i D_i L_i^T, and\n* (c) eigenvalues of each L_i D_i L_i^T.\n* The representations and eigenvalues found are then used by\n* DSTEMR to compute the eigenvectors of T.\n* The accuracy varies depending on whether bisection is used to\n* find a few eigenvalues or the dqds algorithm (subroutine DLASQ2) to\n* conpute all and then discard any unwanted one.\n* As an added benefit, DLARRE also outputs the n\n* Gerschgorin intervals for the matrices L_i D_i L_i^T.\n*\n\n* Arguments\n* =========\n*\n* RANGE (input) CHARACTER*1\n* = 'A': (\"All\") all eigenvalues will be found.\n* = 'V': (\"Value\") all eigenvalues in the half-open interval\n* (VL, VU] will be found.\n* = 'I': (\"Index\") the IL-th through IU-th eigenvalues (of the\n* entire matrix) will be found.\n*\n* N (input) INTEGER\n* The order of the matrix. N > 0.\n*\n* VL (input/output) DOUBLE PRECISION\n* VU (input/output) DOUBLE PRECISION\n* If RANGE='V', the lower and upper bounds for the eigenvalues.\n* Eigenvalues less than or equal to VL, or greater than VU,\n* will not be returned. VL < VU.\n* If RANGE='I' or ='A', DLARRE computes bounds on the desired\n* part of the spectrum.\n*\n* IL (input) INTEGER\n* IU (input) INTEGER\n* If RANGE='I', the indices (in ascending order) of the\n* smallest and largest eigenvalues to be returned.\n* 1 <= IL <= IU <= N.\n*\n* D (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the N diagonal elements of the tridiagonal\n* matrix T.\n* On exit, the N diagonal elements of the diagonal\n* matrices D_i.\n*\n* E (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the first (N-1) entries contain the subdiagonal\n* elements of the tridiagonal matrix T; E(N) need not be set.\n* On exit, E contains the subdiagonal elements of the unit\n* bidiagonal matrices L_i. The entries E( ISPLIT( I ) ),\n* 1 <= I <= NSPLIT, contain the base points sigma_i on output.\n*\n* E2 (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the first (N-1) entries contain the SQUARES of the\n* subdiagonal elements of the tridiagonal matrix T;\n* E2(N) need not be set.\n* On exit, the entries E2( ISPLIT( I ) ),\n* 1 <= I <= NSPLIT, have been set to zero\n*\n* RTOL1 (input) DOUBLE PRECISION\n* RTOL2 (input) DOUBLE PRECISION\n* Parameters for bisection.\n* An interval [LEFT,RIGHT] has converged if\n* RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) )\n*\n* SPLTOL (input) DOUBLE PRECISION\n* The threshold for splitting.\n*\n* NSPLIT (output) INTEGER\n* The number of blocks T splits into. 1 <= NSPLIT <= N.\n*\n* ISPLIT (output) INTEGER array, dimension (N)\n* The splitting points, at which T breaks up into blocks.\n* The first block consists of rows/columns 1 to ISPLIT(1),\n* the second of rows/columns ISPLIT(1)+1 through ISPLIT(2),\n* etc., and the NSPLIT-th consists of rows/columns\n* ISPLIT(NSPLIT-1)+1 through ISPLIT(NSPLIT)=N.\n*\n* M (output) INTEGER\n* The total number of eigenvalues (of all L_i D_i L_i^T)\n* found.\n*\n* W (output) DOUBLE PRECISION array, dimension (N)\n* The first M elements contain the eigenvalues. The\n* eigenvalues of each of the blocks, L_i D_i L_i^T, are\n* sorted in ascending order ( DLARRE may use the\n* remaining N-M elements as workspace).\n*\n* WERR (output) DOUBLE PRECISION array, dimension (N)\n* The error bound on the corresponding eigenvalue in W.\n*\n* WGAP (output) DOUBLE PRECISION array, dimension (N)\n* The separation from the right neighbor eigenvalue in W.\n* The gap is only with respect to the eigenvalues of the same block\n* as each block has its own representation tree.\n* Exception: at the right end of a block we store the left gap\n*\n* IBLOCK (output) INTEGER array, dimension (N)\n* The indices of the blocks (submatrices) associated with the\n* corresponding eigenvalues in W; IBLOCK(i)=1 if eigenvalue\n* W(i) belongs to the first block from the top, =2 if W(i)\n* belongs to the second block, etc.\n*\n* INDEXW (output) INTEGER array, dimension (N)\n* The indices of the eigenvalues within each block (submatrix);\n* for example, INDEXW(i)= 10 and IBLOCK(i)=2 imply that the\n* i-th eigenvalue W(i) is the 10-th eigenvalue in block 2\n*\n* GERS (output) DOUBLE PRECISION array, dimension (2*N)\n* The N Gerschgorin intervals (the i-th Gerschgorin interval\n* is (GERS(2*i-1), GERS(2*i)).\n*\n* PIVMIN (output) DOUBLE PRECISION\n* The minimum pivot in the Sturm sequence for T.\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (6*N)\n* Workspace.\n*\n* IWORK (workspace) INTEGER array, dimension (5*N)\n* Workspace.\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* > 0: A problem occured in DLARRE.\n* < 0: One of the called subroutines signaled an internal problem.\n* Needs inspection of the corresponding parameter IINFO\n* for further information.\n*\n* =-1: Problem in DLARRD.\n* = 2: No base representation could be found in MAXTRY iterations.\n* Increasing MAXTRY and recompilation might be a remedy.\n* =-3: Problem in DLARRB when computing the refined root\n* representation for DLASQ2.\n* =-4: Problem in DLARRB when preforming bisection on the\n* desired part of the spectrum.\n* =-5: Problem in DLASQ2.\n* =-6: Problem in DLASQ2.\n*\n\n* Further Details\n* The base representations are required to suffer very little\n* element growth and consequently define all their eigenvalues to\n* high relative accuracy.\n* ===============\n*\n* Based on contributions by\n* Beresford Parlett, University of California, Berkeley, USA\n* Jim Demmel, University of California, Berkeley, USA\n* Inderjit Dhillon, University of Texas, Austin, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, University of California, Berkeley, USA\n*\n* =====================================================================\n*\n\n"); -+ printf("%s\n", "USAGE:\n nsplit, isplit, m, w, werr, wgap, iblock, indexw, gers, pivmin, info, vl, vu, d, e, e2 = NumRu::Lapack.dlarre( range, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DLARRE( RANGE, N, VL, VU, IL, IU, D, E, E2, RTOL1, RTOL2, SPLTOL, NSPLIT, ISPLIT, M, W, WERR, WGAP, IBLOCK, INDEXW, GERS, PIVMIN, WORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* To find the desired eigenvalues of a given real symmetric\n* tridiagonal matrix T, DLARRE sets any \"small\" off-diagonal\n* elements to zero, and for each unreduced block T_i, it finds\n* (a) a suitable shift at one end of the block's spectrum,\n* (b) the base representation, T_i - sigma_i I = L_i D_i L_i^T, and\n* (c) eigenvalues of each L_i D_i L_i^T.\n* The representations and eigenvalues found are then used by\n* DSTEMR to compute the eigenvectors of T.\n* The accuracy varies depending on whether bisection is used to\n* find a few eigenvalues or the dqds algorithm (subroutine DLASQ2) to\n* conpute all and then discard any unwanted one.\n* As an added benefit, DLARRE also outputs the n\n* Gerschgorin intervals for the matrices L_i D_i L_i^T.\n*\n\n* Arguments\n* =========\n*\n* RANGE (input) CHARACTER*1\n* = 'A': (\"All\") all eigenvalues will be found.\n* = 'V': (\"Value\") all eigenvalues in the half-open interval\n* (VL, VU] will be found.\n* = 'I': (\"Index\") the IL-th through IU-th eigenvalues (of the\n* entire matrix) will be found.\n*\n* N (input) INTEGER\n* The order of the matrix. N > 0.\n*\n* VL (input/output) DOUBLE PRECISION\n* VU (input/output) DOUBLE PRECISION\n* If RANGE='V', the lower and upper bounds for the eigenvalues.\n* Eigenvalues less than or equal to VL, or greater than VU,\n* will not be returned. VL < VU.\n* If RANGE='I' or ='A', DLARRE computes bounds on the desired\n* part of the spectrum.\n*\n* IL (input) INTEGER\n* IU (input) INTEGER\n* If RANGE='I', the indices (in ascending order) of the\n* smallest and largest eigenvalues to be returned.\n* 1 <= IL <= IU <= N.\n*\n* D (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the N diagonal elements of the tridiagonal\n* matrix T.\n* On exit, the N diagonal elements of the diagonal\n* matrices D_i.\n*\n* E (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the first (N-1) entries contain the subdiagonal\n* elements of the tridiagonal matrix T; E(N) need not be set.\n* On exit, E contains the subdiagonal elements of the unit\n* bidiagonal matrices L_i. The entries E( ISPLIT( I ) ),\n* 1 <= I <= NSPLIT, contain the base points sigma_i on output.\n*\n* E2 (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the first (N-1) entries contain the SQUARES of the\n* subdiagonal elements of the tridiagonal matrix T;\n* E2(N) need not be set.\n* On exit, the entries E2( ISPLIT( I ) ),\n* 1 <= I <= NSPLIT, have been set to zero\n*\n* RTOL1 (input) DOUBLE PRECISION\n* RTOL2 (input) DOUBLE PRECISION\n* Parameters for bisection.\n* An interval [LEFT,RIGHT] has converged if\n* RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) )\n*\n* SPLTOL (input) DOUBLE PRECISION\n* The threshold for splitting.\n*\n* NSPLIT (output) INTEGER\n* The number of blocks T splits into. 1 <= NSPLIT <= N.\n*\n* ISPLIT (output) INTEGER array, dimension (N)\n* The splitting points, at which T breaks up into blocks.\n* The first block consists of rows/columns 1 to ISPLIT(1),\n* the second of rows/columns ISPLIT(1)+1 through ISPLIT(2),\n* etc., and the NSPLIT-th consists of rows/columns\n* ISPLIT(NSPLIT-1)+1 through ISPLIT(NSPLIT)=N.\n*\n* M (output) INTEGER\n* The total number of eigenvalues (of all L_i D_i L_i^T)\n* found.\n*\n* W (output) DOUBLE PRECISION array, dimension (N)\n* The first M elements contain the eigenvalues. The\n* eigenvalues of each of the blocks, L_i D_i L_i^T, are\n* sorted in ascending order ( DLARRE may use the\n* remaining N-M elements as workspace).\n*\n* WERR (output) DOUBLE PRECISION array, dimension (N)\n* The error bound on the corresponding eigenvalue in W.\n*\n* WGAP (output) DOUBLE PRECISION array, dimension (N)\n* The separation from the right neighbor eigenvalue in W.\n* The gap is only with respect to the eigenvalues of the same block\n* as each block has its own representation tree.\n* Exception: at the right end of a block we store the left gap\n*\n* IBLOCK (output) INTEGER array, dimension (N)\n* The indices of the blocks (submatrices) associated with the\n* corresponding eigenvalues in W; IBLOCK(i)=1 if eigenvalue\n* W(i) belongs to the first block from the top, =2 if W(i)\n* belongs to the second block, etc.\n*\n* INDEXW (output) INTEGER array, dimension (N)\n* The indices of the eigenvalues within each block (submatrix);\n* for example, INDEXW(i)= 10 and IBLOCK(i)=2 imply that the\n* i-th eigenvalue W(i) is the 10-th eigenvalue in block 2\n*\n* GERS (output) DOUBLE PRECISION array, dimension (2*N)\n* The N Gerschgorin intervals (the i-th Gerschgorin interval\n* is (GERS(2*i-1), GERS(2*i)).\n*\n* PIVMIN (output) DOUBLE PRECISION\n* The minimum pivot in the Sturm sequence for T.\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (6*N)\n* Workspace.\n*\n* IWORK (workspace) INTEGER array, dimension (5*N)\n* Workspace.\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* > 0: A problem occurred in DLARRE.\n* < 0: One of the called subroutines signaled an internal problem.\n* Needs inspection of the corresponding parameter IINFO\n* for further information.\n*\n* =-1: Problem in DLARRD.\n* = 2: No base representation could be found in MAXTRY iterations.\n* Increasing MAXTRY and recompilation might be a remedy.\n* =-3: Problem in DLARRB when computing the refined root\n* representation for DLASQ2.\n* =-4: Problem in DLARRB when preforming bisection on the\n* desired part of the spectrum.\n* =-5: Problem in DLASQ2.\n* =-6: Problem in DLASQ2.\n*\n\n* Further Details\n* The base representations are required to suffer very little\n* element growth and consequently define all their eigenvalues to\n* high relative accuracy.\n* ===============\n*\n* Based on contributions by\n* Beresford Parlett, University of California, Berkeley, USA\n* Jim Demmel, University of California, Berkeley, USA\n* Inderjit Dhillon, University of Texas, Austin, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, University of California, Berkeley, USA\n*\n* =====================================================================\n*\n\n"); - return Qnil; - } - if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { -diff --git a/ext/dlarrv.c b/ext/dlarrv.c -index e1114cf..0e04555 100644 ---- a/ext/dlarrv.c -+++ b/ext/dlarrv.c -@@ -68,7 +68,7 @@ rblapack_dlarrv(int argc, VALUE *argv, VALUE self){ - argc--; - rblapack_options = argv[argc]; - if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { -- printf("%s\n", "USAGE:\n z, isuppz, info, d, l, w, werr, wgap = NumRu::Lapack.dlarrv( vl, vu, d, l, pivmin, isplit, m, dol, dou, minrgp, rtol1, rtol2, w, werr, wgap, iblock, indexw, gers, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DLARRV( N, VL, VU, D, L, PIVMIN, ISPLIT, M, DOL, DOU, MINRGP, RTOL1, RTOL2, W, WERR, WGAP, IBLOCK, INDEXW, GERS, Z, LDZ, ISUPPZ, WORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* DLARRV computes the eigenvectors of the tridiagonal matrix\n* T = L D L^T given L, D and APPROXIMATIONS to the eigenvalues of L D L^T.\n* The input eigenvalues should have been computed by DLARRE.\n*\n\n* Arguments\n* =========\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* VL (input) DOUBLE PRECISION\n* VU (input) DOUBLE PRECISION\n* Lower and upper bounds of the interval that contains the desired\n* eigenvalues. VL < VU. Needed to compute gaps on the left or right\n* end of the extremal eigenvalues in the desired RANGE.\n*\n* D (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the N diagonal elements of the diagonal matrix D.\n* On exit, D may be overwritten.\n*\n* L (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the unit\n* bidiagonal matrix L are in elements 1 to N-1 of L\n* (if the matrix is not split.) At the end of each block\n* is stored the corresponding shift as given by DLARRE.\n* On exit, L is overwritten.\n*\n* PIVMIN (input) DOUBLE PRECISION\n* The minimum pivot allowed in the Sturm sequence.\n*\n* ISPLIT (input) INTEGER array, dimension (N)\n* The splitting points, at which T breaks up into blocks.\n* The first block consists of rows/columns 1 to\n* ISPLIT( 1 ), the second of rows/columns ISPLIT( 1 )+1\n* through ISPLIT( 2 ), etc.\n*\n* M (input) INTEGER\n* The total number of input eigenvalues. 0 <= M <= N.\n*\n* DOL (input) INTEGER\n* DOU (input) INTEGER\n* If the user wants to compute only selected eigenvectors from all\n* the eigenvalues supplied, he can specify an index range DOL:DOU.\n* Or else the setting DOL=1, DOU=M should be applied.\n* Note that DOL and DOU refer to the order in which the eigenvalues\n* are stored in W.\n* If the user wants to compute only selected eigenpairs, then\n* the columns DOL-1 to DOU+1 of the eigenvector space Z contain the\n* computed eigenvectors. All other columns of Z are set to zero.\n*\n* MINRGP (input) DOUBLE PRECISION\n*\n* RTOL1 (input) DOUBLE PRECISION\n* RTOL2 (input) DOUBLE PRECISION\n* Parameters for bisection.\n* An interval [LEFT,RIGHT] has converged if\n* RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) )\n*\n* W (input/output) DOUBLE PRECISION array, dimension (N)\n* The first M elements of W contain the APPROXIMATE eigenvalues for\n* which eigenvectors are to be computed. The eigenvalues\n* should be grouped by split-off block and ordered from\n* smallest to largest within the block ( The output array\n* W from DLARRE is expected here ). Furthermore, they are with\n* respect to the shift of the corresponding root representation\n* for their block. On exit, W holds the eigenvalues of the\n* UNshifted matrix.\n*\n* WERR (input/output) DOUBLE PRECISION array, dimension (N)\n* The first M elements contain the semiwidth of the uncertainty\n* interval of the corresponding eigenvalue in W\n*\n* WGAP (input/output) DOUBLE PRECISION array, dimension (N)\n* The separation from the right neighbor eigenvalue in W.\n*\n* IBLOCK (input) INTEGER array, dimension (N)\n* The indices of the blocks (submatrices) associated with the\n* corresponding eigenvalues in W; IBLOCK(i)=1 if eigenvalue\n* W(i) belongs to the first block from the top, =2 if W(i)\n* belongs to the second block, etc.\n*\n* INDEXW (input) INTEGER array, dimension (N)\n* The indices of the eigenvalues within each block (submatrix);\n* for example, INDEXW(i)= 10 and IBLOCK(i)=2 imply that the\n* i-th eigenvalue W(i) is the 10-th eigenvalue in the second block.\n*\n* GERS (input) DOUBLE PRECISION array, dimension (2*N)\n* The N Gerschgorin intervals (the i-th Gerschgorin interval\n* is (GERS(2*i-1), GERS(2*i)). The Gerschgorin intervals should\n* be computed from the original UNshifted matrix.\n*\n* Z (output) DOUBLE PRECISION array, dimension (LDZ, max(1,M) )\n* If INFO = 0, the first M columns of Z contain the\n* orthonormal eigenvectors of the matrix T\n* corresponding to the input eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER array, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The I-th eigenvector\n* is nonzero only in elements ISUPPZ( 2*I-1 ) through\n* ISUPPZ( 2*I ).\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (12*N)\n*\n* IWORK (workspace) INTEGER array, dimension (7*N)\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n*\n* > 0: A problem occured in DLARRV.\n* < 0: One of the called subroutines signaled an internal problem.\n* Needs inspection of the corresponding parameter IINFO\n* for further information.\n*\n* =-1: Problem in DLARRB when refining a child's eigenvalues.\n* =-2: Problem in DLARRF when computing the RRR of a child.\n* When a child is inside a tight cluster, it can be difficult\n* to find an RRR. A partial remedy from the user's point of\n* view is to make the parameter MINRGP smaller and recompile.\n* However, as the orthogonality of the computed vectors is\n* proportional to 1/MINRGP, the user should be aware that\n* he might be trading in precision when he decreases MINRGP.\n* =-3: Problem in DLARRB when refining a single eigenvalue\n* after the Rayleigh correction was rejected.\n* = 5: The Rayleigh Quotient Iteration failed to converge to\n* full accuracy in MAXITR steps.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Beresford Parlett, University of California, Berkeley, USA\n* Jim Demmel, University of California, Berkeley, USA\n* Inderjit Dhillon, University of Texas, Austin, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, University of California, Berkeley, USA\n*\n* =====================================================================\n*\n\n"); -+ printf("%s\n", "USAGE:\n z, isuppz, info, d, l, w, werr, wgap = NumRu::Lapack.dlarrv( vl, vu, d, l, pivmin, isplit, m, dol, dou, minrgp, rtol1, rtol2, w, werr, wgap, iblock, indexw, gers, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DLARRV( N, VL, VU, D, L, PIVMIN, ISPLIT, M, DOL, DOU, MINRGP, RTOL1, RTOL2, W, WERR, WGAP, IBLOCK, INDEXW, GERS, Z, LDZ, ISUPPZ, WORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* DLARRV computes the eigenvectors of the tridiagonal matrix\n* T = L D L^T given L, D and APPROXIMATIONS to the eigenvalues of L D L^T.\n* The input eigenvalues should have been computed by DLARRE.\n*\n\n* Arguments\n* =========\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* VL (input) DOUBLE PRECISION\n* VU (input) DOUBLE PRECISION\n* Lower and upper bounds of the interval that contains the desired\n* eigenvalues. VL < VU. Needed to compute gaps on the left or right\n* end of the extremal eigenvalues in the desired RANGE.\n*\n* D (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the N diagonal elements of the diagonal matrix D.\n* On exit, D may be overwritten.\n*\n* L (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the unit\n* bidiagonal matrix L are in elements 1 to N-1 of L\n* (if the matrix is not split.) At the end of each block\n* is stored the corresponding shift as given by DLARRE.\n* On exit, L is overwritten.\n*\n* PIVMIN (input) DOUBLE PRECISION\n* The minimum pivot allowed in the Sturm sequence.\n*\n* ISPLIT (input) INTEGER array, dimension (N)\n* The splitting points, at which T breaks up into blocks.\n* The first block consists of rows/columns 1 to\n* ISPLIT( 1 ), the second of rows/columns ISPLIT( 1 )+1\n* through ISPLIT( 2 ), etc.\n*\n* M (input) INTEGER\n* The total number of input eigenvalues. 0 <= M <= N.\n*\n* DOL (input) INTEGER\n* DOU (input) INTEGER\n* If the user wants to compute only selected eigenvectors from all\n* the eigenvalues supplied, he can specify an index range DOL:DOU.\n* Or else the setting DOL=1, DOU=M should be applied.\n* Note that DOL and DOU refer to the order in which the eigenvalues\n* are stored in W.\n* If the user wants to compute only selected eigenpairs, then\n* the columns DOL-1 to DOU+1 of the eigenvector space Z contain the\n* computed eigenvectors. All other columns of Z are set to zero.\n*\n* MINRGP (input) DOUBLE PRECISION\n*\n* RTOL1 (input) DOUBLE PRECISION\n* RTOL2 (input) DOUBLE PRECISION\n* Parameters for bisection.\n* An interval [LEFT,RIGHT] has converged if\n* RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) )\n*\n* W (input/output) DOUBLE PRECISION array, dimension (N)\n* The first M elements of W contain the APPROXIMATE eigenvalues for\n* which eigenvectors are to be computed. The eigenvalues\n* should be grouped by split-off block and ordered from\n* smallest to largest within the block ( The output array\n* W from DLARRE is expected here ). Furthermore, they are with\n* respect to the shift of the corresponding root representation\n* for their block. On exit, W holds the eigenvalues of the\n* UNshifted matrix.\n*\n* WERR (input/output) DOUBLE PRECISION array, dimension (N)\n* The first M elements contain the semiwidth of the uncertainty\n* interval of the corresponding eigenvalue in W\n*\n* WGAP (input/output) DOUBLE PRECISION array, dimension (N)\n* The separation from the right neighbor eigenvalue in W.\n*\n* IBLOCK (input) INTEGER array, dimension (N)\n* The indices of the blocks (submatrices) associated with the\n* corresponding eigenvalues in W; IBLOCK(i)=1 if eigenvalue\n* W(i) belongs to the first block from the top, =2 if W(i)\n* belongs to the second block, etc.\n*\n* INDEXW (input) INTEGER array, dimension (N)\n* The indices of the eigenvalues within each block (submatrix);\n* for example, INDEXW(i)= 10 and IBLOCK(i)=2 imply that the\n* i-th eigenvalue W(i) is the 10-th eigenvalue in the second block.\n*\n* GERS (input) DOUBLE PRECISION array, dimension (2*N)\n* The N Gerschgorin intervals (the i-th Gerschgorin interval\n* is (GERS(2*i-1), GERS(2*i)). The Gerschgorin intervals should\n* be computed from the original UNshifted matrix.\n*\n* Z (output) DOUBLE PRECISION array, dimension (LDZ, max(1,M) )\n* If INFO = 0, the first M columns of Z contain the\n* orthonormal eigenvectors of the matrix T\n* corresponding to the input eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER array, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The I-th eigenvector\n* is nonzero only in elements ISUPPZ( 2*I-1 ) through\n* ISUPPZ( 2*I ).\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (12*N)\n*\n* IWORK (workspace) INTEGER array, dimension (7*N)\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n*\n* > 0: A problem occurred in DLARRV.\n* < 0: One of the called subroutines signaled an internal problem.\n* Needs inspection of the corresponding parameter IINFO\n* for further information.\n*\n* =-1: Problem in DLARRB when refining a child's eigenvalues.\n* =-2: Problem in DLARRF when computing the RRR of a child.\n* When a child is inside a tight cluster, it can be difficult\n* to find an RRR. A partial remedy from the user's point of\n* view is to make the parameter MINRGP smaller and recompile.\n* However, as the orthogonality of the computed vectors is\n* proportional to 1/MINRGP, the user should be aware that\n* he might be trading in precision when he decreases MINRGP.\n* =-3: Problem in DLARRB when refining a single eigenvalue\n* after the Rayleigh correction was rejected.\n* = 5: The Rayleigh Quotient Iteration failed to converge to\n* full accuracy in MAXITR steps.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Beresford Parlett, University of California, Berkeley, USA\n* Jim Demmel, University of California, Berkeley, USA\n* Inderjit Dhillon, University of Texas, Austin, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, University of California, Berkeley, USA\n*\n* =====================================================================\n*\n\n"); - return Qnil; - } - if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { -diff --git a/ext/dlasdq.c b/ext/dlasdq.c -index 14d56a5..eaa59ad 100644 ---- a/ext/dlasdq.c -+++ b/ext/dlasdq.c -@@ -47,7 +47,7 @@ rblapack_dlasdq(int argc, VALUE *argv, VALUE self){ - argc--; - rblapack_options = argv[argc]; - if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { -- printf("%s\n", "USAGE:\n info, d, e, vt, u, c = NumRu::Lapack.dlasdq( uplo, sqre, nru, d, e, vt, u, c, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DLASDQ( UPLO, SQRE, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, LDU, C, LDC, WORK, INFO )\n\n* Purpose\n* =======\n*\n* DLASDQ computes the singular value decomposition (SVD) of a real\n* (upper or lower) bidiagonal matrix with diagonal D and offdiagonal\n* E, accumulating the transformations if desired. Letting B denote\n* the input bidiagonal matrix, the algorithm computes orthogonal\n* matrices Q and P such that B = Q * S * P' (P' denotes the transpose\n* of P). The singular values S are overwritten on D.\n*\n* The input matrix U is changed to U * Q if desired.\n* The input matrix VT is changed to P' * VT if desired.\n* The input matrix C is changed to Q' * C if desired.\n*\n* See \"Computing Small Singular Values of Bidiagonal Matrices With\n* Guaranteed High Relative Accuracy,\" by J. Demmel and W. Kahan,\n* LAPACK Working Note #3, for a detailed description of the algorithm.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* On entry, UPLO specifies whether the input bidiagonal matrix\n* is upper or lower bidiagonal, and wether it is square are\n* not.\n* UPLO = 'U' or 'u' B is upper bidiagonal.\n* UPLO = 'L' or 'l' B is lower bidiagonal.\n*\n* SQRE (input) INTEGER\n* = 0: then the input matrix is N-by-N.\n* = 1: then the input matrix is N-by-(N+1) if UPLU = 'U' and\n* (N+1)-by-N if UPLU = 'L'.\n*\n* The bidiagonal matrix has\n* N = NL + NR + 1 rows and\n* M = N + SQRE >= N columns.\n*\n* N (input) INTEGER\n* On entry, N specifies the number of rows and columns\n* in the matrix. N must be at least 0.\n*\n* NCVT (input) INTEGER\n* On entry, NCVT specifies the number of columns of\n* the matrix VT. NCVT must be at least 0.\n*\n* NRU (input) INTEGER\n* On entry, NRU specifies the number of rows of\n* the matrix U. NRU must be at least 0.\n*\n* NCC (input) INTEGER\n* On entry, NCC specifies the number of columns of\n* the matrix C. NCC must be at least 0.\n*\n* D (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, D contains the diagonal entries of the\n* bidiagonal matrix whose SVD is desired. On normal exit,\n* D contains the singular values in ascending order.\n*\n* E (input/output) DOUBLE PRECISION array.\n* dimension is (N-1) if SQRE = 0 and N if SQRE = 1.\n* On entry, the entries of E contain the offdiagonal entries\n* of the bidiagonal matrix whose SVD is desired. On normal\n* exit, E will contain 0. If the algorithm does not converge,\n* D and E will contain the diagonal and superdiagonal entries\n* of a bidiagonal matrix orthogonally equivalent to the one\n* given as input.\n*\n* VT (input/output) DOUBLE PRECISION array, dimension (LDVT, NCVT)\n* On entry, contains a matrix which on exit has been\n* premultiplied by P', dimension N-by-NCVT if SQRE = 0\n* and (N+1)-by-NCVT if SQRE = 1 (not referenced if NCVT=0).\n*\n* LDVT (input) INTEGER\n* On entry, LDVT specifies the leading dimension of VT as\n* declared in the calling (sub) program. LDVT must be at\n* least 1. If NCVT is nonzero LDVT must also be at least N.\n*\n* U (input/output) DOUBLE PRECISION array, dimension (LDU, N)\n* On entry, contains a matrix which on exit has been\n* postmultiplied by Q, dimension NRU-by-N if SQRE = 0\n* and NRU-by-(N+1) if SQRE = 1 (not referenced if NRU=0).\n*\n* LDU (input) INTEGER\n* On entry, LDU specifies the leading dimension of U as\n* declared in the calling (sub) program. LDU must be at\n* least max( 1, NRU ) .\n*\n* C (input/output) DOUBLE PRECISION array, dimension (LDC, NCC)\n* On entry, contains an N-by-NCC matrix which on exit\n* has been premultiplied by Q' dimension N-by-NCC if SQRE = 0\n* and (N+1)-by-NCC if SQRE = 1 (not referenced if NCC=0).\n*\n* LDC (input) INTEGER\n* On entry, LDC specifies the leading dimension of C as\n* declared in the calling (sub) program. LDC must be at\n* least 1. If NCC is nonzero, LDC must also be at least N.\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (4*N)\n* Workspace. Only referenced if one of NCVT, NRU, or NCC is\n* nonzero, and if N is at least 2.\n*\n* INFO (output) INTEGER\n* On exit, a value of 0 indicates a successful exit.\n* If INFO < 0, argument number -INFO is illegal.\n* If INFO > 0, the algorithm did not converge, and INFO\n* specifies how many superdiagonals did not converge.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Ming Gu and Huan Ren, Computer Science Division, University of\n* California at Berkeley, USA\n*\n* =====================================================================\n*\n\n"); -+ printf("%s\n", "USAGE:\n info, d, e, vt, u, c = NumRu::Lapack.dlasdq( uplo, sqre, nru, d, e, vt, u, c, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DLASDQ( UPLO, SQRE, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, LDU, C, LDC, WORK, INFO )\n\n* Purpose\n* =======\n*\n* DLASDQ computes the singular value decomposition (SVD) of a real\n* (upper or lower) bidiagonal matrix with diagonal D and offdiagonal\n* E, accumulating the transformations if desired. Letting B denote\n* the input bidiagonal matrix, the algorithm computes orthogonal\n* matrices Q and P such that B = Q * S * P' (P' denotes the transpose\n* of P). The singular values S are overwritten on D.\n*\n* The input matrix U is changed to U * Q if desired.\n* The input matrix VT is changed to P' * VT if desired.\n* The input matrix C is changed to Q' * C if desired.\n*\n* See \"Computing Small Singular Values of Bidiagonal Matrices With\n* Guaranteed High Relative Accuracy,\" by J. Demmel and W. Kahan,\n* LAPACK Working Note #3, for a detailed description of the algorithm.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* On entry, UPLO specifies whether the input bidiagonal matrix\n* is upper or lower bidiagonal, and whether it is square are\n* not.\n* UPLO = 'U' or 'u' B is upper bidiagonal.\n* UPLO = 'L' or 'l' B is lower bidiagonal.\n*\n* SQRE (input) INTEGER\n* = 0: then the input matrix is N-by-N.\n* = 1: then the input matrix is N-by-(N+1) if UPLU = 'U' and\n* (N+1)-by-N if UPLU = 'L'.\n*\n* The bidiagonal matrix has\n* N = NL + NR + 1 rows and\n* M = N + SQRE >= N columns.\n*\n* N (input) INTEGER\n* On entry, N specifies the number of rows and columns\n* in the matrix. N must be at least 0.\n*\n* NCVT (input) INTEGER\n* On entry, NCVT specifies the number of columns of\n* the matrix VT. NCVT must be at least 0.\n*\n* NRU (input) INTEGER\n* On entry, NRU specifies the number of rows of\n* the matrix U. NRU must be at least 0.\n*\n* NCC (input) INTEGER\n* On entry, NCC specifies the number of columns of\n* the matrix C. NCC must be at least 0.\n*\n* D (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, D contains the diagonal entries of the\n* bidiagonal matrix whose SVD is desired. On normal exit,\n* D contains the singular values in ascending order.\n*\n* E (input/output) DOUBLE PRECISION array.\n* dimension is (N-1) if SQRE = 0 and N if SQRE = 1.\n* On entry, the entries of E contain the offdiagonal entries\n* of the bidiagonal matrix whose SVD is desired. On normal\n* exit, E will contain 0. If the algorithm does not converge,\n* D and E will contain the diagonal and superdiagonal entries\n* of a bidiagonal matrix orthogonally equivalent to the one\n* given as input.\n*\n* VT (input/output) DOUBLE PRECISION array, dimension (LDVT, NCVT)\n* On entry, contains a matrix which on exit has been\n* premultiplied by P', dimension N-by-NCVT if SQRE = 0\n* and (N+1)-by-NCVT if SQRE = 1 (not referenced if NCVT=0).\n*\n* LDVT (input) INTEGER\n* On entry, LDVT specifies the leading dimension of VT as\n* declared in the calling (sub) program. LDVT must be at\n* least 1. If NCVT is nonzero LDVT must also be at least N.\n*\n* U (input/output) DOUBLE PRECISION array, dimension (LDU, N)\n* On entry, contains a matrix which on exit has been\n* postmultiplied by Q, dimension NRU-by-N if SQRE = 0\n* and NRU-by-(N+1) if SQRE = 1 (not referenced if NRU=0).\n*\n* LDU (input) INTEGER\n* On entry, LDU specifies the leading dimension of U as\n* declared in the calling (sub) program. LDU must be at\n* least max( 1, NRU ) .\n*\n* C (input/output) DOUBLE PRECISION array, dimension (LDC, NCC)\n* On entry, contains an N-by-NCC matrix which on exit\n* has been premultiplied by Q' dimension N-by-NCC if SQRE = 0\n* and (N+1)-by-NCC if SQRE = 1 (not referenced if NCC=0).\n*\n* LDC (input) INTEGER\n* On entry, LDC specifies the leading dimension of C as\n* declared in the calling (sub) program. LDC must be at\n* least 1. If NCC is nonzero, LDC must also be at least N.\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (4*N)\n* Workspace. Only referenced if one of NCVT, NRU, or NCC is\n* nonzero, and if N is at least 2.\n*\n* INFO (output) INTEGER\n* On exit, a value of 0 indicates a successful exit.\n* If INFO < 0, argument number -INFO is illegal.\n* If INFO > 0, the algorithm did not converge, and INFO\n* specifies how many superdiagonals did not converge.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Ming Gu and Huan Ren, Computer Science Division, University of\n* California at Berkeley, USA\n*\n* =====================================================================\n*\n\n"); - return Qnil; - } - if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { -diff --git a/ext/dlat2s.c b/ext/dlat2s.c -index 4080eea..8ea5d13 100644 ---- a/ext/dlat2s.c -+++ b/ext/dlat2s.c -@@ -23,7 +23,7 @@ rblapack_dlat2s(int argc, VALUE *argv, VALUE self){ - argc--; - rblapack_options = argv[argc]; - if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { -- printf("%s\n", "USAGE:\n sa, info = NumRu::Lapack.dlat2s( uplo, a, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DLAT2S( UPLO, N, A, LDA, SA, LDSA, INFO )\n\n* Purpose\n* =======\n*\n* DLAT2S converts a DOUBLE PRECISION triangular matrix, SA, to a SINGLE\n* PRECISION triangular matrix, A.\n*\n* RMAX is the overflow for the SINGLE PRECISION arithmetic\n* DLAS2S checks that all the entries of A are between -RMAX and\n* RMAX. If not the convertion is aborted and a flag is raised.\n*\n* This is an auxiliary routine so there is no argument checking.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* = 'U': A is upper triangular;\n* = 'L': A is lower triangular.\n*\n* N (input) INTEGER\n* The number of rows and columns of the matrix A. N >= 0.\n*\n* A (input) DOUBLE PRECISION array, dimension (LDA,N)\n* On entry, the N-by-N triangular coefficient matrix A.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* SA (output) REAL array, dimension (LDSA,N)\n* Only the UPLO part of SA is referenced. On exit, if INFO=0,\n* the N-by-N coefficient matrix SA; if INFO>0, the content of\n* the UPLO part of SA is unspecified.\n*\n* LDSA (input) INTEGER\n* The leading dimension of the array SA. LDSA >= max(1,M).\n*\n* INFO (output) INTEGER\n* = 0: successful exit.\n* = 1: an entry of the matrix A is greater than the SINGLE\n* PRECISION overflow threshold, in this case, the content\n* of the UPLO part of SA in exit is unspecified.\n*\n* =========\n*\n* .. Local Scalars ..\n INTEGER I, J\n DOUBLE PRECISION RMAX\n LOGICAL UPPER\n* ..\n* .. External Functions ..\n REAL SLAMCH\n LOGICAL LSAME\n EXTERNAL SLAMCH, LSAME\n* ..\n\n"); -+ printf("%s\n", "USAGE:\n sa, info = NumRu::Lapack.dlat2s( uplo, a, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DLAT2S( UPLO, N, A, LDA, SA, LDSA, INFO )\n\n* Purpose\n* =======\n*\n* DLAT2S converts a DOUBLE PRECISION triangular matrix, SA, to a SINGLE\n* PRECISION triangular matrix, A.\n*\n* RMAX is the overflow for the SINGLE PRECISION arithmetic\n* DLAS2S checks that all the entries of A are between -RMAX and\n* RMAX. If not the conversion is aborted and a flag is raised.\n*\n* This is an auxiliary routine so there is no argument checking.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* = 'U': A is upper triangular;\n* = 'L': A is lower triangular.\n*\n* N (input) INTEGER\n* The number of rows and columns of the matrix A. N >= 0.\n*\n* A (input) DOUBLE PRECISION array, dimension (LDA,N)\n* On entry, the N-by-N triangular coefficient matrix A.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* SA (output) REAL array, dimension (LDSA,N)\n* Only the UPLO part of SA is referenced. On exit, if INFO=0,\n* the N-by-N coefficient matrix SA; if INFO>0, the content of\n* the UPLO part of SA is unspecified.\n*\n* LDSA (input) INTEGER\n* The leading dimension of the array SA. LDSA >= max(1,M).\n*\n* INFO (output) INTEGER\n* = 0: successful exit.\n* = 1: an entry of the matrix A is greater than the SINGLE\n* PRECISION overflow threshold, in this case, the content\n* of the UPLO part of SA in exit is unspecified.\n*\n* =========\n*\n* .. Local Scalars ..\n INTEGER I, J\n DOUBLE PRECISION RMAX\n LOGICAL UPPER\n* ..\n* .. External Functions ..\n REAL SLAMCH\n LOGICAL LSAME\n EXTERNAL SLAMCH, LSAME\n* ..\n\n"); - return Qnil; - } - if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { -diff --git a/ext/dlatdf.c b/ext/dlatdf.c -index e7e73ed..3abeaa5 100644 ---- a/ext/dlatdf.c -+++ b/ext/dlatdf.c -@@ -30,7 +30,7 @@ rblapack_dlatdf(int argc, VALUE *argv, VALUE self){ - argc--; - rblapack_options = argv[argc]; - if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { -- printf("%s\n", "USAGE:\n rhs, rdsum, rdscal = NumRu::Lapack.dlatdf( ijob, z, rhs, rdsum, rdscal, ipiv, jpiv, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DLATDF( IJOB, N, Z, LDZ, RHS, RDSUM, RDSCAL, IPIV, JPIV )\n\n* Purpose\n* =======\n*\n* DLATDF uses the LU factorization of the n-by-n matrix Z computed by\n* DGETC2 and computes a contribution to the reciprocal Dif-estimate\n* by solving Z * x = b for x, and choosing the r.h.s. b such that\n* the norm of x is as large as possible. On entry RHS = b holds the\n* contribution from earlier solved sub-systems, and on return RHS = x.\n*\n* The factorization of Z returned by DGETC2 has the form Z = P*L*U*Q,\n* where P and Q are permutation matrices. L is lower triangular with\n* unit diagonal elements and U is upper triangular.\n*\n\n* Arguments\n* =========\n*\n* IJOB (input) INTEGER\n* IJOB = 2: First compute an approximative null-vector e\n* of Z using DGECON, e is normalized and solve for\n* Zx = +-e - f with the sign giving the greater value\n* of 2-norm(x). About 5 times as expensive as Default.\n* IJOB .ne. 2: Local look ahead strategy where all entries of\n* the r.h.s. b is choosen as either +1 or -1 (Default).\n*\n* N (input) INTEGER\n* The number of columns of the matrix Z.\n*\n* Z (input) DOUBLE PRECISION array, dimension (LDZ, N)\n* On entry, the LU part of the factorization of the n-by-n\n* matrix Z computed by DGETC2: Z = P * L * U * Q\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDA >= max(1, N).\n*\n* RHS (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, RHS contains contributions from other subsystems.\n* On exit, RHS contains the solution of the subsystem with\n* entries acoording to the value of IJOB (see above).\n*\n* RDSUM (input/output) DOUBLE PRECISION\n* On entry, the sum of squares of computed contributions to\n* the Dif-estimate under computation by DTGSYL, where the\n* scaling factor RDSCAL (see below) has been factored out.\n* On exit, the corresponding sum of squares updated with the\n* contributions from the current sub-system.\n* If TRANS = 'T' RDSUM is not touched.\n* NOTE: RDSUM only makes sense when DTGSY2 is called by STGSYL.\n*\n* RDSCAL (input/output) DOUBLE PRECISION\n* On entry, scaling factor used to prevent overflow in RDSUM.\n* On exit, RDSCAL is updated w.r.t. the current contributions\n* in RDSUM.\n* If TRANS = 'T', RDSCAL is not touched.\n* NOTE: RDSCAL only makes sense when DTGSY2 is called by\n* DTGSYL.\n*\n* IPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= i <= N, row i of the\n* matrix has been interchanged with row IPIV(i).\n*\n* JPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= j <= N, column j of the\n* matrix has been interchanged with column JPIV(j).\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Bo Kagstrom and Peter Poromaa, Department of Computing Science,\n* Umea University, S-901 87 Umea, Sweden.\n*\n* This routine is a further developed implementation of algorithm\n* BSOLVE in [1] using complete pivoting in the LU factorization.\n*\n* [1] Bo Kagstrom and Lars Westin,\n* Generalized Schur Methods with Condition Estimators for\n* Solving the Generalized Sylvester Equation, IEEE Transactions\n* on Automatic Control, Vol. 34, No. 7, July 1989, pp 745-751.\n*\n* [2] Peter Poromaa,\n* On Efficient and Robust Estimators for the Separation\n* between two Regular Matrix Pairs with Applications in\n* Condition Estimation. Report IMINF-95.05, Departement of\n* Computing Science, Umea University, S-901 87 Umea, Sweden, 1995.\n*\n* =====================================================================\n*\n\n"); -+ printf("%s\n", "USAGE:\n rhs, rdsum, rdscal = NumRu::Lapack.dlatdf( ijob, z, rhs, rdsum, rdscal, ipiv, jpiv, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DLATDF( IJOB, N, Z, LDZ, RHS, RDSUM, RDSCAL, IPIV, JPIV )\n\n* Purpose\n* =======\n*\n* DLATDF uses the LU factorization of the n-by-n matrix Z computed by\n* DGETC2 and computes a contribution to the reciprocal Dif-estimate\n* by solving Z * x = b for x, and choosing the r.h.s. b such that\n* the norm of x is as large as possible. On entry RHS = b holds the\n* contribution from earlier solved sub-systems, and on return RHS = x.\n*\n* The factorization of Z returned by DGETC2 has the form Z = P*L*U*Q,\n* where P and Q are permutation matrices. L is lower triangular with\n* unit diagonal elements and U is upper triangular.\n*\n\n* Arguments\n* =========\n*\n* IJOB (input) INTEGER\n* IJOB = 2: First compute an approximative null-vector e\n* of Z using DGECON, e is normalized and solve for\n* Zx = +-e - f with the sign giving the greater value\n* of 2-norm(x). About 5 times as expensive as Default.\n* IJOB .ne. 2: Local look ahead strategy where all entries of\n* the r.h.s. b is chosen as either +1 or -1 (Default).\n*\n* N (input) INTEGER\n* The number of columns of the matrix Z.\n*\n* Z (input) DOUBLE PRECISION array, dimension (LDZ, N)\n* On entry, the LU part of the factorization of the n-by-n\n* matrix Z computed by DGETC2: Z = P * L * U * Q\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDA >= max(1, N).\n*\n* RHS (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, RHS contains contributions from other subsystems.\n* On exit, RHS contains the solution of the subsystem with\n* entries acoording to the value of IJOB (see above).\n*\n* RDSUM (input/output) DOUBLE PRECISION\n* On entry, the sum of squares of computed contributions to\n* the Dif-estimate under computation by DTGSYL, where the\n* scaling factor RDSCAL (see below) has been factored out.\n* On exit, the corresponding sum of squares updated with the\n* contributions from the current sub-system.\n* If TRANS = 'T' RDSUM is not touched.\n* NOTE: RDSUM only makes sense when DTGSY2 is called by STGSYL.\n*\n* RDSCAL (input/output) DOUBLE PRECISION\n* On entry, scaling factor used to prevent overflow in RDSUM.\n* On exit, RDSCAL is updated w.r.t. the current contributions\n* in RDSUM.\n* If TRANS = 'T', RDSCAL is not touched.\n* NOTE: RDSCAL only makes sense when DTGSY2 is called by\n* DTGSYL.\n*\n* IPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= i <= N, row i of the\n* matrix has been interchanged with row IPIV(i).\n*\n* JPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= j <= N, column j of the\n* matrix has been interchanged with column JPIV(j).\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Bo Kagstrom and Peter Poromaa, Department of Computing Science,\n* Umea University, S-901 87 Umea, Sweden.\n*\n* This routine is a further developed implementation of algorithm\n* BSOLVE in [1] using complete pivoting in the LU factorization.\n*\n* [1] Bo Kagstrom and Lars Westin,\n* Generalized Schur Methods with Condition Estimators for\n* Solving the Generalized Sylvester Equation, IEEE Transactions\n* on Automatic Control, Vol. 34, No. 7, July 1989, pp 745-751.\n*\n* [2] Peter Poromaa,\n* On Efficient and Robust Estimators for the Separation\n* between two Regular Matrix Pairs with Applications in\n* Condition Estimation. Report IMINF-95.05, Departement of\n* Computing Science, Umea University, S-901 87 Umea, Sweden, 1995.\n*\n* =====================================================================\n*\n\n"); - return Qnil; - } - if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { -diff --git a/ext/dsgesv.c b/ext/dsgesv.c -index e5876b3..a94c56b 100644 ---- a/ext/dsgesv.c -+++ b/ext/dsgesv.c -@@ -33,7 +33,7 @@ rblapack_dsgesv(int argc, VALUE *argv, VALUE self){ - argc--; - rblapack_options = argv[argc]; - if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { -- printf("%s\n", "USAGE:\n ipiv, x, iter, info, a = NumRu::Lapack.dsgesv( a, b, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DSGESV( N, NRHS, A, LDA, IPIV, B, LDB, X, LDX, WORK, SWORK, ITER, INFO )\n\n* Purpose\n* =======\n*\n* DSGESV computes the solution to a real system of linear equations\n* A * X = B,\n* where A is an N-by-N matrix and X and B are N-by-NRHS matrices.\n*\n* DSGESV first attempts to factorize the matrix in SINGLE PRECISION\n* and use this factorization within an iterative refinement procedure\n* to produce a solution with DOUBLE PRECISION normwise backward error\n* quality (see below). If the approach fails the method switches to a\n* DOUBLE PRECISION factorization and solve.\n*\n* The iterative refinement is not going to be a winning strategy if\n* the ratio SINGLE PRECISION performance over DOUBLE PRECISION\n* performance is too small. A reasonable strategy should take the\n* number of right-hand sides and the size of the matrix into account.\n* This might be done with a call to ILAENV in the future. Up to now, we\n* always try iterative refinement.\n*\n* The iterative refinement process is stopped if\n* ITER > ITERMAX\n* or for all the RHS we have:\n* RNRM < SQRT(N)*XNRM*ANRM*EPS*BWDMAX\n* where\n* o ITER is the number of the current iteration in the iterative\n* refinement process\n* o RNRM is the infinity-norm of the residual\n* o XNRM is the infinity-norm of the solution\n* o ANRM is the infinity-operator-norm of the matrix A\n* o EPS is the machine epsilon returned by DLAMCH('Epsilon')\n* The value ITERMAX and BWDMAX are fixed to 30 and 1.0D+00\n* respectively.\n*\n\n* Arguments\n* =========\n*\n* N (input) INTEGER\n* The number of linear equations, i.e., the order of the\n* matrix A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrix B. NRHS >= 0.\n*\n* A (input/output) DOUBLE PRECISION array,\n* dimension (LDA,N)\n* On entry, the N-by-N coefficient matrix A.\n* On exit, if iterative refinement has been successfully used\n* (INFO.EQ.0 and ITER.GE.0, see description below), then A is\n* unchanged, if double precision factorization has been used\n* (INFO.EQ.0 and ITER.LT.0, see description below), then the\n* array A contains the factors L and U from the factorization\n* A = P*L*U; the unit diagonal elements of L are not stored.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* IPIV (output) INTEGER array, dimension (N)\n* The pivot indices that define the permutation matrix P;\n* row i of the matrix was interchanged with row IPIV(i).\n* Corresponds either to the single precision factorization\n* (if INFO.EQ.0 and ITER.GE.0) or the double precision\n* factorization (if INFO.EQ.0 and ITER.LT.0).\n*\n* B (input) DOUBLE PRECISION array, dimension (LDB,NRHS)\n* The N-by-NRHS right hand side matrix B.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,N).\n*\n* X (output) DOUBLE PRECISION array, dimension (LDX,NRHS)\n* If INFO = 0, the N-by-NRHS solution matrix X.\n*\n* LDX (input) INTEGER\n* The leading dimension of the array X. LDX >= max(1,N).\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (N,NRHS)\n* This array is used to hold the residual vectors.\n*\n* SWORK (workspace) REAL array, dimension (N*(N+NRHS))\n* This array is used to use the single precision matrix and the\n* right-hand sides or solutions in single precision.\n*\n* ITER (output) INTEGER\n* < 0: iterative refinement has failed, double precision\n* factorization has been performed\n* -1 : the routine fell back to full precision for\n* implementation- or machine-specific reasons\n* -2 : narrowing the precision induced an overflow,\n* the routine fell back to full precision\n* -3 : failure of SGETRF\n* -31: stop the iterative refinement after the 30th\n* iterations\n* > 0: iterative refinement has been sucessfully used.\n* Returns the number of iterations\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = i, U(i,i) computed in DOUBLE PRECISION is\n* exactly zero. The factorization has been completed,\n* but the factor U is exactly singular, so the solution\n* could not be computed.\n*\n* =========\n*\n\n"); -+ printf("%s\n", "USAGE:\n ipiv, x, iter, info, a = NumRu::Lapack.dsgesv( a, b, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DSGESV( N, NRHS, A, LDA, IPIV, B, LDB, X, LDX, WORK, SWORK, ITER, INFO )\n\n* Purpose\n* =======\n*\n* DSGESV computes the solution to a real system of linear equations\n* A * X = B,\n* where A is an N-by-N matrix and X and B are N-by-NRHS matrices.\n*\n* DSGESV first attempts to factorize the matrix in SINGLE PRECISION\n* and use this factorization within an iterative refinement procedure\n* to produce a solution with DOUBLE PRECISION normwise backward error\n* quality (see below). If the approach fails the method switches to a\n* DOUBLE PRECISION factorization and solve.\n*\n* The iterative refinement is not going to be a winning strategy if\n* the ratio SINGLE PRECISION performance over DOUBLE PRECISION\n* performance is too small. A reasonable strategy should take the\n* number of right-hand sides and the size of the matrix into account.\n* This might be done with a call to ILAENV in the future. Up to now, we\n* always try iterative refinement.\n*\n* The iterative refinement process is stopped if\n* ITER > ITERMAX\n* or for all the RHS we have:\n* RNRM < SQRT(N)*XNRM*ANRM*EPS*BWDMAX\n* where\n* o ITER is the number of the current iteration in the iterative\n* refinement process\n* o RNRM is the infinity-norm of the residual\n* o XNRM is the infinity-norm of the solution\n* o ANRM is the infinity-operator-norm of the matrix A\n* o EPS is the machine epsilon returned by DLAMCH('Epsilon')\n* The value ITERMAX and BWDMAX are fixed to 30 and 1.0D+00\n* respectively.\n*\n\n* Arguments\n* =========\n*\n* N (input) INTEGER\n* The number of linear equations, i.e., the order of the\n* matrix A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrix B. NRHS >= 0.\n*\n* A (input/output) DOUBLE PRECISION array,\n* dimension (LDA,N)\n* On entry, the N-by-N coefficient matrix A.\n* On exit, if iterative refinement has been successfully used\n* (INFO.EQ.0 and ITER.GE.0, see description below), then A is\n* unchanged, if double precision factorization has been used\n* (INFO.EQ.0 and ITER.LT.0, see description below), then the\n* array A contains the factors L and U from the factorization\n* A = P*L*U; the unit diagonal elements of L are not stored.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* IPIV (output) INTEGER array, dimension (N)\n* The pivot indices that define the permutation matrix P;\n* row i of the matrix was interchanged with row IPIV(i).\n* Corresponds either to the single precision factorization\n* (if INFO.EQ.0 and ITER.GE.0) or the double precision\n* factorization (if INFO.EQ.0 and ITER.LT.0).\n*\n* B (input) DOUBLE PRECISION array, dimension (LDB,NRHS)\n* The N-by-NRHS right hand side matrix B.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,N).\n*\n* X (output) DOUBLE PRECISION array, dimension (LDX,NRHS)\n* If INFO = 0, the N-by-NRHS solution matrix X.\n*\n* LDX (input) INTEGER\n* The leading dimension of the array X. LDX >= max(1,N).\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (N,NRHS)\n* This array is used to hold the residual vectors.\n*\n* SWORK (workspace) REAL array, dimension (N*(N+NRHS))\n* This array is used to use the single precision matrix and the\n* right-hand sides or solutions in single precision.\n*\n* ITER (output) INTEGER\n* < 0: iterative refinement has failed, double precision\n* factorization has been performed\n* -1 : the routine fell back to full precision for\n* implementation- or machine-specific reasons\n* -2 : narrowing the precision induced an overflow,\n* the routine fell back to full precision\n* -3 : failure of SGETRF\n* -31: stop the iterative refinement after the 30th\n* iterations\n* > 0: iterative refinement has been successfully used.\n* Returns the number of iterations\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = i, U(i,i) computed in DOUBLE PRECISION is\n* exactly zero. The factorization has been completed,\n* but the factor U is exactly singular, so the solution\n* could not be computed.\n*\n* =========\n*\n\n"); - return Qnil; - } - if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { -diff --git a/ext/dsposv.c b/ext/dsposv.c -index 14b0baf..17c2fe0 100644 ---- a/ext/dsposv.c -+++ b/ext/dsposv.c -@@ -33,7 +33,7 @@ rblapack_dsposv(int argc, VALUE *argv, VALUE self){ - argc--; - rblapack_options = argv[argc]; - if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { -- printf("%s\n", "USAGE:\n x, iter, info, a = NumRu::Lapack.dsposv( uplo, a, b, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DSPOSV( UPLO, N, NRHS, A, LDA, B, LDB, X, LDX, WORK, SWORK, ITER, INFO )\n\n* Purpose\n* =======\n*\n* DSPOSV computes the solution to a real system of linear equations\n* A * X = B,\n* where A is an N-by-N symmetric positive definite matrix and X and B\n* are N-by-NRHS matrices.\n*\n* DSPOSV first attempts to factorize the matrix in SINGLE PRECISION\n* and use this factorization within an iterative refinement procedure\n* to produce a solution with DOUBLE PRECISION normwise backward error\n* quality (see below). If the approach fails the method switches to a\n* DOUBLE PRECISION factorization and solve.\n*\n* The iterative refinement is not going to be a winning strategy if\n* the ratio SINGLE PRECISION performance over DOUBLE PRECISION\n* performance is too small. A reasonable strategy should take the\n* number of right-hand sides and the size of the matrix into account.\n* This might be done with a call to ILAENV in the future. Up to now, we\n* always try iterative refinement.\n*\n* The iterative refinement process is stopped if\n* ITER > ITERMAX\n* or for all the RHS we have:\n* RNRM < SQRT(N)*XNRM*ANRM*EPS*BWDMAX\n* where\n* o ITER is the number of the current iteration in the iterative\n* refinement process\n* o RNRM is the infinity-norm of the residual\n* o XNRM is the infinity-norm of the solution\n* o ANRM is the infinity-operator-norm of the matrix A\n* o EPS is the machine epsilon returned by DLAMCH('Epsilon')\n* The value ITERMAX and BWDMAX are fixed to 30 and 1.0D+00\n* respectively.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* = 'U': Upper triangle of A is stored;\n* = 'L': Lower triangle of A is stored.\n*\n* N (input) INTEGER\n* The number of linear equations, i.e., the order of the\n* matrix A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrix B. NRHS >= 0.\n*\n* A (input/output) DOUBLE PRECISION array,\n* dimension (LDA,N)\n* On entry, the symmetric matrix A. If UPLO = 'U', the leading\n* N-by-N upper triangular part of A contains the upper\n* triangular part of the matrix A, and the strictly lower\n* triangular part of A is not referenced. If UPLO = 'L', the\n* leading N-by-N lower triangular part of A contains the lower\n* triangular part of the matrix A, and the strictly upper\n* triangular part of A is not referenced.\n* On exit, if iterative refinement has been successfully used\n* (INFO.EQ.0 and ITER.GE.0, see description below), then A is\n* unchanged, if double precision factorization has been used\n* (INFO.EQ.0 and ITER.LT.0, see description below), then the\n* array A contains the factor U or L from the Cholesky\n* factorization A = U**T*U or A = L*L**T.\n*\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* B (input) DOUBLE PRECISION array, dimension (LDB,NRHS)\n* The N-by-NRHS right hand side matrix B.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,N).\n*\n* X (output) DOUBLE PRECISION array, dimension (LDX,NRHS)\n* If INFO = 0, the N-by-NRHS solution matrix X.\n*\n* LDX (input) INTEGER\n* The leading dimension of the array X. LDX >= max(1,N).\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (N,NRHS)\n* This array is used to hold the residual vectors.\n*\n* SWORK (workspace) REAL array, dimension (N*(N+NRHS))\n* This array is used to use the single precision matrix and the\n* right-hand sides or solutions in single precision.\n*\n* ITER (output) INTEGER\n* < 0: iterative refinement has failed, double precision\n* factorization has been performed\n* -1 : the routine fell back to full precision for\n* implementation- or machine-specific reasons\n* -2 : narrowing the precision induced an overflow,\n* the routine fell back to full precision\n* -3 : failure of SPOTRF\n* -31: stop the iterative refinement after the 30th\n* iterations\n* > 0: iterative refinement has been sucessfully used.\n* Returns the number of iterations\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = i, the leading minor of order i of (DOUBLE\n* PRECISION) A is not positive definite, so the\n* factorization could not be completed, and the solution\n* has not been computed.\n*\n* =========\n*\n\n"); -+ printf("%s\n", "USAGE:\n x, iter, info, a = NumRu::Lapack.dsposv( uplo, a, b, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DSPOSV( UPLO, N, NRHS, A, LDA, B, LDB, X, LDX, WORK, SWORK, ITER, INFO )\n\n* Purpose\n* =======\n*\n* DSPOSV computes the solution to a real system of linear equations\n* A * X = B,\n* where A is an N-by-N symmetric positive definite matrix and X and B\n* are N-by-NRHS matrices.\n*\n* DSPOSV first attempts to factorize the matrix in SINGLE PRECISION\n* and use this factorization within an iterative refinement procedure\n* to produce a solution with DOUBLE PRECISION normwise backward error\n* quality (see below). If the approach fails the method switches to a\n* DOUBLE PRECISION factorization and solve.\n*\n* The iterative refinement is not going to be a winning strategy if\n* the ratio SINGLE PRECISION performance over DOUBLE PRECISION\n* performance is too small. A reasonable strategy should take the\n* number of right-hand sides and the size of the matrix into account.\n* This might be done with a call to ILAENV in the future. Up to now, we\n* always try iterative refinement.\n*\n* The iterative refinement process is stopped if\n* ITER > ITERMAX\n* or for all the RHS we have:\n* RNRM < SQRT(N)*XNRM*ANRM*EPS*BWDMAX\n* where\n* o ITER is the number of the current iteration in the iterative\n* refinement process\n* o RNRM is the infinity-norm of the residual\n* o XNRM is the infinity-norm of the solution\n* o ANRM is the infinity-operator-norm of the matrix A\n* o EPS is the machine epsilon returned by DLAMCH('Epsilon')\n* The value ITERMAX and BWDMAX are fixed to 30 and 1.0D+00\n* respectively.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* = 'U': Upper triangle of A is stored;\n* = 'L': Lower triangle of A is stored.\n*\n* N (input) INTEGER\n* The number of linear equations, i.e., the order of the\n* matrix A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrix B. NRHS >= 0.\n*\n* A (input/output) DOUBLE PRECISION array,\n* dimension (LDA,N)\n* On entry, the symmetric matrix A. If UPLO = 'U', the leading\n* N-by-N upper triangular part of A contains the upper\n* triangular part of the matrix A, and the strictly lower\n* triangular part of A is not referenced. If UPLO = 'L', the\n* leading N-by-N lower triangular part of A contains the lower\n* triangular part of the matrix A, and the strictly upper\n* triangular part of A is not referenced.\n* On exit, if iterative refinement has been successfully used\n* (INFO.EQ.0 and ITER.GE.0, see description below), then A is\n* unchanged, if double precision factorization has been used\n* (INFO.EQ.0 and ITER.LT.0, see description below), then the\n* array A contains the factor U or L from the Cholesky\n* factorization A = U**T*U or A = L*L**T.\n*\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* B (input) DOUBLE PRECISION array, dimension (LDB,NRHS)\n* The N-by-NRHS right hand side matrix B.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,N).\n*\n* X (output) DOUBLE PRECISION array, dimension (LDX,NRHS)\n* If INFO = 0, the N-by-NRHS solution matrix X.\n*\n* LDX (input) INTEGER\n* The leading dimension of the array X. LDX >= max(1,N).\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (N,NRHS)\n* This array is used to hold the residual vectors.\n*\n* SWORK (workspace) REAL array, dimension (N*(N+NRHS))\n* This array is used to use the single precision matrix and the\n* right-hand sides or solutions in single precision.\n*\n* ITER (output) INTEGER\n* < 0: iterative refinement has failed, double precision\n* factorization has been performed\n* -1 : the routine fell back to full precision for\n* implementation- or machine-specific reasons\n* -2 : narrowing the precision induced an overflow,\n* the routine fell back to full precision\n* -3 : failure of SPOTRF\n* -31: stop the iterative refinement after the 30th\n* iterations\n* > 0: iterative refinement has been successfully used.\n* Returns the number of iterations\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = i, the leading minor of order i of (DOUBLE\n* PRECISION) A is not positive definite, so the\n* factorization could not be completed, and the solution\n* has not been computed.\n*\n* =========\n*\n\n"); - return Qnil; - } - if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { -diff --git a/ext/dstegr.c b/ext/dstegr.c -index 6aef85a..bcbee32 100644 ---- a/ext/dstegr.c -+++ b/ext/dstegr.c -@@ -54,7 +54,7 @@ rblapack_dstegr(int argc, VALUE *argv, VALUE self){ - argc--; - rblapack_options = argv[argc]; - if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { -- printf("%s\n", "USAGE:\n m, w, z, isuppz, work, iwork, info, d, e = NumRu::Lapack.dstegr( jobz, range, d, e, vl, vu, il, iu, abstol, [:lwork => lwork, :liwork => liwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DSTEGR( JOBZ, RANGE, N, D, E, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK, IWORK, LIWORK, INFO )\n\n* Purpose\n* =======\n*\n* DSTEGR computes selected eigenvalues and, optionally, eigenvectors\n* of a real symmetric tridiagonal matrix T. Any such unreduced matrix has\n* a well defined set of pairwise different real eigenvalues, the corresponding\n* real eigenvectors are pairwise orthogonal.\n*\n* The spectrum may be computed either completely or partially by specifying\n* either an interval (VL,VU] or a range of indices IL:IU for the desired\n* eigenvalues.\n*\n* DSTEGR is a compatability wrapper around the improved DSTEMR routine.\n* See DSTEMR for further details.\n*\n* One important change is that the ABSTOL parameter no longer provides any\n* benefit and hence is no longer used.\n*\n* Note : DSTEGR and DSTEMR work only on machines which follow\n* IEEE-754 floating-point standard in their handling of infinities and\n* NaNs. Normal execution may create these exceptiona values and hence\n* may abort due to a floating point exception in environments which\n* do not conform to the IEEE-754 standard.\n*\n\n* Arguments\n* =========\n*\n* JOBZ (input) CHARACTER*1\n* = 'N': Compute eigenvalues only;\n* = 'V': Compute eigenvalues and eigenvectors.\n*\n* RANGE (input) CHARACTER*1\n* = 'A': all eigenvalues will be found.\n* = 'V': all eigenvalues in the half-open interval (VL,VU]\n* will be found.\n* = 'I': the IL-th through IU-th eigenvalues will be found.\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* D (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the N diagonal elements of the tridiagonal matrix\n* T. On exit, D is overwritten.\n*\n* E (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the tridiagonal\n* matrix T in elements 1 to N-1 of E. E(N) need not be set on\n* input, but is used internally as workspace.\n* On exit, E is overwritten.\n*\n* VL (input) DOUBLE PRECISION\n* VU (input) DOUBLE PRECISION\n* If RANGE='V', the lower and upper bounds of the interval to\n* be searched for eigenvalues. VL < VU.\n* Not referenced if RANGE = 'A' or 'I'.\n*\n* IL (input) INTEGER\n* IU (input) INTEGER\n* If RANGE='I', the indices (in ascending order) of the\n* smallest and largest eigenvalues to be returned.\n* 1 <= IL <= IU <= N, if N > 0.\n* Not referenced if RANGE = 'A' or 'V'.\n*\n* ABSTOL (input) DOUBLE PRECISION\n* Unused. Was the absolute error tolerance for the\n* eigenvalues/eigenvectors in previous versions.\n*\n* M (output) INTEGER\n* The total number of eigenvalues found. 0 <= M <= N.\n* If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1.\n*\n* W (output) DOUBLE PRECISION array, dimension (N)\n* The first M elements contain the selected eigenvalues in\n* ascending order.\n*\n* Z (output) DOUBLE PRECISION array, dimension (LDZ, max(1,M) )\n* If JOBZ = 'V', and if INFO = 0, then the first M columns of Z\n* contain the orthonormal eigenvectors of the matrix T\n* corresponding to the selected eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* If JOBZ = 'N', then Z is not referenced.\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z; if RANGE = 'V', the exact value of M\n* is not known in advance and an upper bound must be used.\n* Supplying N columns is always safe.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', then LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER ARRAY, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The i-th computed eigenvector\n* is nonzero only in elements ISUPPZ( 2*i-1 ) through\n* ISUPPZ( 2*i ). This is relevant in the case when the matrix\n* is split. ISUPPZ is only accessed when JOBZ is 'V' and N > 0.\n*\n* WORK (workspace/output) DOUBLE PRECISION array, dimension (LWORK)\n* On exit, if INFO = 0, WORK(1) returns the optimal\n* (and minimal) LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK >= max(1,18*N)\n* if JOBZ = 'V', and LWORK >= max(1,12*N) if JOBZ = 'N'.\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the WORK array, returns\n* this value as the first entry of the WORK array, and no error\n* message related to LWORK is issued by XERBLA.\n*\n* IWORK (workspace/output) INTEGER array, dimension (LIWORK)\n* On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.\n*\n* LIWORK (input) INTEGER\n* The dimension of the array IWORK. LIWORK >= max(1,10*N)\n* if the eigenvectors are desired, and LIWORK >= max(1,8*N)\n* if only the eigenvalues are to be computed.\n* If LIWORK = -1, then a workspace query is assumed; the\n* routine only calculates the optimal size of the IWORK array,\n* returns this value as the first entry of the IWORK array, and\n* no error message related to LIWORK is issued by XERBLA.\n*\n* INFO (output) INTEGER\n* On exit, INFO\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = 1X, internal error in DLARRE,\n* if INFO = 2X, internal error in DLARRV.\n* Here, the digit X = ABS( IINFO ) < 10, where IINFO is\n* the nonzero error code returned by DLARRE or\n* DLARRV, respectively.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Inderjit Dhillon, IBM Almaden, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n* .. Local Scalars ..\n LOGICAL TRYRAC\n* ..\n* .. External Subroutines ..\n EXTERNAL DSTEMR\n* ..\n\n"); -+ printf("%s\n", "USAGE:\n m, w, z, isuppz, work, iwork, info, d, e = NumRu::Lapack.dstegr( jobz, range, d, e, vl, vu, il, iu, abstol, [:lwork => lwork, :liwork => liwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DSTEGR( JOBZ, RANGE, N, D, E, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK, IWORK, LIWORK, INFO )\n\n* Purpose\n* =======\n*\n* DSTEGR computes selected eigenvalues and, optionally, eigenvectors\n* of a real symmetric tridiagonal matrix T. Any such unreduced matrix has\n* a well defined set of pairwise different real eigenvalues, the corresponding\n* real eigenvectors are pairwise orthogonal.\n*\n* The spectrum may be computed either completely or partially by specifying\n* either an interval (VL,VU] or a range of indices IL:IU for the desired\n* eigenvalues.\n*\n* DSTEGR is a compatibility wrapper around the improved DSTEMR routine.\n* See DSTEMR for further details.\n*\n* One important change is that the ABSTOL parameter no longer provides any\n* benefit and hence is no longer used.\n*\n* Note : DSTEGR and DSTEMR work only on machines which follow\n* IEEE-754 floating-point standard in their handling of infinities and\n* NaNs. Normal execution may create these exceptiona values and hence\n* may abort due to a floating point exception in environments which\n* do not conform to the IEEE-754 standard.\n*\n\n* Arguments\n* =========\n*\n* JOBZ (input) CHARACTER*1\n* = 'N': Compute eigenvalues only;\n* = 'V': Compute eigenvalues and eigenvectors.\n*\n* RANGE (input) CHARACTER*1\n* = 'A': all eigenvalues will be found.\n* = 'V': all eigenvalues in the half-open interval (VL,VU]\n* will be found.\n* = 'I': the IL-th through IU-th eigenvalues will be found.\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* D (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the N diagonal elements of the tridiagonal matrix\n* T. On exit, D is overwritten.\n*\n* E (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the tridiagonal\n* matrix T in elements 1 to N-1 of E. E(N) need not be set on\n* input, but is used internally as workspace.\n* On exit, E is overwritten.\n*\n* VL (input) DOUBLE PRECISION\n* VU (input) DOUBLE PRECISION\n* If RANGE='V', the lower and upper bounds of the interval to\n* be searched for eigenvalues. VL < VU.\n* Not referenced if RANGE = 'A' or 'I'.\n*\n* IL (input) INTEGER\n* IU (input) INTEGER\n* If RANGE='I', the indices (in ascending order) of the\n* smallest and largest eigenvalues to be returned.\n* 1 <= IL <= IU <= N, if N > 0.\n* Not referenced if RANGE = 'A' or 'V'.\n*\n* ABSTOL (input) DOUBLE PRECISION\n* Unused. Was the absolute error tolerance for the\n* eigenvalues/eigenvectors in previous versions.\n*\n* M (output) INTEGER\n* The total number of eigenvalues found. 0 <= M <= N.\n* If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1.\n*\n* W (output) DOUBLE PRECISION array, dimension (N)\n* The first M elements contain the selected eigenvalues in\n* ascending order.\n*\n* Z (output) DOUBLE PRECISION array, dimension (LDZ, max(1,M) )\n* If JOBZ = 'V', and if INFO = 0, then the first M columns of Z\n* contain the orthonormal eigenvectors of the matrix T\n* corresponding to the selected eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* If JOBZ = 'N', then Z is not referenced.\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z; if RANGE = 'V', the exact value of M\n* is not known in advance and an upper bound must be used.\n* Supplying N columns is always safe.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', then LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER ARRAY, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The i-th computed eigenvector\n* is nonzero only in elements ISUPPZ( 2*i-1 ) through\n* ISUPPZ( 2*i ). This is relevant in the case when the matrix\n* is split. ISUPPZ is only accessed when JOBZ is 'V' and N > 0.\n*\n* WORK (workspace/output) DOUBLE PRECISION array, dimension (LWORK)\n* On exit, if INFO = 0, WORK(1) returns the optimal\n* (and minimal) LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK >= max(1,18*N)\n* if JOBZ = 'V', and LWORK >= max(1,12*N) if JOBZ = 'N'.\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the WORK array, returns\n* this value as the first entry of the WORK array, and no error\n* message related to LWORK is issued by XERBLA.\n*\n* IWORK (workspace/output) INTEGER array, dimension (LIWORK)\n* On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.\n*\n* LIWORK (input) INTEGER\n* The dimension of the array IWORK. LIWORK >= max(1,10*N)\n* if the eigenvectors are desired, and LIWORK >= max(1,8*N)\n* if only the eigenvalues are to be computed.\n* If LIWORK = -1, then a workspace query is assumed; the\n* routine only calculates the optimal size of the IWORK array,\n* returns this value as the first entry of the IWORK array, and\n* no error message related to LIWORK is issued by XERBLA.\n*\n* INFO (output) INTEGER\n* On exit, INFO\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = 1X, internal error in DLARRE,\n* if INFO = 2X, internal error in DLARRV.\n* Here, the digit X = ABS( IINFO ) < 10, where IINFO is\n* the nonzero error code returned by DLARRE or\n* DLARRV, respectively.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Inderjit Dhillon, IBM Almaden, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n* .. Local Scalars ..\n LOGICAL TRYRAC\n* ..\n* .. External Subroutines ..\n EXTERNAL DSTEMR\n* ..\n\n"); - return Qnil; - } - if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { -diff --git a/ext/sgelsd.c b/ext/sgelsd.c -index 016bbfd..2f70c90 100644 ---- a/ext/sgelsd.c -+++ b/ext/sgelsd.c -@@ -41,7 +41,7 @@ rblapack_sgelsd(int argc, VALUE *argv, VALUE self){ - argc--; - rblapack_options = argv[argc]; - if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { -- printf("%s\n", "USAGE:\n s, rank, work, info, b = NumRu::Lapack.sgelsd( a, b, rcond, [:lwork => lwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SGELSD( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK, WORK, LWORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* SGELSD computes the minimum-norm solution to a real linear least\n* squares problem:\n* minimize 2-norm(| b - A*x |)\n* using the singular value decomposition (SVD) of A. A is an M-by-N\n* matrix which may be rank-deficient.\n*\n* Several right hand side vectors b and solution vectors x can be\n* handled in a single call; they are stored as the columns of the\n* M-by-NRHS right hand side matrix B and the N-by-NRHS solution\n* matrix X.\n*\n* The problem is solved in three steps:\n* (1) Reduce the coefficient matrix A to bidiagonal form with\n* Householder transformations, reducing the original problem\n* into a \"bidiagonal least squares problem\" (BLS)\n* (2) Solve the BLS using a divide and conquer approach.\n* (3) Apply back all the Householder tranformations to solve\n* the original least squares problem.\n*\n* The effective rank of A is determined by treating as zero those\n* singular values which are less than RCOND times the largest singular\n* value.\n*\n* The divide and conquer algorithm makes very mild assumptions about\n* floating point arithmetic. It will work on machines with a guard\n* digit in add/subtract, or on those binary machines without guard\n* digits which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or\n* Cray-2. It could conceivably fail on hexadecimal or decimal machines\n* without guard digits, but we know of none.\n*\n\n* Arguments\n* =========\n*\n* M (input) INTEGER\n* The number of rows of A. M >= 0.\n*\n* N (input) INTEGER\n* The number of columns of A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrices B and X. NRHS >= 0.\n*\n* A (input) REAL array, dimension (LDA,N)\n* On entry, the M-by-N matrix A.\n* On exit, A has been destroyed.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* B (input/output) REAL array, dimension (LDB,NRHS)\n* On entry, the M-by-NRHS right hand side matrix B.\n* On exit, B is overwritten by the N-by-NRHS solution\n* matrix X. If m >= n and RANK = n, the residual\n* sum-of-squares for the solution in the i-th column is given\n* by the sum of squares of elements n+1:m in that column.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,max(M,N)).\n*\n* S (output) REAL array, dimension (min(M,N))\n* The singular values of A in decreasing order.\n* The condition number of A in the 2-norm = S(1)/S(min(m,n)).\n*\n* RCOND (input) REAL\n* RCOND is used to determine the effective rank of A.\n* Singular values S(i) <= RCOND*S(1) are treated as zero.\n* If RCOND < 0, machine precision is used instead.\n*\n* RANK (output) INTEGER\n* The effective rank of A, i.e., the number of singular values\n* which are greater than RCOND*S(1).\n*\n* WORK (workspace/output) REAL array, dimension (MAX(1,LWORK))\n* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK must be at least 1.\n* The exact minimum amount of workspace needed depends on M,\n* N and NRHS. As long as LWORK is at least\n* 12*N + 2*N*SMLSIZ + 8*N*NLVL + N*NRHS + (SMLSIZ+1)**2,\n* if M is greater than or equal to N or\n* 12*M + 2*M*SMLSIZ + 8*M*NLVL + M*NRHS + (SMLSIZ+1)**2,\n* if M is less than N, the code will execute correctly.\n* SMLSIZ is returned by ILAENV and is equal to the maximum\n* size of the subproblems at the bottom of the computation\n* tree (usually about 25), and\n* NLVL = MAX( 0, INT( LOG_2( MIN( M,N )/(SMLSIZ+1) ) ) + 1 )\n* For good performance, LWORK should generally be larger.\n*\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the array WORK and the\n* minimum size of the array IWORK, and returns these values as\n* the first entries of the WORK and IWORK arrays, and no error\n* message related to LWORK is issued by XERBLA.\n*\n* IWORK (workspace) INTEGER array, dimension (MAX(1,LIWORK))\n* LIWORK >= max(1, 3*MINMN*NLVL + 11*MINMN),\n* where MINMN = MIN( M,N ).\n* On exit, if INFO = 0, IWORK(1) returns the minimum LIWORK.\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value.\n* > 0: the algorithm for computing the SVD failed to converge;\n* if INFO = i, i off-diagonal elements of an intermediate\n* bidiagonal form did not converge to zero.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Ming Gu and Ren-Cang Li, Computer Science Division, University of\n* California at Berkeley, USA\n* Osni Marques, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n\n"); -+ printf("%s\n", "USAGE:\n s, rank, work, info, b = NumRu::Lapack.sgelsd( a, b, rcond, [:lwork => lwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SGELSD( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK, WORK, LWORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* SGELSD computes the minimum-norm solution to a real linear least\n* squares problem:\n* minimize 2-norm(| b - A*x |)\n* using the singular value decomposition (SVD) of A. A is an M-by-N\n* matrix which may be rank-deficient.\n*\n* Several right hand side vectors b and solution vectors x can be\n* handled in a single call; they are stored as the columns of the\n* M-by-NRHS right hand side matrix B and the N-by-NRHS solution\n* matrix X.\n*\n* The problem is solved in three steps:\n* (1) Reduce the coefficient matrix A to bidiagonal form with\n* Householder transformations, reducing the original problem\n* into a \"bidiagonal least squares problem\" (BLS)\n* (2) Solve the BLS using a divide and conquer approach.\n* (3) Apply back all the Householder transformations to solve\n* the original least squares problem.\n*\n* The effective rank of A is determined by treating as zero those\n* singular values which are less than RCOND times the largest singular\n* value.\n*\n* The divide and conquer algorithm makes very mild assumptions about\n* floating point arithmetic. It will work on machines with a guard\n* digit in add/subtract, or on those binary machines without guard\n* digits which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or\n* Cray-2. It could conceivably fail on hexadecimal or decimal machines\n* without guard digits, but we know of none.\n*\n\n* Arguments\n* =========\n*\n* M (input) INTEGER\n* The number of rows of A. M >= 0.\n*\n* N (input) INTEGER\n* The number of columns of A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrices B and X. NRHS >= 0.\n*\n* A (input) REAL array, dimension (LDA,N)\n* On entry, the M-by-N matrix A.\n* On exit, A has been destroyed.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* B (input/output) REAL array, dimension (LDB,NRHS)\n* On entry, the M-by-NRHS right hand side matrix B.\n* On exit, B is overwritten by the N-by-NRHS solution\n* matrix X. If m >= n and RANK = n, the residual\n* sum-of-squares for the solution in the i-th column is given\n* by the sum of squares of elements n+1:m in that column.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,max(M,N)).\n*\n* S (output) REAL array, dimension (min(M,N))\n* The singular values of A in decreasing order.\n* The condition number of A in the 2-norm = S(1)/S(min(m,n)).\n*\n* RCOND (input) REAL\n* RCOND is used to determine the effective rank of A.\n* Singular values S(i) <= RCOND*S(1) are treated as zero.\n* If RCOND < 0, machine precision is used instead.\n*\n* RANK (output) INTEGER\n* The effective rank of A, i.e., the number of singular values\n* which are greater than RCOND*S(1).\n*\n* WORK (workspace/output) REAL array, dimension (MAX(1,LWORK))\n* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK must be at least 1.\n* The exact minimum amount of workspace needed depends on M,\n* N and NRHS. As long as LWORK is at least\n* 12*N + 2*N*SMLSIZ + 8*N*NLVL + N*NRHS + (SMLSIZ+1)**2,\n* if M is greater than or equal to N or\n* 12*M + 2*M*SMLSIZ + 8*M*NLVL + M*NRHS + (SMLSIZ+1)**2,\n* if M is less than N, the code will execute correctly.\n* SMLSIZ is returned by ILAENV and is equal to the maximum\n* size of the subproblems at the bottom of the computation\n* tree (usually about 25), and\n* NLVL = MAX( 0, INT( LOG_2( MIN( M,N )/(SMLSIZ+1) ) ) + 1 )\n* For good performance, LWORK should generally be larger.\n*\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the array WORK and the\n* minimum size of the array IWORK, and returns these values as\n* the first entries of the WORK and IWORK arrays, and no error\n* message related to LWORK is issued by XERBLA.\n*\n* IWORK (workspace) INTEGER array, dimension (MAX(1,LIWORK))\n* LIWORK >= max(1, 3*MINMN*NLVL + 11*MINMN),\n* where MINMN = MIN( M,N ).\n* On exit, if INFO = 0, IWORK(1) returns the minimum LIWORK.\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value.\n* > 0: the algorithm for computing the SVD failed to converge;\n* if INFO = i, i off-diagonal elements of an intermediate\n* bidiagonal form did not converge to zero.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Ming Gu and Ren-Cang Li, Computer Science Division, University of\n* California at Berkeley, USA\n* Osni Marques, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n\n"); - return Qnil; - } - if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { -diff --git a/ext/slamrg.c b/ext/slamrg.c -index 742f244..92290ea 100644 ---- a/ext/slamrg.c -+++ b/ext/slamrg.c -@@ -24,7 +24,7 @@ rblapack_slamrg(int argc, VALUE *argv, VALUE self){ - argc--; - rblapack_options = argv[argc]; - if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { -- printf("%s\n", "USAGE:\n index = NumRu::Lapack.slamrg( n1, n2, a, strd1, strd2, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SLAMRG( N1, N2, A, STRD1, STRD2, INDEX )\n\n* Purpose\n* =======\n*\n* SLAMRG will create a permutation list which will merge the elements\n* of A (which is composed of two independently sorted sets) into a\n* single set which is sorted in ascending order.\n*\n\n* Arguments\n* =========\n*\n* N1 (input) INTEGER\n* N2 (input) INTEGER\n* These arguements contain the respective lengths of the two\n* sorted lists to be merged.\n*\n* A (input) REAL array, dimension (N1+N2)\n* The first N1 elements of A contain a list of numbers which\n* are sorted in either ascending or descending order. Likewise\n* for the final N2 elements.\n*\n* STRD1 (input) INTEGER\n* STRD2 (input) INTEGER\n* These are the strides to be taken through the array A.\n* Allowable strides are 1 and -1. They indicate whether a\n* subset of A is sorted in ascending (STRDx = 1) or descending\n* (STRDx = -1) order.\n*\n* INDEX (output) INTEGER array, dimension (N1+N2)\n* On exit this array will contain a permutation such that\n* if B( I ) = A( INDEX( I ) ) for I=1,N1+N2, then B will be\n* sorted in ascending order.\n*\n\n* =====================================================================\n*\n* .. Local Scalars ..\n INTEGER I, IND1, IND2, N1SV, N2SV\n* ..\n\n"); -+ printf("%s\n", "USAGE:\n index = NumRu::Lapack.slamrg( n1, n2, a, strd1, strd2, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SLAMRG( N1, N2, A, STRD1, STRD2, INDEX )\n\n* Purpose\n* =======\n*\n* SLAMRG will create a permutation list which will merge the elements\n* of A (which is composed of two independently sorted sets) into a\n* single set which is sorted in ascending order.\n*\n\n* Arguments\n* =========\n*\n* N1 (input) INTEGER\n* N2 (input) INTEGER\n* These arguments contain the respective lengths of the two\n* sorted lists to be merged.\n*\n* A (input) REAL array, dimension (N1+N2)\n* The first N1 elements of A contain a list of numbers which\n* are sorted in either ascending or descending order. Likewise\n* for the final N2 elements.\n*\n* STRD1 (input) INTEGER\n* STRD2 (input) INTEGER\n* These are the strides to be taken through the array A.\n* Allowable strides are 1 and -1. They indicate whether a\n* subset of A is sorted in ascending (STRDx = 1) or descending\n* (STRDx = -1) order.\n*\n* INDEX (output) INTEGER array, dimension (N1+N2)\n* On exit this array will contain a permutation such that\n* if B( I ) = A( INDEX( I ) ) for I=1,N1+N2, then B will be\n* sorted in ascending order.\n*\n\n* =====================================================================\n*\n* .. Local Scalars ..\n INTEGER I, IND1, IND2, N1SV, N2SV\n* ..\n\n"); - return Qnil; - } - if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { -diff --git a/ext/slarre.c b/ext/slarre.c -index bbe456a..39baa99 100644 ---- a/ext/slarre.c -+++ b/ext/slarre.c -@@ -65,7 +65,7 @@ rblapack_slarre(int argc, VALUE *argv, VALUE self){ - argc--; - rblapack_options = argv[argc]; - if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { -- printf("%s\n", "USAGE:\n nsplit, isplit, m, w, werr, wgap, iblock, indexw, gers, pivmin, info, vl, vu, d, e, e2 = NumRu::Lapack.slarre( range, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SLARRE( RANGE, N, VL, VU, IL, IU, D, E, E2, RTOL1, RTOL2, SPLTOL, NSPLIT, ISPLIT, M, W, WERR, WGAP, IBLOCK, INDEXW, GERS, PIVMIN, WORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* To find the desired eigenvalues of a given real symmetric\n* tridiagonal matrix T, SLARRE sets any \"small\" off-diagonal\n* elements to zero, and for each unreduced block T_i, it finds\n* (a) a suitable shift at one end of the block's spectrum,\n* (b) the base representation, T_i - sigma_i I = L_i D_i L_i^T, and\n* (c) eigenvalues of each L_i D_i L_i^T.\n* The representations and eigenvalues found are then used by\n* SSTEMR to compute the eigenvectors of T.\n* The accuracy varies depending on whether bisection is used to\n* find a few eigenvalues or the dqds algorithm (subroutine SLASQ2) to\n* conpute all and then discard any unwanted one.\n* As an added benefit, SLARRE also outputs the n\n* Gerschgorin intervals for the matrices L_i D_i L_i^T.\n*\n\n* Arguments\n* =========\n*\n* RANGE (input) CHARACTER*1\n* = 'A': (\"All\") all eigenvalues will be found.\n* = 'V': (\"Value\") all eigenvalues in the half-open interval\n* (VL, VU] will be found.\n* = 'I': (\"Index\") the IL-th through IU-th eigenvalues (of the\n* entire matrix) will be found.\n*\n* N (input) INTEGER\n* The order of the matrix. N > 0.\n*\n* VL (input/output) REAL \n* VU (input/output) REAL \n* If RANGE='V', the lower and upper bounds for the eigenvalues.\n* Eigenvalues less than or equal to VL, or greater than VU,\n* will not be returned. VL < VU.\n* If RANGE='I' or ='A', SLARRE computes bounds on the desired\n* part of the spectrum.\n*\n* IL (input) INTEGER\n* IU (input) INTEGER\n* If RANGE='I', the indices (in ascending order) of the\n* smallest and largest eigenvalues to be returned.\n* 1 <= IL <= IU <= N.\n*\n* D (input/output) REAL array, dimension (N)\n* On entry, the N diagonal elements of the tridiagonal\n* matrix T.\n* On exit, the N diagonal elements of the diagonal\n* matrices D_i.\n*\n* E (input/output) REAL array, dimension (N)\n* On entry, the first (N-1) entries contain the subdiagonal\n* elements of the tridiagonal matrix T; E(N) need not be set.\n* On exit, E contains the subdiagonal elements of the unit\n* bidiagonal matrices L_i. The entries E( ISPLIT( I ) ),\n* 1 <= I <= NSPLIT, contain the base points sigma_i on output.\n*\n* E2 (input/output) REAL array, dimension (N)\n* On entry, the first (N-1) entries contain the SQUARES of the\n* subdiagonal elements of the tridiagonal matrix T;\n* E2(N) need not be set.\n* On exit, the entries E2( ISPLIT( I ) ),\n* 1 <= I <= NSPLIT, have been set to zero\n*\n* RTOL1 (input) REAL \n* RTOL2 (input) REAL \n* Parameters for bisection.\n* An interval [LEFT,RIGHT] has converged if\n* RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) )\n*\n* SPLTOL (input) REAL \n* The threshold for splitting.\n*\n* NSPLIT (output) INTEGER\n* The number of blocks T splits into. 1 <= NSPLIT <= N.\n*\n* ISPLIT (output) INTEGER array, dimension (N)\n* The splitting points, at which T breaks up into blocks.\n* The first block consists of rows/columns 1 to ISPLIT(1),\n* the second of rows/columns ISPLIT(1)+1 through ISPLIT(2),\n* etc., and the NSPLIT-th consists of rows/columns\n* ISPLIT(NSPLIT-1)+1 through ISPLIT(NSPLIT)=N.\n*\n* M (output) INTEGER\n* The total number of eigenvalues (of all L_i D_i L_i^T)\n* found.\n*\n* W (output) REAL array, dimension (N)\n* The first M elements contain the eigenvalues. The\n* eigenvalues of each of the blocks, L_i D_i L_i^T, are\n* sorted in ascending order ( SLARRE may use the\n* remaining N-M elements as workspace).\n*\n* WERR (output) REAL array, dimension (N)\n* The error bound on the corresponding eigenvalue in W.\n*\n* WGAP (output) REAL array, dimension (N)\n* The separation from the right neighbor eigenvalue in W.\n* The gap is only with respect to the eigenvalues of the same block\n* as each block has its own representation tree.\n* Exception: at the right end of a block we store the left gap\n*\n* IBLOCK (output) INTEGER array, dimension (N)\n* The indices of the blocks (submatrices) associated with the\n* corresponding eigenvalues in W; IBLOCK(i)=1 if eigenvalue\n* W(i) belongs to the first block from the top, =2 if W(i)\n* belongs to the second block, etc.\n*\n* INDEXW (output) INTEGER array, dimension (N)\n* The indices of the eigenvalues within each block (submatrix);\n* for example, INDEXW(i)= 10 and IBLOCK(i)=2 imply that the\n* i-th eigenvalue W(i) is the 10-th eigenvalue in block 2\n*\n* GERS (output) REAL array, dimension (2*N)\n* The N Gerschgorin intervals (the i-th Gerschgorin interval\n* is (GERS(2*i-1), GERS(2*i)).\n*\n* PIVMIN (output) REAL\n* The minimum pivot in the Sturm sequence for T.\n*\n* WORK (workspace) REAL array, dimension (6*N)\n* Workspace.\n*\n* IWORK (workspace) INTEGER array, dimension (5*N)\n* Workspace.\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* > 0: A problem occured in SLARRE.\n* < 0: One of the called subroutines signaled an internal problem.\n* Needs inspection of the corresponding parameter IINFO\n* for further information.\n*\n* =-1: Problem in SLARRD.\n* = 2: No base representation could be found in MAXTRY iterations.\n* Increasing MAXTRY and recompilation might be a remedy.\n* =-3: Problem in SLARRB when computing the refined root\n* representation for SLASQ2.\n* =-4: Problem in SLARRB when preforming bisection on the\n* desired part of the spectrum.\n* =-5: Problem in SLASQ2.\n* =-6: Problem in SLASQ2.\n*\n\n* Further Details\n* The base representations are required to suffer very little\n* element growth and consequently define all their eigenvalues to\n* high relative accuracy.\n* ===============\n*\n* Based on contributions by\n* Beresford Parlett, University of California, Berkeley, USA\n* Jim Demmel, University of California, Berkeley, USA\n* Inderjit Dhillon, University of Texas, Austin, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, University of California, Berkeley, USA\n*\n* =====================================================================\n*\n\n"); -+ printf("%s\n", "USAGE:\n nsplit, isplit, m, w, werr, wgap, iblock, indexw, gers, pivmin, info, vl, vu, d, e, e2 = NumRu::Lapack.slarre( range, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SLARRE( RANGE, N, VL, VU, IL, IU, D, E, E2, RTOL1, RTOL2, SPLTOL, NSPLIT, ISPLIT, M, W, WERR, WGAP, IBLOCK, INDEXW, GERS, PIVMIN, WORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* To find the desired eigenvalues of a given real symmetric\n* tridiagonal matrix T, SLARRE sets any \"small\" off-diagonal\n* elements to zero, and for each unreduced block T_i, it finds\n* (a) a suitable shift at one end of the block's spectrum,\n* (b) the base representation, T_i - sigma_i I = L_i D_i L_i^T, and\n* (c) eigenvalues of each L_i D_i L_i^T.\n* The representations and eigenvalues found are then used by\n* SSTEMR to compute the eigenvectors of T.\n* The accuracy varies depending on whether bisection is used to\n* find a few eigenvalues or the dqds algorithm (subroutine SLASQ2) to\n* conpute all and then discard any unwanted one.\n* As an added benefit, SLARRE also outputs the n\n* Gerschgorin intervals for the matrices L_i D_i L_i^T.\n*\n\n* Arguments\n* =========\n*\n* RANGE (input) CHARACTER*1\n* = 'A': (\"All\") all eigenvalues will be found.\n* = 'V': (\"Value\") all eigenvalues in the half-open interval\n* (VL, VU] will be found.\n* = 'I': (\"Index\") the IL-th through IU-th eigenvalues (of the\n* entire matrix) will be found.\n*\n* N (input) INTEGER\n* The order of the matrix. N > 0.\n*\n* VL (input/output) REAL \n* VU (input/output) REAL \n* If RANGE='V', the lower and upper bounds for the eigenvalues.\n* Eigenvalues less than or equal to VL, or greater than VU,\n* will not be returned. VL < VU.\n* If RANGE='I' or ='A', SLARRE computes bounds on the desired\n* part of the spectrum.\n*\n* IL (input) INTEGER\n* IU (input) INTEGER\n* If RANGE='I', the indices (in ascending order) of the\n* smallest and largest eigenvalues to be returned.\n* 1 <= IL <= IU <= N.\n*\n* D (input/output) REAL array, dimension (N)\n* On entry, the N diagonal elements of the tridiagonal\n* matrix T.\n* On exit, the N diagonal elements of the diagonal\n* matrices D_i.\n*\n* E (input/output) REAL array, dimension (N)\n* On entry, the first (N-1) entries contain the subdiagonal\n* elements of the tridiagonal matrix T; E(N) need not be set.\n* On exit, E contains the subdiagonal elements of the unit\n* bidiagonal matrices L_i. The entries E( ISPLIT( I ) ),\n* 1 <= I <= NSPLIT, contain the base points sigma_i on output.\n*\n* E2 (input/output) REAL array, dimension (N)\n* On entry, the first (N-1) entries contain the SQUARES of the\n* subdiagonal elements of the tridiagonal matrix T;\n* E2(N) need not be set.\n* On exit, the entries E2( ISPLIT( I ) ),\n* 1 <= I <= NSPLIT, have been set to zero\n*\n* RTOL1 (input) REAL \n* RTOL2 (input) REAL \n* Parameters for bisection.\n* An interval [LEFT,RIGHT] has converged if\n* RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) )\n*\n* SPLTOL (input) REAL \n* The threshold for splitting.\n*\n* NSPLIT (output) INTEGER\n* The number of blocks T splits into. 1 <= NSPLIT <= N.\n*\n* ISPLIT (output) INTEGER array, dimension (N)\n* The splitting points, at which T breaks up into blocks.\n* The first block consists of rows/columns 1 to ISPLIT(1),\n* the second of rows/columns ISPLIT(1)+1 through ISPLIT(2),\n* etc., and the NSPLIT-th consists of rows/columns\n* ISPLIT(NSPLIT-1)+1 through ISPLIT(NSPLIT)=N.\n*\n* M (output) INTEGER\n* The total number of eigenvalues (of all L_i D_i L_i^T)\n* found.\n*\n* W (output) REAL array, dimension (N)\n* The first M elements contain the eigenvalues. The\n* eigenvalues of each of the blocks, L_i D_i L_i^T, are\n* sorted in ascending order ( SLARRE may use the\n* remaining N-M elements as workspace).\n*\n* WERR (output) REAL array, dimension (N)\n* The error bound on the corresponding eigenvalue in W.\n*\n* WGAP (output) REAL array, dimension (N)\n* The separation from the right neighbor eigenvalue in W.\n* The gap is only with respect to the eigenvalues of the same block\n* as each block has its own representation tree.\n* Exception: at the right end of a block we store the left gap\n*\n* IBLOCK (output) INTEGER array, dimension (N)\n* The indices of the blocks (submatrices) associated with the\n* corresponding eigenvalues in W; IBLOCK(i)=1 if eigenvalue\n* W(i) belongs to the first block from the top, =2 if W(i)\n* belongs to the second block, etc.\n*\n* INDEXW (output) INTEGER array, dimension (N)\n* The indices of the eigenvalues within each block (submatrix);\n* for example, INDEXW(i)= 10 and IBLOCK(i)=2 imply that the\n* i-th eigenvalue W(i) is the 10-th eigenvalue in block 2\n*\n* GERS (output) REAL array, dimension (2*N)\n* The N Gerschgorin intervals (the i-th Gerschgorin interval\n* is (GERS(2*i-1), GERS(2*i)).\n*\n* PIVMIN (output) REAL\n* The minimum pivot in the Sturm sequence for T.\n*\n* WORK (workspace) REAL array, dimension (6*N)\n* Workspace.\n*\n* IWORK (workspace) INTEGER array, dimension (5*N)\n* Workspace.\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* > 0: A problem occurred in SLARRE.\n* < 0: One of the called subroutines signaled an internal problem.\n* Needs inspection of the corresponding parameter IINFO\n* for further information.\n*\n* =-1: Problem in SLARRD.\n* = 2: No base representation could be found in MAXTRY iterations.\n* Increasing MAXTRY and recompilation might be a remedy.\n* =-3: Problem in SLARRB when computing the refined root\n* representation for SLASQ2.\n* =-4: Problem in SLARRB when preforming bisection on the\n* desired part of the spectrum.\n* =-5: Problem in SLASQ2.\n* =-6: Problem in SLASQ2.\n*\n\n* Further Details\n* The base representations are required to suffer very little\n* element growth and consequently define all their eigenvalues to\n* high relative accuracy.\n* ===============\n*\n* Based on contributions by\n* Beresford Parlett, University of California, Berkeley, USA\n* Jim Demmel, University of California, Berkeley, USA\n* Inderjit Dhillon, University of Texas, Austin, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, University of California, Berkeley, USA\n*\n* =====================================================================\n*\n\n"); - return Qnil; - } - if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { -diff --git a/ext/slarrv.c b/ext/slarrv.c -index f6d627b..3851965 100644 ---- a/ext/slarrv.c -+++ b/ext/slarrv.c -@@ -68,7 +68,7 @@ rblapack_slarrv(int argc, VALUE *argv, VALUE self){ - argc--; - rblapack_options = argv[argc]; - if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { -- printf("%s\n", "USAGE:\n z, isuppz, info, d, l, w, werr, wgap = NumRu::Lapack.slarrv( vl, vu, d, l, pivmin, isplit, m, dol, dou, minrgp, rtol1, rtol2, w, werr, wgap, iblock, indexw, gers, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SLARRV( N, VL, VU, D, L, PIVMIN, ISPLIT, M, DOL, DOU, MINRGP, RTOL1, RTOL2, W, WERR, WGAP, IBLOCK, INDEXW, GERS, Z, LDZ, ISUPPZ, WORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* SLARRV computes the eigenvectors of the tridiagonal matrix\n* T = L D L^T given L, D and APPROXIMATIONS to the eigenvalues of L D L^T.\n* The input eigenvalues should have been computed by SLARRE.\n*\n\n* Arguments\n* =========\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* VL (input) REAL \n* VU (input) REAL \n* Lower and upper bounds of the interval that contains the desired\n* eigenvalues. VL < VU. Needed to compute gaps on the left or right\n* end of the extremal eigenvalues in the desired RANGE.\n*\n* D (input/output) REAL array, dimension (N)\n* On entry, the N diagonal elements of the diagonal matrix D.\n* On exit, D may be overwritten.\n*\n* L (input/output) REAL array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the unit\n* bidiagonal matrix L are in elements 1 to N-1 of L\n* (if the matrix is not split.) At the end of each block\n* is stored the corresponding shift as given by SLARRE.\n* On exit, L is overwritten.\n*\n* PIVMIN (input) REAL\n* The minimum pivot allowed in the Sturm sequence.\n*\n* ISPLIT (input) INTEGER array, dimension (N)\n* The splitting points, at which T breaks up into blocks.\n* The first block consists of rows/columns 1 to\n* ISPLIT( 1 ), the second of rows/columns ISPLIT( 1 )+1\n* through ISPLIT( 2 ), etc.\n*\n* M (input) INTEGER\n* The total number of input eigenvalues. 0 <= M <= N.\n*\n* DOL (input) INTEGER\n* DOU (input) INTEGER\n* If the user wants to compute only selected eigenvectors from all\n* the eigenvalues supplied, he can specify an index range DOL:DOU.\n* Or else the setting DOL=1, DOU=M should be applied.\n* Note that DOL and DOU refer to the order in which the eigenvalues\n* are stored in W.\n* If the user wants to compute only selected eigenpairs, then\n* the columns DOL-1 to DOU+1 of the eigenvector space Z contain the\n* computed eigenvectors. All other columns of Z are set to zero.\n*\n* MINRGP (input) REAL \n*\n* RTOL1 (input) REAL \n* RTOL2 (input) REAL \n* Parameters for bisection.\n* An interval [LEFT,RIGHT] has converged if\n* RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) )\n*\n* W (input/output) REAL array, dimension (N)\n* The first M elements of W contain the APPROXIMATE eigenvalues for\n* which eigenvectors are to be computed. The eigenvalues\n* should be grouped by split-off block and ordered from\n* smallest to largest within the block ( The output array\n* W from SLARRE is expected here ). Furthermore, they are with\n* respect to the shift of the corresponding root representation\n* for their block. On exit, W holds the eigenvalues of the\n* UNshifted matrix.\n*\n* WERR (input/output) REAL array, dimension (N)\n* The first M elements contain the semiwidth of the uncertainty\n* interval of the corresponding eigenvalue in W\n*\n* WGAP (input/output) REAL array, dimension (N)\n* The separation from the right neighbor eigenvalue in W.\n*\n* IBLOCK (input) INTEGER array, dimension (N)\n* The indices of the blocks (submatrices) associated with the\n* corresponding eigenvalues in W; IBLOCK(i)=1 if eigenvalue\n* W(i) belongs to the first block from the top, =2 if W(i)\n* belongs to the second block, etc.\n*\n* INDEXW (input) INTEGER array, dimension (N)\n* The indices of the eigenvalues within each block (submatrix);\n* for example, INDEXW(i)= 10 and IBLOCK(i)=2 imply that the\n* i-th eigenvalue W(i) is the 10-th eigenvalue in the second block.\n*\n* GERS (input) REAL array, dimension (2*N)\n* The N Gerschgorin intervals (the i-th Gerschgorin interval\n* is (GERS(2*i-1), GERS(2*i)). The Gerschgorin intervals should\n* be computed from the original UNshifted matrix.\n*\n* Z (output) REAL array, dimension (LDZ, max(1,M) )\n* If INFO = 0, the first M columns of Z contain the\n* orthonormal eigenvectors of the matrix T\n* corresponding to the input eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER array, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The I-th eigenvector\n* is nonzero only in elements ISUPPZ( 2*I-1 ) through\n* ISUPPZ( 2*I ).\n*\n* WORK (workspace) REAL array, dimension (12*N)\n*\n* IWORK (workspace) INTEGER array, dimension (7*N)\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n*\n* > 0: A problem occured in SLARRV.\n* < 0: One of the called subroutines signaled an internal problem.\n* Needs inspection of the corresponding parameter IINFO\n* for further information.\n*\n* =-1: Problem in SLARRB when refining a child's eigenvalues.\n* =-2: Problem in SLARRF when computing the RRR of a child.\n* When a child is inside a tight cluster, it can be difficult\n* to find an RRR. A partial remedy from the user's point of\n* view is to make the parameter MINRGP smaller and recompile.\n* However, as the orthogonality of the computed vectors is\n* proportional to 1/MINRGP, the user should be aware that\n* he might be trading in precision when he decreases MINRGP.\n* =-3: Problem in SLARRB when refining a single eigenvalue\n* after the Rayleigh correction was rejected.\n* = 5: The Rayleigh Quotient Iteration failed to converge to\n* full accuracy in MAXITR steps.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Beresford Parlett, University of California, Berkeley, USA\n* Jim Demmel, University of California, Berkeley, USA\n* Inderjit Dhillon, University of Texas, Austin, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, University of California, Berkeley, USA\n*\n* =====================================================================\n*\n\n"); -+ printf("%s\n", "USAGE:\n z, isuppz, info, d, l, w, werr, wgap = NumRu::Lapack.slarrv( vl, vu, d, l, pivmin, isplit, m, dol, dou, minrgp, rtol1, rtol2, w, werr, wgap, iblock, indexw, gers, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SLARRV( N, VL, VU, D, L, PIVMIN, ISPLIT, M, DOL, DOU, MINRGP, RTOL1, RTOL2, W, WERR, WGAP, IBLOCK, INDEXW, GERS, Z, LDZ, ISUPPZ, WORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* SLARRV computes the eigenvectors of the tridiagonal matrix\n* T = L D L^T given L, D and APPROXIMATIONS to the eigenvalues of L D L^T.\n* The input eigenvalues should have been computed by SLARRE.\n*\n\n* Arguments\n* =========\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* VL (input) REAL \n* VU (input) REAL \n* Lower and upper bounds of the interval that contains the desired\n* eigenvalues. VL < VU. Needed to compute gaps on the left or right\n* end of the extremal eigenvalues in the desired RANGE.\n*\n* D (input/output) REAL array, dimension (N)\n* On entry, the N diagonal elements of the diagonal matrix D.\n* On exit, D may be overwritten.\n*\n* L (input/output) REAL array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the unit\n* bidiagonal matrix L are in elements 1 to N-1 of L\n* (if the matrix is not split.) At the end of each block\n* is stored the corresponding shift as given by SLARRE.\n* On exit, L is overwritten.\n*\n* PIVMIN (input) REAL\n* The minimum pivot allowed in the Sturm sequence.\n*\n* ISPLIT (input) INTEGER array, dimension (N)\n* The splitting points, at which T breaks up into blocks.\n* The first block consists of rows/columns 1 to\n* ISPLIT( 1 ), the second of rows/columns ISPLIT( 1 )+1\n* through ISPLIT( 2 ), etc.\n*\n* M (input) INTEGER\n* The total number of input eigenvalues. 0 <= M <= N.\n*\n* DOL (input) INTEGER\n* DOU (input) INTEGER\n* If the user wants to compute only selected eigenvectors from all\n* the eigenvalues supplied, he can specify an index range DOL:DOU.\n* Or else the setting DOL=1, DOU=M should be applied.\n* Note that DOL and DOU refer to the order in which the eigenvalues\n* are stored in W.\n* If the user wants to compute only selected eigenpairs, then\n* the columns DOL-1 to DOU+1 of the eigenvector space Z contain the\n* computed eigenvectors. All other columns of Z are set to zero.\n*\n* MINRGP (input) REAL \n*\n* RTOL1 (input) REAL \n* RTOL2 (input) REAL \n* Parameters for bisection.\n* An interval [LEFT,RIGHT] has converged if\n* RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) )\n*\n* W (input/output) REAL array, dimension (N)\n* The first M elements of W contain the APPROXIMATE eigenvalues for\n* which eigenvectors are to be computed. The eigenvalues\n* should be grouped by split-off block and ordered from\n* smallest to largest within the block ( The output array\n* W from SLARRE is expected here ). Furthermore, they are with\n* respect to the shift of the corresponding root representation\n* for their block. On exit, W holds the eigenvalues of the\n* UNshifted matrix.\n*\n* WERR (input/output) REAL array, dimension (N)\n* The first M elements contain the semiwidth of the uncertainty\n* interval of the corresponding eigenvalue in W\n*\n* WGAP (input/output) REAL array, dimension (N)\n* The separation from the right neighbor eigenvalue in W.\n*\n* IBLOCK (input) INTEGER array, dimension (N)\n* The indices of the blocks (submatrices) associated with the\n* corresponding eigenvalues in W; IBLOCK(i)=1 if eigenvalue\n* W(i) belongs to the first block from the top, =2 if W(i)\n* belongs to the second block, etc.\n*\n* INDEXW (input) INTEGER array, dimension (N)\n* The indices of the eigenvalues within each block (submatrix);\n* for example, INDEXW(i)= 10 and IBLOCK(i)=2 imply that the\n* i-th eigenvalue W(i) is the 10-th eigenvalue in the second block.\n*\n* GERS (input) REAL array, dimension (2*N)\n* The N Gerschgorin intervals (the i-th Gerschgorin interval\n* is (GERS(2*i-1), GERS(2*i)). The Gerschgorin intervals should\n* be computed from the original UNshifted matrix.\n*\n* Z (output) REAL array, dimension (LDZ, max(1,M) )\n* If INFO = 0, the first M columns of Z contain the\n* orthonormal eigenvectors of the matrix T\n* corresponding to the input eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER array, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The I-th eigenvector\n* is nonzero only in elements ISUPPZ( 2*I-1 ) through\n* ISUPPZ( 2*I ).\n*\n* WORK (workspace) REAL array, dimension (12*N)\n*\n* IWORK (workspace) INTEGER array, dimension (7*N)\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n*\n* > 0: A problem occurred in SLARRV.\n* < 0: One of the called subroutines signaled an internal problem.\n* Needs inspection of the corresponding parameter IINFO\n* for further information.\n*\n* =-1: Problem in SLARRB when refining a child's eigenvalues.\n* =-2: Problem in SLARRF when computing the RRR of a child.\n* When a child is inside a tight cluster, it can be difficult\n* to find an RRR. A partial remedy from the user's point of\n* view is to make the parameter MINRGP smaller and recompile.\n* However, as the orthogonality of the computed vectors is\n* proportional to 1/MINRGP, the user should be aware that\n* he might be trading in precision when he decreases MINRGP.\n* =-3: Problem in SLARRB when refining a single eigenvalue\n* after the Rayleigh correction was rejected.\n* = 5: The Rayleigh Quotient Iteration failed to converge to\n* full accuracy in MAXITR steps.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Beresford Parlett, University of California, Berkeley, USA\n* Jim Demmel, University of California, Berkeley, USA\n* Inderjit Dhillon, University of Texas, Austin, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, University of California, Berkeley, USA\n*\n* =====================================================================\n*\n\n"); - return Qnil; - } - if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { -diff --git a/ext/slasdq.c b/ext/slasdq.c -index 7945740..980cf42 100644 ---- a/ext/slasdq.c -+++ b/ext/slasdq.c -@@ -47,7 +47,7 @@ rblapack_slasdq(int argc, VALUE *argv, VALUE self){ - argc--; - rblapack_options = argv[argc]; - if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { -- printf("%s\n", "USAGE:\n info, d, e, vt, u, c = NumRu::Lapack.slasdq( uplo, sqre, nru, d, e, vt, u, c, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SLASDQ( UPLO, SQRE, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, LDU, C, LDC, WORK, INFO )\n\n* Purpose\n* =======\n*\n* SLASDQ computes the singular value decomposition (SVD) of a real\n* (upper or lower) bidiagonal matrix with diagonal D and offdiagonal\n* E, accumulating the transformations if desired. Letting B denote\n* the input bidiagonal matrix, the algorithm computes orthogonal\n* matrices Q and P such that B = Q * S * P' (P' denotes the transpose\n* of P). The singular values S are overwritten on D.\n*\n* The input matrix U is changed to U * Q if desired.\n* The input matrix VT is changed to P' * VT if desired.\n* The input matrix C is changed to Q' * C if desired.\n*\n* See \"Computing Small Singular Values of Bidiagonal Matrices With\n* Guaranteed High Relative Accuracy,\" by J. Demmel and W. Kahan,\n* LAPACK Working Note #3, for a detailed description of the algorithm.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* On entry, UPLO specifies whether the input bidiagonal matrix\n* is upper or lower bidiagonal, and wether it is square are\n* not.\n* UPLO = 'U' or 'u' B is upper bidiagonal.\n* UPLO = 'L' or 'l' B is lower bidiagonal.\n*\n* SQRE (input) INTEGER\n* = 0: then the input matrix is N-by-N.\n* = 1: then the input matrix is N-by-(N+1) if UPLU = 'U' and\n* (N+1)-by-N if UPLU = 'L'.\n*\n* The bidiagonal matrix has\n* N = NL + NR + 1 rows and\n* M = N + SQRE >= N columns.\n*\n* N (input) INTEGER\n* On entry, N specifies the number of rows and columns\n* in the matrix. N must be at least 0.\n*\n* NCVT (input) INTEGER\n* On entry, NCVT specifies the number of columns of\n* the matrix VT. NCVT must be at least 0.\n*\n* NRU (input) INTEGER\n* On entry, NRU specifies the number of rows of\n* the matrix U. NRU must be at least 0.\n*\n* NCC (input) INTEGER\n* On entry, NCC specifies the number of columns of\n* the matrix C. NCC must be at least 0.\n*\n* D (input/output) REAL array, dimension (N)\n* On entry, D contains the diagonal entries of the\n* bidiagonal matrix whose SVD is desired. On normal exit,\n* D contains the singular values in ascending order.\n*\n* E (input/output) REAL array.\n* dimension is (N-1) if SQRE = 0 and N if SQRE = 1.\n* On entry, the entries of E contain the offdiagonal entries\n* of the bidiagonal matrix whose SVD is desired. On normal\n* exit, E will contain 0. If the algorithm does not converge,\n* D and E will contain the diagonal and superdiagonal entries\n* of a bidiagonal matrix orthogonally equivalent to the one\n* given as input.\n*\n* VT (input/output) REAL array, dimension (LDVT, NCVT)\n* On entry, contains a matrix which on exit has been\n* premultiplied by P', dimension N-by-NCVT if SQRE = 0\n* and (N+1)-by-NCVT if SQRE = 1 (not referenced if NCVT=0).\n*\n* LDVT (input) INTEGER\n* On entry, LDVT specifies the leading dimension of VT as\n* declared in the calling (sub) program. LDVT must be at\n* least 1. If NCVT is nonzero LDVT must also be at least N.\n*\n* U (input/output) REAL array, dimension (LDU, N)\n* On entry, contains a matrix which on exit has been\n* postmultiplied by Q, dimension NRU-by-N if SQRE = 0\n* and NRU-by-(N+1) if SQRE = 1 (not referenced if NRU=0).\n*\n* LDU (input) INTEGER\n* On entry, LDU specifies the leading dimension of U as\n* declared in the calling (sub) program. LDU must be at\n* least max( 1, NRU ) .\n*\n* C (input/output) REAL array, dimension (LDC, NCC)\n* On entry, contains an N-by-NCC matrix which on exit\n* has been premultiplied by Q' dimension N-by-NCC if SQRE = 0\n* and (N+1)-by-NCC if SQRE = 1 (not referenced if NCC=0).\n*\n* LDC (input) INTEGER\n* On entry, LDC specifies the leading dimension of C as\n* declared in the calling (sub) program. LDC must be at\n* least 1. If NCC is nonzero, LDC must also be at least N.\n*\n* WORK (workspace) REAL array, dimension (4*N)\n* Workspace. Only referenced if one of NCVT, NRU, or NCC is\n* nonzero, and if N is at least 2.\n*\n* INFO (output) INTEGER\n* On exit, a value of 0 indicates a successful exit.\n* If INFO < 0, argument number -INFO is illegal.\n* If INFO > 0, the algorithm did not converge, and INFO\n* specifies how many superdiagonals did not converge.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Ming Gu and Huan Ren, Computer Science Division, University of\n* California at Berkeley, USA\n*\n* =====================================================================\n*\n\n"); -+ printf("%s\n", "USAGE:\n info, d, e, vt, u, c = NumRu::Lapack.slasdq( uplo, sqre, nru, d, e, vt, u, c, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SLASDQ( UPLO, SQRE, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, LDU, C, LDC, WORK, INFO )\n\n* Purpose\n* =======\n*\n* SLASDQ computes the singular value decomposition (SVD) of a real\n* (upper or lower) bidiagonal matrix with diagonal D and offdiagonal\n* E, accumulating the transformations if desired. Letting B denote\n* the input bidiagonal matrix, the algorithm computes orthogonal\n* matrices Q and P such that B = Q * S * P' (P' denotes the transpose\n* of P). The singular values S are overwritten on D.\n*\n* The input matrix U is changed to U * Q if desired.\n* The input matrix VT is changed to P' * VT if desired.\n* The input matrix C is changed to Q' * C if desired.\n*\n* See \"Computing Small Singular Values of Bidiagonal Matrices With\n* Guaranteed High Relative Accuracy,\" by J. Demmel and W. Kahan,\n* LAPACK Working Note #3, for a detailed description of the algorithm.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* On entry, UPLO specifies whether the input bidiagonal matrix\n* is upper or lower bidiagonal, and whether it is square are\n* not.\n* UPLO = 'U' or 'u' B is upper bidiagonal.\n* UPLO = 'L' or 'l' B is lower bidiagonal.\n*\n* SQRE (input) INTEGER\n* = 0: then the input matrix is N-by-N.\n* = 1: then the input matrix is N-by-(N+1) if UPLU = 'U' and\n* (N+1)-by-N if UPLU = 'L'.\n*\n* The bidiagonal matrix has\n* N = NL + NR + 1 rows and\n* M = N + SQRE >= N columns.\n*\n* N (input) INTEGER\n* On entry, N specifies the number of rows and columns\n* in the matrix. N must be at least 0.\n*\n* NCVT (input) INTEGER\n* On entry, NCVT specifies the number of columns of\n* the matrix VT. NCVT must be at least 0.\n*\n* NRU (input) INTEGER\n* On entry, NRU specifies the number of rows of\n* the matrix U. NRU must be at least 0.\n*\n* NCC (input) INTEGER\n* On entry, NCC specifies the number of columns of\n* the matrix C. NCC must be at least 0.\n*\n* D (input/output) REAL array, dimension (N)\n* On entry, D contains the diagonal entries of the\n* bidiagonal matrix whose SVD is desired. On normal exit,\n* D contains the singular values in ascending order.\n*\n* E (input/output) REAL array.\n* dimension is (N-1) if SQRE = 0 and N if SQRE = 1.\n* On entry, the entries of E contain the offdiagonal entries\n* of the bidiagonal matrix whose SVD is desired. On normal\n* exit, E will contain 0. If the algorithm does not converge,\n* D and E will contain the diagonal and superdiagonal entries\n* of a bidiagonal matrix orthogonally equivalent to the one\n* given as input.\n*\n* VT (input/output) REAL array, dimension (LDVT, NCVT)\n* On entry, contains a matrix which on exit has been\n* premultiplied by P', dimension N-by-NCVT if SQRE = 0\n* and (N+1)-by-NCVT if SQRE = 1 (not referenced if NCVT=0).\n*\n* LDVT (input) INTEGER\n* On entry, LDVT specifies the leading dimension of VT as\n* declared in the calling (sub) program. LDVT must be at\n* least 1. If NCVT is nonzero LDVT must also be at least N.\n*\n* U (input/output) REAL array, dimension (LDU, N)\n* On entry, contains a matrix which on exit has been\n* postmultiplied by Q, dimension NRU-by-N if SQRE = 0\n* and NRU-by-(N+1) if SQRE = 1 (not referenced if NRU=0).\n*\n* LDU (input) INTEGER\n* On entry, LDU specifies the leading dimension of U as\n* declared in the calling (sub) program. LDU must be at\n* least max( 1, NRU ) .\n*\n* C (input/output) REAL array, dimension (LDC, NCC)\n* On entry, contains an N-by-NCC matrix which on exit\n* has been premultiplied by Q' dimension N-by-NCC if SQRE = 0\n* and (N+1)-by-NCC if SQRE = 1 (not referenced if NCC=0).\n*\n* LDC (input) INTEGER\n* On entry, LDC specifies the leading dimension of C as\n* declared in the calling (sub) program. LDC must be at\n* least 1. If NCC is nonzero, LDC must also be at least N.\n*\n* WORK (workspace) REAL array, dimension (4*N)\n* Workspace. Only referenced if one of NCVT, NRU, or NCC is\n* nonzero, and if N is at least 2.\n*\n* INFO (output) INTEGER\n* On exit, a value of 0 indicates a successful exit.\n* If INFO < 0, argument number -INFO is illegal.\n* If INFO > 0, the algorithm did not converge, and INFO\n* specifies how many superdiagonals did not converge.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Ming Gu and Huan Ren, Computer Science Division, University of\n* California at Berkeley, USA\n*\n* =====================================================================\n*\n\n"); - return Qnil; - } - if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { -diff --git a/ext/slatdf.c b/ext/slatdf.c -index bf5e87e..3188496 100644 ---- a/ext/slatdf.c -+++ b/ext/slatdf.c -@@ -30,7 +30,7 @@ rblapack_slatdf(int argc, VALUE *argv, VALUE self){ - argc--; - rblapack_options = argv[argc]; - if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { -- printf("%s\n", "USAGE:\n rhs, rdsum, rdscal = NumRu::Lapack.slatdf( ijob, z, rhs, rdsum, rdscal, ipiv, jpiv, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SLATDF( IJOB, N, Z, LDZ, RHS, RDSUM, RDSCAL, IPIV, JPIV )\n\n* Purpose\n* =======\n*\n* SLATDF uses the LU factorization of the n-by-n matrix Z computed by\n* SGETC2 and computes a contribution to the reciprocal Dif-estimate\n* by solving Z * x = b for x, and choosing the r.h.s. b such that\n* the norm of x is as large as possible. On entry RHS = b holds the\n* contribution from earlier solved sub-systems, and on return RHS = x.\n*\n* The factorization of Z returned by SGETC2 has the form Z = P*L*U*Q,\n* where P and Q are permutation matrices. L is lower triangular with\n* unit diagonal elements and U is upper triangular.\n*\n\n* Arguments\n* =========\n*\n* IJOB (input) INTEGER\n* IJOB = 2: First compute an approximative null-vector e\n* of Z using SGECON, e is normalized and solve for\n* Zx = +-e - f with the sign giving the greater value\n* of 2-norm(x). About 5 times as expensive as Default.\n* IJOB .ne. 2: Local look ahead strategy where all entries of\n* the r.h.s. b is choosen as either +1 or -1 (Default).\n*\n* N (input) INTEGER\n* The number of columns of the matrix Z.\n*\n* Z (input) REAL array, dimension (LDZ, N)\n* On entry, the LU part of the factorization of the n-by-n\n* matrix Z computed by SGETC2: Z = P * L * U * Q\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDA >= max(1, N).\n*\n* RHS (input/output) REAL array, dimension N.\n* On entry, RHS contains contributions from other subsystems.\n* On exit, RHS contains the solution of the subsystem with\n* entries acoording to the value of IJOB (see above).\n*\n* RDSUM (input/output) REAL\n* On entry, the sum of squares of computed contributions to\n* the Dif-estimate under computation by STGSYL, where the\n* scaling factor RDSCAL (see below) has been factored out.\n* On exit, the corresponding sum of squares updated with the\n* contributions from the current sub-system.\n* If TRANS = 'T' RDSUM is not touched.\n* NOTE: RDSUM only makes sense when STGSY2 is called by STGSYL.\n*\n* RDSCAL (input/output) REAL\n* On entry, scaling factor used to prevent overflow in RDSUM.\n* On exit, RDSCAL is updated w.r.t. the current contributions\n* in RDSUM.\n* If TRANS = 'T', RDSCAL is not touched.\n* NOTE: RDSCAL only makes sense when STGSY2 is called by\n* STGSYL.\n*\n* IPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= i <= N, row i of the\n* matrix has been interchanged with row IPIV(i).\n*\n* JPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= j <= N, column j of the\n* matrix has been interchanged with column JPIV(j).\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Bo Kagstrom and Peter Poromaa, Department of Computing Science,\n* Umea University, S-901 87 Umea, Sweden.\n*\n* This routine is a further developed implementation of algorithm\n* BSOLVE in [1] using complete pivoting in the LU factorization.\n*\n* [1] Bo Kagstrom and Lars Westin,\n* Generalized Schur Methods with Condition Estimators for\n* Solving the Generalized Sylvester Equation, IEEE Transactions\n* on Automatic Control, Vol. 34, No. 7, July 1989, pp 745-751.\n*\n* [2] Peter Poromaa,\n* On Efficient and Robust Estimators for the Separation\n* between two Regular Matrix Pairs with Applications in\n* Condition Estimation. Report IMINF-95.05, Departement of\n* Computing Science, Umea University, S-901 87 Umea, Sweden, 1995.\n*\n* =====================================================================\n*\n\n"); -+ printf("%s\n", "USAGE:\n rhs, rdsum, rdscal = NumRu::Lapack.slatdf( ijob, z, rhs, rdsum, rdscal, ipiv, jpiv, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SLATDF( IJOB, N, Z, LDZ, RHS, RDSUM, RDSCAL, IPIV, JPIV )\n\n* Purpose\n* =======\n*\n* SLATDF uses the LU factorization of the n-by-n matrix Z computed by\n* SGETC2 and computes a contribution to the reciprocal Dif-estimate\n* by solving Z * x = b for x, and choosing the r.h.s. b such that\n* the norm of x is as large as possible. On entry RHS = b holds the\n* contribution from earlier solved sub-systems, and on return RHS = x.\n*\n* The factorization of Z returned by SGETC2 has the form Z = P*L*U*Q,\n* where P and Q are permutation matrices. L is lower triangular with\n* unit diagonal elements and U is upper triangular.\n*\n\n* Arguments\n* =========\n*\n* IJOB (input) INTEGER\n* IJOB = 2: First compute an approximative null-vector e\n* of Z using SGECON, e is normalized and solve for\n* Zx = +-e - f with the sign giving the greater value\n* of 2-norm(x). About 5 times as expensive as Default.\n* IJOB .ne. 2: Local look ahead strategy where all entries of\n* the r.h.s. b is chosen as either +1 or -1 (Default).\n*\n* N (input) INTEGER\n* The number of columns of the matrix Z.\n*\n* Z (input) REAL array, dimension (LDZ, N)\n* On entry, the LU part of the factorization of the n-by-n\n* matrix Z computed by SGETC2: Z = P * L * U * Q\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDA >= max(1, N).\n*\n* RHS (input/output) REAL array, dimension N.\n* On entry, RHS contains contributions from other subsystems.\n* On exit, RHS contains the solution of the subsystem with\n* entries acoording to the value of IJOB (see above).\n*\n* RDSUM (input/output) REAL\n* On entry, the sum of squares of computed contributions to\n* the Dif-estimate under computation by STGSYL, where the\n* scaling factor RDSCAL (see below) has been factored out.\n* On exit, the corresponding sum of squares updated with the\n* contributions from the current sub-system.\n* If TRANS = 'T' RDSUM is not touched.\n* NOTE: RDSUM only makes sense when STGSY2 is called by STGSYL.\n*\n* RDSCAL (input/output) REAL\n* On entry, scaling factor used to prevent overflow in RDSUM.\n* On exit, RDSCAL is updated w.r.t. the current contributions\n* in RDSUM.\n* If TRANS = 'T', RDSCAL is not touched.\n* NOTE: RDSCAL only makes sense when STGSY2 is called by\n* STGSYL.\n*\n* IPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= i <= N, row i of the\n* matrix has been interchanged with row IPIV(i).\n*\n* JPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= j <= N, column j of the\n* matrix has been interchanged with column JPIV(j).\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Bo Kagstrom and Peter Poromaa, Department of Computing Science,\n* Umea University, S-901 87 Umea, Sweden.\n*\n* This routine is a further developed implementation of algorithm\n* BSOLVE in [1] using complete pivoting in the LU factorization.\n*\n* [1] Bo Kagstrom and Lars Westin,\n* Generalized Schur Methods with Condition Estimators for\n* Solving the Generalized Sylvester Equation, IEEE Transactions\n* on Automatic Control, Vol. 34, No. 7, July 1989, pp 745-751.\n*\n* [2] Peter Poromaa,\n* On Efficient and Robust Estimators for the Separation\n* between two Regular Matrix Pairs with Applications in\n* Condition Estimation. Report IMINF-95.05, Departement of\n* Computing Science, Umea University, S-901 87 Umea, Sweden, 1995.\n*\n* =====================================================================\n*\n\n"); - return Qnil; - } - if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { -diff --git a/ext/sstegr.c b/ext/sstegr.c -index 583af96..a7cdef1 100644 ---- a/ext/sstegr.c -+++ b/ext/sstegr.c -@@ -54,7 +54,7 @@ rblapack_sstegr(int argc, VALUE *argv, VALUE self){ - argc--; - rblapack_options = argv[argc]; - if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { -- printf("%s\n", "USAGE:\n m, w, z, isuppz, work, iwork, info, d, e = NumRu::Lapack.sstegr( jobz, range, d, e, vl, vu, il, iu, abstol, [:lwork => lwork, :liwork => liwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SSTEGR( JOBZ, RANGE, N, D, E, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK, IWORK, LIWORK, INFO )\n\n* Purpose\n* =======\n*\n* SSTEGR computes selected eigenvalues and, optionally, eigenvectors\n* of a real symmetric tridiagonal matrix T. Any such unreduced matrix has\n* a well defined set of pairwise different real eigenvalues, the corresponding\n* real eigenvectors are pairwise orthogonal.\n*\n* The spectrum may be computed either completely or partially by specifying\n* either an interval (VL,VU] or a range of indices IL:IU for the desired\n* eigenvalues.\n*\n* SSTEGR is a compatability wrapper around the improved SSTEMR routine.\n* See SSTEMR for further details.\n*\n* One important change is that the ABSTOL parameter no longer provides any\n* benefit and hence is no longer used.\n*\n* Note : SSTEGR and SSTEMR work only on machines which follow\n* IEEE-754 floating-point standard in their handling of infinities and\n* NaNs. Normal execution may create these exceptiona values and hence\n* may abort due to a floating point exception in environments which\n* do not conform to the IEEE-754 standard.\n*\n\n* Arguments\n* =========\n*\n* JOBZ (input) CHARACTER*1\n* = 'N': Compute eigenvalues only;\n* = 'V': Compute eigenvalues and eigenvectors.\n*\n* RANGE (input) CHARACTER*1\n* = 'A': all eigenvalues will be found.\n* = 'V': all eigenvalues in the half-open interval (VL,VU]\n* will be found.\n* = 'I': the IL-th through IU-th eigenvalues will be found.\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* D (input/output) REAL array, dimension (N)\n* On entry, the N diagonal elements of the tridiagonal matrix\n* T. On exit, D is overwritten.\n*\n* E (input/output) REAL array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the tridiagonal\n* matrix T in elements 1 to N-1 of E. E(N) need not be set on\n* input, but is used internally as workspace.\n* On exit, E is overwritten.\n*\n* VL (input) REAL\n* VU (input) REAL\n* If RANGE='V', the lower and upper bounds of the interval to\n* be searched for eigenvalues. VL < VU.\n* Not referenced if RANGE = 'A' or 'I'.\n*\n* IL (input) INTEGER\n* IU (input) INTEGER\n* If RANGE='I', the indices (in ascending order) of the\n* smallest and largest eigenvalues to be returned.\n* 1 <= IL <= IU <= N, if N > 0.\n* Not referenced if RANGE = 'A' or 'V'.\n*\n* ABSTOL (input) REAL\n* Unused. Was the absolute error tolerance for the\n* eigenvalues/eigenvectors in previous versions.\n*\n* M (output) INTEGER\n* The total number of eigenvalues found. 0 <= M <= N.\n* If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1.\n*\n* W (output) REAL array, dimension (N)\n* The first M elements contain the selected eigenvalues in\n* ascending order.\n*\n* Z (output) REAL array, dimension (LDZ, max(1,M) )\n* If JOBZ = 'V', and if INFO = 0, then the first M columns of Z\n* contain the orthonormal eigenvectors of the matrix T\n* corresponding to the selected eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* If JOBZ = 'N', then Z is not referenced.\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z; if RANGE = 'V', the exact value of M\n* is not known in advance and an upper bound must be used.\n* Supplying N columns is always safe.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', then LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER ARRAY, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The i-th computed eigenvector\n* is nonzero only in elements ISUPPZ( 2*i-1 ) through\n* ISUPPZ( 2*i ). This is relevant in the case when the matrix\n* is split. ISUPPZ is only accessed when JOBZ is 'V' and N > 0.\n*\n* WORK (workspace/output) REAL array, dimension (LWORK)\n* On exit, if INFO = 0, WORK(1) returns the optimal\n* (and minimal) LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK >= max(1,18*N)\n* if JOBZ = 'V', and LWORK >= max(1,12*N) if JOBZ = 'N'.\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the WORK array, returns\n* this value as the first entry of the WORK array, and no error\n* message related to LWORK is issued by XERBLA.\n*\n* IWORK (workspace/output) INTEGER array, dimension (LIWORK)\n* On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.\n*\n* LIWORK (input) INTEGER\n* The dimension of the array IWORK. LIWORK >= max(1,10*N)\n* if the eigenvectors are desired, and LIWORK >= max(1,8*N)\n* if only the eigenvalues are to be computed.\n* If LIWORK = -1, then a workspace query is assumed; the\n* routine only calculates the optimal size of the IWORK array,\n* returns this value as the first entry of the IWORK array, and\n* no error message related to LIWORK is issued by XERBLA.\n*\n* INFO (output) INTEGER\n* On exit, INFO\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = 1X, internal error in SLARRE,\n* if INFO = 2X, internal error in SLARRV.\n* Here, the digit X = ABS( IINFO ) < 10, where IINFO is\n* the nonzero error code returned by SLARRE or\n* SLARRV, respectively.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Inderjit Dhillon, IBM Almaden, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n* .. Local Scalars ..\n LOGICAL TRYRAC\n* ..\n* .. External Subroutines ..\n EXTERNAL SSTEMR\n* ..\n\n"); -+ printf("%s\n", "USAGE:\n m, w, z, isuppz, work, iwork, info, d, e = NumRu::Lapack.sstegr( jobz, range, d, e, vl, vu, il, iu, abstol, [:lwork => lwork, :liwork => liwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SSTEGR( JOBZ, RANGE, N, D, E, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK, IWORK, LIWORK, INFO )\n\n* Purpose\n* =======\n*\n* SSTEGR computes selected eigenvalues and, optionally, eigenvectors\n* of a real symmetric tridiagonal matrix T. Any such unreduced matrix has\n* a well defined set of pairwise different real eigenvalues, the corresponding\n* real eigenvectors are pairwise orthogonal.\n*\n* The spectrum may be computed either completely or partially by specifying\n* either an interval (VL,VU] or a range of indices IL:IU for the desired\n* eigenvalues.\n*\n* SSTEGR is a compatibility wrapper around the improved SSTEMR routine.\n* See SSTEMR for further details.\n*\n* One important change is that the ABSTOL parameter no longer provides any\n* benefit and hence is no longer used.\n*\n* Note : SSTEGR and SSTEMR work only on machines which follow\n* IEEE-754 floating-point standard in their handling of infinities and\n* NaNs. Normal execution may create these exceptiona values and hence\n* may abort due to a floating point exception in environments which\n* do not conform to the IEEE-754 standard.\n*\n\n* Arguments\n* =========\n*\n* JOBZ (input) CHARACTER*1\n* = 'N': Compute eigenvalues only;\n* = 'V': Compute eigenvalues and eigenvectors.\n*\n* RANGE (input) CHARACTER*1\n* = 'A': all eigenvalues will be found.\n* = 'V': all eigenvalues in the half-open interval (VL,VU]\n* will be found.\n* = 'I': the IL-th through IU-th eigenvalues will be found.\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* D (input/output) REAL array, dimension (N)\n* On entry, the N diagonal elements of the tridiagonal matrix\n* T. On exit, D is overwritten.\n*\n* E (input/output) REAL array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the tridiagonal\n* matrix T in elements 1 to N-1 of E. E(N) need not be set on\n* input, but is used internally as workspace.\n* On exit, E is overwritten.\n*\n* VL (input) REAL\n* VU (input) REAL\n* If RANGE='V', the lower and upper bounds of the interval to\n* be searched for eigenvalues. VL < VU.\n* Not referenced if RANGE = 'A' or 'I'.\n*\n* IL (input) INTEGER\n* IU (input) INTEGER\n* If RANGE='I', the indices (in ascending order) of the\n* smallest and largest eigenvalues to be returned.\n* 1 <= IL <= IU <= N, if N > 0.\n* Not referenced if RANGE = 'A' or 'V'.\n*\n* ABSTOL (input) REAL\n* Unused. Was the absolute error tolerance for the\n* eigenvalues/eigenvectors in previous versions.\n*\n* M (output) INTEGER\n* The total number of eigenvalues found. 0 <= M <= N.\n* If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1.\n*\n* W (output) REAL array, dimension (N)\n* The first M elements contain the selected eigenvalues in\n* ascending order.\n*\n* Z (output) REAL array, dimension (LDZ, max(1,M) )\n* If JOBZ = 'V', and if INFO = 0, then the first M columns of Z\n* contain the orthonormal eigenvectors of the matrix T\n* corresponding to the selected eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* If JOBZ = 'N', then Z is not referenced.\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z; if RANGE = 'V', the exact value of M\n* is not known in advance and an upper bound must be used.\n* Supplying N columns is always safe.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', then LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER ARRAY, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The i-th computed eigenvector\n* is nonzero only in elements ISUPPZ( 2*i-1 ) through\n* ISUPPZ( 2*i ). This is relevant in the case when the matrix\n* is split. ISUPPZ is only accessed when JOBZ is 'V' and N > 0.\n*\n* WORK (workspace/output) REAL array, dimension (LWORK)\n* On exit, if INFO = 0, WORK(1) returns the optimal\n* (and minimal) LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK >= max(1,18*N)\n* if JOBZ = 'V', and LWORK >= max(1,12*N) if JOBZ = 'N'.\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the WORK array, returns\n* this value as the first entry of the WORK array, and no error\n* message related to LWORK is issued by XERBLA.\n*\n* IWORK (workspace/output) INTEGER array, dimension (LIWORK)\n* On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.\n*\n* LIWORK (input) INTEGER\n* The dimension of the array IWORK. LIWORK >= max(1,10*N)\n* if the eigenvectors are desired, and LIWORK >= max(1,8*N)\n* if only the eigenvalues are to be computed.\n* If LIWORK = -1, then a workspace query is assumed; the\n* routine only calculates the optimal size of the IWORK array,\n* returns this value as the first entry of the IWORK array, and\n* no error message related to LIWORK is issued by XERBLA.\n*\n* INFO (output) INTEGER\n* On exit, INFO\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = 1X, internal error in SLARRE,\n* if INFO = 2X, internal error in SLARRV.\n* Here, the digit X = ABS( IINFO ) < 10, where IINFO is\n* the nonzero error code returned by SLARRE or\n* SLARRV, respectively.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Inderjit Dhillon, IBM Almaden, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n* .. Local Scalars ..\n LOGICAL TRYRAC\n* ..\n* .. External Subroutines ..\n EXTERNAL SSTEMR\n* ..\n\n"); - return Qnil; - } - if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { -diff --git a/ext/zcgesv.c b/ext/zcgesv.c -index 8f5fb14..a15b56f 100644 ---- a/ext/zcgesv.c -+++ b/ext/zcgesv.c -@@ -34,7 +34,7 @@ rblapack_zcgesv(int argc, VALUE *argv, VALUE self){ - argc--; - rblapack_options = argv[argc]; - if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { -- printf("%s\n", "USAGE:\n ipiv, x, iter, info, a = NumRu::Lapack.zcgesv( a, b, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE ZCGESV( N, NRHS, A, LDA, IPIV, B, LDB, X, LDX, WORK, SWORK, RWORK, ITER, INFO )\n\n* Purpose\n* =======\n*\n* ZCGESV computes the solution to a complex system of linear equations\n* A * X = B,\n* where A is an N-by-N matrix and X and B are N-by-NRHS matrices.\n*\n* ZCGESV first attempts to factorize the matrix in COMPLEX and use this\n* factorization within an iterative refinement procedure to produce a\n* solution with COMPLEX*16 normwise backward error quality (see below).\n* If the approach fails the method switches to a COMPLEX*16\n* factorization and solve.\n*\n* The iterative refinement is not going to be a winning strategy if\n* the ratio COMPLEX performance over COMPLEX*16 performance is too\n* small. A reasonable strategy should take the number of right-hand\n* sides and the size of the matrix into account. This might be done\n* with a call to ILAENV in the future. Up to now, we always try\n* iterative refinement.\n*\n* The iterative refinement process is stopped if\n* ITER > ITERMAX\n* or for all the RHS we have:\n* RNRM < SQRT(N)*XNRM*ANRM*EPS*BWDMAX\n* where\n* o ITER is the number of the current iteration in the iterative\n* refinement process\n* o RNRM is the infinity-norm of the residual\n* o XNRM is the infinity-norm of the solution\n* o ANRM is the infinity-operator-norm of the matrix A\n* o EPS is the machine epsilon returned by DLAMCH('Epsilon')\n* The value ITERMAX and BWDMAX are fixed to 30 and 1.0D+00\n* respectively.\n*\n\n* Arguments\n* =========\n*\n* N (input) INTEGER\n* The number of linear equations, i.e., the order of the\n* matrix A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrix B. NRHS >= 0.\n*\n* A (input/output) COMPLEX*16 array,\n* dimension (LDA,N)\n* On entry, the N-by-N coefficient matrix A.\n* On exit, if iterative refinement has been successfully used\n* (INFO.EQ.0 and ITER.GE.0, see description below), then A is\n* unchanged, if double precision factorization has been used\n* (INFO.EQ.0 and ITER.LT.0, see description below), then the\n* array A contains the factors L and U from the factorization\n* A = P*L*U; the unit diagonal elements of L are not stored.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* IPIV (output) INTEGER array, dimension (N)\n* The pivot indices that define the permutation matrix P;\n* row i of the matrix was interchanged with row IPIV(i).\n* Corresponds either to the single precision factorization\n* (if INFO.EQ.0 and ITER.GE.0) or the double precision\n* factorization (if INFO.EQ.0 and ITER.LT.0).\n*\n* B (input) COMPLEX*16 array, dimension (LDB,NRHS)\n* The N-by-NRHS right hand side matrix B.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,N).\n*\n* X (output) COMPLEX*16 array, dimension (LDX,NRHS)\n* If INFO = 0, the N-by-NRHS solution matrix X.\n*\n* LDX (input) INTEGER\n* The leading dimension of the array X. LDX >= max(1,N).\n*\n* WORK (workspace) COMPLEX*16 array, dimension (N*NRHS)\n* This array is used to hold the residual vectors.\n*\n* SWORK (workspace) COMPLEX array, dimension (N*(N+NRHS))\n* This array is used to use the single precision matrix and the\n* right-hand sides or solutions in single precision.\n*\n* RWORK (workspace) DOUBLE PRECISION array, dimension (N)\n*\n* ITER (output) INTEGER\n* < 0: iterative refinement has failed, COMPLEX*16\n* factorization has been performed\n* -1 : the routine fell back to full precision for\n* implementation- or machine-specific reasons\n* -2 : narrowing the precision induced an overflow,\n* the routine fell back to full precision\n* -3 : failure of CGETRF\n* -31: stop the iterative refinement after the 30th\n* iterations\n* > 0: iterative refinement has been sucessfully used.\n* Returns the number of iterations\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = i, U(i,i) computed in COMPLEX*16 is exactly\n* zero. The factorization has been completed, but the\n* factor U is exactly singular, so the solution\n* could not be computed.\n*\n* =========\n*\n\n"); -+ printf("%s\n", "USAGE:\n ipiv, x, iter, info, a = NumRu::Lapack.zcgesv( a, b, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE ZCGESV( N, NRHS, A, LDA, IPIV, B, LDB, X, LDX, WORK, SWORK, RWORK, ITER, INFO )\n\n* Purpose\n* =======\n*\n* ZCGESV computes the solution to a complex system of linear equations\n* A * X = B,\n* where A is an N-by-N matrix and X and B are N-by-NRHS matrices.\n*\n* ZCGESV first attempts to factorize the matrix in COMPLEX and use this\n* factorization within an iterative refinement procedure to produce a\n* solution with COMPLEX*16 normwise backward error quality (see below).\n* If the approach fails the method switches to a COMPLEX*16\n* factorization and solve.\n*\n* The iterative refinement is not going to be a winning strategy if\n* the ratio COMPLEX performance over COMPLEX*16 performance is too\n* small. A reasonable strategy should take the number of right-hand\n* sides and the size of the matrix into account. This might be done\n* with a call to ILAENV in the future. Up to now, we always try\n* iterative refinement.\n*\n* The iterative refinement process is stopped if\n* ITER > ITERMAX\n* or for all the RHS we have:\n* RNRM < SQRT(N)*XNRM*ANRM*EPS*BWDMAX\n* where\n* o ITER is the number of the current iteration in the iterative\n* refinement process\n* o RNRM is the infinity-norm of the residual\n* o XNRM is the infinity-norm of the solution\n* o ANRM is the infinity-operator-norm of the matrix A\n* o EPS is the machine epsilon returned by DLAMCH('Epsilon')\n* The value ITERMAX and BWDMAX are fixed to 30 and 1.0D+00\n* respectively.\n*\n\n* Arguments\n* =========\n*\n* N (input) INTEGER\n* The number of linear equations, i.e., the order of the\n* matrix A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrix B. NRHS >= 0.\n*\n* A (input/output) COMPLEX*16 array,\n* dimension (LDA,N)\n* On entry, the N-by-N coefficient matrix A.\n* On exit, if iterative refinement has been successfully used\n* (INFO.EQ.0 and ITER.GE.0, see description below), then A is\n* unchanged, if double precision factorization has been used\n* (INFO.EQ.0 and ITER.LT.0, see description below), then the\n* array A contains the factors L and U from the factorization\n* A = P*L*U; the unit diagonal elements of L are not stored.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* IPIV (output) INTEGER array, dimension (N)\n* The pivot indices that define the permutation matrix P;\n* row i of the matrix was interchanged with row IPIV(i).\n* Corresponds either to the single precision factorization\n* (if INFO.EQ.0 and ITER.GE.0) or the double precision\n* factorization (if INFO.EQ.0 and ITER.LT.0).\n*\n* B (input) COMPLEX*16 array, dimension (LDB,NRHS)\n* The N-by-NRHS right hand side matrix B.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,N).\n*\n* X (output) COMPLEX*16 array, dimension (LDX,NRHS)\n* If INFO = 0, the N-by-NRHS solution matrix X.\n*\n* LDX (input) INTEGER\n* The leading dimension of the array X. LDX >= max(1,N).\n*\n* WORK (workspace) COMPLEX*16 array, dimension (N*NRHS)\n* This array is used to hold the residual vectors.\n*\n* SWORK (workspace) COMPLEX array, dimension (N*(N+NRHS))\n* This array is used to use the single precision matrix and the\n* right-hand sides or solutions in single precision.\n*\n* RWORK (workspace) DOUBLE PRECISION array, dimension (N)\n*\n* ITER (output) INTEGER\n* < 0: iterative refinement has failed, COMPLEX*16\n* factorization has been performed\n* -1 : the routine fell back to full precision for\n* implementation- or machine-specific reasons\n* -2 : narrowing the precision induced an overflow,\n* the routine fell back to full precision\n* -3 : failure of CGETRF\n* -31: stop the iterative refinement after the 30th\n* iterations\n* > 0: iterative refinement has been successfully used.\n* Returns the number of iterations\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = i, U(i,i) computed in COMPLEX*16 is exactly\n* zero. The factorization has been completed, but the\n* factor U is exactly singular, so the solution\n* could not be computed.\n*\n* =========\n*\n\n"); - return Qnil; - } - if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { -diff --git a/ext/zcposv.c b/ext/zcposv.c -index 17edb2f..ab2a492 100644 ---- a/ext/zcposv.c -+++ b/ext/zcposv.c -@@ -34,7 +34,7 @@ rblapack_zcposv(int argc, VALUE *argv, VALUE self){ - argc--; - rblapack_options = argv[argc]; - if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { -- printf("%s\n", "USAGE:\n x, iter, info, a = NumRu::Lapack.zcposv( uplo, a, b, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE ZCPOSV( UPLO, N, NRHS, A, LDA, B, LDB, X, LDX, WORK, SWORK, RWORK, ITER, INFO )\n\n* Purpose\n* =======\n*\n* ZCPOSV computes the solution to a complex system of linear equations\n* A * X = B,\n* where A is an N-by-N Hermitian positive definite matrix and X and B\n* are N-by-NRHS matrices.\n*\n* ZCPOSV first attempts to factorize the matrix in COMPLEX and use this\n* factorization within an iterative refinement procedure to produce a\n* solution with COMPLEX*16 normwise backward error quality (see below).\n* If the approach fails the method switches to a COMPLEX*16\n* factorization and solve.\n*\n* The iterative refinement is not going to be a winning strategy if\n* the ratio COMPLEX performance over COMPLEX*16 performance is too\n* small. A reasonable strategy should take the number of right-hand\n* sides and the size of the matrix into account. This might be done\n* with a call to ILAENV in the future. Up to now, we always try\n* iterative refinement.\n*\n* The iterative refinement process is stopped if\n* ITER > ITERMAX\n* or for all the RHS we have:\n* RNRM < SQRT(N)*XNRM*ANRM*EPS*BWDMAX\n* where\n* o ITER is the number of the current iteration in the iterative\n* refinement process\n* o RNRM is the infinity-norm of the residual\n* o XNRM is the infinity-norm of the solution\n* o ANRM is the infinity-operator-norm of the matrix A\n* o EPS is the machine epsilon returned by DLAMCH('Epsilon')\n* The value ITERMAX and BWDMAX are fixed to 30 and 1.0D+00\n* respectively.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* = 'U': Upper triangle of A is stored;\n* = 'L': Lower triangle of A is stored.\n*\n* N (input) INTEGER\n* The number of linear equations, i.e., the order of the\n* matrix A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrix B. NRHS >= 0.\n*\n* A (input/output) COMPLEX*16 array,\n* dimension (LDA,N)\n* On entry, the Hermitian matrix A. If UPLO = 'U', the leading\n* N-by-N upper triangular part of A contains the upper\n* triangular part of the matrix A, and the strictly lower\n* triangular part of A is not referenced. If UPLO = 'L', the\n* leading N-by-N lower triangular part of A contains the lower\n* triangular part of the matrix A, and the strictly upper\n* triangular part of A is not referenced.\n*\n* Note that the imaginary parts of the diagonal\n* elements need not be set and are assumed to be zero.\n*\n* On exit, if iterative refinement has been successfully used\n* (INFO.EQ.0 and ITER.GE.0, see description below), then A is\n* unchanged, if double precision factorization has been used\n* (INFO.EQ.0 and ITER.LT.0, see description below), then the\n* array A contains the factor U or L from the Cholesky\n* factorization A = U**H*U or A = L*L**H.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* B (input) COMPLEX*16 array, dimension (LDB,NRHS)\n* The N-by-NRHS right hand side matrix B.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,N).\n*\n* X (output) COMPLEX*16 array, dimension (LDX,NRHS)\n* If INFO = 0, the N-by-NRHS solution matrix X.\n*\n* LDX (input) INTEGER\n* The leading dimension of the array X. LDX >= max(1,N).\n*\n* WORK (workspace) COMPLEX*16 array, dimension (N*NRHS)\n* This array is used to hold the residual vectors.\n*\n* SWORK (workspace) COMPLEX array, dimension (N*(N+NRHS))\n* This array is used to use the single precision matrix and the\n* right-hand sides or solutions in single precision.\n*\n* RWORK (workspace) DOUBLE PRECISION array, dimension (N)\n*\n* ITER (output) INTEGER\n* < 0: iterative refinement has failed, COMPLEX*16\n* factorization has been performed\n* -1 : the routine fell back to full precision for\n* implementation- or machine-specific reasons\n* -2 : narrowing the precision induced an overflow,\n* the routine fell back to full precision\n* -3 : failure of CPOTRF\n* -31: stop the iterative refinement after the 30th\n* iterations\n* > 0: iterative refinement has been sucessfully used.\n* Returns the number of iterations\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = i, the leading minor of order i of\n* (COMPLEX*16) A is not positive definite, so the\n* factorization could not be completed, and the solution\n* has not been computed.\n*\n* =========\n*\n\n"); -+ printf("%s\n", "USAGE:\n x, iter, info, a = NumRu::Lapack.zcposv( uplo, a, b, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE ZCPOSV( UPLO, N, NRHS, A, LDA, B, LDB, X, LDX, WORK, SWORK, RWORK, ITER, INFO )\n\n* Purpose\n* =======\n*\n* ZCPOSV computes the solution to a complex system of linear equations\n* A * X = B,\n* where A is an N-by-N Hermitian positive definite matrix and X and B\n* are N-by-NRHS matrices.\n*\n* ZCPOSV first attempts to factorize the matrix in COMPLEX and use this\n* factorization within an iterative refinement procedure to produce a\n* solution with COMPLEX*16 normwise backward error quality (see below).\n* If the approach fails the method switches to a COMPLEX*16\n* factorization and solve.\n*\n* The iterative refinement is not going to be a winning strategy if\n* the ratio COMPLEX performance over COMPLEX*16 performance is too\n* small. A reasonable strategy should take the number of right-hand\n* sides and the size of the matrix into account. This might be done\n* with a call to ILAENV in the future. Up to now, we always try\n* iterative refinement.\n*\n* The iterative refinement process is stopped if\n* ITER > ITERMAX\n* or for all the RHS we have:\n* RNRM < SQRT(N)*XNRM*ANRM*EPS*BWDMAX\n* where\n* o ITER is the number of the current iteration in the iterative\n* refinement process\n* o RNRM is the infinity-norm of the residual\n* o XNRM is the infinity-norm of the solution\n* o ANRM is the infinity-operator-norm of the matrix A\n* o EPS is the machine epsilon returned by DLAMCH('Epsilon')\n* The value ITERMAX and BWDMAX are fixed to 30 and 1.0D+00\n* respectively.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* = 'U': Upper triangle of A is stored;\n* = 'L': Lower triangle of A is stored.\n*\n* N (input) INTEGER\n* The number of linear equations, i.e., the order of the\n* matrix A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrix B. NRHS >= 0.\n*\n* A (input/output) COMPLEX*16 array,\n* dimension (LDA,N)\n* On entry, the Hermitian matrix A. If UPLO = 'U', the leading\n* N-by-N upper triangular part of A contains the upper\n* triangular part of the matrix A, and the strictly lower\n* triangular part of A is not referenced. If UPLO = 'L', the\n* leading N-by-N lower triangular part of A contains the lower\n* triangular part of the matrix A, and the strictly upper\n* triangular part of A is not referenced.\n*\n* Note that the imaginary parts of the diagonal\n* elements need not be set and are assumed to be zero.\n*\n* On exit, if iterative refinement has been successfully used\n* (INFO.EQ.0 and ITER.GE.0, see description below), then A is\n* unchanged, if double precision factorization has been used\n* (INFO.EQ.0 and ITER.LT.0, see description below), then the\n* array A contains the factor U or L from the Cholesky\n* factorization A = U**H*U or A = L*L**H.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* B (input) COMPLEX*16 array, dimension (LDB,NRHS)\n* The N-by-NRHS right hand side matrix B.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,N).\n*\n* X (output) COMPLEX*16 array, dimension (LDX,NRHS)\n* If INFO = 0, the N-by-NRHS solution matrix X.\n*\n* LDX (input) INTEGER\n* The leading dimension of the array X. LDX >= max(1,N).\n*\n* WORK (workspace) COMPLEX*16 array, dimension (N*NRHS)\n* This array is used to hold the residual vectors.\n*\n* SWORK (workspace) COMPLEX array, dimension (N*(N+NRHS))\n* This array is used to use the single precision matrix and the\n* right-hand sides or solutions in single precision.\n*\n* RWORK (workspace) DOUBLE PRECISION array, dimension (N)\n*\n* ITER (output) INTEGER\n* < 0: iterative refinement has failed, COMPLEX*16\n* factorization has been performed\n* -1 : the routine fell back to full precision for\n* implementation- or machine-specific reasons\n* -2 : narrowing the precision induced an overflow,\n* the routine fell back to full precision\n* -3 : failure of CPOTRF\n* -31: stop the iterative refinement after the 30th\n* iterations\n* > 0: iterative refinement has been successfully used.\n* Returns the number of iterations\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = i, the leading minor of order i of\n* (COMPLEX*16) A is not positive definite, so the\n* factorization could not be completed, and the solution\n* has not been computed.\n*\n* =========\n*\n\n"); - return Qnil; - } - if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { -diff --git a/ext/zgelsd.c b/ext/zgelsd.c -index bb440a8..372cb29 100644 ---- a/ext/zgelsd.c -+++ b/ext/zgelsd.c -@@ -43,7 +43,7 @@ rblapack_zgelsd(int argc, VALUE *argv, VALUE self){ - argc--; - rblapack_options = argv[argc]; - if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { -- printf("%s\n", "USAGE:\n s, rank, work, info, b = NumRu::Lapack.zgelsd( a, b, rcond, [:lwork => lwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE ZGELSD( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK, WORK, LWORK, RWORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* ZGELSD computes the minimum-norm solution to a real linear least\n* squares problem:\n* minimize 2-norm(| b - A*x |)\n* using the singular value decomposition (SVD) of A. A is an M-by-N\n* matrix which may be rank-deficient.\n*\n* Several right hand side vectors b and solution vectors x can be\n* handled in a single call; they are stored as the columns of the\n* M-by-NRHS right hand side matrix B and the N-by-NRHS solution\n* matrix X.\n*\n* The problem is solved in three steps:\n* (1) Reduce the coefficient matrix A to bidiagonal form with\n* Householder tranformations, reducing the original problem\n* into a \"bidiagonal least squares problem\" (BLS)\n* (2) Solve the BLS using a divide and conquer approach.\n* (3) Apply back all the Householder tranformations to solve\n* the original least squares problem.\n*\n* The effective rank of A is determined by treating as zero those\n* singular values which are less than RCOND times the largest singular\n* value.\n*\n* The divide and conquer algorithm makes very mild assumptions about\n* floating point arithmetic. It will work on machines with a guard\n* digit in add/subtract, or on those binary machines without guard\n* digits which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or\n* Cray-2. It could conceivably fail on hexadecimal or decimal machines\n* without guard digits, but we know of none.\n*\n\n* Arguments\n* =========\n*\n* M (input) INTEGER\n* The number of rows of the matrix A. M >= 0.\n*\n* N (input) INTEGER\n* The number of columns of the matrix A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrices B and X. NRHS >= 0.\n*\n* A (input) COMPLEX*16 array, dimension (LDA,N)\n* On entry, the M-by-N matrix A.\n* On exit, A has been destroyed.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* B (input/output) COMPLEX*16 array, dimension (LDB,NRHS)\n* On entry, the M-by-NRHS right hand side matrix B.\n* On exit, B is overwritten by the N-by-NRHS solution matrix X.\n* If m >= n and RANK = n, the residual sum-of-squares for\n* the solution in the i-th column is given by the sum of\n* squares of the modulus of elements n+1:m in that column.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,M,N).\n*\n* S (output) DOUBLE PRECISION array, dimension (min(M,N))\n* The singular values of A in decreasing order.\n* The condition number of A in the 2-norm = S(1)/S(min(m,n)).\n*\n* RCOND (input) DOUBLE PRECISION\n* RCOND is used to determine the effective rank of A.\n* Singular values S(i) <= RCOND*S(1) are treated as zero.\n* If RCOND < 0, machine precision is used instead.\n*\n* RANK (output) INTEGER\n* The effective rank of A, i.e., the number of singular values\n* which are greater than RCOND*S(1).\n*\n* WORK (workspace/output) COMPLEX*16 array, dimension (MAX(1,LWORK))\n* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK must be at least 1.\n* The exact minimum amount of workspace needed depends on M,\n* N and NRHS. As long as LWORK is at least\n* 2*N + N*NRHS\n* if M is greater than or equal to N or\n* 2*M + M*NRHS\n* if M is less than N, the code will execute correctly.\n* For good performance, LWORK should generally be larger.\n*\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the array WORK and the\n* minimum sizes of the arrays RWORK and IWORK, and returns\n* these values as the first entries of the WORK, RWORK and\n* IWORK arrays, and no error message related to LWORK is issued\n* by XERBLA.\n*\n* RWORK (workspace) DOUBLE PRECISION array, dimension (MAX(1,LRWORK))\n* LRWORK >=\n* 10*N + 2*N*SMLSIZ + 8*N*NLVL + 3*SMLSIZ*NRHS +\n* MAX( (SMLSIZ+1)**2, N*(1+NRHS) + 2*NRHS )\n* if M is greater than or equal to N or\n* 10*M + 2*M*SMLSIZ + 8*M*NLVL + 3*SMLSIZ*NRHS +\n* MAX( (SMLSIZ+1)**2, N*(1+NRHS) + 2*NRHS )\n* if M is less than N, the code will execute correctly.\n* SMLSIZ is returned by ILAENV and is equal to the maximum\n* size of the subproblems at the bottom of the computation\n* tree (usually about 25), and\n* NLVL = MAX( 0, INT( LOG_2( MIN( M,N )/(SMLSIZ+1) ) ) + 1 )\n* On exit, if INFO = 0, RWORK(1) returns the minimum LRWORK.\n*\n* IWORK (workspace) INTEGER array, dimension (MAX(1,LIWORK))\n* LIWORK >= max(1, 3*MINMN*NLVL + 11*MINMN),\n* where MINMN = MIN( M,N ).\n* On exit, if INFO = 0, IWORK(1) returns the minimum LIWORK.\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value.\n* > 0: the algorithm for computing the SVD failed to converge;\n* if INFO = i, i off-diagonal elements of an intermediate\n* bidiagonal form did not converge to zero.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Ming Gu and Ren-Cang Li, Computer Science Division, University of\n* California at Berkeley, USA\n* Osni Marques, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n\n"); -+ printf("%s\n", "USAGE:\n s, rank, work, info, b = NumRu::Lapack.zgelsd( a, b, rcond, [:lwork => lwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE ZGELSD( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK, WORK, LWORK, RWORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* ZGELSD computes the minimum-norm solution to a real linear least\n* squares problem:\n* minimize 2-norm(| b - A*x |)\n* using the singular value decomposition (SVD) of A. A is an M-by-N\n* matrix which may be rank-deficient.\n*\n* Several right hand side vectors b and solution vectors x can be\n* handled in a single call; they are stored as the columns of the\n* M-by-NRHS right hand side matrix B and the N-by-NRHS solution\n* matrix X.\n*\n* The problem is solved in three steps:\n* (1) Reduce the coefficient matrix A to bidiagonal form with\n* Householder transformations, reducing the original problem\n* into a \"bidiagonal least squares problem\" (BLS)\n* (2) Solve the BLS using a divide and conquer approach.\n* (3) Apply back all the Householder transformations to solve\n* the original least squares problem.\n*\n* The effective rank of A is determined by treating as zero those\n* singular values which are less than RCOND times the largest singular\n* value.\n*\n* The divide and conquer algorithm makes very mild assumptions about\n* floating point arithmetic. It will work on machines with a guard\n* digit in add/subtract, or on those binary machines without guard\n* digits which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or\n* Cray-2. It could conceivably fail on hexadecimal or decimal machines\n* without guard digits, but we know of none.\n*\n\n* Arguments\n* =========\n*\n* M (input) INTEGER\n* The number of rows of the matrix A. M >= 0.\n*\n* N (input) INTEGER\n* The number of columns of the matrix A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrices B and X. NRHS >= 0.\n*\n* A (input) COMPLEX*16 array, dimension (LDA,N)\n* On entry, the M-by-N matrix A.\n* On exit, A has been destroyed.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* B (input/output) COMPLEX*16 array, dimension (LDB,NRHS)\n* On entry, the M-by-NRHS right hand side matrix B.\n* On exit, B is overwritten by the N-by-NRHS solution matrix X.\n* If m >= n and RANK = n, the residual sum-of-squares for\n* the solution in the i-th column is given by the sum of\n* squares of the modulus of elements n+1:m in that column.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,M,N).\n*\n* S (output) DOUBLE PRECISION array, dimension (min(M,N))\n* The singular values of A in decreasing order.\n* The condition number of A in the 2-norm = S(1)/S(min(m,n)).\n*\n* RCOND (input) DOUBLE PRECISION\n* RCOND is used to determine the effective rank of A.\n* Singular values S(i) <= RCOND*S(1) are treated as zero.\n* If RCOND < 0, machine precision is used instead.\n*\n* RANK (output) INTEGER\n* The effective rank of A, i.e., the number of singular values\n* which are greater than RCOND*S(1).\n*\n* WORK (workspace/output) COMPLEX*16 array, dimension (MAX(1,LWORK))\n* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK must be at least 1.\n* The exact minimum amount of workspace needed depends on M,\n* N and NRHS. As long as LWORK is at least\n* 2*N + N*NRHS\n* if M is greater than or equal to N or\n* 2*M + M*NRHS\n* if M is less than N, the code will execute correctly.\n* For good performance, LWORK should generally be larger.\n*\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the array WORK and the\n* minimum sizes of the arrays RWORK and IWORK, and returns\n* these values as the first entries of the WORK, RWORK and\n* IWORK arrays, and no error message related to LWORK is issued\n* by XERBLA.\n*\n* RWORK (workspace) DOUBLE PRECISION array, dimension (MAX(1,LRWORK))\n* LRWORK >=\n* 10*N + 2*N*SMLSIZ + 8*N*NLVL + 3*SMLSIZ*NRHS +\n* MAX( (SMLSIZ+1)**2, N*(1+NRHS) + 2*NRHS )\n* if M is greater than or equal to N or\n* 10*M + 2*M*SMLSIZ + 8*M*NLVL + 3*SMLSIZ*NRHS +\n* MAX( (SMLSIZ+1)**2, N*(1+NRHS) + 2*NRHS )\n* if M is less than N, the code will execute correctly.\n* SMLSIZ is returned by ILAENV and is equal to the maximum\n* size of the subproblems at the bottom of the computation\n* tree (usually about 25), and\n* NLVL = MAX( 0, INT( LOG_2( MIN( M,N )/(SMLSIZ+1) ) ) + 1 )\n* On exit, if INFO = 0, RWORK(1) returns the minimum LRWORK.\n*\n* IWORK (workspace) INTEGER array, dimension (MAX(1,LIWORK))\n* LIWORK >= max(1, 3*MINMN*NLVL + 11*MINMN),\n* where MINMN = MIN( M,N ).\n* On exit, if INFO = 0, IWORK(1) returns the minimum LIWORK.\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value.\n* > 0: the algorithm for computing the SVD failed to converge;\n* if INFO = i, i off-diagonal elements of an intermediate\n* bidiagonal form did not converge to zero.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Ming Gu and Ren-Cang Li, Computer Science Division, University of\n* California at Berkeley, USA\n* Osni Marques, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n\n"); - return Qnil; - } - if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { -diff --git a/ext/zlarrv.c b/ext/zlarrv.c -index 26ee791..6567365 100644 ---- a/ext/zlarrv.c -+++ b/ext/zlarrv.c -@@ -68,7 +68,7 @@ rblapack_zlarrv(int argc, VALUE *argv, VALUE self){ - argc--; - rblapack_options = argv[argc]; - if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { -- printf("%s\n", "USAGE:\n z, isuppz, info, d, l, w, werr, wgap = NumRu::Lapack.zlarrv( vl, vu, d, l, pivmin, isplit, m, dol, dou, minrgp, rtol1, rtol2, w, werr, wgap, iblock, indexw, gers, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE ZLARRV( N, VL, VU, D, L, PIVMIN, ISPLIT, M, DOL, DOU, MINRGP, RTOL1, RTOL2, W, WERR, WGAP, IBLOCK, INDEXW, GERS, Z, LDZ, ISUPPZ, WORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* ZLARRV computes the eigenvectors of the tridiagonal matrix\n* T = L D L^T given L, D and APPROXIMATIONS to the eigenvalues of L D L^T.\n* The input eigenvalues should have been computed by DLARRE.\n*\n\n* Arguments\n* =========\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* VL (input) DOUBLE PRECISION\n* VU (input) DOUBLE PRECISION\n* Lower and upper bounds of the interval that contains the desired\n* eigenvalues. VL < VU. Needed to compute gaps on the left or right\n* end of the extremal eigenvalues in the desired RANGE.\n*\n* D (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the N diagonal elements of the diagonal matrix D.\n* On exit, D may be overwritten.\n*\n* L (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the unit\n* bidiagonal matrix L are in elements 1 to N-1 of L\n* (if the matrix is not split.) At the end of each block\n* is stored the corresponding shift as given by DLARRE.\n* On exit, L is overwritten.\n*\n* PIVMIN (in) DOUBLE PRECISION\n* The minimum pivot allowed in the Sturm sequence.\n*\n* ISPLIT (input) INTEGER array, dimension (N)\n* The splitting points, at which T breaks up into blocks.\n* The first block consists of rows/columns 1 to\n* ISPLIT( 1 ), the second of rows/columns ISPLIT( 1 )+1\n* through ISPLIT( 2 ), etc.\n*\n* M (input) INTEGER\n* The total number of input eigenvalues. 0 <= M <= N.\n*\n* DOL (input) INTEGER\n* DOU (input) INTEGER\n* If the user wants to compute only selected eigenvectors from all\n* the eigenvalues supplied, he can specify an index range DOL:DOU.\n* Or else the setting DOL=1, DOU=M should be applied.\n* Note that DOL and DOU refer to the order in which the eigenvalues\n* are stored in W.\n* If the user wants to compute only selected eigenpairs, then\n* the columns DOL-1 to DOU+1 of the eigenvector space Z contain the\n* computed eigenvectors. All other columns of Z are set to zero.\n*\n* MINRGP (input) DOUBLE PRECISION\n*\n* RTOL1 (input) DOUBLE PRECISION\n* RTOL2 (input) DOUBLE PRECISION\n* Parameters for bisection.\n* An interval [LEFT,RIGHT] has converged if\n* RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) )\n*\n* W (input/output) DOUBLE PRECISION array, dimension (N)\n* The first M elements of W contain the APPROXIMATE eigenvalues for\n* which eigenvectors are to be computed. The eigenvalues\n* should be grouped by split-off block and ordered from\n* smallest to largest within the block ( The output array\n* W from DLARRE is expected here ). Furthermore, they are with\n* respect to the shift of the corresponding root representation\n* for their block. On exit, W holds the eigenvalues of the\n* UNshifted matrix.\n*\n* WERR (input/output) DOUBLE PRECISION array, dimension (N)\n* The first M elements contain the semiwidth of the uncertainty\n* interval of the corresponding eigenvalue in W\n*\n* WGAP (input/output) DOUBLE PRECISION array, dimension (N)\n* The separation from the right neighbor eigenvalue in W.\n*\n* IBLOCK (input) INTEGER array, dimension (N)\n* The indices of the blocks (submatrices) associated with the\n* corresponding eigenvalues in W; IBLOCK(i)=1 if eigenvalue\n* W(i) belongs to the first block from the top, =2 if W(i)\n* belongs to the second block, etc.\n*\n* INDEXW (input) INTEGER array, dimension (N)\n* The indices of the eigenvalues within each block (submatrix);\n* for example, INDEXW(i)= 10 and IBLOCK(i)=2 imply that the\n* i-th eigenvalue W(i) is the 10-th eigenvalue in the second block.\n*\n* GERS (input) DOUBLE PRECISION array, dimension (2*N)\n* The N Gerschgorin intervals (the i-th Gerschgorin interval\n* is (GERS(2*i-1), GERS(2*i)). The Gerschgorin intervals should\n* be computed from the original UNshifted matrix.\n*\n* Z (output) COMPLEX*16 array, dimension (LDZ, max(1,M) )\n* If INFO = 0, the first M columns of Z contain the\n* orthonormal eigenvectors of the matrix T\n* corresponding to the input eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER array, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The I-th eigenvector\n* is nonzero only in elements ISUPPZ( 2*I-1 ) through\n* ISUPPZ( 2*I ).\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (12*N)\n*\n* IWORK (workspace) INTEGER array, dimension (7*N)\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n*\n* > 0: A problem occured in ZLARRV.\n* < 0: One of the called subroutines signaled an internal problem.\n* Needs inspection of the corresponding parameter IINFO\n* for further information.\n*\n* =-1: Problem in DLARRB when refining a child's eigenvalues.\n* =-2: Problem in DLARRF when computing the RRR of a child.\n* When a child is inside a tight cluster, it can be difficult\n* to find an RRR. A partial remedy from the user's point of\n* view is to make the parameter MINRGP smaller and recompile.\n* However, as the orthogonality of the computed vectors is\n* proportional to 1/MINRGP, the user should be aware that\n* he might be trading in precision when he decreases MINRGP.\n* =-3: Problem in DLARRB when refining a single eigenvalue\n* after the Rayleigh correction was rejected.\n* = 5: The Rayleigh Quotient Iteration failed to converge to\n* full accuracy in MAXITR steps.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Beresford Parlett, University of California, Berkeley, USA\n* Jim Demmel, University of California, Berkeley, USA\n* Inderjit Dhillon, University of Texas, Austin, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, University of California, Berkeley, USA\n*\n* =====================================================================\n*\n\n"); -+ printf("%s\n", "USAGE:\n z, isuppz, info, d, l, w, werr, wgap = NumRu::Lapack.zlarrv( vl, vu, d, l, pivmin, isplit, m, dol, dou, minrgp, rtol1, rtol2, w, werr, wgap, iblock, indexw, gers, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE ZLARRV( N, VL, VU, D, L, PIVMIN, ISPLIT, M, DOL, DOU, MINRGP, RTOL1, RTOL2, W, WERR, WGAP, IBLOCK, INDEXW, GERS, Z, LDZ, ISUPPZ, WORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* ZLARRV computes the eigenvectors of the tridiagonal matrix\n* T = L D L^T given L, D and APPROXIMATIONS to the eigenvalues of L D L^T.\n* The input eigenvalues should have been computed by DLARRE.\n*\n\n* Arguments\n* =========\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* VL (input) DOUBLE PRECISION\n* VU (input) DOUBLE PRECISION\n* Lower and upper bounds of the interval that contains the desired\n* eigenvalues. VL < VU. Needed to compute gaps on the left or right\n* end of the extremal eigenvalues in the desired RANGE.\n*\n* D (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the N diagonal elements of the diagonal matrix D.\n* On exit, D may be overwritten.\n*\n* L (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the unit\n* bidiagonal matrix L are in elements 1 to N-1 of L\n* (if the matrix is not split.) At the end of each block\n* is stored the corresponding shift as given by DLARRE.\n* On exit, L is overwritten.\n*\n* PIVMIN (in) DOUBLE PRECISION\n* The minimum pivot allowed in the Sturm sequence.\n*\n* ISPLIT (input) INTEGER array, dimension (N)\n* The splitting points, at which T breaks up into blocks.\n* The first block consists of rows/columns 1 to\n* ISPLIT( 1 ), the second of rows/columns ISPLIT( 1 )+1\n* through ISPLIT( 2 ), etc.\n*\n* M (input) INTEGER\n* The total number of input eigenvalues. 0 <= M <= N.\n*\n* DOL (input) INTEGER\n* DOU (input) INTEGER\n* If the user wants to compute only selected eigenvectors from all\n* the eigenvalues supplied, he can specify an index range DOL:DOU.\n* Or else the setting DOL=1, DOU=M should be applied.\n* Note that DOL and DOU refer to the order in which the eigenvalues\n* are stored in W.\n* If the user wants to compute only selected eigenpairs, then\n* the columns DOL-1 to DOU+1 of the eigenvector space Z contain the\n* computed eigenvectors. All other columns of Z are set to zero.\n*\n* MINRGP (input) DOUBLE PRECISION\n*\n* RTOL1 (input) DOUBLE PRECISION\n* RTOL2 (input) DOUBLE PRECISION\n* Parameters for bisection.\n* An interval [LEFT,RIGHT] has converged if\n* RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) )\n*\n* W (input/output) DOUBLE PRECISION array, dimension (N)\n* The first M elements of W contain the APPROXIMATE eigenvalues for\n* which eigenvectors are to be computed. The eigenvalues\n* should be grouped by split-off block and ordered from\n* smallest to largest within the block ( The output array\n* W from DLARRE is expected here ). Furthermore, they are with\n* respect to the shift of the corresponding root representation\n* for their block. On exit, W holds the eigenvalues of the\n* UNshifted matrix.\n*\n* WERR (input/output) DOUBLE PRECISION array, dimension (N)\n* The first M elements contain the semiwidth of the uncertainty\n* interval of the corresponding eigenvalue in W\n*\n* WGAP (input/output) DOUBLE PRECISION array, dimension (N)\n* The separation from the right neighbor eigenvalue in W.\n*\n* IBLOCK (input) INTEGER array, dimension (N)\n* The indices of the blocks (submatrices) associated with the\n* corresponding eigenvalues in W; IBLOCK(i)=1 if eigenvalue\n* W(i) belongs to the first block from the top, =2 if W(i)\n* belongs to the second block, etc.\n*\n* INDEXW (input) INTEGER array, dimension (N)\n* The indices of the eigenvalues within each block (submatrix);\n* for example, INDEXW(i)= 10 and IBLOCK(i)=2 imply that the\n* i-th eigenvalue W(i) is the 10-th eigenvalue in the second block.\n*\n* GERS (input) DOUBLE PRECISION array, dimension (2*N)\n* The N Gerschgorin intervals (the i-th Gerschgorin interval\n* is (GERS(2*i-1), GERS(2*i)). The Gerschgorin intervals should\n* be computed from the original UNshifted matrix.\n*\n* Z (output) COMPLEX*16 array, dimension (LDZ, max(1,M) )\n* If INFO = 0, the first M columns of Z contain the\n* orthonormal eigenvectors of the matrix T\n* corresponding to the input eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER array, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The I-th eigenvector\n* is nonzero only in elements ISUPPZ( 2*I-1 ) through\n* ISUPPZ( 2*I ).\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (12*N)\n*\n* IWORK (workspace) INTEGER array, dimension (7*N)\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n*\n* > 0: A problem occurred in ZLARRV.\n* < 0: One of the called subroutines signaled an internal problem.\n* Needs inspection of the corresponding parameter IINFO\n* for further information.\n*\n* =-1: Problem in DLARRB when refining a child's eigenvalues.\n* =-2: Problem in DLARRF when computing the RRR of a child.\n* When a child is inside a tight cluster, it can be difficult\n* to find an RRR. A partial remedy from the user's point of\n* view is to make the parameter MINRGP smaller and recompile.\n* However, as the orthogonality of the computed vectors is\n* proportional to 1/MINRGP, the user should be aware that\n* he might be trading in precision when he decreases MINRGP.\n* =-3: Problem in DLARRB when refining a single eigenvalue\n* after the Rayleigh correction was rejected.\n* = 5: The Rayleigh Quotient Iteration failed to converge to\n* full accuracy in MAXITR steps.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Beresford Parlett, University of California, Berkeley, USA\n* Jim Demmel, University of California, Berkeley, USA\n* Inderjit Dhillon, University of Texas, Austin, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, University of California, Berkeley, USA\n*\n* =====================================================================\n*\n\n"); - return Qnil; - } - if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { -diff --git a/ext/zlat2c.c b/ext/zlat2c.c -index e5ed8f9..6a0f2d2 100644 ---- a/ext/zlat2c.c -+++ b/ext/zlat2c.c -@@ -23,7 +23,7 @@ rblapack_zlat2c(int argc, VALUE *argv, VALUE self){ - argc--; - rblapack_options = argv[argc]; - if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { -- printf("%s\n", "USAGE:\n sa, info = NumRu::Lapack.zlat2c( uplo, a, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE ZLAT2C( UPLO, N, A, LDA, SA, LDSA, INFO )\n\n* Purpose\n* =======\n*\n* ZLAT2C converts a COMPLEX*16 triangular matrix, SA, to a COMPLEX\n* triangular matrix, A.\n*\n* RMAX is the overflow for the SINGLE PRECISION arithmetic\n* ZLAT2C checks that all the entries of A are between -RMAX and\n* RMAX. If not the convertion is aborted and a flag is raised.\n*\n* This is an auxiliary routine so there is no argument checking.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* = 'U': A is upper triangular;\n* = 'L': A is lower triangular.\n*\n* N (input) INTEGER\n* The number of rows and columns of the matrix A. N >= 0.\n*\n* A (input) COMPLEX*16 array, dimension (LDA,N)\n* On entry, the N-by-N triangular coefficient matrix A.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* SA (output) COMPLEX array, dimension (LDSA,N)\n* Only the UPLO part of SA is referenced. On exit, if INFO=0,\n* the N-by-N coefficient matrix SA; if INFO>0, the content of\n* the UPLO part of SA is unspecified.\n*\n* LDSA (input) INTEGER\n* The leading dimension of the array SA. LDSA >= max(1,M).\n*\n* INFO (output) INTEGER\n* = 0: successful exit.\n* = 1: an entry of the matrix A is greater than the SINGLE\n* PRECISION overflow threshold, in this case, the content\n* of the UPLO part of SA in exit is unspecified.\n*\n* =========\n*\n* .. Local Scalars ..\n INTEGER I, J\n DOUBLE PRECISION RMAX\n LOGICAL UPPER\n* ..\n* .. Intrinsic Functions ..\n INTRINSIC DBLE, DIMAG\n* ..\n* .. External Functions ..\n REAL SLAMCH\n LOGICAL LSAME\n EXTERNAL SLAMCH, LSAME\n* ..\n\n"); -+ printf("%s\n", "USAGE:\n sa, info = NumRu::Lapack.zlat2c( uplo, a, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE ZLAT2C( UPLO, N, A, LDA, SA, LDSA, INFO )\n\n* Purpose\n* =======\n*\n* ZLAT2C converts a COMPLEX*16 triangular matrix, SA, to a COMPLEX\n* triangular matrix, A.\n*\n* RMAX is the overflow for the SINGLE PRECISION arithmetic\n* ZLAT2C checks that all the entries of A are between -RMAX and\n* RMAX. If not the conversion is aborted and a flag is raised.\n*\n* This is an auxiliary routine so there is no argument checking.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* = 'U': A is upper triangular;\n* = 'L': A is lower triangular.\n*\n* N (input) INTEGER\n* The number of rows and columns of the matrix A. N >= 0.\n*\n* A (input) COMPLEX*16 array, dimension (LDA,N)\n* On entry, the N-by-N triangular coefficient matrix A.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* SA (output) COMPLEX array, dimension (LDSA,N)\n* Only the UPLO part of SA is referenced. On exit, if INFO=0,\n* the N-by-N coefficient matrix SA; if INFO>0, the content of\n* the UPLO part of SA is unspecified.\n*\n* LDSA (input) INTEGER\n* The leading dimension of the array SA. LDSA >= max(1,M).\n*\n* INFO (output) INTEGER\n* = 0: successful exit.\n* = 1: an entry of the matrix A is greater than the SINGLE\n* PRECISION overflow threshold, in this case, the content\n* of the UPLO part of SA in exit is unspecified.\n*\n* =========\n*\n* .. Local Scalars ..\n INTEGER I, J\n DOUBLE PRECISION RMAX\n LOGICAL UPPER\n* ..\n* .. Intrinsic Functions ..\n INTRINSIC DBLE, DIMAG\n* ..\n* .. External Functions ..\n REAL SLAMCH\n LOGICAL LSAME\n EXTERNAL SLAMCH, LSAME\n* ..\n\n"); - return Qnil; - } - if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { -diff --git a/ext/zlatdf.c b/ext/zlatdf.c -index 6b00003..b432db6 100644 ---- a/ext/zlatdf.c -+++ b/ext/zlatdf.c -@@ -30,7 +30,7 @@ rblapack_zlatdf(int argc, VALUE *argv, VALUE self){ - argc--; - rblapack_options = argv[argc]; - if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { -- printf("%s\n", "USAGE:\n rhs, rdsum, rdscal = NumRu::Lapack.zlatdf( ijob, z, rhs, rdsum, rdscal, ipiv, jpiv, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE ZLATDF( IJOB, N, Z, LDZ, RHS, RDSUM, RDSCAL, IPIV, JPIV )\n\n* Purpose\n* =======\n*\n* ZLATDF computes the contribution to the reciprocal Dif-estimate\n* by solving for x in Z * x = b, where b is chosen such that the norm\n* of x is as large as possible. It is assumed that LU decomposition\n* of Z has been computed by ZGETC2. On entry RHS = f holds the\n* contribution from earlier solved sub-systems, and on return RHS = x.\n*\n* The factorization of Z returned by ZGETC2 has the form\n* Z = P * L * U * Q, where P and Q are permutation matrices. L is lower\n* triangular with unit diagonal elements and U is upper triangular.\n*\n\n* Arguments\n* =========\n*\n* IJOB (input) INTEGER\n* IJOB = 2: First compute an approximative null-vector e\n* of Z using ZGECON, e is normalized and solve for\n* Zx = +-e - f with the sign giving the greater value of\n* 2-norm(x). About 5 times as expensive as Default.\n* IJOB .ne. 2: Local look ahead strategy where\n* all entries of the r.h.s. b is choosen as either +1 or\n* -1. Default.\n*\n* N (input) INTEGER\n* The number of columns of the matrix Z.\n*\n* Z (input) DOUBLE PRECISION array, dimension (LDZ, N)\n* On entry, the LU part of the factorization of the n-by-n\n* matrix Z computed by ZGETC2: Z = P * L * U * Q\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDA >= max(1, N).\n*\n* RHS (input/output) DOUBLE PRECISION array, dimension (N).\n* On entry, RHS contains contributions from other subsystems.\n* On exit, RHS contains the solution of the subsystem with\n* entries according to the value of IJOB (see above).\n*\n* RDSUM (input/output) DOUBLE PRECISION\n* On entry, the sum of squares of computed contributions to\n* the Dif-estimate under computation by ZTGSYL, where the\n* scaling factor RDSCAL (see below) has been factored out.\n* On exit, the corresponding sum of squares updated with the\n* contributions from the current sub-system.\n* If TRANS = 'T' RDSUM is not touched.\n* NOTE: RDSUM only makes sense when ZTGSY2 is called by CTGSYL.\n*\n* RDSCAL (input/output) DOUBLE PRECISION\n* On entry, scaling factor used to prevent overflow in RDSUM.\n* On exit, RDSCAL is updated w.r.t. the current contributions\n* in RDSUM.\n* If TRANS = 'T', RDSCAL is not touched.\n* NOTE: RDSCAL only makes sense when ZTGSY2 is called by\n* ZTGSYL.\n*\n* IPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= i <= N, row i of the\n* matrix has been interchanged with row IPIV(i).\n*\n* JPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= j <= N, column j of the\n* matrix has been interchanged with column JPIV(j).\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Bo Kagstrom and Peter Poromaa, Department of Computing Science,\n* Umea University, S-901 87 Umea, Sweden.\n*\n* This routine is a further developed implementation of algorithm\n* BSOLVE in [1] using complete pivoting in the LU factorization.\n*\n* [1] Bo Kagstrom and Lars Westin,\n* Generalized Schur Methods with Condition Estimators for\n* Solving the Generalized Sylvester Equation, IEEE Transactions\n* on Automatic Control, Vol. 34, No. 7, July 1989, pp 745-751.\n*\n* [2] Peter Poromaa,\n* On Efficient and Robust Estimators for the Separation\n* between two Regular Matrix Pairs with Applications in\n* Condition Estimation. Report UMINF-95.05, Department of\n* Computing Science, Umea University, S-901 87 Umea, Sweden,\n* 1995.\n*\n* =====================================================================\n*\n\n"); -+ printf("%s\n", "USAGE:\n rhs, rdsum, rdscal = NumRu::Lapack.zlatdf( ijob, z, rhs, rdsum, rdscal, ipiv, jpiv, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE ZLATDF( IJOB, N, Z, LDZ, RHS, RDSUM, RDSCAL, IPIV, JPIV )\n\n* Purpose\n* =======\n*\n* ZLATDF computes the contribution to the reciprocal Dif-estimate\n* by solving for x in Z * x = b, where b is chosen such that the norm\n* of x is as large as possible. It is assumed that LU decomposition\n* of Z has been computed by ZGETC2. On entry RHS = f holds the\n* contribution from earlier solved sub-systems, and on return RHS = x.\n*\n* The factorization of Z returned by ZGETC2 has the form\n* Z = P * L * U * Q, where P and Q are permutation matrices. L is lower\n* triangular with unit diagonal elements and U is upper triangular.\n*\n\n* Arguments\n* =========\n*\n* IJOB (input) INTEGER\n* IJOB = 2: First compute an approximative null-vector e\n* of Z using ZGECON, e is normalized and solve for\n* Zx = +-e - f with the sign giving the greater value of\n* 2-norm(x). About 5 times as expensive as Default.\n* IJOB .ne. 2: Local look ahead strategy where\n* all entries of the r.h.s. b is chosen as either +1 or\n* -1. Default.\n*\n* N (input) INTEGER\n* The number of columns of the matrix Z.\n*\n* Z (input) DOUBLE PRECISION array, dimension (LDZ, N)\n* On entry, the LU part of the factorization of the n-by-n\n* matrix Z computed by ZGETC2: Z = P * L * U * Q\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDA >= max(1, N).\n*\n* RHS (input/output) DOUBLE PRECISION array, dimension (N).\n* On entry, RHS contains contributions from other subsystems.\n* On exit, RHS contains the solution of the subsystem with\n* entries according to the value of IJOB (see above).\n*\n* RDSUM (input/output) DOUBLE PRECISION\n* On entry, the sum of squares of computed contributions to\n* the Dif-estimate under computation by ZTGSYL, where the\n* scaling factor RDSCAL (see below) has been factored out.\n* On exit, the corresponding sum of squares updated with the\n* contributions from the current sub-system.\n* If TRANS = 'T' RDSUM is not touched.\n* NOTE: RDSUM only makes sense when ZTGSY2 is called by CTGSYL.\n*\n* RDSCAL (input/output) DOUBLE PRECISION\n* On entry, scaling factor used to prevent overflow in RDSUM.\n* On exit, RDSCAL is updated w.r.t. the current contributions\n* in RDSUM.\n* If TRANS = 'T', RDSCAL is not touched.\n* NOTE: RDSCAL only makes sense when ZTGSY2 is called by\n* ZTGSYL.\n*\n* IPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= i <= N, row i of the\n* matrix has been interchanged with row IPIV(i).\n*\n* JPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= j <= N, column j of the\n* matrix has been interchanged with column JPIV(j).\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Bo Kagstrom and Peter Poromaa, Department of Computing Science,\n* Umea University, S-901 87 Umea, Sweden.\n*\n* This routine is a further developed implementation of algorithm\n* BSOLVE in [1] using complete pivoting in the LU factorization.\n*\n* [1] Bo Kagstrom and Lars Westin,\n* Generalized Schur Methods with Condition Estimators for\n* Solving the Generalized Sylvester Equation, IEEE Transactions\n* on Automatic Control, Vol. 34, No. 7, July 1989, pp 745-751.\n*\n* [2] Peter Poromaa,\n* On Efficient and Robust Estimators for the Separation\n* between two Regular Matrix Pairs with Applications in\n* Condition Estimation. Report UMINF-95.05, Department of\n* Computing Science, Umea University, S-901 87 Umea, Sweden,\n* 1995.\n*\n* =====================================================================\n*\n\n"); - return Qnil; - } - if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { -diff --git a/ext/zstegr.c b/ext/zstegr.c -index b553b1b..3e98bf3 100644 ---- a/ext/zstegr.c -+++ b/ext/zstegr.c -@@ -54,7 +54,7 @@ rblapack_zstegr(int argc, VALUE *argv, VALUE self){ - argc--; - rblapack_options = argv[argc]; - if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { -- printf("%s\n", "USAGE:\n m, w, z, isuppz, work, iwork, info, d, e = NumRu::Lapack.zstegr( jobz, range, d, e, vl, vu, il, iu, abstol, [:lwork => lwork, :liwork => liwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE ZSTEGR( JOBZ, RANGE, N, D, E, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK, IWORK, LIWORK, INFO )\n\n* Purpose\n* =======\n*\n* ZSTEGR computes selected eigenvalues and, optionally, eigenvectors\n* of a real symmetric tridiagonal matrix T. Any such unreduced matrix has\n* a well defined set of pairwise different real eigenvalues, the corresponding\n* real eigenvectors are pairwise orthogonal.\n*\n* The spectrum may be computed either completely or partially by specifying\n* either an interval (VL,VU] or a range of indices IL:IU for the desired\n* eigenvalues.\n*\n* ZSTEGR is a compatability wrapper around the improved ZSTEMR routine.\n* See DSTEMR for further details.\n*\n* One important change is that the ABSTOL parameter no longer provides any\n* benefit and hence is no longer used.\n*\n* Note : ZSTEGR and ZSTEMR work only on machines which follow\n* IEEE-754 floating-point standard in their handling of infinities and\n* NaNs. Normal execution may create these exceptiona values and hence\n* may abort due to a floating point exception in environments which\n* do not conform to the IEEE-754 standard.\n*\n\n* Arguments\n* =========\n*\n* JOBZ (input) CHARACTER*1\n* = 'N': Compute eigenvalues only;\n* = 'V': Compute eigenvalues and eigenvectors.\n*\n* RANGE (input) CHARACTER*1\n* = 'A': all eigenvalues will be found.\n* = 'V': all eigenvalues in the half-open interval (VL,VU]\n* will be found.\n* = 'I': the IL-th through IU-th eigenvalues will be found.\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* D (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the N diagonal elements of the tridiagonal matrix\n* T. On exit, D is overwritten.\n*\n* E (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the tridiagonal\n* matrix T in elements 1 to N-1 of E. E(N) need not be set on\n* input, but is used internally as workspace.\n* On exit, E is overwritten.\n*\n* VL (input) DOUBLE PRECISION\n* VU (input) DOUBLE PRECISION\n* If RANGE='V', the lower and upper bounds of the interval to\n* be searched for eigenvalues. VL < VU.\n* Not referenced if RANGE = 'A' or 'I'.\n*\n* IL (input) INTEGER\n* IU (input) INTEGER\n* If RANGE='I', the indices (in ascending order) of the\n* smallest and largest eigenvalues to be returned.\n* 1 <= IL <= IU <= N, if N > 0.\n* Not referenced if RANGE = 'A' or 'V'.\n*\n* ABSTOL (input) DOUBLE PRECISION\n* Unused. Was the absolute error tolerance for the\n* eigenvalues/eigenvectors in previous versions.\n*\n* M (output) INTEGER\n* The total number of eigenvalues found. 0 <= M <= N.\n* If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1.\n*\n* W (output) DOUBLE PRECISION array, dimension (N)\n* The first M elements contain the selected eigenvalues in\n* ascending order.\n*\n* Z (output) COMPLEX*16 array, dimension (LDZ, max(1,M) )\n* If JOBZ = 'V', and if INFO = 0, then the first M columns of Z\n* contain the orthonormal eigenvectors of the matrix T\n* corresponding to the selected eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* If JOBZ = 'N', then Z is not referenced.\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z; if RANGE = 'V', the exact value of M\n* is not known in advance and an upper bound must be used.\n* Supplying N columns is always safe.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', then LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER ARRAY, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The i-th computed eigenvector\n* is nonzero only in elements ISUPPZ( 2*i-1 ) through\n* ISUPPZ( 2*i ). This is relevant in the case when the matrix\n* is split. ISUPPZ is only accessed when JOBZ is 'V' and N > 0.\n*\n* WORK (workspace/output) DOUBLE PRECISION array, dimension (LWORK)\n* On exit, if INFO = 0, WORK(1) returns the optimal\n* (and minimal) LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK >= max(1,18*N)\n* if JOBZ = 'V', and LWORK >= max(1,12*N) if JOBZ = 'N'.\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the WORK array, returns\n* this value as the first entry of the WORK array, and no error\n* message related to LWORK is issued by XERBLA.\n*\n* IWORK (workspace/output) INTEGER array, dimension (LIWORK)\n* On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.\n*\n* LIWORK (input) INTEGER\n* The dimension of the array IWORK. LIWORK >= max(1,10*N)\n* if the eigenvectors are desired, and LIWORK >= max(1,8*N)\n* if only the eigenvalues are to be computed.\n* If LIWORK = -1, then a workspace query is assumed; the\n* routine only calculates the optimal size of the IWORK array,\n* returns this value as the first entry of the IWORK array, and\n* no error message related to LIWORK is issued by XERBLA.\n*\n* INFO (output) INTEGER\n* On exit, INFO\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = 1X, internal error in DLARRE,\n* if INFO = 2X, internal error in ZLARRV.\n* Here, the digit X = ABS( IINFO ) < 10, where IINFO is\n* the nonzero error code returned by DLARRE or\n* ZLARRV, respectively.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Inderjit Dhillon, IBM Almaden, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n* .. Local Scalars ..\n LOGICAL TRYRAC\n* ..\n* .. External Subroutines ..\n EXTERNAL ZSTEMR\n* ..\n\n"); -+ printf("%s\n", "USAGE:\n m, w, z, isuppz, work, iwork, info, d, e = NumRu::Lapack.zstegr( jobz, range, d, e, vl, vu, il, iu, abstol, [:lwork => lwork, :liwork => liwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE ZSTEGR( JOBZ, RANGE, N, D, E, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK, IWORK, LIWORK, INFO )\n\n* Purpose\n* =======\n*\n* ZSTEGR computes selected eigenvalues and, optionally, eigenvectors\n* of a real symmetric tridiagonal matrix T. Any such unreduced matrix has\n* a well defined set of pairwise different real eigenvalues, the corresponding\n* real eigenvectors are pairwise orthogonal.\n*\n* The spectrum may be computed either completely or partially by specifying\n* either an interval (VL,VU] or a range of indices IL:IU for the desired\n* eigenvalues.\n*\n* ZSTEGR is a compatibility wrapper around the improved ZSTEMR routine.\n* See DSTEMR for further details.\n*\n* One important change is that the ABSTOL parameter no longer provides any\n* benefit and hence is no longer used.\n*\n* Note : ZSTEGR and ZSTEMR work only on machines which follow\n* IEEE-754 floating-point standard in their handling of infinities and\n* NaNs. Normal execution may create these exceptiona values and hence\n* may abort due to a floating point exception in environments which\n* do not conform to the IEEE-754 standard.\n*\n\n* Arguments\n* =========\n*\n* JOBZ (input) CHARACTER*1\n* = 'N': Compute eigenvalues only;\n* = 'V': Compute eigenvalues and eigenvectors.\n*\n* RANGE (input) CHARACTER*1\n* = 'A': all eigenvalues will be found.\n* = 'V': all eigenvalues in the half-open interval (VL,VU]\n* will be found.\n* = 'I': the IL-th through IU-th eigenvalues will be found.\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* D (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the N diagonal elements of the tridiagonal matrix\n* T. On exit, D is overwritten.\n*\n* E (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the tridiagonal\n* matrix T in elements 1 to N-1 of E. E(N) need not be set on\n* input, but is used internally as workspace.\n* On exit, E is overwritten.\n*\n* VL (input) DOUBLE PRECISION\n* VU (input) DOUBLE PRECISION\n* If RANGE='V', the lower and upper bounds of the interval to\n* be searched for eigenvalues. VL < VU.\n* Not referenced if RANGE = 'A' or 'I'.\n*\n* IL (input) INTEGER\n* IU (input) INTEGER\n* If RANGE='I', the indices (in ascending order) of the\n* smallest and largest eigenvalues to be returned.\n* 1 <= IL <= IU <= N, if N > 0.\n* Not referenced if RANGE = 'A' or 'V'.\n*\n* ABSTOL (input) DOUBLE PRECISION\n* Unused. Was the absolute error tolerance for the\n* eigenvalues/eigenvectors in previous versions.\n*\n* M (output) INTEGER\n* The total number of eigenvalues found. 0 <= M <= N.\n* If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1.\n*\n* W (output) DOUBLE PRECISION array, dimension (N)\n* The first M elements contain the selected eigenvalues in\n* ascending order.\n*\n* Z (output) COMPLEX*16 array, dimension (LDZ, max(1,M) )\n* If JOBZ = 'V', and if INFO = 0, then the first M columns of Z\n* contain the orthonormal eigenvectors of the matrix T\n* corresponding to the selected eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* If JOBZ = 'N', then Z is not referenced.\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z; if RANGE = 'V', the exact value of M\n* is not known in advance and an upper bound must be used.\n* Supplying N columns is always safe.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', then LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER ARRAY, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The i-th computed eigenvector\n* is nonzero only in elements ISUPPZ( 2*i-1 ) through\n* ISUPPZ( 2*i ). This is relevant in the case when the matrix\n* is split. ISUPPZ is only accessed when JOBZ is 'V' and N > 0.\n*\n* WORK (workspace/output) DOUBLE PRECISION array, dimension (LWORK)\n* On exit, if INFO = 0, WORK(1) returns the optimal\n* (and minimal) LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK >= max(1,18*N)\n* if JOBZ = 'V', and LWORK >= max(1,12*N) if JOBZ = 'N'.\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the WORK array, returns\n* this value as the first entry of the WORK array, and no error\n* message related to LWORK is issued by XERBLA.\n*\n* IWORK (workspace/output) INTEGER array, dimension (LIWORK)\n* On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.\n*\n* LIWORK (input) INTEGER\n* The dimension of the array IWORK. LIWORK >= max(1,10*N)\n* if the eigenvectors are desired, and LIWORK >= max(1,8*N)\n* if only the eigenvalues are to be computed.\n* If LIWORK = -1, then a workspace query is assumed; the\n* routine only calculates the optimal size of the IWORK array,\n* returns this value as the first entry of the IWORK array, and\n* no error message related to LIWORK is issued by XERBLA.\n*\n* INFO (output) INTEGER\n* On exit, INFO\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = 1X, internal error in DLARRE,\n* if INFO = 2X, internal error in ZLARRV.\n* Here, the digit X = ABS( IINFO ) < 10, where IINFO is\n* the nonzero error code returned by DLARRE or\n* ZLARRV, respectively.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Inderjit Dhillon, IBM Almaden, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n* .. Local Scalars ..\n LOGICAL TRYRAC\n* ..\n* .. External Subroutines ..\n EXTERNAL ZSTEMR\n* ..\n\n"); - return Qnil; - } - if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/debian/patches/0002-Use-vendorarchdir-instead-of-sitearchdir.patch ruby-lapack-1.8.1/debian/patches/0002-Use-vendorarchdir-instead-of-sitearchdir.patch --- ruby-lapack-1.7.2/debian/patches/0002-Use-vendorarchdir-instead-of-sitearchdir.patch 1970-01-01 00:00:00.000000000 +0000 +++ ruby-lapack-1.8.1/debian/patches/0002-Use-vendorarchdir-instead-of-sitearchdir.patch 2018-03-08 10:20:58.000000000 +0000 @@ -0,0 +1,68 @@ +From: Youhei SASAKI +Date: Thu, 8 Mar 2018 16:54:43 +0900 +Subject: Use vendorarchdir instead of sitearchdir + +Signed-off-by: Youhei SASAKI +--- + ext/extconf.rb | 48 +----------------------------------------------- + 1 file changed, 1 insertion(+), 47 deletions(-) + +diff --git a/ext/extconf.rb b/ext/extconf.rb +index a65549b..5f81050 100755 +--- a/ext/extconf.rb ++++ b/ext/extconf.rb +@@ -62,53 +62,7 @@ unless find_library("lapack", nil) + end + end + +-na_path = RbConfig::CONFIG["sitearchdir"] +-begin +- require "rubygems" +- gem = true +-rescue LoadError +- gem = false +-end +-if gem +- if ( na_type = ENV["NARRAY_TYPE"] ) +- nas = [na_type] +- else +- nas = %w(narray numru-narray) +- end +- if Gem::Specification.respond_to?(:find_by_name) +- nas.each do |na| +- begin +- if ( spec = Gem::Specification.find_by_name(na) ) +- na_type = na +- na_path = spec.full_gem_path +- case na_type +- when "narray" +- na_path = File.join(na_path, "src") +- when "numru-narray" +- na_path = File.join(na_path, "ext", "numru", "narray") +- end +- break +- end +- rescue LoadError +- end +- end +- else +- nas.each do |na| +- if ( spec = Gem.source_index.find_name(na) ).any? +- na_type = na +- na_path = spec[0].full_gem_path +- case na_type +- when "narray" +- na_path = File.join(na_path, "src") +- when "numru-narray" +- na_path = File.join(na_path, "ext", "numru", "narray") +- end +- break +- end +- end +- end +-end +- ++na_path = RbConfig::CONFIG["vendorarchdir"] + dir_config("narray", na_path, na_path) + unless have_header("narray.h") + $stderr.print "narray.h does not found. Specify the path.\n" diff -Nru ruby-lapack-1.7.2/debian/patches/0003-Add-gemspec.patch ruby-lapack-1.8.1/debian/patches/0003-Add-gemspec.patch --- ruby-lapack-1.7.2/debian/patches/0003-Add-gemspec.patch 1970-01-01 00:00:00.000000000 +0000 +++ ruby-lapack-1.8.1/debian/patches/0003-Add-gemspec.patch 2018-03-08 10:20:58.000000000 +0000 @@ -0,0 +1,49 @@ +From: Youhei SASAKI +Date: Sat, 10 Mar 2018 02:15:38 +0900 +Subject: Add gemspec + +Signed-off-by: Youhei SASAKI +--- + ruby-lapack.gemspec | 40 ++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 40 insertions(+) + create mode 100644 ruby-lapack.gemspec + +--- /dev/null ++++ b/ruby-lapack.gemspec +@@ -0,0 +1,36 @@ ++######################################################### ++# This file has been automatically generated by gem2tgz # ++######################################################### ++# -*- encoding: utf-8 -*- ++# stub: ruby-lapack 1.8.1 ruby lib ++# stub: ext/extconf.rb ++ ++Gem::Specification.new do |s| ++ s.name = "ruby-lapack".freeze ++ s.version = "1.8.1" ++ ++ s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version= ++ s.require_paths = ["lib".freeze] ++ s.authors = ["Seiya Nishizawa".freeze] ++ s.date = "2018-03-05" ++ s.description = "Ruby-LAPACK is a Ruby wrapper of Lapack, which is a linear algebra package (http://www.netlib.org/lapack/).\n".freeze ++ s.email = "seiya@gfd-dennou.org".freeze ++ s.extensions = ["ext/extconf.rb".freeze] ++ s.files = ["COPYING".freeze, "GPL".freeze, "README.rdoc".freeze, "Rakefile".freeze, "dev/common.rb".freeze, "dev/defs/cbbcsd".freeze, "dev/defs/cbdsqr".freeze, "dev/defs/cgbbrd".freeze, "dev/defs/cgbcon".freeze, "dev/defs/cgbequ".freeze, "dev/defs/cgbequb".freeze, "dev/defs/cgbrfs".freeze, "dev/defs/cgbrfsx".freeze, "dev/defs/cgbsv".freeze, "dev/defs/cgbsvx".freeze, "dev/defs/cgbsvxx".freeze, "dev/defs/cgbtf2".freeze, "dev/defs/cgbtrf".freeze, "dev/defs/cgbtrs".freeze, "dev/defs/cgebak".freeze, "dev/defs/cgebal".freeze, "dev/defs/cgebd2".freeze, "dev/defs/cgebrd".freeze, "dev/defs/cgecon".freeze, "dev/defs/cgeequ".freeze, "dev/defs/cgeequb".freeze, "dev/defs/cgees".freeze, "dev/defs/cgeesx".freeze, "dev/defs/cgeev".freeze, "dev/defs/cgeevx".freeze, "dev/defs/cgegs".freeze, "dev/defs/cgegv".freeze, "dev/defs/cgehd2".freeze, "dev/defs/cgehrd".freeze, "dev/defs/cgelq2".freeze, "dev/defs/cgelqf".freeze, "dev/defs/cgels".freeze, "dev/defs/cgelsd".freeze, "dev/defs/cgelss".freeze, "dev/defs/cgelsx".freeze, "dev/defs/cgelsy".freeze, "dev/defs/cgeql2".freeze, "dev/defs/cgeqlf".freeze, "dev/defs/cgeqp3".freeze, "dev/defs/cgeqpf".freeze, "dev/defs/cgeqr2".freeze, "dev/defs/cgeqr2p".freeze, "dev/defs/cgeqrf".freeze, "dev/defs/cgeqrfp".freeze, "dev/defs/cgerfs".freeze, "dev/defs/cgerfsx".freeze, "dev/defs/cgerq2".freeze, "dev/defs/cgerqf".freeze, "dev/defs/cgesc2".freeze, "dev/defs/cgesdd".freeze, "dev/defs/cgesv".freeze, "dev/defs/cgesvd".freeze, "dev/defs/cgesvx".freeze, "dev/defs/cgesvxx".freeze, "dev/defs/cgetc2".freeze, "dev/defs/cgetf2".freeze, "dev/defs/cgetrf".freeze, "dev/defs/cgetri".freeze, "dev/defs/cgetrs".freeze, "dev/defs/cggbak".freeze, "dev/defs/cggbal".freeze, "dev/defs/cgges".freeze, "dev/defs/cggesx".freeze, "dev/defs/cggev".freeze, "dev/defs/cggevx".freeze, "dev/defs/cggglm".freeze, "dev/defs/cgghrd".freeze, "dev/defs/cgglse".freeze, "dev/defs/cggqrf".freeze, "dev/defs/cggrqf".freeze, "dev/defs/cggsvd".freeze, "dev/defs/cggsvp".freeze, "dev/defs/cgtcon".freeze, "dev/defs/cgtrfs".freeze, "dev/defs/cgtsv".freeze, "dev/defs/cgtsvx".freeze, "dev/defs/cgttrf".freeze, "dev/defs/cgttrs".freeze, "dev/defs/cgtts2".freeze, "dev/defs/chbev".freeze, "dev/defs/chbevd".freeze, "dev/defs/chbevx".freeze, "dev/defs/chbgst".freeze, "dev/defs/chbgv".freeze, "dev/defs/chbgvd".freeze, "dev/defs/chbgvx".freeze, "dev/defs/chbtrd".freeze, "dev/defs/checon".freeze, "dev/defs/cheequb".freeze, "dev/defs/cheev".freeze, "dev/defs/cheevd".freeze, "dev/defs/cheevr".freeze, "dev/defs/cheevx".freeze, "dev/defs/chegs2".freeze, "dev/defs/chegst".freeze, "dev/defs/chegv".freeze, "dev/defs/chegvd".freeze, "dev/defs/chegvx".freeze, "dev/defs/cherfs".freeze, "dev/defs/cherfsx".freeze, "dev/defs/chesv".freeze, "dev/defs/chesvx".freeze, "dev/defs/chesvxx".freeze, "dev/defs/chetd2".freeze, "dev/defs/chetf2".freeze, "dev/defs/chetrd".freeze, "dev/defs/chetrf".freeze, "dev/defs/chetri".freeze, "dev/defs/chetrs".freeze, "dev/defs/chetrs2".freeze, "dev/defs/chfrk".freeze, "dev/defs/chgeqz".freeze, "dev/defs/chla_transtype".freeze, "dev/defs/chpcon".freeze, "dev/defs/chpev".freeze, "dev/defs/chpevd".freeze, "dev/defs/chpevx".freeze, "dev/defs/chpgst".freeze, "dev/defs/chpgv".freeze, "dev/defs/chpgvd".freeze, "dev/defs/chpgvx".freeze, "dev/defs/chprfs".freeze, "dev/defs/chpsv".freeze, "dev/defs/chpsvx".freeze, "dev/defs/chptrd".freeze, "dev/defs/chptrf".freeze, "dev/defs/chptri".freeze, "dev/defs/chptrs".freeze, "dev/defs/chsein".freeze, "dev/defs/chseqr".freeze, "dev/defs/cla_gbamv".freeze, "dev/defs/cla_gbrcond_c".freeze, "dev/defs/cla_gbrcond_x".freeze, "dev/defs/cla_gbrfsx_extended".freeze, "dev/defs/cla_gbrpvgrw".freeze, "dev/defs/cla_geamv".freeze, "dev/defs/cla_gercond_c".freeze, "dev/defs/cla_gercond_x".freeze, "dev/defs/cla_gerfsx_extended".freeze, "dev/defs/cla_heamv".freeze, "dev/defs/cla_hercond_c".freeze, "dev/defs/cla_hercond_x".freeze, "dev/defs/cla_herfsx_extended".freeze, "dev/defs/cla_herpvgrw".freeze, "dev/defs/cla_lin_berr".freeze, "dev/defs/cla_porcond_c".freeze, "dev/defs/cla_porcond_x".freeze, "dev/defs/cla_porfsx_extended".freeze, "dev/defs/cla_porpvgrw".freeze, "dev/defs/cla_rpvgrw".freeze, "dev/defs/cla_syamv".freeze, "dev/defs/cla_syrcond_c".freeze, "dev/defs/cla_syrcond_x".freeze, "dev/defs/cla_syrfsx_extended".freeze, "dev/defs/cla_syrpvgrw".freeze, "dev/defs/cla_wwaddw".freeze, "dev/defs/clabrd".freeze, "dev/defs/clacgv".freeze, "dev/defs/clacn2".freeze, "dev/defs/clacon".freeze, "dev/defs/clacp2".freeze, "dev/defs/clacpy".freeze, "dev/defs/clacrm".freeze, "dev/defs/clacrt".freeze, "dev/defs/cladiv".freeze, "dev/defs/claed0".freeze, "dev/defs/claed7".freeze, "dev/defs/claed8".freeze, "dev/defs/claein".freeze, "dev/defs/claesy".freeze, "dev/defs/claev2".freeze, "dev/defs/clag2z".freeze, "dev/defs/clags2".freeze, "dev/defs/clagtm".freeze, "dev/defs/clahef".freeze, "dev/defs/clahqr".freeze, "dev/defs/clahr2".freeze, "dev/defs/clahrd".freeze, "dev/defs/claic1".freeze, "dev/defs/clals0".freeze, "dev/defs/clalsa".freeze, "dev/defs/clalsd".freeze, "dev/defs/clangb".freeze, "dev/defs/clange".freeze, "dev/defs/clangt".freeze, "dev/defs/clanhb".freeze, "dev/defs/clanhe".freeze, "dev/defs/clanhf".freeze, "dev/defs/clanhp".freeze, "dev/defs/clanhs".freeze, "dev/defs/clanht".freeze, "dev/defs/clansb".freeze, "dev/defs/clansp".freeze, "dev/defs/clansy".freeze, "dev/defs/clantb".freeze, "dev/defs/clantp".freeze, "dev/defs/clantr".freeze, "dev/defs/clapll".freeze, "dev/defs/clapmr".freeze, "dev/defs/clapmt".freeze, "dev/defs/claqgb".freeze, "dev/defs/claqge".freeze, "dev/defs/claqhb".freeze, "dev/defs/claqhe".freeze, "dev/defs/claqhp".freeze, "dev/defs/claqp2".freeze, "dev/defs/claqps".freeze, "dev/defs/claqr0".freeze, "dev/defs/claqr1".freeze, "dev/defs/claqr2".freeze, "dev/defs/claqr3".freeze, "dev/defs/claqr4".freeze, "dev/defs/claqr5".freeze, "dev/defs/claqsb".freeze, "dev/defs/claqsp".freeze, "dev/defs/claqsy".freeze, "dev/defs/clar1v".freeze, "dev/defs/clar2v".freeze, "dev/defs/clarcm".freeze, "dev/defs/clarf".freeze, "dev/defs/clarfb".freeze, "dev/defs/clarfg".freeze, "dev/defs/clarfgp".freeze, "dev/defs/clarft".freeze, "dev/defs/clarfx".freeze, "dev/defs/clargv".freeze, "dev/defs/clarnv".freeze, "dev/defs/clarrv".freeze, "dev/defs/clarscl2".freeze, "dev/defs/clartg".freeze, "dev/defs/clartv".freeze, "dev/defs/clarz".freeze, "dev/defs/clarzb".freeze, "dev/defs/clarzt".freeze, "dev/defs/clascl".freeze, "dev/defs/clascl2".freeze, "dev/defs/claset".freeze, "dev/defs/clasr".freeze, "dev/defs/classq".freeze, "dev/defs/claswp".freeze, "dev/defs/clasyf".freeze, "dev/defs/clatbs".freeze, "dev/defs/clatdf".freeze, "dev/defs/clatps".freeze, "dev/defs/clatrd".freeze, "dev/defs/clatrs".freeze, "dev/defs/clatrz".freeze, "dev/defs/clatzm".freeze, "dev/defs/clauu2".freeze, "dev/defs/clauum".freeze, "dev/defs/cpbcon".freeze, "dev/defs/cpbequ".freeze, "dev/defs/cpbrfs".freeze, "dev/defs/cpbstf".freeze, "dev/defs/cpbsv".freeze, "dev/defs/cpbsvx".freeze, "dev/defs/cpbtf2".freeze, "dev/defs/cpbtrf".freeze, "dev/defs/cpbtrs".freeze, "dev/defs/cpftrf".freeze, "dev/defs/cpftri".freeze, "dev/defs/cpftrs".freeze, "dev/defs/cpocon".freeze, "dev/defs/cpoequ".freeze, "dev/defs/cpoequb".freeze, "dev/defs/cporfs".freeze, "dev/defs/cporfsx".freeze, "dev/defs/cposv".freeze, "dev/defs/cposvx".freeze, "dev/defs/cposvxx".freeze, "dev/defs/cpotf2".freeze, "dev/defs/cpotrf".freeze, "dev/defs/cpotri".freeze, "dev/defs/cpotrs".freeze, "dev/defs/cppcon".freeze, "dev/defs/cppequ".freeze, "dev/defs/cpprfs".freeze, "dev/defs/cppsv".freeze, "dev/defs/cppsvx".freeze, "dev/defs/cpptrf".freeze, "dev/defs/cpptri".freeze, "dev/defs/cpptrs".freeze, "dev/defs/cpstf2".freeze, "dev/defs/cpstrf".freeze, "dev/defs/cptcon".freeze, "dev/defs/cpteqr".freeze, "dev/defs/cptrfs".freeze, "dev/defs/cptsv".freeze, "dev/defs/cptsvx".freeze, "dev/defs/cpttrf".freeze, "dev/defs/cpttrs".freeze, "dev/defs/cptts2".freeze, "dev/defs/crot".freeze, "dev/defs/cspcon".freeze, "dev/defs/cspmv".freeze, "dev/defs/cspr".freeze, "dev/defs/csprfs".freeze, "dev/defs/cspsv".freeze, "dev/defs/cspsvx".freeze, "dev/defs/csptrf".freeze, "dev/defs/csptri".freeze, "dev/defs/csptrs".freeze, "dev/defs/csrscl".freeze, "dev/defs/cstedc".freeze, "dev/defs/cstegr".freeze, "dev/defs/cstein".freeze, "dev/defs/cstemr".freeze, "dev/defs/csteqr".freeze, "dev/defs/csycon".freeze, "dev/defs/csyconv".freeze, "dev/defs/csyequb".freeze, "dev/defs/csymv".freeze, "dev/defs/csyr".freeze, "dev/defs/csyrfs".freeze, "dev/defs/csyrfsx".freeze, "dev/defs/csysv".freeze, "dev/defs/csysvx".freeze, "dev/defs/csysvxx".freeze, "dev/defs/csyswapr".freeze, "dev/defs/csytf2".freeze, "dev/defs/csytrf".freeze, "dev/defs/csytri".freeze, "dev/defs/csytri2".freeze, "dev/defs/csytri2x".freeze, "dev/defs/csytrs".freeze, "dev/defs/csytrs2".freeze, "dev/defs/ctbcon".freeze, "dev/defs/ctbrfs".freeze, "dev/defs/ctbtrs".freeze, "dev/defs/ctfsm".freeze, "dev/defs/ctftri".freeze, "dev/defs/ctfttp".freeze, "dev/defs/ctfttr".freeze, "dev/defs/ctgevc".freeze, "dev/defs/ctgex2".freeze, "dev/defs/ctgexc".freeze, "dev/defs/ctgsen".freeze, "dev/defs/ctgsja".freeze, "dev/defs/ctgsna".freeze, "dev/defs/ctgsy2".freeze, "dev/defs/ctgsyl".freeze, "dev/defs/ctpcon".freeze, "dev/defs/ctprfs".freeze, "dev/defs/ctptri".freeze, "dev/defs/ctptrs".freeze, "dev/defs/ctpttf".freeze, "dev/defs/ctpttr".freeze, "dev/defs/ctrcon".freeze, "dev/defs/ctrevc".freeze, "dev/defs/ctrexc".freeze, "dev/defs/ctrrfs".freeze, "dev/defs/ctrsen".freeze, "dev/defs/ctrsna".freeze, "dev/defs/ctrsyl".freeze, "dev/defs/ctrti2".freeze, "dev/defs/ctrtri".freeze, "dev/defs/ctrtrs".freeze, "dev/defs/ctrttf".freeze, "dev/defs/ctrttp".freeze, "dev/defs/ctzrqf".freeze, "dev/defs/ctzrzf".freeze, "dev/defs/cunbdb".freeze, "dev/defs/cuncsd".freeze, "dev/defs/cung2l".freeze, "dev/defs/cung2r".freeze, "dev/defs/cungbr".freeze, "dev/defs/cunghr".freeze, "dev/defs/cungl2".freeze, "dev/defs/cunglq".freeze, "dev/defs/cungql".freeze, "dev/defs/cungqr".freeze, "dev/defs/cungr2".freeze, "dev/defs/cungrq".freeze, "dev/defs/cungtr".freeze, "dev/defs/cunm2l".freeze, "dev/defs/cunm2r".freeze, "dev/defs/cunmbr".freeze, "dev/defs/cunmhr".freeze, "dev/defs/cunml2".freeze, "dev/defs/cunmlq".freeze, "dev/defs/cunmql".freeze, "dev/defs/cunmqr".freeze, "dev/defs/cunmr2".freeze, "dev/defs/cunmr3".freeze, "dev/defs/cunmrq".freeze, "dev/defs/cunmrz".freeze, "dev/defs/cunmtr".freeze, "dev/defs/cupgtr".freeze, "dev/defs/cupmtr".freeze, "dev/defs/dbbcsd".freeze, "dev/defs/dbdsdc".freeze, "dev/defs/dbdsqr".freeze, "dev/defs/ddisna".freeze, "dev/defs/dgbbrd".freeze, "dev/defs/dgbcon".freeze, "dev/defs/dgbequ".freeze, "dev/defs/dgbequb".freeze, "dev/defs/dgbrfs".freeze, "dev/defs/dgbrfsx".freeze, "dev/defs/dgbsv".freeze, "dev/defs/dgbsvx".freeze, "dev/defs/dgbsvxx".freeze, "dev/defs/dgbtf2".freeze, "dev/defs/dgbtrf".freeze, "dev/defs/dgbtrs".freeze, "dev/defs/dgebak".freeze, "dev/defs/dgebal".freeze, "dev/defs/dgebd2".freeze, "dev/defs/dgebrd".freeze, "dev/defs/dgecon".freeze, "dev/defs/dgeequ".freeze, "dev/defs/dgeequb".freeze, "dev/defs/dgees".freeze, "dev/defs/dgeesx".freeze, "dev/defs/dgeev".freeze, "dev/defs/dgeevx".freeze, "dev/defs/dgegs".freeze, "dev/defs/dgegv".freeze, "dev/defs/dgehd2".freeze, "dev/defs/dgehrd".freeze, "dev/defs/dgejsv".freeze, "dev/defs/dgelq2".freeze, "dev/defs/dgelqf".freeze, "dev/defs/dgels".freeze, "dev/defs/dgelsd".freeze, "dev/defs/dgelss".freeze, "dev/defs/dgelsx".freeze, "dev/defs/dgelsy".freeze, "dev/defs/dgeql2".freeze, "dev/defs/dgeqlf".freeze, "dev/defs/dgeqp3".freeze, "dev/defs/dgeqpf".freeze, "dev/defs/dgeqr2".freeze, "dev/defs/dgeqr2p".freeze, "dev/defs/dgeqrf".freeze, "dev/defs/dgeqrfp".freeze, "dev/defs/dgerfs".freeze, "dev/defs/dgerfsx".freeze, "dev/defs/dgerq2".freeze, "dev/defs/dgerqf".freeze, "dev/defs/dgesc2".freeze, "dev/defs/dgesdd".freeze, "dev/defs/dgesv".freeze, "dev/defs/dgesvd".freeze, "dev/defs/dgesvj".freeze, "dev/defs/dgesvx".freeze, "dev/defs/dgesvxx".freeze, "dev/defs/dgetc2".freeze, "dev/defs/dgetf2".freeze, "dev/defs/dgetrf".freeze, "dev/defs/dgetri".freeze, "dev/defs/dgetrs".freeze, "dev/defs/dggbak".freeze, "dev/defs/dggbal".freeze, "dev/defs/dgges".freeze, "dev/defs/dggesx".freeze, "dev/defs/dggev".freeze, "dev/defs/dggevx".freeze, "dev/defs/dggglm".freeze, "dev/defs/dgghrd".freeze, "dev/defs/dgglse".freeze, "dev/defs/dggqrf".freeze, "dev/defs/dggrqf".freeze, "dev/defs/dggsvd".freeze, "dev/defs/dggsvp".freeze, "dev/defs/dgsvj0".freeze, "dev/defs/dgsvj1".freeze, "dev/defs/dgtcon".freeze, "dev/defs/dgtrfs".freeze, "dev/defs/dgtsv".freeze, "dev/defs/dgtsvx".freeze, "dev/defs/dgttrf".freeze, "dev/defs/dgttrs".freeze, "dev/defs/dgtts2".freeze, "dev/defs/dhgeqz".freeze, "dev/defs/dhsein".freeze, "dev/defs/dhseqr".freeze, "dev/defs/disnan".freeze, "dev/defs/dla_gbamv".freeze, "dev/defs/dla_gbrcond".freeze, "dev/defs/dla_gbrfsx_extended".freeze, "dev/defs/dla_gbrpvgrw".freeze, "dev/defs/dla_geamv".freeze, "dev/defs/dla_gercond".freeze, "dev/defs/dla_gerfsx_extended".freeze, "dev/defs/dla_lin_berr".freeze, "dev/defs/dla_porcond".freeze, "dev/defs/dla_porfsx_extended".freeze, "dev/defs/dla_porpvgrw".freeze, "dev/defs/dla_rpvgrw".freeze, "dev/defs/dla_syamv".freeze, "dev/defs/dla_syrcond".freeze, "dev/defs/dla_syrfsx_extended".freeze, "dev/defs/dla_syrpvgrw".freeze, "dev/defs/dla_wwaddw".freeze, "dev/defs/dlabad".freeze, "dev/defs/dlabrd".freeze, "dev/defs/dlacn2".freeze, "dev/defs/dlacon".freeze, "dev/defs/dlacpy".freeze, "dev/defs/dladiv".freeze, "dev/defs/dlae2".freeze, "dev/defs/dlaebz".freeze, "dev/defs/dlaed0".freeze, "dev/defs/dlaed1".freeze, "dev/defs/dlaed2".freeze, "dev/defs/dlaed3".freeze, "dev/defs/dlaed4".freeze, "dev/defs/dlaed5".freeze, "dev/defs/dlaed6".freeze, "dev/defs/dlaed7".freeze, "dev/defs/dlaed8".freeze, "dev/defs/dlaed9".freeze, "dev/defs/dlaeda".freeze, "dev/defs/dlaein".freeze, "dev/defs/dlaev2".freeze, "dev/defs/dlaexc".freeze, "dev/defs/dlag2".freeze, "dev/defs/dlag2s".freeze, "dev/defs/dlags2".freeze, "dev/defs/dlagtf".freeze, "dev/defs/dlagtm".freeze, "dev/defs/dlagts".freeze, "dev/defs/dlagv2".freeze, "dev/defs/dlahqr".freeze, "dev/defs/dlahr2".freeze, "dev/defs/dlahrd".freeze, "dev/defs/dlaic1".freeze, "dev/defs/dlaln2".freeze, "dev/defs/dlals0".freeze, "dev/defs/dlalsa".freeze, "dev/defs/dlalsd".freeze, "dev/defs/dlamrg".freeze, "dev/defs/dlaneg".freeze, "dev/defs/dlangb".freeze, "dev/defs/dlange".freeze, "dev/defs/dlangt".freeze, "dev/defs/dlanhs".freeze, "dev/defs/dlansb".freeze, "dev/defs/dlansf".freeze, "dev/defs/dlansp".freeze, "dev/defs/dlanst".freeze, "dev/defs/dlansy".freeze, "dev/defs/dlantb".freeze, "dev/defs/dlantp".freeze, "dev/defs/dlantr".freeze, "dev/defs/dlanv2".freeze, "dev/defs/dlapll".freeze, "dev/defs/dlapmr".freeze, "dev/defs/dlapmt".freeze, "dev/defs/dlapy2".freeze, "dev/defs/dlapy3".freeze, "dev/defs/dlaqgb".freeze, "dev/defs/dlaqge".freeze, "dev/defs/dlaqp2".freeze, "dev/defs/dlaqps".freeze, "dev/defs/dlaqr0".freeze, "dev/defs/dlaqr1".freeze, "dev/defs/dlaqr2".freeze, "dev/defs/dlaqr3".freeze, "dev/defs/dlaqr4".freeze, "dev/defs/dlaqr5".freeze, "dev/defs/dlaqsb".freeze, "dev/defs/dlaqsp".freeze, "dev/defs/dlaqsy".freeze, "dev/defs/dlaqtr".freeze, "dev/defs/dlar1v".freeze, "dev/defs/dlar2v".freeze, "dev/defs/dlarf".freeze, "dev/defs/dlarfb".freeze, "dev/defs/dlarfg".freeze, "dev/defs/dlarfgp".freeze, "dev/defs/dlarft".freeze, "dev/defs/dlarfx".freeze, "dev/defs/dlargv".freeze, "dev/defs/dlarnv".freeze, "dev/defs/dlarra".freeze, "dev/defs/dlarrb".freeze, "dev/defs/dlarrc".freeze, "dev/defs/dlarrd".freeze, "dev/defs/dlarre".freeze, "dev/defs/dlarrf".freeze, "dev/defs/dlarrj".freeze, "dev/defs/dlarrk".freeze, "dev/defs/dlarrr".freeze, "dev/defs/dlarrv".freeze, "dev/defs/dlarscl2".freeze, "dev/defs/dlartg".freeze, "dev/defs/dlartgp".freeze, "dev/defs/dlartgs".freeze, "dev/defs/dlartv".freeze, "dev/defs/dlaruv".freeze, "dev/defs/dlarz".freeze, "dev/defs/dlarzb".freeze, "dev/defs/dlarzt".freeze, "dev/defs/dlas2".freeze, "dev/defs/dlascl".freeze, "dev/defs/dlascl2".freeze, "dev/defs/dlasd0".freeze, "dev/defs/dlasd1".freeze, "dev/defs/dlasd2".freeze, "dev/defs/dlasd3".freeze, "dev/defs/dlasd4".freeze, "dev/defs/dlasd5".freeze, "dev/defs/dlasd6".freeze, "dev/defs/dlasd7".freeze, "dev/defs/dlasd8".freeze, "dev/defs/dlasda".freeze, "dev/defs/dlasdq".freeze, "dev/defs/dlasdt".freeze, "dev/defs/dlaset".freeze, "dev/defs/dlasq1".freeze, "dev/defs/dlasq2".freeze, "dev/defs/dlasq3".freeze, "dev/defs/dlasq4".freeze, "dev/defs/dlasq5".freeze, "dev/defs/dlasq6".freeze, "dev/defs/dlasr".freeze, "dev/defs/dlasrt".freeze, "dev/defs/dlassq".freeze, "dev/defs/dlasv2".freeze, "dev/defs/dlaswp".freeze, "dev/defs/dlasy2".freeze, "dev/defs/dlasyf".freeze, "dev/defs/dlat2s".freeze, "dev/defs/dlatbs".freeze, "dev/defs/dlatdf".freeze, "dev/defs/dlatps".freeze, "dev/defs/dlatrd".freeze, "dev/defs/dlatrs".freeze, "dev/defs/dlatrz".freeze, "dev/defs/dlatzm".freeze, "dev/defs/dlauu2".freeze, "dev/defs/dlauum".freeze, "dev/defs/dopgtr".freeze, "dev/defs/dopmtr".freeze, "dev/defs/dorbdb".freeze, "dev/defs/dorcsd".freeze, "dev/defs/dorg2l".freeze, "dev/defs/dorg2r".freeze, "dev/defs/dorgbr".freeze, "dev/defs/dorghr".freeze, "dev/defs/dorgl2".freeze, "dev/defs/dorglq".freeze, "dev/defs/dorgql".freeze, "dev/defs/dorgqr".freeze, "dev/defs/dorgr2".freeze, "dev/defs/dorgrq".freeze, "dev/defs/dorgtr".freeze, "dev/defs/dorm2l".freeze, "dev/defs/dorm2r".freeze, "dev/defs/dormbr".freeze, "dev/defs/dormhr".freeze, "dev/defs/dorml2".freeze, "dev/defs/dormlq".freeze, "dev/defs/dormql".freeze, "dev/defs/dormqr".freeze, "dev/defs/dormr2".freeze, "dev/defs/dormr3".freeze, "dev/defs/dormrq".freeze, "dev/defs/dormrz".freeze, "dev/defs/dormtr".freeze, "dev/defs/dpbcon".freeze, "dev/defs/dpbequ".freeze, "dev/defs/dpbrfs".freeze, "dev/defs/dpbstf".freeze, "dev/defs/dpbsv".freeze, "dev/defs/dpbsvx".freeze, "dev/defs/dpbtf2".freeze, "dev/defs/dpbtrf".freeze, "dev/defs/dpbtrs".freeze, "dev/defs/dpftrf".freeze, "dev/defs/dpftri".freeze, "dev/defs/dpftrs".freeze, "dev/defs/dpocon".freeze, "dev/defs/dpoequ".freeze, "dev/defs/dpoequb".freeze, "dev/defs/dporfs".freeze, "dev/defs/dporfsx".freeze, "dev/defs/dposv".freeze, "dev/defs/dposvx".freeze, "dev/defs/dposvxx".freeze, "dev/defs/dpotf2".freeze, "dev/defs/dpotrf".freeze, "dev/defs/dpotri".freeze, "dev/defs/dpotrs".freeze, "dev/defs/dppcon".freeze, "dev/defs/dppequ".freeze, "dev/defs/dpprfs".freeze, "dev/defs/dppsv".freeze, "dev/defs/dppsvx".freeze, "dev/defs/dpptrf".freeze, "dev/defs/dpptri".freeze, "dev/defs/dpptrs".freeze, "dev/defs/dpstf2".freeze, "dev/defs/dpstrf".freeze, "dev/defs/dptcon".freeze, "dev/defs/dpteqr".freeze, "dev/defs/dptrfs".freeze, "dev/defs/dptsv".freeze, "dev/defs/dptsvx".freeze, "dev/defs/dpttrf".freeze, "dev/defs/dpttrs".freeze, "dev/defs/dptts2".freeze, "dev/defs/drscl".freeze, "dev/defs/dsbev".freeze, "dev/defs/dsbevd".freeze, "dev/defs/dsbevx".freeze, "dev/defs/dsbgst".freeze, "dev/defs/dsbgv".freeze, "dev/defs/dsbgvd".freeze, "dev/defs/dsbgvx".freeze, "dev/defs/dsbtrd".freeze, "dev/defs/dsfrk".freeze, "dev/defs/dsgesv".freeze, "dev/defs/dspcon".freeze, "dev/defs/dspev".freeze, "dev/defs/dspevd".freeze, "dev/defs/dspevx".freeze, "dev/defs/dspgst".freeze, "dev/defs/dspgv".freeze, "dev/defs/dspgvd".freeze, "dev/defs/dspgvx".freeze, "dev/defs/dsposv".freeze, "dev/defs/dsprfs".freeze, "dev/defs/dspsv".freeze, "dev/defs/dspsvx".freeze, "dev/defs/dsptrd".freeze, "dev/defs/dsptrf".freeze, "dev/defs/dsptri".freeze, "dev/defs/dsptrs".freeze, "dev/defs/dstebz".freeze, "dev/defs/dstedc".freeze, "dev/defs/dstegr".freeze, "dev/defs/dstein".freeze, "dev/defs/dstemr".freeze, "dev/defs/dsteqr".freeze, "dev/defs/dsterf".freeze, "dev/defs/dstev".freeze, "dev/defs/dstevd".freeze, "dev/defs/dstevr".freeze, "dev/defs/dstevx".freeze, "dev/defs/dsycon".freeze, "dev/defs/dsyconv".freeze, "dev/defs/dsyequb".freeze, "dev/defs/dsyev".freeze, "dev/defs/dsyevd".freeze, "dev/defs/dsyevr".freeze, "dev/defs/dsyevx".freeze, "dev/defs/dsygs2".freeze, "dev/defs/dsygst".freeze, "dev/defs/dsygv".freeze, "dev/defs/dsygvd".freeze, "dev/defs/dsygvx".freeze, "dev/defs/dsyrfs".freeze, "dev/defs/dsyrfsx".freeze, "dev/defs/dsysv".freeze, "dev/defs/dsysvx".freeze, "dev/defs/dsysvxx".freeze, "dev/defs/dsyswapr".freeze, "dev/defs/dsytd2".freeze, "dev/defs/dsytf2".freeze, "dev/defs/dsytrd".freeze, "dev/defs/dsytrf".freeze, "dev/defs/dsytri".freeze, "dev/defs/dsytri2".freeze, "dev/defs/dsytri2x".freeze, "dev/defs/dsytrs".freeze, "dev/defs/dsytrs2".freeze, "dev/defs/dtbcon".freeze, "dev/defs/dtbrfs".freeze, "dev/defs/dtbtrs".freeze, "dev/defs/dtfsm".freeze, "dev/defs/dtftri".freeze, "dev/defs/dtfttp".freeze, "dev/defs/dtfttr".freeze, "dev/defs/dtgevc".freeze, "dev/defs/dtgex2".freeze, "dev/defs/dtgexc".freeze, "dev/defs/dtgsen".freeze, "dev/defs/dtgsja".freeze, "dev/defs/dtgsna".freeze, "dev/defs/dtgsy2".freeze, "dev/defs/dtgsyl".freeze, "dev/defs/dtpcon".freeze, "dev/defs/dtprfs".freeze, "dev/defs/dtptri".freeze, "dev/defs/dtptrs".freeze, "dev/defs/dtpttf".freeze, "dev/defs/dtpttr".freeze, "dev/defs/dtrcon".freeze, "dev/defs/dtrevc".freeze, "dev/defs/dtrexc".freeze, "dev/defs/dtrrfs".freeze, "dev/defs/dtrsen".freeze, "dev/defs/dtrsna".freeze, "dev/defs/dtrsyl".freeze, "dev/defs/dtrti2".freeze, "dev/defs/dtrtri".freeze, "dev/defs/dtrtrs".freeze, "dev/defs/dtrttf".freeze, "dev/defs/dtrttp".freeze, "dev/defs/dtzrqf".freeze, "dev/defs/dtzrzf".freeze, "dev/defs/dzsum1".freeze, "dev/defs/icmax1".freeze, "dev/defs/ieeeck".freeze, "dev/defs/ilaclc".freeze, "dev/defs/ilaclr".freeze, "dev/defs/iladiag".freeze, "dev/defs/iladlc".freeze, "dev/defs/iladlr".freeze, "dev/defs/ilaenv".freeze, "dev/defs/ilaprec".freeze, "dev/defs/ilaslc".freeze, "dev/defs/ilaslr".freeze, "dev/defs/ilatrans".freeze, "dev/defs/ilauplo".freeze, "dev/defs/ilaver".freeze, "dev/defs/ilazlc".freeze, "dev/defs/ilazlr".freeze, "dev/defs/iparmq".freeze, "dev/defs/izmax1".freeze, "dev/defs/lsamen".freeze, "dev/defs/sbbcsd".freeze, "dev/defs/sbdsdc".freeze, "dev/defs/sbdsqr".freeze, "dev/defs/scsum1".freeze, "dev/defs/sdisna".freeze, "dev/defs/sgbbrd".freeze, "dev/defs/sgbcon".freeze, "dev/defs/sgbequ".freeze, "dev/defs/sgbequb".freeze, "dev/defs/sgbrfs".freeze, "dev/defs/sgbrfsx".freeze, "dev/defs/sgbsv".freeze, "dev/defs/sgbsvx".freeze, "dev/defs/sgbsvxx".freeze, "dev/defs/sgbtf2".freeze, "dev/defs/sgbtrf".freeze, "dev/defs/sgbtrs".freeze, "dev/defs/sgebak".freeze, "dev/defs/sgebal".freeze, "dev/defs/sgebd2".freeze, "dev/defs/sgebrd".freeze, "dev/defs/sgecon".freeze, "dev/defs/sgeequ".freeze, "dev/defs/sgeequb".freeze, "dev/defs/sgees".freeze, "dev/defs/sgeesx".freeze, "dev/defs/sgeev".freeze, "dev/defs/sgeevx".freeze, "dev/defs/sgegs".freeze, "dev/defs/sgegv".freeze, "dev/defs/sgehd2".freeze, "dev/defs/sgehrd".freeze, "dev/defs/sgejsv".freeze, "dev/defs/sgelq2".freeze, "dev/defs/sgelqf".freeze, "dev/defs/sgels".freeze, "dev/defs/sgelsd".freeze, "dev/defs/sgelss".freeze, "dev/defs/sgelsx".freeze, "dev/defs/sgelsy".freeze, "dev/defs/sgeql2".freeze, "dev/defs/sgeqlf".freeze, "dev/defs/sgeqp3".freeze, "dev/defs/sgeqpf".freeze, "dev/defs/sgeqr2".freeze, "dev/defs/sgeqr2p".freeze, "dev/defs/sgeqrf".freeze, "dev/defs/sgeqrfp".freeze, "dev/defs/sgerfs".freeze, "dev/defs/sgerfsx".freeze, "dev/defs/sgerq2".freeze, "dev/defs/sgerqf".freeze, "dev/defs/sgesc2".freeze, "dev/defs/sgesdd".freeze, "dev/defs/sgesv".freeze, "dev/defs/sgesvd".freeze, "dev/defs/sgesvj".freeze, "dev/defs/sgesvx".freeze, "dev/defs/sgesvxx".freeze, "dev/defs/sgetc2".freeze, "dev/defs/sgetf2".freeze, "dev/defs/sgetrf".freeze, "dev/defs/sgetri".freeze, "dev/defs/sgetrs".freeze, "dev/defs/sggbak".freeze, "dev/defs/sggbal".freeze, "dev/defs/sgges".freeze, "dev/defs/sggesx".freeze, "dev/defs/sggev".freeze, "dev/defs/sggevx".freeze, "dev/defs/sggglm".freeze, "dev/defs/sgghrd".freeze, "dev/defs/sgglse".freeze, "dev/defs/sggqrf".freeze, "dev/defs/sggrqf".freeze, "dev/defs/sggsvd".freeze, "dev/defs/sggsvp".freeze, "dev/defs/sgsvj0".freeze, "dev/defs/sgsvj1".freeze, "dev/defs/sgtcon".freeze, "dev/defs/sgtrfs".freeze, "dev/defs/sgtsv".freeze, "dev/defs/sgtsvx".freeze, "dev/defs/sgttrf".freeze, "dev/defs/sgttrs".freeze, "dev/defs/sgtts2".freeze, "dev/defs/shgeqz".freeze, "dev/defs/shsein".freeze, "dev/defs/shseqr".freeze, "dev/defs/sisnan".freeze, "dev/defs/sla_gbamv".freeze, "dev/defs/sla_gbrcond".freeze, "dev/defs/sla_gbrfsx_extended".freeze, "dev/defs/sla_gbrpvgrw".freeze, "dev/defs/sla_geamv".freeze, "dev/defs/sla_gercond".freeze, "dev/defs/sla_gerfsx_extended".freeze, "dev/defs/sla_lin_berr".freeze, "dev/defs/sla_porcond".freeze, "dev/defs/sla_porfsx_extended".freeze, "dev/defs/sla_porpvgrw".freeze, "dev/defs/sla_rpvgrw".freeze, "dev/defs/sla_syamv".freeze, "dev/defs/sla_syrcond".freeze, "dev/defs/sla_syrfsx_extended".freeze, "dev/defs/sla_syrpvgrw".freeze, "dev/defs/sla_wwaddw".freeze, "dev/defs/slabad".freeze, "dev/defs/slabrd".freeze, "dev/defs/slacn2".freeze, "dev/defs/slacon".freeze, "dev/defs/slacpy".freeze, "dev/defs/sladiv".freeze, "dev/defs/slae2".freeze, "dev/defs/slaebz".freeze, "dev/defs/slaed0".freeze, "dev/defs/slaed1".freeze, "dev/defs/slaed2".freeze, "dev/defs/slaed3".freeze, "dev/defs/slaed4".freeze, "dev/defs/slaed5".freeze, "dev/defs/slaed6".freeze, "dev/defs/slaed7".freeze, "dev/defs/slaed8".freeze, "dev/defs/slaed9".freeze, "dev/defs/slaeda".freeze, "dev/defs/slaein".freeze, "dev/defs/slaev2".freeze, "dev/defs/slaexc".freeze, "dev/defs/slag2".freeze, "dev/defs/slag2d".freeze, "dev/defs/slags2".freeze, "dev/defs/slagtf".freeze, "dev/defs/slagtm".freeze, "dev/defs/slagts".freeze, "dev/defs/slagv2".freeze, "dev/defs/slahqr".freeze, "dev/defs/slahr2".freeze, "dev/defs/slahrd".freeze, "dev/defs/slaic1".freeze, "dev/defs/slaln2".freeze, "dev/defs/slals0".freeze, "dev/defs/slalsa".freeze, "dev/defs/slalsd".freeze, "dev/defs/slamrg".freeze, "dev/defs/slaneg".freeze, "dev/defs/slangb".freeze, "dev/defs/slange".freeze, "dev/defs/slangt".freeze, "dev/defs/slanhs".freeze, "dev/defs/slansb".freeze, "dev/defs/slansf".freeze, "dev/defs/slansp".freeze, "dev/defs/slanst".freeze, "dev/defs/slansy".freeze, "dev/defs/slantb".freeze, "dev/defs/slantp".freeze, "dev/defs/slantr".freeze, "dev/defs/slanv2".freeze, "dev/defs/slapll".freeze, "dev/defs/slapmr".freeze, "dev/defs/slapmt".freeze, "dev/defs/slapy2".freeze, "dev/defs/slapy3".freeze, "dev/defs/slaqgb".freeze, "dev/defs/slaqge".freeze, "dev/defs/slaqp2".freeze, "dev/defs/slaqps".freeze, "dev/defs/slaqr0".freeze, "dev/defs/slaqr1".freeze, "dev/defs/slaqr2".freeze, "dev/defs/slaqr3".freeze, "dev/defs/slaqr4".freeze, "dev/defs/slaqr5".freeze, "dev/defs/slaqsb".freeze, "dev/defs/slaqsp".freeze, "dev/defs/slaqsy".freeze, "dev/defs/slaqtr".freeze, "dev/defs/slar1v".freeze, "dev/defs/slar2v".freeze, "dev/defs/slarf".freeze, "dev/defs/slarfb".freeze, "dev/defs/slarfg".freeze, "dev/defs/slarfgp".freeze, "dev/defs/slarft".freeze, "dev/defs/slarfx".freeze, "dev/defs/slargv".freeze, "dev/defs/slarnv".freeze, "dev/defs/slarra".freeze, "dev/defs/slarrb".freeze, "dev/defs/slarrc".freeze, "dev/defs/slarrd".freeze, "dev/defs/slarre".freeze, "dev/defs/slarrf".freeze, "dev/defs/slarrj".freeze, "dev/defs/slarrk".freeze, "dev/defs/slarrr".freeze, "dev/defs/slarrv".freeze, "dev/defs/slarscl2".freeze, "dev/defs/slartg".freeze, "dev/defs/slartgp".freeze, "dev/defs/slartgs".freeze, "dev/defs/slartv".freeze, "dev/defs/slaruv".freeze, "dev/defs/slarz".freeze, "dev/defs/slarzb".freeze, "dev/defs/slarzt".freeze, "dev/defs/slas2".freeze, "dev/defs/slascl".freeze, "dev/defs/slascl2".freeze, "dev/defs/slasd0".freeze, "dev/defs/slasd1".freeze, "dev/defs/slasd2".freeze, "dev/defs/slasd3".freeze, "dev/defs/slasd4".freeze, "dev/defs/slasd5".freeze, "dev/defs/slasd6".freeze, "dev/defs/slasd7".freeze, "dev/defs/slasd8".freeze, "dev/defs/slasda".freeze, "dev/defs/slasdq".freeze, "dev/defs/slasdt".freeze, "dev/defs/slaset".freeze, "dev/defs/slasq1".freeze, "dev/defs/slasq2".freeze, "dev/defs/slasq3".freeze, "dev/defs/slasq4".freeze, "dev/defs/slasq5".freeze, "dev/defs/slasq6".freeze, "dev/defs/slasr".freeze, "dev/defs/slasrt".freeze, "dev/defs/slassq".freeze, "dev/defs/slasv2".freeze, "dev/defs/slaswp".freeze, "dev/defs/slasy2".freeze, "dev/defs/slasyf".freeze, "dev/defs/slatbs".freeze, "dev/defs/slatdf".freeze, "dev/defs/slatps".freeze, "dev/defs/slatrd".freeze, "dev/defs/slatrs".freeze, "dev/defs/slatrz".freeze, "dev/defs/slatzm".freeze, "dev/defs/slauu2".freeze, "dev/defs/slauum".freeze, "dev/defs/sopgtr".freeze, "dev/defs/sopmtr".freeze, "dev/defs/sorbdb".freeze, "dev/defs/sorcsd".freeze, "dev/defs/sorg2l".freeze, "dev/defs/sorg2r".freeze, "dev/defs/sorgbr".freeze, "dev/defs/sorghr".freeze, "dev/defs/sorgl2".freeze, "dev/defs/sorglq".freeze, "dev/defs/sorgql".freeze, "dev/defs/sorgqr".freeze, "dev/defs/sorgr2".freeze, "dev/defs/sorgrq".freeze, "dev/defs/sorgtr".freeze, "dev/defs/sorm2l".freeze, "dev/defs/sorm2r".freeze, "dev/defs/sormbr".freeze, "dev/defs/sormhr".freeze, "dev/defs/sorml2".freeze, "dev/defs/sormlq".freeze, "dev/defs/sormql".freeze, "dev/defs/sormqr".freeze, "dev/defs/sormr2".freeze, "dev/defs/sormr3".freeze, "dev/defs/sormrq".freeze, "dev/defs/sormrz".freeze, "dev/defs/sormtr".freeze, "dev/defs/spbcon".freeze, "dev/defs/spbequ".freeze, "dev/defs/spbrfs".freeze, "dev/defs/spbstf".freeze, "dev/defs/spbsv".freeze, "dev/defs/spbsvx".freeze, "dev/defs/spbtf2".freeze, "dev/defs/spbtrf".freeze, "dev/defs/spbtrs".freeze, "dev/defs/spftrf".freeze, "dev/defs/spftri".freeze, "dev/defs/spftrs".freeze, "dev/defs/spocon".freeze, "dev/defs/spoequ".freeze, "dev/defs/spoequb".freeze, "dev/defs/sporfs".freeze, "dev/defs/sporfsx".freeze, "dev/defs/sposv".freeze, "dev/defs/sposvx".freeze, "dev/defs/sposvxx".freeze, "dev/defs/spotf2".freeze, "dev/defs/spotrf".freeze, "dev/defs/spotri".freeze, "dev/defs/spotrs".freeze, "dev/defs/sppcon".freeze, "dev/defs/sppequ".freeze, "dev/defs/spprfs".freeze, "dev/defs/sppsv".freeze, "dev/defs/sppsvx".freeze, "dev/defs/spptrf".freeze, "dev/defs/spptri".freeze, "dev/defs/spptrs".freeze, "dev/defs/spstf2".freeze, "dev/defs/spstrf".freeze, "dev/defs/sptcon".freeze, "dev/defs/spteqr".freeze, "dev/defs/sptrfs".freeze, "dev/defs/sptsv".freeze, "dev/defs/sptsvx".freeze, "dev/defs/spttrf".freeze, "dev/defs/spttrs".freeze, "dev/defs/sptts2".freeze, "dev/defs/srscl".freeze, "dev/defs/ssbev".freeze, "dev/defs/ssbevd".freeze, "dev/defs/ssbevx".freeze, "dev/defs/ssbgst".freeze, "dev/defs/ssbgv".freeze, "dev/defs/ssbgvd".freeze, "dev/defs/ssbgvx".freeze, "dev/defs/ssbtrd".freeze, "dev/defs/ssfrk".freeze, "dev/defs/sspcon".freeze, "dev/defs/sspev".freeze, "dev/defs/sspevd".freeze, "dev/defs/sspevx".freeze, "dev/defs/sspgst".freeze, "dev/defs/sspgv".freeze, "dev/defs/sspgvd".freeze, "dev/defs/sspgvx".freeze, "dev/defs/ssprfs".freeze, "dev/defs/sspsv".freeze, "dev/defs/sspsvx".freeze, "dev/defs/ssptrd".freeze, "dev/defs/ssptrf".freeze, "dev/defs/ssptri".freeze, "dev/defs/ssptrs".freeze, "dev/defs/sstebz".freeze, "dev/defs/sstedc".freeze, "dev/defs/sstegr".freeze, "dev/defs/sstein".freeze, "dev/defs/sstemr".freeze, "dev/defs/ssteqr".freeze, "dev/defs/ssterf".freeze, "dev/defs/sstev".freeze, "dev/defs/sstevd".freeze, "dev/defs/sstevr".freeze, "dev/defs/sstevx".freeze, "dev/defs/ssycon".freeze, "dev/defs/ssyconv".freeze, "dev/defs/ssyequb".freeze, "dev/defs/ssyev".freeze, "dev/defs/ssyevd".freeze, "dev/defs/ssyevr".freeze, "dev/defs/ssyevx".freeze, "dev/defs/ssygs2".freeze, "dev/defs/ssygst".freeze, "dev/defs/ssygv".freeze, "dev/defs/ssygvd".freeze, "dev/defs/ssygvx".freeze, "dev/defs/ssyrfs".freeze, "dev/defs/ssyrfsx".freeze, "dev/defs/ssysv".freeze, "dev/defs/ssysvx".freeze, "dev/defs/ssysvxx".freeze, "dev/defs/ssyswapr".freeze, "dev/defs/ssytd2".freeze, "dev/defs/ssytf2".freeze, "dev/defs/ssytrd".freeze, "dev/defs/ssytrf".freeze, "dev/defs/ssytri".freeze, "dev/defs/ssytri2".freeze, "dev/defs/ssytri2x".freeze, "dev/defs/ssytrs".freeze, "dev/defs/ssytrs2".freeze, "dev/defs/stbcon".freeze, "dev/defs/stbrfs".freeze, "dev/defs/stbtrs".freeze, "dev/defs/stfsm".freeze, "dev/defs/stftri".freeze, "dev/defs/stfttp".freeze, "dev/defs/stfttr".freeze, "dev/defs/stgevc".freeze, "dev/defs/stgex2".freeze, "dev/defs/stgexc".freeze, "dev/defs/stgsen".freeze, "dev/defs/stgsja".freeze, "dev/defs/stgsna".freeze, "dev/defs/stgsy2".freeze, "dev/defs/stgsyl".freeze, "dev/defs/stpcon".freeze, "dev/defs/stprfs".freeze, "dev/defs/stptri".freeze, "dev/defs/stptrs".freeze, "dev/defs/stpttf".freeze, "dev/defs/stpttr".freeze, "dev/defs/strcon".freeze, "dev/defs/strevc".freeze, "dev/defs/strexc".freeze, "dev/defs/strrfs".freeze, "dev/defs/strsen".freeze, "dev/defs/strsna".freeze, "dev/defs/strsyl".freeze, "dev/defs/strti2".freeze, "dev/defs/strtri".freeze, "dev/defs/strtrs".freeze, "dev/defs/strttf".freeze, "dev/defs/strttp".freeze, "dev/defs/stzrqf".freeze, "dev/defs/stzrzf".freeze, "dev/defs/xerbla".freeze, "dev/defs/xerbla_array".freeze, "dev/defs/zbbcsd".freeze, "dev/defs/zbdsqr".freeze, "dev/defs/zcgesv".freeze, "dev/defs/zcposv".freeze, "dev/defs/zdrscl".freeze, "dev/defs/zgbbrd".freeze, "dev/defs/zgbcon".freeze, "dev/defs/zgbequ".freeze, "dev/defs/zgbequb".freeze, "dev/defs/zgbrfs".freeze, "dev/defs/zgbrfsx".freeze, "dev/defs/zgbsv".freeze, "dev/defs/zgbsvx".freeze, "dev/defs/zgbsvxx".freeze, "dev/defs/zgbtf2".freeze, "dev/defs/zgbtrf".freeze, "dev/defs/zgbtrs".freeze, "dev/defs/zgebak".freeze, "dev/defs/zgebal".freeze, "dev/defs/zgebd2".freeze, "dev/defs/zgebrd".freeze, "dev/defs/zgecon".freeze, "dev/defs/zgeequ".freeze, "dev/defs/zgeequb".freeze, "dev/defs/zgees".freeze, "dev/defs/zgeesx".freeze, "dev/defs/zgeev".freeze, "dev/defs/zgeevx".freeze, "dev/defs/zgegs".freeze, "dev/defs/zgegv".freeze, "dev/defs/zgehd2".freeze, "dev/defs/zgehrd".freeze, "dev/defs/zgelq2".freeze, "dev/defs/zgelqf".freeze, "dev/defs/zgels".freeze, "dev/defs/zgelsd".freeze, "dev/defs/zgelss".freeze, "dev/defs/zgelsx".freeze, "dev/defs/zgelsy".freeze, "dev/defs/zgeql2".freeze, "dev/defs/zgeqlf".freeze, "dev/defs/zgeqp3".freeze, "dev/defs/zgeqpf".freeze, "dev/defs/zgeqr2".freeze, "dev/defs/zgeqr2p".freeze, "dev/defs/zgeqrf".freeze, "dev/defs/zgeqrfp".freeze, "dev/defs/zgerfs".freeze, "dev/defs/zgerfsx".freeze, "dev/defs/zgerq2".freeze, "dev/defs/zgerqf".freeze, "dev/defs/zgesc2".freeze, "dev/defs/zgesdd".freeze, "dev/defs/zgesv".freeze, "dev/defs/zgesvd".freeze, "dev/defs/zgesvx".freeze, "dev/defs/zgesvxx".freeze, "dev/defs/zgetc2".freeze, "dev/defs/zgetf2".freeze, "dev/defs/zgetrf".freeze, "dev/defs/zgetri".freeze, "dev/defs/zgetrs".freeze, "dev/defs/zggbak".freeze, "dev/defs/zggbal".freeze, "dev/defs/zgges".freeze, "dev/defs/zggesx".freeze, "dev/defs/zggev".freeze, "dev/defs/zggevx".freeze, "dev/defs/zggglm".freeze, "dev/defs/zgghrd".freeze, "dev/defs/zgglse".freeze, "dev/defs/zggqrf".freeze, "dev/defs/zggrqf".freeze, "dev/defs/zggsvd".freeze, "dev/defs/zggsvp".freeze, "dev/defs/zgtcon".freeze, "dev/defs/zgtrfs".freeze, "dev/defs/zgtsv".freeze, "dev/defs/zgtsvx".freeze, "dev/defs/zgttrf".freeze, "dev/defs/zgttrs".freeze, "dev/defs/zgtts2".freeze, "dev/defs/zhbev".freeze, "dev/defs/zhbevd".freeze, "dev/defs/zhbevx".freeze, "dev/defs/zhbgst".freeze, "dev/defs/zhbgv".freeze, "dev/defs/zhbgvd".freeze, "dev/defs/zhbgvx".freeze, "dev/defs/zhbtrd".freeze, "dev/defs/zhecon".freeze, "dev/defs/zheequb".freeze, "dev/defs/zheev".freeze, "dev/defs/zheevd".freeze, "dev/defs/zheevr".freeze, "dev/defs/zheevx".freeze, "dev/defs/zhegs2".freeze, "dev/defs/zhegst".freeze, "dev/defs/zhegv".freeze, "dev/defs/zhegvd".freeze, "dev/defs/zhegvx".freeze, "dev/defs/zherfs".freeze, "dev/defs/zherfsx".freeze, "dev/defs/zhesv".freeze, "dev/defs/zhesvx".freeze, "dev/defs/zhesvxx".freeze, "dev/defs/zhetd2".freeze, "dev/defs/zhetf2".freeze, "dev/defs/zhetrd".freeze, "dev/defs/zhetrf".freeze, "dev/defs/zhetri".freeze, "dev/defs/zhetrs".freeze, "dev/defs/zhetrs2".freeze, "dev/defs/zhfrk".freeze, "dev/defs/zhgeqz".freeze, "dev/defs/zhpcon".freeze, "dev/defs/zhpev".freeze, "dev/defs/zhpevd".freeze, "dev/defs/zhpevx".freeze, "dev/defs/zhpgst".freeze, "dev/defs/zhpgv".freeze, "dev/defs/zhpgvd".freeze, "dev/defs/zhpgvx".freeze, "dev/defs/zhprfs".freeze, "dev/defs/zhpsv".freeze, "dev/defs/zhpsvx".freeze, "dev/defs/zhptrd".freeze, "dev/defs/zhptrf".freeze, "dev/defs/zhptri".freeze, "dev/defs/zhptrs".freeze, "dev/defs/zhsein".freeze, "dev/defs/zhseqr".freeze, "dev/defs/zla_gbamv".freeze, "dev/defs/zla_gbrcond_c".freeze, "dev/defs/zla_gbrcond_x".freeze, "dev/defs/zla_gbrfsx_extended".freeze, "dev/defs/zla_gbrpvgrw".freeze, "dev/defs/zla_geamv".freeze, "dev/defs/zla_gercond_c".freeze, "dev/defs/zla_gercond_x".freeze, "dev/defs/zla_gerfsx_extended".freeze, "dev/defs/zla_heamv".freeze, "dev/defs/zla_hercond_c".freeze, "dev/defs/zla_hercond_x".freeze, "dev/defs/zla_herfsx_extended".freeze, "dev/defs/zla_herpvgrw".freeze, "dev/defs/zla_lin_berr".freeze, "dev/defs/zla_porcond_c".freeze, "dev/defs/zla_porcond_x".freeze, "dev/defs/zla_porfsx_extended".freeze, "dev/defs/zla_porpvgrw".freeze, "dev/defs/zla_rpvgrw".freeze, "dev/defs/zla_syamv".freeze, "dev/defs/zla_syrcond_c".freeze, "dev/defs/zla_syrcond_x".freeze, "dev/defs/zla_syrfsx_extended".freeze, "dev/defs/zla_syrpvgrw".freeze, "dev/defs/zla_wwaddw".freeze, "dev/defs/zlabrd".freeze, "dev/defs/zlacgv".freeze, "dev/defs/zlacn2".freeze, "dev/defs/zlacon".freeze, "dev/defs/zlacp2".freeze, "dev/defs/zlacpy".freeze, "dev/defs/zlacrm".freeze, "dev/defs/zlacrt".freeze, "dev/defs/zladiv".freeze, "dev/defs/zlaed0".freeze, "dev/defs/zlaed7".freeze, "dev/defs/zlaed8".freeze, "dev/defs/zlaein".freeze, "dev/defs/zlaesy".freeze, "dev/defs/zlaev2".freeze, "dev/defs/zlag2c".freeze, "dev/defs/zlags2".freeze, "dev/defs/zlagtm".freeze, "dev/defs/zlahef".freeze, "dev/defs/zlahqr".freeze, "dev/defs/zlahr2".freeze, "dev/defs/zlahrd".freeze, "dev/defs/zlaic1".freeze, "dev/defs/zlals0".freeze, "dev/defs/zlalsa".freeze, "dev/defs/zlalsd".freeze, "dev/defs/zlangb".freeze, "dev/defs/zlange".freeze, "dev/defs/zlangt".freeze, "dev/defs/zlanhb".freeze, "dev/defs/zlanhe".freeze, "dev/defs/zlanhf".freeze, "dev/defs/zlanhp".freeze, "dev/defs/zlanhs".freeze, "dev/defs/zlanht".freeze, "dev/defs/zlansb".freeze, "dev/defs/zlansp".freeze, "dev/defs/zlansy".freeze, "dev/defs/zlantb".freeze, "dev/defs/zlantp".freeze, "dev/defs/zlantr".freeze, "dev/defs/zlapll".freeze, "dev/defs/zlapmr".freeze, "dev/defs/zlapmt".freeze, "dev/defs/zlaqgb".freeze, "dev/defs/zlaqge".freeze, "dev/defs/zlaqhb".freeze, "dev/defs/zlaqhe".freeze, "dev/defs/zlaqhp".freeze, "dev/defs/zlaqp2".freeze, "dev/defs/zlaqps".freeze, "dev/defs/zlaqr0".freeze, "dev/defs/zlaqr1".freeze, "dev/defs/zlaqr2".freeze, "dev/defs/zlaqr3".freeze, "dev/defs/zlaqr4".freeze, "dev/defs/zlaqr5".freeze, "dev/defs/zlaqsb".freeze, "dev/defs/zlaqsp".freeze, "dev/defs/zlaqsy".freeze, "dev/defs/zlar1v".freeze, "dev/defs/zlar2v".freeze, "dev/defs/zlarcm".freeze, "dev/defs/zlarf".freeze, "dev/defs/zlarfb".freeze, "dev/defs/zlarfg".freeze, "dev/defs/zlarfgp".freeze, "dev/defs/zlarft".freeze, "dev/defs/zlarfx".freeze, "dev/defs/zlargv".freeze, "dev/defs/zlarnv".freeze, "dev/defs/zlarrv".freeze, "dev/defs/zlarscl2".freeze, "dev/defs/zlartg".freeze, "dev/defs/zlartv".freeze, "dev/defs/zlarz".freeze, "dev/defs/zlarzb".freeze, "dev/defs/zlarzt".freeze, "dev/defs/zlascl".freeze, "dev/defs/zlascl2".freeze, "dev/defs/zlaset".freeze, "dev/defs/zlasr".freeze, "dev/defs/zlassq".freeze, "dev/defs/zlaswp".freeze, "dev/defs/zlasyf".freeze, "dev/defs/zlat2c".freeze, "dev/defs/zlatbs".freeze, "dev/defs/zlatdf".freeze, "dev/defs/zlatps".freeze, "dev/defs/zlatrd".freeze, "dev/defs/zlatrs".freeze, "dev/defs/zlatrz".freeze, "dev/defs/zlatzm".freeze, "dev/defs/zlauu2".freeze, "dev/defs/zlauum".freeze, "dev/defs/zpbcon".freeze, "dev/defs/zpbequ".freeze, "dev/defs/zpbrfs".freeze, "dev/defs/zpbstf".freeze, "dev/defs/zpbsv".freeze, "dev/defs/zpbsvx".freeze, "dev/defs/zpbtf2".freeze, "dev/defs/zpbtrf".freeze, "dev/defs/zpbtrs".freeze, "dev/defs/zpftrf".freeze, "dev/defs/zpftri".freeze, "dev/defs/zpftrs".freeze, "dev/defs/zpocon".freeze, "dev/defs/zpoequ".freeze, "dev/defs/zpoequb".freeze, "dev/defs/zporfs".freeze, "dev/defs/zporfsx".freeze, "dev/defs/zposv".freeze, "dev/defs/zposvx".freeze, "dev/defs/zposvxx".freeze, "dev/defs/zpotf2".freeze, "dev/defs/zpotrf".freeze, "dev/defs/zpotri".freeze, "dev/defs/zpotrs".freeze, "dev/defs/zppcon".freeze, "dev/defs/zppequ".freeze, "dev/defs/zpprfs".freeze, "dev/defs/zppsv".freeze, "dev/defs/zppsvx".freeze, "dev/defs/zpptrf".freeze, "dev/defs/zpptri".freeze, "dev/defs/zpptrs".freeze, "dev/defs/zpstf2".freeze, "dev/defs/zpstrf".freeze, "dev/defs/zptcon".freeze, "dev/defs/zpteqr".freeze, "dev/defs/zptrfs".freeze, "dev/defs/zptsv".freeze, "dev/defs/zptsvx".freeze, "dev/defs/zpttrf".freeze, "dev/defs/zpttrs".freeze, "dev/defs/zptts2".freeze, "dev/defs/zrot".freeze, "dev/defs/zspcon".freeze, "dev/defs/zspmv".freeze, "dev/defs/zspr".freeze, "dev/defs/zsprfs".freeze, "dev/defs/zspsv".freeze, "dev/defs/zspsvx".freeze, "dev/defs/zsptrf".freeze, "dev/defs/zsptri".freeze, "dev/defs/zsptrs".freeze, "dev/defs/zstedc".freeze, "dev/defs/zstegr".freeze, "dev/defs/zstein".freeze, "dev/defs/zstemr".freeze, "dev/defs/zsteqr".freeze, "dev/defs/zsycon".freeze, "dev/defs/zsyconv".freeze, "dev/defs/zsyequb".freeze, "dev/defs/zsymv".freeze, "dev/defs/zsyr".freeze, "dev/defs/zsyrfs".freeze, "dev/defs/zsyrfsx".freeze, "dev/defs/zsysv".freeze, "dev/defs/zsysvx".freeze, "dev/defs/zsysvxx".freeze, "dev/defs/zsyswapr".freeze, "dev/defs/zsytf2".freeze, "dev/defs/zsytrf".freeze, "dev/defs/zsytri".freeze, "dev/defs/zsytri2".freeze, "dev/defs/zsytri2x".freeze, "dev/defs/zsytrs".freeze, "dev/defs/zsytrs2".freeze, "dev/defs/ztbcon".freeze, "dev/defs/ztbrfs".freeze, "dev/defs/ztbtrs".freeze, "dev/defs/ztfsm".freeze, "dev/defs/ztftri".freeze, "dev/defs/ztfttp".freeze, "dev/defs/ztfttr".freeze, "dev/defs/ztgevc".freeze, "dev/defs/ztgex2".freeze, "dev/defs/ztgexc".freeze, "dev/defs/ztgsen".freeze, "dev/defs/ztgsja".freeze, "dev/defs/ztgsna".freeze, "dev/defs/ztgsy2".freeze, "dev/defs/ztgsyl".freeze, "dev/defs/ztpcon".freeze, "dev/defs/ztprfs".freeze, "dev/defs/ztptri".freeze, "dev/defs/ztptrs".freeze, "dev/defs/ztpttf".freeze, "dev/defs/ztpttr".freeze, "dev/defs/ztrcon".freeze, "dev/defs/ztrevc".freeze, "dev/defs/ztrexc".freeze, "dev/defs/ztrrfs".freeze, "dev/defs/ztrsen".freeze, "dev/defs/ztrsna".freeze, "dev/defs/ztrsyl".freeze, "dev/defs/ztrti2".freeze, "dev/defs/ztrtri".freeze, "dev/defs/ztrtrs".freeze, "dev/defs/ztrttf".freeze, "dev/defs/ztrttp".freeze, "dev/defs/ztzrqf".freeze, "dev/defs/ztzrzf".freeze, "dev/defs/zunbdb".freeze, "dev/defs/zuncsd".freeze, "dev/defs/zung2l".freeze, "dev/defs/zung2r".freeze, "dev/defs/zungbr".freeze, "dev/defs/zunghr".freeze, "dev/defs/zungl2".freeze, "dev/defs/zunglq".freeze, "dev/defs/zungql".freeze, "dev/defs/zungqr".freeze, "dev/defs/zungr2".freeze, "dev/defs/zungrq".freeze, "dev/defs/zungtr".freeze, "dev/defs/zunm2l".freeze, "dev/defs/zunm2r".freeze, "dev/defs/zunmbr".freeze, "dev/defs/zunmhr".freeze, "dev/defs/zunml2".freeze, "dev/defs/zunmlq".freeze, "dev/defs/zunmql".freeze, "dev/defs/zunmqr".freeze, "dev/defs/zunmr2".freeze, "dev/defs/zunmr3".freeze, "dev/defs/zunmrq".freeze, "dev/defs/zunmrz".freeze, "dev/defs/zunmtr".freeze, "dev/defs/zupgtr".freeze, "dev/defs/zupmtr".freeze, "dev/make_csrc.rb".freeze, "dev/mkdoc.rb".freeze, "dev/parse.rb".freeze, "ext/cbbcsd.c".freeze, "ext/cbdsqr.c".freeze, "ext/cgbbrd.c".freeze, "ext/cgbcon.c".freeze, "ext/cgbequ.c".freeze, "ext/cgbequb.c".freeze, "ext/cgbrfs.c".freeze, "ext/cgbrfsx.c".freeze, "ext/cgbsv.c".freeze, "ext/cgbsvx.c".freeze, "ext/cgbsvxx.c".freeze, "ext/cgbtf2.c".freeze, "ext/cgbtrf.c".freeze, "ext/cgbtrs.c".freeze, "ext/cgebak.c".freeze, "ext/cgebal.c".freeze, "ext/cgebd2.c".freeze, "ext/cgebrd.c".freeze, "ext/cgecon.c".freeze, "ext/cgeequ.c".freeze, "ext/cgeequb.c".freeze, "ext/cgees.c".freeze, "ext/cgeesx.c".freeze, "ext/cgeev.c".freeze, "ext/cgeevx.c".freeze, "ext/cgegs.c".freeze, "ext/cgegv.c".freeze, "ext/cgehd2.c".freeze, "ext/cgehrd.c".freeze, "ext/cgelq2.c".freeze, "ext/cgelqf.c".freeze, "ext/cgels.c".freeze, "ext/cgelsd.c".freeze, "ext/cgelss.c".freeze, "ext/cgelsx.c".freeze, "ext/cgelsy.c".freeze, "ext/cgeql2.c".freeze, "ext/cgeqlf.c".freeze, "ext/cgeqp3.c".freeze, "ext/cgeqpf.c".freeze, "ext/cgeqr2.c".freeze, "ext/cgeqr2p.c".freeze, "ext/cgeqrf.c".freeze, "ext/cgeqrfp.c".freeze, "ext/cgerfs.c".freeze, "ext/cgerfsx.c".freeze, "ext/cgerq2.c".freeze, "ext/cgerqf.c".freeze, "ext/cgesc2.c".freeze, "ext/cgesdd.c".freeze, "ext/cgesv.c".freeze, "ext/cgesvd.c".freeze, "ext/cgesvx.c".freeze, "ext/cgesvxx.c".freeze, "ext/cgetc2.c".freeze, "ext/cgetf2.c".freeze, "ext/cgetrf.c".freeze, "ext/cgetri.c".freeze, "ext/cgetrs.c".freeze, "ext/cggbak.c".freeze, "ext/cggbal.c".freeze, "ext/cgges.c".freeze, "ext/cggesx.c".freeze, "ext/cggev.c".freeze, "ext/cggevx.c".freeze, "ext/cggglm.c".freeze, "ext/cgghrd.c".freeze, "ext/cgglse.c".freeze, "ext/cggqrf.c".freeze, "ext/cggrqf.c".freeze, "ext/cggsvd.c".freeze, "ext/cggsvp.c".freeze, "ext/cgtcon.c".freeze, "ext/cgtrfs.c".freeze, "ext/cgtsv.c".freeze, "ext/cgtsvx.c".freeze, "ext/cgttrf.c".freeze, "ext/cgttrs.c".freeze, "ext/cgtts2.c".freeze, "ext/chbev.c".freeze, "ext/chbevd.c".freeze, "ext/chbevx.c".freeze, "ext/chbgst.c".freeze, "ext/chbgv.c".freeze, "ext/chbgvd.c".freeze, "ext/chbgvx.c".freeze, "ext/chbtrd.c".freeze, "ext/checon.c".freeze, "ext/cheequb.c".freeze, "ext/cheev.c".freeze, "ext/cheevd.c".freeze, "ext/cheevr.c".freeze, "ext/cheevx.c".freeze, "ext/chegs2.c".freeze, "ext/chegst.c".freeze, "ext/chegv.c".freeze, "ext/chegvd.c".freeze, "ext/chegvx.c".freeze, "ext/cherfs.c".freeze, "ext/cherfsx.c".freeze, "ext/chesv.c".freeze, "ext/chesvx.c".freeze, "ext/chesvxx.c".freeze, "ext/chetd2.c".freeze, "ext/chetf2.c".freeze, "ext/chetrd.c".freeze, "ext/chetrf.c".freeze, "ext/chetri.c".freeze, "ext/chetrs.c".freeze, "ext/chetrs2.c".freeze, "ext/chfrk.c".freeze, "ext/chgeqz.c".freeze, "ext/chla_transtype.c".freeze, "ext/chpcon.c".freeze, "ext/chpev.c".freeze, "ext/chpevd.c".freeze, "ext/chpevx.c".freeze, "ext/chpgst.c".freeze, "ext/chpgv.c".freeze, "ext/chpgvd.c".freeze, "ext/chpgvx.c".freeze, "ext/chprfs.c".freeze, "ext/chpsv.c".freeze, "ext/chpsvx.c".freeze, "ext/chptrd.c".freeze, "ext/chptrf.c".freeze, "ext/chptri.c".freeze, "ext/chptrs.c".freeze, "ext/chsein.c".freeze, "ext/chseqr.c".freeze, "ext/cla_gbamv.c".freeze, "ext/cla_gbrcond_c.c".freeze, "ext/cla_gbrcond_x.c".freeze, "ext/cla_gbrfsx_extended.c".freeze, "ext/cla_gbrpvgrw.c".freeze, "ext/cla_geamv.c".freeze, "ext/cla_gercond_c.c".freeze, "ext/cla_gercond_x.c".freeze, "ext/cla_gerfsx_extended.c".freeze, "ext/cla_heamv.c".freeze, "ext/cla_hercond_c.c".freeze, "ext/cla_hercond_x.c".freeze, "ext/cla_herfsx_extended.c".freeze, "ext/cla_herpvgrw.c".freeze, "ext/cla_lin_berr.c".freeze, "ext/cla_porcond_c.c".freeze, "ext/cla_porcond_x.c".freeze, "ext/cla_porfsx_extended.c".freeze, "ext/cla_porpvgrw.c".freeze, "ext/cla_rpvgrw.c".freeze, "ext/cla_syamv.c".freeze, "ext/cla_syrcond_c.c".freeze, "ext/cla_syrcond_x.c".freeze, "ext/cla_syrfsx_extended.c".freeze, "ext/cla_syrpvgrw.c".freeze, "ext/cla_wwaddw.c".freeze, "ext/clabrd.c".freeze, "ext/clacgv.c".freeze, "ext/clacn2.c".freeze, "ext/clacon.c".freeze, "ext/clacp2.c".freeze, "ext/clacpy.c".freeze, "ext/clacrm.c".freeze, "ext/clacrt.c".freeze, "ext/cladiv.c".freeze, "ext/claed0.c".freeze, "ext/claed7.c".freeze, "ext/claed8.c".freeze, "ext/claein.c".freeze, "ext/claesy.c".freeze, "ext/claev2.c".freeze, "ext/clag2z.c".freeze, "ext/clags2.c".freeze, "ext/clagtm.c".freeze, "ext/clahef.c".freeze, "ext/clahqr.c".freeze, "ext/clahr2.c".freeze, "ext/clahrd.c".freeze, "ext/claic1.c".freeze, "ext/clals0.c".freeze, "ext/clalsa.c".freeze, "ext/clalsd.c".freeze, "ext/clangb.c".freeze, "ext/clange.c".freeze, "ext/clangt.c".freeze, "ext/clanhb.c".freeze, "ext/clanhe.c".freeze, "ext/clanhf.c".freeze, "ext/clanhp.c".freeze, "ext/clanhs.c".freeze, "ext/clanht.c".freeze, "ext/clansb.c".freeze, "ext/clansp.c".freeze, "ext/clansy.c".freeze, "ext/clantb.c".freeze, "ext/clantp.c".freeze, "ext/clantr.c".freeze, "ext/clapll.c".freeze, "ext/clapmr.c".freeze, "ext/clapmt.c".freeze, "ext/claqgb.c".freeze, "ext/claqge.c".freeze, "ext/claqhb.c".freeze, "ext/claqhe.c".freeze, "ext/claqhp.c".freeze, "ext/claqp2.c".freeze, "ext/claqps.c".freeze, "ext/claqr0.c".freeze, "ext/claqr1.c".freeze, "ext/claqr2.c".freeze, "ext/claqr3.c".freeze, "ext/claqr4.c".freeze, "ext/claqr5.c".freeze, "ext/claqsb.c".freeze, "ext/claqsp.c".freeze, "ext/claqsy.c".freeze, "ext/clar1v.c".freeze, "ext/clar2v.c".freeze, "ext/clarcm.c".freeze, "ext/clarf.c".freeze, "ext/clarfb.c".freeze, "ext/clarfg.c".freeze, "ext/clarfgp.c".freeze, "ext/clarft.c".freeze, "ext/clarfx.c".freeze, "ext/clargv.c".freeze, "ext/clarnv.c".freeze, "ext/clarrv.c".freeze, "ext/clarscl2.c".freeze, "ext/clartg.c".freeze, "ext/clartv.c".freeze, "ext/clarz.c".freeze, "ext/clarzb.c".freeze, "ext/clarzt.c".freeze, "ext/clascl.c".freeze, "ext/clascl2.c".freeze, "ext/claset.c".freeze, "ext/clasr.c".freeze, "ext/classq.c".freeze, "ext/claswp.c".freeze, "ext/clasyf.c".freeze, "ext/clatbs.c".freeze, "ext/clatdf.c".freeze, "ext/clatps.c".freeze, "ext/clatrd.c".freeze, "ext/clatrs.c".freeze, "ext/clatrz.c".freeze, "ext/clatzm.c".freeze, "ext/clauu2.c".freeze, "ext/clauum.c".freeze, "ext/cpbcon.c".freeze, "ext/cpbequ.c".freeze, "ext/cpbrfs.c".freeze, "ext/cpbstf.c".freeze, "ext/cpbsv.c".freeze, "ext/cpbsvx.c".freeze, "ext/cpbtf2.c".freeze, "ext/cpbtrf.c".freeze, "ext/cpbtrs.c".freeze, "ext/cpftrf.c".freeze, "ext/cpftri.c".freeze, "ext/cpftrs.c".freeze, "ext/cpocon.c".freeze, "ext/cpoequ.c".freeze, "ext/cpoequb.c".freeze, "ext/cporfs.c".freeze, "ext/cporfsx.c".freeze, "ext/cposv.c".freeze, "ext/cposvx.c".freeze, "ext/cposvxx.c".freeze, "ext/cpotf2.c".freeze, "ext/cpotrf.c".freeze, "ext/cpotri.c".freeze, "ext/cpotrs.c".freeze, "ext/cppcon.c".freeze, "ext/cppequ.c".freeze, "ext/cpprfs.c".freeze, "ext/cppsv.c".freeze, "ext/cppsvx.c".freeze, "ext/cpptrf.c".freeze, "ext/cpptri.c".freeze, "ext/cpptrs.c".freeze, "ext/cpstf2.c".freeze, "ext/cpstrf.c".freeze, "ext/cptcon.c".freeze, "ext/cpteqr.c".freeze, "ext/cptrfs.c".freeze, "ext/cptsv.c".freeze, "ext/cptsvx.c".freeze, "ext/cpttrf.c".freeze, "ext/cpttrs.c".freeze, "ext/cptts2.c".freeze, "ext/crot.c".freeze, "ext/cspcon.c".freeze, "ext/cspmv.c".freeze, "ext/cspr.c".freeze, "ext/csprfs.c".freeze, "ext/cspsv.c".freeze, "ext/cspsvx.c".freeze, "ext/csptrf.c".freeze, "ext/csptri.c".freeze, "ext/csptrs.c".freeze, "ext/csrscl.c".freeze, "ext/cstedc.c".freeze, "ext/cstegr.c".freeze, "ext/cstein.c".freeze, "ext/cstemr.c".freeze, "ext/csteqr.c".freeze, "ext/csycon.c".freeze, "ext/csyconv.c".freeze, "ext/csyequb.c".freeze, "ext/csymv.c".freeze, "ext/csyr.c".freeze, "ext/csyrfs.c".freeze, "ext/csyrfsx.c".freeze, "ext/csysv.c".freeze, "ext/csysvx.c".freeze, "ext/csysvxx.c".freeze, "ext/csyswapr.c".freeze, "ext/csytf2.c".freeze, "ext/csytrf.c".freeze, "ext/csytri.c".freeze, "ext/csytri2.c".freeze, "ext/csytri2x.c".freeze, "ext/csytrs.c".freeze, "ext/csytrs2.c".freeze, "ext/ctbcon.c".freeze, "ext/ctbrfs.c".freeze, "ext/ctbtrs.c".freeze, "ext/ctfsm.c".freeze, "ext/ctftri.c".freeze, "ext/ctfttp.c".freeze, "ext/ctfttr.c".freeze, "ext/ctgevc.c".freeze, "ext/ctgex2.c".freeze, "ext/ctgexc.c".freeze, "ext/ctgsen.c".freeze, "ext/ctgsja.c".freeze, "ext/ctgsna.c".freeze, "ext/ctgsy2.c".freeze, "ext/ctgsyl.c".freeze, "ext/ctpcon.c".freeze, "ext/ctprfs.c".freeze, "ext/ctptri.c".freeze, "ext/ctptrs.c".freeze, "ext/ctpttf.c".freeze, "ext/ctpttr.c".freeze, "ext/ctrcon.c".freeze, "ext/ctrevc.c".freeze, "ext/ctrexc.c".freeze, "ext/ctrrfs.c".freeze, "ext/ctrsen.c".freeze, "ext/ctrsna.c".freeze, "ext/ctrsyl.c".freeze, "ext/ctrti2.c".freeze, "ext/ctrtri.c".freeze, "ext/ctrtrs.c".freeze, "ext/ctrttf.c".freeze, "ext/ctrttp.c".freeze, "ext/ctzrqf.c".freeze, "ext/ctzrzf.c".freeze, "ext/cunbdb.c".freeze, "ext/cuncsd.c".freeze, "ext/cung2l.c".freeze, "ext/cung2r.c".freeze, "ext/cungbr.c".freeze, "ext/cunghr.c".freeze, "ext/cungl2.c".freeze, "ext/cunglq.c".freeze, "ext/cungql.c".freeze, "ext/cungqr.c".freeze, "ext/cungr2.c".freeze, "ext/cungrq.c".freeze, "ext/cungtr.c".freeze, "ext/cunm2l.c".freeze, "ext/cunm2r.c".freeze, "ext/cunmbr.c".freeze, "ext/cunmhr.c".freeze, "ext/cunml2.c".freeze, "ext/cunmlq.c".freeze, "ext/cunmql.c".freeze, "ext/cunmqr.c".freeze, "ext/cunmr2.c".freeze, "ext/cunmr3.c".freeze, "ext/cunmrq.c".freeze, "ext/cunmrz.c".freeze, "ext/cunmtr.c".freeze, "ext/cupgtr.c".freeze, "ext/cupmtr.c".freeze, "ext/dbbcsd.c".freeze, "ext/dbdsdc.c".freeze, "ext/dbdsqr.c".freeze, "ext/ddisna.c".freeze, "ext/dgbbrd.c".freeze, "ext/dgbcon.c".freeze, "ext/dgbequ.c".freeze, "ext/dgbequb.c".freeze, "ext/dgbrfs.c".freeze, "ext/dgbrfsx.c".freeze, "ext/dgbsv.c".freeze, "ext/dgbsvx.c".freeze, "ext/dgbsvxx.c".freeze, "ext/dgbtf2.c".freeze, "ext/dgbtrf.c".freeze, "ext/dgbtrs.c".freeze, "ext/dgebak.c".freeze, "ext/dgebal.c".freeze, "ext/dgebd2.c".freeze, "ext/dgebrd.c".freeze, "ext/dgecon.c".freeze, "ext/dgeequ.c".freeze, "ext/dgeequb.c".freeze, "ext/dgees.c".freeze, "ext/dgeesx.c".freeze, "ext/dgeev.c".freeze, "ext/dgeevx.c".freeze, "ext/dgegs.c".freeze, "ext/dgegv.c".freeze, "ext/dgehd2.c".freeze, "ext/dgehrd.c".freeze, "ext/dgejsv.c".freeze, "ext/dgelq2.c".freeze, "ext/dgelqf.c".freeze, "ext/dgels.c".freeze, "ext/dgelsd.c".freeze, "ext/dgelss.c".freeze, "ext/dgelsx.c".freeze, "ext/dgelsy.c".freeze, "ext/dgeql2.c".freeze, "ext/dgeqlf.c".freeze, "ext/dgeqp3.c".freeze, "ext/dgeqpf.c".freeze, "ext/dgeqr2.c".freeze, "ext/dgeqr2p.c".freeze, "ext/dgeqrf.c".freeze, "ext/dgeqrfp.c".freeze, "ext/dgerfs.c".freeze, "ext/dgerfsx.c".freeze, "ext/dgerq2.c".freeze, "ext/dgerqf.c".freeze, "ext/dgesc2.c".freeze, "ext/dgesdd.c".freeze, "ext/dgesv.c".freeze, "ext/dgesvd.c".freeze, "ext/dgesvj.c".freeze, "ext/dgesvx.c".freeze, "ext/dgesvxx.c".freeze, "ext/dgetc2.c".freeze, "ext/dgetf2.c".freeze, "ext/dgetrf.c".freeze, "ext/dgetri.c".freeze, "ext/dgetrs.c".freeze, "ext/dggbak.c".freeze, "ext/dggbal.c".freeze, "ext/dgges.c".freeze, "ext/dggesx.c".freeze, "ext/dggev.c".freeze, "ext/dggevx.c".freeze, "ext/dggglm.c".freeze, "ext/dgghrd.c".freeze, "ext/dgglse.c".freeze, "ext/dggqrf.c".freeze, "ext/dggrqf.c".freeze, "ext/dggsvd.c".freeze, "ext/dggsvp.c".freeze, "ext/dgsvj0.c".freeze, "ext/dgsvj1.c".freeze, "ext/dgtcon.c".freeze, "ext/dgtrfs.c".freeze, "ext/dgtsv.c".freeze, "ext/dgtsvx.c".freeze, "ext/dgttrf.c".freeze, "ext/dgttrs.c".freeze, "ext/dgtts2.c".freeze, "ext/dhgeqz.c".freeze, "ext/dhsein.c".freeze, "ext/dhseqr.c".freeze, "ext/disnan.c".freeze, "ext/dla_gbamv.c".freeze, "ext/dla_gbrcond.c".freeze, "ext/dla_gbrfsx_extended.c".freeze, "ext/dla_gbrpvgrw.c".freeze, "ext/dla_geamv.c".freeze, "ext/dla_gercond.c".freeze, "ext/dla_gerfsx_extended.c".freeze, "ext/dla_lin_berr.c".freeze, "ext/dla_porcond.c".freeze, "ext/dla_porfsx_extended.c".freeze, "ext/dla_porpvgrw.c".freeze, "ext/dla_rpvgrw.c".freeze, "ext/dla_syamv.c".freeze, "ext/dla_syrcond.c".freeze, "ext/dla_syrfsx_extended.c".freeze, "ext/dla_syrpvgrw.c".freeze, "ext/dla_wwaddw.c".freeze, "ext/dlabad.c".freeze, "ext/dlabrd.c".freeze, "ext/dlacn2.c".freeze, "ext/dlacon.c".freeze, "ext/dlacpy.c".freeze, "ext/dladiv.c".freeze, "ext/dlae2.c".freeze, "ext/dlaebz.c".freeze, "ext/dlaed0.c".freeze, "ext/dlaed1.c".freeze, "ext/dlaed2.c".freeze, "ext/dlaed3.c".freeze, "ext/dlaed4.c".freeze, "ext/dlaed5.c".freeze, "ext/dlaed6.c".freeze, "ext/dlaed7.c".freeze, "ext/dlaed8.c".freeze, "ext/dlaed9.c".freeze, "ext/dlaeda.c".freeze, "ext/dlaein.c".freeze, "ext/dlaev2.c".freeze, "ext/dlaexc.c".freeze, "ext/dlag2.c".freeze, "ext/dlag2s.c".freeze, "ext/dlags2.c".freeze, "ext/dlagtf.c".freeze, "ext/dlagtm.c".freeze, "ext/dlagts.c".freeze, "ext/dlagv2.c".freeze, "ext/dlahqr.c".freeze, "ext/dlahr2.c".freeze, "ext/dlahrd.c".freeze, "ext/dlaic1.c".freeze, "ext/dlaln2.c".freeze, "ext/dlals0.c".freeze, "ext/dlalsa.c".freeze, "ext/dlalsd.c".freeze, "ext/dlamrg.c".freeze, "ext/dlaneg.c".freeze, "ext/dlangb.c".freeze, "ext/dlange.c".freeze, "ext/dlangt.c".freeze, "ext/dlanhs.c".freeze, "ext/dlansb.c".freeze, "ext/dlansf.c".freeze, "ext/dlansp.c".freeze, "ext/dlanst.c".freeze, "ext/dlansy.c".freeze, "ext/dlantb.c".freeze, "ext/dlantp.c".freeze, "ext/dlantr.c".freeze, "ext/dlanv2.c".freeze, "ext/dlapll.c".freeze, "ext/dlapmr.c".freeze, "ext/dlapmt.c".freeze, "ext/dlapy2.c".freeze, "ext/dlapy3.c".freeze, "ext/dlaqgb.c".freeze, "ext/dlaqge.c".freeze, "ext/dlaqp2.c".freeze, "ext/dlaqps.c".freeze, "ext/dlaqr0.c".freeze, "ext/dlaqr1.c".freeze, "ext/dlaqr2.c".freeze, "ext/dlaqr3.c".freeze, "ext/dlaqr4.c".freeze, "ext/dlaqr5.c".freeze, "ext/dlaqsb.c".freeze, "ext/dlaqsp.c".freeze, "ext/dlaqsy.c".freeze, "ext/dlaqtr.c".freeze, "ext/dlar1v.c".freeze, "ext/dlar2v.c".freeze, "ext/dlarf.c".freeze, "ext/dlarfb.c".freeze, "ext/dlarfg.c".freeze, "ext/dlarfgp.c".freeze, "ext/dlarft.c".freeze, "ext/dlarfx.c".freeze, "ext/dlargv.c".freeze, "ext/dlarnv.c".freeze, "ext/dlarra.c".freeze, "ext/dlarrb.c".freeze, "ext/dlarrc.c".freeze, "ext/dlarrd.c".freeze, "ext/dlarre.c".freeze, "ext/dlarrf.c".freeze, "ext/dlarrj.c".freeze, "ext/dlarrk.c".freeze, "ext/dlarrr.c".freeze, "ext/dlarrv.c".freeze, "ext/dlarscl2.c".freeze, "ext/dlartg.c".freeze, "ext/dlartgp.c".freeze, "ext/dlartgs.c".freeze, "ext/dlartv.c".freeze, "ext/dlaruv.c".freeze, "ext/dlarz.c".freeze, "ext/dlarzb.c".freeze, "ext/dlarzt.c".freeze, "ext/dlas2.c".freeze, "ext/dlascl.c".freeze, "ext/dlascl2.c".freeze, "ext/dlasd0.c".freeze, "ext/dlasd1.c".freeze, "ext/dlasd2.c".freeze, "ext/dlasd3.c".freeze, "ext/dlasd4.c".freeze, "ext/dlasd5.c".freeze, "ext/dlasd6.c".freeze, "ext/dlasd7.c".freeze, "ext/dlasd8.c".freeze, "ext/dlasda.c".freeze, "ext/dlasdq.c".freeze, "ext/dlasdt.c".freeze, "ext/dlaset.c".freeze, "ext/dlasq1.c".freeze, "ext/dlasq2.c".freeze, "ext/dlasq3.c".freeze, "ext/dlasq4.c".freeze, "ext/dlasq5.c".freeze, "ext/dlasq6.c".freeze, "ext/dlasr.c".freeze, "ext/dlasrt.c".freeze, "ext/dlassq.c".freeze, "ext/dlasv2.c".freeze, "ext/dlaswp.c".freeze, "ext/dlasy2.c".freeze, "ext/dlasyf.c".freeze, "ext/dlat2s.c".freeze, "ext/dlatbs.c".freeze, "ext/dlatdf.c".freeze, "ext/dlatps.c".freeze, "ext/dlatrd.c".freeze, "ext/dlatrs.c".freeze, "ext/dlatrz.c".freeze, "ext/dlatzm.c".freeze, "ext/dlauu2.c".freeze, "ext/dlauum.c".freeze, "ext/dopgtr.c".freeze, "ext/dopmtr.c".freeze, "ext/dorbdb.c".freeze, "ext/dorcsd.c".freeze, "ext/dorg2l.c".freeze, "ext/dorg2r.c".freeze, "ext/dorgbr.c".freeze, "ext/dorghr.c".freeze, "ext/dorgl2.c".freeze, "ext/dorglq.c".freeze, "ext/dorgql.c".freeze, "ext/dorgqr.c".freeze, "ext/dorgr2.c".freeze, "ext/dorgrq.c".freeze, "ext/dorgtr.c".freeze, "ext/dorm2l.c".freeze, "ext/dorm2r.c".freeze, "ext/dormbr.c".freeze, "ext/dormhr.c".freeze, "ext/dorml2.c".freeze, "ext/dormlq.c".freeze, "ext/dormql.c".freeze, "ext/dormqr.c".freeze, "ext/dormr2.c".freeze, "ext/dormr3.c".freeze, "ext/dormrq.c".freeze, "ext/dormrz.c".freeze, "ext/dormtr.c".freeze, "ext/dpbcon.c".freeze, "ext/dpbequ.c".freeze, "ext/dpbrfs.c".freeze, "ext/dpbstf.c".freeze, "ext/dpbsv.c".freeze, "ext/dpbsvx.c".freeze, "ext/dpbtf2.c".freeze, "ext/dpbtrf.c".freeze, "ext/dpbtrs.c".freeze, "ext/dpftrf.c".freeze, "ext/dpftri.c".freeze, "ext/dpftrs.c".freeze, "ext/dpocon.c".freeze, "ext/dpoequ.c".freeze, "ext/dpoequb.c".freeze, "ext/dporfs.c".freeze, "ext/dporfsx.c".freeze, "ext/dposv.c".freeze, "ext/dposvx.c".freeze, "ext/dposvxx.c".freeze, "ext/dpotf2.c".freeze, "ext/dpotrf.c".freeze, "ext/dpotri.c".freeze, "ext/dpotrs.c".freeze, "ext/dppcon.c".freeze, "ext/dppequ.c".freeze, "ext/dpprfs.c".freeze, "ext/dppsv.c".freeze, "ext/dppsvx.c".freeze, "ext/dpptrf.c".freeze, "ext/dpptri.c".freeze, "ext/dpptrs.c".freeze, "ext/dpstf2.c".freeze, "ext/dpstrf.c".freeze, "ext/dptcon.c".freeze, "ext/dpteqr.c".freeze, "ext/dptrfs.c".freeze, "ext/dptsv.c".freeze, "ext/dptsvx.c".freeze, "ext/dpttrf.c".freeze, "ext/dpttrs.c".freeze, "ext/dptts2.c".freeze, "ext/drscl.c".freeze, "ext/dsbev.c".freeze, "ext/dsbevd.c".freeze, "ext/dsbevx.c".freeze, "ext/dsbgst.c".freeze, "ext/dsbgv.c".freeze, "ext/dsbgvd.c".freeze, "ext/dsbgvx.c".freeze, "ext/dsbtrd.c".freeze, "ext/dsfrk.c".freeze, "ext/dsgesv.c".freeze, "ext/dspcon.c".freeze, "ext/dspev.c".freeze, "ext/dspevd.c".freeze, "ext/dspevx.c".freeze, "ext/dspgst.c".freeze, "ext/dspgv.c".freeze, "ext/dspgvd.c".freeze, "ext/dspgvx.c".freeze, "ext/dsposv.c".freeze, "ext/dsprfs.c".freeze, "ext/dspsv.c".freeze, "ext/dspsvx.c".freeze, "ext/dsptrd.c".freeze, "ext/dsptrf.c".freeze, "ext/dsptri.c".freeze, "ext/dsptrs.c".freeze, "ext/dstebz.c".freeze, "ext/dstedc.c".freeze, "ext/dstegr.c".freeze, "ext/dstein.c".freeze, "ext/dstemr.c".freeze, "ext/dsteqr.c".freeze, "ext/dsterf.c".freeze, "ext/dstev.c".freeze, "ext/dstevd.c".freeze, "ext/dstevr.c".freeze, "ext/dstevx.c".freeze, "ext/dsycon.c".freeze, "ext/dsyconv.c".freeze, "ext/dsyequb.c".freeze, "ext/dsyev.c".freeze, "ext/dsyevd.c".freeze, "ext/dsyevr.c".freeze, "ext/dsyevx.c".freeze, "ext/dsygs2.c".freeze, "ext/dsygst.c".freeze, "ext/dsygv.c".freeze, "ext/dsygvd.c".freeze, "ext/dsygvx.c".freeze, "ext/dsyrfs.c".freeze, "ext/dsyrfsx.c".freeze, "ext/dsysv.c".freeze, "ext/dsysvx.c".freeze, "ext/dsysvxx.c".freeze, "ext/dsyswapr.c".freeze, "ext/dsytd2.c".freeze, "ext/dsytf2.c".freeze, "ext/dsytrd.c".freeze, "ext/dsytrf.c".freeze, "ext/dsytri.c".freeze, "ext/dsytri2.c".freeze, "ext/dsytri2x.c".freeze, "ext/dsytrs.c".freeze, "ext/dsytrs2.c".freeze, "ext/dtbcon.c".freeze, "ext/dtbrfs.c".freeze, "ext/dtbtrs.c".freeze, "ext/dtfsm.c".freeze, "ext/dtftri.c".freeze, "ext/dtfttp.c".freeze, "ext/dtfttr.c".freeze, "ext/dtgevc.c".freeze, "ext/dtgex2.c".freeze, "ext/dtgexc.c".freeze, "ext/dtgsen.c".freeze, "ext/dtgsja.c".freeze, "ext/dtgsna.c".freeze, "ext/dtgsy2.c".freeze, "ext/dtgsyl.c".freeze, "ext/dtpcon.c".freeze, "ext/dtprfs.c".freeze, "ext/dtptri.c".freeze, "ext/dtptrs.c".freeze, "ext/dtpttf.c".freeze, "ext/dtpttr.c".freeze, "ext/dtrcon.c".freeze, "ext/dtrevc.c".freeze, "ext/dtrexc.c".freeze, "ext/dtrrfs.c".freeze, "ext/dtrsen.c".freeze, "ext/dtrsna.c".freeze, "ext/dtrsyl.c".freeze, "ext/dtrti2.c".freeze, "ext/dtrtri.c".freeze, "ext/dtrtrs.c".freeze, "ext/dtrttf.c".freeze, "ext/dtrttp.c".freeze, "ext/dtzrqf.c".freeze, "ext/dtzrzf.c".freeze, "ext/dzsum1.c".freeze, "ext/extconf.rb".freeze, "ext/f2c_minimal.h".freeze, "ext/icmax1.c".freeze, "ext/ieeeck.c".freeze, "ext/ilaclc.c".freeze, "ext/ilaclr.c".freeze, "ext/iladiag.c".freeze, "ext/iladlc.c".freeze, "ext/iladlr.c".freeze, "ext/ilaenv.c".freeze, "ext/ilaprec.c".freeze, "ext/ilaslc.c".freeze, "ext/ilaslr.c".freeze, "ext/ilatrans.c".freeze, "ext/ilauplo.c".freeze, "ext/ilaver.c".freeze, "ext/ilazlc.c".freeze, "ext/ilazlr.c".freeze, "ext/iparmq.c".freeze, "ext/izmax1.c".freeze, "ext/lsamen.c".freeze, "ext/rb_lapack.c".freeze, "ext/rb_lapack.h".freeze, "ext/sbbcsd.c".freeze, "ext/sbdsdc.c".freeze, "ext/sbdsqr.c".freeze, "ext/scsum1.c".freeze, "ext/sdisna.c".freeze, "ext/sgbbrd.c".freeze, "ext/sgbcon.c".freeze, "ext/sgbequ.c".freeze, "ext/sgbequb.c".freeze, "ext/sgbrfs.c".freeze, "ext/sgbrfsx.c".freeze, "ext/sgbsv.c".freeze, "ext/sgbsvx.c".freeze, "ext/sgbsvxx.c".freeze, "ext/sgbtf2.c".freeze, "ext/sgbtrf.c".freeze, "ext/sgbtrs.c".freeze, "ext/sgebak.c".freeze, "ext/sgebal.c".freeze, "ext/sgebd2.c".freeze, "ext/sgebrd.c".freeze, "ext/sgecon.c".freeze, "ext/sgeequ.c".freeze, "ext/sgeequb.c".freeze, "ext/sgees.c".freeze, "ext/sgeesx.c".freeze, "ext/sgeev.c".freeze, "ext/sgeevx.c".freeze, "ext/sgegs.c".freeze, "ext/sgegv.c".freeze, "ext/sgehd2.c".freeze, "ext/sgehrd.c".freeze, "ext/sgejsv.c".freeze, "ext/sgelq2.c".freeze, "ext/sgelqf.c".freeze, "ext/sgels.c".freeze, "ext/sgelsd.c".freeze, "ext/sgelss.c".freeze, "ext/sgelsx.c".freeze, "ext/sgelsy.c".freeze, "ext/sgeql2.c".freeze, "ext/sgeqlf.c".freeze, "ext/sgeqp3.c".freeze, "ext/sgeqpf.c".freeze, "ext/sgeqr2.c".freeze, "ext/sgeqr2p.c".freeze, "ext/sgeqrf.c".freeze, "ext/sgeqrfp.c".freeze, "ext/sgerfs.c".freeze, "ext/sgerfsx.c".freeze, "ext/sgerq2.c".freeze, "ext/sgerqf.c".freeze, "ext/sgesc2.c".freeze, "ext/sgesdd.c".freeze, "ext/sgesv.c".freeze, "ext/sgesvd.c".freeze, "ext/sgesvj.c".freeze, "ext/sgesvx.c".freeze, "ext/sgesvxx.c".freeze, "ext/sgetc2.c".freeze, "ext/sgetf2.c".freeze, "ext/sgetrf.c".freeze, "ext/sgetri.c".freeze, "ext/sgetrs.c".freeze, "ext/sggbak.c".freeze, "ext/sggbal.c".freeze, "ext/sgges.c".freeze, "ext/sggesx.c".freeze, "ext/sggev.c".freeze, "ext/sggevx.c".freeze, "ext/sggglm.c".freeze, "ext/sgghrd.c".freeze, "ext/sgglse.c".freeze, "ext/sggqrf.c".freeze, "ext/sggrqf.c".freeze, "ext/sggsvd.c".freeze, "ext/sggsvp.c".freeze, "ext/sgsvj0.c".freeze, "ext/sgsvj1.c".freeze, "ext/sgtcon.c".freeze, "ext/sgtrfs.c".freeze, "ext/sgtsv.c".freeze, "ext/sgtsvx.c".freeze, "ext/sgttrf.c".freeze, "ext/sgttrs.c".freeze, "ext/sgtts2.c".freeze, "ext/shgeqz.c".freeze, "ext/shsein.c".freeze, "ext/shseqr.c".freeze, "ext/sisnan.c".freeze, "ext/sla_gbamv.c".freeze, "ext/sla_gbrcond.c".freeze, "ext/sla_gbrfsx_extended.c".freeze, "ext/sla_gbrpvgrw.c".freeze, "ext/sla_geamv.c".freeze, "ext/sla_gercond.c".freeze, "ext/sla_gerfsx_extended.c".freeze, "ext/sla_lin_berr.c".freeze, "ext/sla_porcond.c".freeze, "ext/sla_porfsx_extended.c".freeze, "ext/sla_porpvgrw.c".freeze, "ext/sla_rpvgrw.c".freeze, "ext/sla_syamv.c".freeze, "ext/sla_syrcond.c".freeze, "ext/sla_syrfsx_extended.c".freeze, "ext/sla_syrpvgrw.c".freeze, "ext/sla_wwaddw.c".freeze, "ext/slabad.c".freeze, "ext/slabrd.c".freeze, "ext/slacn2.c".freeze, "ext/slacon.c".freeze, "ext/slacpy.c".freeze, "ext/sladiv.c".freeze, "ext/slae2.c".freeze, "ext/slaebz.c".freeze, "ext/slaed0.c".freeze, "ext/slaed1.c".freeze, "ext/slaed2.c".freeze, "ext/slaed3.c".freeze, "ext/slaed4.c".freeze, "ext/slaed5.c".freeze, "ext/slaed6.c".freeze, "ext/slaed7.c".freeze, "ext/slaed8.c".freeze, "ext/slaed9.c".freeze, "ext/slaeda.c".freeze, "ext/slaein.c".freeze, "ext/slaev2.c".freeze, "ext/slaexc.c".freeze, "ext/slag2.c".freeze, "ext/slag2d.c".freeze, "ext/slags2.c".freeze, "ext/slagtf.c".freeze, "ext/slagtm.c".freeze, "ext/slagts.c".freeze, "ext/slagv2.c".freeze, "ext/slahqr.c".freeze, "ext/slahr2.c".freeze, "ext/slahrd.c".freeze, "ext/slaic1.c".freeze, "ext/slaln2.c".freeze, "ext/slals0.c".freeze, "ext/slalsa.c".freeze, "ext/slalsd.c".freeze, "ext/slamrg.c".freeze, "ext/slaneg.c".freeze, "ext/slangb.c".freeze, "ext/slange.c".freeze, "ext/slangt.c".freeze, "ext/slanhs.c".freeze, "ext/slansb.c".freeze, "ext/slansf.c".freeze, "ext/slansp.c".freeze, "ext/slanst.c".freeze, "ext/slansy.c".freeze, "ext/slantb.c".freeze, "ext/slantp.c".freeze, "ext/slantr.c".freeze, "ext/slanv2.c".freeze, "ext/slapll.c".freeze, "ext/slapmr.c".freeze, "ext/slapmt.c".freeze, "ext/slapy2.c".freeze, "ext/slapy3.c".freeze, "ext/slaqgb.c".freeze, "ext/slaqge.c".freeze, "ext/slaqp2.c".freeze, "ext/slaqps.c".freeze, "ext/slaqr0.c".freeze, "ext/slaqr1.c".freeze, "ext/slaqr2.c".freeze, "ext/slaqr3.c".freeze, "ext/slaqr4.c".freeze, "ext/slaqr5.c".freeze, "ext/slaqsb.c".freeze, "ext/slaqsp.c".freeze, "ext/slaqsy.c".freeze, "ext/slaqtr.c".freeze, "ext/slar1v.c".freeze, "ext/slar2v.c".freeze, "ext/slarf.c".freeze, "ext/slarfb.c".freeze, "ext/slarfg.c".freeze, "ext/slarfgp.c".freeze, "ext/slarft.c".freeze, "ext/slarfx.c".freeze, "ext/slargv.c".freeze, "ext/slarnv.c".freeze, "ext/slarra.c".freeze, "ext/slarrb.c".freeze, "ext/slarrc.c".freeze, "ext/slarrd.c".freeze, "ext/slarre.c".freeze, "ext/slarrf.c".freeze, "ext/slarrj.c".freeze, "ext/slarrk.c".freeze, "ext/slarrr.c".freeze, "ext/slarrv.c".freeze, "ext/slarscl2.c".freeze, "ext/slartg.c".freeze, "ext/slartgp.c".freeze, "ext/slartgs.c".freeze, "ext/slartv.c".freeze, "ext/slaruv.c".freeze, "ext/slarz.c".freeze, "ext/slarzb.c".freeze, "ext/slarzt.c".freeze, "ext/slas2.c".freeze, "ext/slascl.c".freeze, "ext/slascl2.c".freeze, "ext/slasd0.c".freeze, "ext/slasd1.c".freeze, "ext/slasd2.c".freeze, "ext/slasd3.c".freeze, "ext/slasd4.c".freeze, "ext/slasd5.c".freeze, "ext/slasd6.c".freeze, "ext/slasd7.c".freeze, "ext/slasd8.c".freeze, "ext/slasda.c".freeze, "ext/slasdq.c".freeze, "ext/slasdt.c".freeze, "ext/slaset.c".freeze, "ext/slasq1.c".freeze, "ext/slasq2.c".freeze, "ext/slasq3.c".freeze, "ext/slasq4.c".freeze, "ext/slasq5.c".freeze, "ext/slasq6.c".freeze, "ext/slasr.c".freeze, "ext/slasrt.c".freeze, "ext/slassq.c".freeze, "ext/slasv2.c".freeze, "ext/slaswp.c".freeze, "ext/slasy2.c".freeze, "ext/slasyf.c".freeze, "ext/slatbs.c".freeze, "ext/slatdf.c".freeze, "ext/slatps.c".freeze, "ext/slatrd.c".freeze, "ext/slatrs.c".freeze, "ext/slatrz.c".freeze, "ext/slatzm.c".freeze, "ext/slauu2.c".freeze, "ext/slauum.c".freeze, "ext/sopgtr.c".freeze, "ext/sopmtr.c".freeze, "ext/sorbdb.c".freeze, "ext/sorcsd.c".freeze, "ext/sorg2l.c".freeze, "ext/sorg2r.c".freeze, "ext/sorgbr.c".freeze, "ext/sorghr.c".freeze, "ext/sorgl2.c".freeze, "ext/sorglq.c".freeze, "ext/sorgql.c".freeze, "ext/sorgqr.c".freeze, "ext/sorgr2.c".freeze, "ext/sorgrq.c".freeze, "ext/sorgtr.c".freeze, "ext/sorm2l.c".freeze, "ext/sorm2r.c".freeze, "ext/sormbr.c".freeze, "ext/sormhr.c".freeze, "ext/sorml2.c".freeze, "ext/sormlq.c".freeze, "ext/sormql.c".freeze, "ext/sormqr.c".freeze, "ext/sormr2.c".freeze, "ext/sormr3.c".freeze, "ext/sormrq.c".freeze, "ext/sormrz.c".freeze, "ext/sormtr.c".freeze, "ext/spbcon.c".freeze, "ext/spbequ.c".freeze, "ext/spbrfs.c".freeze, "ext/spbstf.c".freeze, "ext/spbsv.c".freeze, "ext/spbsvx.c".freeze, "ext/spbtf2.c".freeze, "ext/spbtrf.c".freeze, "ext/spbtrs.c".freeze, "ext/spftrf.c".freeze, "ext/spftri.c".freeze, "ext/spftrs.c".freeze, "ext/spocon.c".freeze, "ext/spoequ.c".freeze, "ext/spoequb.c".freeze, "ext/sporfs.c".freeze, "ext/sporfsx.c".freeze, "ext/sposv.c".freeze, "ext/sposvx.c".freeze, "ext/sposvxx.c".freeze, "ext/spotf2.c".freeze, "ext/spotrf.c".freeze, "ext/spotri.c".freeze, "ext/spotrs.c".freeze, "ext/sppcon.c".freeze, "ext/sppequ.c".freeze, "ext/spprfs.c".freeze, "ext/sppsv.c".freeze, "ext/sppsvx.c".freeze, "ext/spptrf.c".freeze, "ext/spptri.c".freeze, "ext/spptrs.c".freeze, "ext/spstf2.c".freeze, "ext/spstrf.c".freeze, "ext/sptcon.c".freeze, "ext/spteqr.c".freeze, "ext/sptrfs.c".freeze, "ext/sptsv.c".freeze, "ext/sptsvx.c".freeze, "ext/spttrf.c".freeze, "ext/spttrs.c".freeze, "ext/sptts2.c".freeze, "ext/srscl.c".freeze, "ext/ssbev.c".freeze, "ext/ssbevd.c".freeze, "ext/ssbevx.c".freeze, "ext/ssbgst.c".freeze, "ext/ssbgv.c".freeze, "ext/ssbgvd.c".freeze, "ext/ssbgvx.c".freeze, "ext/ssbtrd.c".freeze, "ext/ssfrk.c".freeze, "ext/sspcon.c".freeze, "ext/sspev.c".freeze, "ext/sspevd.c".freeze, "ext/sspevx.c".freeze, "ext/sspgst.c".freeze, "ext/sspgv.c".freeze, "ext/sspgvd.c".freeze, "ext/sspgvx.c".freeze, "ext/ssprfs.c".freeze, "ext/sspsv.c".freeze, "ext/sspsvx.c".freeze, "ext/ssptrd.c".freeze, "ext/ssptrf.c".freeze, "ext/ssptri.c".freeze, "ext/ssptrs.c".freeze, "ext/sstebz.c".freeze, "ext/sstedc.c".freeze, "ext/sstegr.c".freeze, "ext/sstein.c".freeze, "ext/sstemr.c".freeze, "ext/ssteqr.c".freeze, "ext/ssterf.c".freeze, "ext/sstev.c".freeze, "ext/sstevd.c".freeze, "ext/sstevr.c".freeze, "ext/sstevx.c".freeze, "ext/ssycon.c".freeze, "ext/ssyconv.c".freeze, "ext/ssyequb.c".freeze, "ext/ssyev.c".freeze, "ext/ssyevd.c".freeze, "ext/ssyevr.c".freeze, "ext/ssyevx.c".freeze, "ext/ssygs2.c".freeze, "ext/ssygst.c".freeze, "ext/ssygv.c".freeze, "ext/ssygvd.c".freeze, "ext/ssygvx.c".freeze, "ext/ssyrfs.c".freeze, "ext/ssyrfsx.c".freeze, "ext/ssysv.c".freeze, "ext/ssysvx.c".freeze, "ext/ssysvxx.c".freeze, "ext/ssyswapr.c".freeze, "ext/ssytd2.c".freeze, "ext/ssytf2.c".freeze, "ext/ssytrd.c".freeze, "ext/ssytrf.c".freeze, "ext/ssytri.c".freeze, "ext/ssytri2.c".freeze, "ext/ssytri2x.c".freeze, "ext/ssytrs.c".freeze, "ext/ssytrs2.c".freeze, "ext/stbcon.c".freeze, "ext/stbrfs.c".freeze, "ext/stbtrs.c".freeze, "ext/stfsm.c".freeze, "ext/stftri.c".freeze, "ext/stfttp.c".freeze, "ext/stfttr.c".freeze, "ext/stgevc.c".freeze, "ext/stgex2.c".freeze, "ext/stgexc.c".freeze, "ext/stgsen.c".freeze, "ext/stgsja.c".freeze, "ext/stgsna.c".freeze, "ext/stgsy2.c".freeze, "ext/stgsyl.c".freeze, "ext/stpcon.c".freeze, "ext/stprfs.c".freeze, "ext/stptri.c".freeze, "ext/stptrs.c".freeze, "ext/stpttf.c".freeze, "ext/stpttr.c".freeze, "ext/strcon.c".freeze, "ext/strevc.c".freeze, "ext/strexc.c".freeze, "ext/strrfs.c".freeze, "ext/strsen.c".freeze, "ext/strsna.c".freeze, "ext/strsyl.c".freeze, "ext/strti2.c".freeze, "ext/strtri.c".freeze, "ext/strtrs.c".freeze, "ext/strttf.c".freeze, "ext/strttp.c".freeze, "ext/stzrqf.c".freeze, "ext/stzrzf.c".freeze, "ext/xerbla.c".freeze, "ext/xerbla_array.c".freeze, "ext/zbbcsd.c".freeze, "ext/zbdsqr.c".freeze, "ext/zcgesv.c".freeze, "ext/zcposv.c".freeze, "ext/zdrscl.c".freeze, "ext/zgbbrd.c".freeze, "ext/zgbcon.c".freeze, "ext/zgbequ.c".freeze, "ext/zgbequb.c".freeze, "ext/zgbrfs.c".freeze, "ext/zgbrfsx.c".freeze, "ext/zgbsv.c".freeze, "ext/zgbsvx.c".freeze, "ext/zgbsvxx.c".freeze, "ext/zgbtf2.c".freeze, "ext/zgbtrf.c".freeze, "ext/zgbtrs.c".freeze, "ext/zgebak.c".freeze, "ext/zgebal.c".freeze, "ext/zgebd2.c".freeze, "ext/zgebrd.c".freeze, "ext/zgecon.c".freeze, "ext/zgeequ.c".freeze, "ext/zgeequb.c".freeze, "ext/zgees.c".freeze, "ext/zgeesx.c".freeze, "ext/zgeev.c".freeze, "ext/zgeevx.c".freeze, "ext/zgegs.c".freeze, "ext/zgegv.c".freeze, "ext/zgehd2.c".freeze, "ext/zgehrd.c".freeze, "ext/zgelq2.c".freeze, "ext/zgelqf.c".freeze, "ext/zgels.c".freeze, "ext/zgelsd.c".freeze, "ext/zgelss.c".freeze, "ext/zgelsx.c".freeze, "ext/zgelsy.c".freeze, "ext/zgeql2.c".freeze, "ext/zgeqlf.c".freeze, "ext/zgeqp3.c".freeze, "ext/zgeqpf.c".freeze, "ext/zgeqr2.c".freeze, "ext/zgeqr2p.c".freeze, "ext/zgeqrf.c".freeze, "ext/zgeqrfp.c".freeze, "ext/zgerfs.c".freeze, "ext/zgerfsx.c".freeze, "ext/zgerq2.c".freeze, "ext/zgerqf.c".freeze, "ext/zgesc2.c".freeze, "ext/zgesdd.c".freeze, "ext/zgesv.c".freeze, "ext/zgesvd.c".freeze, "ext/zgesvx.c".freeze, "ext/zgesvxx.c".freeze, "ext/zgetc2.c".freeze, "ext/zgetf2.c".freeze, "ext/zgetrf.c".freeze, "ext/zgetri.c".freeze, "ext/zgetrs.c".freeze, "ext/zggbak.c".freeze, "ext/zggbal.c".freeze, "ext/zgges.c".freeze, "ext/zggesx.c".freeze, "ext/zggev.c".freeze, "ext/zggevx.c".freeze, "ext/zggglm.c".freeze, "ext/zgghrd.c".freeze, "ext/zgglse.c".freeze, "ext/zggqrf.c".freeze, "ext/zggrqf.c".freeze, "ext/zggsvd.c".freeze, "ext/zggsvp.c".freeze, "ext/zgtcon.c".freeze, "ext/zgtrfs.c".freeze, "ext/zgtsv.c".freeze, "ext/zgtsvx.c".freeze, "ext/zgttrf.c".freeze, "ext/zgttrs.c".freeze, "ext/zgtts2.c".freeze, "ext/zhbev.c".freeze, "ext/zhbevd.c".freeze, "ext/zhbevx.c".freeze, "ext/zhbgst.c".freeze, "ext/zhbgv.c".freeze, "ext/zhbgvd.c".freeze, "ext/zhbgvx.c".freeze, "ext/zhbtrd.c".freeze, "ext/zhecon.c".freeze, "ext/zheequb.c".freeze, "ext/zheev.c".freeze, "ext/zheevd.c".freeze, "ext/zheevr.c".freeze, "ext/zheevx.c".freeze, "ext/zhegs2.c".freeze, "ext/zhegst.c".freeze, "ext/zhegv.c".freeze, "ext/zhegvd.c".freeze, "ext/zhegvx.c".freeze, "ext/zherfs.c".freeze, "ext/zherfsx.c".freeze, "ext/zhesv.c".freeze, "ext/zhesvx.c".freeze, "ext/zhesvxx.c".freeze, "ext/zhetd2.c".freeze, "ext/zhetf2.c".freeze, "ext/zhetrd.c".freeze, "ext/zhetrf.c".freeze, "ext/zhetri.c".freeze, "ext/zhetrs.c".freeze, "ext/zhetrs2.c".freeze, "ext/zhfrk.c".freeze, "ext/zhgeqz.c".freeze, "ext/zhpcon.c".freeze, "ext/zhpev.c".freeze, "ext/zhpevd.c".freeze, "ext/zhpevx.c".freeze, "ext/zhpgst.c".freeze, "ext/zhpgv.c".freeze, "ext/zhpgvd.c".freeze, "ext/zhpgvx.c".freeze, "ext/zhprfs.c".freeze, "ext/zhpsv.c".freeze, "ext/zhpsvx.c".freeze, "ext/zhptrd.c".freeze, "ext/zhptrf.c".freeze, "ext/zhptri.c".freeze, "ext/zhptrs.c".freeze, "ext/zhsein.c".freeze, "ext/zhseqr.c".freeze, "ext/zla_gbamv.c".freeze, "ext/zla_gbrcond_c.c".freeze, "ext/zla_gbrcond_x.c".freeze, "ext/zla_gbrfsx_extended.c".freeze, "ext/zla_gbrpvgrw.c".freeze, "ext/zla_geamv.c".freeze, "ext/zla_gercond_c.c".freeze, "ext/zla_gercond_x.c".freeze, "ext/zla_gerfsx_extended.c".freeze, "ext/zla_heamv.c".freeze, "ext/zla_hercond_c.c".freeze, "ext/zla_hercond_x.c".freeze, "ext/zla_herfsx_extended.c".freeze, "ext/zla_herpvgrw.c".freeze, "ext/zla_lin_berr.c".freeze, "ext/zla_porcond_c.c".freeze, "ext/zla_porcond_x.c".freeze, "ext/zla_porfsx_extended.c".freeze, "ext/zla_porpvgrw.c".freeze, "ext/zla_rpvgrw.c".freeze, "ext/zla_syamv.c".freeze, "ext/zla_syrcond_c.c".freeze, "ext/zla_syrcond_x.c".freeze, "ext/zla_syrfsx_extended.c".freeze, "ext/zla_syrpvgrw.c".freeze, "ext/zla_wwaddw.c".freeze, "ext/zlabrd.c".freeze, "ext/zlacgv.c".freeze, "ext/zlacn2.c".freeze, "ext/zlacon.c".freeze, "ext/zlacp2.c".freeze, "ext/zlacpy.c".freeze, "ext/zlacrm.c".freeze, "ext/zlacrt.c".freeze, "ext/zladiv.c".freeze, "ext/zlaed0.c".freeze, "ext/zlaed7.c".freeze, "ext/zlaed8.c".freeze, "ext/zlaein.c".freeze, "ext/zlaesy.c".freeze, "ext/zlaev2.c".freeze, "ext/zlag2c.c".freeze, "ext/zlags2.c".freeze, "ext/zlagtm.c".freeze, "ext/zlahef.c".freeze, "ext/zlahqr.c".freeze, "ext/zlahr2.c".freeze, "ext/zlahrd.c".freeze, "ext/zlaic1.c".freeze, "ext/zlals0.c".freeze, "ext/zlalsa.c".freeze, "ext/zlalsd.c".freeze, "ext/zlangb.c".freeze, "ext/zlange.c".freeze, "ext/zlangt.c".freeze, "ext/zlanhb.c".freeze, "ext/zlanhe.c".freeze, "ext/zlanhf.c".freeze, "ext/zlanhp.c".freeze, "ext/zlanhs.c".freeze, "ext/zlanht.c".freeze, "ext/zlansb.c".freeze, "ext/zlansp.c".freeze, "ext/zlansy.c".freeze, "ext/zlantb.c".freeze, "ext/zlantp.c".freeze, "ext/zlantr.c".freeze, "ext/zlapll.c".freeze, "ext/zlapmr.c".freeze, "ext/zlapmt.c".freeze, "ext/zlaqgb.c".freeze, "ext/zlaqge.c".freeze, "ext/zlaqhb.c".freeze, "ext/zlaqhe.c".freeze, "ext/zlaqhp.c".freeze, "ext/zlaqp2.c".freeze, "ext/zlaqps.c".freeze, "ext/zlaqr0.c".freeze, "ext/zlaqr1.c".freeze, "ext/zlaqr2.c".freeze, "ext/zlaqr3.c".freeze, "ext/zlaqr4.c".freeze, "ext/zlaqr5.c".freeze, "ext/zlaqsb.c".freeze, "ext/zlaqsp.c".freeze, "ext/zlaqsy.c".freeze, "ext/zlar1v.c".freeze, "ext/zlar2v.c".freeze, "ext/zlarcm.c".freeze, "ext/zlarf.c".freeze, "ext/zlarfb.c".freeze, "ext/zlarfg.c".freeze, "ext/zlarfgp.c".freeze, "ext/zlarft.c".freeze, "ext/zlarfx.c".freeze, "ext/zlargv.c".freeze, "ext/zlarnv.c".freeze, "ext/zlarrv.c".freeze, "ext/zlarscl2.c".freeze, "ext/zlartg.c".freeze, "ext/zlartv.c".freeze, "ext/zlarz.c".freeze, "ext/zlarzb.c".freeze, "ext/zlarzt.c".freeze, "ext/zlascl.c".freeze, "ext/zlascl2.c".freeze, "ext/zlaset.c".freeze, "ext/zlasr.c".freeze, "ext/zlassq.c".freeze, "ext/zlaswp.c".freeze, "ext/zlasyf.c".freeze, "ext/zlat2c.c".freeze, "ext/zlatbs.c".freeze, "ext/zlatdf.c".freeze, "ext/zlatps.c".freeze, "ext/zlatrd.c".freeze, "ext/zlatrs.c".freeze, "ext/zlatrz.c".freeze, "ext/zlatzm.c".freeze, "ext/zlauu2.c".freeze, "ext/zlauum.c".freeze, "ext/zpbcon.c".freeze, "ext/zpbequ.c".freeze, "ext/zpbrfs.c".freeze, "ext/zpbstf.c".freeze, "ext/zpbsv.c".freeze, "ext/zpbsvx.c".freeze, "ext/zpbtf2.c".freeze, "ext/zpbtrf.c".freeze, "ext/zpbtrs.c".freeze, "ext/zpftrf.c".freeze, "ext/zpftri.c".freeze, "ext/zpftrs.c".freeze, "ext/zpocon.c".freeze, "ext/zpoequ.c".freeze, "ext/zpoequb.c".freeze, "ext/zporfs.c".freeze, "ext/zporfsx.c".freeze, "ext/zposv.c".freeze, "ext/zposvx.c".freeze, "ext/zposvxx.c".freeze, "ext/zpotf2.c".freeze, "ext/zpotrf.c".freeze, "ext/zpotri.c".freeze, "ext/zpotrs.c".freeze, "ext/zppcon.c".freeze, "ext/zppequ.c".freeze, "ext/zpprfs.c".freeze, "ext/zppsv.c".freeze, "ext/zppsvx.c".freeze, "ext/zpptrf.c".freeze, "ext/zpptri.c".freeze, "ext/zpptrs.c".freeze, "ext/zpstf2.c".freeze, "ext/zpstrf.c".freeze, "ext/zptcon.c".freeze, "ext/zpteqr.c".freeze, "ext/zptrfs.c".freeze, "ext/zptsv.c".freeze, "ext/zptsvx.c".freeze, "ext/zpttrf.c".freeze, "ext/zpttrs.c".freeze, "ext/zptts2.c".freeze, "ext/zrot.c".freeze, "ext/zspcon.c".freeze, "ext/zspmv.c".freeze, "ext/zspr.c".freeze, "ext/zsprfs.c".freeze, "ext/zspsv.c".freeze, "ext/zspsvx.c".freeze, "ext/zsptrf.c".freeze, "ext/zsptri.c".freeze, "ext/zsptrs.c".freeze, "ext/zstedc.c".freeze, "ext/zstegr.c".freeze, "ext/zstein.c".freeze, "ext/zstemr.c".freeze, "ext/zsteqr.c".freeze, "ext/zsycon.c".freeze, "ext/zsyconv.c".freeze, "ext/zsyequb.c".freeze, "ext/zsymv.c".freeze, "ext/zsyr.c".freeze, "ext/zsyrfs.c".freeze, "ext/zsyrfsx.c".freeze, "ext/zsysv.c".freeze, "ext/zsysvx.c".freeze, "ext/zsysvxx.c".freeze, "ext/zsyswapr.c".freeze, "ext/zsytf2.c".freeze, "ext/zsytrf.c".freeze, "ext/zsytri.c".freeze, "ext/zsytri2.c".freeze, "ext/zsytri2x.c".freeze, "ext/zsytrs.c".freeze, "ext/zsytrs2.c".freeze, "ext/ztbcon.c".freeze, "ext/ztbrfs.c".freeze, "ext/ztbtrs.c".freeze, "ext/ztfsm.c".freeze, "ext/ztftri.c".freeze, "ext/ztfttp.c".freeze, "ext/ztfttr.c".freeze, "ext/ztgevc.c".freeze, "ext/ztgex2.c".freeze, "ext/ztgexc.c".freeze, "ext/ztgsen.c".freeze, "ext/ztgsja.c".freeze, "ext/ztgsna.c".freeze, "ext/ztgsy2.c".freeze, "ext/ztgsyl.c".freeze, "ext/ztpcon.c".freeze, "ext/ztprfs.c".freeze, "ext/ztptri.c".freeze, "ext/ztptrs.c".freeze, "ext/ztpttf.c".freeze, "ext/ztpttr.c".freeze, "ext/ztrcon.c".freeze, "ext/ztrevc.c".freeze, "ext/ztrexc.c".freeze, "ext/ztrrfs.c".freeze, "ext/ztrsen.c".freeze, "ext/ztrsna.c".freeze, "ext/ztrsyl.c".freeze, "ext/ztrti2.c".freeze, "ext/ztrtri.c".freeze, "ext/ztrtrs.c".freeze, "ext/ztrttf.c".freeze, "ext/ztrttp.c".freeze, "ext/ztzrqf.c".freeze, "ext/ztzrzf.c".freeze, "ext/zunbdb.c".freeze, "ext/zuncsd.c".freeze, "ext/zung2l.c".freeze, "ext/zung2r.c".freeze, "ext/zungbr.c".freeze, "ext/zunghr.c".freeze, "ext/zungl2.c".freeze, "ext/zunglq.c".freeze, "ext/zungql.c".freeze, "ext/zungqr.c".freeze, "ext/zungr2.c".freeze, "ext/zungrq.c".freeze, "ext/zungtr.c".freeze, "ext/zunm2l.c".freeze, "ext/zunm2r.c".freeze, "ext/zunmbr.c".freeze, "ext/zunmhr.c".freeze, "ext/zunml2.c".freeze, "ext/zunmlq.c".freeze, "ext/zunmql.c".freeze, "ext/zunmqr.c".freeze, "ext/zunmr2.c".freeze, "ext/zunmr3.c".freeze, "ext/zunmrq.c".freeze, "ext/zunmrz.c".freeze, "ext/zunmtr.c".freeze, "ext/zupgtr.c".freeze, "ext/zupmtr.c".freeze, "lib/numru/lapack.rb".freeze, "samples/dpotrf.rb".freeze, "samples/dsyevr.rb".freeze, "tests/eig/ge/test_gesdd.rb".freeze, "tests/eig/ge/test_gesvd.rb".freeze, "tests/eig/gg/test_ggev.rb".freeze, "tests/eig/gg/test_ggsvd.rb".freeze, "tests/eig/sb/test_sbev.rb".freeze, "tests/lapack_test.rb".freeze, "tests/lin/gb/test_gbsv.rb".freeze, "tests/lin/gb/test_gbsvx.rb".freeze, "tests/lin/ge/test_gels.rb".freeze, "tests/lin/ge/test_gelsd.rb".freeze, "tests/lin/ge/test_gelss.rb".freeze, "tests/lin/ge/test_gelsy.rb".freeze, "tests/lin/ge/test_gesv.rb".freeze, "tests/lin/ge/test_gesvx.rb".freeze, "tests/lin/gt/test_gtsv.rb".freeze, "tests/lin/sy/test_sysv.rb".freeze] ++ s.homepage = "http://ruby.gfd-dennou.org/products/ruby-lapack/".freeze ++ s.rubygems_version = "2.7.6".freeze ++ s.summary = "A Ruby wrapper of Lapack".freeze ++ s.test_files = ["tests/eig/ge/test_gesdd.rb".freeze, "tests/eig/ge/test_gesvd.rb".freeze, "tests/eig/gg/test_ggev.rb".freeze, "tests/eig/gg/test_ggsvd.rb".freeze, "tests/eig/sb/test_sbev.rb".freeze, "tests/lapack_test.rb".freeze, "tests/lin/gb/test_gbsv.rb".freeze, "tests/lin/gb/test_gbsvx.rb".freeze, "tests/lin/ge/test_gels.rb".freeze, "tests/lin/ge/test_gelsd.rb".freeze, "tests/lin/ge/test_gelss.rb".freeze, "tests/lin/ge/test_gelsy.rb".freeze, "tests/lin/ge/test_gesv.rb".freeze, "tests/lin/ge/test_gesvx.rb".freeze, "tests/lin/gt/test_gtsv.rb".freeze, "tests/lin/sy/test_sysv.rb".freeze] ++ ++ if s.respond_to? :specification_version then ++ s.specification_version = 4 ++ ++ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then ++ s.add_runtime_dependency(%q.freeze, [">= 0"]) ++ else ++ s.add_dependency(%q.freeze, [">= 0"]) ++ end ++ else ++ s.add_dependency(%q.freeze, [">= 0"]) ++ end ++end diff -Nru ruby-lapack-1.7.2/debian/patches/series ruby-lapack-1.8.1/debian/patches/series --- ruby-lapack-1.7.2/debian/patches/series 2016-02-08 10:54:56.000000000 +0000 +++ ruby-lapack-1.8.1/debian/patches/series 2018-03-08 10:20:58.000000000 +0000 @@ -1,2 +1,3 @@ 0001-Drop-RubyGems-Depends.patch -0002_Fix-Typo.patch +0002-Use-vendorarchdir-instead-of-sitearchdir.patch +0003-Add-gemspec.patch diff -Nru ruby-lapack-1.7.2/debian/ruby-lapack.examples ruby-lapack-1.8.1/debian/ruby-lapack.examples --- ruby-lapack-1.7.2/debian/ruby-lapack.examples 2016-02-08 09:30:03.000000000 +0000 +++ ruby-lapack-1.8.1/debian/ruby-lapack.examples 2018-03-08 09:52:59.000000000 +0000 @@ -1 +1,3 @@ -samples +samples/dpotrf.rb +samples/dsyevr.rb + diff -Nru ruby-lapack-1.7.2/debian/ruby-tests.rake ruby-lapack-1.8.1/debian/ruby-tests.rake --- ruby-lapack-1.7.2/debian/ruby-tests.rake 1970-01-01 00:00:00.000000000 +0000 +++ ruby-lapack-1.8.1/debian/ruby-tests.rake 2018-03-08 09:24:57.000000000 +0000 @@ -0,0 +1,5 @@ +require 'gem2deb/rake/testtask' +Gem2Deb::Rake::TestTask.new do |t| + t.libs << "tests" + t.test_files = FileList['tests/**/*.rb'] +end diff -Nru ruby-lapack-1.7.2/debian/ruby-tests.rb ruby-lapack-1.8.1/debian/ruby-tests.rb --- ruby-lapack-1.7.2/debian/ruby-tests.rb 2016-02-08 09:30:03.000000000 +0000 +++ ruby-lapack-1.8.1/debian/ruby-tests.rb 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ -case ENV['RUBY_TEST_BIN'] -when "/usr/bin/ruby2.1" then - system("#{ENV['RUBY_TEST_BIN']} -Idebian/ruby-lapack/usr/lib/ruby/vendor_ruby /usr/bin/testrb2.1 tests/") or raise -when "/usr/bin/ruby2.0" then - system("#{ENV['RUBY_TEST_BIN']} -Idebian/ruby-lapack/usr/lib/ruby/vendor_ruby /usr/bin/testrb2.0 tests/") or raise -when "/usr/bin/ruby1.9" then - system("#{ENV['RUBY_TEST_BIN']} -Idebian/ruby-lapack/usr/lib/ruby/vendor_ruby /usr/bin/testrb1.9.1 tests/") or raise -end diff -Nru ruby-lapack-1.7.2/debian/rules ruby-lapack-1.8.1/debian/rules --- ruby-lapack-1.7.2/debian/rules 2016-02-08 09:30:03.000000000 +0000 +++ ruby-lapack-1.8.1/debian/rules 2018-03-08 09:55:25.000000000 +0000 @@ -4,4 +4,9 @@ dh $@ --buildsystem=ruby --with ruby override_dh_strip: - dh_strip --dbg-package=ruby-lapack-dbg + dh_strip --dbgsym-migration='ruby-lapack-dbg (<< 1.7.2-1)' + +override_dh_installexamples: + dh_installexamples + find $(CURDIR)/debian/ruby-lapack/usr/share/doc/ruby-lapack/examples \ + -type f -exec chmod 0644 {} \; diff -Nru ruby-lapack-1.7.2/dev/defs/cgelsd ruby-lapack-1.8.1/dev/defs/cgelsd --- ruby-lapack-1.7.2/dev/defs/cgelsd 2015-03-18 07:20:53.000000000 +0000 +++ ruby-lapack-1.8.1/dev/defs/cgelsd 2018-03-08 07:50:28.000000000 +0000 @@ -93,10 +93,10 @@ *\n\ * The problem is solved in three steps:\n\ * (1) Reduce the coefficient matrix A to bidiagonal form with\n\ - * Householder tranformations, reducing the original problem\n\ + * Householder transformations, reducing the original problem\n\ * into a \"bidiagonal least squares problem\" (BLS)\n\ * (2) Solve the BLS using a divide and conquer approach.\n\ - * (3) Apply back all the Householder tranformations to solve\n\ + * (3) Apply back all the Householder transformations to solve\n\ * the original least squares problem.\n\ *\n\ * The effective rank of A is determined by treating as zero those\n\ diff -Nru ruby-lapack-1.7.2/dev/defs/clarrv ruby-lapack-1.8.1/dev/defs/clarrv --- ruby-lapack-1.7.2/dev/defs/clarrv 2016-02-08 01:27:08.000000000 +0000 +++ ruby-lapack-1.8.1/dev/defs/clarrv 2018-03-08 07:50:28.000000000 +0000 @@ -227,7 +227,7 @@ * INFO (output) INTEGER\n\ * = 0: successful exit\n\ *\n\ - * > 0: A problem occured in CLARRV.\n\ + * > 0: A problem occurred in CLARRV.\n\ * < 0: One of the called subroutines signaled an internal problem.\n\ * Needs inspection of the corresponding parameter IINFO\n\ * for further information.\n\ diff -Nru ruby-lapack-1.7.2/dev/defs/clatdf ruby-lapack-1.8.1/dev/defs/clatdf --- ruby-lapack-1.7.2/dev/defs/clatdf 2015-03-18 07:20:53.000000000 +0000 +++ ruby-lapack-1.8.1/dev/defs/clatdf 2018-03-08 07:50:28.000000000 +0000 @@ -64,7 +64,7 @@ * Zx = +-e - f with the sign giving the greater value of\n\ * 2-norm(x). About 5 times as expensive as Default.\n\ * IJOB .ne. 2: Local look ahead strategy where\n\ - * all entries of the r.h.s. b is choosen as either +1 or\n\ + * all entries of the r.h.s. b is chosen as either +1 or\n\ * -1. Default.\n\ *\n\ * N (input) INTEGER\n\ diff -Nru ruby-lapack-1.7.2/dev/defs/cstegr ruby-lapack-1.8.1/dev/defs/cstegr --- ruby-lapack-1.7.2/dev/defs/cstegr 2015-03-18 07:20:53.000000000 +0000 +++ ruby-lapack-1.8.1/dev/defs/cstegr 2018-03-08 07:50:28.000000000 +0000 @@ -98,7 +98,7 @@ * either an interval (VL,VU] or a range of indices IL:IU for the desired\n\ * eigenvalues.\n\ *\n\ - * CSTEGR is a compatability wrapper around the improved CSTEMR routine.\n\ + * CSTEGR is a compatibility wrapper around the improved CSTEMR routine.\n\ * See SSTEMR for further details.\n\ *\n\ * One important change is that the ABSTOL parameter no longer provides any\n\ diff -Nru ruby-lapack-1.7.2/dev/defs/dgelsd ruby-lapack-1.8.1/dev/defs/dgelsd --- ruby-lapack-1.7.2/dev/defs/dgelsd 2015-03-18 07:20:54.000000000 +0000 +++ ruby-lapack-1.8.1/dev/defs/dgelsd 2018-03-08 07:50:28.000000000 +0000 @@ -90,7 +90,7 @@ * Householder transformations, reducing the original problem\n\ * into a \"bidiagonal least squares problem\" (BLS)\n\ * (2) Solve the BLS using a divide and conquer approach.\n\ - * (3) Apply back all the Householder tranformations to solve\n\ + * (3) Apply back all the Householder transformations to solve\n\ * the original least squares problem.\n\ *\n\ * The effective rank of A is determined by treating as zero those\n\ diff -Nru ruby-lapack-1.7.2/dev/defs/dlamrg ruby-lapack-1.8.1/dev/defs/dlamrg --- ruby-lapack-1.7.2/dev/defs/dlamrg 2015-03-18 07:20:54.000000000 +0000 +++ ruby-lapack-1.8.1/dev/defs/dlamrg 2018-03-08 07:50:28.000000000 +0000 @@ -40,7 +40,7 @@ *\n\ * N1 (input) INTEGER\n\ * N2 (input) INTEGER\n\ - * These arguements contain the respective lengths of the two\n\ + * These arguments contain the respective lengths of the two\n\ * sorted lists to be merged.\n\ *\n\ * A (input) DOUBLE PRECISION array, dimension (N1+N2)\n\ diff -Nru ruby-lapack-1.7.2/dev/defs/dlarre ruby-lapack-1.8.1/dev/defs/dlarre --- ruby-lapack-1.7.2/dev/defs/dlarre 2015-03-18 07:20:54.000000000 +0000 +++ ruby-lapack-1.8.1/dev/defs/dlarre 2018-03-08 07:50:28.000000000 +0000 @@ -233,7 +233,7 @@ *\n\ * INFO (output) INTEGER\n\ * = 0: successful exit\n\ - * > 0: A problem occured in DLARRE.\n\ + * > 0: A problem occurred in DLARRE.\n\ * < 0: One of the called subroutines signaled an internal problem.\n\ * Needs inspection of the corresponding parameter IINFO\n\ * for further information.\n\ diff -Nru ruby-lapack-1.7.2/dev/defs/dlarrv ruby-lapack-1.8.1/dev/defs/dlarrv --- ruby-lapack-1.7.2/dev/defs/dlarrv 2016-02-08 01:27:08.000000000 +0000 +++ ruby-lapack-1.8.1/dev/defs/dlarrv 2018-03-08 07:50:28.000000000 +0000 @@ -227,7 +227,7 @@ * INFO (output) INTEGER\n\ * = 0: successful exit\n\ *\n\ - * > 0: A problem occured in DLARRV.\n\ + * > 0: A problem occurred in DLARRV.\n\ * < 0: One of the called subroutines signaled an internal problem.\n\ * Needs inspection of the corresponding parameter IINFO\n\ * for further information.\n\ diff -Nru ruby-lapack-1.7.2/dev/defs/dlasdq ruby-lapack-1.8.1/dev/defs/dlasdq --- ruby-lapack-1.7.2/dev/defs/dlasdq 2015-03-18 07:20:54.000000000 +0000 +++ ruby-lapack-1.8.1/dev/defs/dlasdq 2018-03-08 07:50:28.000000000 +0000 @@ -92,7 +92,7 @@ *\n\ * UPLO (input) CHARACTER*1\n\ * On entry, UPLO specifies whether the input bidiagonal matrix\n\ - * is upper or lower bidiagonal, and wether it is square are\n\ + * is upper or lower bidiagonal, and whether it is square are\n\ * not.\n\ * UPLO = 'U' or 'u' B is upper bidiagonal.\n\ * UPLO = 'L' or 'l' B is lower bidiagonal.\n\ diff -Nru ruby-lapack-1.7.2/dev/defs/dlat2s ruby-lapack-1.8.1/dev/defs/dlat2s --- ruby-lapack-1.7.2/dev/defs/dlat2s 2015-03-18 07:20:54.000000000 +0000 +++ ruby-lapack-1.8.1/dev/defs/dlat2s 2018-03-08 07:50:28.000000000 +0000 @@ -41,7 +41,7 @@ *\n\ * RMAX is the overflow for the SINGLE PRECISION arithmetic\n\ * DLAS2S checks that all the entries of A are between -RMAX and\n\ - * RMAX. If not the convertion is aborted and a flag is raised.\n\ + * RMAX. If not the conversion is aborted and a flag is raised.\n\ *\n\ * This is an auxiliary routine so there is no argument checking.\n\ *\n\n\ diff -Nru ruby-lapack-1.7.2/dev/defs/dlatdf ruby-lapack-1.8.1/dev/defs/dlatdf --- ruby-lapack-1.7.2/dev/defs/dlatdf 2015-03-18 07:20:54.000000000 +0000 +++ ruby-lapack-1.8.1/dev/defs/dlatdf 2018-03-08 07:50:28.000000000 +0000 @@ -64,7 +64,7 @@ * Zx = +-e - f with the sign giving the greater value\n\ * of 2-norm(x). About 5 times as expensive as Default.\n\ * IJOB .ne. 2: Local look ahead strategy where all entries of\n\ - * the r.h.s. b is choosen as either +1 or -1 (Default).\n\ + * the r.h.s. b is chosen as either +1 or -1 (Default).\n\ *\n\ * N (input) INTEGER\n\ * The number of columns of the matrix Z.\n\ diff -Nru ruby-lapack-1.7.2/dev/defs/dsgesv ruby-lapack-1.8.1/dev/defs/dsgesv --- ruby-lapack-1.7.2/dev/defs/dsgesv 2015-03-18 07:20:54.000000000 +0000 +++ ruby-lapack-1.8.1/dev/defs/dsgesv 2018-03-08 07:50:28.000000000 +0000 @@ -155,7 +155,7 @@ * -3 : failure of SGETRF\n\ * -31: stop the iterative refinement after the 30th\n\ * iterations\n\ - * > 0: iterative refinement has been sucessfully used.\n\ + * > 0: iterative refinement has been successfully used.\n\ * Returns the number of iterations\n\ *\n\ * INFO (output) INTEGER\n\ diff -Nru ruby-lapack-1.7.2/dev/defs/dsposv ruby-lapack-1.8.1/dev/defs/dsposv --- ruby-lapack-1.7.2/dev/defs/dsposv 2015-03-18 07:20:54.000000000 +0000 +++ ruby-lapack-1.8.1/dev/defs/dsposv 2018-03-08 07:50:28.000000000 +0000 @@ -158,7 +158,7 @@ * -3 : failure of SPOTRF\n\ * -31: stop the iterative refinement after the 30th\n\ * iterations\n\ - * > 0: iterative refinement has been sucessfully used.\n\ + * > 0: iterative refinement has been successfully used.\n\ * Returns the number of iterations\n\ *\n\ * INFO (output) INTEGER\n\ diff -Nru ruby-lapack-1.7.2/dev/defs/dstegr ruby-lapack-1.8.1/dev/defs/dstegr --- ruby-lapack-1.7.2/dev/defs/dstegr 2015-03-18 07:20:54.000000000 +0000 +++ ruby-lapack-1.8.1/dev/defs/dstegr 2018-03-08 07:50:28.000000000 +0000 @@ -98,7 +98,7 @@ * either an interval (VL,VU] or a range of indices IL:IU for the desired\n\ * eigenvalues.\n\ *\n\ - * DSTEGR is a compatability wrapper around the improved DSTEMR routine.\n\ + * DSTEGR is a compatibility wrapper around the improved DSTEMR routine.\n\ * See DSTEMR for further details.\n\ *\n\ * One important change is that the ABSTOL parameter no longer provides any\n\ diff -Nru ruby-lapack-1.7.2/dev/defs/sgelsd ruby-lapack-1.8.1/dev/defs/sgelsd --- ruby-lapack-1.7.2/dev/defs/sgelsd 2015-03-18 07:20:54.000000000 +0000 +++ ruby-lapack-1.8.1/dev/defs/sgelsd 2018-03-08 07:50:28.000000000 +0000 @@ -90,7 +90,7 @@ * Householder transformations, reducing the original problem\n\ * into a \"bidiagonal least squares problem\" (BLS)\n\ * (2) Solve the BLS using a divide and conquer approach.\n\ - * (3) Apply back all the Householder tranformations to solve\n\ + * (3) Apply back all the Householder transformations to solve\n\ * the original least squares problem.\n\ *\n\ * The effective rank of A is determined by treating as zero those\n\ diff -Nru ruby-lapack-1.7.2/dev/defs/slamrg ruby-lapack-1.8.1/dev/defs/slamrg --- ruby-lapack-1.7.2/dev/defs/slamrg 2015-03-18 07:20:54.000000000 +0000 +++ ruby-lapack-1.8.1/dev/defs/slamrg 2018-03-08 07:50:28.000000000 +0000 @@ -40,7 +40,7 @@ *\n\ * N1 (input) INTEGER\n\ * N2 (input) INTEGER\n\ - * These arguements contain the respective lengths of the two\n\ + * These arguments contain the respective lengths of the two\n\ * sorted lists to be merged.\n\ *\n\ * A (input) REAL array, dimension (N1+N2)\n\ diff -Nru ruby-lapack-1.7.2/dev/defs/slarre ruby-lapack-1.8.1/dev/defs/slarre --- ruby-lapack-1.7.2/dev/defs/slarre 2015-03-18 07:20:54.000000000 +0000 +++ ruby-lapack-1.8.1/dev/defs/slarre 2018-03-08 07:50:28.000000000 +0000 @@ -233,7 +233,7 @@ *\n\ * INFO (output) INTEGER\n\ * = 0: successful exit\n\ - * > 0: A problem occured in SLARRE.\n\ + * > 0: A problem occurred in SLARRE.\n\ * < 0: One of the called subroutines signaled an internal problem.\n\ * Needs inspection of the corresponding parameter IINFO\n\ * for further information.\n\ diff -Nru ruby-lapack-1.7.2/dev/defs/slarrv ruby-lapack-1.8.1/dev/defs/slarrv --- ruby-lapack-1.7.2/dev/defs/slarrv 2016-02-08 01:27:08.000000000 +0000 +++ ruby-lapack-1.8.1/dev/defs/slarrv 2018-03-08 07:50:28.000000000 +0000 @@ -227,7 +227,7 @@ * INFO (output) INTEGER\n\ * = 0: successful exit\n\ *\n\ - * > 0: A problem occured in SLARRV.\n\ + * > 0: A problem occurred in SLARRV.\n\ * < 0: One of the called subroutines signaled an internal problem.\n\ * Needs inspection of the corresponding parameter IINFO\n\ * for further information.\n\ diff -Nru ruby-lapack-1.7.2/dev/defs/slasdq ruby-lapack-1.8.1/dev/defs/slasdq --- ruby-lapack-1.7.2/dev/defs/slasdq 2015-03-18 07:20:54.000000000 +0000 +++ ruby-lapack-1.8.1/dev/defs/slasdq 2018-03-08 07:50:28.000000000 +0000 @@ -92,7 +92,7 @@ *\n\ * UPLO (input) CHARACTER*1\n\ * On entry, UPLO specifies whether the input bidiagonal matrix\n\ - * is upper or lower bidiagonal, and wether it is square are\n\ + * is upper or lower bidiagonal, and whether it is square are\n\ * not.\n\ * UPLO = 'U' or 'u' B is upper bidiagonal.\n\ * UPLO = 'L' or 'l' B is lower bidiagonal.\n\ diff -Nru ruby-lapack-1.7.2/dev/defs/slatdf ruby-lapack-1.8.1/dev/defs/slatdf --- ruby-lapack-1.7.2/dev/defs/slatdf 2015-03-18 07:20:54.000000000 +0000 +++ ruby-lapack-1.8.1/dev/defs/slatdf 2018-03-08 07:50:28.000000000 +0000 @@ -64,7 +64,7 @@ * Zx = +-e - f with the sign giving the greater value\n\ * of 2-norm(x). About 5 times as expensive as Default.\n\ * IJOB .ne. 2: Local look ahead strategy where all entries of\n\ - * the r.h.s. b is choosen as either +1 or -1 (Default).\n\ + * the r.h.s. b is chosen as either +1 or -1 (Default).\n\ *\n\ * N (input) INTEGER\n\ * The number of columns of the matrix Z.\n\ diff -Nru ruby-lapack-1.7.2/dev/defs/sstegr ruby-lapack-1.8.1/dev/defs/sstegr --- ruby-lapack-1.7.2/dev/defs/sstegr 2015-03-18 07:20:54.000000000 +0000 +++ ruby-lapack-1.8.1/dev/defs/sstegr 2018-03-08 07:50:28.000000000 +0000 @@ -98,7 +98,7 @@ * either an interval (VL,VU] or a range of indices IL:IU for the desired\n\ * eigenvalues.\n\ *\n\ - * SSTEGR is a compatability wrapper around the improved SSTEMR routine.\n\ + * SSTEGR is a compatibility wrapper around the improved SSTEMR routine.\n\ * See SSTEMR for further details.\n\ *\n\ * One important change is that the ABSTOL parameter no longer provides any\n\ diff -Nru ruby-lapack-1.7.2/dev/defs/zcgesv ruby-lapack-1.8.1/dev/defs/zcgesv --- ruby-lapack-1.7.2/dev/defs/zcgesv 2015-03-18 07:20:54.000000000 +0000 +++ ruby-lapack-1.8.1/dev/defs/zcgesv 2018-03-08 07:50:28.000000000 +0000 @@ -161,7 +161,7 @@ * -3 : failure of CGETRF\n\ * -31: stop the iterative refinement after the 30th\n\ * iterations\n\ - * > 0: iterative refinement has been sucessfully used.\n\ + * > 0: iterative refinement has been successfully used.\n\ * Returns the number of iterations\n\ *\n\ * INFO (output) INTEGER\n\ diff -Nru ruby-lapack-1.7.2/dev/defs/zcposv ruby-lapack-1.8.1/dev/defs/zcposv --- ruby-lapack-1.7.2/dev/defs/zcposv 2015-03-18 07:20:54.000000000 +0000 +++ ruby-lapack-1.8.1/dev/defs/zcposv 2018-03-08 07:50:28.000000000 +0000 @@ -167,7 +167,7 @@ * -3 : failure of CPOTRF\n\ * -31: stop the iterative refinement after the 30th\n\ * iterations\n\ - * > 0: iterative refinement has been sucessfully used.\n\ + * > 0: iterative refinement has been successfully used.\n\ * Returns the number of iterations\n\ *\n\ * INFO (output) INTEGER\n\ diff -Nru ruby-lapack-1.7.2/dev/defs/zgelsd ruby-lapack-1.8.1/dev/defs/zgelsd --- ruby-lapack-1.7.2/dev/defs/zgelsd 2015-03-18 07:20:54.000000000 +0000 +++ ruby-lapack-1.8.1/dev/defs/zgelsd 2018-03-08 07:50:28.000000000 +0000 @@ -93,10 +93,10 @@ *\n\ * The problem is solved in three steps:\n\ * (1) Reduce the coefficient matrix A to bidiagonal form with\n\ - * Householder tranformations, reducing the original problem\n\ + * Householder transformations, reducing the original problem\n\ * into a \"bidiagonal least squares problem\" (BLS)\n\ * (2) Solve the BLS using a divide and conquer approach.\n\ - * (3) Apply back all the Householder tranformations to solve\n\ + * (3) Apply back all the Householder transformations to solve\n\ * the original least squares problem.\n\ *\n\ * The effective rank of A is determined by treating as zero those\n\ diff -Nru ruby-lapack-1.7.2/dev/defs/zlarrv ruby-lapack-1.8.1/dev/defs/zlarrv --- ruby-lapack-1.7.2/dev/defs/zlarrv 2016-02-08 01:27:08.000000000 +0000 +++ ruby-lapack-1.8.1/dev/defs/zlarrv 2018-03-08 07:50:28.000000000 +0000 @@ -227,7 +227,7 @@ * INFO (output) INTEGER\n\ * = 0: successful exit\n\ *\n\ - * > 0: A problem occured in ZLARRV.\n\ + * > 0: A problem occurred in ZLARRV.\n\ * < 0: One of the called subroutines signaled an internal problem.\n\ * Needs inspection of the corresponding parameter IINFO\n\ * for further information.\n\ diff -Nru ruby-lapack-1.7.2/dev/defs/zlat2c ruby-lapack-1.8.1/dev/defs/zlat2c --- ruby-lapack-1.7.2/dev/defs/zlat2c 2015-03-18 07:20:54.000000000 +0000 +++ ruby-lapack-1.8.1/dev/defs/zlat2c 2018-03-08 07:50:28.000000000 +0000 @@ -41,7 +41,7 @@ *\n\ * RMAX is the overflow for the SINGLE PRECISION arithmetic\n\ * ZLAT2C checks that all the entries of A are between -RMAX and\n\ - * RMAX. If not the convertion is aborted and a flag is raised.\n\ + * RMAX. If not the conversion is aborted and a flag is raised.\n\ *\n\ * This is an auxiliary routine so there is no argument checking.\n\ *\n\n\ diff -Nru ruby-lapack-1.7.2/dev/defs/zlatdf ruby-lapack-1.8.1/dev/defs/zlatdf --- ruby-lapack-1.7.2/dev/defs/zlatdf 2015-03-18 07:20:54.000000000 +0000 +++ ruby-lapack-1.8.1/dev/defs/zlatdf 2018-03-08 07:50:28.000000000 +0000 @@ -64,7 +64,7 @@ * Zx = +-e - f with the sign giving the greater value of\n\ * 2-norm(x). About 5 times as expensive as Default.\n\ * IJOB .ne. 2: Local look ahead strategy where\n\ - * all entries of the r.h.s. b is choosen as either +1 or\n\ + * all entries of the r.h.s. b is chosen as either +1 or\n\ * -1. Default.\n\ *\n\ * N (input) INTEGER\n\ diff -Nru ruby-lapack-1.7.2/dev/defs/zstegr ruby-lapack-1.8.1/dev/defs/zstegr --- ruby-lapack-1.7.2/dev/defs/zstegr 2015-03-18 07:20:54.000000000 +0000 +++ ruby-lapack-1.8.1/dev/defs/zstegr 2018-03-08 07:50:28.000000000 +0000 @@ -98,7 +98,7 @@ * either an interval (VL,VU] or a range of indices IL:IU for the desired\n\ * eigenvalues.\n\ *\n\ - * ZSTEGR is a compatability wrapper around the improved ZSTEMR routine.\n\ + * ZSTEGR is a compatibility wrapper around the improved ZSTEMR routine.\n\ * See DSTEMR for further details.\n\ *\n\ * One important change is that the ABSTOL parameter no longer provides any\n\ diff -Nru ruby-lapack-1.7.2/dev/make_csrc.rb ruby-lapack-1.8.1/dev/make_csrc.rb --- ruby-lapack-1.7.2/dev/make_csrc.rb 2016-02-08 01:27:08.000000000 +0000 +++ ruby-lapack-1.8.1/dev/make_csrc.rb 2018-03-08 07:50:28.000000000 +0000 @@ -15,6 +15,16 @@ "logical" => "NA_LINT", } +USEXBLAS = %w( gesvxx gerfsx la_gerfsx_extended la_geamv + la_gercond la_gercond_c la_gercond_x la_rpvgrw la_gerpvgrw sysvxx syrfsx + la_syrfsx_extended la_syamv la_syrcond la_syrpvgrw la_syrcond_c la_syrcond_x + posvxx porfsx la_porfsx_extended la_porcond la_porcond_c la_porcond_x + la_porpvgrw gbsvxx gbrfsx la_gbrfsx_extended + hesvxx herfsx la_herfsx_extended + la_heamv la_hercond_c la_hercond_x la_herpvgrw + la_gbamv la_gbrcond la_gbrcond_c la_gbrcond_x la_gbrpvgrw la_lin_berr larscl2 + lascl2 la_wwaddw ) + TOPDIR = File.join(File.dirname(__FILE__), "..") @@ -292,12 +302,16 @@ raise "category is invalid: #{sub_type} (#{sub_name})" end + usexblas = USEXBLAS.include?(sub_name[1..-1]) + code << <<"EOF" static VALUE #{RBPREFIX}#{sub_name}(int argc, VALUE *argv, VALUE self){ EOF + code << "#ifdef USEXBLAS\n" if usexblas + dimdefs = Array.new (inputs+options+outputs).each{|aname| arg = args[aname] @@ -696,8 +710,17 @@ result = "rb_ary_new3(#{out.length}, #{out.collect{|op| RBPREFIX+op}.join(", ")})" end - code << <<"EOF" + if usexblas + code << <<"EOF" return #{result}; +#else + return Qnil; +#endif +EOF + else + code << " return #{result};\n" + end + code << <<"EOF" } EOF @@ -815,7 +838,10 @@ EOF sub_names.each{|sname| + usexblas = USEXBLAS.include?(sname[1..-1]) + file.print "#ifdef USEXBLAS\n" if usexblas file.print "extern void init_lapack_#{sname}(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE #{RBPREFIX}ZERO);\n" + file.print "#endif\n" if usexblas } file.print <<"EOF" @@ -836,7 +862,10 @@ EOF sub_names.each{|sname| + usexblas = USEXBLAS.include?(sname[1..-1]) + file.print "#ifdef USEXBLAS\n" if usexblas file.print " init_lapack_#{sname}(mLapack, sHelp, sUsage, #{RBPREFIX}ZERO);\n" + file.print "#endif\n" if usexblas } file.print "}\n" } diff -Nru ruby-lapack-1.7.2/ext/cgbrfsx.c ruby-lapack-1.8.1/ext/cgbrfsx.c --- ruby-lapack-1.7.2/ext/cgbrfsx.c 2015-03-18 06:58:21.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cgbrfsx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cgbrfsx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_trans; char trans; VALUE rblapack_equed; @@ -237,6 +238,9 @@ rblapack_rcond = rb_float_new((double)rcond); rblapack_info = INT2NUM(info); return rb_ary_new3(9, rblapack_rcond, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_r, rblapack_c, rblapack_x, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cgbsvxx.c ruby-lapack-1.8.1/ext/cgbsvxx.c --- ruby-lapack-1.7.2/ext/cgbsvxx.c 2015-03-18 06:58:18.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cgbsvxx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cgbsvxx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_fact; char fact; VALUE rblapack_trans; @@ -277,6 +278,9 @@ rblapack_info = INT2NUM(info); rblapack_equed = rb_str_new(&equed,1); return rb_ary_new3(15, rblapack_x, rblapack_rcond, rblapack_rpvgrw, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_ab, rblapack_afb, rblapack_ipiv, rblapack_equed, rblapack_r, rblapack_c, rblapack_b, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cgelsd.c ruby-lapack-1.8.1/ext/cgelsd.c --- ruby-lapack-1.7.2/ext/cgelsd.c 2015-03-18 06:58:22.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cgelsd.c 2018-03-08 07:50:28.000000000 +0000 @@ -43,7 +43,7 @@ argc--; rblapack_options = argv[argc]; if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { - printf("%s\n", "USAGE:\n s, rank, work, info, b = NumRu::Lapack.cgelsd( a, b, rcond, [:lwork => lwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CGELSD( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK, WORK, LWORK, RWORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* CGELSD computes the minimum-norm solution to a real linear least\n* squares problem:\n* minimize 2-norm(| b - A*x |)\n* using the singular value decomposition (SVD) of A. A is an M-by-N\n* matrix which may be rank-deficient.\n*\n* Several right hand side vectors b and solution vectors x can be\n* handled in a single call; they are stored as the columns of the\n* M-by-NRHS right hand side matrix B and the N-by-NRHS solution\n* matrix X.\n*\n* The problem is solved in three steps:\n* (1) Reduce the coefficient matrix A to bidiagonal form with\n* Householder tranformations, reducing the original problem\n* into a \"bidiagonal least squares problem\" (BLS)\n* (2) Solve the BLS using a divide and conquer approach.\n* (3) Apply back all the Householder tranformations to solve\n* the original least squares problem.\n*\n* The effective rank of A is determined by treating as zero those\n* singular values which are less than RCOND times the largest singular\n* value.\n*\n* The divide and conquer algorithm makes very mild assumptions about\n* floating point arithmetic. It will work on machines with a guard\n* digit in add/subtract, or on those binary machines without guard\n* digits which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or\n* Cray-2. It could conceivably fail on hexadecimal or decimal machines\n* without guard digits, but we know of none.\n*\n\n* Arguments\n* =========\n*\n* M (input) INTEGER\n* The number of rows of the matrix A. M >= 0.\n*\n* N (input) INTEGER\n* The number of columns of the matrix A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrices B and X. NRHS >= 0.\n*\n* A (input/output) COMPLEX array, dimension (LDA,N)\n* On entry, the M-by-N matrix A.\n* On exit, A has been destroyed.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* B (input/output) COMPLEX array, dimension (LDB,NRHS)\n* On entry, the M-by-NRHS right hand side matrix B.\n* On exit, B is overwritten by the N-by-NRHS solution matrix X.\n* If m >= n and RANK = n, the residual sum-of-squares for\n* the solution in the i-th column is given by the sum of\n* squares of the modulus of elements n+1:m in that column.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,M,N).\n*\n* S (output) REAL array, dimension (min(M,N))\n* The singular values of A in decreasing order.\n* The condition number of A in the 2-norm = S(1)/S(min(m,n)).\n*\n* RCOND (input) REAL\n* RCOND is used to determine the effective rank of A.\n* Singular values S(i) <= RCOND*S(1) are treated as zero.\n* If RCOND < 0, machine precision is used instead.\n*\n* RANK (output) INTEGER\n* The effective rank of A, i.e., the number of singular values\n* which are greater than RCOND*S(1).\n*\n* WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))\n* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK must be at least 1.\n* The exact minimum amount of workspace needed depends on M,\n* N and NRHS. As long as LWORK is at least\n* 2 * N + N * NRHS\n* if M is greater than or equal to N or\n* 2 * M + M * NRHS\n* if M is less than N, the code will execute correctly.\n* For good performance, LWORK should generally be larger.\n*\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the array WORK and the\n* minimum sizes of the arrays RWORK and IWORK, and returns\n* these values as the first entries of the WORK, RWORK and\n* IWORK arrays, and no error message related to LWORK is issued\n* by XERBLA.\n*\n* RWORK (workspace) REAL array, dimension (MAX(1,LRWORK))\n* LRWORK >=\n* 10*N + 2*N*SMLSIZ + 8*N*NLVL + 3*SMLSIZ*NRHS +\n* MAX( (SMLSIZ+1)**2, N*(1+NRHS) + 2*NRHS )\n* if M is greater than or equal to N or\n* 10*M + 2*M*SMLSIZ + 8*M*NLVL + 3*SMLSIZ*NRHS +\n* MAX( (SMLSIZ+1)**2, N*(1+NRHS) + 2*NRHS )\n* if M is less than N, the code will execute correctly.\n* SMLSIZ is returned by ILAENV and is equal to the maximum\n* size of the subproblems at the bottom of the computation\n* tree (usually about 25), and\n* NLVL = MAX( 0, INT( LOG_2( MIN( M,N )/(SMLSIZ+1) ) ) + 1 )\n* On exit, if INFO = 0, RWORK(1) returns the minimum LRWORK.\n*\n* IWORK (workspace) INTEGER array, dimension (MAX(1,LIWORK))\n* LIWORK >= max(1, 3*MINMN*NLVL + 11*MINMN),\n* where MINMN = MIN( M,N ).\n* On exit, if INFO = 0, IWORK(1) returns the minimum LIWORK.\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value.\n* > 0: the algorithm for computing the SVD failed to converge;\n* if INFO = i, i off-diagonal elements of an intermediate\n* bidiagonal form did not converge to zero.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Ming Gu and Ren-Cang Li, Computer Science Division, University of\n* California at Berkeley, USA\n* Osni Marques, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n\n"); + printf("%s\n", "USAGE:\n s, rank, work, info, b = NumRu::Lapack.cgelsd( a, b, rcond, [:lwork => lwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CGELSD( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK, WORK, LWORK, RWORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* CGELSD computes the minimum-norm solution to a real linear least\n* squares problem:\n* minimize 2-norm(| b - A*x |)\n* using the singular value decomposition (SVD) of A. A is an M-by-N\n* matrix which may be rank-deficient.\n*\n* Several right hand side vectors b and solution vectors x can be\n* handled in a single call; they are stored as the columns of the\n* M-by-NRHS right hand side matrix B and the N-by-NRHS solution\n* matrix X.\n*\n* The problem is solved in three steps:\n* (1) Reduce the coefficient matrix A to bidiagonal form with\n* Householder transformations, reducing the original problem\n* into a \"bidiagonal least squares problem\" (BLS)\n* (2) Solve the BLS using a divide and conquer approach.\n* (3) Apply back all the Householder transformations to solve\n* the original least squares problem.\n*\n* The effective rank of A is determined by treating as zero those\n* singular values which are less than RCOND times the largest singular\n* value.\n*\n* The divide and conquer algorithm makes very mild assumptions about\n* floating point arithmetic. It will work on machines with a guard\n* digit in add/subtract, or on those binary machines without guard\n* digits which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or\n* Cray-2. It could conceivably fail on hexadecimal or decimal machines\n* without guard digits, but we know of none.\n*\n\n* Arguments\n* =========\n*\n* M (input) INTEGER\n* The number of rows of the matrix A. M >= 0.\n*\n* N (input) INTEGER\n* The number of columns of the matrix A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrices B and X. NRHS >= 0.\n*\n* A (input/output) COMPLEX array, dimension (LDA,N)\n* On entry, the M-by-N matrix A.\n* On exit, A has been destroyed.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* B (input/output) COMPLEX array, dimension (LDB,NRHS)\n* On entry, the M-by-NRHS right hand side matrix B.\n* On exit, B is overwritten by the N-by-NRHS solution matrix X.\n* If m >= n and RANK = n, the residual sum-of-squares for\n* the solution in the i-th column is given by the sum of\n* squares of the modulus of elements n+1:m in that column.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,M,N).\n*\n* S (output) REAL array, dimension (min(M,N))\n* The singular values of A in decreasing order.\n* The condition number of A in the 2-norm = S(1)/S(min(m,n)).\n*\n* RCOND (input) REAL\n* RCOND is used to determine the effective rank of A.\n* Singular values S(i) <= RCOND*S(1) are treated as zero.\n* If RCOND < 0, machine precision is used instead.\n*\n* RANK (output) INTEGER\n* The effective rank of A, i.e., the number of singular values\n* which are greater than RCOND*S(1).\n*\n* WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))\n* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK must be at least 1.\n* The exact minimum amount of workspace needed depends on M,\n* N and NRHS. As long as LWORK is at least\n* 2 * N + N * NRHS\n* if M is greater than or equal to N or\n* 2 * M + M * NRHS\n* if M is less than N, the code will execute correctly.\n* For good performance, LWORK should generally be larger.\n*\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the array WORK and the\n* minimum sizes of the arrays RWORK and IWORK, and returns\n* these values as the first entries of the WORK, RWORK and\n* IWORK arrays, and no error message related to LWORK is issued\n* by XERBLA.\n*\n* RWORK (workspace) REAL array, dimension (MAX(1,LRWORK))\n* LRWORK >=\n* 10*N + 2*N*SMLSIZ + 8*N*NLVL + 3*SMLSIZ*NRHS +\n* MAX( (SMLSIZ+1)**2, N*(1+NRHS) + 2*NRHS )\n* if M is greater than or equal to N or\n* 10*M + 2*M*SMLSIZ + 8*M*NLVL + 3*SMLSIZ*NRHS +\n* MAX( (SMLSIZ+1)**2, N*(1+NRHS) + 2*NRHS )\n* if M is less than N, the code will execute correctly.\n* SMLSIZ is returned by ILAENV and is equal to the maximum\n* size of the subproblems at the bottom of the computation\n* tree (usually about 25), and\n* NLVL = MAX( 0, INT( LOG_2( MIN( M,N )/(SMLSIZ+1) ) ) + 1 )\n* On exit, if INFO = 0, RWORK(1) returns the minimum LRWORK.\n*\n* IWORK (workspace) INTEGER array, dimension (MAX(1,LIWORK))\n* LIWORK >= max(1, 3*MINMN*NLVL + 11*MINMN),\n* where MINMN = MIN( M,N ).\n* On exit, if INFO = 0, IWORK(1) returns the minimum LIWORK.\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value.\n* > 0: the algorithm for computing the SVD failed to converge;\n* if INFO = i, i off-diagonal elements of an intermediate\n* bidiagonal form did not converge to zero.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Ming Gu and Ren-Cang Li, Computer Science Division, University of\n* California at Berkeley, USA\n* Osni Marques, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n\n"); return Qnil; } if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/ext/cgerfsx.c ruby-lapack-1.8.1/ext/cgerfsx.c --- ruby-lapack-1.7.2/ext/cgerfsx.c 2015-03-18 06:58:21.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cgerfsx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cgerfsx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_trans; char trans; VALUE rblapack_equed; @@ -207,6 +208,9 @@ rblapack_rcond = rb_float_new((double)rcond); rblapack_info = INT2NUM(info); return rb_ary_new3(7, rblapack_rcond, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_x, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cgesvxx.c ruby-lapack-1.8.1/ext/cgesvxx.c --- ruby-lapack-1.7.2/ext/cgesvxx.c 2015-03-18 06:58:23.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cgesvxx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cgesvxx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_fact; char fact; VALUE rblapack_trans; @@ -269,6 +270,9 @@ rblapack_info = INT2NUM(info); rblapack_equed = rb_str_new(&equed,1); return rb_ary_new3(15, rblapack_x, rblapack_rcond, rblapack_rpvgrw, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_a, rblapack_af, rblapack_ipiv, rblapack_equed, rblapack_r, rblapack_c, rblapack_b, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cherfsx.c ruby-lapack-1.8.1/ext/cherfsx.c --- ruby-lapack-1.7.2/ext/cherfsx.c 2015-03-18 06:58:24.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cherfsx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cherfsx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_equed; @@ -206,6 +207,9 @@ rblapack_rcond = rb_float_new((double)rcond); rblapack_info = INT2NUM(info); return rb_ary_new3(8, rblapack_rcond, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_s, rblapack_x, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/chesvxx.c ruby-lapack-1.8.1/ext/chesvxx.c --- ruby-lapack-1.7.2/ext/chesvxx.c 2015-03-18 06:58:24.000000000 +0000 +++ ruby-lapack-1.8.1/ext/chesvxx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_chesvxx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_fact; char fact; VALUE rblapack_uplo; @@ -246,6 +247,9 @@ rblapack_info = INT2NUM(info); rblapack_equed = rb_str_new(&equed,1); return rb_ary_new3(14, rblapack_x, rblapack_rcond, rblapack_rpvgrw, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_a, rblapack_af, rblapack_ipiv, rblapack_equed, rblapack_s, rblapack_b, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cla_gbamv.c ruby-lapack-1.8.1/ext/cla_gbamv.c --- ruby-lapack-1.7.2/ext/cla_gbamv.c 2015-03-18 06:58:30.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cla_gbamv.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cla_gbamv(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_trans; integer trans; VALUE rblapack_m; @@ -115,6 +116,9 @@ cla_gbamv_(&trans, &m, &n, &kl, &ku, &alpha, ab, &ldab, x, &incx, &beta, y, &incy); return rblapack_y; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cla_gbrcond_c.c ruby-lapack-1.8.1/ext/cla_gbrcond_c.c --- ruby-lapack-1.7.2/ext/cla_gbrcond_c.c 2015-03-18 06:58:24.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cla_gbrcond_c.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cla_gbrcond_c(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_trans; char trans; VALUE rblapack_kl; @@ -130,6 +131,9 @@ rblapack_info = INT2NUM(info); rblapack___out__ = rb_float_new((double)__out__); return rb_ary_new3(2, rblapack_info, rblapack___out__); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cla_gbrcond_x.c ruby-lapack-1.8.1/ext/cla_gbrcond_x.c --- ruby-lapack-1.7.2/ext/cla_gbrcond_x.c 2015-03-18 06:58:26.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cla_gbrcond_x.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cla_gbrcond_x(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_trans; char trans; VALUE rblapack_kl; @@ -126,6 +127,9 @@ rblapack_info = INT2NUM(info); rblapack___out__ = rb_float_new((double)__out__); return rb_ary_new3(2, rblapack_info, rblapack___out__); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cla_gbrfsx_extended.c ruby-lapack-1.8.1/ext/cla_gbrfsx_extended.c --- ruby-lapack-1.7.2/ext/cla_gbrfsx_extended.c 2015-03-18 06:58:20.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cla_gbrfsx_extended.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cla_gbrfsx_extended(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_prec_type; integer prec_type; VALUE rblapack_trans_type; @@ -283,6 +284,9 @@ rblapack_info = INT2NUM(info); return rb_ary_new3(5, rblapack_berr_out, rblapack_info, rblapack_y, rblapack_err_bnds_norm, rblapack_err_bnds_comp); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cla_gbrpvgrw.c ruby-lapack-1.8.1/ext/cla_gbrpvgrw.c --- ruby-lapack-1.7.2/ext/cla_gbrpvgrw.c 2015-03-18 06:58:30.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cla_gbrpvgrw.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cla_gbrpvgrw(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_kl; integer kl; VALUE rblapack_ku; @@ -75,6 +76,9 @@ rblapack___out__ = rb_float_new((double)__out__); return rblapack___out__; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cla_geamv.c ruby-lapack-1.8.1/ext/cla_geamv.c --- ruby-lapack-1.7.2/ext/cla_geamv.c 2015-03-18 06:58:23.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cla_geamv.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cla_geamv(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_trans; integer trans; VALUE rblapack_m; @@ -105,6 +106,9 @@ cla_geamv_(&trans, &m, &n, &alpha, a, &lda, x, &incx, &beta, y, &incy); return rblapack_y; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cla_gercond_c.c ruby-lapack-1.8.1/ext/cla_gercond_c.c --- ruby-lapack-1.7.2/ext/cla_gercond_c.c 2015-03-18 06:58:26.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cla_gercond_c.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cla_gercond_c(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_trans; char trans; VALUE rblapack_a; @@ -122,6 +123,9 @@ rblapack_info = INT2NUM(info); rblapack___out__ = rb_float_new((double)__out__); return rb_ary_new3(2, rblapack_info, rblapack___out__); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cla_gercond_x.c ruby-lapack-1.8.1/ext/cla_gercond_x.c --- ruby-lapack-1.7.2/ext/cla_gercond_x.c 2015-03-18 06:58:19.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cla_gercond_x.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cla_gercond_x(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_trans; char trans; VALUE rblapack_a; @@ -118,6 +119,9 @@ rblapack_info = INT2NUM(info); rblapack___out__ = rb_float_new((double)__out__); return rb_ary_new3(2, rblapack_info, rblapack___out__); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cla_gerfsx_extended.c ruby-lapack-1.8.1/ext/cla_gerfsx_extended.c --- ruby-lapack-1.7.2/ext/cla_gerfsx_extended.c 2015-03-18 06:58:29.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cla_gerfsx_extended.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cla_gerfsx_extended(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_prec_type; integer prec_type; VALUE rblapack_trans_type; @@ -269,6 +270,9 @@ rblapack_info = INT2NUM(info); return rb_ary_new3(5, rblapack_berr_out, rblapack_info, rblapack_y, rblapack_errs_n, rblapack_errs_c); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cla_heamv.c ruby-lapack-1.8.1/ext/cla_heamv.c --- ruby-lapack-1.7.2/ext/cla_heamv.c 2015-03-18 06:58:26.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cla_heamv.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cla_heamv(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; integer uplo; VALUE rblapack_alpha; @@ -104,6 +105,9 @@ cla_heamv_(&uplo, &n, &alpha, a, &lda, x, &incx, &beta, y, &incy); return rblapack_y; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cla_hercond_c.c ruby-lapack-1.8.1/ext/cla_hercond_c.c --- ruby-lapack-1.7.2/ext/cla_hercond_c.c 2015-03-18 06:58:25.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cla_hercond_c.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cla_hercond_c(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_a; @@ -122,6 +123,9 @@ rblapack_info = INT2NUM(info); rblapack___out__ = rb_float_new((double)__out__); return rb_ary_new3(2, rblapack_info, rblapack___out__); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cla_hercond_x.c ruby-lapack-1.8.1/ext/cla_hercond_x.c --- ruby-lapack-1.7.2/ext/cla_hercond_x.c 2015-03-18 06:58:28.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cla_hercond_x.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cla_hercond_x(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_a; @@ -118,6 +119,9 @@ rblapack_info = INT2NUM(info); rblapack___out__ = rb_float_new((double)__out__); return rb_ary_new3(2, rblapack_info, rblapack___out__); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cla_herfsx_extended.c ruby-lapack-1.8.1/ext/cla_herfsx_extended.c --- ruby-lapack-1.7.2/ext/cla_herfsx_extended.c 2015-03-18 06:58:25.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cla_herfsx_extended.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cla_herfsx_extended(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_prec_type; integer prec_type; VALUE rblapack_uplo; @@ -271,6 +272,9 @@ rblapack_info = INT2NUM(info); return rb_ary_new3(5, rblapack_berr_out, rblapack_info, rblapack_y, rblapack_err_bnds_norm, rblapack_err_bnds_comp); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cla_herpvgrw.c ruby-lapack-1.8.1/ext/cla_herpvgrw.c --- ruby-lapack-1.7.2/ext/cla_herpvgrw.c 2015-03-18 06:58:21.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cla_herpvgrw.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cla_herpvgrw(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_info; @@ -95,6 +96,9 @@ rblapack___out__ = rb_float_new((double)__out__); return rblapack___out__; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cla_lin_berr.c ruby-lapack-1.8.1/ext/cla_lin_berr.c --- ruby-lapack-1.7.2/ext/cla_lin_berr.c 2015-03-18 06:58:28.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cla_lin_berr.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cla_lin_berr(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_nz; integer nz; VALUE rblapack_res; @@ -72,6 +73,9 @@ cla_lin_berr_(&n, &nz, &nrhs, res, ayb, berr); return rblapack_berr; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cla_porcond_c.c ruby-lapack-1.8.1/ext/cla_porcond_c.c --- ruby-lapack-1.7.2/ext/cla_porcond_c.c 2015-03-18 06:58:22.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cla_porcond_c.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cla_porcond_c(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_a; @@ -110,6 +111,9 @@ rblapack_info = INT2NUM(info); rblapack___out__ = rb_float_new((double)__out__); return rb_ary_new3(2, rblapack_info, rblapack___out__); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cla_porcond_x.c ruby-lapack-1.8.1/ext/cla_porcond_x.c --- ruby-lapack-1.7.2/ext/cla_porcond_x.c 2015-03-18 06:58:29.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cla_porcond_x.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cla_porcond_x(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_a; @@ -106,6 +107,9 @@ rblapack_info = INT2NUM(info); rblapack___out__ = rb_float_new((double)__out__); return rb_ary_new3(2, rblapack_info, rblapack___out__); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cla_porfsx_extended.c ruby-lapack-1.8.1/ext/cla_porfsx_extended.c --- ruby-lapack-1.7.2/ext/cla_porfsx_extended.c 2015-03-18 06:58:23.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cla_porfsx_extended.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cla_porfsx_extended(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_prec_type; integer prec_type; VALUE rblapack_uplo; @@ -259,6 +260,9 @@ rblapack_info = INT2NUM(info); return rb_ary_new3(5, rblapack_berr_out, rblapack_info, rblapack_y, rblapack_err_bnds_norm, rblapack_err_bnds_comp); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cla_porpvgrw.c ruby-lapack-1.8.1/ext/cla_porpvgrw.c --- ruby-lapack-1.7.2/ext/cla_porpvgrw.c 2015-03-18 06:58:18.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cla_porpvgrw.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cla_porpvgrw(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_ncols; @@ -83,6 +84,9 @@ rblapack___out__ = rb_float_new((double)__out__); return rblapack___out__; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cla_rpvgrw.c ruby-lapack-1.8.1/ext/cla_rpvgrw.c --- ruby-lapack-1.7.2/ext/cla_rpvgrw.c 2015-03-18 06:58:25.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cla_rpvgrw.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cla_rpvgrw(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_ncols; integer ncols; VALUE rblapack_a; @@ -67,6 +68,9 @@ rblapack___out__ = rb_float_new((double)__out__); return rblapack___out__; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/clarrv.c ruby-lapack-1.8.1/ext/clarrv.c --- ruby-lapack-1.7.2/ext/clarrv.c 2016-02-08 01:29:31.000000000 +0000 +++ ruby-lapack-1.8.1/ext/clarrv.c 2018-03-08 07:50:28.000000000 +0000 @@ -68,7 +68,7 @@ argc--; rblapack_options = argv[argc]; if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { - printf("%s\n", "USAGE:\n z, isuppz, info, d, l, w, werr, wgap = NumRu::Lapack.clarrv( vl, vu, d, l, pivmin, isplit, m, dol, dou, minrgp, rtol1, rtol2, w, werr, wgap, iblock, indexw, gers, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CLARRV( N, VL, VU, D, L, PIVMIN, ISPLIT, M, DOL, DOU, MINRGP, RTOL1, RTOL2, W, WERR, WGAP, IBLOCK, INDEXW, GERS, Z, LDZ, ISUPPZ, WORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* CLARRV computes the eigenvectors of the tridiagonal matrix\n* T = L D L^T given L, D and APPROXIMATIONS to the eigenvalues of L D L^T.\n* The input eigenvalues should have been computed by SLARRE.\n*\n\n* Arguments\n* =========\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* VL (input) REAL \n* VU (input) REAL \n* Lower and upper bounds of the interval that contains the desired\n* eigenvalues. VL < VU. Needed to compute gaps on the left or right\n* end of the extremal eigenvalues in the desired RANGE.\n*\n* D (input/output) REAL array, dimension (N)\n* On entry, the N diagonal elements of the diagonal matrix D.\n* On exit, D may be overwritten.\n*\n* L (input/output) REAL array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the unit\n* bidiagonal matrix L are in elements 1 to N-1 of L\n* (if the matrix is not split.) At the end of each block\n* is stored the corresponding shift as given by SLARRE.\n* On exit, L is overwritten.\n*\n* PIVMIN (in) DOUBLE PRECISION\n* The minimum pivot allowed in the Sturm sequence.\n*\n* ISPLIT (input) INTEGER array, dimension (N)\n* The splitting points, at which T breaks up into blocks.\n* The first block consists of rows/columns 1 to\n* ISPLIT( 1 ), the second of rows/columns ISPLIT( 1 )+1\n* through ISPLIT( 2 ), etc.\n*\n* M (input) INTEGER\n* The total number of input eigenvalues. 0 <= M <= N.\n*\n* DOL (input) INTEGER\n* DOU (input) INTEGER\n* If the user wants to compute only selected eigenvectors from all\n* the eigenvalues supplied, he can specify an index range DOL:DOU.\n* Or else the setting DOL=1, DOU=M should be applied.\n* Note that DOL and DOU refer to the order in which the eigenvalues\n* are stored in W.\n* If the user wants to compute only selected eigenpairs, then\n* the columns DOL-1 to DOU+1 of the eigenvector space Z contain the\n* computed eigenvectors. All other columns of Z are set to zero.\n*\n* MINRGP (input) REAL \n*\n* RTOL1 (input) REAL \n* RTOL2 (input) REAL \n* Parameters for bisection.\n* An interval [LEFT,RIGHT] has converged if\n* RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) )\n*\n* W (input/output) REAL array, dimension (N)\n* The first M elements of W contain the APPROXIMATE eigenvalues for\n* which eigenvectors are to be computed. The eigenvalues\n* should be grouped by split-off block and ordered from\n* smallest to largest within the block ( The output array\n* W from SLARRE is expected here ). Furthermore, they are with\n* respect to the shift of the corresponding root representation\n* for their block. On exit, W holds the eigenvalues of the\n* UNshifted matrix.\n*\n* WERR (input/output) REAL array, dimension (N)\n* The first M elements contain the semiwidth of the uncertainty\n* interval of the corresponding eigenvalue in W\n*\n* WGAP (input/output) REAL array, dimension (N)\n* The separation from the right neighbor eigenvalue in W.\n*\n* IBLOCK (input) INTEGER array, dimension (N)\n* The indices of the blocks (submatrices) associated with the\n* corresponding eigenvalues in W; IBLOCK(i)=1 if eigenvalue\n* W(i) belongs to the first block from the top, =2 if W(i)\n* belongs to the second block, etc.\n*\n* INDEXW (input) INTEGER array, dimension (N)\n* The indices of the eigenvalues within each block (submatrix);\n* for example, INDEXW(i)= 10 and IBLOCK(i)=2 imply that the\n* i-th eigenvalue W(i) is the 10-th eigenvalue in the second block.\n*\n* GERS (input) REAL array, dimension (2*N)\n* The N Gerschgorin intervals (the i-th Gerschgorin interval\n* is (GERS(2*i-1), GERS(2*i)). The Gerschgorin intervals should\n* be computed from the original UNshifted matrix.\n*\n* Z (output) COMPLEX array, dimension (LDZ, max(1,M) )\n* If INFO = 0, the first M columns of Z contain the\n* orthonormal eigenvectors of the matrix T\n* corresponding to the input eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER array, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The I-th eigenvector\n* is nonzero only in elements ISUPPZ( 2*I-1 ) through\n* ISUPPZ( 2*I ).\n*\n* WORK (workspace) REAL array, dimension (12*N)\n*\n* IWORK (workspace) INTEGER array, dimension (7*N)\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n*\n* > 0: A problem occured in CLARRV.\n* < 0: One of the called subroutines signaled an internal problem.\n* Needs inspection of the corresponding parameter IINFO\n* for further information.\n*\n* =-1: Problem in SLARRB when refining a child's eigenvalues.\n* =-2: Problem in SLARRF when computing the RRR of a child.\n* When a child is inside a tight cluster, it can be difficult\n* to find an RRR. A partial remedy from the user's point of\n* view is to make the parameter MINRGP smaller and recompile.\n* However, as the orthogonality of the computed vectors is\n* proportional to 1/MINRGP, the user should be aware that\n* he might be trading in precision when he decreases MINRGP.\n* =-3: Problem in SLARRB when refining a single eigenvalue\n* after the Rayleigh correction was rejected.\n* = 5: The Rayleigh Quotient Iteration failed to converge to\n* full accuracy in MAXITR steps.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Beresford Parlett, University of California, Berkeley, USA\n* Jim Demmel, University of California, Berkeley, USA\n* Inderjit Dhillon, University of Texas, Austin, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, University of California, Berkeley, USA\n*\n* =====================================================================\n*\n\n"); + printf("%s\n", "USAGE:\n z, isuppz, info, d, l, w, werr, wgap = NumRu::Lapack.clarrv( vl, vu, d, l, pivmin, isplit, m, dol, dou, minrgp, rtol1, rtol2, w, werr, wgap, iblock, indexw, gers, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CLARRV( N, VL, VU, D, L, PIVMIN, ISPLIT, M, DOL, DOU, MINRGP, RTOL1, RTOL2, W, WERR, WGAP, IBLOCK, INDEXW, GERS, Z, LDZ, ISUPPZ, WORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* CLARRV computes the eigenvectors of the tridiagonal matrix\n* T = L D L^T given L, D and APPROXIMATIONS to the eigenvalues of L D L^T.\n* The input eigenvalues should have been computed by SLARRE.\n*\n\n* Arguments\n* =========\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* VL (input) REAL \n* VU (input) REAL \n* Lower and upper bounds of the interval that contains the desired\n* eigenvalues. VL < VU. Needed to compute gaps on the left or right\n* end of the extremal eigenvalues in the desired RANGE.\n*\n* D (input/output) REAL array, dimension (N)\n* On entry, the N diagonal elements of the diagonal matrix D.\n* On exit, D may be overwritten.\n*\n* L (input/output) REAL array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the unit\n* bidiagonal matrix L are in elements 1 to N-1 of L\n* (if the matrix is not split.) At the end of each block\n* is stored the corresponding shift as given by SLARRE.\n* On exit, L is overwritten.\n*\n* PIVMIN (in) DOUBLE PRECISION\n* The minimum pivot allowed in the Sturm sequence.\n*\n* ISPLIT (input) INTEGER array, dimension (N)\n* The splitting points, at which T breaks up into blocks.\n* The first block consists of rows/columns 1 to\n* ISPLIT( 1 ), the second of rows/columns ISPLIT( 1 )+1\n* through ISPLIT( 2 ), etc.\n*\n* M (input) INTEGER\n* The total number of input eigenvalues. 0 <= M <= N.\n*\n* DOL (input) INTEGER\n* DOU (input) INTEGER\n* If the user wants to compute only selected eigenvectors from all\n* the eigenvalues supplied, he can specify an index range DOL:DOU.\n* Or else the setting DOL=1, DOU=M should be applied.\n* Note that DOL and DOU refer to the order in which the eigenvalues\n* are stored in W.\n* If the user wants to compute only selected eigenpairs, then\n* the columns DOL-1 to DOU+1 of the eigenvector space Z contain the\n* computed eigenvectors. All other columns of Z are set to zero.\n*\n* MINRGP (input) REAL \n*\n* RTOL1 (input) REAL \n* RTOL2 (input) REAL \n* Parameters for bisection.\n* An interval [LEFT,RIGHT] has converged if\n* RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) )\n*\n* W (input/output) REAL array, dimension (N)\n* The first M elements of W contain the APPROXIMATE eigenvalues for\n* which eigenvectors are to be computed. The eigenvalues\n* should be grouped by split-off block and ordered from\n* smallest to largest within the block ( The output array\n* W from SLARRE is expected here ). Furthermore, they are with\n* respect to the shift of the corresponding root representation\n* for their block. On exit, W holds the eigenvalues of the\n* UNshifted matrix.\n*\n* WERR (input/output) REAL array, dimension (N)\n* The first M elements contain the semiwidth of the uncertainty\n* interval of the corresponding eigenvalue in W\n*\n* WGAP (input/output) REAL array, dimension (N)\n* The separation from the right neighbor eigenvalue in W.\n*\n* IBLOCK (input) INTEGER array, dimension (N)\n* The indices of the blocks (submatrices) associated with the\n* corresponding eigenvalues in W; IBLOCK(i)=1 if eigenvalue\n* W(i) belongs to the first block from the top, =2 if W(i)\n* belongs to the second block, etc.\n*\n* INDEXW (input) INTEGER array, dimension (N)\n* The indices of the eigenvalues within each block (submatrix);\n* for example, INDEXW(i)= 10 and IBLOCK(i)=2 imply that the\n* i-th eigenvalue W(i) is the 10-th eigenvalue in the second block.\n*\n* GERS (input) REAL array, dimension (2*N)\n* The N Gerschgorin intervals (the i-th Gerschgorin interval\n* is (GERS(2*i-1), GERS(2*i)). The Gerschgorin intervals should\n* be computed from the original UNshifted matrix.\n*\n* Z (output) COMPLEX array, dimension (LDZ, max(1,M) )\n* If INFO = 0, the first M columns of Z contain the\n* orthonormal eigenvectors of the matrix T\n* corresponding to the input eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER array, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The I-th eigenvector\n* is nonzero only in elements ISUPPZ( 2*I-1 ) through\n* ISUPPZ( 2*I ).\n*\n* WORK (workspace) REAL array, dimension (12*N)\n*\n* IWORK (workspace) INTEGER array, dimension (7*N)\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n*\n* > 0: A problem occurred in CLARRV.\n* < 0: One of the called subroutines signaled an internal problem.\n* Needs inspection of the corresponding parameter IINFO\n* for further information.\n*\n* =-1: Problem in SLARRB when refining a child's eigenvalues.\n* =-2: Problem in SLARRF when computing the RRR of a child.\n* When a child is inside a tight cluster, it can be difficult\n* to find an RRR. A partial remedy from the user's point of\n* view is to make the parameter MINRGP smaller and recompile.\n* However, as the orthogonality of the computed vectors is\n* proportional to 1/MINRGP, the user should be aware that\n* he might be trading in precision when he decreases MINRGP.\n* =-3: Problem in SLARRB when refining a single eigenvalue\n* after the Rayleigh correction was rejected.\n* = 5: The Rayleigh Quotient Iteration failed to converge to\n* full accuracy in MAXITR steps.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Beresford Parlett, University of California, Berkeley, USA\n* Jim Demmel, University of California, Berkeley, USA\n* Inderjit Dhillon, University of Texas, Austin, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, University of California, Berkeley, USA\n*\n* =====================================================================\n*\n\n"); return Qnil; } if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/ext/clarscl2.c ruby-lapack-1.8.1/ext/clarscl2.c --- ruby-lapack-1.7.2/ext/clarscl2.c 2015-03-18 06:58:27.000000000 +0000 +++ ruby-lapack-1.8.1/ext/clarscl2.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_clarscl2(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_d; real *d; VALUE rblapack_x; @@ -70,6 +71,9 @@ clarscl2_(&m, &n, d, x, &ldx); return rblapack_x; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/clascl2.c ruby-lapack-1.8.1/ext/clascl2.c --- ruby-lapack-1.7.2/ext/clascl2.c 2015-03-18 06:58:19.000000000 +0000 +++ ruby-lapack-1.8.1/ext/clascl2.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_clascl2(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_d; real *d; VALUE rblapack_x; @@ -70,6 +71,9 @@ clascl2_(&m, &n, d, x, &ldx); return rblapack_x; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cla_syamv.c ruby-lapack-1.8.1/ext/cla_syamv.c --- ruby-lapack-1.7.2/ext/cla_syamv.c 2015-03-18 06:58:24.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cla_syamv.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cla_syamv(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; integer uplo; VALUE rblapack_alpha; @@ -103,6 +104,9 @@ cla_syamv_(&uplo, &n, &alpha, a, &lda, x, &incx, &beta, y, &incy); return rblapack_y; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cla_syrcond_c.c ruby-lapack-1.8.1/ext/cla_syrcond_c.c --- ruby-lapack-1.7.2/ext/cla_syrcond_c.c 2015-03-18 06:58:30.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cla_syrcond_c.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cla_syrcond_c(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_a; @@ -122,6 +123,9 @@ rblapack_info = INT2NUM(info); rblapack___out__ = rb_float_new((double)__out__); return rb_ary_new3(2, rblapack_info, rblapack___out__); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cla_syrcond_x.c ruby-lapack-1.8.1/ext/cla_syrcond_x.c --- ruby-lapack-1.7.2/ext/cla_syrcond_x.c 2015-03-18 06:58:28.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cla_syrcond_x.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cla_syrcond_x(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_a; @@ -118,6 +119,9 @@ rblapack_info = INT2NUM(info); rblapack___out__ = rb_float_new((double)__out__); return rb_ary_new3(2, rblapack_info, rblapack___out__); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cla_syrfsx_extended.c ruby-lapack-1.8.1/ext/cla_syrfsx_extended.c --- ruby-lapack-1.7.2/ext/cla_syrfsx_extended.c 2015-03-18 06:58:28.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cla_syrfsx_extended.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cla_syrfsx_extended(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_prec_type; integer prec_type; VALUE rblapack_uplo; @@ -271,6 +272,9 @@ rblapack_info = INT2NUM(info); return rb_ary_new3(5, rblapack_berr_out, rblapack_info, rblapack_y, rblapack_err_bnds_norm, rblapack_err_bnds_comp); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cla_syrpvgrw.c ruby-lapack-1.8.1/ext/cla_syrpvgrw.c --- ruby-lapack-1.7.2/ext/cla_syrpvgrw.c 2015-03-18 06:58:22.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cla_syrpvgrw.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cla_syrpvgrw(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_info; @@ -95,6 +96,9 @@ rblapack___out__ = rb_float_new((double)__out__); return rblapack___out__; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/clatdf.c ruby-lapack-1.8.1/ext/clatdf.c --- ruby-lapack-1.7.2/ext/clatdf.c 2015-03-18 06:58:25.000000000 +0000 +++ ruby-lapack-1.8.1/ext/clatdf.c 2018-03-08 07:50:28.000000000 +0000 @@ -30,7 +30,7 @@ argc--; rblapack_options = argv[argc]; if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { - printf("%s\n", "USAGE:\n rhs, rdsum, rdscal = NumRu::Lapack.clatdf( ijob, z, rhs, rdsum, rdscal, ipiv, jpiv, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CLATDF( IJOB, N, Z, LDZ, RHS, RDSUM, RDSCAL, IPIV, JPIV )\n\n* Purpose\n* =======\n*\n* CLATDF computes the contribution to the reciprocal Dif-estimate\n* by solving for x in Z * x = b, where b is chosen such that the norm\n* of x is as large as possible. It is assumed that LU decomposition\n* of Z has been computed by CGETC2. On entry RHS = f holds the\n* contribution from earlier solved sub-systems, and on return RHS = x.\n*\n* The factorization of Z returned by CGETC2 has the form\n* Z = P * L * U * Q, where P and Q are permutation matrices. L is lower\n* triangular with unit diagonal elements and U is upper triangular.\n*\n\n* Arguments\n* =========\n*\n* IJOB (input) INTEGER\n* IJOB = 2: First compute an approximative null-vector e\n* of Z using CGECON, e is normalized and solve for\n* Zx = +-e - f with the sign giving the greater value of\n* 2-norm(x). About 5 times as expensive as Default.\n* IJOB .ne. 2: Local look ahead strategy where\n* all entries of the r.h.s. b is choosen as either +1 or\n* -1. Default.\n*\n* N (input) INTEGER\n* The number of columns of the matrix Z.\n*\n* Z (input) REAL array, dimension (LDZ, N)\n* On entry, the LU part of the factorization of the n-by-n\n* matrix Z computed by CGETC2: Z = P * L * U * Q\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDA >= max(1, N).\n*\n* RHS (input/output) REAL array, dimension (N).\n* On entry, RHS contains contributions from other subsystems.\n* On exit, RHS contains the solution of the subsystem with\n* entries according to the value of IJOB (see above).\n*\n* RDSUM (input/output) REAL\n* On entry, the sum of squares of computed contributions to\n* the Dif-estimate under computation by CTGSYL, where the\n* scaling factor RDSCAL (see below) has been factored out.\n* On exit, the corresponding sum of squares updated with the\n* contributions from the current sub-system.\n* If TRANS = 'T' RDSUM is not touched.\n* NOTE: RDSUM only makes sense when CTGSY2 is called by CTGSYL.\n*\n* RDSCAL (input/output) REAL\n* On entry, scaling factor used to prevent overflow in RDSUM.\n* On exit, RDSCAL is updated w.r.t. the current contributions\n* in RDSUM.\n* If TRANS = 'T', RDSCAL is not touched.\n* NOTE: RDSCAL only makes sense when CTGSY2 is called by\n* CTGSYL.\n*\n* IPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= i <= N, row i of the\n* matrix has been interchanged with row IPIV(i).\n*\n* JPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= j <= N, column j of the\n* matrix has been interchanged with column JPIV(j).\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Bo Kagstrom and Peter Poromaa, Department of Computing Science,\n* Umea University, S-901 87 Umea, Sweden.\n*\n* This routine is a further developed implementation of algorithm\n* BSOLVE in [1] using complete pivoting in the LU factorization.\n*\n* [1] Bo Kagstrom and Lars Westin,\n* Generalized Schur Methods with Condition Estimators for\n* Solving the Generalized Sylvester Equation, IEEE Transactions\n* on Automatic Control, Vol. 34, No. 7, July 1989, pp 745-751.\n*\n* [2] Peter Poromaa,\n* On Efficient and Robust Estimators for the Separation\n* between two Regular Matrix Pairs with Applications in\n* Condition Estimation. Report UMINF-95.05, Department of\n* Computing Science, Umea University, S-901 87 Umea, Sweden,\n* 1995.\n*\n* =====================================================================\n*\n\n"); + printf("%s\n", "USAGE:\n rhs, rdsum, rdscal = NumRu::Lapack.clatdf( ijob, z, rhs, rdsum, rdscal, ipiv, jpiv, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CLATDF( IJOB, N, Z, LDZ, RHS, RDSUM, RDSCAL, IPIV, JPIV )\n\n* Purpose\n* =======\n*\n* CLATDF computes the contribution to the reciprocal Dif-estimate\n* by solving for x in Z * x = b, where b is chosen such that the norm\n* of x is as large as possible. It is assumed that LU decomposition\n* of Z has been computed by CGETC2. On entry RHS = f holds the\n* contribution from earlier solved sub-systems, and on return RHS = x.\n*\n* The factorization of Z returned by CGETC2 has the form\n* Z = P * L * U * Q, where P and Q are permutation matrices. L is lower\n* triangular with unit diagonal elements and U is upper triangular.\n*\n\n* Arguments\n* =========\n*\n* IJOB (input) INTEGER\n* IJOB = 2: First compute an approximative null-vector e\n* of Z using CGECON, e is normalized and solve for\n* Zx = +-e - f with the sign giving the greater value of\n* 2-norm(x). About 5 times as expensive as Default.\n* IJOB .ne. 2: Local look ahead strategy where\n* all entries of the r.h.s. b is chosen as either +1 or\n* -1. Default.\n*\n* N (input) INTEGER\n* The number of columns of the matrix Z.\n*\n* Z (input) REAL array, dimension (LDZ, N)\n* On entry, the LU part of the factorization of the n-by-n\n* matrix Z computed by CGETC2: Z = P * L * U * Q\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDA >= max(1, N).\n*\n* RHS (input/output) REAL array, dimension (N).\n* On entry, RHS contains contributions from other subsystems.\n* On exit, RHS contains the solution of the subsystem with\n* entries according to the value of IJOB (see above).\n*\n* RDSUM (input/output) REAL\n* On entry, the sum of squares of computed contributions to\n* the Dif-estimate under computation by CTGSYL, where the\n* scaling factor RDSCAL (see below) has been factored out.\n* On exit, the corresponding sum of squares updated with the\n* contributions from the current sub-system.\n* If TRANS = 'T' RDSUM is not touched.\n* NOTE: RDSUM only makes sense when CTGSY2 is called by CTGSYL.\n*\n* RDSCAL (input/output) REAL\n* On entry, scaling factor used to prevent overflow in RDSUM.\n* On exit, RDSCAL is updated w.r.t. the current contributions\n* in RDSUM.\n* If TRANS = 'T', RDSCAL is not touched.\n* NOTE: RDSCAL only makes sense when CTGSY2 is called by\n* CTGSYL.\n*\n* IPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= i <= N, row i of the\n* matrix has been interchanged with row IPIV(i).\n*\n* JPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= j <= N, column j of the\n* matrix has been interchanged with column JPIV(j).\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Bo Kagstrom and Peter Poromaa, Department of Computing Science,\n* Umea University, S-901 87 Umea, Sweden.\n*\n* This routine is a further developed implementation of algorithm\n* BSOLVE in [1] using complete pivoting in the LU factorization.\n*\n* [1] Bo Kagstrom and Lars Westin,\n* Generalized Schur Methods with Condition Estimators for\n* Solving the Generalized Sylvester Equation, IEEE Transactions\n* on Automatic Control, Vol. 34, No. 7, July 1989, pp 745-751.\n*\n* [2] Peter Poromaa,\n* On Efficient and Robust Estimators for the Separation\n* between two Regular Matrix Pairs with Applications in\n* Condition Estimation. Report UMINF-95.05, Department of\n* Computing Science, Umea University, S-901 87 Umea, Sweden,\n* 1995.\n*\n* =====================================================================\n*\n\n"); return Qnil; } if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/ext/cla_wwaddw.c ruby-lapack-1.8.1/ext/cla_wwaddw.c --- ruby-lapack-1.7.2/ext/cla_wwaddw.c 2015-03-18 06:58:27.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cla_wwaddw.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cla_wwaddw(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_x; complex *x; VALUE rblapack_y; @@ -90,6 +91,9 @@ cla_wwaddw_(&n, x, y, w); return rb_ary_new3(2, rblapack_x, rblapack_y); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cporfsx.c ruby-lapack-1.8.1/ext/cporfsx.c --- ruby-lapack-1.7.2/ext/cporfsx.c 2015-03-18 06:58:19.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cporfsx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cporfsx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_equed; @@ -194,6 +195,9 @@ rblapack_rcond = rb_float_new((double)rcond); rblapack_info = INT2NUM(info); return rb_ary_new3(8, rblapack_rcond, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_s, rblapack_x, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cposvxx.c ruby-lapack-1.8.1/ext/cposvxx.c --- ruby-lapack-1.7.2/ext/cposvxx.c 2015-03-18 06:58:26.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cposvxx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_cposvxx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_fact; char fact; VALUE rblapack_uplo; @@ -223,6 +224,9 @@ rblapack_info = INT2NUM(info); rblapack_equed = rb_str_new(&equed,1); return rb_ary_new3(13, rblapack_x, rblapack_rcond, rblapack_rpvgrw, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_a, rblapack_af, rblapack_equed, rblapack_s, rblapack_b, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/cstegr.c ruby-lapack-1.8.1/ext/cstegr.c --- ruby-lapack-1.7.2/ext/cstegr.c 2015-03-18 06:58:20.000000000 +0000 +++ ruby-lapack-1.8.1/ext/cstegr.c 2018-03-08 07:50:28.000000000 +0000 @@ -54,7 +54,7 @@ argc--; rblapack_options = argv[argc]; if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { - printf("%s\n", "USAGE:\n m, w, z, isuppz, work, iwork, info, d, e = NumRu::Lapack.cstegr( jobz, range, d, e, vl, vu, il, iu, abstol, [:lwork => lwork, :liwork => liwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CSTEGR( JOBZ, RANGE, N, D, E, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK, IWORK, LIWORK, INFO )\n\n* Purpose\n* =======\n*\n* CSTEGR computes selected eigenvalues and, optionally, eigenvectors\n* of a real symmetric tridiagonal matrix T. Any such unreduced matrix has\n* a well defined set of pairwise different real eigenvalues, the corresponding\n* real eigenvectors are pairwise orthogonal.\n*\n* The spectrum may be computed either completely or partially by specifying\n* either an interval (VL,VU] or a range of indices IL:IU for the desired\n* eigenvalues.\n*\n* CSTEGR is a compatability wrapper around the improved CSTEMR routine.\n* See SSTEMR for further details.\n*\n* One important change is that the ABSTOL parameter no longer provides any\n* benefit and hence is no longer used.\n*\n* Note : CSTEGR and CSTEMR work only on machines which follow\n* IEEE-754 floating-point standard in their handling of infinities and\n* NaNs. Normal execution may create these exceptiona values and hence\n* may abort due to a floating point exception in environments which\n* do not conform to the IEEE-754 standard.\n*\n\n* Arguments\n* =========\n*\n* JOBZ (input) CHARACTER*1\n* = 'N': Compute eigenvalues only;\n* = 'V': Compute eigenvalues and eigenvectors.\n*\n* RANGE (input) CHARACTER*1\n* = 'A': all eigenvalues will be found.\n* = 'V': all eigenvalues in the half-open interval (VL,VU]\n* will be found.\n* = 'I': the IL-th through IU-th eigenvalues will be found.\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* D (input/output) REAL array, dimension (N)\n* On entry, the N diagonal elements of the tridiagonal matrix\n* T. On exit, D is overwritten.\n*\n* E (input/output) REAL array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the tridiagonal\n* matrix T in elements 1 to N-1 of E. E(N) need not be set on\n* input, but is used internally as workspace.\n* On exit, E is overwritten.\n*\n* VL (input) REAL\n* VU (input) REAL\n* If RANGE='V', the lower and upper bounds of the interval to\n* be searched for eigenvalues. VL < VU.\n* Not referenced if RANGE = 'A' or 'I'.\n*\n* IL (input) INTEGER\n* IU (input) INTEGER\n* If RANGE='I', the indices (in ascending order) of the\n* smallest and largest eigenvalues to be returned.\n* 1 <= IL <= IU <= N, if N > 0.\n* Not referenced if RANGE = 'A' or 'V'.\n*\n* ABSTOL (input) REAL\n* Unused. Was the absolute error tolerance for the\n* eigenvalues/eigenvectors in previous versions.\n*\n* M (output) INTEGER\n* The total number of eigenvalues found. 0 <= M <= N.\n* If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1.\n*\n* W (output) REAL array, dimension (N)\n* The first M elements contain the selected eigenvalues in\n* ascending order.\n*\n* Z (output) COMPLEX array, dimension (LDZ, max(1,M) )\n* If JOBZ = 'V', and if INFO = 0, then the first M columns of Z\n* contain the orthonormal eigenvectors of the matrix T\n* corresponding to the selected eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* If JOBZ = 'N', then Z is not referenced.\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z; if RANGE = 'V', the exact value of M\n* is not known in advance and an upper bound must be used.\n* Supplying N columns is always safe.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', then LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER ARRAY, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The i-th computed eigenvector\n* is nonzero only in elements ISUPPZ( 2*i-1 ) through\n* ISUPPZ( 2*i ). This is relevant in the case when the matrix\n* is split. ISUPPZ is only accessed when JOBZ is 'V' and N > 0.\n*\n* WORK (workspace/output) REAL array, dimension (LWORK)\n* On exit, if INFO = 0, WORK(1) returns the optimal\n* (and minimal) LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK >= max(1,18*N)\n* if JOBZ = 'V', and LWORK >= max(1,12*N) if JOBZ = 'N'.\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the WORK array, returns\n* this value as the first entry of the WORK array, and no error\n* message related to LWORK is issued by XERBLA.\n*\n* IWORK (workspace/output) INTEGER array, dimension (LIWORK)\n* On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.\n*\n* LIWORK (input) INTEGER\n* The dimension of the array IWORK. LIWORK >= max(1,10*N)\n* if the eigenvectors are desired, and LIWORK >= max(1,8*N)\n* if only the eigenvalues are to be computed.\n* If LIWORK = -1, then a workspace query is assumed; the\n* routine only calculates the optimal size of the IWORK array,\n* returns this value as the first entry of the IWORK array, and\n* no error message related to LIWORK is issued by XERBLA.\n*\n* INFO (output) INTEGER\n* On exit, INFO\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = 1X, internal error in SLARRE,\n* if INFO = 2X, internal error in CLARRV.\n* Here, the digit X = ABS( IINFO ) < 10, where IINFO is\n* the nonzero error code returned by SLARRE or\n* CLARRV, respectively.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Inderjit Dhillon, IBM Almaden, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n* .. Local Scalars ..\n LOGICAL TRYRAC\n* ..\n* .. External Subroutines ..\n EXTERNAL CSTEMR\n* ..\n\n"); + printf("%s\n", "USAGE:\n m, w, z, isuppz, work, iwork, info, d, e = NumRu::Lapack.cstegr( jobz, range, d, e, vl, vu, il, iu, abstol, [:lwork => lwork, :liwork => liwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CSTEGR( JOBZ, RANGE, N, D, E, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK, IWORK, LIWORK, INFO )\n\n* Purpose\n* =======\n*\n* CSTEGR computes selected eigenvalues and, optionally, eigenvectors\n* of a real symmetric tridiagonal matrix T. Any such unreduced matrix has\n* a well defined set of pairwise different real eigenvalues, the corresponding\n* real eigenvectors are pairwise orthogonal.\n*\n* The spectrum may be computed either completely or partially by specifying\n* either an interval (VL,VU] or a range of indices IL:IU for the desired\n* eigenvalues.\n*\n* CSTEGR is a compatibility wrapper around the improved CSTEMR routine.\n* See SSTEMR for further details.\n*\n* One important change is that the ABSTOL parameter no longer provides any\n* benefit and hence is no longer used.\n*\n* Note : CSTEGR and CSTEMR work only on machines which follow\n* IEEE-754 floating-point standard in their handling of infinities and\n* NaNs. Normal execution may create these exceptiona values and hence\n* may abort due to a floating point exception in environments which\n* do not conform to the IEEE-754 standard.\n*\n\n* Arguments\n* =========\n*\n* JOBZ (input) CHARACTER*1\n* = 'N': Compute eigenvalues only;\n* = 'V': Compute eigenvalues and eigenvectors.\n*\n* RANGE (input) CHARACTER*1\n* = 'A': all eigenvalues will be found.\n* = 'V': all eigenvalues in the half-open interval (VL,VU]\n* will be found.\n* = 'I': the IL-th through IU-th eigenvalues will be found.\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* D (input/output) REAL array, dimension (N)\n* On entry, the N diagonal elements of the tridiagonal matrix\n* T. On exit, D is overwritten.\n*\n* E (input/output) REAL array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the tridiagonal\n* matrix T in elements 1 to N-1 of E. E(N) need not be set on\n* input, but is used internally as workspace.\n* On exit, E is overwritten.\n*\n* VL (input) REAL\n* VU (input) REAL\n* If RANGE='V', the lower and upper bounds of the interval to\n* be searched for eigenvalues. VL < VU.\n* Not referenced if RANGE = 'A' or 'I'.\n*\n* IL (input) INTEGER\n* IU (input) INTEGER\n* If RANGE='I', the indices (in ascending order) of the\n* smallest and largest eigenvalues to be returned.\n* 1 <= IL <= IU <= N, if N > 0.\n* Not referenced if RANGE = 'A' or 'V'.\n*\n* ABSTOL (input) REAL\n* Unused. Was the absolute error tolerance for the\n* eigenvalues/eigenvectors in previous versions.\n*\n* M (output) INTEGER\n* The total number of eigenvalues found. 0 <= M <= N.\n* If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1.\n*\n* W (output) REAL array, dimension (N)\n* The first M elements contain the selected eigenvalues in\n* ascending order.\n*\n* Z (output) COMPLEX array, dimension (LDZ, max(1,M) )\n* If JOBZ = 'V', and if INFO = 0, then the first M columns of Z\n* contain the orthonormal eigenvectors of the matrix T\n* corresponding to the selected eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* If JOBZ = 'N', then Z is not referenced.\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z; if RANGE = 'V', the exact value of M\n* is not known in advance and an upper bound must be used.\n* Supplying N columns is always safe.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', then LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER ARRAY, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The i-th computed eigenvector\n* is nonzero only in elements ISUPPZ( 2*i-1 ) through\n* ISUPPZ( 2*i ). This is relevant in the case when the matrix\n* is split. ISUPPZ is only accessed when JOBZ is 'V' and N > 0.\n*\n* WORK (workspace/output) REAL array, dimension (LWORK)\n* On exit, if INFO = 0, WORK(1) returns the optimal\n* (and minimal) LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK >= max(1,18*N)\n* if JOBZ = 'V', and LWORK >= max(1,12*N) if JOBZ = 'N'.\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the WORK array, returns\n* this value as the first entry of the WORK array, and no error\n* message related to LWORK is issued by XERBLA.\n*\n* IWORK (workspace/output) INTEGER array, dimension (LIWORK)\n* On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.\n*\n* LIWORK (input) INTEGER\n* The dimension of the array IWORK. LIWORK >= max(1,10*N)\n* if the eigenvectors are desired, and LIWORK >= max(1,8*N)\n* if only the eigenvalues are to be computed.\n* If LIWORK = -1, then a workspace query is assumed; the\n* routine only calculates the optimal size of the IWORK array,\n* returns this value as the first entry of the IWORK array, and\n* no error message related to LIWORK is issued by XERBLA.\n*\n* INFO (output) INTEGER\n* On exit, INFO\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = 1X, internal error in SLARRE,\n* if INFO = 2X, internal error in CLARRV.\n* Here, the digit X = ABS( IINFO ) < 10, where IINFO is\n* the nonzero error code returned by SLARRE or\n* CLARRV, respectively.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Inderjit Dhillon, IBM Almaden, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n* .. Local Scalars ..\n LOGICAL TRYRAC\n* ..\n* .. External Subroutines ..\n EXTERNAL CSTEMR\n* ..\n\n"); return Qnil; } if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/ext/csyrfsx.c ruby-lapack-1.8.1/ext/csyrfsx.c --- ruby-lapack-1.7.2/ext/csyrfsx.c 2015-03-18 06:58:21.000000000 +0000 +++ ruby-lapack-1.8.1/ext/csyrfsx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_csyrfsx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_equed; @@ -206,6 +207,9 @@ rblapack_rcond = rb_float_new((double)rcond); rblapack_info = INT2NUM(info); return rb_ary_new3(8, rblapack_rcond, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_s, rblapack_x, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/csysvxx.c ruby-lapack-1.8.1/ext/csysvxx.c --- ruby-lapack-1.7.2/ext/csysvxx.c 2015-03-18 06:58:26.000000000 +0000 +++ ruby-lapack-1.8.1/ext/csysvxx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_csysvxx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_fact; char fact; VALUE rblapack_uplo; @@ -246,6 +247,9 @@ rblapack_info = INT2NUM(info); rblapack_equed = rb_str_new(&equed,1); return rb_ary_new3(14, rblapack_x, rblapack_rcond, rblapack_rpvgrw, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_a, rblapack_af, rblapack_ipiv, rblapack_equed, rblapack_s, rblapack_b, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/dgbrfsx.c ruby-lapack-1.8.1/ext/dgbrfsx.c --- ruby-lapack-1.7.2/ext/dgbrfsx.c 2015-03-18 06:58:21.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dgbrfsx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_dgbrfsx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_trans; char trans; VALUE rblapack_equed; @@ -237,6 +238,9 @@ rblapack_rcond = rb_float_new((double)rcond); rblapack_info = INT2NUM(info); return rb_ary_new3(9, rblapack_rcond, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_r, rblapack_c, rblapack_x, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/dgbsvxx.c ruby-lapack-1.8.1/ext/dgbsvxx.c --- ruby-lapack-1.7.2/ext/dgbsvxx.c 2015-03-18 06:58:27.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dgbsvxx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_dgbsvxx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_fact; char fact; VALUE rblapack_trans; @@ -277,6 +278,9 @@ rblapack_info = INT2NUM(info); rblapack_equed = rb_str_new(&equed,1); return rb_ary_new3(15, rblapack_x, rblapack_rcond, rblapack_rpvgrw, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_ab, rblapack_afb, rblapack_ipiv, rblapack_equed, rblapack_r, rblapack_c, rblapack_b, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/dgelsd.c ruby-lapack-1.8.1/ext/dgelsd.c --- ruby-lapack-1.7.2/ext/dgelsd.c 2015-03-18 06:58:27.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dgelsd.c 2018-03-08 07:50:28.000000000 +0000 @@ -41,7 +41,7 @@ argc--; rblapack_options = argv[argc]; if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { - printf("%s\n", "USAGE:\n s, rank, work, info, b = NumRu::Lapack.dgelsd( a, b, rcond, [:lwork => lwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DGELSD( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK, WORK, LWORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* DGELSD computes the minimum-norm solution to a real linear least\n* squares problem:\n* minimize 2-norm(| b - A*x |)\n* using the singular value decomposition (SVD) of A. A is an M-by-N\n* matrix which may be rank-deficient.\n*\n* Several right hand side vectors b and solution vectors x can be\n* handled in a single call; they are stored as the columns of the\n* M-by-NRHS right hand side matrix B and the N-by-NRHS solution\n* matrix X.\n*\n* The problem is solved in three steps:\n* (1) Reduce the coefficient matrix A to bidiagonal form with\n* Householder transformations, reducing the original problem\n* into a \"bidiagonal least squares problem\" (BLS)\n* (2) Solve the BLS using a divide and conquer approach.\n* (3) Apply back all the Householder tranformations to solve\n* the original least squares problem.\n*\n* The effective rank of A is determined by treating as zero those\n* singular values which are less than RCOND times the largest singular\n* value.\n*\n* The divide and conquer algorithm makes very mild assumptions about\n* floating point arithmetic. It will work on machines with a guard\n* digit in add/subtract, or on those binary machines without guard\n* digits which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or\n* Cray-2. It could conceivably fail on hexadecimal or decimal machines\n* without guard digits, but we know of none.\n*\n\n* Arguments\n* =========\n*\n* M (input) INTEGER\n* The number of rows of A. M >= 0.\n*\n* N (input) INTEGER\n* The number of columns of A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrices B and X. NRHS >= 0.\n*\n* A (input) DOUBLE PRECISION array, dimension (LDA,N)\n* On entry, the M-by-N matrix A.\n* On exit, A has been destroyed.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* B (input/output) DOUBLE PRECISION array, dimension (LDB,NRHS)\n* On entry, the M-by-NRHS right hand side matrix B.\n* On exit, B is overwritten by the N-by-NRHS solution\n* matrix X. If m >= n and RANK = n, the residual\n* sum-of-squares for the solution in the i-th column is given\n* by the sum of squares of elements n+1:m in that column.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,max(M,N)).\n*\n* S (output) DOUBLE PRECISION array, dimension (min(M,N))\n* The singular values of A in decreasing order.\n* The condition number of A in the 2-norm = S(1)/S(min(m,n)).\n*\n* RCOND (input) DOUBLE PRECISION\n* RCOND is used to determine the effective rank of A.\n* Singular values S(i) <= RCOND*S(1) are treated as zero.\n* If RCOND < 0, machine precision is used instead.\n*\n* RANK (output) INTEGER\n* The effective rank of A, i.e., the number of singular values\n* which are greater than RCOND*S(1).\n*\n* WORK (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK))\n* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK must be at least 1.\n* The exact minimum amount of workspace needed depends on M,\n* N and NRHS. As long as LWORK is at least\n* 12*N + 2*N*SMLSIZ + 8*N*NLVL + N*NRHS + (SMLSIZ+1)**2,\n* if M is greater than or equal to N or\n* 12*M + 2*M*SMLSIZ + 8*M*NLVL + M*NRHS + (SMLSIZ+1)**2,\n* if M is less than N, the code will execute correctly.\n* SMLSIZ is returned by ILAENV and is equal to the maximum\n* size of the subproblems at the bottom of the computation\n* tree (usually about 25), and\n* NLVL = MAX( 0, INT( LOG_2( MIN( M,N )/(SMLSIZ+1) ) ) + 1 )\n* For good performance, LWORK should generally be larger.\n*\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the WORK array, returns\n* this value as the first entry of the WORK array, and no error\n* message related to LWORK is issued by XERBLA.\n*\n* IWORK (workspace) INTEGER array, dimension (MAX(1,LIWORK))\n* LIWORK >= max(1, 3 * MINMN * NLVL + 11 * MINMN),\n* where MINMN = MIN( M,N ).\n* On exit, if INFO = 0, IWORK(1) returns the minimum LIWORK.\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value.\n* > 0: the algorithm for computing the SVD failed to converge;\n* if INFO = i, i off-diagonal elements of an intermediate\n* bidiagonal form did not converge to zero.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Ming Gu and Ren-Cang Li, Computer Science Division, University of\n* California at Berkeley, USA\n* Osni Marques, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n\n"); + printf("%s\n", "USAGE:\n s, rank, work, info, b = NumRu::Lapack.dgelsd( a, b, rcond, [:lwork => lwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DGELSD( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK, WORK, LWORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* DGELSD computes the minimum-norm solution to a real linear least\n* squares problem:\n* minimize 2-norm(| b - A*x |)\n* using the singular value decomposition (SVD) of A. A is an M-by-N\n* matrix which may be rank-deficient.\n*\n* Several right hand side vectors b and solution vectors x can be\n* handled in a single call; they are stored as the columns of the\n* M-by-NRHS right hand side matrix B and the N-by-NRHS solution\n* matrix X.\n*\n* The problem is solved in three steps:\n* (1) Reduce the coefficient matrix A to bidiagonal form with\n* Householder transformations, reducing the original problem\n* into a \"bidiagonal least squares problem\" (BLS)\n* (2) Solve the BLS using a divide and conquer approach.\n* (3) Apply back all the Householder transformations to solve\n* the original least squares problem.\n*\n* The effective rank of A is determined by treating as zero those\n* singular values which are less than RCOND times the largest singular\n* value.\n*\n* The divide and conquer algorithm makes very mild assumptions about\n* floating point arithmetic. It will work on machines with a guard\n* digit in add/subtract, or on those binary machines without guard\n* digits which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or\n* Cray-2. It could conceivably fail on hexadecimal or decimal machines\n* without guard digits, but we know of none.\n*\n\n* Arguments\n* =========\n*\n* M (input) INTEGER\n* The number of rows of A. M >= 0.\n*\n* N (input) INTEGER\n* The number of columns of A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrices B and X. NRHS >= 0.\n*\n* A (input) DOUBLE PRECISION array, dimension (LDA,N)\n* On entry, the M-by-N matrix A.\n* On exit, A has been destroyed.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* B (input/output) DOUBLE PRECISION array, dimension (LDB,NRHS)\n* On entry, the M-by-NRHS right hand side matrix B.\n* On exit, B is overwritten by the N-by-NRHS solution\n* matrix X. If m >= n and RANK = n, the residual\n* sum-of-squares for the solution in the i-th column is given\n* by the sum of squares of elements n+1:m in that column.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,max(M,N)).\n*\n* S (output) DOUBLE PRECISION array, dimension (min(M,N))\n* The singular values of A in decreasing order.\n* The condition number of A in the 2-norm = S(1)/S(min(m,n)).\n*\n* RCOND (input) DOUBLE PRECISION\n* RCOND is used to determine the effective rank of A.\n* Singular values S(i) <= RCOND*S(1) are treated as zero.\n* If RCOND < 0, machine precision is used instead.\n*\n* RANK (output) INTEGER\n* The effective rank of A, i.e., the number of singular values\n* which are greater than RCOND*S(1).\n*\n* WORK (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK))\n* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK must be at least 1.\n* The exact minimum amount of workspace needed depends on M,\n* N and NRHS. As long as LWORK is at least\n* 12*N + 2*N*SMLSIZ + 8*N*NLVL + N*NRHS + (SMLSIZ+1)**2,\n* if M is greater than or equal to N or\n* 12*M + 2*M*SMLSIZ + 8*M*NLVL + M*NRHS + (SMLSIZ+1)**2,\n* if M is less than N, the code will execute correctly.\n* SMLSIZ is returned by ILAENV and is equal to the maximum\n* size of the subproblems at the bottom of the computation\n* tree (usually about 25), and\n* NLVL = MAX( 0, INT( LOG_2( MIN( M,N )/(SMLSIZ+1) ) ) + 1 )\n* For good performance, LWORK should generally be larger.\n*\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the WORK array, returns\n* this value as the first entry of the WORK array, and no error\n* message related to LWORK is issued by XERBLA.\n*\n* IWORK (workspace) INTEGER array, dimension (MAX(1,LIWORK))\n* LIWORK >= max(1, 3 * MINMN * NLVL + 11 * MINMN),\n* where MINMN = MIN( M,N ).\n* On exit, if INFO = 0, IWORK(1) returns the minimum LIWORK.\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value.\n* > 0: the algorithm for computing the SVD failed to converge;\n* if INFO = i, i off-diagonal elements of an intermediate\n* bidiagonal form did not converge to zero.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Ming Gu and Ren-Cang Li, Computer Science Division, University of\n* California at Berkeley, USA\n* Osni Marques, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n\n"); return Qnil; } if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/ext/dgerfsx.c ruby-lapack-1.8.1/ext/dgerfsx.c --- ruby-lapack-1.7.2/ext/dgerfsx.c 2015-03-18 06:58:21.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dgerfsx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_dgerfsx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_trans; char trans; VALUE rblapack_equed; @@ -207,6 +208,9 @@ rblapack_rcond = rb_float_new((double)rcond); rblapack_info = INT2NUM(info); return rb_ary_new3(7, rblapack_rcond, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_x, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/dgesvxx.c ruby-lapack-1.8.1/ext/dgesvxx.c --- ruby-lapack-1.7.2/ext/dgesvxx.c 2015-03-18 06:58:27.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dgesvxx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_dgesvxx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_fact; char fact; VALUE rblapack_trans; @@ -269,6 +270,9 @@ rblapack_info = INT2NUM(info); rblapack_equed = rb_str_new(&equed,1); return rb_ary_new3(15, rblapack_x, rblapack_rcond, rblapack_rpvgrw, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_a, rblapack_af, rblapack_ipiv, rblapack_equed, rblapack_r, rblapack_c, rblapack_b, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/dla_gbamv.c ruby-lapack-1.8.1/ext/dla_gbamv.c --- ruby-lapack-1.7.2/ext/dla_gbamv.c 2015-03-18 06:58:21.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dla_gbamv.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_dla_gbamv(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_trans; integer trans; VALUE rblapack_m; @@ -117,6 +118,9 @@ dla_gbamv_(&trans, &m, &n, &kl, &ku, &alpha, ab, &ldab, x, &incx, &beta, y, &incy); return rblapack_y; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/dla_gbrcond.c ruby-lapack-1.8.1/ext/dla_gbrcond.c --- ruby-lapack-1.7.2/ext/dla_gbrcond.c 2015-03-18 06:58:22.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dla_gbrcond.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_dla_gbrcond(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_trans; char trans; VALUE rblapack_kl; @@ -130,6 +131,9 @@ rblapack_info = INT2NUM(info); rblapack___out__ = rb_float_new((double)__out__); return rb_ary_new3(2, rblapack_info, rblapack___out__); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/dla_gbrfsx_extended.c ruby-lapack-1.8.1/ext/dla_gbrfsx_extended.c --- ruby-lapack-1.7.2/ext/dla_gbrfsx_extended.c 2015-03-18 06:58:29.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dla_gbrfsx_extended.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_dla_gbrfsx_extended(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_prec_type; integer prec_type; VALUE rblapack_trans_type; @@ -281,6 +282,9 @@ rblapack_info = INT2NUM(info); return rb_ary_new3(5, rblapack_berr_out, rblapack_info, rblapack_y, rblapack_err_bnds_norm, rblapack_err_bnds_comp); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/dla_gbrpvgrw.c ruby-lapack-1.8.1/ext/dla_gbrpvgrw.c --- ruby-lapack-1.7.2/ext/dla_gbrpvgrw.c 2015-03-18 06:58:22.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dla_gbrpvgrw.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_dla_gbrpvgrw(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_kl; integer kl; VALUE rblapack_ku; @@ -75,6 +76,9 @@ rblapack___out__ = rb_float_new((double)__out__); return rblapack___out__; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/dla_geamv.c ruby-lapack-1.8.1/ext/dla_geamv.c --- ruby-lapack-1.7.2/ext/dla_geamv.c 2015-03-18 06:58:30.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dla_geamv.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_dla_geamv(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_trans; integer trans; VALUE rblapack_m; @@ -107,6 +108,9 @@ dla_geamv_(&trans, &m, &n, &alpha, a, &lda, x, &incx, &beta, y, &incy); return rblapack_y; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/dla_gercond.c ruby-lapack-1.8.1/ext/dla_gercond.c --- ruby-lapack-1.7.2/ext/dla_gercond.c 2015-03-18 06:58:19.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dla_gercond.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_dla_gercond(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_trans; char trans; VALUE rblapack_a; @@ -122,6 +123,9 @@ rblapack_info = INT2NUM(info); rblapack___out__ = rb_float_new((double)__out__); return rb_ary_new3(2, rblapack_info, rblapack___out__); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/dla_gerfsx_extended.c ruby-lapack-1.8.1/ext/dla_gerfsx_extended.c --- ruby-lapack-1.7.2/ext/dla_gerfsx_extended.c 2015-03-18 06:58:23.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dla_gerfsx_extended.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_dla_gerfsx_extended(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_prec_type; integer prec_type; VALUE rblapack_trans_type; @@ -269,6 +270,9 @@ rblapack_info = INT2NUM(info); return rb_ary_new3(5, rblapack_berr_out, rblapack_info, rblapack_y, rblapack_errs_n, rblapack_errs_c); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/dla_lin_berr.c ruby-lapack-1.8.1/ext/dla_lin_berr.c --- ruby-lapack-1.7.2/ext/dla_lin_berr.c 2015-03-18 06:58:27.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dla_lin_berr.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_dla_lin_berr(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_nz; integer nz; VALUE rblapack_res; @@ -72,6 +73,9 @@ dla_lin_berr_(&n, &nz, &nrhs, res, ayb, berr); return rblapack_berr; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/dlamrg.c ruby-lapack-1.8.1/ext/dlamrg.c --- ruby-lapack-1.7.2/ext/dlamrg.c 2015-03-18 06:58:27.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dlamrg.c 2018-03-08 07:50:28.000000000 +0000 @@ -24,7 +24,7 @@ argc--; rblapack_options = argv[argc]; if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { - printf("%s\n", "USAGE:\n index = NumRu::Lapack.dlamrg( n1, n2, a, dtrd1, dtrd2, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DLAMRG( N1, N2, A, DTRD1, DTRD2, INDEX )\n\n* Purpose\n* =======\n*\n* DLAMRG will create a permutation list which will merge the elements\n* of A (which is composed of two independently sorted sets) into a\n* single set which is sorted in ascending order.\n*\n\n* Arguments\n* =========\n*\n* N1 (input) INTEGER\n* N2 (input) INTEGER\n* These arguements contain the respective lengths of the two\n* sorted lists to be merged.\n*\n* A (input) DOUBLE PRECISION array, dimension (N1+N2)\n* The first N1 elements of A contain a list of numbers which\n* are sorted in either ascending or descending order. Likewise\n* for the final N2 elements.\n*\n* DTRD1 (input) INTEGER\n* DTRD2 (input) INTEGER\n* These are the strides to be taken through the array A.\n* Allowable strides are 1 and -1. They indicate whether a\n* subset of A is sorted in ascending (DTRDx = 1) or descending\n* (DTRDx = -1) order.\n*\n* INDEX (output) INTEGER array, dimension (N1+N2)\n* On exit this array will contain a permutation such that\n* if B( I ) = A( INDEX( I ) ) for I=1,N1+N2, then B will be\n* sorted in ascending order.\n*\n\n* =====================================================================\n*\n* .. Local Scalars ..\n INTEGER I, IND1, IND2, N1SV, N2SV\n* ..\n\n"); + printf("%s\n", "USAGE:\n index = NumRu::Lapack.dlamrg( n1, n2, a, dtrd1, dtrd2, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DLAMRG( N1, N2, A, DTRD1, DTRD2, INDEX )\n\n* Purpose\n* =======\n*\n* DLAMRG will create a permutation list which will merge the elements\n* of A (which is composed of two independently sorted sets) into a\n* single set which is sorted in ascending order.\n*\n\n* Arguments\n* =========\n*\n* N1 (input) INTEGER\n* N2 (input) INTEGER\n* These arguments contain the respective lengths of the two\n* sorted lists to be merged.\n*\n* A (input) DOUBLE PRECISION array, dimension (N1+N2)\n* The first N1 elements of A contain a list of numbers which\n* are sorted in either ascending or descending order. Likewise\n* for the final N2 elements.\n*\n* DTRD1 (input) INTEGER\n* DTRD2 (input) INTEGER\n* These are the strides to be taken through the array A.\n* Allowable strides are 1 and -1. They indicate whether a\n* subset of A is sorted in ascending (DTRDx = 1) or descending\n* (DTRDx = -1) order.\n*\n* INDEX (output) INTEGER array, dimension (N1+N2)\n* On exit this array will contain a permutation such that\n* if B( I ) = A( INDEX( I ) ) for I=1,N1+N2, then B will be\n* sorted in ascending order.\n*\n\n* =====================================================================\n*\n* .. Local Scalars ..\n INTEGER I, IND1, IND2, N1SV, N2SV\n* ..\n\n"); return Qnil; } if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/ext/dla_porcond.c ruby-lapack-1.8.1/ext/dla_porcond.c --- ruby-lapack-1.7.2/ext/dla_porcond.c 2015-03-18 06:58:26.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dla_porcond.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_dla_porcond(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_a; @@ -110,6 +111,9 @@ rblapack_info = INT2NUM(info); rblapack___out__ = rb_float_new((double)__out__); return rb_ary_new3(2, rblapack_info, rblapack___out__); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/dla_porfsx_extended.c ruby-lapack-1.8.1/ext/dla_porfsx_extended.c --- ruby-lapack-1.7.2/ext/dla_porfsx_extended.c 2015-03-18 06:58:27.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dla_porfsx_extended.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_dla_porfsx_extended(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_prec_type; integer prec_type; VALUE rblapack_uplo; @@ -259,6 +260,9 @@ rblapack_info = INT2NUM(info); return rb_ary_new3(5, rblapack_berr_out, rblapack_info, rblapack_y, rblapack_err_bnds_norm, rblapack_err_bnds_comp); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/dla_porpvgrw.c ruby-lapack-1.8.1/ext/dla_porpvgrw.c --- ruby-lapack-1.7.2/ext/dla_porpvgrw.c 2015-03-18 06:58:30.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dla_porpvgrw.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_dla_porpvgrw(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_ncols; @@ -83,6 +84,9 @@ rblapack___out__ = rb_float_new((double)__out__); return rblapack___out__; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/dla_rpvgrw.c ruby-lapack-1.8.1/ext/dla_rpvgrw.c --- ruby-lapack-1.7.2/ext/dla_rpvgrw.c 2015-03-18 06:58:28.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dla_rpvgrw.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_dla_rpvgrw(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_ncols; integer ncols; VALUE rblapack_a; @@ -67,6 +68,9 @@ rblapack___out__ = rb_float_new((double)__out__); return rblapack___out__; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/dlarre.c ruby-lapack-1.8.1/ext/dlarre.c --- ruby-lapack-1.7.2/ext/dlarre.c 2015-03-18 06:58:19.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dlarre.c 2018-03-08 07:50:28.000000000 +0000 @@ -65,7 +65,7 @@ argc--; rblapack_options = argv[argc]; if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { - printf("%s\n", "USAGE:\n nsplit, isplit, m, w, werr, wgap, iblock, indexw, gers, pivmin, info, vl, vu, d, e, e2 = NumRu::Lapack.dlarre( range, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DLARRE( RANGE, N, VL, VU, IL, IU, D, E, E2, RTOL1, RTOL2, SPLTOL, NSPLIT, ISPLIT, M, W, WERR, WGAP, IBLOCK, INDEXW, GERS, PIVMIN, WORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* To find the desired eigenvalues of a given real symmetric\n* tridiagonal matrix T, DLARRE sets any \"small\" off-diagonal\n* elements to zero, and for each unreduced block T_i, it finds\n* (a) a suitable shift at one end of the block's spectrum,\n* (b) the base representation, T_i - sigma_i I = L_i D_i L_i^T, and\n* (c) eigenvalues of each L_i D_i L_i^T.\n* The representations and eigenvalues found are then used by\n* DSTEMR to compute the eigenvectors of T.\n* The accuracy varies depending on whether bisection is used to\n* find a few eigenvalues or the dqds algorithm (subroutine DLASQ2) to\n* conpute all and then discard any unwanted one.\n* As an added benefit, DLARRE also outputs the n\n* Gerschgorin intervals for the matrices L_i D_i L_i^T.\n*\n\n* Arguments\n* =========\n*\n* RANGE (input) CHARACTER*1\n* = 'A': (\"All\") all eigenvalues will be found.\n* = 'V': (\"Value\") all eigenvalues in the half-open interval\n* (VL, VU] will be found.\n* = 'I': (\"Index\") the IL-th through IU-th eigenvalues (of the\n* entire matrix) will be found.\n*\n* N (input) INTEGER\n* The order of the matrix. N > 0.\n*\n* VL (input/output) DOUBLE PRECISION\n* VU (input/output) DOUBLE PRECISION\n* If RANGE='V', the lower and upper bounds for the eigenvalues.\n* Eigenvalues less than or equal to VL, or greater than VU,\n* will not be returned. VL < VU.\n* If RANGE='I' or ='A', DLARRE computes bounds on the desired\n* part of the spectrum.\n*\n* IL (input) INTEGER\n* IU (input) INTEGER\n* If RANGE='I', the indices (in ascending order) of the\n* smallest and largest eigenvalues to be returned.\n* 1 <= IL <= IU <= N.\n*\n* D (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the N diagonal elements of the tridiagonal\n* matrix T.\n* On exit, the N diagonal elements of the diagonal\n* matrices D_i.\n*\n* E (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the first (N-1) entries contain the subdiagonal\n* elements of the tridiagonal matrix T; E(N) need not be set.\n* On exit, E contains the subdiagonal elements of the unit\n* bidiagonal matrices L_i. The entries E( ISPLIT( I ) ),\n* 1 <= I <= NSPLIT, contain the base points sigma_i on output.\n*\n* E2 (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the first (N-1) entries contain the SQUARES of the\n* subdiagonal elements of the tridiagonal matrix T;\n* E2(N) need not be set.\n* On exit, the entries E2( ISPLIT( I ) ),\n* 1 <= I <= NSPLIT, have been set to zero\n*\n* RTOL1 (input) DOUBLE PRECISION\n* RTOL2 (input) DOUBLE PRECISION\n* Parameters for bisection.\n* An interval [LEFT,RIGHT] has converged if\n* RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) )\n*\n* SPLTOL (input) DOUBLE PRECISION\n* The threshold for splitting.\n*\n* NSPLIT (output) INTEGER\n* The number of blocks T splits into. 1 <= NSPLIT <= N.\n*\n* ISPLIT (output) INTEGER array, dimension (N)\n* The splitting points, at which T breaks up into blocks.\n* The first block consists of rows/columns 1 to ISPLIT(1),\n* the second of rows/columns ISPLIT(1)+1 through ISPLIT(2),\n* etc., and the NSPLIT-th consists of rows/columns\n* ISPLIT(NSPLIT-1)+1 through ISPLIT(NSPLIT)=N.\n*\n* M (output) INTEGER\n* The total number of eigenvalues (of all L_i D_i L_i^T)\n* found.\n*\n* W (output) DOUBLE PRECISION array, dimension (N)\n* The first M elements contain the eigenvalues. The\n* eigenvalues of each of the blocks, L_i D_i L_i^T, are\n* sorted in ascending order ( DLARRE may use the\n* remaining N-M elements as workspace).\n*\n* WERR (output) DOUBLE PRECISION array, dimension (N)\n* The error bound on the corresponding eigenvalue in W.\n*\n* WGAP (output) DOUBLE PRECISION array, dimension (N)\n* The separation from the right neighbor eigenvalue in W.\n* The gap is only with respect to the eigenvalues of the same block\n* as each block has its own representation tree.\n* Exception: at the right end of a block we store the left gap\n*\n* IBLOCK (output) INTEGER array, dimension (N)\n* The indices of the blocks (submatrices) associated with the\n* corresponding eigenvalues in W; IBLOCK(i)=1 if eigenvalue\n* W(i) belongs to the first block from the top, =2 if W(i)\n* belongs to the second block, etc.\n*\n* INDEXW (output) INTEGER array, dimension (N)\n* The indices of the eigenvalues within each block (submatrix);\n* for example, INDEXW(i)= 10 and IBLOCK(i)=2 imply that the\n* i-th eigenvalue W(i) is the 10-th eigenvalue in block 2\n*\n* GERS (output) DOUBLE PRECISION array, dimension (2*N)\n* The N Gerschgorin intervals (the i-th Gerschgorin interval\n* is (GERS(2*i-1), GERS(2*i)).\n*\n* PIVMIN (output) DOUBLE PRECISION\n* The minimum pivot in the Sturm sequence for T.\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (6*N)\n* Workspace.\n*\n* IWORK (workspace) INTEGER array, dimension (5*N)\n* Workspace.\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* > 0: A problem occured in DLARRE.\n* < 0: One of the called subroutines signaled an internal problem.\n* Needs inspection of the corresponding parameter IINFO\n* for further information.\n*\n* =-1: Problem in DLARRD.\n* = 2: No base representation could be found in MAXTRY iterations.\n* Increasing MAXTRY and recompilation might be a remedy.\n* =-3: Problem in DLARRB when computing the refined root\n* representation for DLASQ2.\n* =-4: Problem in DLARRB when preforming bisection on the\n* desired part of the spectrum.\n* =-5: Problem in DLASQ2.\n* =-6: Problem in DLASQ2.\n*\n\n* Further Details\n* The base representations are required to suffer very little\n* element growth and consequently define all their eigenvalues to\n* high relative accuracy.\n* ===============\n*\n* Based on contributions by\n* Beresford Parlett, University of California, Berkeley, USA\n* Jim Demmel, University of California, Berkeley, USA\n* Inderjit Dhillon, University of Texas, Austin, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, University of California, Berkeley, USA\n*\n* =====================================================================\n*\n\n"); + printf("%s\n", "USAGE:\n nsplit, isplit, m, w, werr, wgap, iblock, indexw, gers, pivmin, info, vl, vu, d, e, e2 = NumRu::Lapack.dlarre( range, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DLARRE( RANGE, N, VL, VU, IL, IU, D, E, E2, RTOL1, RTOL2, SPLTOL, NSPLIT, ISPLIT, M, W, WERR, WGAP, IBLOCK, INDEXW, GERS, PIVMIN, WORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* To find the desired eigenvalues of a given real symmetric\n* tridiagonal matrix T, DLARRE sets any \"small\" off-diagonal\n* elements to zero, and for each unreduced block T_i, it finds\n* (a) a suitable shift at one end of the block's spectrum,\n* (b) the base representation, T_i - sigma_i I = L_i D_i L_i^T, and\n* (c) eigenvalues of each L_i D_i L_i^T.\n* The representations and eigenvalues found are then used by\n* DSTEMR to compute the eigenvectors of T.\n* The accuracy varies depending on whether bisection is used to\n* find a few eigenvalues or the dqds algorithm (subroutine DLASQ2) to\n* conpute all and then discard any unwanted one.\n* As an added benefit, DLARRE also outputs the n\n* Gerschgorin intervals for the matrices L_i D_i L_i^T.\n*\n\n* Arguments\n* =========\n*\n* RANGE (input) CHARACTER*1\n* = 'A': (\"All\") all eigenvalues will be found.\n* = 'V': (\"Value\") all eigenvalues in the half-open interval\n* (VL, VU] will be found.\n* = 'I': (\"Index\") the IL-th through IU-th eigenvalues (of the\n* entire matrix) will be found.\n*\n* N (input) INTEGER\n* The order of the matrix. N > 0.\n*\n* VL (input/output) DOUBLE PRECISION\n* VU (input/output) DOUBLE PRECISION\n* If RANGE='V', the lower and upper bounds for the eigenvalues.\n* Eigenvalues less than or equal to VL, or greater than VU,\n* will not be returned. VL < VU.\n* If RANGE='I' or ='A', DLARRE computes bounds on the desired\n* part of the spectrum.\n*\n* IL (input) INTEGER\n* IU (input) INTEGER\n* If RANGE='I', the indices (in ascending order) of the\n* smallest and largest eigenvalues to be returned.\n* 1 <= IL <= IU <= N.\n*\n* D (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the N diagonal elements of the tridiagonal\n* matrix T.\n* On exit, the N diagonal elements of the diagonal\n* matrices D_i.\n*\n* E (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the first (N-1) entries contain the subdiagonal\n* elements of the tridiagonal matrix T; E(N) need not be set.\n* On exit, E contains the subdiagonal elements of the unit\n* bidiagonal matrices L_i. The entries E( ISPLIT( I ) ),\n* 1 <= I <= NSPLIT, contain the base points sigma_i on output.\n*\n* E2 (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the first (N-1) entries contain the SQUARES of the\n* subdiagonal elements of the tridiagonal matrix T;\n* E2(N) need not be set.\n* On exit, the entries E2( ISPLIT( I ) ),\n* 1 <= I <= NSPLIT, have been set to zero\n*\n* RTOL1 (input) DOUBLE PRECISION\n* RTOL2 (input) DOUBLE PRECISION\n* Parameters for bisection.\n* An interval [LEFT,RIGHT] has converged if\n* RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) )\n*\n* SPLTOL (input) DOUBLE PRECISION\n* The threshold for splitting.\n*\n* NSPLIT (output) INTEGER\n* The number of blocks T splits into. 1 <= NSPLIT <= N.\n*\n* ISPLIT (output) INTEGER array, dimension (N)\n* The splitting points, at which T breaks up into blocks.\n* The first block consists of rows/columns 1 to ISPLIT(1),\n* the second of rows/columns ISPLIT(1)+1 through ISPLIT(2),\n* etc., and the NSPLIT-th consists of rows/columns\n* ISPLIT(NSPLIT-1)+1 through ISPLIT(NSPLIT)=N.\n*\n* M (output) INTEGER\n* The total number of eigenvalues (of all L_i D_i L_i^T)\n* found.\n*\n* W (output) DOUBLE PRECISION array, dimension (N)\n* The first M elements contain the eigenvalues. The\n* eigenvalues of each of the blocks, L_i D_i L_i^T, are\n* sorted in ascending order ( DLARRE may use the\n* remaining N-M elements as workspace).\n*\n* WERR (output) DOUBLE PRECISION array, dimension (N)\n* The error bound on the corresponding eigenvalue in W.\n*\n* WGAP (output) DOUBLE PRECISION array, dimension (N)\n* The separation from the right neighbor eigenvalue in W.\n* The gap is only with respect to the eigenvalues of the same block\n* as each block has its own representation tree.\n* Exception: at the right end of a block we store the left gap\n*\n* IBLOCK (output) INTEGER array, dimension (N)\n* The indices of the blocks (submatrices) associated with the\n* corresponding eigenvalues in W; IBLOCK(i)=1 if eigenvalue\n* W(i) belongs to the first block from the top, =2 if W(i)\n* belongs to the second block, etc.\n*\n* INDEXW (output) INTEGER array, dimension (N)\n* The indices of the eigenvalues within each block (submatrix);\n* for example, INDEXW(i)= 10 and IBLOCK(i)=2 imply that the\n* i-th eigenvalue W(i) is the 10-th eigenvalue in block 2\n*\n* GERS (output) DOUBLE PRECISION array, dimension (2*N)\n* The N Gerschgorin intervals (the i-th Gerschgorin interval\n* is (GERS(2*i-1), GERS(2*i)).\n*\n* PIVMIN (output) DOUBLE PRECISION\n* The minimum pivot in the Sturm sequence for T.\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (6*N)\n* Workspace.\n*\n* IWORK (workspace) INTEGER array, dimension (5*N)\n* Workspace.\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* > 0: A problem occurred in DLARRE.\n* < 0: One of the called subroutines signaled an internal problem.\n* Needs inspection of the corresponding parameter IINFO\n* for further information.\n*\n* =-1: Problem in DLARRD.\n* = 2: No base representation could be found in MAXTRY iterations.\n* Increasing MAXTRY and recompilation might be a remedy.\n* =-3: Problem in DLARRB when computing the refined root\n* representation for DLASQ2.\n* =-4: Problem in DLARRB when preforming bisection on the\n* desired part of the spectrum.\n* =-5: Problem in DLASQ2.\n* =-6: Problem in DLASQ2.\n*\n\n* Further Details\n* The base representations are required to suffer very little\n* element growth and consequently define all their eigenvalues to\n* high relative accuracy.\n* ===============\n*\n* Based on contributions by\n* Beresford Parlett, University of California, Berkeley, USA\n* Jim Demmel, University of California, Berkeley, USA\n* Inderjit Dhillon, University of Texas, Austin, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, University of California, Berkeley, USA\n*\n* =====================================================================\n*\n\n"); return Qnil; } if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/ext/dlarrv.c ruby-lapack-1.8.1/ext/dlarrv.c --- ruby-lapack-1.7.2/ext/dlarrv.c 2016-02-08 01:29:31.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dlarrv.c 2018-03-08 07:50:28.000000000 +0000 @@ -68,7 +68,7 @@ argc--; rblapack_options = argv[argc]; if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { - printf("%s\n", "USAGE:\n z, isuppz, info, d, l, w, werr, wgap = NumRu::Lapack.dlarrv( vl, vu, d, l, pivmin, isplit, m, dol, dou, minrgp, rtol1, rtol2, w, werr, wgap, iblock, indexw, gers, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DLARRV( N, VL, VU, D, L, PIVMIN, ISPLIT, M, DOL, DOU, MINRGP, RTOL1, RTOL2, W, WERR, WGAP, IBLOCK, INDEXW, GERS, Z, LDZ, ISUPPZ, WORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* DLARRV computes the eigenvectors of the tridiagonal matrix\n* T = L D L^T given L, D and APPROXIMATIONS to the eigenvalues of L D L^T.\n* The input eigenvalues should have been computed by DLARRE.\n*\n\n* Arguments\n* =========\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* VL (input) DOUBLE PRECISION\n* VU (input) DOUBLE PRECISION\n* Lower and upper bounds of the interval that contains the desired\n* eigenvalues. VL < VU. Needed to compute gaps on the left or right\n* end of the extremal eigenvalues in the desired RANGE.\n*\n* D (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the N diagonal elements of the diagonal matrix D.\n* On exit, D may be overwritten.\n*\n* L (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the unit\n* bidiagonal matrix L are in elements 1 to N-1 of L\n* (if the matrix is not split.) At the end of each block\n* is stored the corresponding shift as given by DLARRE.\n* On exit, L is overwritten.\n*\n* PIVMIN (input) DOUBLE PRECISION\n* The minimum pivot allowed in the Sturm sequence.\n*\n* ISPLIT (input) INTEGER array, dimension (N)\n* The splitting points, at which T breaks up into blocks.\n* The first block consists of rows/columns 1 to\n* ISPLIT( 1 ), the second of rows/columns ISPLIT( 1 )+1\n* through ISPLIT( 2 ), etc.\n*\n* M (input) INTEGER\n* The total number of input eigenvalues. 0 <= M <= N.\n*\n* DOL (input) INTEGER\n* DOU (input) INTEGER\n* If the user wants to compute only selected eigenvectors from all\n* the eigenvalues supplied, he can specify an index range DOL:DOU.\n* Or else the setting DOL=1, DOU=M should be applied.\n* Note that DOL and DOU refer to the order in which the eigenvalues\n* are stored in W.\n* If the user wants to compute only selected eigenpairs, then\n* the columns DOL-1 to DOU+1 of the eigenvector space Z contain the\n* computed eigenvectors. All other columns of Z are set to zero.\n*\n* MINRGP (input) DOUBLE PRECISION\n*\n* RTOL1 (input) DOUBLE PRECISION\n* RTOL2 (input) DOUBLE PRECISION\n* Parameters for bisection.\n* An interval [LEFT,RIGHT] has converged if\n* RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) )\n*\n* W (input/output) DOUBLE PRECISION array, dimension (N)\n* The first M elements of W contain the APPROXIMATE eigenvalues for\n* which eigenvectors are to be computed. The eigenvalues\n* should be grouped by split-off block and ordered from\n* smallest to largest within the block ( The output array\n* W from DLARRE is expected here ). Furthermore, they are with\n* respect to the shift of the corresponding root representation\n* for their block. On exit, W holds the eigenvalues of the\n* UNshifted matrix.\n*\n* WERR (input/output) DOUBLE PRECISION array, dimension (N)\n* The first M elements contain the semiwidth of the uncertainty\n* interval of the corresponding eigenvalue in W\n*\n* WGAP (input/output) DOUBLE PRECISION array, dimension (N)\n* The separation from the right neighbor eigenvalue in W.\n*\n* IBLOCK (input) INTEGER array, dimension (N)\n* The indices of the blocks (submatrices) associated with the\n* corresponding eigenvalues in W; IBLOCK(i)=1 if eigenvalue\n* W(i) belongs to the first block from the top, =2 if W(i)\n* belongs to the second block, etc.\n*\n* INDEXW (input) INTEGER array, dimension (N)\n* The indices of the eigenvalues within each block (submatrix);\n* for example, INDEXW(i)= 10 and IBLOCK(i)=2 imply that the\n* i-th eigenvalue W(i) is the 10-th eigenvalue in the second block.\n*\n* GERS (input) DOUBLE PRECISION array, dimension (2*N)\n* The N Gerschgorin intervals (the i-th Gerschgorin interval\n* is (GERS(2*i-1), GERS(2*i)). The Gerschgorin intervals should\n* be computed from the original UNshifted matrix.\n*\n* Z (output) DOUBLE PRECISION array, dimension (LDZ, max(1,M) )\n* If INFO = 0, the first M columns of Z contain the\n* orthonormal eigenvectors of the matrix T\n* corresponding to the input eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER array, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The I-th eigenvector\n* is nonzero only in elements ISUPPZ( 2*I-1 ) through\n* ISUPPZ( 2*I ).\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (12*N)\n*\n* IWORK (workspace) INTEGER array, dimension (7*N)\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n*\n* > 0: A problem occured in DLARRV.\n* < 0: One of the called subroutines signaled an internal problem.\n* Needs inspection of the corresponding parameter IINFO\n* for further information.\n*\n* =-1: Problem in DLARRB when refining a child's eigenvalues.\n* =-2: Problem in DLARRF when computing the RRR of a child.\n* When a child is inside a tight cluster, it can be difficult\n* to find an RRR. A partial remedy from the user's point of\n* view is to make the parameter MINRGP smaller and recompile.\n* However, as the orthogonality of the computed vectors is\n* proportional to 1/MINRGP, the user should be aware that\n* he might be trading in precision when he decreases MINRGP.\n* =-3: Problem in DLARRB when refining a single eigenvalue\n* after the Rayleigh correction was rejected.\n* = 5: The Rayleigh Quotient Iteration failed to converge to\n* full accuracy in MAXITR steps.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Beresford Parlett, University of California, Berkeley, USA\n* Jim Demmel, University of California, Berkeley, USA\n* Inderjit Dhillon, University of Texas, Austin, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, University of California, Berkeley, USA\n*\n* =====================================================================\n*\n\n"); + printf("%s\n", "USAGE:\n z, isuppz, info, d, l, w, werr, wgap = NumRu::Lapack.dlarrv( vl, vu, d, l, pivmin, isplit, m, dol, dou, minrgp, rtol1, rtol2, w, werr, wgap, iblock, indexw, gers, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DLARRV( N, VL, VU, D, L, PIVMIN, ISPLIT, M, DOL, DOU, MINRGP, RTOL1, RTOL2, W, WERR, WGAP, IBLOCK, INDEXW, GERS, Z, LDZ, ISUPPZ, WORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* DLARRV computes the eigenvectors of the tridiagonal matrix\n* T = L D L^T given L, D and APPROXIMATIONS to the eigenvalues of L D L^T.\n* The input eigenvalues should have been computed by DLARRE.\n*\n\n* Arguments\n* =========\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* VL (input) DOUBLE PRECISION\n* VU (input) DOUBLE PRECISION\n* Lower and upper bounds of the interval that contains the desired\n* eigenvalues. VL < VU. Needed to compute gaps on the left or right\n* end of the extremal eigenvalues in the desired RANGE.\n*\n* D (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the N diagonal elements of the diagonal matrix D.\n* On exit, D may be overwritten.\n*\n* L (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the unit\n* bidiagonal matrix L are in elements 1 to N-1 of L\n* (if the matrix is not split.) At the end of each block\n* is stored the corresponding shift as given by DLARRE.\n* On exit, L is overwritten.\n*\n* PIVMIN (input) DOUBLE PRECISION\n* The minimum pivot allowed in the Sturm sequence.\n*\n* ISPLIT (input) INTEGER array, dimension (N)\n* The splitting points, at which T breaks up into blocks.\n* The first block consists of rows/columns 1 to\n* ISPLIT( 1 ), the second of rows/columns ISPLIT( 1 )+1\n* through ISPLIT( 2 ), etc.\n*\n* M (input) INTEGER\n* The total number of input eigenvalues. 0 <= M <= N.\n*\n* DOL (input) INTEGER\n* DOU (input) INTEGER\n* If the user wants to compute only selected eigenvectors from all\n* the eigenvalues supplied, he can specify an index range DOL:DOU.\n* Or else the setting DOL=1, DOU=M should be applied.\n* Note that DOL and DOU refer to the order in which the eigenvalues\n* are stored in W.\n* If the user wants to compute only selected eigenpairs, then\n* the columns DOL-1 to DOU+1 of the eigenvector space Z contain the\n* computed eigenvectors. All other columns of Z are set to zero.\n*\n* MINRGP (input) DOUBLE PRECISION\n*\n* RTOL1 (input) DOUBLE PRECISION\n* RTOL2 (input) DOUBLE PRECISION\n* Parameters for bisection.\n* An interval [LEFT,RIGHT] has converged if\n* RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) )\n*\n* W (input/output) DOUBLE PRECISION array, dimension (N)\n* The first M elements of W contain the APPROXIMATE eigenvalues for\n* which eigenvectors are to be computed. The eigenvalues\n* should be grouped by split-off block and ordered from\n* smallest to largest within the block ( The output array\n* W from DLARRE is expected here ). Furthermore, they are with\n* respect to the shift of the corresponding root representation\n* for their block. On exit, W holds the eigenvalues of the\n* UNshifted matrix.\n*\n* WERR (input/output) DOUBLE PRECISION array, dimension (N)\n* The first M elements contain the semiwidth of the uncertainty\n* interval of the corresponding eigenvalue in W\n*\n* WGAP (input/output) DOUBLE PRECISION array, dimension (N)\n* The separation from the right neighbor eigenvalue in W.\n*\n* IBLOCK (input) INTEGER array, dimension (N)\n* The indices of the blocks (submatrices) associated with the\n* corresponding eigenvalues in W; IBLOCK(i)=1 if eigenvalue\n* W(i) belongs to the first block from the top, =2 if W(i)\n* belongs to the second block, etc.\n*\n* INDEXW (input) INTEGER array, dimension (N)\n* The indices of the eigenvalues within each block (submatrix);\n* for example, INDEXW(i)= 10 and IBLOCK(i)=2 imply that the\n* i-th eigenvalue W(i) is the 10-th eigenvalue in the second block.\n*\n* GERS (input) DOUBLE PRECISION array, dimension (2*N)\n* The N Gerschgorin intervals (the i-th Gerschgorin interval\n* is (GERS(2*i-1), GERS(2*i)). The Gerschgorin intervals should\n* be computed from the original UNshifted matrix.\n*\n* Z (output) DOUBLE PRECISION array, dimension (LDZ, max(1,M) )\n* If INFO = 0, the first M columns of Z contain the\n* orthonormal eigenvectors of the matrix T\n* corresponding to the input eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER array, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The I-th eigenvector\n* is nonzero only in elements ISUPPZ( 2*I-1 ) through\n* ISUPPZ( 2*I ).\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (12*N)\n*\n* IWORK (workspace) INTEGER array, dimension (7*N)\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n*\n* > 0: A problem occurred in DLARRV.\n* < 0: One of the called subroutines signaled an internal problem.\n* Needs inspection of the corresponding parameter IINFO\n* for further information.\n*\n* =-1: Problem in DLARRB when refining a child's eigenvalues.\n* =-2: Problem in DLARRF when computing the RRR of a child.\n* When a child is inside a tight cluster, it can be difficult\n* to find an RRR. A partial remedy from the user's point of\n* view is to make the parameter MINRGP smaller and recompile.\n* However, as the orthogonality of the computed vectors is\n* proportional to 1/MINRGP, the user should be aware that\n* he might be trading in precision when he decreases MINRGP.\n* =-3: Problem in DLARRB when refining a single eigenvalue\n* after the Rayleigh correction was rejected.\n* = 5: The Rayleigh Quotient Iteration failed to converge to\n* full accuracy in MAXITR steps.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Beresford Parlett, University of California, Berkeley, USA\n* Jim Demmel, University of California, Berkeley, USA\n* Inderjit Dhillon, University of Texas, Austin, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, University of California, Berkeley, USA\n*\n* =====================================================================\n*\n\n"); return Qnil; } if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/ext/dlarscl2.c ruby-lapack-1.8.1/ext/dlarscl2.c --- ruby-lapack-1.7.2/ext/dlarscl2.c 2015-03-18 06:58:23.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dlarscl2.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_dlarscl2(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_d; doublereal *d; VALUE rblapack_x; @@ -70,6 +71,9 @@ dlarscl2_(&m, &n, d, x, &ldx); return rblapack_x; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/dlascl2.c ruby-lapack-1.8.1/ext/dlascl2.c --- ruby-lapack-1.7.2/ext/dlascl2.c 2015-03-18 06:58:19.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dlascl2.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_dlascl2(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_d; doublereal *d; VALUE rblapack_x; @@ -70,6 +71,9 @@ dlascl2_(&m, &n, d, x, &ldx); return rblapack_x; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/dlasdq.c ruby-lapack-1.8.1/ext/dlasdq.c --- ruby-lapack-1.7.2/ext/dlasdq.c 2015-03-18 06:58:23.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dlasdq.c 2018-03-08 07:50:28.000000000 +0000 @@ -47,7 +47,7 @@ argc--; rblapack_options = argv[argc]; if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { - printf("%s\n", "USAGE:\n info, d, e, vt, u, c = NumRu::Lapack.dlasdq( uplo, sqre, nru, d, e, vt, u, c, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DLASDQ( UPLO, SQRE, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, LDU, C, LDC, WORK, INFO )\n\n* Purpose\n* =======\n*\n* DLASDQ computes the singular value decomposition (SVD) of a real\n* (upper or lower) bidiagonal matrix with diagonal D and offdiagonal\n* E, accumulating the transformations if desired. Letting B denote\n* the input bidiagonal matrix, the algorithm computes orthogonal\n* matrices Q and P such that B = Q * S * P' (P' denotes the transpose\n* of P). The singular values S are overwritten on D.\n*\n* The input matrix U is changed to U * Q if desired.\n* The input matrix VT is changed to P' * VT if desired.\n* The input matrix C is changed to Q' * C if desired.\n*\n* See \"Computing Small Singular Values of Bidiagonal Matrices With\n* Guaranteed High Relative Accuracy,\" by J. Demmel and W. Kahan,\n* LAPACK Working Note #3, for a detailed description of the algorithm.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* On entry, UPLO specifies whether the input bidiagonal matrix\n* is upper or lower bidiagonal, and wether it is square are\n* not.\n* UPLO = 'U' or 'u' B is upper bidiagonal.\n* UPLO = 'L' or 'l' B is lower bidiagonal.\n*\n* SQRE (input) INTEGER\n* = 0: then the input matrix is N-by-N.\n* = 1: then the input matrix is N-by-(N+1) if UPLU = 'U' and\n* (N+1)-by-N if UPLU = 'L'.\n*\n* The bidiagonal matrix has\n* N = NL + NR + 1 rows and\n* M = N + SQRE >= N columns.\n*\n* N (input) INTEGER\n* On entry, N specifies the number of rows and columns\n* in the matrix. N must be at least 0.\n*\n* NCVT (input) INTEGER\n* On entry, NCVT specifies the number of columns of\n* the matrix VT. NCVT must be at least 0.\n*\n* NRU (input) INTEGER\n* On entry, NRU specifies the number of rows of\n* the matrix U. NRU must be at least 0.\n*\n* NCC (input) INTEGER\n* On entry, NCC specifies the number of columns of\n* the matrix C. NCC must be at least 0.\n*\n* D (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, D contains the diagonal entries of the\n* bidiagonal matrix whose SVD is desired. On normal exit,\n* D contains the singular values in ascending order.\n*\n* E (input/output) DOUBLE PRECISION array.\n* dimension is (N-1) if SQRE = 0 and N if SQRE = 1.\n* On entry, the entries of E contain the offdiagonal entries\n* of the bidiagonal matrix whose SVD is desired. On normal\n* exit, E will contain 0. If the algorithm does not converge,\n* D and E will contain the diagonal and superdiagonal entries\n* of a bidiagonal matrix orthogonally equivalent to the one\n* given as input.\n*\n* VT (input/output) DOUBLE PRECISION array, dimension (LDVT, NCVT)\n* On entry, contains a matrix which on exit has been\n* premultiplied by P', dimension N-by-NCVT if SQRE = 0\n* and (N+1)-by-NCVT if SQRE = 1 (not referenced if NCVT=0).\n*\n* LDVT (input) INTEGER\n* On entry, LDVT specifies the leading dimension of VT as\n* declared in the calling (sub) program. LDVT must be at\n* least 1. If NCVT is nonzero LDVT must also be at least N.\n*\n* U (input/output) DOUBLE PRECISION array, dimension (LDU, N)\n* On entry, contains a matrix which on exit has been\n* postmultiplied by Q, dimension NRU-by-N if SQRE = 0\n* and NRU-by-(N+1) if SQRE = 1 (not referenced if NRU=0).\n*\n* LDU (input) INTEGER\n* On entry, LDU specifies the leading dimension of U as\n* declared in the calling (sub) program. LDU must be at\n* least max( 1, NRU ) .\n*\n* C (input/output) DOUBLE PRECISION array, dimension (LDC, NCC)\n* On entry, contains an N-by-NCC matrix which on exit\n* has been premultiplied by Q' dimension N-by-NCC if SQRE = 0\n* and (N+1)-by-NCC if SQRE = 1 (not referenced if NCC=0).\n*\n* LDC (input) INTEGER\n* On entry, LDC specifies the leading dimension of C as\n* declared in the calling (sub) program. LDC must be at\n* least 1. If NCC is nonzero, LDC must also be at least N.\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (4*N)\n* Workspace. Only referenced if one of NCVT, NRU, or NCC is\n* nonzero, and if N is at least 2.\n*\n* INFO (output) INTEGER\n* On exit, a value of 0 indicates a successful exit.\n* If INFO < 0, argument number -INFO is illegal.\n* If INFO > 0, the algorithm did not converge, and INFO\n* specifies how many superdiagonals did not converge.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Ming Gu and Huan Ren, Computer Science Division, University of\n* California at Berkeley, USA\n*\n* =====================================================================\n*\n\n"); + printf("%s\n", "USAGE:\n info, d, e, vt, u, c = NumRu::Lapack.dlasdq( uplo, sqre, nru, d, e, vt, u, c, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DLASDQ( UPLO, SQRE, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, LDU, C, LDC, WORK, INFO )\n\n* Purpose\n* =======\n*\n* DLASDQ computes the singular value decomposition (SVD) of a real\n* (upper or lower) bidiagonal matrix with diagonal D and offdiagonal\n* E, accumulating the transformations if desired. Letting B denote\n* the input bidiagonal matrix, the algorithm computes orthogonal\n* matrices Q and P such that B = Q * S * P' (P' denotes the transpose\n* of P). The singular values S are overwritten on D.\n*\n* The input matrix U is changed to U * Q if desired.\n* The input matrix VT is changed to P' * VT if desired.\n* The input matrix C is changed to Q' * C if desired.\n*\n* See \"Computing Small Singular Values of Bidiagonal Matrices With\n* Guaranteed High Relative Accuracy,\" by J. Demmel and W. Kahan,\n* LAPACK Working Note #3, for a detailed description of the algorithm.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* On entry, UPLO specifies whether the input bidiagonal matrix\n* is upper or lower bidiagonal, and whether it is square are\n* not.\n* UPLO = 'U' or 'u' B is upper bidiagonal.\n* UPLO = 'L' or 'l' B is lower bidiagonal.\n*\n* SQRE (input) INTEGER\n* = 0: then the input matrix is N-by-N.\n* = 1: then the input matrix is N-by-(N+1) if UPLU = 'U' and\n* (N+1)-by-N if UPLU = 'L'.\n*\n* The bidiagonal matrix has\n* N = NL + NR + 1 rows and\n* M = N + SQRE >= N columns.\n*\n* N (input) INTEGER\n* On entry, N specifies the number of rows and columns\n* in the matrix. N must be at least 0.\n*\n* NCVT (input) INTEGER\n* On entry, NCVT specifies the number of columns of\n* the matrix VT. NCVT must be at least 0.\n*\n* NRU (input) INTEGER\n* On entry, NRU specifies the number of rows of\n* the matrix U. NRU must be at least 0.\n*\n* NCC (input) INTEGER\n* On entry, NCC specifies the number of columns of\n* the matrix C. NCC must be at least 0.\n*\n* D (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, D contains the diagonal entries of the\n* bidiagonal matrix whose SVD is desired. On normal exit,\n* D contains the singular values in ascending order.\n*\n* E (input/output) DOUBLE PRECISION array.\n* dimension is (N-1) if SQRE = 0 and N if SQRE = 1.\n* On entry, the entries of E contain the offdiagonal entries\n* of the bidiagonal matrix whose SVD is desired. On normal\n* exit, E will contain 0. If the algorithm does not converge,\n* D and E will contain the diagonal and superdiagonal entries\n* of a bidiagonal matrix orthogonally equivalent to the one\n* given as input.\n*\n* VT (input/output) DOUBLE PRECISION array, dimension (LDVT, NCVT)\n* On entry, contains a matrix which on exit has been\n* premultiplied by P', dimension N-by-NCVT if SQRE = 0\n* and (N+1)-by-NCVT if SQRE = 1 (not referenced if NCVT=0).\n*\n* LDVT (input) INTEGER\n* On entry, LDVT specifies the leading dimension of VT as\n* declared in the calling (sub) program. LDVT must be at\n* least 1. If NCVT is nonzero LDVT must also be at least N.\n*\n* U (input/output) DOUBLE PRECISION array, dimension (LDU, N)\n* On entry, contains a matrix which on exit has been\n* postmultiplied by Q, dimension NRU-by-N if SQRE = 0\n* and NRU-by-(N+1) if SQRE = 1 (not referenced if NRU=0).\n*\n* LDU (input) INTEGER\n* On entry, LDU specifies the leading dimension of U as\n* declared in the calling (sub) program. LDU must be at\n* least max( 1, NRU ) .\n*\n* C (input/output) DOUBLE PRECISION array, dimension (LDC, NCC)\n* On entry, contains an N-by-NCC matrix which on exit\n* has been premultiplied by Q' dimension N-by-NCC if SQRE = 0\n* and (N+1)-by-NCC if SQRE = 1 (not referenced if NCC=0).\n*\n* LDC (input) INTEGER\n* On entry, LDC specifies the leading dimension of C as\n* declared in the calling (sub) program. LDC must be at\n* least 1. If NCC is nonzero, LDC must also be at least N.\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (4*N)\n* Workspace. Only referenced if one of NCVT, NRU, or NCC is\n* nonzero, and if N is at least 2.\n*\n* INFO (output) INTEGER\n* On exit, a value of 0 indicates a successful exit.\n* If INFO < 0, argument number -INFO is illegal.\n* If INFO > 0, the algorithm did not converge, and INFO\n* specifies how many superdiagonals did not converge.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Ming Gu and Huan Ren, Computer Science Division, University of\n* California at Berkeley, USA\n*\n* =====================================================================\n*\n\n"); return Qnil; } if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/ext/dla_syamv.c ruby-lapack-1.8.1/ext/dla_syamv.c --- ruby-lapack-1.7.2/ext/dla_syamv.c 2015-03-18 06:58:25.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dla_syamv.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_dla_syamv(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; integer uplo; VALUE rblapack_alpha; @@ -101,6 +102,9 @@ dla_syamv_(&uplo, &n, &alpha, a, &lda, x, &incx, &beta, y, &incy); return rblapack_y; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/dla_syrcond.c ruby-lapack-1.8.1/ext/dla_syrcond.c --- ruby-lapack-1.7.2/ext/dla_syrcond.c 2015-03-18 06:58:29.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dla_syrcond.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_dla_syrcond(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_a; @@ -122,6 +123,9 @@ rblapack_info = INT2NUM(info); rblapack___out__ = rb_float_new((double)__out__); return rb_ary_new3(2, rblapack_info, rblapack___out__); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/dla_syrfsx_extended.c ruby-lapack-1.8.1/ext/dla_syrfsx_extended.c --- ruby-lapack-1.7.2/ext/dla_syrfsx_extended.c 2015-03-18 06:58:20.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dla_syrfsx_extended.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_dla_syrfsx_extended(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_prec_type; integer prec_type; VALUE rblapack_uplo; @@ -271,6 +272,9 @@ rblapack_info = INT2NUM(info); return rb_ary_new3(5, rblapack_berr_out, rblapack_info, rblapack_y, rblapack_err_bnds_norm, rblapack_err_bnds_comp); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/dla_syrpvgrw.c ruby-lapack-1.8.1/ext/dla_syrpvgrw.c --- ruby-lapack-1.7.2/ext/dla_syrpvgrw.c 2015-03-18 06:58:21.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dla_syrpvgrw.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_dla_syrpvgrw(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_info; @@ -95,6 +96,9 @@ rblapack___out__ = rb_float_new((double)__out__); return rblapack___out__; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/dlat2s.c ruby-lapack-1.8.1/ext/dlat2s.c --- ruby-lapack-1.7.2/ext/dlat2s.c 2015-03-18 06:58:30.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dlat2s.c 2018-03-08 07:50:28.000000000 +0000 @@ -23,7 +23,7 @@ argc--; rblapack_options = argv[argc]; if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { - printf("%s\n", "USAGE:\n sa, info = NumRu::Lapack.dlat2s( uplo, a, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DLAT2S( UPLO, N, A, LDA, SA, LDSA, INFO )\n\n* Purpose\n* =======\n*\n* DLAT2S converts a DOUBLE PRECISION triangular matrix, SA, to a SINGLE\n* PRECISION triangular matrix, A.\n*\n* RMAX is the overflow for the SINGLE PRECISION arithmetic\n* DLAS2S checks that all the entries of A are between -RMAX and\n* RMAX. If not the convertion is aborted and a flag is raised.\n*\n* This is an auxiliary routine so there is no argument checking.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* = 'U': A is upper triangular;\n* = 'L': A is lower triangular.\n*\n* N (input) INTEGER\n* The number of rows and columns of the matrix A. N >= 0.\n*\n* A (input) DOUBLE PRECISION array, dimension (LDA,N)\n* On entry, the N-by-N triangular coefficient matrix A.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* SA (output) REAL array, dimension (LDSA,N)\n* Only the UPLO part of SA is referenced. On exit, if INFO=0,\n* the N-by-N coefficient matrix SA; if INFO>0, the content of\n* the UPLO part of SA is unspecified.\n*\n* LDSA (input) INTEGER\n* The leading dimension of the array SA. LDSA >= max(1,M).\n*\n* INFO (output) INTEGER\n* = 0: successful exit.\n* = 1: an entry of the matrix A is greater than the SINGLE\n* PRECISION overflow threshold, in this case, the content\n* of the UPLO part of SA in exit is unspecified.\n*\n* =========\n*\n* .. Local Scalars ..\n INTEGER I, J\n DOUBLE PRECISION RMAX\n LOGICAL UPPER\n* ..\n* .. External Functions ..\n REAL SLAMCH\n LOGICAL LSAME\n EXTERNAL SLAMCH, LSAME\n* ..\n\n"); + printf("%s\n", "USAGE:\n sa, info = NumRu::Lapack.dlat2s( uplo, a, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DLAT2S( UPLO, N, A, LDA, SA, LDSA, INFO )\n\n* Purpose\n* =======\n*\n* DLAT2S converts a DOUBLE PRECISION triangular matrix, SA, to a SINGLE\n* PRECISION triangular matrix, A.\n*\n* RMAX is the overflow for the SINGLE PRECISION arithmetic\n* DLAS2S checks that all the entries of A are between -RMAX and\n* RMAX. If not the conversion is aborted and a flag is raised.\n*\n* This is an auxiliary routine so there is no argument checking.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* = 'U': A is upper triangular;\n* = 'L': A is lower triangular.\n*\n* N (input) INTEGER\n* The number of rows and columns of the matrix A. N >= 0.\n*\n* A (input) DOUBLE PRECISION array, dimension (LDA,N)\n* On entry, the N-by-N triangular coefficient matrix A.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* SA (output) REAL array, dimension (LDSA,N)\n* Only the UPLO part of SA is referenced. On exit, if INFO=0,\n* the N-by-N coefficient matrix SA; if INFO>0, the content of\n* the UPLO part of SA is unspecified.\n*\n* LDSA (input) INTEGER\n* The leading dimension of the array SA. LDSA >= max(1,M).\n*\n* INFO (output) INTEGER\n* = 0: successful exit.\n* = 1: an entry of the matrix A is greater than the SINGLE\n* PRECISION overflow threshold, in this case, the content\n* of the UPLO part of SA in exit is unspecified.\n*\n* =========\n*\n* .. Local Scalars ..\n INTEGER I, J\n DOUBLE PRECISION RMAX\n LOGICAL UPPER\n* ..\n* .. External Functions ..\n REAL SLAMCH\n LOGICAL LSAME\n EXTERNAL SLAMCH, LSAME\n* ..\n\n"); return Qnil; } if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/ext/dlatdf.c ruby-lapack-1.8.1/ext/dlatdf.c --- ruby-lapack-1.7.2/ext/dlatdf.c 2015-03-18 06:58:29.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dlatdf.c 2018-03-08 07:50:28.000000000 +0000 @@ -30,7 +30,7 @@ argc--; rblapack_options = argv[argc]; if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { - printf("%s\n", "USAGE:\n rhs, rdsum, rdscal = NumRu::Lapack.dlatdf( ijob, z, rhs, rdsum, rdscal, ipiv, jpiv, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DLATDF( IJOB, N, Z, LDZ, RHS, RDSUM, RDSCAL, IPIV, JPIV )\n\n* Purpose\n* =======\n*\n* DLATDF uses the LU factorization of the n-by-n matrix Z computed by\n* DGETC2 and computes a contribution to the reciprocal Dif-estimate\n* by solving Z * x = b for x, and choosing the r.h.s. b such that\n* the norm of x is as large as possible. On entry RHS = b holds the\n* contribution from earlier solved sub-systems, and on return RHS = x.\n*\n* The factorization of Z returned by DGETC2 has the form Z = P*L*U*Q,\n* where P and Q are permutation matrices. L is lower triangular with\n* unit diagonal elements and U is upper triangular.\n*\n\n* Arguments\n* =========\n*\n* IJOB (input) INTEGER\n* IJOB = 2: First compute an approximative null-vector e\n* of Z using DGECON, e is normalized and solve for\n* Zx = +-e - f with the sign giving the greater value\n* of 2-norm(x). About 5 times as expensive as Default.\n* IJOB .ne. 2: Local look ahead strategy where all entries of\n* the r.h.s. b is choosen as either +1 or -1 (Default).\n*\n* N (input) INTEGER\n* The number of columns of the matrix Z.\n*\n* Z (input) DOUBLE PRECISION array, dimension (LDZ, N)\n* On entry, the LU part of the factorization of the n-by-n\n* matrix Z computed by DGETC2: Z = P * L * U * Q\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDA >= max(1, N).\n*\n* RHS (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, RHS contains contributions from other subsystems.\n* On exit, RHS contains the solution of the subsystem with\n* entries acoording to the value of IJOB (see above).\n*\n* RDSUM (input/output) DOUBLE PRECISION\n* On entry, the sum of squares of computed contributions to\n* the Dif-estimate under computation by DTGSYL, where the\n* scaling factor RDSCAL (see below) has been factored out.\n* On exit, the corresponding sum of squares updated with the\n* contributions from the current sub-system.\n* If TRANS = 'T' RDSUM is not touched.\n* NOTE: RDSUM only makes sense when DTGSY2 is called by STGSYL.\n*\n* RDSCAL (input/output) DOUBLE PRECISION\n* On entry, scaling factor used to prevent overflow in RDSUM.\n* On exit, RDSCAL is updated w.r.t. the current contributions\n* in RDSUM.\n* If TRANS = 'T', RDSCAL is not touched.\n* NOTE: RDSCAL only makes sense when DTGSY2 is called by\n* DTGSYL.\n*\n* IPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= i <= N, row i of the\n* matrix has been interchanged with row IPIV(i).\n*\n* JPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= j <= N, column j of the\n* matrix has been interchanged with column JPIV(j).\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Bo Kagstrom and Peter Poromaa, Department of Computing Science,\n* Umea University, S-901 87 Umea, Sweden.\n*\n* This routine is a further developed implementation of algorithm\n* BSOLVE in [1] using complete pivoting in the LU factorization.\n*\n* [1] Bo Kagstrom and Lars Westin,\n* Generalized Schur Methods with Condition Estimators for\n* Solving the Generalized Sylvester Equation, IEEE Transactions\n* on Automatic Control, Vol. 34, No. 7, July 1989, pp 745-751.\n*\n* [2] Peter Poromaa,\n* On Efficient and Robust Estimators for the Separation\n* between two Regular Matrix Pairs with Applications in\n* Condition Estimation. Report IMINF-95.05, Departement of\n* Computing Science, Umea University, S-901 87 Umea, Sweden, 1995.\n*\n* =====================================================================\n*\n\n"); + printf("%s\n", "USAGE:\n rhs, rdsum, rdscal = NumRu::Lapack.dlatdf( ijob, z, rhs, rdsum, rdscal, ipiv, jpiv, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DLATDF( IJOB, N, Z, LDZ, RHS, RDSUM, RDSCAL, IPIV, JPIV )\n\n* Purpose\n* =======\n*\n* DLATDF uses the LU factorization of the n-by-n matrix Z computed by\n* DGETC2 and computes a contribution to the reciprocal Dif-estimate\n* by solving Z * x = b for x, and choosing the r.h.s. b such that\n* the norm of x is as large as possible. On entry RHS = b holds the\n* contribution from earlier solved sub-systems, and on return RHS = x.\n*\n* The factorization of Z returned by DGETC2 has the form Z = P*L*U*Q,\n* where P and Q are permutation matrices. L is lower triangular with\n* unit diagonal elements and U is upper triangular.\n*\n\n* Arguments\n* =========\n*\n* IJOB (input) INTEGER\n* IJOB = 2: First compute an approximative null-vector e\n* of Z using DGECON, e is normalized and solve for\n* Zx = +-e - f with the sign giving the greater value\n* of 2-norm(x). About 5 times as expensive as Default.\n* IJOB .ne. 2: Local look ahead strategy where all entries of\n* the r.h.s. b is chosen as either +1 or -1 (Default).\n*\n* N (input) INTEGER\n* The number of columns of the matrix Z.\n*\n* Z (input) DOUBLE PRECISION array, dimension (LDZ, N)\n* On entry, the LU part of the factorization of the n-by-n\n* matrix Z computed by DGETC2: Z = P * L * U * Q\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDA >= max(1, N).\n*\n* RHS (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, RHS contains contributions from other subsystems.\n* On exit, RHS contains the solution of the subsystem with\n* entries acoording to the value of IJOB (see above).\n*\n* RDSUM (input/output) DOUBLE PRECISION\n* On entry, the sum of squares of computed contributions to\n* the Dif-estimate under computation by DTGSYL, where the\n* scaling factor RDSCAL (see below) has been factored out.\n* On exit, the corresponding sum of squares updated with the\n* contributions from the current sub-system.\n* If TRANS = 'T' RDSUM is not touched.\n* NOTE: RDSUM only makes sense when DTGSY2 is called by STGSYL.\n*\n* RDSCAL (input/output) DOUBLE PRECISION\n* On entry, scaling factor used to prevent overflow in RDSUM.\n* On exit, RDSCAL is updated w.r.t. the current contributions\n* in RDSUM.\n* If TRANS = 'T', RDSCAL is not touched.\n* NOTE: RDSCAL only makes sense when DTGSY2 is called by\n* DTGSYL.\n*\n* IPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= i <= N, row i of the\n* matrix has been interchanged with row IPIV(i).\n*\n* JPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= j <= N, column j of the\n* matrix has been interchanged with column JPIV(j).\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Bo Kagstrom and Peter Poromaa, Department of Computing Science,\n* Umea University, S-901 87 Umea, Sweden.\n*\n* This routine is a further developed implementation of algorithm\n* BSOLVE in [1] using complete pivoting in the LU factorization.\n*\n* [1] Bo Kagstrom and Lars Westin,\n* Generalized Schur Methods with Condition Estimators for\n* Solving the Generalized Sylvester Equation, IEEE Transactions\n* on Automatic Control, Vol. 34, No. 7, July 1989, pp 745-751.\n*\n* [2] Peter Poromaa,\n* On Efficient and Robust Estimators for the Separation\n* between two Regular Matrix Pairs with Applications in\n* Condition Estimation. Report IMINF-95.05, Departement of\n* Computing Science, Umea University, S-901 87 Umea, Sweden, 1995.\n*\n* =====================================================================\n*\n\n"); return Qnil; } if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/ext/dla_wwaddw.c ruby-lapack-1.8.1/ext/dla_wwaddw.c --- ruby-lapack-1.7.2/ext/dla_wwaddw.c 2015-03-18 06:58:26.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dla_wwaddw.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_dla_wwaddw(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_x; doublereal *x; VALUE rblapack_y; @@ -90,6 +91,9 @@ dla_wwaddw_(&n, x, y, w); return rb_ary_new3(2, rblapack_x, rblapack_y); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/dporfsx.c ruby-lapack-1.8.1/ext/dporfsx.c --- ruby-lapack-1.7.2/ext/dporfsx.c 2015-03-18 06:58:26.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dporfsx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_dporfsx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_equed; @@ -194,6 +195,9 @@ rblapack_rcond = rb_float_new((double)rcond); rblapack_info = INT2NUM(info); return rb_ary_new3(8, rblapack_rcond, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_s, rblapack_x, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/dposvxx.c ruby-lapack-1.8.1/ext/dposvxx.c --- ruby-lapack-1.7.2/ext/dposvxx.c 2015-03-18 06:58:27.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dposvxx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_dposvxx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_fact; char fact; VALUE rblapack_uplo; @@ -223,6 +224,9 @@ rblapack_info = INT2NUM(info); rblapack_equed = rb_str_new(&equed,1); return rb_ary_new3(13, rblapack_x, rblapack_rcond, rblapack_rpvgrw, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_a, rblapack_af, rblapack_equed, rblapack_s, rblapack_b, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/dsgesv.c ruby-lapack-1.8.1/ext/dsgesv.c --- ruby-lapack-1.7.2/ext/dsgesv.c 2015-03-18 06:58:30.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dsgesv.c 2018-03-08 07:50:28.000000000 +0000 @@ -33,7 +33,7 @@ argc--; rblapack_options = argv[argc]; if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { - printf("%s\n", "USAGE:\n ipiv, x, iter, info, a = NumRu::Lapack.dsgesv( a, b, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DSGESV( N, NRHS, A, LDA, IPIV, B, LDB, X, LDX, WORK, SWORK, ITER, INFO )\n\n* Purpose\n* =======\n*\n* DSGESV computes the solution to a real system of linear equations\n* A * X = B,\n* where A is an N-by-N matrix and X and B are N-by-NRHS matrices.\n*\n* DSGESV first attempts to factorize the matrix in SINGLE PRECISION\n* and use this factorization within an iterative refinement procedure\n* to produce a solution with DOUBLE PRECISION normwise backward error\n* quality (see below). If the approach fails the method switches to a\n* DOUBLE PRECISION factorization and solve.\n*\n* The iterative refinement is not going to be a winning strategy if\n* the ratio SINGLE PRECISION performance over DOUBLE PRECISION\n* performance is too small. A reasonable strategy should take the\n* number of right-hand sides and the size of the matrix into account.\n* This might be done with a call to ILAENV in the future. Up to now, we\n* always try iterative refinement.\n*\n* The iterative refinement process is stopped if\n* ITER > ITERMAX\n* or for all the RHS we have:\n* RNRM < SQRT(N)*XNRM*ANRM*EPS*BWDMAX\n* where\n* o ITER is the number of the current iteration in the iterative\n* refinement process\n* o RNRM is the infinity-norm of the residual\n* o XNRM is the infinity-norm of the solution\n* o ANRM is the infinity-operator-norm of the matrix A\n* o EPS is the machine epsilon returned by DLAMCH('Epsilon')\n* The value ITERMAX and BWDMAX are fixed to 30 and 1.0D+00\n* respectively.\n*\n\n* Arguments\n* =========\n*\n* N (input) INTEGER\n* The number of linear equations, i.e., the order of the\n* matrix A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrix B. NRHS >= 0.\n*\n* A (input/output) DOUBLE PRECISION array,\n* dimension (LDA,N)\n* On entry, the N-by-N coefficient matrix A.\n* On exit, if iterative refinement has been successfully used\n* (INFO.EQ.0 and ITER.GE.0, see description below), then A is\n* unchanged, if double precision factorization has been used\n* (INFO.EQ.0 and ITER.LT.0, see description below), then the\n* array A contains the factors L and U from the factorization\n* A = P*L*U; the unit diagonal elements of L are not stored.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* IPIV (output) INTEGER array, dimension (N)\n* The pivot indices that define the permutation matrix P;\n* row i of the matrix was interchanged with row IPIV(i).\n* Corresponds either to the single precision factorization\n* (if INFO.EQ.0 and ITER.GE.0) or the double precision\n* factorization (if INFO.EQ.0 and ITER.LT.0).\n*\n* B (input) DOUBLE PRECISION array, dimension (LDB,NRHS)\n* The N-by-NRHS right hand side matrix B.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,N).\n*\n* X (output) DOUBLE PRECISION array, dimension (LDX,NRHS)\n* If INFO = 0, the N-by-NRHS solution matrix X.\n*\n* LDX (input) INTEGER\n* The leading dimension of the array X. LDX >= max(1,N).\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (N,NRHS)\n* This array is used to hold the residual vectors.\n*\n* SWORK (workspace) REAL array, dimension (N*(N+NRHS))\n* This array is used to use the single precision matrix and the\n* right-hand sides or solutions in single precision.\n*\n* ITER (output) INTEGER\n* < 0: iterative refinement has failed, double precision\n* factorization has been performed\n* -1 : the routine fell back to full precision for\n* implementation- or machine-specific reasons\n* -2 : narrowing the precision induced an overflow,\n* the routine fell back to full precision\n* -3 : failure of SGETRF\n* -31: stop the iterative refinement after the 30th\n* iterations\n* > 0: iterative refinement has been sucessfully used.\n* Returns the number of iterations\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = i, U(i,i) computed in DOUBLE PRECISION is\n* exactly zero. The factorization has been completed,\n* but the factor U is exactly singular, so the solution\n* could not be computed.\n*\n* =========\n*\n\n"); + printf("%s\n", "USAGE:\n ipiv, x, iter, info, a = NumRu::Lapack.dsgesv( a, b, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DSGESV( N, NRHS, A, LDA, IPIV, B, LDB, X, LDX, WORK, SWORK, ITER, INFO )\n\n* Purpose\n* =======\n*\n* DSGESV computes the solution to a real system of linear equations\n* A * X = B,\n* where A is an N-by-N matrix and X and B are N-by-NRHS matrices.\n*\n* DSGESV first attempts to factorize the matrix in SINGLE PRECISION\n* and use this factorization within an iterative refinement procedure\n* to produce a solution with DOUBLE PRECISION normwise backward error\n* quality (see below). If the approach fails the method switches to a\n* DOUBLE PRECISION factorization and solve.\n*\n* The iterative refinement is not going to be a winning strategy if\n* the ratio SINGLE PRECISION performance over DOUBLE PRECISION\n* performance is too small. A reasonable strategy should take the\n* number of right-hand sides and the size of the matrix into account.\n* This might be done with a call to ILAENV in the future. Up to now, we\n* always try iterative refinement.\n*\n* The iterative refinement process is stopped if\n* ITER > ITERMAX\n* or for all the RHS we have:\n* RNRM < SQRT(N)*XNRM*ANRM*EPS*BWDMAX\n* where\n* o ITER is the number of the current iteration in the iterative\n* refinement process\n* o RNRM is the infinity-norm of the residual\n* o XNRM is the infinity-norm of the solution\n* o ANRM is the infinity-operator-norm of the matrix A\n* o EPS is the machine epsilon returned by DLAMCH('Epsilon')\n* The value ITERMAX and BWDMAX are fixed to 30 and 1.0D+00\n* respectively.\n*\n\n* Arguments\n* =========\n*\n* N (input) INTEGER\n* The number of linear equations, i.e., the order of the\n* matrix A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrix B. NRHS >= 0.\n*\n* A (input/output) DOUBLE PRECISION array,\n* dimension (LDA,N)\n* On entry, the N-by-N coefficient matrix A.\n* On exit, if iterative refinement has been successfully used\n* (INFO.EQ.0 and ITER.GE.0, see description below), then A is\n* unchanged, if double precision factorization has been used\n* (INFO.EQ.0 and ITER.LT.0, see description below), then the\n* array A contains the factors L and U from the factorization\n* A = P*L*U; the unit diagonal elements of L are not stored.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* IPIV (output) INTEGER array, dimension (N)\n* The pivot indices that define the permutation matrix P;\n* row i of the matrix was interchanged with row IPIV(i).\n* Corresponds either to the single precision factorization\n* (if INFO.EQ.0 and ITER.GE.0) or the double precision\n* factorization (if INFO.EQ.0 and ITER.LT.0).\n*\n* B (input) DOUBLE PRECISION array, dimension (LDB,NRHS)\n* The N-by-NRHS right hand side matrix B.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,N).\n*\n* X (output) DOUBLE PRECISION array, dimension (LDX,NRHS)\n* If INFO = 0, the N-by-NRHS solution matrix X.\n*\n* LDX (input) INTEGER\n* The leading dimension of the array X. LDX >= max(1,N).\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (N,NRHS)\n* This array is used to hold the residual vectors.\n*\n* SWORK (workspace) REAL array, dimension (N*(N+NRHS))\n* This array is used to use the single precision matrix and the\n* right-hand sides or solutions in single precision.\n*\n* ITER (output) INTEGER\n* < 0: iterative refinement has failed, double precision\n* factorization has been performed\n* -1 : the routine fell back to full precision for\n* implementation- or machine-specific reasons\n* -2 : narrowing the precision induced an overflow,\n* the routine fell back to full precision\n* -3 : failure of SGETRF\n* -31: stop the iterative refinement after the 30th\n* iterations\n* > 0: iterative refinement has been successfully used.\n* Returns the number of iterations\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = i, U(i,i) computed in DOUBLE PRECISION is\n* exactly zero. The factorization has been completed,\n* but the factor U is exactly singular, so the solution\n* could not be computed.\n*\n* =========\n*\n\n"); return Qnil; } if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/ext/dsposv.c ruby-lapack-1.8.1/ext/dsposv.c --- ruby-lapack-1.7.2/ext/dsposv.c 2015-03-18 06:58:23.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dsposv.c 2018-03-08 07:50:28.000000000 +0000 @@ -33,7 +33,7 @@ argc--; rblapack_options = argv[argc]; if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { - printf("%s\n", "USAGE:\n x, iter, info, a = NumRu::Lapack.dsposv( uplo, a, b, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DSPOSV( UPLO, N, NRHS, A, LDA, B, LDB, X, LDX, WORK, SWORK, ITER, INFO )\n\n* Purpose\n* =======\n*\n* DSPOSV computes the solution to a real system of linear equations\n* A * X = B,\n* where A is an N-by-N symmetric positive definite matrix and X and B\n* are N-by-NRHS matrices.\n*\n* DSPOSV first attempts to factorize the matrix in SINGLE PRECISION\n* and use this factorization within an iterative refinement procedure\n* to produce a solution with DOUBLE PRECISION normwise backward error\n* quality (see below). If the approach fails the method switches to a\n* DOUBLE PRECISION factorization and solve.\n*\n* The iterative refinement is not going to be a winning strategy if\n* the ratio SINGLE PRECISION performance over DOUBLE PRECISION\n* performance is too small. A reasonable strategy should take the\n* number of right-hand sides and the size of the matrix into account.\n* This might be done with a call to ILAENV in the future. Up to now, we\n* always try iterative refinement.\n*\n* The iterative refinement process is stopped if\n* ITER > ITERMAX\n* or for all the RHS we have:\n* RNRM < SQRT(N)*XNRM*ANRM*EPS*BWDMAX\n* where\n* o ITER is the number of the current iteration in the iterative\n* refinement process\n* o RNRM is the infinity-norm of the residual\n* o XNRM is the infinity-norm of the solution\n* o ANRM is the infinity-operator-norm of the matrix A\n* o EPS is the machine epsilon returned by DLAMCH('Epsilon')\n* The value ITERMAX and BWDMAX are fixed to 30 and 1.0D+00\n* respectively.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* = 'U': Upper triangle of A is stored;\n* = 'L': Lower triangle of A is stored.\n*\n* N (input) INTEGER\n* The number of linear equations, i.e., the order of the\n* matrix A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrix B. NRHS >= 0.\n*\n* A (input/output) DOUBLE PRECISION array,\n* dimension (LDA,N)\n* On entry, the symmetric matrix A. If UPLO = 'U', the leading\n* N-by-N upper triangular part of A contains the upper\n* triangular part of the matrix A, and the strictly lower\n* triangular part of A is not referenced. If UPLO = 'L', the\n* leading N-by-N lower triangular part of A contains the lower\n* triangular part of the matrix A, and the strictly upper\n* triangular part of A is not referenced.\n* On exit, if iterative refinement has been successfully used\n* (INFO.EQ.0 and ITER.GE.0, see description below), then A is\n* unchanged, if double precision factorization has been used\n* (INFO.EQ.0 and ITER.LT.0, see description below), then the\n* array A contains the factor U or L from the Cholesky\n* factorization A = U**T*U or A = L*L**T.\n*\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* B (input) DOUBLE PRECISION array, dimension (LDB,NRHS)\n* The N-by-NRHS right hand side matrix B.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,N).\n*\n* X (output) DOUBLE PRECISION array, dimension (LDX,NRHS)\n* If INFO = 0, the N-by-NRHS solution matrix X.\n*\n* LDX (input) INTEGER\n* The leading dimension of the array X. LDX >= max(1,N).\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (N,NRHS)\n* This array is used to hold the residual vectors.\n*\n* SWORK (workspace) REAL array, dimension (N*(N+NRHS))\n* This array is used to use the single precision matrix and the\n* right-hand sides or solutions in single precision.\n*\n* ITER (output) INTEGER\n* < 0: iterative refinement has failed, double precision\n* factorization has been performed\n* -1 : the routine fell back to full precision for\n* implementation- or machine-specific reasons\n* -2 : narrowing the precision induced an overflow,\n* the routine fell back to full precision\n* -3 : failure of SPOTRF\n* -31: stop the iterative refinement after the 30th\n* iterations\n* > 0: iterative refinement has been sucessfully used.\n* Returns the number of iterations\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = i, the leading minor of order i of (DOUBLE\n* PRECISION) A is not positive definite, so the\n* factorization could not be completed, and the solution\n* has not been computed.\n*\n* =========\n*\n\n"); + printf("%s\n", "USAGE:\n x, iter, info, a = NumRu::Lapack.dsposv( uplo, a, b, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DSPOSV( UPLO, N, NRHS, A, LDA, B, LDB, X, LDX, WORK, SWORK, ITER, INFO )\n\n* Purpose\n* =======\n*\n* DSPOSV computes the solution to a real system of linear equations\n* A * X = B,\n* where A is an N-by-N symmetric positive definite matrix and X and B\n* are N-by-NRHS matrices.\n*\n* DSPOSV first attempts to factorize the matrix in SINGLE PRECISION\n* and use this factorization within an iterative refinement procedure\n* to produce a solution with DOUBLE PRECISION normwise backward error\n* quality (see below). If the approach fails the method switches to a\n* DOUBLE PRECISION factorization and solve.\n*\n* The iterative refinement is not going to be a winning strategy if\n* the ratio SINGLE PRECISION performance over DOUBLE PRECISION\n* performance is too small. A reasonable strategy should take the\n* number of right-hand sides and the size of the matrix into account.\n* This might be done with a call to ILAENV in the future. Up to now, we\n* always try iterative refinement.\n*\n* The iterative refinement process is stopped if\n* ITER > ITERMAX\n* or for all the RHS we have:\n* RNRM < SQRT(N)*XNRM*ANRM*EPS*BWDMAX\n* where\n* o ITER is the number of the current iteration in the iterative\n* refinement process\n* o RNRM is the infinity-norm of the residual\n* o XNRM is the infinity-norm of the solution\n* o ANRM is the infinity-operator-norm of the matrix A\n* o EPS is the machine epsilon returned by DLAMCH('Epsilon')\n* The value ITERMAX and BWDMAX are fixed to 30 and 1.0D+00\n* respectively.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* = 'U': Upper triangle of A is stored;\n* = 'L': Lower triangle of A is stored.\n*\n* N (input) INTEGER\n* The number of linear equations, i.e., the order of the\n* matrix A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrix B. NRHS >= 0.\n*\n* A (input/output) DOUBLE PRECISION array,\n* dimension (LDA,N)\n* On entry, the symmetric matrix A. If UPLO = 'U', the leading\n* N-by-N upper triangular part of A contains the upper\n* triangular part of the matrix A, and the strictly lower\n* triangular part of A is not referenced. If UPLO = 'L', the\n* leading N-by-N lower triangular part of A contains the lower\n* triangular part of the matrix A, and the strictly upper\n* triangular part of A is not referenced.\n* On exit, if iterative refinement has been successfully used\n* (INFO.EQ.0 and ITER.GE.0, see description below), then A is\n* unchanged, if double precision factorization has been used\n* (INFO.EQ.0 and ITER.LT.0, see description below), then the\n* array A contains the factor U or L from the Cholesky\n* factorization A = U**T*U or A = L*L**T.\n*\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* B (input) DOUBLE PRECISION array, dimension (LDB,NRHS)\n* The N-by-NRHS right hand side matrix B.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,N).\n*\n* X (output) DOUBLE PRECISION array, dimension (LDX,NRHS)\n* If INFO = 0, the N-by-NRHS solution matrix X.\n*\n* LDX (input) INTEGER\n* The leading dimension of the array X. LDX >= max(1,N).\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (N,NRHS)\n* This array is used to hold the residual vectors.\n*\n* SWORK (workspace) REAL array, dimension (N*(N+NRHS))\n* This array is used to use the single precision matrix and the\n* right-hand sides or solutions in single precision.\n*\n* ITER (output) INTEGER\n* < 0: iterative refinement has failed, double precision\n* factorization has been performed\n* -1 : the routine fell back to full precision for\n* implementation- or machine-specific reasons\n* -2 : narrowing the precision induced an overflow,\n* the routine fell back to full precision\n* -3 : failure of SPOTRF\n* -31: stop the iterative refinement after the 30th\n* iterations\n* > 0: iterative refinement has been successfully used.\n* Returns the number of iterations\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = i, the leading minor of order i of (DOUBLE\n* PRECISION) A is not positive definite, so the\n* factorization could not be completed, and the solution\n* has not been computed.\n*\n* =========\n*\n\n"); return Qnil; } if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/ext/dstegr.c ruby-lapack-1.8.1/ext/dstegr.c --- ruby-lapack-1.7.2/ext/dstegr.c 2015-03-18 06:58:24.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dstegr.c 2018-03-08 07:50:28.000000000 +0000 @@ -54,7 +54,7 @@ argc--; rblapack_options = argv[argc]; if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { - printf("%s\n", "USAGE:\n m, w, z, isuppz, work, iwork, info, d, e = NumRu::Lapack.dstegr( jobz, range, d, e, vl, vu, il, iu, abstol, [:lwork => lwork, :liwork => liwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DSTEGR( JOBZ, RANGE, N, D, E, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK, IWORK, LIWORK, INFO )\n\n* Purpose\n* =======\n*\n* DSTEGR computes selected eigenvalues and, optionally, eigenvectors\n* of a real symmetric tridiagonal matrix T. Any such unreduced matrix has\n* a well defined set of pairwise different real eigenvalues, the corresponding\n* real eigenvectors are pairwise orthogonal.\n*\n* The spectrum may be computed either completely or partially by specifying\n* either an interval (VL,VU] or a range of indices IL:IU for the desired\n* eigenvalues.\n*\n* DSTEGR is a compatability wrapper around the improved DSTEMR routine.\n* See DSTEMR for further details.\n*\n* One important change is that the ABSTOL parameter no longer provides any\n* benefit and hence is no longer used.\n*\n* Note : DSTEGR and DSTEMR work only on machines which follow\n* IEEE-754 floating-point standard in their handling of infinities and\n* NaNs. Normal execution may create these exceptiona values and hence\n* may abort due to a floating point exception in environments which\n* do not conform to the IEEE-754 standard.\n*\n\n* Arguments\n* =========\n*\n* JOBZ (input) CHARACTER*1\n* = 'N': Compute eigenvalues only;\n* = 'V': Compute eigenvalues and eigenvectors.\n*\n* RANGE (input) CHARACTER*1\n* = 'A': all eigenvalues will be found.\n* = 'V': all eigenvalues in the half-open interval (VL,VU]\n* will be found.\n* = 'I': the IL-th through IU-th eigenvalues will be found.\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* D (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the N diagonal elements of the tridiagonal matrix\n* T. On exit, D is overwritten.\n*\n* E (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the tridiagonal\n* matrix T in elements 1 to N-1 of E. E(N) need not be set on\n* input, but is used internally as workspace.\n* On exit, E is overwritten.\n*\n* VL (input) DOUBLE PRECISION\n* VU (input) DOUBLE PRECISION\n* If RANGE='V', the lower and upper bounds of the interval to\n* be searched for eigenvalues. VL < VU.\n* Not referenced if RANGE = 'A' or 'I'.\n*\n* IL (input) INTEGER\n* IU (input) INTEGER\n* If RANGE='I', the indices (in ascending order) of the\n* smallest and largest eigenvalues to be returned.\n* 1 <= IL <= IU <= N, if N > 0.\n* Not referenced if RANGE = 'A' or 'V'.\n*\n* ABSTOL (input) DOUBLE PRECISION\n* Unused. Was the absolute error tolerance for the\n* eigenvalues/eigenvectors in previous versions.\n*\n* M (output) INTEGER\n* The total number of eigenvalues found. 0 <= M <= N.\n* If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1.\n*\n* W (output) DOUBLE PRECISION array, dimension (N)\n* The first M elements contain the selected eigenvalues in\n* ascending order.\n*\n* Z (output) DOUBLE PRECISION array, dimension (LDZ, max(1,M) )\n* If JOBZ = 'V', and if INFO = 0, then the first M columns of Z\n* contain the orthonormal eigenvectors of the matrix T\n* corresponding to the selected eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* If JOBZ = 'N', then Z is not referenced.\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z; if RANGE = 'V', the exact value of M\n* is not known in advance and an upper bound must be used.\n* Supplying N columns is always safe.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', then LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER ARRAY, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The i-th computed eigenvector\n* is nonzero only in elements ISUPPZ( 2*i-1 ) through\n* ISUPPZ( 2*i ). This is relevant in the case when the matrix\n* is split. ISUPPZ is only accessed when JOBZ is 'V' and N > 0.\n*\n* WORK (workspace/output) DOUBLE PRECISION array, dimension (LWORK)\n* On exit, if INFO = 0, WORK(1) returns the optimal\n* (and minimal) LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK >= max(1,18*N)\n* if JOBZ = 'V', and LWORK >= max(1,12*N) if JOBZ = 'N'.\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the WORK array, returns\n* this value as the first entry of the WORK array, and no error\n* message related to LWORK is issued by XERBLA.\n*\n* IWORK (workspace/output) INTEGER array, dimension (LIWORK)\n* On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.\n*\n* LIWORK (input) INTEGER\n* The dimension of the array IWORK. LIWORK >= max(1,10*N)\n* if the eigenvectors are desired, and LIWORK >= max(1,8*N)\n* if only the eigenvalues are to be computed.\n* If LIWORK = -1, then a workspace query is assumed; the\n* routine only calculates the optimal size of the IWORK array,\n* returns this value as the first entry of the IWORK array, and\n* no error message related to LIWORK is issued by XERBLA.\n*\n* INFO (output) INTEGER\n* On exit, INFO\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = 1X, internal error in DLARRE,\n* if INFO = 2X, internal error in DLARRV.\n* Here, the digit X = ABS( IINFO ) < 10, where IINFO is\n* the nonzero error code returned by DLARRE or\n* DLARRV, respectively.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Inderjit Dhillon, IBM Almaden, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n* .. Local Scalars ..\n LOGICAL TRYRAC\n* ..\n* .. External Subroutines ..\n EXTERNAL DSTEMR\n* ..\n\n"); + printf("%s\n", "USAGE:\n m, w, z, isuppz, work, iwork, info, d, e = NumRu::Lapack.dstegr( jobz, range, d, e, vl, vu, il, iu, abstol, [:lwork => lwork, :liwork => liwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DSTEGR( JOBZ, RANGE, N, D, E, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK, IWORK, LIWORK, INFO )\n\n* Purpose\n* =======\n*\n* DSTEGR computes selected eigenvalues and, optionally, eigenvectors\n* of a real symmetric tridiagonal matrix T. Any such unreduced matrix has\n* a well defined set of pairwise different real eigenvalues, the corresponding\n* real eigenvectors are pairwise orthogonal.\n*\n* The spectrum may be computed either completely or partially by specifying\n* either an interval (VL,VU] or a range of indices IL:IU for the desired\n* eigenvalues.\n*\n* DSTEGR is a compatibility wrapper around the improved DSTEMR routine.\n* See DSTEMR for further details.\n*\n* One important change is that the ABSTOL parameter no longer provides any\n* benefit and hence is no longer used.\n*\n* Note : DSTEGR and DSTEMR work only on machines which follow\n* IEEE-754 floating-point standard in their handling of infinities and\n* NaNs. Normal execution may create these exceptiona values and hence\n* may abort due to a floating point exception in environments which\n* do not conform to the IEEE-754 standard.\n*\n\n* Arguments\n* =========\n*\n* JOBZ (input) CHARACTER*1\n* = 'N': Compute eigenvalues only;\n* = 'V': Compute eigenvalues and eigenvectors.\n*\n* RANGE (input) CHARACTER*1\n* = 'A': all eigenvalues will be found.\n* = 'V': all eigenvalues in the half-open interval (VL,VU]\n* will be found.\n* = 'I': the IL-th through IU-th eigenvalues will be found.\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* D (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the N diagonal elements of the tridiagonal matrix\n* T. On exit, D is overwritten.\n*\n* E (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the tridiagonal\n* matrix T in elements 1 to N-1 of E. E(N) need not be set on\n* input, but is used internally as workspace.\n* On exit, E is overwritten.\n*\n* VL (input) DOUBLE PRECISION\n* VU (input) DOUBLE PRECISION\n* If RANGE='V', the lower and upper bounds of the interval to\n* be searched for eigenvalues. VL < VU.\n* Not referenced if RANGE = 'A' or 'I'.\n*\n* IL (input) INTEGER\n* IU (input) INTEGER\n* If RANGE='I', the indices (in ascending order) of the\n* smallest and largest eigenvalues to be returned.\n* 1 <= IL <= IU <= N, if N > 0.\n* Not referenced if RANGE = 'A' or 'V'.\n*\n* ABSTOL (input) DOUBLE PRECISION\n* Unused. Was the absolute error tolerance for the\n* eigenvalues/eigenvectors in previous versions.\n*\n* M (output) INTEGER\n* The total number of eigenvalues found. 0 <= M <= N.\n* If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1.\n*\n* W (output) DOUBLE PRECISION array, dimension (N)\n* The first M elements contain the selected eigenvalues in\n* ascending order.\n*\n* Z (output) DOUBLE PRECISION array, dimension (LDZ, max(1,M) )\n* If JOBZ = 'V', and if INFO = 0, then the first M columns of Z\n* contain the orthonormal eigenvectors of the matrix T\n* corresponding to the selected eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* If JOBZ = 'N', then Z is not referenced.\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z; if RANGE = 'V', the exact value of M\n* is not known in advance and an upper bound must be used.\n* Supplying N columns is always safe.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', then LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER ARRAY, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The i-th computed eigenvector\n* is nonzero only in elements ISUPPZ( 2*i-1 ) through\n* ISUPPZ( 2*i ). This is relevant in the case when the matrix\n* is split. ISUPPZ is only accessed when JOBZ is 'V' and N > 0.\n*\n* WORK (workspace/output) DOUBLE PRECISION array, dimension (LWORK)\n* On exit, if INFO = 0, WORK(1) returns the optimal\n* (and minimal) LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK >= max(1,18*N)\n* if JOBZ = 'V', and LWORK >= max(1,12*N) if JOBZ = 'N'.\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the WORK array, returns\n* this value as the first entry of the WORK array, and no error\n* message related to LWORK is issued by XERBLA.\n*\n* IWORK (workspace/output) INTEGER array, dimension (LIWORK)\n* On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.\n*\n* LIWORK (input) INTEGER\n* The dimension of the array IWORK. LIWORK >= max(1,10*N)\n* if the eigenvectors are desired, and LIWORK >= max(1,8*N)\n* if only the eigenvalues are to be computed.\n* If LIWORK = -1, then a workspace query is assumed; the\n* routine only calculates the optimal size of the IWORK array,\n* returns this value as the first entry of the IWORK array, and\n* no error message related to LIWORK is issued by XERBLA.\n*\n* INFO (output) INTEGER\n* On exit, INFO\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = 1X, internal error in DLARRE,\n* if INFO = 2X, internal error in DLARRV.\n* Here, the digit X = ABS( IINFO ) < 10, where IINFO is\n* the nonzero error code returned by DLARRE or\n* DLARRV, respectively.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Inderjit Dhillon, IBM Almaden, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n* .. Local Scalars ..\n LOGICAL TRYRAC\n* ..\n* .. External Subroutines ..\n EXTERNAL DSTEMR\n* ..\n\n"); return Qnil; } if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/ext/dsyrfsx.c ruby-lapack-1.8.1/ext/dsyrfsx.c --- ruby-lapack-1.7.2/ext/dsyrfsx.c 2015-03-18 06:58:29.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dsyrfsx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_dsyrfsx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_equed; @@ -206,6 +207,9 @@ rblapack_rcond = rb_float_new((double)rcond); rblapack_info = INT2NUM(info); return rb_ary_new3(8, rblapack_rcond, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_s, rblapack_x, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/dsysvxx.c ruby-lapack-1.8.1/ext/dsysvxx.c --- ruby-lapack-1.7.2/ext/dsysvxx.c 2015-03-18 06:58:28.000000000 +0000 +++ ruby-lapack-1.8.1/ext/dsysvxx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_dsysvxx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_fact; char fact; VALUE rblapack_uplo; @@ -246,6 +247,9 @@ rblapack_info = INT2NUM(info); rblapack_equed = rb_str_new(&equed,1); return rb_ary_new3(14, rblapack_x, rblapack_rcond, rblapack_rpvgrw, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_a, rblapack_af, rblapack_ipiv, rblapack_equed, rblapack_s, rblapack_b, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/extconf.rb ruby-lapack-1.8.1/ext/extconf.rb --- ruby-lapack-1.7.2/ext/extconf.rb 2016-02-08 02:11:51.000000000 +0000 +++ ruby-lapack-1.8.1/ext/extconf.rb 2018-03-08 07:50:28.000000000 +0000 @@ -62,35 +62,62 @@ end end -narray_dir = nil -if s = ( Gem::Specification.find_all_by_name("narray")[0] || Gem::Specification.find_all_by_name("narray-bigmem")[0] ) - if s.respond_to?(:exts_dir) - narray_dir = s.exts_dir + "/narray" - narray_dir = s.gem_dir+"/lib/narray" unless File.exist?(narray_dir) +na_path = RbConfig::CONFIG["sitearchdir"] +begin + require "rubygems" + gem = true +rescue LoadError + gem = false +end +if gem + if ( na_type = ENV["NARRAY_TYPE"] ) + nas = [na_type] else - narray_dir = s.extension_dir + "/narray" + nas = %w(narray numru-narray) end - narray_include = narray_dir - narray_lib = narray_dir -end - -unless narray_dir && File.exist?(narray_dir) - if Gem.respond_to?(:find_files) - require "rbconfig" - so = RbConfig::CONFIG["DLEXT"] - narray_include = File.expand_path(File.dirname(Gem.find_files("narray.h")[0])) - narray_lib = File.expand_path(File.dirname(Gem.find_files("narray." + so)[0])) + if Gem::Specification.respond_to?(:find_by_name) + nas.each do |na| + begin + if ( spec = Gem::Specification.find_by_name(na) ) + na_type = na + na_path = spec.full_gem_path + case na_type + when "narray" + na_path = File.join(na_path, "src") + when "numru-narray" + na_path = File.join(na_path, "ext", "numru", "narray") + end + break + end + rescue LoadError + end + end else - gem_home=(`gem environment GEM_HOME`).chomp - narray_dir = Dir.glob("#{gem_home}/gems/narray-*").sort[-1] - if narray_dir - narray_include = narray_lib = narray_dir - else - sitearchdir = RbConfig::CONFIG["sitearchdir"] - narray_include = narray_lib = [$sitearchdir, $sitearchdir] + nas.each do |na| + if ( spec = Gem.source_index.find_name(na) ).any? + na_type = na + na_path = spec[0].full_gem_path + case na_type + when "narray" + na_path = File.join(na_path, "src") + when "numru-narray" + na_path = File.join(na_path, "ext", "numru", "narray") + end + break + end end end end -dir_config('narray', narray_include, narray_lib) + +dir_config("narray", na_path, na_path) +unless have_header("narray.h") + $stderr.print "narray.h does not found. Specify the path.\n" + $stderr.print "e.g., gem install ruby-lapack -- --with-narray-include=path\n" + exit(-1) +end + +if have_func("zposvxx_") + $defs.each{|d| d.sub!("HAVE_ZPOSVXX_", "USEXBLAS")} +end create_makefile("numru/lapack") diff -Nru ruby-lapack-1.7.2/ext/rb_lapack.c ruby-lapack-1.8.1/ext/rb_lapack.c --- ruby-lapack-1.7.2/ext/rb_lapack.c 2016-02-08 01:29:35.000000000 +0000 +++ ruby-lapack-1.8.1/ext/rb_lapack.c 2018-03-08 07:50:28.000000000 +0000 @@ -1,1636 +1,1896 @@ #include "ruby.h" #include "rb_lapack.h" -extern void init_lapack_slabrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlargv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssyconv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zpotri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cla_porpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cungl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgtsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dpotri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlacrt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cpocon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cggbak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgesvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgtcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cbbcsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cbdsqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgbbrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgbequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_cgbrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_cgbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_cgbsvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_cgbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_cgbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgebak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgebal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgebd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgebrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgecon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgeequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgeequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgees(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgeesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgeev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgeevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgegs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgegv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgehd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgehrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgelq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgelqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgels(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgelsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgelss(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgelsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgelsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgeql2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgeqlf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgeqp3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgeqpf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgeqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgeqr2p(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgeqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgeqrfp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgerfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_cgerfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_cgerq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgerqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgesc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgesdd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgesvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgesvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_cgesvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_cgetc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgetf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgetrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgetri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgetrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cggbak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cggbal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgges(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cggesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cggev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cggevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cggglm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgghrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgglse(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cggqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cggrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_cggsvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlansy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaed6(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlaset(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsptrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgesc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slatbs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dormql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cggsvp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgtcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgtrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgtsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgtsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cgtts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chbev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chbevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chbevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chbgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chbgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chbgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chbgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chbtrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_checon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cheequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cheev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cheevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cheevr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cheevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_chegs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztrti2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_strsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlatbs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztrexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgehd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slanhs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slagts(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgtsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgerfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ilaver(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cggqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cunmql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dspgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtgevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cggev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clacgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlangb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgesvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_csysvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sppsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zsptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlapll(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgesc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaswp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgbsvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_strsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgges(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dptsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sla_wwaddw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chegst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chegv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chegvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chegvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_cherfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgghrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgelq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgesvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slasd4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_spptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zcgesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dpttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlasd6(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgeequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssysv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cpbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlaqhe(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlarf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slarf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dla_gercond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slasd1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztrtri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlatps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_claqr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slansy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlartv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cpptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgeqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dggbak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssbtrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgglse(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clatrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dpocon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgeqp3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sorgql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgetrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dggevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_claqhp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsbgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clascl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clartv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctgexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sorgqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaqps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgeqr2p(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgebrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slagtf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlasd8(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_spoequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaic1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgetri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_cherfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_chesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chesvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_chesvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_chetd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chetf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chetrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chetrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chetri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chetrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chetrs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chfrk(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chgeqz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chla_transtype(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chpcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chpev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chpevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chpevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chpgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chpgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chpgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chpgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chpsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chpsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chptrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chsein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_chseqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clabrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clacgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clacn2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clacon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clacp2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clacpy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clacrm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clacrt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cladiv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_claed0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgbequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_stpcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cggevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlanv2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dggbal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgbbrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_claed7(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_claed8(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_claein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_claesy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_claev2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clag2z(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clags2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clagtm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clahef(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clahqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clahr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clahrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_claic1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlartg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_csytrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaruv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cpftrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlarft(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgebd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clals0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clalsa(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clalsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clangb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clange(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clangt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clanhb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clanhe(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clanhf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clanhp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clanhs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clanht(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clansb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clansp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clansy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clantb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clantp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clantr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clapll(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clapmr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clapmt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_claqgb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_claqge(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_claqhb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_claqhe(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_claqhp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_claqp2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_claqps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_claqr0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_claqr1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_claqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_claqr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_claqr4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_claqr5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_claqsb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_claqsp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_claqsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clar1v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clar2v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clarcm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clarf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clarfb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clarfg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clarfgp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clarft(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clarfx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clargv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clarnv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clarrv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_clarscl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_clartg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clartv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clarz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clarzb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clarzt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clascl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_clascl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_claset(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clasr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_classq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_claswp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clasyf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_clatbs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clatdf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clatps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clatrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clatrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clatrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clatzm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clauu2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_clauum(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_cla_gbamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_cla_gbrcond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_cla_gbrcond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_cla_gbrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_cla_gbrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_cla_geamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_cla_gercond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS extern void init_lapack_cla_gercond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgeql2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgeqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgbequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clanhs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlasd0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_cla_gerfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_cla_heamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_cla_hercond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_cla_hercond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_cla_herfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_cla_herpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_cla_lin_berr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_cla_porcond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_cla_porcond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_cla_porfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_cla_porpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_cla_rpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_cla_syamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_cla_syrcond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_cla_syrcond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_cla_syrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_cla_syrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_cla_wwaddw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_cpbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cpbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cpbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cpbstf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cpbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_cpbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ilauplo(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cpbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cpbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cpbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_cpftrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chetf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clals0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slarrc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zrot(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlarrv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_stgsja(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_spbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgeqr2p(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgelsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlarrk(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtzrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_spftrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cheev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgesvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sstebz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlarre(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgerqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgtsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slarfg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlapy3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgsvj0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dspev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cupmtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_stgsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtrsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sspsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssbevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_claqr1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_csytri2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sla_gerfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssytd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cspsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cpftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cpftrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cpocon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cpoequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cpoequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cporfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_cporfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_cposv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cposvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_cposvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif extern void init_lapack_cpotf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zherfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clacrm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zungbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_xerbla_array(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhbgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_scsum1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dstev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlatbs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slartv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_spttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctfttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zla_gbrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgebd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsysv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtrrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cpotrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cpotri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cpotrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cppcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cppequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cpprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cppsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cppsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cpptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cpptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cpptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cpstf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cpstrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cptcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cpteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cptrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cptsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cptsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cpttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cpttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cptts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_crot(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cspcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cspmv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cspr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_csprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cspsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cspsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_csptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slartg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zpocon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cporfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztrcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sptts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlascl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_csyequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sporfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slacon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dorgrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgehd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zla_gerfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_csptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_csptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_csrscl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cstedc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cstegr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cstein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_cstemr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cpotrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaic1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_stbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_stfsm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slacn2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhetrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztzrzf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgtsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dla_syrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sbdsdc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlasv2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlaqsb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sorgr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cggglm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clar1v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cupgtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slas2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaqge(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cheevr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaqr4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dorgbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cpbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slacpy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zla_gbamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_claesy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_shgeqz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtrttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clansy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slarrb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_claset(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlasyf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgeqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_claqps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zppcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zstein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slalsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_spstrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlacon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgetri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slapmt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dspgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsygvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sorgbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_csteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_csycon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaqp2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zpbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slapmr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cstegr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlarfgp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlantr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zpoequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgerqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zla_herfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zpstrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgetrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgebd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsygs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sorml2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_shsein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zptts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slasq1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlasd7(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cheevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlar1v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlascl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dorg2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaed2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtgsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgetf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slarft(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chetrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgesdd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_claqge(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhbgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zsptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dpoequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slarzt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgetrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dorml2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cunmr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgels(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaqr1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dstevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zunm2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssyev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgges(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlaed8(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssytri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cpstf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssterf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sla_porfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cla_gbrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaed8(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dpbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlatdf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zpttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaset(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dstemr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slatps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaed7(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgglse(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztgevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_spbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlanhs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zladiv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dormr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zla_syrcond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtgsja(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cppequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zggsvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgegs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cggsvp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zsyconv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctpttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgerfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cppsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dposvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgeqpf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sggbal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlahrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dggsvp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zla_syamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaed3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_stgsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgebak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgeqrfp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sstev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slatdf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_csytri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlauu2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlanhs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dla_syrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_csyconv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_csyequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_csymv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_csyr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_csyrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS extern void init_lapack_csyrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_stgsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgetc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zggbal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlarfb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssysvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgghrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaed9(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgecon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif extern void init_lapack_csysv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zla_herpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_spbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slarre(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cbdsqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dla_gbamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlarnv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_spotri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ilaclr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlacpy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slasq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_strexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztrsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_csysvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_csysvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif extern void init_lapack_csyswapr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgbrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_claqgb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlasq5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgbrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sptcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsbevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sporfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clarrv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_csytf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_csytrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_csytri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_csytri2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_csytri2x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_csytrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_csytrs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctfsm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctfttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctfttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctgevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctgex2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctgexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctgsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctgsja(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctgsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctgsy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctgsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctpcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctpttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctpttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctrcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctrevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctrexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctrrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctrsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_ctrsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cungr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgeqrfp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsyevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctrsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctrti2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctrtri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctrtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctrttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctrttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctzrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ctzrzf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cunbdb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cuncsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_cung2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaed8(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zunmr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dorm2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhbevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsterf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clanhp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgelqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clantp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_csytrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlacon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlacn2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlatrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgeqlf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgerfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sspev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dptsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slarrk(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clacon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgeesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zcposv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlangt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlarra(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlartgs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlaqr1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgtsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlatrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cstein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cpotri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgtts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgehd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlaic1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaqr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zla_rpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sposv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgeev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zsptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sspevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zsytri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlaein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sla_lin_berr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlaqr5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlapmr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cla_herpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clargv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dspsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cung2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_cungbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zunml2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slasq6(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sspevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgsvj0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zsyswapr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chseqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dormr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zggglm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zpptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsyconv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sggsvp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_iladlc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhpsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zggesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zsysvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ddisna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zbbcsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgelsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztzrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chetrs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgejsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clabrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sggglm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_strti2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_spptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sla_gbamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgelsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zla_hercond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgtcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_srscl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cpbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clanht(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztfttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_spbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaln2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slasdt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cunghr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cungl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cunglq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cungql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cungqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cungr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cungrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cungtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cunm2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cunm2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cunmbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cunmhr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cunml2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cunmlq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cunmql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cunmqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cunmr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cunmr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cunmrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cunmrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cunmtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cupgtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_cupmtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dbbcsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dbdsdc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dbdsqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ddisna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgbbrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgbequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_dgbrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_dgbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_dgbsvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_dgbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgebak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgebal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgebd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgebrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_dgecon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cla_syrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cla_porcond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slapy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zla_gercond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlarrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cung2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dpttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgeesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sormr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztgexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slarrv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zspr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlaqp2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlanht(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgeequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgeequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgees(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgeesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgeev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgeevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgegs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgegv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgehd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgehrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgejsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgelq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgelqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgels(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgelsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgelss(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgelsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgelsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgeql2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgeqlf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgeqp3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgeqpf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgeqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgeqr2p(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgeqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgeqrfp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgerfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_dgerfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_dgerq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgerqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_dgesc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_spbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clarcm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssygs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chsein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtrsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgesdd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgesvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgesvj(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgesvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_dgesvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_dgetc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgetf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgetrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgetri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgetrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dggbak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dggbal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgges(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dggesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dggev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dggevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dggglm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgghrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgglse(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dggqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dggrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dggsvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dggsvp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgsvj0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgsvj1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgtcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgtrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgtsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgtsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dgtts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dhgeqz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dhsein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dhseqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_disnan(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlabad(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlabrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlacn2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlacon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlacpy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dladiv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlae2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_dlaebz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaed0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaed1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaed2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaed3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaed4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaed5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaed6(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaed7(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaed8(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaed9(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaeda(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaev2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlag2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlag2s(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlags2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlagtf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlagtm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlagts(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlagv2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlahqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlahr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlahrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaic1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaln2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlals0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlalsa(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlalsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlamrg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaneg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlangb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlange(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlangt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlanhs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlansb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlansf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlansp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlanst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlansy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlantb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_dlantp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_strevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaqge(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slargv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zpbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slasd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zpteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sspgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhpgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgbequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slasd5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zsymv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctpcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgelsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zdrscl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clarz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgecon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgerfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_claqsb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sormrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sormlq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgegv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sla_syrcond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgghrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgees(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlaqsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clasyf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_csytri2x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clalsa(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clascl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgesvj(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_stftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slahr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clahr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssptrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgebal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgesvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlasd4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaqsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlansy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsbgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cpbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_stzrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dpteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssytrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zposv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlantr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlanv2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlapll(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlapmr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlapmt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlapy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlapy3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaqgb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaqge(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaqp2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaqps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaqr0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaqr1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_dlaqr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhegv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhpgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chpevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_csprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgbrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlag2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sggev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_claswp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_stgsy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zpotrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssyequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zunmr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zla_porcond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dspcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dla_gbrcond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slatrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaqr4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaqr5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaqsb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaqsp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaqsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaqtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlar1v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlar2v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlarf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlarfb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_dlarfg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slasd0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgtts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_csrscl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgebak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sladiv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dla_gbrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cheevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssygv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dbdsdc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sla_porcond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zstedc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dormbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlatzm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgehrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zsyequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_strtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sorg2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsbev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgebrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgerfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlarscl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlarfgp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlarft(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlarfx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlargv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlarnv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlarra(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlarrb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlarrc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlarrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlarre(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlarrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlarrj(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlarrk(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlarrr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlarrv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS extern void init_lapack_dlarscl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgtcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_strcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zsytri2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlassq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dla_gerfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cspmv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgetc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sopgtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_strttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztgsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cla_porfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zporfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztrsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtgexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chpsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhegst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgesvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dpbstf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctrtri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlantb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clag2z(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlangt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_drscl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_dlartg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlartgp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlartgs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlartv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaruv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlarz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlarzb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlarzt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlas2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlascl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_dlascl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_dlasd0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlasd1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlasd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlasd3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlasd4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlasd5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlasd6(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlasd7(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlasd8(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlasda(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_dlasdq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsygv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgtrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dormrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dppsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgesvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dhsein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhegs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dorgr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_stfttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaqr0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clahrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_claqp2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slasda(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_spotf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sormtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zposvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssbgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zptsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlarzt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sppsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sormr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sggesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaqr5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sopmtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgegs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlasdt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaset(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlasq1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlasq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlasq3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlasq4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlasq5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlasq6(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlasr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlasrt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlassq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlasv2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlaswp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlasy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlasyf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlat2s(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlatbs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlatdf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlatps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_dlatrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtrevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dzsum1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_stpttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sorm2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlarz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sspsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgbbrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgglse(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clarfgp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlatrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlatrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlatzm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlauu2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dlauum(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_dla_gbamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_dla_gbrcond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_dla_gbrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_dla_gbrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_dla_geamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_dla_gercond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_dla_gerfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_dla_lin_berr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_dla_porcond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_dla_porfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_dla_porpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_dla_rpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_dla_syamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_dla_syrcond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_dla_syrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_dla_syrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_dla_wwaddw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_dopgtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_dopmtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlasd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaneg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chetri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cpteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlabrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zsteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctgsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zla_lin_berr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dpftrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zpbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slanst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zsyrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhfrk(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsyequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlaesy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cla_geamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_csymv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgegs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsytrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slantr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sstevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctgsja(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clange(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgeql2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zppsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slascl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clapmr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctgsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgelq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clauum(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaed0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zsytrs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chbevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctrsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sstein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clatrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhsein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sstedc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cppcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zungl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dstebz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clanhf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sla_geamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cptsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhbtrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgtrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlalsa(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsposv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sorgl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgtrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clauu2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtgsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_dorbdb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slarfx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlaqr0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgeqlf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slag2d(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctrtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slag2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zpoequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_iladiag(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhpgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slamrg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgeqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgetf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clapmt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chbgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhgeqz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slasd8(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slarrj(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtgsy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_claqr4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlatrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sbdsqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dorcsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dorg2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dorg2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dorgbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dorghr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dorgl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dorglq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dorgql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dorgqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dorgr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dorgrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dorgtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dorm2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dorm2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dormbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dormhr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dorml2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_dormlq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dpftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssytrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sorglq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgels(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clatps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlapmt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slals0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgetc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slauum(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaed1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zla_porfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sptsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssyswapr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgelqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtfttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slahrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sppcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsygst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgeqp3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsyev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgetrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cla_gbrcond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zsyr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dormql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dormqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dormr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dormr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dormrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dormrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dormtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dpbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dpbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_dpbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgels(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgebrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sspgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zpftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlabad(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zunmlq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clanhe(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgetrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slarra(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctrrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zunmtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sla_syrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssysvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slansf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaed4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chesvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dorgqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cposv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztrevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgelqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clarzt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgebal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slasd3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgehrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chegv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dpbstf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dpbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dpbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dpbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dpbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dpbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dpftrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dpftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dpftrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dpocon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dpoequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dpoequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dporfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_dporfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_dposv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dposvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_dposvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_dpotf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dpotrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dpotri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dpotrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dppcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_dppequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cheequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slansp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgbbrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clar2v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clapll(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgesdd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chfrk(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cunmr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slatrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dorm2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clarfg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgesvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clansp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dpprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dppsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dppsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dpptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dpptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dpptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dpstf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dpstrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dptcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dpteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dptrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dptsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dptsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dpttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dpttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dptts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_drscl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsbev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsbevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsbevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsbgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsbgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsbgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsbgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsbtrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsfrk(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsgesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dspcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dspev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dspevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dspevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dspgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dspgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dspgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dspgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsposv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dspsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dspsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsptrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dstebz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dstedc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_dstegr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssbgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlasd3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgehrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhseqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slantb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sorgrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_claqr0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zunmqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zunmrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_xerbla(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgtts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaed3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgebd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chpgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctrttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sla_syrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slauu2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_claqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_spteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slangb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cherfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlansp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgelq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlartv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlagts(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cpttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlags2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgeevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sptsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtrttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cposvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sdisna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsysvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zupmtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dstein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dstemr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsterf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dstev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dstevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dstevr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dstevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_dsycon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cunghr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlaev2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chla_transtype(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgghrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cla_syamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cppsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaeda(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dorglq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctrsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cungtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chetd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sisnan(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgerfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgejsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtpcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slarfgp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chptrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_stgevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dpbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slanv2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slasd7(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgesvj(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cunmbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ieeeck(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dormtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlatrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cla_herfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sormql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhetf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlanst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlahr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sorm2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zsycon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhesvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_spftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgees(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaed2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ilazlc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zpstf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgeqr2p(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsytri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgetf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zunmhr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztrrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zunghr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgeqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtrexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctrexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctpttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaqgb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slartgs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cpprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_claqhe(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctzrzf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clatzm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlarrr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhbev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sla_rpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dspgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sggrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slar2v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaed0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsyconv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsyequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsyev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsyevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsyevr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsyevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsygs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsygst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsygv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsygvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsygvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsyrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_dsyrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_dsysv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsysvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_dsysvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_dsyswapr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsytd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsytf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsytrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsytrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsytri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_dsytri2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slags2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlarzb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgebak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztgsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhetrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dla_syamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cla_rpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zpbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clacrt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgetf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlatzm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaev2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zungrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cunmlq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ilaslr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sorgtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztpttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaqps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgeequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgelss(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgeequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaqsp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zppsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zungql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cunm2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zpbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dpotf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slarz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dsytri2x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_dsytrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sorcsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zheevr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slarrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slasd6(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clarnv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_claed7(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgeesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgtrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dstevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaed5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sptrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlaqhb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaqgb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlasdt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zsprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slascl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ilatrans(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlasq6(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zptsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dpotrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clatdf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dggqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtfttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgelss(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sstemr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sormrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_spbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlarrb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctrttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaev2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_spptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cspr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cla_hercond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cunbdb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_csyr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgerq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlartg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhesvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhpgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slasyf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgehd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zpptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zptcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_strsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cbbcsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztrttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssfrk(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_dsytrs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zbdsqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlae2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dpbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctrcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clantb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sorbdb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaed7(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgetri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlartgp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zla_gbrcond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_spotrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zla_porcond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlarft(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztgsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cla_gbrcond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slarzb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cla_heamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dla_wwaddw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_spocon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaqtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtfsm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtfttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtfttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtgevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtgex2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtgexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtgsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtgsja(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtgsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtgsy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtgsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtpcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_dtptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dggrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chbgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_iladlr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chpgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dpstrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgbrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sormbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_csteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cpptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlange(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlarzt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlag2s(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clags2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztfttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zla_heamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dpptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgeesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssygst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgees(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgges(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtpttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtpttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtrcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtrevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtrexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtrrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtrsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_dtrsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsygvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cposvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zpttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlals0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zungtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zheevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlantp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_claein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slae2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dla_porcond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlasda(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgetc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtrsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtrti2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtrtri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtrtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtrttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtrttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtzrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dtzrzf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_dzsum1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_icmax1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ieeeck(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ilaclc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ilaclr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_iladiag(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_iladlc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_iladlr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ilaenv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ilaprec(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ilaslc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ilaslr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ilatrans(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ilauplo(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ilaver(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ilazlc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ilazlr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_iparmq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_izmax1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_lsamen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_sbbcsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cpttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clacn2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dpbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dorghr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgelsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgelsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cunmrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhecon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_csptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sla_gercond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dptrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlacgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlaqps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctgevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cunmhr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztgsy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sstevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlalsa(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_stptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztpttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_csyrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sbdsdc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sbdsqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_scsum1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sdisna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgbbrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgbequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_sgbrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_sgbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_sgbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clacp2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dorg2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dpstf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clagtm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zla_hercond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clasr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlange(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgeqrfp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ilaclc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sla_gbrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlarz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chbev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_spprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_strttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlapll(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsyrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dspgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cpptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_lsamen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssygvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhetrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtpttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlasy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chpgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgbequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_classq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlasyf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zstemr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zheequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dppsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dorgql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlatps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dporfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgeequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cpbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgehrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_sgbsvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_sgbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgebak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgebal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgebd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgebrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgecon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgeequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgeequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgees(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgeesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgeev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgeevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgegs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgegv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgehd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgehrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgejsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgelq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgelqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgels(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgelsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgelss(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgelsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgelsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgeql2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgeqlf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgeqp3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgeqpf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgeqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgeqr2p(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgeqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgeqrfp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgerfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_sgerfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_sgerq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgerqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgesc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgesdd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgesvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgesvj(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgesvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_sgesvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_sgetc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgetf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgetrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgetri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgetrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sggbak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sggbal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgges(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sggesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sggev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sggevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sggglm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgghrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgglse(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sggqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sggrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sggsvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sggsvp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgsvj0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgsvj1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_sgtcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgeevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clansb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_csytf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlassq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgesdd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cpbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_csytrs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clahqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_crot(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgtrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgtsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgtsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sgtts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_shgeqz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_shsein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_shseqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sisnan(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slabad(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slabrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slacn2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slacon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slacpy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sladiv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slae2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaebz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaed0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaed1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaed2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaed3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaed4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaed5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaed6(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaed7(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaed8(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaed9(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaeda(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaev2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slag2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slag2d(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slags2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slagtf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slagtm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slagts(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slagv2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slahqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slahr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slahrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaic1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaln2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slals0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slalsa(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slalsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slamrg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaneg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slangb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slange(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slangt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slanhs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slansb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slansf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slansp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slanst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slansy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slantb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slantp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slantr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slanv2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slapll(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slapmr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slapmt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slapy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slapy3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaqgb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaqge(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaqp2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaqps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaqr0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaqr1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaqr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_slaqr4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgelss(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chetrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dopgtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgeqr2p(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cptts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zla_geamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clatrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cunglq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dggglm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlarfx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhpevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsyevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clanhb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_csysvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clahef(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaqr5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaqsb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaqsp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaqsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaqtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_slar1v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cla_gercond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dbbcsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlapy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_stprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlar1v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgegv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slar2v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slarf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slarfb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slarfg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slarfgp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slarft(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slarfx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slargv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slarnv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slarra(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slarrb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slarrc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slarrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slarre(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slarrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slarrj(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slarrk(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slarrr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slarrv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_slarscl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_slartg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slartgp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slartgs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slartv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaruv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slarz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slarzb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slarzt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slas2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slascl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_slascl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_slasd0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slasd1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slasd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slasd3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slasd4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slasd5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slasd6(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slasd7(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slasd8(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slasda(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slasdq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slasdt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaset(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slasq1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slasq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slasq3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slasq4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slasq5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slasq6(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slasr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slasrt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slassq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slasv2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slaswp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slasy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slasyf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slatbs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slatdf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slatps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slatrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slatrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slatrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slatzm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slauu2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_slauum(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_sla_gbamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_sla_gbrcond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_sla_gbrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_sla_gbrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_sla_geamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_sla_gercond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_sla_gerfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_sla_lin_berr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_sla_porcond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_sla_porfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_sla_porpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_sla_rpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_sla_syamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_sla_syrcond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_sla_syrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_sla_syrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_sla_wwaddw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_sopgtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sopmtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sorbdb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sorcsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sorg2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sorg2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sorgbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sorghr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sorgl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sorglq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sorgql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sorgqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sorgr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sorgrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sorgtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sorm2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sorm2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sormbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sormhr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sorml2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sormlq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sormql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sormqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sormr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sormr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sormrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sormrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sormtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_spbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_spbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_spbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_spbstf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_spbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_spbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_spbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_spbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_spbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_spftrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_spftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_spftrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_spocon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_spoequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_spoequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sporfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_sporfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_sposv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sposvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_sposvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_spotf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_spotrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_spotri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_spotrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sppcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sppequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_spprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sppsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sppsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_spptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_spptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_spptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_spstf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_spstrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sptcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_spteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sptrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sptsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sptsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_spttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_spttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sptts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_srscl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssbev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssbevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_ssbevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgtts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlasd1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlauu2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clarscl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlarrv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlat2c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slahqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgesvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaqp2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhpevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dorgl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_stpttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgeql2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgerqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_shseqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaqr0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgglse(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slatzm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slarrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dorgtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clarft(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dpbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ilazlr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlansb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_claqhb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_claev2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaneg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_stzrzf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zstegr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlamrg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgetrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slapll(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgebak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dla_porfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zungr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgebal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zggevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgsvj1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zung2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zspsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cpbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtgex2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssbgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssbgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssbgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssbgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssbtrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssfrk(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sspcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sspev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sspevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sspevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sspgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sspgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sspgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sspgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sspsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sspsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssptrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sstebz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sstedc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sstegr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sstein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sstemr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssterf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sstev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sstevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sstevr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_sstevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssycon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssyconv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssyequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssyev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_ssyevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dggesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sla_porpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slasv2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsytri2x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsfrk(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaruv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgesvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dppcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cungql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dla_lin_berr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlatrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlaqsp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlaqr4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ilaenv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zsytrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgebrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlasq3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_disnan(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_stptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgsvj1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zspcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dposvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlansp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssyevr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_ssyevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlanhb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgesdd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhpsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhpev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_claqr5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgbsvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slartgp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dpptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zla_gercond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgeqlf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhptrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgeqp3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zla_syrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlarrj(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtrtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cpbstf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zpotrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_spbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dspsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgeevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cla_wwaddw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dpbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaqsb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssygs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssygst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssygv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssygvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssygvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssyrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_ssyrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_ssysv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssysvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_ssysvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_ssyswapr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssytd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssytf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssytrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_ssytrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgelsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlaqr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssytri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssytri2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssytri2x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssytrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ssytrs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_stbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_stbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_stbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_stfsm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_stftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_stfttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_stfttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_stgevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_stgex2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_stgexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_stgsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_stgsja(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_stgsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_stgsy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_stgsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_stpcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_stprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_stptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_stptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_stpttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_stpttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_strcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_strevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_strexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_strrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_strsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_strsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_strsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_strti2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_strtri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgelsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgbsvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zpbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zpftrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgges(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cptrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlahef(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cunmtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhegvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sggsvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlangb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clangb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgtsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sspgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhpcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dptts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlacp2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zposvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dstein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zherfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dpotrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cungrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slarrr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slasq3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlaqge(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zupgtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chpcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssbgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dpptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaeda(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctgex2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chgeqz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dstedc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zptrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ilaprec(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zsysv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cggbal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zggbak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlauum(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlantb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgeequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dladiv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_strtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_strttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_strttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_stzrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_stzrzf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_xerbla(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_xerbla_array(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zbbcsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zbdsqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zcgesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zcposv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zdrscl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgbbrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgbequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_zgbrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_zgbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_zgbsvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_zgbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgebak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgebal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgebd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgebrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgecon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgeequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgeequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgees(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgeesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgeev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgeevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgegs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgegv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgehd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgehrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgelq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgelqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgels(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgelsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgelss(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgelsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgelsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_zgeql2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_claqsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaed4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dormqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgegs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgeqlf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgeqp3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgeqpf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgeqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgeqr2p(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgeqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgeqrfp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgerfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_zgerfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_zgerq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgerqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgesc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgesdd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_zgesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctgsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgesvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlascl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_checon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cla_syrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chbgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaqsb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zla_gbrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dptcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slarnv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dormhr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgelss(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssyrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgeqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssbev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cunmrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_izmax1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zla_wwaddw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlagv2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlahrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgelsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_spbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgbbrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtrcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsytf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlapmr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sorg2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zunglq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaln2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtrti2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlasq1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zpotf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlapmt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlag2c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztgex2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgerq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zung2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zunmrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zuncsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cpftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgees(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgeev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaed5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsyevr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgeqpf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtzrzf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dpoequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaed9(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zunbdb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zpbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsbgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlanhp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlaqhp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chesvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sposvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgesvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgesvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_zgesvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_zgetc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgetf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgetrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgetri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgetrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zggbak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zggbal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgges(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zggesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zggev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zggevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zggglm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgghrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgglse(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_zggqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clarf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slasdq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlasr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgerq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slagtm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dla_rpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cungqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_spoequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctfttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cla_lin_berr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlarfx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlaqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cspsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgeqpf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cla_hercond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgeqrfp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctrevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clarfb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlansb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zpbstf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clarzb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlansf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_spftrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsysvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clacpy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgelq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zggrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zggsvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zggsvp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgtcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgtrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgtsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgtsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zgtts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhbev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhbevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhbevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhbgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhbgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhbgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhbgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhbtrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhecon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zheequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zheev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_zheevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dggev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dhseqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cla_syrcond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgeequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtfsm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slangt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlarfb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgelsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slabad(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zunmql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zla_syrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sla_gbrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_stbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlasr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zsytf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlagtf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgeqp3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cptcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgeequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dhgeqz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slarfb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaed1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtrtri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zheevr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zheevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhegs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhegst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhegv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhegvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhegvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zherfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_zherfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_zhesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhesvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_zhesvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_zhetd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhetf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhetrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhetrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhetri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhetrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhetrs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhfrk(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhgeqz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhpcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhpev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhpevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhpevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhpgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhpgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhpgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhpgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_zhprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhbevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slatrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_spttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaqsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zsyrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgeqlf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cpoequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slansb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssbgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sormhr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dspevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sstegr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sla_syamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dstevr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chpsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhpsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhpsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhptrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhsein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zhseqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlabrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlacgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlacn2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlacon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlacp2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlacpy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlacrm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlacrt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zladiv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlaed0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_zlaed7(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_strrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clarfx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaswp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dpbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgels(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zpbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dporfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slagv2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_claqsp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slasr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgesc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlarrc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlaed8(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlaein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlaesy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlaev2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlag2c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlags2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlagtm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlahef(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlahqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlahr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlahrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlaic1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_zlals0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlacn2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtpttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztpcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cuncsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sspgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlasq4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zsysvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dbdsqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zheev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlauum(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zggsvp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cptsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chegst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgeev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhbgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsyrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgelsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zspsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlacpy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztrsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cunml2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_csyconv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaqsp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlalsa(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_zlalsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clalsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaed6(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slalsa(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssyrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsytrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgetri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlalsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgelsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgeqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cla_gerfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chegvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cpoequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaqr5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sggevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slasrt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztfsm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cunmqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsyswapr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dla_gbrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cporfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dpprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztrttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgeevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssytf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sggbak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsytd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlaqgb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlangb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlange(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlangt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlanhb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_zlanhe(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dla_syrcond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slarscl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chpgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slasq4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhetrs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgerq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_iparmq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlanhf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlanhp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlanhs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlanht(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlansb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlansp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlansy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlantb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlantp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_zlantr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_stgexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sppequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_spbstf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dormrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slange(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlasrt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgebal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cggesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chbgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clartg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlaed0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cla_porcond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlar2v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgegv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctzrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhetd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clantr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cpotrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlatdf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtgsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cunm2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlarnv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlarfgp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zspmv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlas2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssycon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaebz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cggrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_clangt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zungqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlapll(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlapmr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlapmt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlaqgb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlaqge(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlaqhb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlaqhe(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlaqhp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlaqp2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlaqps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlaqr0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlaqr1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlaqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlaqr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlaqr4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlaqr5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlaqsb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlaqsp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlaqsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlar1v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_zlar2v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssytri2x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zla_syrcond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhbgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cstedc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sstevr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlarcm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlarf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlarfb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlarfg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlarfgp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlarft(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlarfx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlargv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlarnv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlarrv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_zlarscl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_zlartg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlartv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlarz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlarzb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlarzt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlascl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_zlascl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_zlaset(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlasr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlassq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_zlaswp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsbgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slassq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctfsm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chegvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsbevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zunmbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgeequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlagtm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssyevr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssytrs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlags2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cpstrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlasyf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlat2c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlatbs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlatdf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlatps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlatrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlatrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlatrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlatzm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlauu2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zlauum(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_zla_gbamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS extern void init_lapack_zla_gbrcond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zporfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgetrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgerfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chbtrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slasq5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlarzb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlahqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_stbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlabrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgeqpf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cspcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgtsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cla_syrcond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgerfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssygvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_claed8(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sla_gbrcond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ilaslc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsgesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_zla_gbrcond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_zla_gbrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_zla_gbrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_zla_geamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_zla_gercond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_zla_gercond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_zla_gerfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_zla_heamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_zla_hercond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_zla_hercond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_zla_herfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_zla_herpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_zla_lin_berr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_zla_porcond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_zla_porcond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_zla_porfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS extern void init_lapack_zla_porpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zsytri2x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chbevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgeev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sorghr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slasy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sspcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dggsvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slantp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sormqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgerqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlat2s(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlacrm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_icmax1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaset(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlarcm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chpev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dposv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cla_gbamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slapy3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dla_porpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sggqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zgbsvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chpevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlaqtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_spotrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgelqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlarrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ssytri2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_stgex2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_csptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dla_geamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhetri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_slaqr1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dpftrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zunm2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctrti2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dtbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zpptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_spstf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_stfttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_zla_rpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_zla_syamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_zla_syrcond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_zla_syrcond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_zla_syrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_zla_syrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +#ifdef USEXBLAS +extern void init_lapack_zla_wwaddw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_zpbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zpbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zpbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zpbstf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zpbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zpbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zpbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zpbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zpbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zpftrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zpftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_zpftrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cla_gbrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cgtsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlagtm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dsbtrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlanhf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlasd5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_chetrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zggrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgeqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlahqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zpocon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zpoequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zpoequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zporfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_zporfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_zposv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zposvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_zposvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_zpotf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zpotrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zpotri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zpotrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zppcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_zppequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dorcsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_zpprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ctgsy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_cladiv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zggev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_ztrtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlarf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlargv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlarfg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zppsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zppsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zpptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zpptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zpptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zpstf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zpstrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zptcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zpteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zptrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zptsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zptsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zpttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zpttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zptts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zrot(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zspcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zspmv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zspr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zsprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zspsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zspsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zsptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zsptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zsptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zstedc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zstegr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zstein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zstemr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zsteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zsycon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zsyconv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zsyequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zsymv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zsyr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zsyrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_zsyrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_zsysv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zsysvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#ifdef USEXBLAS +extern void init_lapack_zsysvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +#endif +extern void init_lapack_zsyswapr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zsytf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_zsytrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sposvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlahr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zlascl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_zhegvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgesvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dspevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zsytri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zsytri2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zsytri2x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zsytrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zsytrs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztfsm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztfttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztfttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztgevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztgex2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztgexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztgsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); extern void init_lapack_ztgsja(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgetrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dgegv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_sgecon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); -extern void init_lapack_dlasq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztgsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztgsy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztgsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztpcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztpttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztpttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztrcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztrevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztrexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztrrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztrsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztrsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztrsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztrti2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztrtri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztrtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztrttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztrttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztzrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_ztzrzf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zunbdb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zuncsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zung2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zung2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zungbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zunghr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zungl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zunglq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zungql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zungqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zungr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zungrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zungtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zunm2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zunm2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zunmbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zunmhr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zunml2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zunmlq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zunmql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zunmqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zunmr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zunmr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zunmrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zunmrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zunmtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zupgtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); +extern void init_lapack_zupmtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO); void Init_lapack(){ VALUE mNumRu; @@ -1646,1634 +1906,1894 @@ rblapack_ZERO = INT2NUM(0); - init_lapack_slabrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlargv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssyconv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zpotri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cla_porpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cungl2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgtsvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dpotri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlacrt(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cpocon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cggbak(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cbbcsd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cbdsqr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgbbrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgbcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgbequ(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgbequb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgbrfs(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_cgbrfsx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_cgbsv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgbsvx(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_cgbsvxx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_cgbtf2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgbtrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgbtrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgebak(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgebal(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgebd2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgebrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgecon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgeequ(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgeequb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgees(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgeesx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgeev(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgeevx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgegs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgegv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgehd2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgehrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgelq2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgelqf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgels(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgelsd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgelss(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgelsx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgelsy(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgeql2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgeqlf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgeqp3(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgeqpf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgeqr2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgeqr2p(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgeqrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgeqrfp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgerfs(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_cgerfsx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_cgerq2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgerqf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgesc2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgesdd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgesv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgesvd(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_cgesvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgtcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgbtrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtptri(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_cgesvxx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_cgetc2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgetf2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgetrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgetri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgetrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cggbak(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cggbal(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgges(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cggesx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cggev(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cggevx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cggglm(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgghrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgglse(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cggqrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cggrqf(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_cggsvd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlansy(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaed6(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlaset(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsptrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgesc2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slatbs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dormql(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cggsvp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgtcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgtrfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgtsv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgtsvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgttrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgttrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cgtts2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chbev(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chbevd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chbevx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chbgst(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chbgv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chbgvd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chbgvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chbtrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_checon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cheequb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cheev(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cheevd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cheevr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cheevx(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_chegs2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztrti2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_strsna(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlatbs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztrexc(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgehd2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slanhs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slagts(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgtsv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgerfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ilaver(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cggqrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cunmql(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dspgvd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtgevc(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cggev(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clacgv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlangb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgesvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_csysvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sppsvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zsptri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlapll(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgesc2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaswp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgbsvxx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_strsen(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgges(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dptsv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sla_wwaddw(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chegst(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chegv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chegvd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chegvx(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_cherfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgghrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgttrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgelq2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgesvd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slasd4(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_spptrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zcgesv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dpttrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlasd6(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgeequ(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssysv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cpbrfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlaqhe(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlarf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slarf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dla_gercond(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slasd1(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztrtri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlatps(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_claqr3(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slansy(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlartv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cpptrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgeqr2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dggbak(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssbtrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgglse(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clatrz(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dpocon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgeqp3(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sorgql(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgetrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dggevx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_claqhp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsbgvd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clascl2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clartv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctgexc(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sorgqr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaqps(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgeqr2p(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgebrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slagtf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlasd8(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_spoequ(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaic1(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgetri(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_cherfsx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_chesv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chesvx(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_chesvxx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_chetd2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chetf2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chetrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chetrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chetri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chetrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chetrs2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chfrk(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chgeqz(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chla_transtype(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chpcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chpev(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chpevd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chpevx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chpgst(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chpgv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chpgvd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chpgvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chprfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chpsv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chpsvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chptrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chptrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chptri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chptrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chsein(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_chseqr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clabrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clacgv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clacn2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clacon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clacp2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clacpy(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clacrm(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clacrt(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cladiv(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_claed0(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztftri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgbequb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_stpcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cggevx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlanv2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dggbal(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgbbrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_claed7(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_claed8(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_claein(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_claesy(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_claev2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clag2z(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clags2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clagtm(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clahef(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clahqr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clahr2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clahrd(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_claic1(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlartg(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_csytrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaruv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cpftrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlarft(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgebd2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clals0(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clalsa(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clalsd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clangb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clange(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clangt(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clanhb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clanhe(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clanhf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clanhp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clanhs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clanht(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clansb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clansp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clansy(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clantb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clantp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clantr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clapll(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clapmr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clapmt(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_claqgb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_claqge(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_claqhb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_claqhe(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_claqhp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_claqp2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_claqps(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_claqr0(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_claqr1(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_claqr2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_claqr3(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_claqr4(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_claqr5(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_claqsb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_claqsp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_claqsy(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clar1v(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clar2v(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clarcm(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clarf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clarfb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clarfg(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clarfgp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clarft(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clarfx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clargv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clarnv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clarrv(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_clarscl2(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_clartg(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clartv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clarz(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clarzb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clarzt(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clascl(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_clascl2(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_claset(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clasr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_classq(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_claswp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clasyf(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_clatbs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clatdf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clatps(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clatrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clatrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clatrz(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clatzm(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clauu2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_clauum(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_cla_gbamv(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_cla_gbrcond_c(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_cla_gbrcond_x(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_cla_gbrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_cla_gbrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_cla_geamv(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_cla_gercond_c(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS init_lapack_cla_gercond_x(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgeql2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgeqrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgbequb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhptrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clanhs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlasd0(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_cla_gerfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_cla_heamv(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_cla_hercond_c(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_cla_hercond_x(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_cla_herfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_cla_herpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_cla_lin_berr(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_cla_porcond_c(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_cla_porcond_x(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_cla_porfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_cla_porpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_cla_rpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_cla_syamv(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_cla_syrcond_c(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_cla_syrcond_x(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_cla_syrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_cla_syrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_cla_wwaddw(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_cpbcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cpbequ(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cpbrfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cpbstf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cpbsv(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_cpbsvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ilauplo(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cpbtf2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cpbtrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cpbtrs(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_cpftrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chetf2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clals0(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slarrc(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zrot(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlarrv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_stgsja(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_spbrfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgeqr2p(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgelsy(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlarrk(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgbsvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtzrqf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_spftrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cheev(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgesvxx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sstebz(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlarre(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgerqf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgtsvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slarfg(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlapy3(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgsvj0(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dspev(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cupmtr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgbsv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_stgsyl(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtrsyl(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sspsvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssbevd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_claqr1(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_csytri2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sla_gerfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssytd2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cspsvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cpotf2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zherfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clacrm(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zungbr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_xerbla_array(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhbgvd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_scsum1(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dstev(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlatbs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slartv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_spttrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctfttr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zla_gbrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgebd2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsysv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtrrfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_csptrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slartg(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zpocon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cpftri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cpftrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cpocon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cpoequ(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cpoequb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cporfs(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS init_lapack_cporfsx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztrcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sptts2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlascl2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_csyequb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sporfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slacon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dorgrq(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgehd2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zla_gerfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cstemr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cpotrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaic1(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_stbtrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_stfsm(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slacn2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhetrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztzrzf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgtsv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dla_syrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sbdsdc(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlasv2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlaqsb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sorgr2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cggglm(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clar1v(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtftri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cupgtr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slas2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaqge(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chesv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cheevr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaqr4(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dorgbr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cpbcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slacpy(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zla_gbamv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_claesy(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_shgeqz(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtrttf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clansy(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slarrb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_claset(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlasyf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgeqrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_claqps(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zppcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zstein(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slalsd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_spstrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlacon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgetri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slapmt(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgbtrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dspgst(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsygvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sorgbr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_csycon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaqp2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zpbsv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slapmr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cstegr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlarfgp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlantr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zpoequ(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgerqf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zla_herfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zpstrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgetrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgebd2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsygs2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sorml2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_shsein(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zptts2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slasq1(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlasd7(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cheevx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlar1v(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssteqr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlascl(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dorg2r(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaed2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtgsen(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgetf2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgbrfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slarft(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chetrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgesdd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_claqge(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhbgvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zsptrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dpoequ(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slarzt(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztbtrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgetrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dorml2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cunmr2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgels(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaqr1(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dstevd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zunm2r(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssyev(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgges(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlaed8(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssytri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cpstf2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgbtrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgbtrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssterf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sla_porfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cla_gbrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaed8(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dpbtrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlatdf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zpttrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaset(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dstemr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slatps(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaed7(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgglse(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsptrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztgevc(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_spbcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlanhs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zladiv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dormr3(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zla_syrcond_x(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtgsja(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_cposv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cposvx(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_cposvxx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_cpotf2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cpotrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cpotri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cpotrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cppcon(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_cppequ(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zggsvd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgegs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cggsvp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zsyconv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssptrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctpttf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgerfsx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cpprfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cppsv(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_cppsvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dposvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgeqpf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sggbal(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztptrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlahrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dggsvp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zla_syamv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaed3(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_stgsna(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgebak(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgeqrfp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sstev(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slatdf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_csytri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlauu2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlanhs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dla_syrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cpptrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cpptri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cpptrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cpstf2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cpstrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cptcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cpteqr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cptrfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cptsv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cptsvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cpttrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cpttrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cptts2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_crot(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cspcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cspmv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cspr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_csprfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cspsv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cspsvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_csptrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_csptri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_csptrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_csrscl(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cstedc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cstegr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cstein(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cstemr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_csteqr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_csycon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_csyconv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_csyequb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_csymv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_csyr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_csyrfs(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS init_lapack_csyrfsx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_stgsen(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgetc2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zggbal(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlarfb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssysvxx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgghrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaed9(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgecon(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif init_lapack_csysv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zla_herpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_spbtrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slarre(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cbdsqr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dla_gbamv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlarnv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_spotri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ilaclr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlacpy(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slasq2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_strexc(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztrsna(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_csysvx(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_csysvxx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif init_lapack_csyswapr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgbrfsx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_claqgb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlasq5(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgbrfsx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sptcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsbevx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sporfsx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clarrv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_csytf2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_csytrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_csytri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_csytri2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_csytri2x(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_csytrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_csytrs2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctbcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctbrfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctbtrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctfsm(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctftri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctfttp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctfttr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctgevc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctgex2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctgexc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctgsen(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctgsja(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctgsna(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctgsy2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctgsyl(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctpcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctprfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctptri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctptrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctpttf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctpttr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctrcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctrevc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctrexc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctrrfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctrsen(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_ctrsna(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chptrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cungr2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgeqrfp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsyevd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctrsyl(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctrti2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctrtri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctrtrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctrttf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctrttp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctzrqf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ctzrzf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cunbdb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cuncsd(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_cung2l(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaed8(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zunmr3(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dorm2l(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhbevx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsterf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clanhp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgelqf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clantp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtbcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_csytrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlacon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlacn2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlatrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgeqlf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgerfsx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sspev(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dptsvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slarrk(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clacon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgeesx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zcposv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlangt(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlarra(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlartgs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlaqr1(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgtsvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlatrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cstein(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cpotri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgtts2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgehd2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlaic1(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaqr3(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zla_rpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sposv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgeev(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zsptrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sspevd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zsytri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlaein(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sla_lin_berr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlaqr5(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlapmr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cla_herpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clargv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dspsvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cung2r(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_cungbr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zunml2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slasq6(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sspevx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgsvj0(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zsyswapr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chseqr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dormr2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zggglm(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zpptrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsyconv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sggsvp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_iladlc(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhpsv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssptrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zggesx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zsysvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cunghr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cungl2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cunglq(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cungql(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cungqr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cungr2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cungrq(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cungtr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cunm2l(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cunm2r(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cunmbr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cunmhr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cunml2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cunmlq(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cunmql(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cunmqr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cunmr2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cunmr3(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cunmrq(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cunmrz(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cunmtr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cupgtr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_cupmtr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dbbcsd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dbdsdc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dbdsqr(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_ddisna(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zbbcsd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgelsd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztzrqf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chetrs2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgejsv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clabrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sggglm(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_strti2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_spptrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sla_gbamv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgelsd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zla_hercond_x(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgtcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_srscl(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cpbsv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clanht(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztfttr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_spbtf2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaln2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slasdt(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgbbrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgbcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgbequ(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgbequb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgbrfs(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_dgbrfsx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_dgbsv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgbsvx(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_dgbsvxx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_dgbtf2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgbtrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgbtrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgebak(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgebal(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgebd2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgebrd(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_dgecon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cla_syrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cla_porcond_c(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slapy2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zla_gercond_x(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlarrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cung2r(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dpttrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgeesx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sormr3(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztgexc(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slarrv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zspr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtbrfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlaqp2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlanht(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgeequ(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgeequb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgees(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgeesx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgeev(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgeevx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgegs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgegv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgehd2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgehrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgejsv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgelq2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgelqf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgels(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgelsd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgelss(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgelsx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgelsy(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgeql2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgeqlf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgeqp3(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgeqpf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgeqr2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgeqr2p(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgeqrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgeqrfp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgerfs(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_dgerfsx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_dgerq2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgerqf(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_dgesc2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_spbequ(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clarcm(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssygs2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chsein(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtrsen(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgesdd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgesv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgesvd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgesvj(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgesvx(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_dgesvxx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_dgetc2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgetf2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgetrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgetri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgetrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dggbak(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dggbal(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgges(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dggesx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dggev(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dggevx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dggglm(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgghrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgglse(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dggqrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dggrqf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dggsvd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dggsvp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgsvj0(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgsvj1(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgtcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgtrfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgtsv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgtsvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgttrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgttrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dgtts2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dhgeqz(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dhsein(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dhseqr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_disnan(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlabad(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlabrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlacn2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlacon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlacpy(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dladiv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlae2(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_dlaebz(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaed0(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaed1(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaed2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaed3(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaed4(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaed5(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaed6(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaed7(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaed8(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaed9(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaeda(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaein(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaev2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaexc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlag2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlag2s(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlags2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlagtf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlagtm(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlagts(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlagv2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlahqr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlahr2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlahrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaic1(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaln2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlals0(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlalsa(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlalsd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlamrg(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaneg(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlangb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlange(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlangt(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlanhs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlansb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlansf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlansp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlanst(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlansy(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlantb(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_dlantp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_strevc(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaqge(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slargv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zpbequ(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slasd2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zpteqr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sspgv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgbtrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhpgvd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgbequb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slasd5(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zsymv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctpcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgelsd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zdrscl(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clarz(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgecon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgerfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_claqsb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sormrz(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgbsv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sormlq(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgegv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sla_syrcond(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgghrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgees(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlaqsy(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clasyf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_csytri2x(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clalsa(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clascl(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgesvj(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_stftri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slahr2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clahr2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssptrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgebal(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgesvd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlasd4(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaqsy(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlansy(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsbgvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cpbtrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_stzrqf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dpteqr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssytrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zposv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlantr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlanv2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlapll(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlapmr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlapmt(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlapy2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlapy3(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaqgb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaqge(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaqp2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaqps(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaqr0(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaqr1(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaqr2(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_dlaqr3(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhegv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhpgv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chpevx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_csprfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgbrfsx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlag2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sggev(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_claswp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaein(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_stgsy2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zpotrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssyequb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgesv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zunmr2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zla_porcond_c(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dspcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dla_gbrcond(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slatrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlarfg(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slasd0(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgtts2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_csrscl(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgebak(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sladiv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dla_gbrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cheevd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssygv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dbdsdc(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sla_porcond(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zstedc(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dormbr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlatzm(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgehrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaqr2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zsyequb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_strtrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sorg2l(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsptri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsbev(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgebrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgerfsx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlarscl2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaqr4(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaqr5(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaqsb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaqsp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaqsy(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaqtr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlar1v(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlar2v(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlarf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlarfb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlarfg(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlarfgp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlarft(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlarfx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlargv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlarnv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlarra(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlarrb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlarrc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlarrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlarre(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlarrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlarrj(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlarrk(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlarrr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlarrv(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS init_lapack_dlarscl2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgtcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_strcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zsytri2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlassq(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dla_gerfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cspmv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgetc2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sopgtr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_strttf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztgsyl(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cla_porfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chprfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zporfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztrsyl(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtgexc(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chpsv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhegst(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgesvxx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dpbstf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctrtri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlantb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clag2z(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlangt(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_drscl(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_dlartg(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlartgp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlartgs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlartv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaruv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlarz(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlarzb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlarzt(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlas2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlascl(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_dlascl2(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_dlasd0(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlasd1(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlasd2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlasd3(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlasd4(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlasd5(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlasd6(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlasd7(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlasd8(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlasda(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_dlasdq(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsygv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgtrfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dormrq(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dppsvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgesvxx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctprfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dhsein(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhegs2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dorgr2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_stfttp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaqr0(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clahrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_claqp2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slasda(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_spotf2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sormtr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zposvxx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssbgv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zptsv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlarzt(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sppsv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sormr2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sggesx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaqr5(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sopmtr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgegs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlasdt(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaset(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlasq1(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlasq2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlasq3(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlasq4(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlasq5(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlasq6(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlasr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlasrt(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlassq(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlasv2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlaswp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlasy2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlasyf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlat2s(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlatbs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlatdf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlatps(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_dlatrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtrevc(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dzsum1(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_stpttr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssptri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sorm2r(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlarz(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sspsv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgbbrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgglse(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clarfgp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlatrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlatrz(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlatzm(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlauu2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dlauum(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_dla_gbamv(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_dla_gbrcond(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_dla_gbrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_dla_gbrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_dla_geamv(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_dla_gercond(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_dla_gerfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_dla_lin_berr(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_dla_porcond(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_dla_porfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_dla_porpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_dla_rpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_dla_syamv(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_dla_syrcond(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_dla_syrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_dla_syrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_dla_wwaddw(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_dopgtr(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_dopmtr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlasd2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaneg(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chetri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cpteqr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlabrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zsteqr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctgsen(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zla_lin_berr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dorbdb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dorcsd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dorg2l(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dorg2r(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dorgbr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dorghr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dorgl2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dorglq(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dorgql(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dorgqr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dorgr2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dorgrq(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dorgtr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dorm2l(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dorm2r(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dormbr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dormhr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dorml2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dormlq(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dormql(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dormqr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dormr2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dormr3(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dormrq(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dormrz(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dormtr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dpbcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dpbequ(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dpbrfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dpbstf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dpbsv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dpbsvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dpbtf2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dpbtrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dpbtrs(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_dpftrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zpbsvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slanst(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zsyrfsx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhfrk(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dpftri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dpftrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dpocon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dpoequ(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dpoequb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dporfs(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_dporfsx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_dposv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dposvx(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_dposvxx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_dpotf2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dpotrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dpotri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dpotrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dppcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dppequ(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dpprfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dppsv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dppsvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dpptrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dpptri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dpptrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dpstf2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dpstrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dptcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dpteqr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dptrfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dptsv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dptsvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dpttrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dpttrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dptts2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_drscl(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsbev(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsbevd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsbevx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsbgst(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsbgv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsbgvd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsbgvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsbtrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsfrk(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsgesv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dspcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dspev(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dspevd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dspevx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dspgst(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dspgv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dspgvd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dspgvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsposv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsprfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dspsv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dspsvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsptrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsptrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsptri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsptrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dstebz(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dstedc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dstegr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dstein(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dstemr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsteqr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsterf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dstev(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dstevd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dstevr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dstevx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsycon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsyconv(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_dsyequb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlaesy(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cla_geamv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_csymv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgttrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgegs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgbtrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsyev(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsyevd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsyevr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsyevx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsygs2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsygst(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsygv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsygvd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsygvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsyrfs(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_dsyrfsx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_dsysv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsysvx(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_dsysvxx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_dsyswapr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsytd2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsytf2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsytrd(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_dsytrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slantr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sstevd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctgsja(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clange(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgeql2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zppsvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slascl2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clapmr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctgsna(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgelq2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clauum(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaed0(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zsytrs2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chbevd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctrsyl(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sstein(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgttrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clatrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhsein(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sstedc(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cppcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zungl2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dstebz(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clanhf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sla_geamv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cptsvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhbtrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgtrfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlalsa(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsposv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sorgl2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgtrfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clauu2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsytri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsytri2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsytri2x(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsytrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dsytrs2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtbcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtbrfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtbtrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtfsm(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtftri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtfttp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtfttr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtgevc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtgex2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtgexc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtgsen(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtgsja(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtgsna(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtgsy2(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_dtgsyl(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dorbdb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slarfx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlaqr0(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgeqlf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slag2d(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgesv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctrtrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slag2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zpoequb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtpcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtprfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtptri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtptrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtpttf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtpttr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtrcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtrevc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtrexc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtrrfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtrsen(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtrsna(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtrsyl(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtrti2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtrtri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtrtrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtrttf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtrttp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtzrqf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dtzrzf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_dzsum1(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_icmax1(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ieeeck(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ilaclc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ilaclr(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_iladiag(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhpgst(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slamrg(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgeqr2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgetf2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clapmt(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chbgvd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhgeqz(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhptri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slasd8(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slarrj(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtgsy2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_claqr4(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgbtf2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlatrz(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_iladlc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_iladlr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ilaenv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ilaprec(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ilaslc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ilaslr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ilatrans(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ilauplo(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ilaver(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ilazlc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ilazlr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_iparmq(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_izmax1(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_lsamen(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sbbcsd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sbdsdc(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_sbdsqr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dormlq(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dpftri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssytrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sorglq(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgels(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgesv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clatps(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlapmt(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slals0(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgetc2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slauum(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaed1(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zla_porfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sptsvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssyswapr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgelqf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtfttr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_scsum1(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sdisna(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgbbrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgbcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgbequ(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgbequb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgbrfs(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_sgbrfsx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_sgbsv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgbsvx(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_sgbsvxx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_sgbtf2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgbtrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgbtrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgebak(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgebal(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgebd2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgebrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgecon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgeequ(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgeequb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgees(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgeesx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgeev(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgeevx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgegs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgegv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgehd2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgehrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgejsv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgelq2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgelqf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgels(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgelsd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgelss(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgelsx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgelsy(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgeql2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgeqlf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgeqp3(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgeqpf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgeqr2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgeqr2p(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgeqrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgeqrfp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgerfs(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_sgerfsx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_sgerq2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgerqf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgesc2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgesdd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgesv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgesvd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgesvj(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgesvx(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_sgesvxx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_sgetc2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgetf2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgetrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgetri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgetrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sggbak(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sggbal(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgges(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sggesx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sggev(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sggevx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sggglm(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgghrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgglse(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sggqrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sggrqf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sggsvd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sggsvp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgsvj0(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgsvj1(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgtcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgtrfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgtsv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgtsvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgttrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgttrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sgtts2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_shgeqz(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_shsein(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_shseqr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sisnan(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slabad(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slabrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slacn2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slacon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slacpy(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sladiv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slae2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaebz(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaed0(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaed1(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaed2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaed3(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaed4(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaed5(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaed6(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaed7(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaed8(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaed9(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaeda(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaein(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaev2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaexc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slag2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slag2d(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slags2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slagtf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slagtm(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slagts(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slagv2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slahqr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slahr2(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_slahrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sppcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsygst(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgeqp3(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsyev(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgetrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cla_gbrcond_c(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zsyr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dpbrfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgels(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgebrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sspgst(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zpftri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlabad(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zunmlq(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clanhe(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgetrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slarra(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctrrfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zunmtr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sla_syrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssysvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaic1(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaln2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slals0(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slalsa(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slalsd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slamrg(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaneg(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slangb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slange(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slangt(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slanhs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slansb(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_slansf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaed4(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chesvxx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dorgqr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cposv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztrevc(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgelqf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clarzt(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgebal(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slasd3(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgehrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chegv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dppequ(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cheequb(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_slansp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgbbrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clar2v(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clapll(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgesdd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chfrk(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cunmr3(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slatrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dorm2r(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clarfg(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgesvd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clansp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dstegr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssbgvd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlasd3(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgehrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhseqr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slanst(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slansy(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_slantb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sorgrq(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_claqr0(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zunmqr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zunmrz(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_xerbla(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgtts2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaed3(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhptrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgebd2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chpgvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctrttp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sla_syrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slauu2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_claqr2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_spteqr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slangb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cherfsx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaexc(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlansp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgelq2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlartv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlagts(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cpttrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlags2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgeevx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sptsv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtprfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtrttp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cposvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sdisna(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsysvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zupmtr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgbsv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsycon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cunghr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlaev2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chla_transtype(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgghrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cla_syamv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cppsv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaeda(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dorglq(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctrsen(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cungtr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chetd2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sisnan(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgerfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgejsv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtpcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slarfgp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chptrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_stgevc(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dpbtrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slantp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slantr(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_slanv2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slasd7(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgesvj(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cunmbr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ieeeck(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dormtr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlatrz(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgbrfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cla_herfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sormql(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhetf2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlanst(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlahr2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sorm2l(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zsycon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhesvxx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_spftri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgees(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaed2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ilazlc(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zpstf2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgeqr2p(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsytri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgetf2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zunmhr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztrrfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zunghr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgeqr2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtrexc(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctrexc(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctpttr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaqgb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slartgs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cpprfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_claqhe(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctzrzf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clatzm(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlarrr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhbev(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sla_rpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dspgv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sggrqf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slar2v(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaed0(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsytri2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slags2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlarzb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgebak(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztgsen(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhetrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dla_syamv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cla_rpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zpbtrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clacrt(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgetf2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlatzm(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaev2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zungrq(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cunmlq(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ilaslr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sorgtr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztpttf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaqps(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgeequb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgelss(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgeequb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slapll(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slapmr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slapmt(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slapy2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slapy3(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaqgb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaqge(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaqp2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaqps(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaqr0(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaqr1(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaqr2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaqr3(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaqr4(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaqr5(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaqsb(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_slaqsp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zppsv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zungql(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cunm2r(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zpbtf2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dpotf2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaqsy(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaqtr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slar1v(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slar2v(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slarf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slarfb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slarfg(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slarfgp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slarft(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slarfx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slargv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slarnv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slarra(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slarrb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slarrc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slarrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slarre(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slarrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slarrj(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slarrk(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slarrr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slarrv(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_slarscl2(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_slartg(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slartgp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slartgs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slartv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaruv(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_slarz(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsytrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sorcsd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zheevr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slarrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slasd6(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clarnv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_claed7(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgeesx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgtrfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dstevx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaed5(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sptrfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlaqhb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaqgb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlasdt(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zsprfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slarzb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slarzt(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slas2(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_slascl(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ilatrans(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlasq6(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zptsvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dpotrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clatdf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dggqrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtfttp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgelss(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sstemr(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_slascl2(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_slasd0(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slasd1(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slasd2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slasd3(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slasd4(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slasd5(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slasd6(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slasd7(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slasd8(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slasda(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slasdq(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slasdt(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaset(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slasq1(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slasq2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slasq3(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slasq4(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slasq5(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slasq6(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slasr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slasrt(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slassq(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slasv2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slaswp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slasy2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slasyf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slatbs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slatdf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slatps(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slatrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slatrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slatrz(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slatzm(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slauu2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_slauum(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_sla_gbamv(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_sla_gbrcond(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_sla_gbrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_sla_gbrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_sla_geamv(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_sla_gercond(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_sla_gerfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_sla_lin_berr(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_sla_porcond(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_sla_porfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_sla_porpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_sla_rpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_sla_syamv(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_sla_syrcond(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_sla_syrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_sla_syrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_sla_wwaddw(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_sopgtr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sopmtr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sorbdb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sorcsd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sorg2l(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sorg2r(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sorgbr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sorghr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sorgl2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sorglq(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sorgql(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sorgqr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sorgr2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sorgrq(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sorgtr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sorm2l(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sorm2r(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sormbr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sormhr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sorml2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sormlq(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sormql(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sormqr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sormr2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sormr3(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_sormrq(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sormrz(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sormtr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_spbcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_spbequ(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_spbrfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_spbstf(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_spbsv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlarrb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctrttf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaev2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_spbsvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_spbtf2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_spbtrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_spbtrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_spftrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_spftri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_spftrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_spocon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_spoequ(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_spoequb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sporfs(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_sporfsx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_sposv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sposvx(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_sposvxx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_spotf2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_spotrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_spotri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_spotrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sppcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sppequ(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_spprfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sppsv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sppsvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_spptrf(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_spptri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cspr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgbtrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cla_hercond_c(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cunbdb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_csyr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgerq2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlartg(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhesvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhpgvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slasyf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgehd2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zpptrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zptcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_strsyl(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cbbcsd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztrttf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_spptrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_spstf2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_spstrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sptcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_spteqr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sptrfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sptsv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sptsvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_spttrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_spttrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sptts2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_srscl(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssbev(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssbevd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssbevx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssbgst(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssbgv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssbgvd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssbgvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssbtrd(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_ssfrk(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsytrs2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zbdsqr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlae2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dpbcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctrcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clantb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sorbdb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaed7(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgetri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlartgp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zla_gbrcond_x(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_spotrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zla_porcond_x(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlarft(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztgsna(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cla_gbrcond_x(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slarzb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cla_heamv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dla_wwaddw(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_spocon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaqtr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtptrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dggrqf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgbrfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chbgv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_iladlr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chpgst(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dpstrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgbrfsx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sormbr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_csteqr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cpptri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlange(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlarzt(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlag2s(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clags2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztfttp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zla_heamv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dpptrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgeesx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssygst(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgees(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgges(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtrsna(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsygvd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cposvxx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zpttrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlals0(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctptri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zungtr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zheevx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlantp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_claein(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slae2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dla_porcond(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlasda(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgetc2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sbbcsd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cpttrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clacn2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dpbequ(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dorghr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgelsy(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgelsy(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cunmrq(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhecon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_csptrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sla_gercond(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dptrfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlacgv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlaqps(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctgevc(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cunmhr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztgsy2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sspcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sspev(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sspevd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sspevx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sspgst(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sspgv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sspgvd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sspgvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssprfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sspsv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sspsvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssptrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssptrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssptri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssptrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sstebz(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sstedc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sstegr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sstein(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sstemr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssteqr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssterf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sstev(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sstevd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_sstevr(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_sstevx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgbtf2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlalsa(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_stptri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztpttr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_csyrfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgbsvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaqr2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clacp2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dorg2l(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dpstf2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clagtm(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zla_hercond_c(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clasr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlange(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgeqrfp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ilaclc(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sla_gbrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlarz(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chbev(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_spprfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_strttp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlapll(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsyrfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dspgvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cpptrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_lsamen(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssycon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssyconv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssyequb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssyev(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssyevd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssyevr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssyevx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssygs2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssygst(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssygv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssygvd(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_ssygvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhetrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtpttr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlasy2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chpgvd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgbequb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_classq(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlasyf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zstemr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zheequb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dppsv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dorgql(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlatps(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dporfsx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgeequ(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cpbtf2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgehrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgbcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgtcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgeevx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clansb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_csytf2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chptrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlassq(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgesdd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cpbequ(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_csytrs2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clahqr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_crot(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaqr4(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgelss(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chetrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dopgtr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgeqr2p(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cptts2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zla_geamv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clatrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cunglq(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dggglm(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlarfx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhpevd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsyevx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clanhb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_csysvxx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clahef(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slar1v(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cla_gercond_c(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dbbcsd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlapy2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssyrfs(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_ssyrfsx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_ssysv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssysvx(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_ssysvxx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_ssyswapr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssytd2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssytf2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssytrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssytrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssytri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssytri2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssytri2x(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssytrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ssytrs2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_stbcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_stbrfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_stbtrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_stfsm(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_stftri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_stfttp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_stfttr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_stgevc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_stgex2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_stgexc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_stgsen(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_stgsja(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_stgsna(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_stgsy2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_stgsyl(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_stpcon(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_stprfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlar1v(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgegv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssbevx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgtts2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlasd1(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgbcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsprfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlauu2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clarscl2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlarrv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlat2c(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slahqr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgesvxx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaqp2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhpevx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dorgl2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_stptri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_stptrs(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_stpttf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgeql2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgerqf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_shseqr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaqr0(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgglse(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slatzm(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slarrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dorgtr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clarft(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dpbsv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ilazlr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlansb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_claqhb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_claev2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaneg(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_stpttr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_strcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_strevc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_strexc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_strrfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_strsen(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_strsna(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_strsyl(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_strti2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_strtri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_strtrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_strttf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_strttp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_stzrqf(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_stzrzf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zstegr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgbrfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlamrg(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgetrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slapll(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgebak(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dla_porfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zungr2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgebal(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zggevx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgsvj1(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zung2r(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zspsvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cpbtrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtgex2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssyevd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dggesx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sla_porpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slasv2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsytri2x(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsfrk(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsteqr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaruv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgesvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dppcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cungql(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztprfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dla_lin_berr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlatrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlaqsp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlaqr4(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ilaenv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zsytrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgebrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlasq3(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_disnan(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_stptrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgsvj1(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zspcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dposvxx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztbrfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlansp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssyevx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlanhb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgesdd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhpsvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhpev(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_claqr5(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgbsvxx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slartgp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dpptri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zla_gercond_c(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgeqlf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhptrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgeqp3(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zla_syrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlarrj(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtrtrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cpbstf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zpotrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_spbsvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dspsv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgeevx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cla_wwaddw(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dpbsvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaqsb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssytrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgelsx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlaqr3(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_xerbla(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_xerbla_array(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zbbcsd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zbdsqr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zcgesv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zcposv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zdrscl(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgbbrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgbcon(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_zgbequ(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_strtri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgelsd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgbsvxx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zpbcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zpftrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgges(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cptrfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlahef(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cunmtr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhegvd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sggsvd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlangb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clangb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgtsv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sspgvd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgttrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgbcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhpcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dptts2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhesv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlacp2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zposvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dstein(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zherfsx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dpotrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cungrq(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slarrr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slasq3(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlaqge(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zupgtr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chpcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssbgvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dpptrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaeda(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctgex2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chgeqz(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dstedc(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgbsvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zptrfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ilaprec(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zsysv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cggbal(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zggbak(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlauum(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlantb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgbtrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgeequ(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dladiv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgbequb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgbrfs(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_zgbrfsx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_zgbsv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgbsvx(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_zgbsvxx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_zgbtf2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgbtrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgbtrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgebak(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgebal(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgebd2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgebrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgecon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgeequ(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgeequb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgees(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgeesx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgeev(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgeevx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgegs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgegv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgehd2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgehrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgelq2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgelqf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgels(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgelsd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgelss(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgelsx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgelsy(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_zgeql2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_claqsy(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaed4(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dormqr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgegs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgeqlf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgeqp3(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgeqpf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgeqr2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgeqr2p(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgeqrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgeqrfp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgerfs(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_zgerfsx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_zgerq2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgerqf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgesc2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgesdd(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_zgesv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctgsyl(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgesvd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlascl(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgbcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_checon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cla_syrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctptrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chbgvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaqsb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zla_gbrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dptcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slarnv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dormhr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgelss(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssyrfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgeqrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssbev(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cunmrz(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_izmax1(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zla_wwaddw(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlagv2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chptri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlahrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgelsx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_spbtrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgbbrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtrcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsytf2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlapmr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sorg2r(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zunglq(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaln2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtrti2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlasq1(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgbsv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zpotf2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlapmt(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlag2c(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztgex2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgerq2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zung2l(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zunmrq(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zuncsd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cpftri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgees(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgeev(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaed5(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsyevr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgeqpf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtzrzf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dpoequb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaed9(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zunbdb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zpbrfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsbgst(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlanhp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlaqhp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chesvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sposvxx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgesvd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgesvx(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_zgesvxx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_zgetc2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgetf2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgetrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgetri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgetrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zggbak(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zggbal(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgges(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zggesx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zggev(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zggevx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zggglm(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgghrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgglse(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_zggqrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clarf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slasdq(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlasr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgerq2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slagtm(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dla_rpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cungqr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_spoequb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctfttp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cla_lin_berr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlarfx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlaqr2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cspsv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgeqpf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cla_hercond_x(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgeqrfp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctrevc(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clarfb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlansb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zpbstf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clarzb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlansf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_spftrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsysvxx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clacpy(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgelq2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zggrqf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zggsvd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zggsvp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgtcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgtrfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgtsv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgtsvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgttrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgttrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zgtts2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhbev(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhbevd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhbevx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhbgst(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhbgv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhbgvd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhbgvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhbtrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhecon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zheequb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zheev(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_zheevd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dggev(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dhseqr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cla_syrcond_x(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgeequb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtfsm(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slangt(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlarfb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgelsy(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slabad(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zunmql(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zla_syrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sla_gbrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgbequ(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_stbrfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlasr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zsytf2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlagtf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgeqp3(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cptcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgeequb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dhgeqz(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slarfb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaed1(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtrtri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zheevr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zheevx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhegs2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhegst(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhegv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhegvd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhegvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zherfs(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_zherfsx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_zhesv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhesvx(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_zhesvxx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_zhetd2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhetf2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhetrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhetrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhetri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhetrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhetrs2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhfrk(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhgeqz(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhpcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhpev(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhpevd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhpevx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhpgst(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhpgv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhpgvd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhpgvx(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_zhprfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhbevd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slatrz(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_spttrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaqsy(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zsyrfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgttrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgeqlf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cpoequ(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slansb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssbgst(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sormhr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dspevd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgbtf2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgbequ(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sstegr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sla_syamv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dstevr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chpsvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhpsv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhpsvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhptrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhptrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhptri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhptrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhsein(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zhseqr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlabrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlacgv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlacn2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlacon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlacp2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlacpy(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlacrm(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlacrt(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zladiv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlaed0(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_zlaed7(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_strrfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssprfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clarfx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaswp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dpbtf2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgels(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zpbtrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dporfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slagv2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_claqsp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slasr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgesc2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlarrc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlaed8(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlaein(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlaesy(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlaev2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlag2c(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlags2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlagtm(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlahef(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlahqr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlahr2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlahrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlaic1(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_zlals0(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlacn2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtpttf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztpcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cuncsd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sspgvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlasq4(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctbcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zsysvxx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dbdsqr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zheev(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlauum(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zggsvp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cptsv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chegst(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztbcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgeev(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhbgst(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsyrfsx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgelsx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zspsv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlacpy(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztrsen(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cunml2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_csyconv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaqsp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaexc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlalsa(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_zlalsd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clalsd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaed6(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slalsa(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssyrfsx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsytrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgetri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlalsd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgelsx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgeqrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cla_gerfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chegvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cpoequb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaqr5(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sggevx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slasrt(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztfsm(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cunmqr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsyswapr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dla_gbrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cporfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dpprfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaein(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztrttp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgeevx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssytf2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sggbak(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsytd2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlaqgb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlangb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlange(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlangt(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlanhb(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_zlanhe(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dla_syrcond(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slarscl2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgttrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chpgv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slasq4(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhetrs2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgerq2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_iparmq(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlanhf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlanhp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlanhs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlanht(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlansb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlansp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlansy(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlantb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlantp(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_zlantr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_stgexc(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sppequ(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_spbstf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dormrz(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slange(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlasrt(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgebal(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cggesx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chbgst(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clartg(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlaed0(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cla_porcond_x(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlar2v(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgegv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctzrqf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhetd2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clantr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cpotrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlatdf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtgsna(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cunm2l(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlarnv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlarfgp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zspmv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlas2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssycon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztptri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaebz(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cggrqf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_clangt(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zungqr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgttrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlapll(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlapmr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlapmt(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlaqgb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlaqge(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlaqhb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlaqhe(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlaqhp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlaqp2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlaqps(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlaqr0(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlaqr1(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlaqr2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlaqr3(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlaqr4(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlaqr5(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlaqsb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlaqsp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlaqsy(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlar1v(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_zlar2v(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssytri2x(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zla_syrcond_c(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhbgv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cstedc(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sstevr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlarcm(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlarf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlarfb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlarfg(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlarfgp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlarft(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlarfx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlargv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlarnv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlarrv(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_zlarscl2(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_zlartg(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlartv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlarz(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlarzb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlarzt(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlascl(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_zlascl2(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_zlaset(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlasr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlassq(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_zlaswp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsbgv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgbsvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slassq(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgttrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctfsm(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chegvd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsbevd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zunmbr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgeequ(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgbequ(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgbtf2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlagtm(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssyevr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssytrs2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlags2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cpstrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctbtrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctftri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlasyf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlat2c(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlatbs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlatdf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlatps(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlatrd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlatrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlatrz(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlatzm(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlauu2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zlauum(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_zla_gbamv(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS init_lapack_zla_gbrcond_c(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zporfsx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgetrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgerfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chbtrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slasq5(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlarzb(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlahqr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_stbcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlabrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgeqpf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cspcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgtsvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cla_syrcond_c(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgerfsx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssygvd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_claed8(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsptrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sla_gbrcond(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ilaslc(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsgesv(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_zla_gbrcond_x(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_zla_gbrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_zla_gbrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_zla_geamv(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_zla_gercond_c(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_zla_gercond_x(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_zla_gerfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_zla_heamv(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_zla_hercond_c(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_zla_hercond_x(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_zla_herfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_zla_herpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_zla_lin_berr(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_zla_porcond_c(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_zla_porcond_x(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_zla_porfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS init_lapack_zla_porpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zsytri2x(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chbevx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgeev(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sorghr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slasy2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sspcon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctbrfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dggsvd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slantp(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sormqr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgerqf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlat2s(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlacrm(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_icmax1(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaset(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlarcm(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chpev(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dposv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cla_gbamv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slapy3(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dla_porpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sggqrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zgbsvxx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chpevd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlaqtr(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_spotrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgelqf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlarrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ssytri2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_stgex2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_csptri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dla_geamv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhetri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_slaqr1(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dpftrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zunm2l(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctrti2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dtbtrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zpptri(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_spstf2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_stfttr(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_zla_rpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_zla_syamv(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_zla_syrcond_c(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_zla_syrcond_x(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_zla_syrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_zla_syrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif +#ifdef USEXBLAS + init_lapack_zla_wwaddw(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_zpbcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zpbequ(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zpbrfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zpbstf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zpbsv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zpbsvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zpbtf2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zpbtrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zpbtrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zpftrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zpftri(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_zpftrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cla_gbrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cgtsv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlagtm(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dsbtrd(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlanhf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlasd5(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_chetrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zggrqf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgeqr2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlahqr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zpocon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zpoequ(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zpoequb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zporfs(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_zporfsx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_zposv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zposvx(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_zposvxx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_zpotf2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zpotrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zpotri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zpotrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zppcon(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_zppequ(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dorcsd(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_zpprfs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ctgsy2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_cladiv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zggev(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_ztrtrs(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlarf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlargv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlarfg(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zppsv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zppsvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zpptrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zpptri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zpptrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zpstf2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zpstrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zptcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zpteqr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zptrfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zptsv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zptsvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zpttrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zpttrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zptts2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zrot(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zspcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zspmv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zspr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zsprfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zspsv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zspsvx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zsptrf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zsptri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zsptrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zstedc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zstegr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zstein(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zstemr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zsteqr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zsycon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zsyconv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zsyequb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zsymv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zsyr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zsyrfs(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_zsyrfsx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_zsysv(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zsysvx(mLapack, sHelp, sUsage, rblapack_ZERO); +#ifdef USEXBLAS + init_lapack_zsysvxx(mLapack, sHelp, sUsage, rblapack_ZERO); +#endif + init_lapack_zsyswapr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zsytf2(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_zsytrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sposvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlahr2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zlascl2(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_zhegvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgesvx(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dspevx(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zsytri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zsytri2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zsytri2x(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zsytrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zsytrs2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztbcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztbrfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztbtrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztfsm(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztftri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztfttp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztfttr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztgevc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztgex2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztgexc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztgsen(mLapack, sHelp, sUsage, rblapack_ZERO); init_lapack_ztgsja(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgetrf(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dgegv(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_sgecon(mLapack, sHelp, sUsage, rblapack_ZERO); - init_lapack_dlasq2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztgsna(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztgsy2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztgsyl(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztpcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztprfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztptri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztptrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztpttf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztpttr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztrcon(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztrevc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztrexc(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztrrfs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztrsen(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztrsna(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztrsyl(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztrti2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztrtri(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztrtrs(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztrttf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztrttp(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztzrqf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_ztzrzf(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zunbdb(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zuncsd(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zung2l(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zung2r(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zungbr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zunghr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zungl2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zunglq(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zungql(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zungqr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zungr2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zungrq(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zungtr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zunm2l(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zunm2r(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zunmbr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zunmhr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zunml2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zunmlq(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zunmql(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zunmqr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zunmr2(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zunmr3(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zunmrq(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zunmrz(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zunmtr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zupgtr(mLapack, sHelp, sUsage, rblapack_ZERO); + init_lapack_zupmtr(mLapack, sHelp, sUsage, rblapack_ZERO); } diff -Nru ruby-lapack-1.7.2/ext/sgbrfsx.c ruby-lapack-1.8.1/ext/sgbrfsx.c --- ruby-lapack-1.7.2/ext/sgbrfsx.c 2015-03-18 06:58:26.000000000 +0000 +++ ruby-lapack-1.8.1/ext/sgbrfsx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_sgbrfsx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_trans; char trans; VALUE rblapack_equed; @@ -237,6 +238,9 @@ rblapack_rcond = rb_float_new((double)rcond); rblapack_info = INT2NUM(info); return rb_ary_new3(9, rblapack_rcond, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_r, rblapack_c, rblapack_x, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/sgbsvxx.c ruby-lapack-1.8.1/ext/sgbsvxx.c --- ruby-lapack-1.7.2/ext/sgbsvxx.c 2015-03-18 06:58:27.000000000 +0000 +++ ruby-lapack-1.8.1/ext/sgbsvxx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_sgbsvxx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_fact; char fact; VALUE rblapack_trans; @@ -277,6 +278,9 @@ rblapack_info = INT2NUM(info); rblapack_equed = rb_str_new(&equed,1); return rb_ary_new3(15, rblapack_x, rblapack_rcond, rblapack_rpvgrw, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_ab, rblapack_afb, rblapack_ipiv, rblapack_equed, rblapack_r, rblapack_c, rblapack_b, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/sgelsd.c ruby-lapack-1.8.1/ext/sgelsd.c --- ruby-lapack-1.7.2/ext/sgelsd.c 2015-03-18 06:58:22.000000000 +0000 +++ ruby-lapack-1.8.1/ext/sgelsd.c 2018-03-08 07:50:28.000000000 +0000 @@ -41,7 +41,7 @@ argc--; rblapack_options = argv[argc]; if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { - printf("%s\n", "USAGE:\n s, rank, work, info, b = NumRu::Lapack.sgelsd( a, b, rcond, [:lwork => lwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SGELSD( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK, WORK, LWORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* SGELSD computes the minimum-norm solution to a real linear least\n* squares problem:\n* minimize 2-norm(| b - A*x |)\n* using the singular value decomposition (SVD) of A. A is an M-by-N\n* matrix which may be rank-deficient.\n*\n* Several right hand side vectors b and solution vectors x can be\n* handled in a single call; they are stored as the columns of the\n* M-by-NRHS right hand side matrix B and the N-by-NRHS solution\n* matrix X.\n*\n* The problem is solved in three steps:\n* (1) Reduce the coefficient matrix A to bidiagonal form with\n* Householder transformations, reducing the original problem\n* into a \"bidiagonal least squares problem\" (BLS)\n* (2) Solve the BLS using a divide and conquer approach.\n* (3) Apply back all the Householder tranformations to solve\n* the original least squares problem.\n*\n* The effective rank of A is determined by treating as zero those\n* singular values which are less than RCOND times the largest singular\n* value.\n*\n* The divide and conquer algorithm makes very mild assumptions about\n* floating point arithmetic. It will work on machines with a guard\n* digit in add/subtract, or on those binary machines without guard\n* digits which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or\n* Cray-2. It could conceivably fail on hexadecimal or decimal machines\n* without guard digits, but we know of none.\n*\n\n* Arguments\n* =========\n*\n* M (input) INTEGER\n* The number of rows of A. M >= 0.\n*\n* N (input) INTEGER\n* The number of columns of A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrices B and X. NRHS >= 0.\n*\n* A (input) REAL array, dimension (LDA,N)\n* On entry, the M-by-N matrix A.\n* On exit, A has been destroyed.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* B (input/output) REAL array, dimension (LDB,NRHS)\n* On entry, the M-by-NRHS right hand side matrix B.\n* On exit, B is overwritten by the N-by-NRHS solution\n* matrix X. If m >= n and RANK = n, the residual\n* sum-of-squares for the solution in the i-th column is given\n* by the sum of squares of elements n+1:m in that column.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,max(M,N)).\n*\n* S (output) REAL array, dimension (min(M,N))\n* The singular values of A in decreasing order.\n* The condition number of A in the 2-norm = S(1)/S(min(m,n)).\n*\n* RCOND (input) REAL\n* RCOND is used to determine the effective rank of A.\n* Singular values S(i) <= RCOND*S(1) are treated as zero.\n* If RCOND < 0, machine precision is used instead.\n*\n* RANK (output) INTEGER\n* The effective rank of A, i.e., the number of singular values\n* which are greater than RCOND*S(1).\n*\n* WORK (workspace/output) REAL array, dimension (MAX(1,LWORK))\n* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK must be at least 1.\n* The exact minimum amount of workspace needed depends on M,\n* N and NRHS. As long as LWORK is at least\n* 12*N + 2*N*SMLSIZ + 8*N*NLVL + N*NRHS + (SMLSIZ+1)**2,\n* if M is greater than or equal to N or\n* 12*M + 2*M*SMLSIZ + 8*M*NLVL + M*NRHS + (SMLSIZ+1)**2,\n* if M is less than N, the code will execute correctly.\n* SMLSIZ is returned by ILAENV and is equal to the maximum\n* size of the subproblems at the bottom of the computation\n* tree (usually about 25), and\n* NLVL = MAX( 0, INT( LOG_2( MIN( M,N )/(SMLSIZ+1) ) ) + 1 )\n* For good performance, LWORK should generally be larger.\n*\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the array WORK and the\n* minimum size of the array IWORK, and returns these values as\n* the first entries of the WORK and IWORK arrays, and no error\n* message related to LWORK is issued by XERBLA.\n*\n* IWORK (workspace) INTEGER array, dimension (MAX(1,LIWORK))\n* LIWORK >= max(1, 3*MINMN*NLVL + 11*MINMN),\n* where MINMN = MIN( M,N ).\n* On exit, if INFO = 0, IWORK(1) returns the minimum LIWORK.\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value.\n* > 0: the algorithm for computing the SVD failed to converge;\n* if INFO = i, i off-diagonal elements of an intermediate\n* bidiagonal form did not converge to zero.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Ming Gu and Ren-Cang Li, Computer Science Division, University of\n* California at Berkeley, USA\n* Osni Marques, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n\n"); + printf("%s\n", "USAGE:\n s, rank, work, info, b = NumRu::Lapack.sgelsd( a, b, rcond, [:lwork => lwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SGELSD( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK, WORK, LWORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* SGELSD computes the minimum-norm solution to a real linear least\n* squares problem:\n* minimize 2-norm(| b - A*x |)\n* using the singular value decomposition (SVD) of A. A is an M-by-N\n* matrix which may be rank-deficient.\n*\n* Several right hand side vectors b and solution vectors x can be\n* handled in a single call; they are stored as the columns of the\n* M-by-NRHS right hand side matrix B and the N-by-NRHS solution\n* matrix X.\n*\n* The problem is solved in three steps:\n* (1) Reduce the coefficient matrix A to bidiagonal form with\n* Householder transformations, reducing the original problem\n* into a \"bidiagonal least squares problem\" (BLS)\n* (2) Solve the BLS using a divide and conquer approach.\n* (3) Apply back all the Householder transformations to solve\n* the original least squares problem.\n*\n* The effective rank of A is determined by treating as zero those\n* singular values which are less than RCOND times the largest singular\n* value.\n*\n* The divide and conquer algorithm makes very mild assumptions about\n* floating point arithmetic. It will work on machines with a guard\n* digit in add/subtract, or on those binary machines without guard\n* digits which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or\n* Cray-2. It could conceivably fail on hexadecimal or decimal machines\n* without guard digits, but we know of none.\n*\n\n* Arguments\n* =========\n*\n* M (input) INTEGER\n* The number of rows of A. M >= 0.\n*\n* N (input) INTEGER\n* The number of columns of A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrices B and X. NRHS >= 0.\n*\n* A (input) REAL array, dimension (LDA,N)\n* On entry, the M-by-N matrix A.\n* On exit, A has been destroyed.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* B (input/output) REAL array, dimension (LDB,NRHS)\n* On entry, the M-by-NRHS right hand side matrix B.\n* On exit, B is overwritten by the N-by-NRHS solution\n* matrix X. If m >= n and RANK = n, the residual\n* sum-of-squares for the solution in the i-th column is given\n* by the sum of squares of elements n+1:m in that column.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,max(M,N)).\n*\n* S (output) REAL array, dimension (min(M,N))\n* The singular values of A in decreasing order.\n* The condition number of A in the 2-norm = S(1)/S(min(m,n)).\n*\n* RCOND (input) REAL\n* RCOND is used to determine the effective rank of A.\n* Singular values S(i) <= RCOND*S(1) are treated as zero.\n* If RCOND < 0, machine precision is used instead.\n*\n* RANK (output) INTEGER\n* The effective rank of A, i.e., the number of singular values\n* which are greater than RCOND*S(1).\n*\n* WORK (workspace/output) REAL array, dimension (MAX(1,LWORK))\n* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK must be at least 1.\n* The exact minimum amount of workspace needed depends on M,\n* N and NRHS. As long as LWORK is at least\n* 12*N + 2*N*SMLSIZ + 8*N*NLVL + N*NRHS + (SMLSIZ+1)**2,\n* if M is greater than or equal to N or\n* 12*M + 2*M*SMLSIZ + 8*M*NLVL + M*NRHS + (SMLSIZ+1)**2,\n* if M is less than N, the code will execute correctly.\n* SMLSIZ is returned by ILAENV and is equal to the maximum\n* size of the subproblems at the bottom of the computation\n* tree (usually about 25), and\n* NLVL = MAX( 0, INT( LOG_2( MIN( M,N )/(SMLSIZ+1) ) ) + 1 )\n* For good performance, LWORK should generally be larger.\n*\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the array WORK and the\n* minimum size of the array IWORK, and returns these values as\n* the first entries of the WORK and IWORK arrays, and no error\n* message related to LWORK is issued by XERBLA.\n*\n* IWORK (workspace) INTEGER array, dimension (MAX(1,LIWORK))\n* LIWORK >= max(1, 3*MINMN*NLVL + 11*MINMN),\n* where MINMN = MIN( M,N ).\n* On exit, if INFO = 0, IWORK(1) returns the minimum LIWORK.\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value.\n* > 0: the algorithm for computing the SVD failed to converge;\n* if INFO = i, i off-diagonal elements of an intermediate\n* bidiagonal form did not converge to zero.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Ming Gu and Ren-Cang Li, Computer Science Division, University of\n* California at Berkeley, USA\n* Osni Marques, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n\n"); return Qnil; } if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/ext/sgerfsx.c ruby-lapack-1.8.1/ext/sgerfsx.c --- ruby-lapack-1.7.2/ext/sgerfsx.c 2015-03-18 06:58:30.000000000 +0000 +++ ruby-lapack-1.8.1/ext/sgerfsx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_sgerfsx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_trans; char trans; VALUE rblapack_equed; @@ -207,6 +208,9 @@ rblapack_rcond = rb_float_new((double)rcond); rblapack_info = INT2NUM(info); return rb_ary_new3(7, rblapack_rcond, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_x, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/sgesvxx.c ruby-lapack-1.8.1/ext/sgesvxx.c --- ruby-lapack-1.7.2/ext/sgesvxx.c 2015-03-18 06:58:19.000000000 +0000 +++ ruby-lapack-1.8.1/ext/sgesvxx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_sgesvxx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_fact; char fact; VALUE rblapack_trans; @@ -269,6 +270,9 @@ rblapack_info = INT2NUM(info); rblapack_equed = rb_str_new(&equed,1); return rb_ary_new3(15, rblapack_x, rblapack_rcond, rblapack_rpvgrw, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_a, rblapack_af, rblapack_ipiv, rblapack_equed, rblapack_r, rblapack_c, rblapack_b, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/sla_gbamv.c ruby-lapack-1.8.1/ext/sla_gbamv.c --- ruby-lapack-1.7.2/ext/sla_gbamv.c 2015-03-18 06:58:22.000000000 +0000 +++ ruby-lapack-1.8.1/ext/sla_gbamv.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_sla_gbamv(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_trans; integer trans; VALUE rblapack_m; @@ -117,6 +118,9 @@ sla_gbamv_(&trans, &m, &n, &kl, &ku, &alpha, ab, &ldab, x, &incx, &beta, y, &incy); return rblapack_y; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/sla_gbrcond.c ruby-lapack-1.8.1/ext/sla_gbrcond.c --- ruby-lapack-1.7.2/ext/sla_gbrcond.c 2015-03-18 06:58:30.000000000 +0000 +++ ruby-lapack-1.8.1/ext/sla_gbrcond.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_sla_gbrcond(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_trans; char trans; VALUE rblapack_kl; @@ -130,6 +131,9 @@ rblapack_info = INT2NUM(info); rblapack___out__ = rb_float_new((double)__out__); return rb_ary_new3(2, rblapack_info, rblapack___out__); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/sla_gbrfsx_extended.c ruby-lapack-1.8.1/ext/sla_gbrfsx_extended.c --- ruby-lapack-1.7.2/ext/sla_gbrfsx_extended.c 2015-03-18 06:58:28.000000000 +0000 +++ ruby-lapack-1.8.1/ext/sla_gbrfsx_extended.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_sla_gbrfsx_extended(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_prec_type; integer prec_type; VALUE rblapack_trans_type; @@ -279,6 +280,9 @@ rblapack_info = INT2NUM(info); return rb_ary_new3(5, rblapack_berr_out, rblapack_info, rblapack_y, rblapack_err_bnds_norm, rblapack_err_bnds_comp); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/sla_gbrpvgrw.c ruby-lapack-1.8.1/ext/sla_gbrpvgrw.c --- ruby-lapack-1.7.2/ext/sla_gbrpvgrw.c 2015-03-18 06:58:26.000000000 +0000 +++ ruby-lapack-1.8.1/ext/sla_gbrpvgrw.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_sla_gbrpvgrw(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_kl; integer kl; VALUE rblapack_ku; @@ -75,6 +76,9 @@ rblapack___out__ = rb_float_new((double)__out__); return rblapack___out__; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/sla_geamv.c ruby-lapack-1.8.1/ext/sla_geamv.c --- ruby-lapack-1.7.2/ext/sla_geamv.c 2015-03-18 06:58:23.000000000 +0000 +++ ruby-lapack-1.8.1/ext/sla_geamv.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_sla_geamv(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_trans; char trans; VALUE rblapack_m; @@ -107,6 +108,9 @@ sla_geamv_(&trans, &m, &n, &alpha, a, &lda, x, &incx, &beta, y, &incy); return rblapack_y; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/sla_gercond.c ruby-lapack-1.8.1/ext/sla_gercond.c --- ruby-lapack-1.7.2/ext/sla_gercond.c 2015-03-18 06:58:26.000000000 +0000 +++ ruby-lapack-1.8.1/ext/sla_gercond.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_sla_gercond(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_trans; char trans; VALUE rblapack_a; @@ -122,6 +123,9 @@ rblapack_info = INT2NUM(info); rblapack___out__ = rb_float_new((double)__out__); return rb_ary_new3(2, rblapack_info, rblapack___out__); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/sla_gerfsx_extended.c ruby-lapack-1.8.1/ext/sla_gerfsx_extended.c --- ruby-lapack-1.7.2/ext/sla_gerfsx_extended.c 2015-03-18 06:58:19.000000000 +0000 +++ ruby-lapack-1.8.1/ext/sla_gerfsx_extended.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_sla_gerfsx_extended(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_prec_type; integer prec_type; VALUE rblapack_trans_type; @@ -271,6 +272,9 @@ rblapack_info = INT2NUM(info); return rb_ary_new3(5, rblapack_berr_out, rblapack_info, rblapack_y, rblapack_err_bnds_norm, rblapack_err_bnds_comp); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/sla_lin_berr.c ruby-lapack-1.8.1/ext/sla_lin_berr.c --- ruby-lapack-1.7.2/ext/sla_lin_berr.c 2015-03-18 06:58:21.000000000 +0000 +++ ruby-lapack-1.8.1/ext/sla_lin_berr.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_sla_lin_berr(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_nz; integer nz; VALUE rblapack_res; @@ -72,6 +73,9 @@ sla_lin_berr_(&n, &nz, &nrhs, res, ayb, berr); return rblapack_berr; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/slamrg.c ruby-lapack-1.8.1/ext/slamrg.c --- ruby-lapack-1.7.2/ext/slamrg.c 2015-03-18 06:58:24.000000000 +0000 +++ ruby-lapack-1.8.1/ext/slamrg.c 2018-03-08 07:50:28.000000000 +0000 @@ -24,7 +24,7 @@ argc--; rblapack_options = argv[argc]; if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { - printf("%s\n", "USAGE:\n index = NumRu::Lapack.slamrg( n1, n2, a, strd1, strd2, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SLAMRG( N1, N2, A, STRD1, STRD2, INDEX )\n\n* Purpose\n* =======\n*\n* SLAMRG will create a permutation list which will merge the elements\n* of A (which is composed of two independently sorted sets) into a\n* single set which is sorted in ascending order.\n*\n\n* Arguments\n* =========\n*\n* N1 (input) INTEGER\n* N2 (input) INTEGER\n* These arguements contain the respective lengths of the two\n* sorted lists to be merged.\n*\n* A (input) REAL array, dimension (N1+N2)\n* The first N1 elements of A contain a list of numbers which\n* are sorted in either ascending or descending order. Likewise\n* for the final N2 elements.\n*\n* STRD1 (input) INTEGER\n* STRD2 (input) INTEGER\n* These are the strides to be taken through the array A.\n* Allowable strides are 1 and -1. They indicate whether a\n* subset of A is sorted in ascending (STRDx = 1) or descending\n* (STRDx = -1) order.\n*\n* INDEX (output) INTEGER array, dimension (N1+N2)\n* On exit this array will contain a permutation such that\n* if B( I ) = A( INDEX( I ) ) for I=1,N1+N2, then B will be\n* sorted in ascending order.\n*\n\n* =====================================================================\n*\n* .. Local Scalars ..\n INTEGER I, IND1, IND2, N1SV, N2SV\n* ..\n\n"); + printf("%s\n", "USAGE:\n index = NumRu::Lapack.slamrg( n1, n2, a, strd1, strd2, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SLAMRG( N1, N2, A, STRD1, STRD2, INDEX )\n\n* Purpose\n* =======\n*\n* SLAMRG will create a permutation list which will merge the elements\n* of A (which is composed of two independently sorted sets) into a\n* single set which is sorted in ascending order.\n*\n\n* Arguments\n* =========\n*\n* N1 (input) INTEGER\n* N2 (input) INTEGER\n* These arguments contain the respective lengths of the two\n* sorted lists to be merged.\n*\n* A (input) REAL array, dimension (N1+N2)\n* The first N1 elements of A contain a list of numbers which\n* are sorted in either ascending or descending order. Likewise\n* for the final N2 elements.\n*\n* STRD1 (input) INTEGER\n* STRD2 (input) INTEGER\n* These are the strides to be taken through the array A.\n* Allowable strides are 1 and -1. They indicate whether a\n* subset of A is sorted in ascending (STRDx = 1) or descending\n* (STRDx = -1) order.\n*\n* INDEX (output) INTEGER array, dimension (N1+N2)\n* On exit this array will contain a permutation such that\n* if B( I ) = A( INDEX( I ) ) for I=1,N1+N2, then B will be\n* sorted in ascending order.\n*\n\n* =====================================================================\n*\n* .. Local Scalars ..\n INTEGER I, IND1, IND2, N1SV, N2SV\n* ..\n\n"); return Qnil; } if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/ext/sla_porcond.c ruby-lapack-1.8.1/ext/sla_porcond.c --- ruby-lapack-1.7.2/ext/sla_porcond.c 2015-03-18 06:58:22.000000000 +0000 +++ ruby-lapack-1.8.1/ext/sla_porcond.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_sla_porcond(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_a; @@ -110,6 +111,9 @@ rblapack_info = INT2NUM(info); rblapack___out__ = rb_float_new((double)__out__); return rb_ary_new3(2, rblapack_info, rblapack___out__); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/sla_porfsx_extended.c ruby-lapack-1.8.1/ext/sla_porfsx_extended.c --- ruby-lapack-1.7.2/ext/sla_porfsx_extended.c 2015-03-18 06:58:20.000000000 +0000 +++ ruby-lapack-1.8.1/ext/sla_porfsx_extended.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_sla_porfsx_extended(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_prec_type; integer prec_type; VALUE rblapack_uplo; @@ -259,6 +260,9 @@ rblapack_info = INT2NUM(info); return rb_ary_new3(5, rblapack_berr_out, rblapack_info, rblapack_y, rblapack_err_bnds_norm, rblapack_err_bnds_comp); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/sla_porpvgrw.c ruby-lapack-1.8.1/ext/sla_porpvgrw.c --- ruby-lapack-1.7.2/ext/sla_porpvgrw.c 2015-03-18 06:58:27.000000000 +0000 +++ ruby-lapack-1.8.1/ext/sla_porpvgrw.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_sla_porpvgrw(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_ncols; @@ -83,6 +84,9 @@ rblapack___out__ = rb_float_new((double)__out__); return rblapack___out__; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/sla_rpvgrw.c ruby-lapack-1.8.1/ext/sla_rpvgrw.c --- ruby-lapack-1.7.2/ext/sla_rpvgrw.c 2015-03-18 06:58:25.000000000 +0000 +++ ruby-lapack-1.8.1/ext/sla_rpvgrw.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_sla_rpvgrw(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_ncols; integer ncols; VALUE rblapack_a; @@ -67,6 +68,9 @@ rblapack___out__ = rb_float_new((double)__out__); return rblapack___out__; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/slarre.c ruby-lapack-1.8.1/ext/slarre.c --- ruby-lapack-1.7.2/ext/slarre.c 2015-03-18 06:58:21.000000000 +0000 +++ ruby-lapack-1.8.1/ext/slarre.c 2018-03-08 07:50:28.000000000 +0000 @@ -65,7 +65,7 @@ argc--; rblapack_options = argv[argc]; if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { - printf("%s\n", "USAGE:\n nsplit, isplit, m, w, werr, wgap, iblock, indexw, gers, pivmin, info, vl, vu, d, e, e2 = NumRu::Lapack.slarre( range, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SLARRE( RANGE, N, VL, VU, IL, IU, D, E, E2, RTOL1, RTOL2, SPLTOL, NSPLIT, ISPLIT, M, W, WERR, WGAP, IBLOCK, INDEXW, GERS, PIVMIN, WORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* To find the desired eigenvalues of a given real symmetric\n* tridiagonal matrix T, SLARRE sets any \"small\" off-diagonal\n* elements to zero, and for each unreduced block T_i, it finds\n* (a) a suitable shift at one end of the block's spectrum,\n* (b) the base representation, T_i - sigma_i I = L_i D_i L_i^T, and\n* (c) eigenvalues of each L_i D_i L_i^T.\n* The representations and eigenvalues found are then used by\n* SSTEMR to compute the eigenvectors of T.\n* The accuracy varies depending on whether bisection is used to\n* find a few eigenvalues or the dqds algorithm (subroutine SLASQ2) to\n* conpute all and then discard any unwanted one.\n* As an added benefit, SLARRE also outputs the n\n* Gerschgorin intervals for the matrices L_i D_i L_i^T.\n*\n\n* Arguments\n* =========\n*\n* RANGE (input) CHARACTER*1\n* = 'A': (\"All\") all eigenvalues will be found.\n* = 'V': (\"Value\") all eigenvalues in the half-open interval\n* (VL, VU] will be found.\n* = 'I': (\"Index\") the IL-th through IU-th eigenvalues (of the\n* entire matrix) will be found.\n*\n* N (input) INTEGER\n* The order of the matrix. N > 0.\n*\n* VL (input/output) REAL \n* VU (input/output) REAL \n* If RANGE='V', the lower and upper bounds for the eigenvalues.\n* Eigenvalues less than or equal to VL, or greater than VU,\n* will not be returned. VL < VU.\n* If RANGE='I' or ='A', SLARRE computes bounds on the desired\n* part of the spectrum.\n*\n* IL (input) INTEGER\n* IU (input) INTEGER\n* If RANGE='I', the indices (in ascending order) of the\n* smallest and largest eigenvalues to be returned.\n* 1 <= IL <= IU <= N.\n*\n* D (input/output) REAL array, dimension (N)\n* On entry, the N diagonal elements of the tridiagonal\n* matrix T.\n* On exit, the N diagonal elements of the diagonal\n* matrices D_i.\n*\n* E (input/output) REAL array, dimension (N)\n* On entry, the first (N-1) entries contain the subdiagonal\n* elements of the tridiagonal matrix T; E(N) need not be set.\n* On exit, E contains the subdiagonal elements of the unit\n* bidiagonal matrices L_i. The entries E( ISPLIT( I ) ),\n* 1 <= I <= NSPLIT, contain the base points sigma_i on output.\n*\n* E2 (input/output) REAL array, dimension (N)\n* On entry, the first (N-1) entries contain the SQUARES of the\n* subdiagonal elements of the tridiagonal matrix T;\n* E2(N) need not be set.\n* On exit, the entries E2( ISPLIT( I ) ),\n* 1 <= I <= NSPLIT, have been set to zero\n*\n* RTOL1 (input) REAL \n* RTOL2 (input) REAL \n* Parameters for bisection.\n* An interval [LEFT,RIGHT] has converged if\n* RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) )\n*\n* SPLTOL (input) REAL \n* The threshold for splitting.\n*\n* NSPLIT (output) INTEGER\n* The number of blocks T splits into. 1 <= NSPLIT <= N.\n*\n* ISPLIT (output) INTEGER array, dimension (N)\n* The splitting points, at which T breaks up into blocks.\n* The first block consists of rows/columns 1 to ISPLIT(1),\n* the second of rows/columns ISPLIT(1)+1 through ISPLIT(2),\n* etc., and the NSPLIT-th consists of rows/columns\n* ISPLIT(NSPLIT-1)+1 through ISPLIT(NSPLIT)=N.\n*\n* M (output) INTEGER\n* The total number of eigenvalues (of all L_i D_i L_i^T)\n* found.\n*\n* W (output) REAL array, dimension (N)\n* The first M elements contain the eigenvalues. The\n* eigenvalues of each of the blocks, L_i D_i L_i^T, are\n* sorted in ascending order ( SLARRE may use the\n* remaining N-M elements as workspace).\n*\n* WERR (output) REAL array, dimension (N)\n* The error bound on the corresponding eigenvalue in W.\n*\n* WGAP (output) REAL array, dimension (N)\n* The separation from the right neighbor eigenvalue in W.\n* The gap is only with respect to the eigenvalues of the same block\n* as each block has its own representation tree.\n* Exception: at the right end of a block we store the left gap\n*\n* IBLOCK (output) INTEGER array, dimension (N)\n* The indices of the blocks (submatrices) associated with the\n* corresponding eigenvalues in W; IBLOCK(i)=1 if eigenvalue\n* W(i) belongs to the first block from the top, =2 if W(i)\n* belongs to the second block, etc.\n*\n* INDEXW (output) INTEGER array, dimension (N)\n* The indices of the eigenvalues within each block (submatrix);\n* for example, INDEXW(i)= 10 and IBLOCK(i)=2 imply that the\n* i-th eigenvalue W(i) is the 10-th eigenvalue in block 2\n*\n* GERS (output) REAL array, dimension (2*N)\n* The N Gerschgorin intervals (the i-th Gerschgorin interval\n* is (GERS(2*i-1), GERS(2*i)).\n*\n* PIVMIN (output) REAL\n* The minimum pivot in the Sturm sequence for T.\n*\n* WORK (workspace) REAL array, dimension (6*N)\n* Workspace.\n*\n* IWORK (workspace) INTEGER array, dimension (5*N)\n* Workspace.\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* > 0: A problem occured in SLARRE.\n* < 0: One of the called subroutines signaled an internal problem.\n* Needs inspection of the corresponding parameter IINFO\n* for further information.\n*\n* =-1: Problem in SLARRD.\n* = 2: No base representation could be found in MAXTRY iterations.\n* Increasing MAXTRY and recompilation might be a remedy.\n* =-3: Problem in SLARRB when computing the refined root\n* representation for SLASQ2.\n* =-4: Problem in SLARRB when preforming bisection on the\n* desired part of the spectrum.\n* =-5: Problem in SLASQ2.\n* =-6: Problem in SLASQ2.\n*\n\n* Further Details\n* The base representations are required to suffer very little\n* element growth and consequently define all their eigenvalues to\n* high relative accuracy.\n* ===============\n*\n* Based on contributions by\n* Beresford Parlett, University of California, Berkeley, USA\n* Jim Demmel, University of California, Berkeley, USA\n* Inderjit Dhillon, University of Texas, Austin, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, University of California, Berkeley, USA\n*\n* =====================================================================\n*\n\n"); + printf("%s\n", "USAGE:\n nsplit, isplit, m, w, werr, wgap, iblock, indexw, gers, pivmin, info, vl, vu, d, e, e2 = NumRu::Lapack.slarre( range, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SLARRE( RANGE, N, VL, VU, IL, IU, D, E, E2, RTOL1, RTOL2, SPLTOL, NSPLIT, ISPLIT, M, W, WERR, WGAP, IBLOCK, INDEXW, GERS, PIVMIN, WORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* To find the desired eigenvalues of a given real symmetric\n* tridiagonal matrix T, SLARRE sets any \"small\" off-diagonal\n* elements to zero, and for each unreduced block T_i, it finds\n* (a) a suitable shift at one end of the block's spectrum,\n* (b) the base representation, T_i - sigma_i I = L_i D_i L_i^T, and\n* (c) eigenvalues of each L_i D_i L_i^T.\n* The representations and eigenvalues found are then used by\n* SSTEMR to compute the eigenvectors of T.\n* The accuracy varies depending on whether bisection is used to\n* find a few eigenvalues or the dqds algorithm (subroutine SLASQ2) to\n* conpute all and then discard any unwanted one.\n* As an added benefit, SLARRE also outputs the n\n* Gerschgorin intervals for the matrices L_i D_i L_i^T.\n*\n\n* Arguments\n* =========\n*\n* RANGE (input) CHARACTER*1\n* = 'A': (\"All\") all eigenvalues will be found.\n* = 'V': (\"Value\") all eigenvalues in the half-open interval\n* (VL, VU] will be found.\n* = 'I': (\"Index\") the IL-th through IU-th eigenvalues (of the\n* entire matrix) will be found.\n*\n* N (input) INTEGER\n* The order of the matrix. N > 0.\n*\n* VL (input/output) REAL \n* VU (input/output) REAL \n* If RANGE='V', the lower and upper bounds for the eigenvalues.\n* Eigenvalues less than or equal to VL, or greater than VU,\n* will not be returned. VL < VU.\n* If RANGE='I' or ='A', SLARRE computes bounds on the desired\n* part of the spectrum.\n*\n* IL (input) INTEGER\n* IU (input) INTEGER\n* If RANGE='I', the indices (in ascending order) of the\n* smallest and largest eigenvalues to be returned.\n* 1 <= IL <= IU <= N.\n*\n* D (input/output) REAL array, dimension (N)\n* On entry, the N diagonal elements of the tridiagonal\n* matrix T.\n* On exit, the N diagonal elements of the diagonal\n* matrices D_i.\n*\n* E (input/output) REAL array, dimension (N)\n* On entry, the first (N-1) entries contain the subdiagonal\n* elements of the tridiagonal matrix T; E(N) need not be set.\n* On exit, E contains the subdiagonal elements of the unit\n* bidiagonal matrices L_i. The entries E( ISPLIT( I ) ),\n* 1 <= I <= NSPLIT, contain the base points sigma_i on output.\n*\n* E2 (input/output) REAL array, dimension (N)\n* On entry, the first (N-1) entries contain the SQUARES of the\n* subdiagonal elements of the tridiagonal matrix T;\n* E2(N) need not be set.\n* On exit, the entries E2( ISPLIT( I ) ),\n* 1 <= I <= NSPLIT, have been set to zero\n*\n* RTOL1 (input) REAL \n* RTOL2 (input) REAL \n* Parameters for bisection.\n* An interval [LEFT,RIGHT] has converged if\n* RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) )\n*\n* SPLTOL (input) REAL \n* The threshold for splitting.\n*\n* NSPLIT (output) INTEGER\n* The number of blocks T splits into. 1 <= NSPLIT <= N.\n*\n* ISPLIT (output) INTEGER array, dimension (N)\n* The splitting points, at which T breaks up into blocks.\n* The first block consists of rows/columns 1 to ISPLIT(1),\n* the second of rows/columns ISPLIT(1)+1 through ISPLIT(2),\n* etc., and the NSPLIT-th consists of rows/columns\n* ISPLIT(NSPLIT-1)+1 through ISPLIT(NSPLIT)=N.\n*\n* M (output) INTEGER\n* The total number of eigenvalues (of all L_i D_i L_i^T)\n* found.\n*\n* W (output) REAL array, dimension (N)\n* The first M elements contain the eigenvalues. The\n* eigenvalues of each of the blocks, L_i D_i L_i^T, are\n* sorted in ascending order ( SLARRE may use the\n* remaining N-M elements as workspace).\n*\n* WERR (output) REAL array, dimension (N)\n* The error bound on the corresponding eigenvalue in W.\n*\n* WGAP (output) REAL array, dimension (N)\n* The separation from the right neighbor eigenvalue in W.\n* The gap is only with respect to the eigenvalues of the same block\n* as each block has its own representation tree.\n* Exception: at the right end of a block we store the left gap\n*\n* IBLOCK (output) INTEGER array, dimension (N)\n* The indices of the blocks (submatrices) associated with the\n* corresponding eigenvalues in W; IBLOCK(i)=1 if eigenvalue\n* W(i) belongs to the first block from the top, =2 if W(i)\n* belongs to the second block, etc.\n*\n* INDEXW (output) INTEGER array, dimension (N)\n* The indices of the eigenvalues within each block (submatrix);\n* for example, INDEXW(i)= 10 and IBLOCK(i)=2 imply that the\n* i-th eigenvalue W(i) is the 10-th eigenvalue in block 2\n*\n* GERS (output) REAL array, dimension (2*N)\n* The N Gerschgorin intervals (the i-th Gerschgorin interval\n* is (GERS(2*i-1), GERS(2*i)).\n*\n* PIVMIN (output) REAL\n* The minimum pivot in the Sturm sequence for T.\n*\n* WORK (workspace) REAL array, dimension (6*N)\n* Workspace.\n*\n* IWORK (workspace) INTEGER array, dimension (5*N)\n* Workspace.\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* > 0: A problem occurred in SLARRE.\n* < 0: One of the called subroutines signaled an internal problem.\n* Needs inspection of the corresponding parameter IINFO\n* for further information.\n*\n* =-1: Problem in SLARRD.\n* = 2: No base representation could be found in MAXTRY iterations.\n* Increasing MAXTRY and recompilation might be a remedy.\n* =-3: Problem in SLARRB when computing the refined root\n* representation for SLASQ2.\n* =-4: Problem in SLARRB when preforming bisection on the\n* desired part of the spectrum.\n* =-5: Problem in SLASQ2.\n* =-6: Problem in SLASQ2.\n*\n\n* Further Details\n* The base representations are required to suffer very little\n* element growth and consequently define all their eigenvalues to\n* high relative accuracy.\n* ===============\n*\n* Based on contributions by\n* Beresford Parlett, University of California, Berkeley, USA\n* Jim Demmel, University of California, Berkeley, USA\n* Inderjit Dhillon, University of Texas, Austin, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, University of California, Berkeley, USA\n*\n* =====================================================================\n*\n\n"); return Qnil; } if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/ext/slarrv.c ruby-lapack-1.8.1/ext/slarrv.c --- ruby-lapack-1.7.2/ext/slarrv.c 2016-02-08 01:29:32.000000000 +0000 +++ ruby-lapack-1.8.1/ext/slarrv.c 2018-03-08 07:50:28.000000000 +0000 @@ -68,7 +68,7 @@ argc--; rblapack_options = argv[argc]; if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { - printf("%s\n", "USAGE:\n z, isuppz, info, d, l, w, werr, wgap = NumRu::Lapack.slarrv( vl, vu, d, l, pivmin, isplit, m, dol, dou, minrgp, rtol1, rtol2, w, werr, wgap, iblock, indexw, gers, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SLARRV( N, VL, VU, D, L, PIVMIN, ISPLIT, M, DOL, DOU, MINRGP, RTOL1, RTOL2, W, WERR, WGAP, IBLOCK, INDEXW, GERS, Z, LDZ, ISUPPZ, WORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* SLARRV computes the eigenvectors of the tridiagonal matrix\n* T = L D L^T given L, D and APPROXIMATIONS to the eigenvalues of L D L^T.\n* The input eigenvalues should have been computed by SLARRE.\n*\n\n* Arguments\n* =========\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* VL (input) REAL \n* VU (input) REAL \n* Lower and upper bounds of the interval that contains the desired\n* eigenvalues. VL < VU. Needed to compute gaps on the left or right\n* end of the extremal eigenvalues in the desired RANGE.\n*\n* D (input/output) REAL array, dimension (N)\n* On entry, the N diagonal elements of the diagonal matrix D.\n* On exit, D may be overwritten.\n*\n* L (input/output) REAL array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the unit\n* bidiagonal matrix L are in elements 1 to N-1 of L\n* (if the matrix is not split.) At the end of each block\n* is stored the corresponding shift as given by SLARRE.\n* On exit, L is overwritten.\n*\n* PIVMIN (input) REAL\n* The minimum pivot allowed in the Sturm sequence.\n*\n* ISPLIT (input) INTEGER array, dimension (N)\n* The splitting points, at which T breaks up into blocks.\n* The first block consists of rows/columns 1 to\n* ISPLIT( 1 ), the second of rows/columns ISPLIT( 1 )+1\n* through ISPLIT( 2 ), etc.\n*\n* M (input) INTEGER\n* The total number of input eigenvalues. 0 <= M <= N.\n*\n* DOL (input) INTEGER\n* DOU (input) INTEGER\n* If the user wants to compute only selected eigenvectors from all\n* the eigenvalues supplied, he can specify an index range DOL:DOU.\n* Or else the setting DOL=1, DOU=M should be applied.\n* Note that DOL and DOU refer to the order in which the eigenvalues\n* are stored in W.\n* If the user wants to compute only selected eigenpairs, then\n* the columns DOL-1 to DOU+1 of the eigenvector space Z contain the\n* computed eigenvectors. All other columns of Z are set to zero.\n*\n* MINRGP (input) REAL \n*\n* RTOL1 (input) REAL \n* RTOL2 (input) REAL \n* Parameters for bisection.\n* An interval [LEFT,RIGHT] has converged if\n* RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) )\n*\n* W (input/output) REAL array, dimension (N)\n* The first M elements of W contain the APPROXIMATE eigenvalues for\n* which eigenvectors are to be computed. The eigenvalues\n* should be grouped by split-off block and ordered from\n* smallest to largest within the block ( The output array\n* W from SLARRE is expected here ). Furthermore, they are with\n* respect to the shift of the corresponding root representation\n* for their block. On exit, W holds the eigenvalues of the\n* UNshifted matrix.\n*\n* WERR (input/output) REAL array, dimension (N)\n* The first M elements contain the semiwidth of the uncertainty\n* interval of the corresponding eigenvalue in W\n*\n* WGAP (input/output) REAL array, dimension (N)\n* The separation from the right neighbor eigenvalue in W.\n*\n* IBLOCK (input) INTEGER array, dimension (N)\n* The indices of the blocks (submatrices) associated with the\n* corresponding eigenvalues in W; IBLOCK(i)=1 if eigenvalue\n* W(i) belongs to the first block from the top, =2 if W(i)\n* belongs to the second block, etc.\n*\n* INDEXW (input) INTEGER array, dimension (N)\n* The indices of the eigenvalues within each block (submatrix);\n* for example, INDEXW(i)= 10 and IBLOCK(i)=2 imply that the\n* i-th eigenvalue W(i) is the 10-th eigenvalue in the second block.\n*\n* GERS (input) REAL array, dimension (2*N)\n* The N Gerschgorin intervals (the i-th Gerschgorin interval\n* is (GERS(2*i-1), GERS(2*i)). The Gerschgorin intervals should\n* be computed from the original UNshifted matrix.\n*\n* Z (output) REAL array, dimension (LDZ, max(1,M) )\n* If INFO = 0, the first M columns of Z contain the\n* orthonormal eigenvectors of the matrix T\n* corresponding to the input eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER array, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The I-th eigenvector\n* is nonzero only in elements ISUPPZ( 2*I-1 ) through\n* ISUPPZ( 2*I ).\n*\n* WORK (workspace) REAL array, dimension (12*N)\n*\n* IWORK (workspace) INTEGER array, dimension (7*N)\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n*\n* > 0: A problem occured in SLARRV.\n* < 0: One of the called subroutines signaled an internal problem.\n* Needs inspection of the corresponding parameter IINFO\n* for further information.\n*\n* =-1: Problem in SLARRB when refining a child's eigenvalues.\n* =-2: Problem in SLARRF when computing the RRR of a child.\n* When a child is inside a tight cluster, it can be difficult\n* to find an RRR. A partial remedy from the user's point of\n* view is to make the parameter MINRGP smaller and recompile.\n* However, as the orthogonality of the computed vectors is\n* proportional to 1/MINRGP, the user should be aware that\n* he might be trading in precision when he decreases MINRGP.\n* =-3: Problem in SLARRB when refining a single eigenvalue\n* after the Rayleigh correction was rejected.\n* = 5: The Rayleigh Quotient Iteration failed to converge to\n* full accuracy in MAXITR steps.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Beresford Parlett, University of California, Berkeley, USA\n* Jim Demmel, University of California, Berkeley, USA\n* Inderjit Dhillon, University of Texas, Austin, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, University of California, Berkeley, USA\n*\n* =====================================================================\n*\n\n"); + printf("%s\n", "USAGE:\n z, isuppz, info, d, l, w, werr, wgap = NumRu::Lapack.slarrv( vl, vu, d, l, pivmin, isplit, m, dol, dou, minrgp, rtol1, rtol2, w, werr, wgap, iblock, indexw, gers, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SLARRV( N, VL, VU, D, L, PIVMIN, ISPLIT, M, DOL, DOU, MINRGP, RTOL1, RTOL2, W, WERR, WGAP, IBLOCK, INDEXW, GERS, Z, LDZ, ISUPPZ, WORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* SLARRV computes the eigenvectors of the tridiagonal matrix\n* T = L D L^T given L, D and APPROXIMATIONS to the eigenvalues of L D L^T.\n* The input eigenvalues should have been computed by SLARRE.\n*\n\n* Arguments\n* =========\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* VL (input) REAL \n* VU (input) REAL \n* Lower and upper bounds of the interval that contains the desired\n* eigenvalues. VL < VU. Needed to compute gaps on the left or right\n* end of the extremal eigenvalues in the desired RANGE.\n*\n* D (input/output) REAL array, dimension (N)\n* On entry, the N diagonal elements of the diagonal matrix D.\n* On exit, D may be overwritten.\n*\n* L (input/output) REAL array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the unit\n* bidiagonal matrix L are in elements 1 to N-1 of L\n* (if the matrix is not split.) At the end of each block\n* is stored the corresponding shift as given by SLARRE.\n* On exit, L is overwritten.\n*\n* PIVMIN (input) REAL\n* The minimum pivot allowed in the Sturm sequence.\n*\n* ISPLIT (input) INTEGER array, dimension (N)\n* The splitting points, at which T breaks up into blocks.\n* The first block consists of rows/columns 1 to\n* ISPLIT( 1 ), the second of rows/columns ISPLIT( 1 )+1\n* through ISPLIT( 2 ), etc.\n*\n* M (input) INTEGER\n* The total number of input eigenvalues. 0 <= M <= N.\n*\n* DOL (input) INTEGER\n* DOU (input) INTEGER\n* If the user wants to compute only selected eigenvectors from all\n* the eigenvalues supplied, he can specify an index range DOL:DOU.\n* Or else the setting DOL=1, DOU=M should be applied.\n* Note that DOL and DOU refer to the order in which the eigenvalues\n* are stored in W.\n* If the user wants to compute only selected eigenpairs, then\n* the columns DOL-1 to DOU+1 of the eigenvector space Z contain the\n* computed eigenvectors. All other columns of Z are set to zero.\n*\n* MINRGP (input) REAL \n*\n* RTOL1 (input) REAL \n* RTOL2 (input) REAL \n* Parameters for bisection.\n* An interval [LEFT,RIGHT] has converged if\n* RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) )\n*\n* W (input/output) REAL array, dimension (N)\n* The first M elements of W contain the APPROXIMATE eigenvalues for\n* which eigenvectors are to be computed. The eigenvalues\n* should be grouped by split-off block and ordered from\n* smallest to largest within the block ( The output array\n* W from SLARRE is expected here ). Furthermore, they are with\n* respect to the shift of the corresponding root representation\n* for their block. On exit, W holds the eigenvalues of the\n* UNshifted matrix.\n*\n* WERR (input/output) REAL array, dimension (N)\n* The first M elements contain the semiwidth of the uncertainty\n* interval of the corresponding eigenvalue in W\n*\n* WGAP (input/output) REAL array, dimension (N)\n* The separation from the right neighbor eigenvalue in W.\n*\n* IBLOCK (input) INTEGER array, dimension (N)\n* The indices of the blocks (submatrices) associated with the\n* corresponding eigenvalues in W; IBLOCK(i)=1 if eigenvalue\n* W(i) belongs to the first block from the top, =2 if W(i)\n* belongs to the second block, etc.\n*\n* INDEXW (input) INTEGER array, dimension (N)\n* The indices of the eigenvalues within each block (submatrix);\n* for example, INDEXW(i)= 10 and IBLOCK(i)=2 imply that the\n* i-th eigenvalue W(i) is the 10-th eigenvalue in the second block.\n*\n* GERS (input) REAL array, dimension (2*N)\n* The N Gerschgorin intervals (the i-th Gerschgorin interval\n* is (GERS(2*i-1), GERS(2*i)). The Gerschgorin intervals should\n* be computed from the original UNshifted matrix.\n*\n* Z (output) REAL array, dimension (LDZ, max(1,M) )\n* If INFO = 0, the first M columns of Z contain the\n* orthonormal eigenvectors of the matrix T\n* corresponding to the input eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER array, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The I-th eigenvector\n* is nonzero only in elements ISUPPZ( 2*I-1 ) through\n* ISUPPZ( 2*I ).\n*\n* WORK (workspace) REAL array, dimension (12*N)\n*\n* IWORK (workspace) INTEGER array, dimension (7*N)\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n*\n* > 0: A problem occurred in SLARRV.\n* < 0: One of the called subroutines signaled an internal problem.\n* Needs inspection of the corresponding parameter IINFO\n* for further information.\n*\n* =-1: Problem in SLARRB when refining a child's eigenvalues.\n* =-2: Problem in SLARRF when computing the RRR of a child.\n* When a child is inside a tight cluster, it can be difficult\n* to find an RRR. A partial remedy from the user's point of\n* view is to make the parameter MINRGP smaller and recompile.\n* However, as the orthogonality of the computed vectors is\n* proportional to 1/MINRGP, the user should be aware that\n* he might be trading in precision when he decreases MINRGP.\n* =-3: Problem in SLARRB when refining a single eigenvalue\n* after the Rayleigh correction was rejected.\n* = 5: The Rayleigh Quotient Iteration failed to converge to\n* full accuracy in MAXITR steps.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Beresford Parlett, University of California, Berkeley, USA\n* Jim Demmel, University of California, Berkeley, USA\n* Inderjit Dhillon, University of Texas, Austin, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, University of California, Berkeley, USA\n*\n* =====================================================================\n*\n\n"); return Qnil; } if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/ext/slarscl2.c ruby-lapack-1.8.1/ext/slarscl2.c --- ruby-lapack-1.7.2/ext/slarscl2.c 2015-03-18 06:58:29.000000000 +0000 +++ ruby-lapack-1.8.1/ext/slarscl2.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_slarscl2(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_d; real *d; VALUE rblapack_x; @@ -70,6 +71,9 @@ slarscl2_(&m, &n, d, x, &ldx); return rblapack_x; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/slascl2.c ruby-lapack-1.8.1/ext/slascl2.c --- ruby-lapack-1.7.2/ext/slascl2.c 2015-03-18 06:58:23.000000000 +0000 +++ ruby-lapack-1.8.1/ext/slascl2.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_slascl2(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_d; real *d; VALUE rblapack_x; @@ -70,6 +71,9 @@ slascl2_(&m, &n, d, x, &ldx); return rblapack_x; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/slasdq.c ruby-lapack-1.8.1/ext/slasdq.c --- ruby-lapack-1.7.2/ext/slasdq.c 2015-03-18 06:58:28.000000000 +0000 +++ ruby-lapack-1.8.1/ext/slasdq.c 2018-03-08 07:50:28.000000000 +0000 @@ -47,7 +47,7 @@ argc--; rblapack_options = argv[argc]; if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { - printf("%s\n", "USAGE:\n info, d, e, vt, u, c = NumRu::Lapack.slasdq( uplo, sqre, nru, d, e, vt, u, c, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SLASDQ( UPLO, SQRE, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, LDU, C, LDC, WORK, INFO )\n\n* Purpose\n* =======\n*\n* SLASDQ computes the singular value decomposition (SVD) of a real\n* (upper or lower) bidiagonal matrix with diagonal D and offdiagonal\n* E, accumulating the transformations if desired. Letting B denote\n* the input bidiagonal matrix, the algorithm computes orthogonal\n* matrices Q and P such that B = Q * S * P' (P' denotes the transpose\n* of P). The singular values S are overwritten on D.\n*\n* The input matrix U is changed to U * Q if desired.\n* The input matrix VT is changed to P' * VT if desired.\n* The input matrix C is changed to Q' * C if desired.\n*\n* See \"Computing Small Singular Values of Bidiagonal Matrices With\n* Guaranteed High Relative Accuracy,\" by J. Demmel and W. Kahan,\n* LAPACK Working Note #3, for a detailed description of the algorithm.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* On entry, UPLO specifies whether the input bidiagonal matrix\n* is upper or lower bidiagonal, and wether it is square are\n* not.\n* UPLO = 'U' or 'u' B is upper bidiagonal.\n* UPLO = 'L' or 'l' B is lower bidiagonal.\n*\n* SQRE (input) INTEGER\n* = 0: then the input matrix is N-by-N.\n* = 1: then the input matrix is N-by-(N+1) if UPLU = 'U' and\n* (N+1)-by-N if UPLU = 'L'.\n*\n* The bidiagonal matrix has\n* N = NL + NR + 1 rows and\n* M = N + SQRE >= N columns.\n*\n* N (input) INTEGER\n* On entry, N specifies the number of rows and columns\n* in the matrix. N must be at least 0.\n*\n* NCVT (input) INTEGER\n* On entry, NCVT specifies the number of columns of\n* the matrix VT. NCVT must be at least 0.\n*\n* NRU (input) INTEGER\n* On entry, NRU specifies the number of rows of\n* the matrix U. NRU must be at least 0.\n*\n* NCC (input) INTEGER\n* On entry, NCC specifies the number of columns of\n* the matrix C. NCC must be at least 0.\n*\n* D (input/output) REAL array, dimension (N)\n* On entry, D contains the diagonal entries of the\n* bidiagonal matrix whose SVD is desired. On normal exit,\n* D contains the singular values in ascending order.\n*\n* E (input/output) REAL array.\n* dimension is (N-1) if SQRE = 0 and N if SQRE = 1.\n* On entry, the entries of E contain the offdiagonal entries\n* of the bidiagonal matrix whose SVD is desired. On normal\n* exit, E will contain 0. If the algorithm does not converge,\n* D and E will contain the diagonal and superdiagonal entries\n* of a bidiagonal matrix orthogonally equivalent to the one\n* given as input.\n*\n* VT (input/output) REAL array, dimension (LDVT, NCVT)\n* On entry, contains a matrix which on exit has been\n* premultiplied by P', dimension N-by-NCVT if SQRE = 0\n* and (N+1)-by-NCVT if SQRE = 1 (not referenced if NCVT=0).\n*\n* LDVT (input) INTEGER\n* On entry, LDVT specifies the leading dimension of VT as\n* declared in the calling (sub) program. LDVT must be at\n* least 1. If NCVT is nonzero LDVT must also be at least N.\n*\n* U (input/output) REAL array, dimension (LDU, N)\n* On entry, contains a matrix which on exit has been\n* postmultiplied by Q, dimension NRU-by-N if SQRE = 0\n* and NRU-by-(N+1) if SQRE = 1 (not referenced if NRU=0).\n*\n* LDU (input) INTEGER\n* On entry, LDU specifies the leading dimension of U as\n* declared in the calling (sub) program. LDU must be at\n* least max( 1, NRU ) .\n*\n* C (input/output) REAL array, dimension (LDC, NCC)\n* On entry, contains an N-by-NCC matrix which on exit\n* has been premultiplied by Q' dimension N-by-NCC if SQRE = 0\n* and (N+1)-by-NCC if SQRE = 1 (not referenced if NCC=0).\n*\n* LDC (input) INTEGER\n* On entry, LDC specifies the leading dimension of C as\n* declared in the calling (sub) program. LDC must be at\n* least 1. If NCC is nonzero, LDC must also be at least N.\n*\n* WORK (workspace) REAL array, dimension (4*N)\n* Workspace. Only referenced if one of NCVT, NRU, or NCC is\n* nonzero, and if N is at least 2.\n*\n* INFO (output) INTEGER\n* On exit, a value of 0 indicates a successful exit.\n* If INFO < 0, argument number -INFO is illegal.\n* If INFO > 0, the algorithm did not converge, and INFO\n* specifies how many superdiagonals did not converge.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Ming Gu and Huan Ren, Computer Science Division, University of\n* California at Berkeley, USA\n*\n* =====================================================================\n*\n\n"); + printf("%s\n", "USAGE:\n info, d, e, vt, u, c = NumRu::Lapack.slasdq( uplo, sqre, nru, d, e, vt, u, c, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SLASDQ( UPLO, SQRE, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, LDU, C, LDC, WORK, INFO )\n\n* Purpose\n* =======\n*\n* SLASDQ computes the singular value decomposition (SVD) of a real\n* (upper or lower) bidiagonal matrix with diagonal D and offdiagonal\n* E, accumulating the transformations if desired. Letting B denote\n* the input bidiagonal matrix, the algorithm computes orthogonal\n* matrices Q and P such that B = Q * S * P' (P' denotes the transpose\n* of P). The singular values S are overwritten on D.\n*\n* The input matrix U is changed to U * Q if desired.\n* The input matrix VT is changed to P' * VT if desired.\n* The input matrix C is changed to Q' * C if desired.\n*\n* See \"Computing Small Singular Values of Bidiagonal Matrices With\n* Guaranteed High Relative Accuracy,\" by J. Demmel and W. Kahan,\n* LAPACK Working Note #3, for a detailed description of the algorithm.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* On entry, UPLO specifies whether the input bidiagonal matrix\n* is upper or lower bidiagonal, and whether it is square are\n* not.\n* UPLO = 'U' or 'u' B is upper bidiagonal.\n* UPLO = 'L' or 'l' B is lower bidiagonal.\n*\n* SQRE (input) INTEGER\n* = 0: then the input matrix is N-by-N.\n* = 1: then the input matrix is N-by-(N+1) if UPLU = 'U' and\n* (N+1)-by-N if UPLU = 'L'.\n*\n* The bidiagonal matrix has\n* N = NL + NR + 1 rows and\n* M = N + SQRE >= N columns.\n*\n* N (input) INTEGER\n* On entry, N specifies the number of rows and columns\n* in the matrix. N must be at least 0.\n*\n* NCVT (input) INTEGER\n* On entry, NCVT specifies the number of columns of\n* the matrix VT. NCVT must be at least 0.\n*\n* NRU (input) INTEGER\n* On entry, NRU specifies the number of rows of\n* the matrix U. NRU must be at least 0.\n*\n* NCC (input) INTEGER\n* On entry, NCC specifies the number of columns of\n* the matrix C. NCC must be at least 0.\n*\n* D (input/output) REAL array, dimension (N)\n* On entry, D contains the diagonal entries of the\n* bidiagonal matrix whose SVD is desired. On normal exit,\n* D contains the singular values in ascending order.\n*\n* E (input/output) REAL array.\n* dimension is (N-1) if SQRE = 0 and N if SQRE = 1.\n* On entry, the entries of E contain the offdiagonal entries\n* of the bidiagonal matrix whose SVD is desired. On normal\n* exit, E will contain 0. If the algorithm does not converge,\n* D and E will contain the diagonal and superdiagonal entries\n* of a bidiagonal matrix orthogonally equivalent to the one\n* given as input.\n*\n* VT (input/output) REAL array, dimension (LDVT, NCVT)\n* On entry, contains a matrix which on exit has been\n* premultiplied by P', dimension N-by-NCVT if SQRE = 0\n* and (N+1)-by-NCVT if SQRE = 1 (not referenced if NCVT=0).\n*\n* LDVT (input) INTEGER\n* On entry, LDVT specifies the leading dimension of VT as\n* declared in the calling (sub) program. LDVT must be at\n* least 1. If NCVT is nonzero LDVT must also be at least N.\n*\n* U (input/output) REAL array, dimension (LDU, N)\n* On entry, contains a matrix which on exit has been\n* postmultiplied by Q, dimension NRU-by-N if SQRE = 0\n* and NRU-by-(N+1) if SQRE = 1 (not referenced if NRU=0).\n*\n* LDU (input) INTEGER\n* On entry, LDU specifies the leading dimension of U as\n* declared in the calling (sub) program. LDU must be at\n* least max( 1, NRU ) .\n*\n* C (input/output) REAL array, dimension (LDC, NCC)\n* On entry, contains an N-by-NCC matrix which on exit\n* has been premultiplied by Q' dimension N-by-NCC if SQRE = 0\n* and (N+1)-by-NCC if SQRE = 1 (not referenced if NCC=0).\n*\n* LDC (input) INTEGER\n* On entry, LDC specifies the leading dimension of C as\n* declared in the calling (sub) program. LDC must be at\n* least 1. If NCC is nonzero, LDC must also be at least N.\n*\n* WORK (workspace) REAL array, dimension (4*N)\n* Workspace. Only referenced if one of NCVT, NRU, or NCC is\n* nonzero, and if N is at least 2.\n*\n* INFO (output) INTEGER\n* On exit, a value of 0 indicates a successful exit.\n* If INFO < 0, argument number -INFO is illegal.\n* If INFO > 0, the algorithm did not converge, and INFO\n* specifies how many superdiagonals did not converge.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Ming Gu and Huan Ren, Computer Science Division, University of\n* California at Berkeley, USA\n*\n* =====================================================================\n*\n\n"); return Qnil; } if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/ext/sla_syamv.c ruby-lapack-1.8.1/ext/sla_syamv.c --- ruby-lapack-1.7.2/ext/sla_syamv.c 2015-03-18 06:58:29.000000000 +0000 +++ ruby-lapack-1.8.1/ext/sla_syamv.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_sla_syamv(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; integer uplo; VALUE rblapack_alpha; @@ -104,6 +105,9 @@ sla_syamv_(&uplo, &n, &alpha, a, &lda, x, &incx, &beta, y, &incy); return rblapack_y; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/sla_syrcond.c ruby-lapack-1.8.1/ext/sla_syrcond.c --- ruby-lapack-1.7.2/ext/sla_syrcond.c 2015-03-18 06:58:22.000000000 +0000 +++ ruby-lapack-1.8.1/ext/sla_syrcond.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_sla_syrcond(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_a; @@ -122,6 +123,9 @@ rblapack_info = INT2NUM(info); rblapack___out__ = rb_float_new((double)__out__); return rb_ary_new3(2, rblapack_info, rblapack___out__); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/sla_syrfsx_extended.c ruby-lapack-1.8.1/ext/sla_syrfsx_extended.c --- ruby-lapack-1.7.2/ext/sla_syrfsx_extended.c 2015-03-18 06:58:24.000000000 +0000 +++ ruby-lapack-1.8.1/ext/sla_syrfsx_extended.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_sla_syrfsx_extended(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_prec_type; integer prec_type; VALUE rblapack_uplo; @@ -271,6 +272,9 @@ rblapack_info = INT2NUM(info); return rb_ary_new3(5, rblapack_berr_out, rblapack_info, rblapack_y, rblapack_err_bnds_norm, rblapack_err_bnds_comp); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/sla_syrpvgrw.c ruby-lapack-1.8.1/ext/sla_syrpvgrw.c --- ruby-lapack-1.7.2/ext/sla_syrpvgrw.c 2015-03-18 06:58:24.000000000 +0000 +++ ruby-lapack-1.8.1/ext/sla_syrpvgrw.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_sla_syrpvgrw(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_info; @@ -95,6 +96,9 @@ rblapack___out__ = rb_float_new((double)__out__); return rblapack___out__; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/slatdf.c ruby-lapack-1.8.1/ext/slatdf.c --- ruby-lapack-1.7.2/ext/slatdf.c 2015-03-18 06:58:21.000000000 +0000 +++ ruby-lapack-1.8.1/ext/slatdf.c 2018-03-08 07:50:28.000000000 +0000 @@ -30,7 +30,7 @@ argc--; rblapack_options = argv[argc]; if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { - printf("%s\n", "USAGE:\n rhs, rdsum, rdscal = NumRu::Lapack.slatdf( ijob, z, rhs, rdsum, rdscal, ipiv, jpiv, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SLATDF( IJOB, N, Z, LDZ, RHS, RDSUM, RDSCAL, IPIV, JPIV )\n\n* Purpose\n* =======\n*\n* SLATDF uses the LU factorization of the n-by-n matrix Z computed by\n* SGETC2 and computes a contribution to the reciprocal Dif-estimate\n* by solving Z * x = b for x, and choosing the r.h.s. b such that\n* the norm of x is as large as possible. On entry RHS = b holds the\n* contribution from earlier solved sub-systems, and on return RHS = x.\n*\n* The factorization of Z returned by SGETC2 has the form Z = P*L*U*Q,\n* where P and Q are permutation matrices. L is lower triangular with\n* unit diagonal elements and U is upper triangular.\n*\n\n* Arguments\n* =========\n*\n* IJOB (input) INTEGER\n* IJOB = 2: First compute an approximative null-vector e\n* of Z using SGECON, e is normalized and solve for\n* Zx = +-e - f with the sign giving the greater value\n* of 2-norm(x). About 5 times as expensive as Default.\n* IJOB .ne. 2: Local look ahead strategy where all entries of\n* the r.h.s. b is choosen as either +1 or -1 (Default).\n*\n* N (input) INTEGER\n* The number of columns of the matrix Z.\n*\n* Z (input) REAL array, dimension (LDZ, N)\n* On entry, the LU part of the factorization of the n-by-n\n* matrix Z computed by SGETC2: Z = P * L * U * Q\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDA >= max(1, N).\n*\n* RHS (input/output) REAL array, dimension N.\n* On entry, RHS contains contributions from other subsystems.\n* On exit, RHS contains the solution of the subsystem with\n* entries acoording to the value of IJOB (see above).\n*\n* RDSUM (input/output) REAL\n* On entry, the sum of squares of computed contributions to\n* the Dif-estimate under computation by STGSYL, where the\n* scaling factor RDSCAL (see below) has been factored out.\n* On exit, the corresponding sum of squares updated with the\n* contributions from the current sub-system.\n* If TRANS = 'T' RDSUM is not touched.\n* NOTE: RDSUM only makes sense when STGSY2 is called by STGSYL.\n*\n* RDSCAL (input/output) REAL\n* On entry, scaling factor used to prevent overflow in RDSUM.\n* On exit, RDSCAL is updated w.r.t. the current contributions\n* in RDSUM.\n* If TRANS = 'T', RDSCAL is not touched.\n* NOTE: RDSCAL only makes sense when STGSY2 is called by\n* STGSYL.\n*\n* IPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= i <= N, row i of the\n* matrix has been interchanged with row IPIV(i).\n*\n* JPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= j <= N, column j of the\n* matrix has been interchanged with column JPIV(j).\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Bo Kagstrom and Peter Poromaa, Department of Computing Science,\n* Umea University, S-901 87 Umea, Sweden.\n*\n* This routine is a further developed implementation of algorithm\n* BSOLVE in [1] using complete pivoting in the LU factorization.\n*\n* [1] Bo Kagstrom and Lars Westin,\n* Generalized Schur Methods with Condition Estimators for\n* Solving the Generalized Sylvester Equation, IEEE Transactions\n* on Automatic Control, Vol. 34, No. 7, July 1989, pp 745-751.\n*\n* [2] Peter Poromaa,\n* On Efficient and Robust Estimators for the Separation\n* between two Regular Matrix Pairs with Applications in\n* Condition Estimation. Report IMINF-95.05, Departement of\n* Computing Science, Umea University, S-901 87 Umea, Sweden, 1995.\n*\n* =====================================================================\n*\n\n"); + printf("%s\n", "USAGE:\n rhs, rdsum, rdscal = NumRu::Lapack.slatdf( ijob, z, rhs, rdsum, rdscal, ipiv, jpiv, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SLATDF( IJOB, N, Z, LDZ, RHS, RDSUM, RDSCAL, IPIV, JPIV )\n\n* Purpose\n* =======\n*\n* SLATDF uses the LU factorization of the n-by-n matrix Z computed by\n* SGETC2 and computes a contribution to the reciprocal Dif-estimate\n* by solving Z * x = b for x, and choosing the r.h.s. b such that\n* the norm of x is as large as possible. On entry RHS = b holds the\n* contribution from earlier solved sub-systems, and on return RHS = x.\n*\n* The factorization of Z returned by SGETC2 has the form Z = P*L*U*Q,\n* where P and Q are permutation matrices. L is lower triangular with\n* unit diagonal elements and U is upper triangular.\n*\n\n* Arguments\n* =========\n*\n* IJOB (input) INTEGER\n* IJOB = 2: First compute an approximative null-vector e\n* of Z using SGECON, e is normalized and solve for\n* Zx = +-e - f with the sign giving the greater value\n* of 2-norm(x). About 5 times as expensive as Default.\n* IJOB .ne. 2: Local look ahead strategy where all entries of\n* the r.h.s. b is chosen as either +1 or -1 (Default).\n*\n* N (input) INTEGER\n* The number of columns of the matrix Z.\n*\n* Z (input) REAL array, dimension (LDZ, N)\n* On entry, the LU part of the factorization of the n-by-n\n* matrix Z computed by SGETC2: Z = P * L * U * Q\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDA >= max(1, N).\n*\n* RHS (input/output) REAL array, dimension N.\n* On entry, RHS contains contributions from other subsystems.\n* On exit, RHS contains the solution of the subsystem with\n* entries acoording to the value of IJOB (see above).\n*\n* RDSUM (input/output) REAL\n* On entry, the sum of squares of computed contributions to\n* the Dif-estimate under computation by STGSYL, where the\n* scaling factor RDSCAL (see below) has been factored out.\n* On exit, the corresponding sum of squares updated with the\n* contributions from the current sub-system.\n* If TRANS = 'T' RDSUM is not touched.\n* NOTE: RDSUM only makes sense when STGSY2 is called by STGSYL.\n*\n* RDSCAL (input/output) REAL\n* On entry, scaling factor used to prevent overflow in RDSUM.\n* On exit, RDSCAL is updated w.r.t. the current contributions\n* in RDSUM.\n* If TRANS = 'T', RDSCAL is not touched.\n* NOTE: RDSCAL only makes sense when STGSY2 is called by\n* STGSYL.\n*\n* IPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= i <= N, row i of the\n* matrix has been interchanged with row IPIV(i).\n*\n* JPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= j <= N, column j of the\n* matrix has been interchanged with column JPIV(j).\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Bo Kagstrom and Peter Poromaa, Department of Computing Science,\n* Umea University, S-901 87 Umea, Sweden.\n*\n* This routine is a further developed implementation of algorithm\n* BSOLVE in [1] using complete pivoting in the LU factorization.\n*\n* [1] Bo Kagstrom and Lars Westin,\n* Generalized Schur Methods with Condition Estimators for\n* Solving the Generalized Sylvester Equation, IEEE Transactions\n* on Automatic Control, Vol. 34, No. 7, July 1989, pp 745-751.\n*\n* [2] Peter Poromaa,\n* On Efficient and Robust Estimators for the Separation\n* between two Regular Matrix Pairs with Applications in\n* Condition Estimation. Report IMINF-95.05, Departement of\n* Computing Science, Umea University, S-901 87 Umea, Sweden, 1995.\n*\n* =====================================================================\n*\n\n"); return Qnil; } if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/ext/sla_wwaddw.c ruby-lapack-1.8.1/ext/sla_wwaddw.c --- ruby-lapack-1.7.2/ext/sla_wwaddw.c 2015-03-18 06:58:18.000000000 +0000 +++ ruby-lapack-1.8.1/ext/sla_wwaddw.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_sla_wwaddw(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_x; real *x; VALUE rblapack_y; @@ -90,6 +91,9 @@ sla_wwaddw_(&n, x, y, w); return rb_ary_new3(2, rblapack_x, rblapack_y); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/sporfsx.c ruby-lapack-1.8.1/ext/sporfsx.c --- ruby-lapack-1.7.2/ext/sporfsx.c 2015-03-18 06:58:21.000000000 +0000 +++ ruby-lapack-1.8.1/ext/sporfsx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_sporfsx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_equed; @@ -194,6 +195,9 @@ rblapack_rcond = rb_float_new((double)rcond); rblapack_info = INT2NUM(info); return rb_ary_new3(8, rblapack_rcond, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_s, rblapack_x, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/sposvxx.c ruby-lapack-1.8.1/ext/sposvxx.c --- ruby-lapack-1.7.2/ext/sposvxx.c 2015-03-18 06:58:28.000000000 +0000 +++ ruby-lapack-1.8.1/ext/sposvxx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_sposvxx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_fact; char fact; VALUE rblapack_uplo; @@ -223,6 +224,9 @@ rblapack_info = INT2NUM(info); rblapack_equed = rb_str_new(&equed,1); return rb_ary_new3(13, rblapack_x, rblapack_rcond, rblapack_rpvgrw, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_a, rblapack_af, rblapack_equed, rblapack_s, rblapack_b, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/sstegr.c ruby-lapack-1.8.1/ext/sstegr.c --- ruby-lapack-1.7.2/ext/sstegr.c 2015-03-18 06:58:29.000000000 +0000 +++ ruby-lapack-1.8.1/ext/sstegr.c 2018-03-08 07:50:28.000000000 +0000 @@ -54,7 +54,7 @@ argc--; rblapack_options = argv[argc]; if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { - printf("%s\n", "USAGE:\n m, w, z, isuppz, work, iwork, info, d, e = NumRu::Lapack.sstegr( jobz, range, d, e, vl, vu, il, iu, abstol, [:lwork => lwork, :liwork => liwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SSTEGR( JOBZ, RANGE, N, D, E, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK, IWORK, LIWORK, INFO )\n\n* Purpose\n* =======\n*\n* SSTEGR computes selected eigenvalues and, optionally, eigenvectors\n* of a real symmetric tridiagonal matrix T. Any such unreduced matrix has\n* a well defined set of pairwise different real eigenvalues, the corresponding\n* real eigenvectors are pairwise orthogonal.\n*\n* The spectrum may be computed either completely or partially by specifying\n* either an interval (VL,VU] or a range of indices IL:IU for the desired\n* eigenvalues.\n*\n* SSTEGR is a compatability wrapper around the improved SSTEMR routine.\n* See SSTEMR for further details.\n*\n* One important change is that the ABSTOL parameter no longer provides any\n* benefit and hence is no longer used.\n*\n* Note : SSTEGR and SSTEMR work only on machines which follow\n* IEEE-754 floating-point standard in their handling of infinities and\n* NaNs. Normal execution may create these exceptiona values and hence\n* may abort due to a floating point exception in environments which\n* do not conform to the IEEE-754 standard.\n*\n\n* Arguments\n* =========\n*\n* JOBZ (input) CHARACTER*1\n* = 'N': Compute eigenvalues only;\n* = 'V': Compute eigenvalues and eigenvectors.\n*\n* RANGE (input) CHARACTER*1\n* = 'A': all eigenvalues will be found.\n* = 'V': all eigenvalues in the half-open interval (VL,VU]\n* will be found.\n* = 'I': the IL-th through IU-th eigenvalues will be found.\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* D (input/output) REAL array, dimension (N)\n* On entry, the N diagonal elements of the tridiagonal matrix\n* T. On exit, D is overwritten.\n*\n* E (input/output) REAL array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the tridiagonal\n* matrix T in elements 1 to N-1 of E. E(N) need not be set on\n* input, but is used internally as workspace.\n* On exit, E is overwritten.\n*\n* VL (input) REAL\n* VU (input) REAL\n* If RANGE='V', the lower and upper bounds of the interval to\n* be searched for eigenvalues. VL < VU.\n* Not referenced if RANGE = 'A' or 'I'.\n*\n* IL (input) INTEGER\n* IU (input) INTEGER\n* If RANGE='I', the indices (in ascending order) of the\n* smallest and largest eigenvalues to be returned.\n* 1 <= IL <= IU <= N, if N > 0.\n* Not referenced if RANGE = 'A' or 'V'.\n*\n* ABSTOL (input) REAL\n* Unused. Was the absolute error tolerance for the\n* eigenvalues/eigenvectors in previous versions.\n*\n* M (output) INTEGER\n* The total number of eigenvalues found. 0 <= M <= N.\n* If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1.\n*\n* W (output) REAL array, dimension (N)\n* The first M elements contain the selected eigenvalues in\n* ascending order.\n*\n* Z (output) REAL array, dimension (LDZ, max(1,M) )\n* If JOBZ = 'V', and if INFO = 0, then the first M columns of Z\n* contain the orthonormal eigenvectors of the matrix T\n* corresponding to the selected eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* If JOBZ = 'N', then Z is not referenced.\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z; if RANGE = 'V', the exact value of M\n* is not known in advance and an upper bound must be used.\n* Supplying N columns is always safe.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', then LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER ARRAY, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The i-th computed eigenvector\n* is nonzero only in elements ISUPPZ( 2*i-1 ) through\n* ISUPPZ( 2*i ). This is relevant in the case when the matrix\n* is split. ISUPPZ is only accessed when JOBZ is 'V' and N > 0.\n*\n* WORK (workspace/output) REAL array, dimension (LWORK)\n* On exit, if INFO = 0, WORK(1) returns the optimal\n* (and minimal) LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK >= max(1,18*N)\n* if JOBZ = 'V', and LWORK >= max(1,12*N) if JOBZ = 'N'.\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the WORK array, returns\n* this value as the first entry of the WORK array, and no error\n* message related to LWORK is issued by XERBLA.\n*\n* IWORK (workspace/output) INTEGER array, dimension (LIWORK)\n* On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.\n*\n* LIWORK (input) INTEGER\n* The dimension of the array IWORK. LIWORK >= max(1,10*N)\n* if the eigenvectors are desired, and LIWORK >= max(1,8*N)\n* if only the eigenvalues are to be computed.\n* If LIWORK = -1, then a workspace query is assumed; the\n* routine only calculates the optimal size of the IWORK array,\n* returns this value as the first entry of the IWORK array, and\n* no error message related to LIWORK is issued by XERBLA.\n*\n* INFO (output) INTEGER\n* On exit, INFO\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = 1X, internal error in SLARRE,\n* if INFO = 2X, internal error in SLARRV.\n* Here, the digit X = ABS( IINFO ) < 10, where IINFO is\n* the nonzero error code returned by SLARRE or\n* SLARRV, respectively.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Inderjit Dhillon, IBM Almaden, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n* .. Local Scalars ..\n LOGICAL TRYRAC\n* ..\n* .. External Subroutines ..\n EXTERNAL SSTEMR\n* ..\n\n"); + printf("%s\n", "USAGE:\n m, w, z, isuppz, work, iwork, info, d, e = NumRu::Lapack.sstegr( jobz, range, d, e, vl, vu, il, iu, abstol, [:lwork => lwork, :liwork => liwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SSTEGR( JOBZ, RANGE, N, D, E, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK, IWORK, LIWORK, INFO )\n\n* Purpose\n* =======\n*\n* SSTEGR computes selected eigenvalues and, optionally, eigenvectors\n* of a real symmetric tridiagonal matrix T. Any such unreduced matrix has\n* a well defined set of pairwise different real eigenvalues, the corresponding\n* real eigenvectors are pairwise orthogonal.\n*\n* The spectrum may be computed either completely or partially by specifying\n* either an interval (VL,VU] or a range of indices IL:IU for the desired\n* eigenvalues.\n*\n* SSTEGR is a compatibility wrapper around the improved SSTEMR routine.\n* See SSTEMR for further details.\n*\n* One important change is that the ABSTOL parameter no longer provides any\n* benefit and hence is no longer used.\n*\n* Note : SSTEGR and SSTEMR work only on machines which follow\n* IEEE-754 floating-point standard in their handling of infinities and\n* NaNs. Normal execution may create these exceptiona values and hence\n* may abort due to a floating point exception in environments which\n* do not conform to the IEEE-754 standard.\n*\n\n* Arguments\n* =========\n*\n* JOBZ (input) CHARACTER*1\n* = 'N': Compute eigenvalues only;\n* = 'V': Compute eigenvalues and eigenvectors.\n*\n* RANGE (input) CHARACTER*1\n* = 'A': all eigenvalues will be found.\n* = 'V': all eigenvalues in the half-open interval (VL,VU]\n* will be found.\n* = 'I': the IL-th through IU-th eigenvalues will be found.\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* D (input/output) REAL array, dimension (N)\n* On entry, the N diagonal elements of the tridiagonal matrix\n* T. On exit, D is overwritten.\n*\n* E (input/output) REAL array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the tridiagonal\n* matrix T in elements 1 to N-1 of E. E(N) need not be set on\n* input, but is used internally as workspace.\n* On exit, E is overwritten.\n*\n* VL (input) REAL\n* VU (input) REAL\n* If RANGE='V', the lower and upper bounds of the interval to\n* be searched for eigenvalues. VL < VU.\n* Not referenced if RANGE = 'A' or 'I'.\n*\n* IL (input) INTEGER\n* IU (input) INTEGER\n* If RANGE='I', the indices (in ascending order) of the\n* smallest and largest eigenvalues to be returned.\n* 1 <= IL <= IU <= N, if N > 0.\n* Not referenced if RANGE = 'A' or 'V'.\n*\n* ABSTOL (input) REAL\n* Unused. Was the absolute error tolerance for the\n* eigenvalues/eigenvectors in previous versions.\n*\n* M (output) INTEGER\n* The total number of eigenvalues found. 0 <= M <= N.\n* If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1.\n*\n* W (output) REAL array, dimension (N)\n* The first M elements contain the selected eigenvalues in\n* ascending order.\n*\n* Z (output) REAL array, dimension (LDZ, max(1,M) )\n* If JOBZ = 'V', and if INFO = 0, then the first M columns of Z\n* contain the orthonormal eigenvectors of the matrix T\n* corresponding to the selected eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* If JOBZ = 'N', then Z is not referenced.\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z; if RANGE = 'V', the exact value of M\n* is not known in advance and an upper bound must be used.\n* Supplying N columns is always safe.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', then LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER ARRAY, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The i-th computed eigenvector\n* is nonzero only in elements ISUPPZ( 2*i-1 ) through\n* ISUPPZ( 2*i ). This is relevant in the case when the matrix\n* is split. ISUPPZ is only accessed when JOBZ is 'V' and N > 0.\n*\n* WORK (workspace/output) REAL array, dimension (LWORK)\n* On exit, if INFO = 0, WORK(1) returns the optimal\n* (and minimal) LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK >= max(1,18*N)\n* if JOBZ = 'V', and LWORK >= max(1,12*N) if JOBZ = 'N'.\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the WORK array, returns\n* this value as the first entry of the WORK array, and no error\n* message related to LWORK is issued by XERBLA.\n*\n* IWORK (workspace/output) INTEGER array, dimension (LIWORK)\n* On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.\n*\n* LIWORK (input) INTEGER\n* The dimension of the array IWORK. LIWORK >= max(1,10*N)\n* if the eigenvectors are desired, and LIWORK >= max(1,8*N)\n* if only the eigenvalues are to be computed.\n* If LIWORK = -1, then a workspace query is assumed; the\n* routine only calculates the optimal size of the IWORK array,\n* returns this value as the first entry of the IWORK array, and\n* no error message related to LIWORK is issued by XERBLA.\n*\n* INFO (output) INTEGER\n* On exit, INFO\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = 1X, internal error in SLARRE,\n* if INFO = 2X, internal error in SLARRV.\n* Here, the digit X = ABS( IINFO ) < 10, where IINFO is\n* the nonzero error code returned by SLARRE or\n* SLARRV, respectively.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Inderjit Dhillon, IBM Almaden, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n* .. Local Scalars ..\n LOGICAL TRYRAC\n* ..\n* .. External Subroutines ..\n EXTERNAL SSTEMR\n* ..\n\n"); return Qnil; } if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/ext/ssyrfsx.c ruby-lapack-1.8.1/ext/ssyrfsx.c --- ruby-lapack-1.7.2/ext/ssyrfsx.c 2015-03-18 06:58:29.000000000 +0000 +++ ruby-lapack-1.8.1/ext/ssyrfsx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_ssyrfsx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_equed; @@ -206,6 +207,9 @@ rblapack_rcond = rb_float_new((double)rcond); rblapack_info = INT2NUM(info); return rb_ary_new3(8, rblapack_rcond, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_s, rblapack_x, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/ssysvxx.c ruby-lapack-1.8.1/ext/ssysvxx.c --- ruby-lapack-1.7.2/ext/ssysvxx.c 2015-03-18 06:58:21.000000000 +0000 +++ ruby-lapack-1.8.1/ext/ssysvxx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_ssysvxx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_fact; char fact; VALUE rblapack_uplo; @@ -246,6 +247,9 @@ rblapack_info = INT2NUM(info); rblapack_equed = rb_str_new(&equed,1); return rb_ary_new3(14, rblapack_x, rblapack_rcond, rblapack_rpvgrw, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_a, rblapack_af, rblapack_ipiv, rblapack_equed, rblapack_s, rblapack_b, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zcgesv.c ruby-lapack-1.8.1/ext/zcgesv.c --- ruby-lapack-1.7.2/ext/zcgesv.c 2015-03-18 06:58:18.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zcgesv.c 2018-03-08 07:50:28.000000000 +0000 @@ -34,7 +34,7 @@ argc--; rblapack_options = argv[argc]; if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { - printf("%s\n", "USAGE:\n ipiv, x, iter, info, a = NumRu::Lapack.zcgesv( a, b, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE ZCGESV( N, NRHS, A, LDA, IPIV, B, LDB, X, LDX, WORK, SWORK, RWORK, ITER, INFO )\n\n* Purpose\n* =======\n*\n* ZCGESV computes the solution to a complex system of linear equations\n* A * X = B,\n* where A is an N-by-N matrix and X and B are N-by-NRHS matrices.\n*\n* ZCGESV first attempts to factorize the matrix in COMPLEX and use this\n* factorization within an iterative refinement procedure to produce a\n* solution with COMPLEX*16 normwise backward error quality (see below).\n* If the approach fails the method switches to a COMPLEX*16\n* factorization and solve.\n*\n* The iterative refinement is not going to be a winning strategy if\n* the ratio COMPLEX performance over COMPLEX*16 performance is too\n* small. A reasonable strategy should take the number of right-hand\n* sides and the size of the matrix into account. This might be done\n* with a call to ILAENV in the future. Up to now, we always try\n* iterative refinement.\n*\n* The iterative refinement process is stopped if\n* ITER > ITERMAX\n* or for all the RHS we have:\n* RNRM < SQRT(N)*XNRM*ANRM*EPS*BWDMAX\n* where\n* o ITER is the number of the current iteration in the iterative\n* refinement process\n* o RNRM is the infinity-norm of the residual\n* o XNRM is the infinity-norm of the solution\n* o ANRM is the infinity-operator-norm of the matrix A\n* o EPS is the machine epsilon returned by DLAMCH('Epsilon')\n* The value ITERMAX and BWDMAX are fixed to 30 and 1.0D+00\n* respectively.\n*\n\n* Arguments\n* =========\n*\n* N (input) INTEGER\n* The number of linear equations, i.e., the order of the\n* matrix A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrix B. NRHS >= 0.\n*\n* A (input/output) COMPLEX*16 array,\n* dimension (LDA,N)\n* On entry, the N-by-N coefficient matrix A.\n* On exit, if iterative refinement has been successfully used\n* (INFO.EQ.0 and ITER.GE.0, see description below), then A is\n* unchanged, if double precision factorization has been used\n* (INFO.EQ.0 and ITER.LT.0, see description below), then the\n* array A contains the factors L and U from the factorization\n* A = P*L*U; the unit diagonal elements of L are not stored.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* IPIV (output) INTEGER array, dimension (N)\n* The pivot indices that define the permutation matrix P;\n* row i of the matrix was interchanged with row IPIV(i).\n* Corresponds either to the single precision factorization\n* (if INFO.EQ.0 and ITER.GE.0) or the double precision\n* factorization (if INFO.EQ.0 and ITER.LT.0).\n*\n* B (input) COMPLEX*16 array, dimension (LDB,NRHS)\n* The N-by-NRHS right hand side matrix B.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,N).\n*\n* X (output) COMPLEX*16 array, dimension (LDX,NRHS)\n* If INFO = 0, the N-by-NRHS solution matrix X.\n*\n* LDX (input) INTEGER\n* The leading dimension of the array X. LDX >= max(1,N).\n*\n* WORK (workspace) COMPLEX*16 array, dimension (N*NRHS)\n* This array is used to hold the residual vectors.\n*\n* SWORK (workspace) COMPLEX array, dimension (N*(N+NRHS))\n* This array is used to use the single precision matrix and the\n* right-hand sides or solutions in single precision.\n*\n* RWORK (workspace) DOUBLE PRECISION array, dimension (N)\n*\n* ITER (output) INTEGER\n* < 0: iterative refinement has failed, COMPLEX*16\n* factorization has been performed\n* -1 : the routine fell back to full precision for\n* implementation- or machine-specific reasons\n* -2 : narrowing the precision induced an overflow,\n* the routine fell back to full precision\n* -3 : failure of CGETRF\n* -31: stop the iterative refinement after the 30th\n* iterations\n* > 0: iterative refinement has been sucessfully used.\n* Returns the number of iterations\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = i, U(i,i) computed in COMPLEX*16 is exactly\n* zero. The factorization has been completed, but the\n* factor U is exactly singular, so the solution\n* could not be computed.\n*\n* =========\n*\n\n"); + printf("%s\n", "USAGE:\n ipiv, x, iter, info, a = NumRu::Lapack.zcgesv( a, b, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE ZCGESV( N, NRHS, A, LDA, IPIV, B, LDB, X, LDX, WORK, SWORK, RWORK, ITER, INFO )\n\n* Purpose\n* =======\n*\n* ZCGESV computes the solution to a complex system of linear equations\n* A * X = B,\n* where A is an N-by-N matrix and X and B are N-by-NRHS matrices.\n*\n* ZCGESV first attempts to factorize the matrix in COMPLEX and use this\n* factorization within an iterative refinement procedure to produce a\n* solution with COMPLEX*16 normwise backward error quality (see below).\n* If the approach fails the method switches to a COMPLEX*16\n* factorization and solve.\n*\n* The iterative refinement is not going to be a winning strategy if\n* the ratio COMPLEX performance over COMPLEX*16 performance is too\n* small. A reasonable strategy should take the number of right-hand\n* sides and the size of the matrix into account. This might be done\n* with a call to ILAENV in the future. Up to now, we always try\n* iterative refinement.\n*\n* The iterative refinement process is stopped if\n* ITER > ITERMAX\n* or for all the RHS we have:\n* RNRM < SQRT(N)*XNRM*ANRM*EPS*BWDMAX\n* where\n* o ITER is the number of the current iteration in the iterative\n* refinement process\n* o RNRM is the infinity-norm of the residual\n* o XNRM is the infinity-norm of the solution\n* o ANRM is the infinity-operator-norm of the matrix A\n* o EPS is the machine epsilon returned by DLAMCH('Epsilon')\n* The value ITERMAX and BWDMAX are fixed to 30 and 1.0D+00\n* respectively.\n*\n\n* Arguments\n* =========\n*\n* N (input) INTEGER\n* The number of linear equations, i.e., the order of the\n* matrix A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrix B. NRHS >= 0.\n*\n* A (input/output) COMPLEX*16 array,\n* dimension (LDA,N)\n* On entry, the N-by-N coefficient matrix A.\n* On exit, if iterative refinement has been successfully used\n* (INFO.EQ.0 and ITER.GE.0, see description below), then A is\n* unchanged, if double precision factorization has been used\n* (INFO.EQ.0 and ITER.LT.0, see description below), then the\n* array A contains the factors L and U from the factorization\n* A = P*L*U; the unit diagonal elements of L are not stored.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* IPIV (output) INTEGER array, dimension (N)\n* The pivot indices that define the permutation matrix P;\n* row i of the matrix was interchanged with row IPIV(i).\n* Corresponds either to the single precision factorization\n* (if INFO.EQ.0 and ITER.GE.0) or the double precision\n* factorization (if INFO.EQ.0 and ITER.LT.0).\n*\n* B (input) COMPLEX*16 array, dimension (LDB,NRHS)\n* The N-by-NRHS right hand side matrix B.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,N).\n*\n* X (output) COMPLEX*16 array, dimension (LDX,NRHS)\n* If INFO = 0, the N-by-NRHS solution matrix X.\n*\n* LDX (input) INTEGER\n* The leading dimension of the array X. LDX >= max(1,N).\n*\n* WORK (workspace) COMPLEX*16 array, dimension (N*NRHS)\n* This array is used to hold the residual vectors.\n*\n* SWORK (workspace) COMPLEX array, dimension (N*(N+NRHS))\n* This array is used to use the single precision matrix and the\n* right-hand sides or solutions in single precision.\n*\n* RWORK (workspace) DOUBLE PRECISION array, dimension (N)\n*\n* ITER (output) INTEGER\n* < 0: iterative refinement has failed, COMPLEX*16\n* factorization has been performed\n* -1 : the routine fell back to full precision for\n* implementation- or machine-specific reasons\n* -2 : narrowing the precision induced an overflow,\n* the routine fell back to full precision\n* -3 : failure of CGETRF\n* -31: stop the iterative refinement after the 30th\n* iterations\n* > 0: iterative refinement has been successfully used.\n* Returns the number of iterations\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = i, U(i,i) computed in COMPLEX*16 is exactly\n* zero. The factorization has been completed, but the\n* factor U is exactly singular, so the solution\n* could not be computed.\n*\n* =========\n*\n\n"); return Qnil; } if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/ext/zcposv.c ruby-lapack-1.8.1/ext/zcposv.c --- ruby-lapack-1.7.2/ext/zcposv.c 2015-03-18 06:58:21.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zcposv.c 2018-03-08 07:50:28.000000000 +0000 @@ -34,7 +34,7 @@ argc--; rblapack_options = argv[argc]; if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { - printf("%s\n", "USAGE:\n x, iter, info, a = NumRu::Lapack.zcposv( uplo, a, b, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE ZCPOSV( UPLO, N, NRHS, A, LDA, B, LDB, X, LDX, WORK, SWORK, RWORK, ITER, INFO )\n\n* Purpose\n* =======\n*\n* ZCPOSV computes the solution to a complex system of linear equations\n* A * X = B,\n* where A is an N-by-N Hermitian positive definite matrix and X and B\n* are N-by-NRHS matrices.\n*\n* ZCPOSV first attempts to factorize the matrix in COMPLEX and use this\n* factorization within an iterative refinement procedure to produce a\n* solution with COMPLEX*16 normwise backward error quality (see below).\n* If the approach fails the method switches to a COMPLEX*16\n* factorization and solve.\n*\n* The iterative refinement is not going to be a winning strategy if\n* the ratio COMPLEX performance over COMPLEX*16 performance is too\n* small. A reasonable strategy should take the number of right-hand\n* sides and the size of the matrix into account. This might be done\n* with a call to ILAENV in the future. Up to now, we always try\n* iterative refinement.\n*\n* The iterative refinement process is stopped if\n* ITER > ITERMAX\n* or for all the RHS we have:\n* RNRM < SQRT(N)*XNRM*ANRM*EPS*BWDMAX\n* where\n* o ITER is the number of the current iteration in the iterative\n* refinement process\n* o RNRM is the infinity-norm of the residual\n* o XNRM is the infinity-norm of the solution\n* o ANRM is the infinity-operator-norm of the matrix A\n* o EPS is the machine epsilon returned by DLAMCH('Epsilon')\n* The value ITERMAX and BWDMAX are fixed to 30 and 1.0D+00\n* respectively.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* = 'U': Upper triangle of A is stored;\n* = 'L': Lower triangle of A is stored.\n*\n* N (input) INTEGER\n* The number of linear equations, i.e., the order of the\n* matrix A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrix B. NRHS >= 0.\n*\n* A (input/output) COMPLEX*16 array,\n* dimension (LDA,N)\n* On entry, the Hermitian matrix A. If UPLO = 'U', the leading\n* N-by-N upper triangular part of A contains the upper\n* triangular part of the matrix A, and the strictly lower\n* triangular part of A is not referenced. If UPLO = 'L', the\n* leading N-by-N lower triangular part of A contains the lower\n* triangular part of the matrix A, and the strictly upper\n* triangular part of A is not referenced.\n*\n* Note that the imaginary parts of the diagonal\n* elements need not be set and are assumed to be zero.\n*\n* On exit, if iterative refinement has been successfully used\n* (INFO.EQ.0 and ITER.GE.0, see description below), then A is\n* unchanged, if double precision factorization has been used\n* (INFO.EQ.0 and ITER.LT.0, see description below), then the\n* array A contains the factor U or L from the Cholesky\n* factorization A = U**H*U or A = L*L**H.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* B (input) COMPLEX*16 array, dimension (LDB,NRHS)\n* The N-by-NRHS right hand side matrix B.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,N).\n*\n* X (output) COMPLEX*16 array, dimension (LDX,NRHS)\n* If INFO = 0, the N-by-NRHS solution matrix X.\n*\n* LDX (input) INTEGER\n* The leading dimension of the array X. LDX >= max(1,N).\n*\n* WORK (workspace) COMPLEX*16 array, dimension (N*NRHS)\n* This array is used to hold the residual vectors.\n*\n* SWORK (workspace) COMPLEX array, dimension (N*(N+NRHS))\n* This array is used to use the single precision matrix and the\n* right-hand sides or solutions in single precision.\n*\n* RWORK (workspace) DOUBLE PRECISION array, dimension (N)\n*\n* ITER (output) INTEGER\n* < 0: iterative refinement has failed, COMPLEX*16\n* factorization has been performed\n* -1 : the routine fell back to full precision for\n* implementation- or machine-specific reasons\n* -2 : narrowing the precision induced an overflow,\n* the routine fell back to full precision\n* -3 : failure of CPOTRF\n* -31: stop the iterative refinement after the 30th\n* iterations\n* > 0: iterative refinement has been sucessfully used.\n* Returns the number of iterations\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = i, the leading minor of order i of\n* (COMPLEX*16) A is not positive definite, so the\n* factorization could not be completed, and the solution\n* has not been computed.\n*\n* =========\n*\n\n"); + printf("%s\n", "USAGE:\n x, iter, info, a = NumRu::Lapack.zcposv( uplo, a, b, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE ZCPOSV( UPLO, N, NRHS, A, LDA, B, LDB, X, LDX, WORK, SWORK, RWORK, ITER, INFO )\n\n* Purpose\n* =======\n*\n* ZCPOSV computes the solution to a complex system of linear equations\n* A * X = B,\n* where A is an N-by-N Hermitian positive definite matrix and X and B\n* are N-by-NRHS matrices.\n*\n* ZCPOSV first attempts to factorize the matrix in COMPLEX and use this\n* factorization within an iterative refinement procedure to produce a\n* solution with COMPLEX*16 normwise backward error quality (see below).\n* If the approach fails the method switches to a COMPLEX*16\n* factorization and solve.\n*\n* The iterative refinement is not going to be a winning strategy if\n* the ratio COMPLEX performance over COMPLEX*16 performance is too\n* small. A reasonable strategy should take the number of right-hand\n* sides and the size of the matrix into account. This might be done\n* with a call to ILAENV in the future. Up to now, we always try\n* iterative refinement.\n*\n* The iterative refinement process is stopped if\n* ITER > ITERMAX\n* or for all the RHS we have:\n* RNRM < SQRT(N)*XNRM*ANRM*EPS*BWDMAX\n* where\n* o ITER is the number of the current iteration in the iterative\n* refinement process\n* o RNRM is the infinity-norm of the residual\n* o XNRM is the infinity-norm of the solution\n* o ANRM is the infinity-operator-norm of the matrix A\n* o EPS is the machine epsilon returned by DLAMCH('Epsilon')\n* The value ITERMAX and BWDMAX are fixed to 30 and 1.0D+00\n* respectively.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* = 'U': Upper triangle of A is stored;\n* = 'L': Lower triangle of A is stored.\n*\n* N (input) INTEGER\n* The number of linear equations, i.e., the order of the\n* matrix A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrix B. NRHS >= 0.\n*\n* A (input/output) COMPLEX*16 array,\n* dimension (LDA,N)\n* On entry, the Hermitian matrix A. If UPLO = 'U', the leading\n* N-by-N upper triangular part of A contains the upper\n* triangular part of the matrix A, and the strictly lower\n* triangular part of A is not referenced. If UPLO = 'L', the\n* leading N-by-N lower triangular part of A contains the lower\n* triangular part of the matrix A, and the strictly upper\n* triangular part of A is not referenced.\n*\n* Note that the imaginary parts of the diagonal\n* elements need not be set and are assumed to be zero.\n*\n* On exit, if iterative refinement has been successfully used\n* (INFO.EQ.0 and ITER.GE.0, see description below), then A is\n* unchanged, if double precision factorization has been used\n* (INFO.EQ.0 and ITER.LT.0, see description below), then the\n* array A contains the factor U or L from the Cholesky\n* factorization A = U**H*U or A = L*L**H.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* B (input) COMPLEX*16 array, dimension (LDB,NRHS)\n* The N-by-NRHS right hand side matrix B.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,N).\n*\n* X (output) COMPLEX*16 array, dimension (LDX,NRHS)\n* If INFO = 0, the N-by-NRHS solution matrix X.\n*\n* LDX (input) INTEGER\n* The leading dimension of the array X. LDX >= max(1,N).\n*\n* WORK (workspace) COMPLEX*16 array, dimension (N*NRHS)\n* This array is used to hold the residual vectors.\n*\n* SWORK (workspace) COMPLEX array, dimension (N*(N+NRHS))\n* This array is used to use the single precision matrix and the\n* right-hand sides or solutions in single precision.\n*\n* RWORK (workspace) DOUBLE PRECISION array, dimension (N)\n*\n* ITER (output) INTEGER\n* < 0: iterative refinement has failed, COMPLEX*16\n* factorization has been performed\n* -1 : the routine fell back to full precision for\n* implementation- or machine-specific reasons\n* -2 : narrowing the precision induced an overflow,\n* the routine fell back to full precision\n* -3 : failure of CPOTRF\n* -31: stop the iterative refinement after the 30th\n* iterations\n* > 0: iterative refinement has been successfully used.\n* Returns the number of iterations\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = i, the leading minor of order i of\n* (COMPLEX*16) A is not positive definite, so the\n* factorization could not be completed, and the solution\n* has not been computed.\n*\n* =========\n*\n\n"); return Qnil; } if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/ext/zgbrfsx.c ruby-lapack-1.8.1/ext/zgbrfsx.c --- ruby-lapack-1.7.2/ext/zgbrfsx.c 2015-03-18 06:58:22.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zgbrfsx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zgbrfsx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_trans; char trans; VALUE rblapack_equed; @@ -237,6 +238,9 @@ rblapack_rcond = rb_float_new((double)rcond); rblapack_info = INT2NUM(info); return rb_ary_new3(9, rblapack_rcond, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_r, rblapack_c, rblapack_x, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zgbsvxx.c ruby-lapack-1.8.1/ext/zgbsvxx.c --- ruby-lapack-1.7.2/ext/zgbsvxx.c 2015-03-18 06:58:30.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zgbsvxx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zgbsvxx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_fact; char fact; VALUE rblapack_trans; @@ -277,6 +278,9 @@ rblapack_info = INT2NUM(info); rblapack_equed = rb_str_new(&equed,1); return rb_ary_new3(15, rblapack_x, rblapack_rcond, rblapack_rpvgrw, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_ab, rblapack_afb, rblapack_ipiv, rblapack_equed, rblapack_r, rblapack_c, rblapack_b, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zgelsd.c ruby-lapack-1.8.1/ext/zgelsd.c --- ruby-lapack-1.7.2/ext/zgelsd.c 2015-03-18 06:58:22.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zgelsd.c 2018-03-08 07:50:28.000000000 +0000 @@ -43,7 +43,7 @@ argc--; rblapack_options = argv[argc]; if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { - printf("%s\n", "USAGE:\n s, rank, work, info, b = NumRu::Lapack.zgelsd( a, b, rcond, [:lwork => lwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE ZGELSD( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK, WORK, LWORK, RWORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* ZGELSD computes the minimum-norm solution to a real linear least\n* squares problem:\n* minimize 2-norm(| b - A*x |)\n* using the singular value decomposition (SVD) of A. A is an M-by-N\n* matrix which may be rank-deficient.\n*\n* Several right hand side vectors b and solution vectors x can be\n* handled in a single call; they are stored as the columns of the\n* M-by-NRHS right hand side matrix B and the N-by-NRHS solution\n* matrix X.\n*\n* The problem is solved in three steps:\n* (1) Reduce the coefficient matrix A to bidiagonal form with\n* Householder tranformations, reducing the original problem\n* into a \"bidiagonal least squares problem\" (BLS)\n* (2) Solve the BLS using a divide and conquer approach.\n* (3) Apply back all the Householder tranformations to solve\n* the original least squares problem.\n*\n* The effective rank of A is determined by treating as zero those\n* singular values which are less than RCOND times the largest singular\n* value.\n*\n* The divide and conquer algorithm makes very mild assumptions about\n* floating point arithmetic. It will work on machines with a guard\n* digit in add/subtract, or on those binary machines without guard\n* digits which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or\n* Cray-2. It could conceivably fail on hexadecimal or decimal machines\n* without guard digits, but we know of none.\n*\n\n* Arguments\n* =========\n*\n* M (input) INTEGER\n* The number of rows of the matrix A. M >= 0.\n*\n* N (input) INTEGER\n* The number of columns of the matrix A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrices B and X. NRHS >= 0.\n*\n* A (input) COMPLEX*16 array, dimension (LDA,N)\n* On entry, the M-by-N matrix A.\n* On exit, A has been destroyed.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* B (input/output) COMPLEX*16 array, dimension (LDB,NRHS)\n* On entry, the M-by-NRHS right hand side matrix B.\n* On exit, B is overwritten by the N-by-NRHS solution matrix X.\n* If m >= n and RANK = n, the residual sum-of-squares for\n* the solution in the i-th column is given by the sum of\n* squares of the modulus of elements n+1:m in that column.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,M,N).\n*\n* S (output) DOUBLE PRECISION array, dimension (min(M,N))\n* The singular values of A in decreasing order.\n* The condition number of A in the 2-norm = S(1)/S(min(m,n)).\n*\n* RCOND (input) DOUBLE PRECISION\n* RCOND is used to determine the effective rank of A.\n* Singular values S(i) <= RCOND*S(1) are treated as zero.\n* If RCOND < 0, machine precision is used instead.\n*\n* RANK (output) INTEGER\n* The effective rank of A, i.e., the number of singular values\n* which are greater than RCOND*S(1).\n*\n* WORK (workspace/output) COMPLEX*16 array, dimension (MAX(1,LWORK))\n* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK must be at least 1.\n* The exact minimum amount of workspace needed depends on M,\n* N and NRHS. As long as LWORK is at least\n* 2*N + N*NRHS\n* if M is greater than or equal to N or\n* 2*M + M*NRHS\n* if M is less than N, the code will execute correctly.\n* For good performance, LWORK should generally be larger.\n*\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the array WORK and the\n* minimum sizes of the arrays RWORK and IWORK, and returns\n* these values as the first entries of the WORK, RWORK and\n* IWORK arrays, and no error message related to LWORK is issued\n* by XERBLA.\n*\n* RWORK (workspace) DOUBLE PRECISION array, dimension (MAX(1,LRWORK))\n* LRWORK >=\n* 10*N + 2*N*SMLSIZ + 8*N*NLVL + 3*SMLSIZ*NRHS +\n* MAX( (SMLSIZ+1)**2, N*(1+NRHS) + 2*NRHS )\n* if M is greater than or equal to N or\n* 10*M + 2*M*SMLSIZ + 8*M*NLVL + 3*SMLSIZ*NRHS +\n* MAX( (SMLSIZ+1)**2, N*(1+NRHS) + 2*NRHS )\n* if M is less than N, the code will execute correctly.\n* SMLSIZ is returned by ILAENV and is equal to the maximum\n* size of the subproblems at the bottom of the computation\n* tree (usually about 25), and\n* NLVL = MAX( 0, INT( LOG_2( MIN( M,N )/(SMLSIZ+1) ) ) + 1 )\n* On exit, if INFO = 0, RWORK(1) returns the minimum LRWORK.\n*\n* IWORK (workspace) INTEGER array, dimension (MAX(1,LIWORK))\n* LIWORK >= max(1, 3*MINMN*NLVL + 11*MINMN),\n* where MINMN = MIN( M,N ).\n* On exit, if INFO = 0, IWORK(1) returns the minimum LIWORK.\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value.\n* > 0: the algorithm for computing the SVD failed to converge;\n* if INFO = i, i off-diagonal elements of an intermediate\n* bidiagonal form did not converge to zero.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Ming Gu and Ren-Cang Li, Computer Science Division, University of\n* California at Berkeley, USA\n* Osni Marques, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n\n"); + printf("%s\n", "USAGE:\n s, rank, work, info, b = NumRu::Lapack.zgelsd( a, b, rcond, [:lwork => lwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE ZGELSD( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK, WORK, LWORK, RWORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* ZGELSD computes the minimum-norm solution to a real linear least\n* squares problem:\n* minimize 2-norm(| b - A*x |)\n* using the singular value decomposition (SVD) of A. A is an M-by-N\n* matrix which may be rank-deficient.\n*\n* Several right hand side vectors b and solution vectors x can be\n* handled in a single call; they are stored as the columns of the\n* M-by-NRHS right hand side matrix B and the N-by-NRHS solution\n* matrix X.\n*\n* The problem is solved in three steps:\n* (1) Reduce the coefficient matrix A to bidiagonal form with\n* Householder transformations, reducing the original problem\n* into a \"bidiagonal least squares problem\" (BLS)\n* (2) Solve the BLS using a divide and conquer approach.\n* (3) Apply back all the Householder transformations to solve\n* the original least squares problem.\n*\n* The effective rank of A is determined by treating as zero those\n* singular values which are less than RCOND times the largest singular\n* value.\n*\n* The divide and conquer algorithm makes very mild assumptions about\n* floating point arithmetic. It will work on machines with a guard\n* digit in add/subtract, or on those binary machines without guard\n* digits which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or\n* Cray-2. It could conceivably fail on hexadecimal or decimal machines\n* without guard digits, but we know of none.\n*\n\n* Arguments\n* =========\n*\n* M (input) INTEGER\n* The number of rows of the matrix A. M >= 0.\n*\n* N (input) INTEGER\n* The number of columns of the matrix A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrices B and X. NRHS >= 0.\n*\n* A (input) COMPLEX*16 array, dimension (LDA,N)\n* On entry, the M-by-N matrix A.\n* On exit, A has been destroyed.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* B (input/output) COMPLEX*16 array, dimension (LDB,NRHS)\n* On entry, the M-by-NRHS right hand side matrix B.\n* On exit, B is overwritten by the N-by-NRHS solution matrix X.\n* If m >= n and RANK = n, the residual sum-of-squares for\n* the solution in the i-th column is given by the sum of\n* squares of the modulus of elements n+1:m in that column.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,M,N).\n*\n* S (output) DOUBLE PRECISION array, dimension (min(M,N))\n* The singular values of A in decreasing order.\n* The condition number of A in the 2-norm = S(1)/S(min(m,n)).\n*\n* RCOND (input) DOUBLE PRECISION\n* RCOND is used to determine the effective rank of A.\n* Singular values S(i) <= RCOND*S(1) are treated as zero.\n* If RCOND < 0, machine precision is used instead.\n*\n* RANK (output) INTEGER\n* The effective rank of A, i.e., the number of singular values\n* which are greater than RCOND*S(1).\n*\n* WORK (workspace/output) COMPLEX*16 array, dimension (MAX(1,LWORK))\n* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK must be at least 1.\n* The exact minimum amount of workspace needed depends on M,\n* N and NRHS. As long as LWORK is at least\n* 2*N + N*NRHS\n* if M is greater than or equal to N or\n* 2*M + M*NRHS\n* if M is less than N, the code will execute correctly.\n* For good performance, LWORK should generally be larger.\n*\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the array WORK and the\n* minimum sizes of the arrays RWORK and IWORK, and returns\n* these values as the first entries of the WORK, RWORK and\n* IWORK arrays, and no error message related to LWORK is issued\n* by XERBLA.\n*\n* RWORK (workspace) DOUBLE PRECISION array, dimension (MAX(1,LRWORK))\n* LRWORK >=\n* 10*N + 2*N*SMLSIZ + 8*N*NLVL + 3*SMLSIZ*NRHS +\n* MAX( (SMLSIZ+1)**2, N*(1+NRHS) + 2*NRHS )\n* if M is greater than or equal to N or\n* 10*M + 2*M*SMLSIZ + 8*M*NLVL + 3*SMLSIZ*NRHS +\n* MAX( (SMLSIZ+1)**2, N*(1+NRHS) + 2*NRHS )\n* if M is less than N, the code will execute correctly.\n* SMLSIZ is returned by ILAENV and is equal to the maximum\n* size of the subproblems at the bottom of the computation\n* tree (usually about 25), and\n* NLVL = MAX( 0, INT( LOG_2( MIN( M,N )/(SMLSIZ+1) ) ) + 1 )\n* On exit, if INFO = 0, RWORK(1) returns the minimum LRWORK.\n*\n* IWORK (workspace) INTEGER array, dimension (MAX(1,LIWORK))\n* LIWORK >= max(1, 3*MINMN*NLVL + 11*MINMN),\n* where MINMN = MIN( M,N ).\n* On exit, if INFO = 0, IWORK(1) returns the minimum LIWORK.\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value.\n* > 0: the algorithm for computing the SVD failed to converge;\n* if INFO = i, i off-diagonal elements of an intermediate\n* bidiagonal form did not converge to zero.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Ming Gu and Ren-Cang Li, Computer Science Division, University of\n* California at Berkeley, USA\n* Osni Marques, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n\n"); return Qnil; } if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/ext/zgerfsx.c ruby-lapack-1.8.1/ext/zgerfsx.c --- ruby-lapack-1.7.2/ext/zgerfsx.c 2015-03-18 06:58:23.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zgerfsx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zgerfsx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_trans; char trans; VALUE rblapack_equed; @@ -207,6 +208,9 @@ rblapack_rcond = rb_float_new((double)rcond); rblapack_info = INT2NUM(info); return rb_ary_new3(7, rblapack_rcond, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_x, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zgesvxx.c ruby-lapack-1.8.1/ext/zgesvxx.c --- ruby-lapack-1.7.2/ext/zgesvxx.c 2015-03-18 06:58:23.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zgesvxx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zgesvxx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_fact; char fact; VALUE rblapack_trans; @@ -269,6 +270,9 @@ rblapack_info = INT2NUM(info); rblapack_equed = rb_str_new(&equed,1); return rb_ary_new3(15, rblapack_x, rblapack_rcond, rblapack_rpvgrw, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_a, rblapack_af, rblapack_ipiv, rblapack_equed, rblapack_r, rblapack_c, rblapack_b, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zherfsx.c ruby-lapack-1.8.1/ext/zherfsx.c --- ruby-lapack-1.7.2/ext/zherfsx.c 2015-03-18 06:58:27.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zherfsx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zherfsx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_equed; @@ -206,6 +207,9 @@ rblapack_rcond = rb_float_new((double)rcond); rblapack_info = INT2NUM(info); return rb_ary_new3(8, rblapack_rcond, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_s, rblapack_x, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zhesvxx.c ruby-lapack-1.8.1/ext/zhesvxx.c --- ruby-lapack-1.7.2/ext/zhesvxx.c 2015-03-18 06:58:25.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zhesvxx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zhesvxx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_fact; char fact; VALUE rblapack_uplo; @@ -246,6 +247,9 @@ rblapack_info = INT2NUM(info); rblapack_equed = rb_str_new(&equed,1); return rb_ary_new3(14, rblapack_x, rblapack_rcond, rblapack_rpvgrw, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_a, rblapack_af, rblapack_ipiv, rblapack_equed, rblapack_s, rblapack_b, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zla_gbamv.c ruby-lapack-1.8.1/ext/zla_gbamv.c --- ruby-lapack-1.7.2/ext/zla_gbamv.c 2015-03-18 06:58:20.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zla_gbamv.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zla_gbamv(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_trans; integer trans; VALUE rblapack_m; @@ -115,6 +116,9 @@ zla_gbamv_(&trans, &m, &n, &kl, &ku, &alpha, ab, &ldab, x, &incx, &beta, y, &incy); return rblapack_y; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zla_gbrcond_c.c ruby-lapack-1.8.1/ext/zla_gbrcond_c.c --- ruby-lapack-1.7.2/ext/zla_gbrcond_c.c 2015-03-18 06:58:30.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zla_gbrcond_c.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zla_gbrcond_c(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_trans; char trans; VALUE rblapack_kl; @@ -130,6 +131,9 @@ rblapack_info = INT2NUM(info); rblapack___out__ = rb_float_new((double)__out__); return rb_ary_new3(2, rblapack_info, rblapack___out__); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zla_gbrcond_x.c ruby-lapack-1.8.1/ext/zla_gbrcond_x.c --- ruby-lapack-1.7.2/ext/zla_gbrcond_x.c 2015-03-18 06:58:25.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zla_gbrcond_x.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zla_gbrcond_x(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_trans; char trans; VALUE rblapack_kl; @@ -126,6 +127,9 @@ rblapack_info = INT2NUM(info); rblapack___out__ = rb_float_new((double)__out__); return rb_ary_new3(2, rblapack_info, rblapack___out__); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zla_gbrfsx_extended.c ruby-lapack-1.8.1/ext/zla_gbrfsx_extended.c --- ruby-lapack-1.7.2/ext/zla_gbrfsx_extended.c 2015-03-18 06:58:19.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zla_gbrfsx_extended.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zla_gbrfsx_extended(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_prec_type; integer prec_type; VALUE rblapack_trans_type; @@ -283,6 +284,9 @@ rblapack_info = INT2NUM(info); return rb_ary_new3(5, rblapack_berr_out, rblapack_info, rblapack_y, rblapack_err_bnds_norm, rblapack_err_bnds_comp); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zla_gbrpvgrw.c ruby-lapack-1.8.1/ext/zla_gbrpvgrw.c --- ruby-lapack-1.7.2/ext/zla_gbrpvgrw.c 2015-03-18 06:58:28.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zla_gbrpvgrw.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zla_gbrpvgrw(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_kl; integer kl; VALUE rblapack_ku; @@ -75,6 +76,9 @@ rblapack___out__ = rb_float_new((double)__out__); return rblapack___out__; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zla_geamv.c ruby-lapack-1.8.1/ext/zla_geamv.c --- ruby-lapack-1.7.2/ext/zla_geamv.c 2015-03-18 06:58:26.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zla_geamv.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zla_geamv(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_trans; integer trans; VALUE rblapack_m; @@ -107,6 +108,9 @@ zla_geamv_(&trans, &m, &n, &alpha, a, &lda, x, &incx, &beta, y, &incy); return rblapack_y; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zla_gercond_c.c ruby-lapack-1.8.1/ext/zla_gercond_c.c --- ruby-lapack-1.7.2/ext/zla_gercond_c.c 2015-03-18 06:58:27.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zla_gercond_c.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zla_gercond_c(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_trans; char trans; VALUE rblapack_a; @@ -122,6 +123,9 @@ rblapack_info = INT2NUM(info); rblapack___out__ = rb_float_new((double)__out__); return rb_ary_new3(2, rblapack_info, rblapack___out__); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zla_gercond_x.c ruby-lapack-1.8.1/ext/zla_gercond_x.c --- ruby-lapack-1.7.2/ext/zla_gercond_x.c 2015-03-18 06:58:22.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zla_gercond_x.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zla_gercond_x(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_trans; char trans; VALUE rblapack_a; @@ -118,6 +119,9 @@ rblapack_info = INT2NUM(info); rblapack___out__ = rb_float_new((double)__out__); return rb_ary_new3(2, rblapack_info, rblapack___out__); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zla_gerfsx_extended.c ruby-lapack-1.8.1/ext/zla_gerfsx_extended.c --- ruby-lapack-1.7.2/ext/zla_gerfsx_extended.c 2015-03-18 06:58:19.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zla_gerfsx_extended.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zla_gerfsx_extended(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_prec_type; integer prec_type; VALUE rblapack_trans_type; @@ -269,6 +270,9 @@ rblapack_info = INT2NUM(info); return rb_ary_new3(5, rblapack_berr_out, rblapack_info, rblapack_y, rblapack_errs_n, rblapack_errs_c); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zla_heamv.c ruby-lapack-1.8.1/ext/zla_heamv.c --- ruby-lapack-1.7.2/ext/zla_heamv.c 2015-03-18 06:58:26.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zla_heamv.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zla_heamv(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; integer uplo; VALUE rblapack_alpha; @@ -104,6 +105,9 @@ zla_heamv_(&uplo, &n, &alpha, a, &lda, x, &incx, &beta, y, &incy); return rblapack_y; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zla_hercond_c.c ruby-lapack-1.8.1/ext/zla_hercond_c.c --- ruby-lapack-1.7.2/ext/zla_hercond_c.c 2015-03-18 06:58:26.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zla_hercond_c.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zla_hercond_c(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_a; @@ -122,6 +123,9 @@ rblapack_info = INT2NUM(info); rblapack___out__ = rb_float_new((double)__out__); return rb_ary_new3(2, rblapack_info, rblapack___out__); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zla_hercond_x.c ruby-lapack-1.8.1/ext/zla_hercond_x.c --- ruby-lapack-1.7.2/ext/zla_hercond_x.c 2015-03-18 06:58:22.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zla_hercond_x.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zla_hercond_x(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_a; @@ -118,6 +119,9 @@ rblapack_info = INT2NUM(info); rblapack___out__ = rb_float_new((double)__out__); return rb_ary_new3(2, rblapack_info, rblapack___out__); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zla_herfsx_extended.c ruby-lapack-1.8.1/ext/zla_herfsx_extended.c --- ruby-lapack-1.7.2/ext/zla_herfsx_extended.c 2015-03-18 06:58:20.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zla_herfsx_extended.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zla_herfsx_extended(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_prec_type; integer prec_type; VALUE rblapack_uplo; @@ -271,6 +272,9 @@ rblapack_info = INT2NUM(info); return rb_ary_new3(5, rblapack_berr_out, rblapack_info, rblapack_y, rblapack_err_bnds_norm, rblapack_err_bnds_comp); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zla_herpvgrw.c ruby-lapack-1.8.1/ext/zla_herpvgrw.c --- ruby-lapack-1.7.2/ext/zla_herpvgrw.c 2015-03-18 06:58:21.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zla_herpvgrw.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zla_herpvgrw(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_info; @@ -95,6 +96,9 @@ rblapack___out__ = rb_float_new((double)__out__); return rblapack___out__; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zla_lin_berr.c ruby-lapack-1.8.1/ext/zla_lin_berr.c --- ruby-lapack-1.7.2/ext/zla_lin_berr.c 2015-03-18 06:58:23.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zla_lin_berr.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zla_lin_berr(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_nz; integer nz; VALUE rblapack_res; @@ -72,6 +73,9 @@ zla_lin_berr_(&n, &nz, &nrhs, res, ayb, berr); return rblapack_berr; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zla_porcond_c.c ruby-lapack-1.8.1/ext/zla_porcond_c.c --- ruby-lapack-1.7.2/ext/zla_porcond_c.c 2015-03-18 06:58:22.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zla_porcond_c.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zla_porcond_c(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_a; @@ -110,6 +111,9 @@ rblapack_info = INT2NUM(info); rblapack___out__ = rb_float_new((double)__out__); return rb_ary_new3(2, rblapack_info, rblapack___out__); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zla_porcond_x.c ruby-lapack-1.8.1/ext/zla_porcond_x.c --- ruby-lapack-1.7.2/ext/zla_porcond_x.c 2015-03-18 06:58:25.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zla_porcond_x.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zla_porcond_x(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_a; @@ -106,6 +107,9 @@ rblapack_info = INT2NUM(info); rblapack___out__ = rb_float_new((double)__out__); return rb_ary_new3(2, rblapack_info, rblapack___out__); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zla_porfsx_extended.c ruby-lapack-1.8.1/ext/zla_porfsx_extended.c --- ruby-lapack-1.7.2/ext/zla_porfsx_extended.c 2015-03-18 06:58:24.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zla_porfsx_extended.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zla_porfsx_extended(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_prec_type; integer prec_type; VALUE rblapack_uplo; @@ -259,6 +260,9 @@ rblapack_info = INT2NUM(info); return rb_ary_new3(5, rblapack_berr_out, rblapack_info, rblapack_y, rblapack_err_bnds_norm, rblapack_err_bnds_comp); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zla_porpvgrw.c ruby-lapack-1.8.1/ext/zla_porpvgrw.c --- ruby-lapack-1.7.2/ext/zla_porpvgrw.c 2015-03-18 06:58:30.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zla_porpvgrw.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zla_porpvgrw(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_ncols; @@ -83,6 +84,9 @@ rblapack___out__ = rb_float_new((double)__out__); return rblapack___out__; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zla_rpvgrw.c ruby-lapack-1.8.1/ext/zla_rpvgrw.c --- ruby-lapack-1.7.2/ext/zla_rpvgrw.c 2015-03-18 06:58:21.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zla_rpvgrw.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zla_rpvgrw(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_ncols; integer ncols; VALUE rblapack_a; @@ -67,6 +68,9 @@ rblapack___out__ = rb_float_new((double)__out__); return rblapack___out__; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zlarrv.c ruby-lapack-1.8.1/ext/zlarrv.c --- ruby-lapack-1.7.2/ext/zlarrv.c 2016-02-08 01:29:33.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zlarrv.c 2018-03-08 07:50:28.000000000 +0000 @@ -68,7 +68,7 @@ argc--; rblapack_options = argv[argc]; if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { - printf("%s\n", "USAGE:\n z, isuppz, info, d, l, w, werr, wgap = NumRu::Lapack.zlarrv( vl, vu, d, l, pivmin, isplit, m, dol, dou, minrgp, rtol1, rtol2, w, werr, wgap, iblock, indexw, gers, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE ZLARRV( N, VL, VU, D, L, PIVMIN, ISPLIT, M, DOL, DOU, MINRGP, RTOL1, RTOL2, W, WERR, WGAP, IBLOCK, INDEXW, GERS, Z, LDZ, ISUPPZ, WORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* ZLARRV computes the eigenvectors of the tridiagonal matrix\n* T = L D L^T given L, D and APPROXIMATIONS to the eigenvalues of L D L^T.\n* The input eigenvalues should have been computed by DLARRE.\n*\n\n* Arguments\n* =========\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* VL (input) DOUBLE PRECISION\n* VU (input) DOUBLE PRECISION\n* Lower and upper bounds of the interval that contains the desired\n* eigenvalues. VL < VU. Needed to compute gaps on the left or right\n* end of the extremal eigenvalues in the desired RANGE.\n*\n* D (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the N diagonal elements of the diagonal matrix D.\n* On exit, D may be overwritten.\n*\n* L (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the unit\n* bidiagonal matrix L are in elements 1 to N-1 of L\n* (if the matrix is not split.) At the end of each block\n* is stored the corresponding shift as given by DLARRE.\n* On exit, L is overwritten.\n*\n* PIVMIN (in) DOUBLE PRECISION\n* The minimum pivot allowed in the Sturm sequence.\n*\n* ISPLIT (input) INTEGER array, dimension (N)\n* The splitting points, at which T breaks up into blocks.\n* The first block consists of rows/columns 1 to\n* ISPLIT( 1 ), the second of rows/columns ISPLIT( 1 )+1\n* through ISPLIT( 2 ), etc.\n*\n* M (input) INTEGER\n* The total number of input eigenvalues. 0 <= M <= N.\n*\n* DOL (input) INTEGER\n* DOU (input) INTEGER\n* If the user wants to compute only selected eigenvectors from all\n* the eigenvalues supplied, he can specify an index range DOL:DOU.\n* Or else the setting DOL=1, DOU=M should be applied.\n* Note that DOL and DOU refer to the order in which the eigenvalues\n* are stored in W.\n* If the user wants to compute only selected eigenpairs, then\n* the columns DOL-1 to DOU+1 of the eigenvector space Z contain the\n* computed eigenvectors. All other columns of Z are set to zero.\n*\n* MINRGP (input) DOUBLE PRECISION\n*\n* RTOL1 (input) DOUBLE PRECISION\n* RTOL2 (input) DOUBLE PRECISION\n* Parameters for bisection.\n* An interval [LEFT,RIGHT] has converged if\n* RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) )\n*\n* W (input/output) DOUBLE PRECISION array, dimension (N)\n* The first M elements of W contain the APPROXIMATE eigenvalues for\n* which eigenvectors are to be computed. The eigenvalues\n* should be grouped by split-off block and ordered from\n* smallest to largest within the block ( The output array\n* W from DLARRE is expected here ). Furthermore, they are with\n* respect to the shift of the corresponding root representation\n* for their block. On exit, W holds the eigenvalues of the\n* UNshifted matrix.\n*\n* WERR (input/output) DOUBLE PRECISION array, dimension (N)\n* The first M elements contain the semiwidth of the uncertainty\n* interval of the corresponding eigenvalue in W\n*\n* WGAP (input/output) DOUBLE PRECISION array, dimension (N)\n* The separation from the right neighbor eigenvalue in W.\n*\n* IBLOCK (input) INTEGER array, dimension (N)\n* The indices of the blocks (submatrices) associated with the\n* corresponding eigenvalues in W; IBLOCK(i)=1 if eigenvalue\n* W(i) belongs to the first block from the top, =2 if W(i)\n* belongs to the second block, etc.\n*\n* INDEXW (input) INTEGER array, dimension (N)\n* The indices of the eigenvalues within each block (submatrix);\n* for example, INDEXW(i)= 10 and IBLOCK(i)=2 imply that the\n* i-th eigenvalue W(i) is the 10-th eigenvalue in the second block.\n*\n* GERS (input) DOUBLE PRECISION array, dimension (2*N)\n* The N Gerschgorin intervals (the i-th Gerschgorin interval\n* is (GERS(2*i-1), GERS(2*i)). The Gerschgorin intervals should\n* be computed from the original UNshifted matrix.\n*\n* Z (output) COMPLEX*16 array, dimension (LDZ, max(1,M) )\n* If INFO = 0, the first M columns of Z contain the\n* orthonormal eigenvectors of the matrix T\n* corresponding to the input eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER array, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The I-th eigenvector\n* is nonzero only in elements ISUPPZ( 2*I-1 ) through\n* ISUPPZ( 2*I ).\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (12*N)\n*\n* IWORK (workspace) INTEGER array, dimension (7*N)\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n*\n* > 0: A problem occured in ZLARRV.\n* < 0: One of the called subroutines signaled an internal problem.\n* Needs inspection of the corresponding parameter IINFO\n* for further information.\n*\n* =-1: Problem in DLARRB when refining a child's eigenvalues.\n* =-2: Problem in DLARRF when computing the RRR of a child.\n* When a child is inside a tight cluster, it can be difficult\n* to find an RRR. A partial remedy from the user's point of\n* view is to make the parameter MINRGP smaller and recompile.\n* However, as the orthogonality of the computed vectors is\n* proportional to 1/MINRGP, the user should be aware that\n* he might be trading in precision when he decreases MINRGP.\n* =-3: Problem in DLARRB when refining a single eigenvalue\n* after the Rayleigh correction was rejected.\n* = 5: The Rayleigh Quotient Iteration failed to converge to\n* full accuracy in MAXITR steps.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Beresford Parlett, University of California, Berkeley, USA\n* Jim Demmel, University of California, Berkeley, USA\n* Inderjit Dhillon, University of Texas, Austin, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, University of California, Berkeley, USA\n*\n* =====================================================================\n*\n\n"); + printf("%s\n", "USAGE:\n z, isuppz, info, d, l, w, werr, wgap = NumRu::Lapack.zlarrv( vl, vu, d, l, pivmin, isplit, m, dol, dou, minrgp, rtol1, rtol2, w, werr, wgap, iblock, indexw, gers, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE ZLARRV( N, VL, VU, D, L, PIVMIN, ISPLIT, M, DOL, DOU, MINRGP, RTOL1, RTOL2, W, WERR, WGAP, IBLOCK, INDEXW, GERS, Z, LDZ, ISUPPZ, WORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* ZLARRV computes the eigenvectors of the tridiagonal matrix\n* T = L D L^T given L, D and APPROXIMATIONS to the eigenvalues of L D L^T.\n* The input eigenvalues should have been computed by DLARRE.\n*\n\n* Arguments\n* =========\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* VL (input) DOUBLE PRECISION\n* VU (input) DOUBLE PRECISION\n* Lower and upper bounds of the interval that contains the desired\n* eigenvalues. VL < VU. Needed to compute gaps on the left or right\n* end of the extremal eigenvalues in the desired RANGE.\n*\n* D (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the N diagonal elements of the diagonal matrix D.\n* On exit, D may be overwritten.\n*\n* L (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the unit\n* bidiagonal matrix L are in elements 1 to N-1 of L\n* (if the matrix is not split.) At the end of each block\n* is stored the corresponding shift as given by DLARRE.\n* On exit, L is overwritten.\n*\n* PIVMIN (in) DOUBLE PRECISION\n* The minimum pivot allowed in the Sturm sequence.\n*\n* ISPLIT (input) INTEGER array, dimension (N)\n* The splitting points, at which T breaks up into blocks.\n* The first block consists of rows/columns 1 to\n* ISPLIT( 1 ), the second of rows/columns ISPLIT( 1 )+1\n* through ISPLIT( 2 ), etc.\n*\n* M (input) INTEGER\n* The total number of input eigenvalues. 0 <= M <= N.\n*\n* DOL (input) INTEGER\n* DOU (input) INTEGER\n* If the user wants to compute only selected eigenvectors from all\n* the eigenvalues supplied, he can specify an index range DOL:DOU.\n* Or else the setting DOL=1, DOU=M should be applied.\n* Note that DOL and DOU refer to the order in which the eigenvalues\n* are stored in W.\n* If the user wants to compute only selected eigenpairs, then\n* the columns DOL-1 to DOU+1 of the eigenvector space Z contain the\n* computed eigenvectors. All other columns of Z are set to zero.\n*\n* MINRGP (input) DOUBLE PRECISION\n*\n* RTOL1 (input) DOUBLE PRECISION\n* RTOL2 (input) DOUBLE PRECISION\n* Parameters for bisection.\n* An interval [LEFT,RIGHT] has converged if\n* RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) )\n*\n* W (input/output) DOUBLE PRECISION array, dimension (N)\n* The first M elements of W contain the APPROXIMATE eigenvalues for\n* which eigenvectors are to be computed. The eigenvalues\n* should be grouped by split-off block and ordered from\n* smallest to largest within the block ( The output array\n* W from DLARRE is expected here ). Furthermore, they are with\n* respect to the shift of the corresponding root representation\n* for their block. On exit, W holds the eigenvalues of the\n* UNshifted matrix.\n*\n* WERR (input/output) DOUBLE PRECISION array, dimension (N)\n* The first M elements contain the semiwidth of the uncertainty\n* interval of the corresponding eigenvalue in W\n*\n* WGAP (input/output) DOUBLE PRECISION array, dimension (N)\n* The separation from the right neighbor eigenvalue in W.\n*\n* IBLOCK (input) INTEGER array, dimension (N)\n* The indices of the blocks (submatrices) associated with the\n* corresponding eigenvalues in W; IBLOCK(i)=1 if eigenvalue\n* W(i) belongs to the first block from the top, =2 if W(i)\n* belongs to the second block, etc.\n*\n* INDEXW (input) INTEGER array, dimension (N)\n* The indices of the eigenvalues within each block (submatrix);\n* for example, INDEXW(i)= 10 and IBLOCK(i)=2 imply that the\n* i-th eigenvalue W(i) is the 10-th eigenvalue in the second block.\n*\n* GERS (input) DOUBLE PRECISION array, dimension (2*N)\n* The N Gerschgorin intervals (the i-th Gerschgorin interval\n* is (GERS(2*i-1), GERS(2*i)). The Gerschgorin intervals should\n* be computed from the original UNshifted matrix.\n*\n* Z (output) COMPLEX*16 array, dimension (LDZ, max(1,M) )\n* If INFO = 0, the first M columns of Z contain the\n* orthonormal eigenvectors of the matrix T\n* corresponding to the input eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER array, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The I-th eigenvector\n* is nonzero only in elements ISUPPZ( 2*I-1 ) through\n* ISUPPZ( 2*I ).\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (12*N)\n*\n* IWORK (workspace) INTEGER array, dimension (7*N)\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n*\n* > 0: A problem occurred in ZLARRV.\n* < 0: One of the called subroutines signaled an internal problem.\n* Needs inspection of the corresponding parameter IINFO\n* for further information.\n*\n* =-1: Problem in DLARRB when refining a child's eigenvalues.\n* =-2: Problem in DLARRF when computing the RRR of a child.\n* When a child is inside a tight cluster, it can be difficult\n* to find an RRR. A partial remedy from the user's point of\n* view is to make the parameter MINRGP smaller and recompile.\n* However, as the orthogonality of the computed vectors is\n* proportional to 1/MINRGP, the user should be aware that\n* he might be trading in precision when he decreases MINRGP.\n* =-3: Problem in DLARRB when refining a single eigenvalue\n* after the Rayleigh correction was rejected.\n* = 5: The Rayleigh Quotient Iteration failed to converge to\n* full accuracy in MAXITR steps.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Beresford Parlett, University of California, Berkeley, USA\n* Jim Demmel, University of California, Berkeley, USA\n* Inderjit Dhillon, University of Texas, Austin, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, University of California, Berkeley, USA\n*\n* =====================================================================\n*\n\n"); return Qnil; } if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/ext/zlarscl2.c ruby-lapack-1.8.1/ext/zlarscl2.c --- ruby-lapack-1.7.2/ext/zlarscl2.c 2015-03-18 06:58:23.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zlarscl2.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zlarscl2(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_d; doublereal *d; VALUE rblapack_x; @@ -70,6 +71,9 @@ zlarscl2_(&m, &n, d, x, &ldx); return rblapack_x; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zlascl2.c ruby-lapack-1.8.1/ext/zlascl2.c --- ruby-lapack-1.7.2/ext/zlascl2.c 2015-03-18 06:58:30.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zlascl2.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zlascl2(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_d; doublereal *d; VALUE rblapack_x; @@ -70,6 +71,9 @@ zlascl2_(&m, &n, d, x, &ldx); return rblapack_x; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zla_syamv.c ruby-lapack-1.8.1/ext/zla_syamv.c --- ruby-lapack-1.7.2/ext/zla_syamv.c 2015-03-18 06:58:21.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zla_syamv.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zla_syamv(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; integer uplo; VALUE rblapack_alpha; @@ -104,6 +105,9 @@ zla_syamv_(&uplo, &n, &alpha, a, &lda, x, &incx, &beta, y, &incy); return rblapack_y; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zla_syrcond_c.c ruby-lapack-1.8.1/ext/zla_syrcond_c.c --- ruby-lapack-1.7.2/ext/zla_syrcond_c.c 2015-03-18 06:58:29.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zla_syrcond_c.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zla_syrcond_c(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_a; @@ -122,6 +123,9 @@ rblapack_info = INT2NUM(info); rblapack___out__ = rb_float_new((double)__out__); return rb_ary_new3(2, rblapack_info, rblapack___out__); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zla_syrcond_x.c ruby-lapack-1.8.1/ext/zla_syrcond_x.c --- ruby-lapack-1.7.2/ext/zla_syrcond_x.c 2015-03-18 06:58:20.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zla_syrcond_x.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zla_syrcond_x(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_a; @@ -118,6 +119,9 @@ rblapack_info = INT2NUM(info); rblapack___out__ = rb_float_new((double)__out__); return rb_ary_new3(2, rblapack_info, rblapack___out__); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zla_syrfsx_extended.c ruby-lapack-1.8.1/ext/zla_syrfsx_extended.c --- ruby-lapack-1.7.2/ext/zla_syrfsx_extended.c 2015-03-18 06:58:27.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zla_syrfsx_extended.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zla_syrfsx_extended(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_prec_type; integer prec_type; VALUE rblapack_uplo; @@ -271,6 +272,9 @@ rblapack_info = INT2NUM(info); return rb_ary_new3(5, rblapack_berr_out, rblapack_info, rblapack_y, rblapack_err_bnds_norm, rblapack_err_bnds_comp); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zla_syrpvgrw.c ruby-lapack-1.8.1/ext/zla_syrpvgrw.c --- ruby-lapack-1.7.2/ext/zla_syrpvgrw.c 2015-03-18 06:58:28.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zla_syrpvgrw.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zla_syrpvgrw(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_info; @@ -95,6 +96,9 @@ rblapack___out__ = rb_float_new((double)__out__); return rblapack___out__; +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zlat2c.c ruby-lapack-1.8.1/ext/zlat2c.c --- ruby-lapack-1.7.2/ext/zlat2c.c 2015-03-18 06:58:27.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zlat2c.c 2018-03-08 07:50:28.000000000 +0000 @@ -23,7 +23,7 @@ argc--; rblapack_options = argv[argc]; if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { - printf("%s\n", "USAGE:\n sa, info = NumRu::Lapack.zlat2c( uplo, a, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE ZLAT2C( UPLO, N, A, LDA, SA, LDSA, INFO )\n\n* Purpose\n* =======\n*\n* ZLAT2C converts a COMPLEX*16 triangular matrix, SA, to a COMPLEX\n* triangular matrix, A.\n*\n* RMAX is the overflow for the SINGLE PRECISION arithmetic\n* ZLAT2C checks that all the entries of A are between -RMAX and\n* RMAX. If not the convertion is aborted and a flag is raised.\n*\n* This is an auxiliary routine so there is no argument checking.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* = 'U': A is upper triangular;\n* = 'L': A is lower triangular.\n*\n* N (input) INTEGER\n* The number of rows and columns of the matrix A. N >= 0.\n*\n* A (input) COMPLEX*16 array, dimension (LDA,N)\n* On entry, the N-by-N triangular coefficient matrix A.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* SA (output) COMPLEX array, dimension (LDSA,N)\n* Only the UPLO part of SA is referenced. On exit, if INFO=0,\n* the N-by-N coefficient matrix SA; if INFO>0, the content of\n* the UPLO part of SA is unspecified.\n*\n* LDSA (input) INTEGER\n* The leading dimension of the array SA. LDSA >= max(1,M).\n*\n* INFO (output) INTEGER\n* = 0: successful exit.\n* = 1: an entry of the matrix A is greater than the SINGLE\n* PRECISION overflow threshold, in this case, the content\n* of the UPLO part of SA in exit is unspecified.\n*\n* =========\n*\n* .. Local Scalars ..\n INTEGER I, J\n DOUBLE PRECISION RMAX\n LOGICAL UPPER\n* ..\n* .. Intrinsic Functions ..\n INTRINSIC DBLE, DIMAG\n* ..\n* .. External Functions ..\n REAL SLAMCH\n LOGICAL LSAME\n EXTERNAL SLAMCH, LSAME\n* ..\n\n"); + printf("%s\n", "USAGE:\n sa, info = NumRu::Lapack.zlat2c( uplo, a, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE ZLAT2C( UPLO, N, A, LDA, SA, LDSA, INFO )\n\n* Purpose\n* =======\n*\n* ZLAT2C converts a COMPLEX*16 triangular matrix, SA, to a COMPLEX\n* triangular matrix, A.\n*\n* RMAX is the overflow for the SINGLE PRECISION arithmetic\n* ZLAT2C checks that all the entries of A are between -RMAX and\n* RMAX. If not the conversion is aborted and a flag is raised.\n*\n* This is an auxiliary routine so there is no argument checking.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* = 'U': A is upper triangular;\n* = 'L': A is lower triangular.\n*\n* N (input) INTEGER\n* The number of rows and columns of the matrix A. N >= 0.\n*\n* A (input) COMPLEX*16 array, dimension (LDA,N)\n* On entry, the N-by-N triangular coefficient matrix A.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* SA (output) COMPLEX array, dimension (LDSA,N)\n* Only the UPLO part of SA is referenced. On exit, if INFO=0,\n* the N-by-N coefficient matrix SA; if INFO>0, the content of\n* the UPLO part of SA is unspecified.\n*\n* LDSA (input) INTEGER\n* The leading dimension of the array SA. LDSA >= max(1,M).\n*\n* INFO (output) INTEGER\n* = 0: successful exit.\n* = 1: an entry of the matrix A is greater than the SINGLE\n* PRECISION overflow threshold, in this case, the content\n* of the UPLO part of SA in exit is unspecified.\n*\n* =========\n*\n* .. Local Scalars ..\n INTEGER I, J\n DOUBLE PRECISION RMAX\n LOGICAL UPPER\n* ..\n* .. Intrinsic Functions ..\n INTRINSIC DBLE, DIMAG\n* ..\n* .. External Functions ..\n REAL SLAMCH\n LOGICAL LSAME\n EXTERNAL SLAMCH, LSAME\n* ..\n\n"); return Qnil; } if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/ext/zlatdf.c ruby-lapack-1.8.1/ext/zlatdf.c --- ruby-lapack-1.7.2/ext/zlatdf.c 2015-03-18 06:58:20.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zlatdf.c 2018-03-08 07:50:28.000000000 +0000 @@ -30,7 +30,7 @@ argc--; rblapack_options = argv[argc]; if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { - printf("%s\n", "USAGE:\n rhs, rdsum, rdscal = NumRu::Lapack.zlatdf( ijob, z, rhs, rdsum, rdscal, ipiv, jpiv, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE ZLATDF( IJOB, N, Z, LDZ, RHS, RDSUM, RDSCAL, IPIV, JPIV )\n\n* Purpose\n* =======\n*\n* ZLATDF computes the contribution to the reciprocal Dif-estimate\n* by solving for x in Z * x = b, where b is chosen such that the norm\n* of x is as large as possible. It is assumed that LU decomposition\n* of Z has been computed by ZGETC2. On entry RHS = f holds the\n* contribution from earlier solved sub-systems, and on return RHS = x.\n*\n* The factorization of Z returned by ZGETC2 has the form\n* Z = P * L * U * Q, where P and Q are permutation matrices. L is lower\n* triangular with unit diagonal elements and U is upper triangular.\n*\n\n* Arguments\n* =========\n*\n* IJOB (input) INTEGER\n* IJOB = 2: First compute an approximative null-vector e\n* of Z using ZGECON, e is normalized and solve for\n* Zx = +-e - f with the sign giving the greater value of\n* 2-norm(x). About 5 times as expensive as Default.\n* IJOB .ne. 2: Local look ahead strategy where\n* all entries of the r.h.s. b is choosen as either +1 or\n* -1. Default.\n*\n* N (input) INTEGER\n* The number of columns of the matrix Z.\n*\n* Z (input) DOUBLE PRECISION array, dimension (LDZ, N)\n* On entry, the LU part of the factorization of the n-by-n\n* matrix Z computed by ZGETC2: Z = P * L * U * Q\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDA >= max(1, N).\n*\n* RHS (input/output) DOUBLE PRECISION array, dimension (N).\n* On entry, RHS contains contributions from other subsystems.\n* On exit, RHS contains the solution of the subsystem with\n* entries according to the value of IJOB (see above).\n*\n* RDSUM (input/output) DOUBLE PRECISION\n* On entry, the sum of squares of computed contributions to\n* the Dif-estimate under computation by ZTGSYL, where the\n* scaling factor RDSCAL (see below) has been factored out.\n* On exit, the corresponding sum of squares updated with the\n* contributions from the current sub-system.\n* If TRANS = 'T' RDSUM is not touched.\n* NOTE: RDSUM only makes sense when ZTGSY2 is called by CTGSYL.\n*\n* RDSCAL (input/output) DOUBLE PRECISION\n* On entry, scaling factor used to prevent overflow in RDSUM.\n* On exit, RDSCAL is updated w.r.t. the current contributions\n* in RDSUM.\n* If TRANS = 'T', RDSCAL is not touched.\n* NOTE: RDSCAL only makes sense when ZTGSY2 is called by\n* ZTGSYL.\n*\n* IPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= i <= N, row i of the\n* matrix has been interchanged with row IPIV(i).\n*\n* JPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= j <= N, column j of the\n* matrix has been interchanged with column JPIV(j).\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Bo Kagstrom and Peter Poromaa, Department of Computing Science,\n* Umea University, S-901 87 Umea, Sweden.\n*\n* This routine is a further developed implementation of algorithm\n* BSOLVE in [1] using complete pivoting in the LU factorization.\n*\n* [1] Bo Kagstrom and Lars Westin,\n* Generalized Schur Methods with Condition Estimators for\n* Solving the Generalized Sylvester Equation, IEEE Transactions\n* on Automatic Control, Vol. 34, No. 7, July 1989, pp 745-751.\n*\n* [2] Peter Poromaa,\n* On Efficient and Robust Estimators for the Separation\n* between two Regular Matrix Pairs with Applications in\n* Condition Estimation. Report UMINF-95.05, Department of\n* Computing Science, Umea University, S-901 87 Umea, Sweden,\n* 1995.\n*\n* =====================================================================\n*\n\n"); + printf("%s\n", "USAGE:\n rhs, rdsum, rdscal = NumRu::Lapack.zlatdf( ijob, z, rhs, rdsum, rdscal, ipiv, jpiv, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE ZLATDF( IJOB, N, Z, LDZ, RHS, RDSUM, RDSCAL, IPIV, JPIV )\n\n* Purpose\n* =======\n*\n* ZLATDF computes the contribution to the reciprocal Dif-estimate\n* by solving for x in Z * x = b, where b is chosen such that the norm\n* of x is as large as possible. It is assumed that LU decomposition\n* of Z has been computed by ZGETC2. On entry RHS = f holds the\n* contribution from earlier solved sub-systems, and on return RHS = x.\n*\n* The factorization of Z returned by ZGETC2 has the form\n* Z = P * L * U * Q, where P and Q are permutation matrices. L is lower\n* triangular with unit diagonal elements and U is upper triangular.\n*\n\n* Arguments\n* =========\n*\n* IJOB (input) INTEGER\n* IJOB = 2: First compute an approximative null-vector e\n* of Z using ZGECON, e is normalized and solve for\n* Zx = +-e - f with the sign giving the greater value of\n* 2-norm(x). About 5 times as expensive as Default.\n* IJOB .ne. 2: Local look ahead strategy where\n* all entries of the r.h.s. b is chosen as either +1 or\n* -1. Default.\n*\n* N (input) INTEGER\n* The number of columns of the matrix Z.\n*\n* Z (input) DOUBLE PRECISION array, dimension (LDZ, N)\n* On entry, the LU part of the factorization of the n-by-n\n* matrix Z computed by ZGETC2: Z = P * L * U * Q\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDA >= max(1, N).\n*\n* RHS (input/output) DOUBLE PRECISION array, dimension (N).\n* On entry, RHS contains contributions from other subsystems.\n* On exit, RHS contains the solution of the subsystem with\n* entries according to the value of IJOB (see above).\n*\n* RDSUM (input/output) DOUBLE PRECISION\n* On entry, the sum of squares of computed contributions to\n* the Dif-estimate under computation by ZTGSYL, where the\n* scaling factor RDSCAL (see below) has been factored out.\n* On exit, the corresponding sum of squares updated with the\n* contributions from the current sub-system.\n* If TRANS = 'T' RDSUM is not touched.\n* NOTE: RDSUM only makes sense when ZTGSY2 is called by CTGSYL.\n*\n* RDSCAL (input/output) DOUBLE PRECISION\n* On entry, scaling factor used to prevent overflow in RDSUM.\n* On exit, RDSCAL is updated w.r.t. the current contributions\n* in RDSUM.\n* If TRANS = 'T', RDSCAL is not touched.\n* NOTE: RDSCAL only makes sense when ZTGSY2 is called by\n* ZTGSYL.\n*\n* IPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= i <= N, row i of the\n* matrix has been interchanged with row IPIV(i).\n*\n* JPIV (input) INTEGER array, dimension (N).\n* The pivot indices; for 1 <= j <= N, column j of the\n* matrix has been interchanged with column JPIV(j).\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Bo Kagstrom and Peter Poromaa, Department of Computing Science,\n* Umea University, S-901 87 Umea, Sweden.\n*\n* This routine is a further developed implementation of algorithm\n* BSOLVE in [1] using complete pivoting in the LU factorization.\n*\n* [1] Bo Kagstrom and Lars Westin,\n* Generalized Schur Methods with Condition Estimators for\n* Solving the Generalized Sylvester Equation, IEEE Transactions\n* on Automatic Control, Vol. 34, No. 7, July 1989, pp 745-751.\n*\n* [2] Peter Poromaa,\n* On Efficient and Robust Estimators for the Separation\n* between two Regular Matrix Pairs with Applications in\n* Condition Estimation. Report UMINF-95.05, Department of\n* Computing Science, Umea University, S-901 87 Umea, Sweden,\n* 1995.\n*\n* =====================================================================\n*\n\n"); return Qnil; } if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/ext/zla_wwaddw.c ruby-lapack-1.8.1/ext/zla_wwaddw.c --- ruby-lapack-1.7.2/ext/zla_wwaddw.c 2015-03-18 06:58:28.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zla_wwaddw.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zla_wwaddw(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_x; doublecomplex *x; VALUE rblapack_y; @@ -90,6 +91,9 @@ zla_wwaddw_(&n, x, y, w); return rb_ary_new3(2, rblapack_x, rblapack_y); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zporfsx.c ruby-lapack-1.8.1/ext/zporfsx.c --- ruby-lapack-1.7.2/ext/zporfsx.c 2015-03-18 06:58:30.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zporfsx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zporfsx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_equed; @@ -194,6 +195,9 @@ rblapack_rcond = rb_float_new((double)rcond); rblapack_info = INT2NUM(info); return rb_ary_new3(8, rblapack_rcond, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_s, rblapack_x, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zposvxx.c ruby-lapack-1.8.1/ext/zposvxx.c --- ruby-lapack-1.7.2/ext/zposvxx.c 2015-03-18 06:58:23.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zposvxx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zposvxx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_fact; char fact; VALUE rblapack_uplo; @@ -223,6 +224,9 @@ rblapack_info = INT2NUM(info); rblapack_equed = rb_str_new(&equed,1); return rb_ary_new3(13, rblapack_x, rblapack_rcond, rblapack_rpvgrw, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_a, rblapack_af, rblapack_equed, rblapack_s, rblapack_b, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zstegr.c ruby-lapack-1.8.1/ext/zstegr.c --- ruby-lapack-1.7.2/ext/zstegr.c 2015-03-18 06:58:27.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zstegr.c 2018-03-08 07:50:28.000000000 +0000 @@ -54,7 +54,7 @@ argc--; rblapack_options = argv[argc]; if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) { - printf("%s\n", "USAGE:\n m, w, z, isuppz, work, iwork, info, d, e = NumRu::Lapack.zstegr( jobz, range, d, e, vl, vu, il, iu, abstol, [:lwork => lwork, :liwork => liwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE ZSTEGR( JOBZ, RANGE, N, D, E, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK, IWORK, LIWORK, INFO )\n\n* Purpose\n* =======\n*\n* ZSTEGR computes selected eigenvalues and, optionally, eigenvectors\n* of a real symmetric tridiagonal matrix T. Any such unreduced matrix has\n* a well defined set of pairwise different real eigenvalues, the corresponding\n* real eigenvectors are pairwise orthogonal.\n*\n* The spectrum may be computed either completely or partially by specifying\n* either an interval (VL,VU] or a range of indices IL:IU for the desired\n* eigenvalues.\n*\n* ZSTEGR is a compatability wrapper around the improved ZSTEMR routine.\n* See DSTEMR for further details.\n*\n* One important change is that the ABSTOL parameter no longer provides any\n* benefit and hence is no longer used.\n*\n* Note : ZSTEGR and ZSTEMR work only on machines which follow\n* IEEE-754 floating-point standard in their handling of infinities and\n* NaNs. Normal execution may create these exceptiona values and hence\n* may abort due to a floating point exception in environments which\n* do not conform to the IEEE-754 standard.\n*\n\n* Arguments\n* =========\n*\n* JOBZ (input) CHARACTER*1\n* = 'N': Compute eigenvalues only;\n* = 'V': Compute eigenvalues and eigenvectors.\n*\n* RANGE (input) CHARACTER*1\n* = 'A': all eigenvalues will be found.\n* = 'V': all eigenvalues in the half-open interval (VL,VU]\n* will be found.\n* = 'I': the IL-th through IU-th eigenvalues will be found.\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* D (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the N diagonal elements of the tridiagonal matrix\n* T. On exit, D is overwritten.\n*\n* E (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the tridiagonal\n* matrix T in elements 1 to N-1 of E. E(N) need not be set on\n* input, but is used internally as workspace.\n* On exit, E is overwritten.\n*\n* VL (input) DOUBLE PRECISION\n* VU (input) DOUBLE PRECISION\n* If RANGE='V', the lower and upper bounds of the interval to\n* be searched for eigenvalues. VL < VU.\n* Not referenced if RANGE = 'A' or 'I'.\n*\n* IL (input) INTEGER\n* IU (input) INTEGER\n* If RANGE='I', the indices (in ascending order) of the\n* smallest and largest eigenvalues to be returned.\n* 1 <= IL <= IU <= N, if N > 0.\n* Not referenced if RANGE = 'A' or 'V'.\n*\n* ABSTOL (input) DOUBLE PRECISION\n* Unused. Was the absolute error tolerance for the\n* eigenvalues/eigenvectors in previous versions.\n*\n* M (output) INTEGER\n* The total number of eigenvalues found. 0 <= M <= N.\n* If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1.\n*\n* W (output) DOUBLE PRECISION array, dimension (N)\n* The first M elements contain the selected eigenvalues in\n* ascending order.\n*\n* Z (output) COMPLEX*16 array, dimension (LDZ, max(1,M) )\n* If JOBZ = 'V', and if INFO = 0, then the first M columns of Z\n* contain the orthonormal eigenvectors of the matrix T\n* corresponding to the selected eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* If JOBZ = 'N', then Z is not referenced.\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z; if RANGE = 'V', the exact value of M\n* is not known in advance and an upper bound must be used.\n* Supplying N columns is always safe.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', then LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER ARRAY, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The i-th computed eigenvector\n* is nonzero only in elements ISUPPZ( 2*i-1 ) through\n* ISUPPZ( 2*i ). This is relevant in the case when the matrix\n* is split. ISUPPZ is only accessed when JOBZ is 'V' and N > 0.\n*\n* WORK (workspace/output) DOUBLE PRECISION array, dimension (LWORK)\n* On exit, if INFO = 0, WORK(1) returns the optimal\n* (and minimal) LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK >= max(1,18*N)\n* if JOBZ = 'V', and LWORK >= max(1,12*N) if JOBZ = 'N'.\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the WORK array, returns\n* this value as the first entry of the WORK array, and no error\n* message related to LWORK is issued by XERBLA.\n*\n* IWORK (workspace/output) INTEGER array, dimension (LIWORK)\n* On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.\n*\n* LIWORK (input) INTEGER\n* The dimension of the array IWORK. LIWORK >= max(1,10*N)\n* if the eigenvectors are desired, and LIWORK >= max(1,8*N)\n* if only the eigenvalues are to be computed.\n* If LIWORK = -1, then a workspace query is assumed; the\n* routine only calculates the optimal size of the IWORK array,\n* returns this value as the first entry of the IWORK array, and\n* no error message related to LIWORK is issued by XERBLA.\n*\n* INFO (output) INTEGER\n* On exit, INFO\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = 1X, internal error in DLARRE,\n* if INFO = 2X, internal error in ZLARRV.\n* Here, the digit X = ABS( IINFO ) < 10, where IINFO is\n* the nonzero error code returned by DLARRE or\n* ZLARRV, respectively.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Inderjit Dhillon, IBM Almaden, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n* .. Local Scalars ..\n LOGICAL TRYRAC\n* ..\n* .. External Subroutines ..\n EXTERNAL ZSTEMR\n* ..\n\n"); + printf("%s\n", "USAGE:\n m, w, z, isuppz, work, iwork, info, d, e = NumRu::Lapack.zstegr( jobz, range, d, e, vl, vu, il, iu, abstol, [:lwork => lwork, :liwork => liwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE ZSTEGR( JOBZ, RANGE, N, D, E, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK, IWORK, LIWORK, INFO )\n\n* Purpose\n* =======\n*\n* ZSTEGR computes selected eigenvalues and, optionally, eigenvectors\n* of a real symmetric tridiagonal matrix T. Any such unreduced matrix has\n* a well defined set of pairwise different real eigenvalues, the corresponding\n* real eigenvectors are pairwise orthogonal.\n*\n* The spectrum may be computed either completely or partially by specifying\n* either an interval (VL,VU] or a range of indices IL:IU for the desired\n* eigenvalues.\n*\n* ZSTEGR is a compatibility wrapper around the improved ZSTEMR routine.\n* See DSTEMR for further details.\n*\n* One important change is that the ABSTOL parameter no longer provides any\n* benefit and hence is no longer used.\n*\n* Note : ZSTEGR and ZSTEMR work only on machines which follow\n* IEEE-754 floating-point standard in their handling of infinities and\n* NaNs. Normal execution may create these exceptiona values and hence\n* may abort due to a floating point exception in environments which\n* do not conform to the IEEE-754 standard.\n*\n\n* Arguments\n* =========\n*\n* JOBZ (input) CHARACTER*1\n* = 'N': Compute eigenvalues only;\n* = 'V': Compute eigenvalues and eigenvectors.\n*\n* RANGE (input) CHARACTER*1\n* = 'A': all eigenvalues will be found.\n* = 'V': all eigenvalues in the half-open interval (VL,VU]\n* will be found.\n* = 'I': the IL-th through IU-th eigenvalues will be found.\n*\n* N (input) INTEGER\n* The order of the matrix. N >= 0.\n*\n* D (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the N diagonal elements of the tridiagonal matrix\n* T. On exit, D is overwritten.\n*\n* E (input/output) DOUBLE PRECISION array, dimension (N)\n* On entry, the (N-1) subdiagonal elements of the tridiagonal\n* matrix T in elements 1 to N-1 of E. E(N) need not be set on\n* input, but is used internally as workspace.\n* On exit, E is overwritten.\n*\n* VL (input) DOUBLE PRECISION\n* VU (input) DOUBLE PRECISION\n* If RANGE='V', the lower and upper bounds of the interval to\n* be searched for eigenvalues. VL < VU.\n* Not referenced if RANGE = 'A' or 'I'.\n*\n* IL (input) INTEGER\n* IU (input) INTEGER\n* If RANGE='I', the indices (in ascending order) of the\n* smallest and largest eigenvalues to be returned.\n* 1 <= IL <= IU <= N, if N > 0.\n* Not referenced if RANGE = 'A' or 'V'.\n*\n* ABSTOL (input) DOUBLE PRECISION\n* Unused. Was the absolute error tolerance for the\n* eigenvalues/eigenvectors in previous versions.\n*\n* M (output) INTEGER\n* The total number of eigenvalues found. 0 <= M <= N.\n* If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1.\n*\n* W (output) DOUBLE PRECISION array, dimension (N)\n* The first M elements contain the selected eigenvalues in\n* ascending order.\n*\n* Z (output) COMPLEX*16 array, dimension (LDZ, max(1,M) )\n* If JOBZ = 'V', and if INFO = 0, then the first M columns of Z\n* contain the orthonormal eigenvectors of the matrix T\n* corresponding to the selected eigenvalues, with the i-th\n* column of Z holding the eigenvector associated with W(i).\n* If JOBZ = 'N', then Z is not referenced.\n* Note: the user must ensure that at least max(1,M) columns are\n* supplied in the array Z; if RANGE = 'V', the exact value of M\n* is not known in advance and an upper bound must be used.\n* Supplying N columns is always safe.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1, and if\n* JOBZ = 'V', then LDZ >= max(1,N).\n*\n* ISUPPZ (output) INTEGER ARRAY, dimension ( 2*max(1,M) )\n* The support of the eigenvectors in Z, i.e., the indices\n* indicating the nonzero elements in Z. The i-th computed eigenvector\n* is nonzero only in elements ISUPPZ( 2*i-1 ) through\n* ISUPPZ( 2*i ). This is relevant in the case when the matrix\n* is split. ISUPPZ is only accessed when JOBZ is 'V' and N > 0.\n*\n* WORK (workspace/output) DOUBLE PRECISION array, dimension (LWORK)\n* On exit, if INFO = 0, WORK(1) returns the optimal\n* (and minimal) LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK >= max(1,18*N)\n* if JOBZ = 'V', and LWORK >= max(1,12*N) if JOBZ = 'N'.\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the WORK array, returns\n* this value as the first entry of the WORK array, and no error\n* message related to LWORK is issued by XERBLA.\n*\n* IWORK (workspace/output) INTEGER array, dimension (LIWORK)\n* On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.\n*\n* LIWORK (input) INTEGER\n* The dimension of the array IWORK. LIWORK >= max(1,10*N)\n* if the eigenvectors are desired, and LIWORK >= max(1,8*N)\n* if only the eigenvalues are to be computed.\n* If LIWORK = -1, then a workspace query is assumed; the\n* routine only calculates the optimal size of the IWORK array,\n* returns this value as the first entry of the IWORK array, and\n* no error message related to LIWORK is issued by XERBLA.\n*\n* INFO (output) INTEGER\n* On exit, INFO\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = 1X, internal error in DLARRE,\n* if INFO = 2X, internal error in ZLARRV.\n* Here, the digit X = ABS( IINFO ) < 10, where IINFO is\n* the nonzero error code returned by DLARRE or\n* ZLARRV, respectively.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Inderjit Dhillon, IBM Almaden, USA\n* Osni Marques, LBNL/NERSC, USA\n* Christof Voemel, LBNL/NERSC, USA\n*\n* =====================================================================\n*\n* .. Local Scalars ..\n LOGICAL TRYRAC\n* ..\n* .. External Subroutines ..\n EXTERNAL ZSTEMR\n* ..\n\n"); return Qnil; } if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) { diff -Nru ruby-lapack-1.7.2/ext/zsyrfsx.c ruby-lapack-1.8.1/ext/zsyrfsx.c --- ruby-lapack-1.7.2/ext/zsyrfsx.c 2015-03-18 06:58:23.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zsyrfsx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zsyrfsx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_uplo; char uplo; VALUE rblapack_equed; @@ -206,6 +207,9 @@ rblapack_rcond = rb_float_new((double)rcond); rblapack_info = INT2NUM(info); return rb_ary_new3(8, rblapack_rcond, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_s, rblapack_x, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/ext/zsysvxx.c ruby-lapack-1.8.1/ext/zsysvxx.c --- ruby-lapack-1.7.2/ext/zsysvxx.c 2015-03-18 06:58:29.000000000 +0000 +++ ruby-lapack-1.8.1/ext/zsysvxx.c 2018-03-08 07:50:28.000000000 +0000 @@ -5,6 +5,7 @@ static VALUE rblapack_zsysvxx(int argc, VALUE *argv, VALUE self){ +#ifdef USEXBLAS VALUE rblapack_fact; char fact; VALUE rblapack_uplo; @@ -246,6 +247,9 @@ rblapack_info = INT2NUM(info); rblapack_equed = rb_str_new(&equed,1); return rb_ary_new3(14, rblapack_x, rblapack_rcond, rblapack_rpvgrw, rblapack_berr, rblapack_err_bnds_norm, rblapack_err_bnds_comp, rblapack_info, rblapack_a, rblapack_af, rblapack_ipiv, rblapack_equed, rblapack_s, rblapack_b, rblapack_params); +#else + return Qnil; +#endif } void diff -Nru ruby-lapack-1.7.2/Rakefile ruby-lapack-1.8.1/Rakefile --- ruby-lapack-1.7.2/Rakefile 2016-02-08 02:42:29.000000000 +0000 +++ ruby-lapack-1.8.1/Rakefile 2018-03-08 07:50:28.000000000 +0000 @@ -3,7 +3,7 @@ require "rake/clean" require "rake/testtask" -version = "1.7.2" +version = "1.8.1" target_prefix = "numru" # get options