[DRE-commits] [ruby-lapack] 01/05: Imported Upstream version 1.7.2

Youhei SASAKI uwabami-guest at moszumanska.debian.org
Tue Feb 9 16:56:39 UTC 2016


This is an automated email from the git hooks/post-receive script.

uwabami-guest pushed a commit to branch master
in repository ruby-lapack.

commit 58209d0af0ea77a60814fdf63477afd121e6e3c6
Author: Youhei SASAKI <uwabami at gfd-dennou.org>
Date:   Mon Feb 8 19:26:03 2016 +0900

    Imported Upstream version 1.7.2
---
 Rakefile          |  2 +-
 dev/defs/claed7   |  2 +-
 dev/defs/clarrv   |  2 +-
 dev/defs/dlaed1   |  2 +-
 dev/defs/dlaed7   |  2 +-
 dev/defs/dlag2    | 32 ++++++++++-----------
 dev/defs/dlag2s   | 26 ++++++++---------
 dev/defs/dlarrf   |  2 +-
 dev/defs/dlarrv   |  2 +-
 dev/defs/dlasd1   |  2 +-
 dev/defs/dlasd6   |  2 +-
 dev/defs/slaed1   |  2 +-
 dev/defs/slaed7   |  2 +-
 dev/defs/slag2    | 32 ++++++++++-----------
 dev/defs/slarrf   |  2 +-
 dev/defs/slarrv   |  2 +-
 dev/defs/slasd1   |  2 +-
 dev/defs/slasd6   |  2 +-
 dev/defs/zlaed7   |  2 +-
 dev/defs/zlag2c   | 26 ++++++++---------
 dev/defs/zlarrv   |  2 +-
 dev/make_csrc.rb  | 16 +++++------
 dev/parse.rb      | 84 ++++++++++++++++++++++++++-----------------------------
 ext/claed7.c      |  2 +-
 ext/clarrv.c      |  2 +-
 ext/dlaed1.c      |  2 +-
 ext/dlaed7.c      |  2 +-
 ext/dlag2.c       |  2 +-
 ext/dlag2s.c      |  2 +-
 ext/dlarrf.c      |  2 +-
 ext/dlarrv.c      |  2 +-
 ext/dlasd1.c      |  2 +-
 ext/dlasd6.c      |  2 +-
 ext/extconf.rb    | 38 +++++++++++++++++--------
 ext/f2c_minimal.h |  6 ++--
 ext/slaed1.c      |  2 +-
 ext/slaed7.c      |  2 +-
 ext/slag2.c       |  2 +-
 ext/slarrf.c      |  2 +-
 ext/slarrv.c      |  2 +-
 ext/slasd1.c      |  2 +-
 ext/slasd6.c      |  2 +-
 ext/zlaed7.c      |  2 +-
 ext/zlag2c.c      |  2 +-
 ext/zlarrv.c      |  2 +-
 45 files changed, 173 insertions(+), 161 deletions(-)

diff --git a/Rakefile b/Rakefile
index c24d5e8..5c053b0 100644
--- a/Rakefile
+++ b/Rakefile
@@ -3,7 +3,7 @@ require "rubygems/package_task"
 require "rake/clean"
 require "rake/testtask"
 
-version = "1.7.1"
+version = "1.7.2"
 target_prefix = "numru"
 
 # get options
diff --git a/dev/defs/claed7 b/dev/defs/claed7
index 3f4e6bd..0c3e456 100644
--- a/dev/defs/claed7
+++ b/dev/defs/claed7
@@ -120,7 +120,7 @@
   *\n\
   *        The first stage consists of deflating the size of the problem\n\
   *        when there are multiple eigenvalues or if there is a zero in\n\
-  *        the Z vector.  For each such occurence the dimension of the\n\
+  *        the Z vector.  For each such occurrence the dimension of the\n\
   *        secular equation problem is reduced by one.  This stage is\n\
   *        performed by the routine SLAED2.\n\
   *\n\
diff --git a/dev/defs/clarrv b/dev/defs/clarrv
index 3c9b374..3318121 100644
--- a/dev/defs/clarrv
+++ b/dev/defs/clarrv
@@ -134,7 +134,7 @@
   *  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 splitted.) At the end of each block\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\
diff --git a/dev/defs/dlaed1 b/dev/defs/dlaed1
index d90c56a..ac68d9d 100644
--- a/dev/defs/dlaed1
+++ b/dev/defs/dlaed1
@@ -68,7 +68,7 @@
   *\n\
   *        The first stage consists of deflating the size of the problem\n\
   *        when there are multiple eigenvalues or if there is a zero in\n\
-  *        the Z vector.  For each such occurence the dimension of the\n\
+  *        the Z vector.  For each such occurrence the dimension of the\n\
   *        secular equation problem is reduced by one.  This stage is\n\
   *        performed by the routine DLAED2.\n\
   *\n\
diff --git a/dev/defs/dlaed7 b/dev/defs/dlaed7
index 6b5290e..82744ff 100644
--- a/dev/defs/dlaed7
+++ b/dev/defs/dlaed7
@@ -120,7 +120,7 @@
   *\n\
   *        The first stage consists of deflating the size of the problem\n\
   *        when there are multiple eigenvalues or if there is a zero in\n\
-  *        the Z vector.  For each such occurence the dimension of the\n\
+  *        the Z vector.  For each such occurrence the dimension of the\n\
   *        secular equation problem is reduced by one.  This stage is\n\
   *        performed by the routine DLAED8.\n\
   *\n\
diff --git a/dev/defs/dlag2 b/dev/defs/dlag2
index b94d4e4..e280886 100644
--- a/dev/defs/dlag2
+++ b/dev/defs/dlag2
@@ -1,42 +1,42 @@
---- 
+---
 :name: dlag2
 :md5sum: cb3cffe0121d3cdef959429272b11c8d
 :category: :subroutine
-:arguments: 
-- a: 
+:arguments:
+- a:
     :type: doublereal
     :intent: input
-    :dims: 
+    :dims:
     - lda
     - "2"
-- lda: 
+- lda:
     :type: integer
     :intent: input
-- b: 
+- b:
     :type: doublereal
     :intent: input
-    :dims: 
+    :dims:
     - ldb
     - "2"
-- ldb: 
+- ldb:
     :type: integer
     :intent: input
-- safmin: 
+- safmin:
     :type: doublereal
     :intent: input
-- scale1: 
+- scale1:
     :type: doublereal
     :intent: output
-- scale2: 
+- scale2:
     :type: doublereal
     :intent: output
-- wr1: 
+- wr1:
     :type: doublereal
     :intent: output
-- wr2: 
+- wr2:
     :type: doublereal
     :intent: output
-- wi: 
+- wi:
     :type: doublereal
     :intent: output
 :substitutions: {}
@@ -91,7 +91,7 @@
   *          will always be positive.  If the eigenvalues are real, then\n\
   *          the first (real) eigenvalue is  WR1 / SCALE1 , but this may\n\
   *          overflow or underflow, and in fact, SCALE1 may be zero or\n\
-  *          less than the underflow threshhold if the exact eigenvalue\n\
+  *          less than the underflow threshold if the exact eigenvalue\n\
   *          is sufficiently large.\n\
   *\n\
   *  SCALE2  (output) DOUBLE PRECISION\n\
@@ -101,7 +101,7 @@
   *          eigenvalues are real, then the second (real) eigenvalue is\n\
   *          WR2 / SCALE2 , but this may overflow or underflow, and in\n\
   *          fact, SCALE2 may be zero or less than the underflow\n\
-  *          threshhold if the exact eigenvalue is sufficiently large.\n\
+  *          threshold if the exact eigenvalue is sufficiently large.\n\
   *\n\
   *  WR1     (output) DOUBLE PRECISION\n\
   *          If the eigenvalue is real, then WR1 is SCALE1 times the\n\
diff --git a/dev/defs/dlag2s b/dev/defs/dlag2s
index 842713a..7735dcd 100644
--- a/dev/defs/dlag2s
+++ b/dev/defs/dlag2s
@@ -1,36 +1,36 @@
---- 
+---
 :name: dlag2s
 :md5sum: 669e5e37ddea7cbcff65fc0b9ae1eca2
 :category: :subroutine
-:arguments: 
-- m: 
+:arguments:
+- m:
     :type: integer
     :intent: input
-- n: 
+- n:
     :type: integer
     :intent: input
-- a: 
+- a:
     :type: doublereal
     :intent: input
-    :dims: 
+    :dims:
     - lda
     - n
-- lda: 
+- lda:
     :type: integer
     :intent: input
-- sa: 
+- sa:
     :type: real
     :intent: output
-    :dims: 
+    :dims:
     - ldsa
     - n
-- ldsa: 
+- ldsa:
     :type: integer
     :intent: input
-- info: 
+- info:
     :type: integer
     :intent: output
-:substitutions: 
+:substitutions:
   ldsa: MAX(1,m)
 :fortran_help: "      SUBROUTINE DLAG2S( M, N, A, LDA, SA, LDSA, INFO )\n\n\
   *  Purpose\n\
@@ -41,7 +41,7 @@
   *\n\
   *  RMAX is the overflow for the SINGLE PRECISION arithmetic\n\
   *  DLAG2S 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/dlarrf b/dev/defs/dlarrf
index 810d076..1d32fe8 100644
--- a/dev/defs/dlarrf
+++ b/dev/defs/dlarrf
@@ -91,7 +91,7 @@
   *  =========\n\
   *\n\
   *  N       (input) INTEGER\n\
-  *          The order of the matrix (subblock, if the matrix splitted).\n\
+  *          The order of the matrix (subblock, if the matrix split).\n\
   *\n\
   *  D       (input) DOUBLE PRECISION array, dimension (N)\n\
   *          The N diagonal elements of the diagonal matrix D.\n\
diff --git a/dev/defs/dlarrv b/dev/defs/dlarrv
index bb9462c..009113d 100644
--- a/dev/defs/dlarrv
+++ b/dev/defs/dlarrv
@@ -134,7 +134,7 @@
   *  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 splitted.) At the end of each block\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\
diff --git a/dev/defs/dlasd1 b/dev/defs/dlasd1
index 7206642..22c1f34 100644
--- a/dev/defs/dlasd1
+++ b/dev/defs/dlasd1
@@ -90,7 +90,7 @@
   *\n\
   *     The first stage consists of deflating the size of the problem\n\
   *     when there are multiple singular values or when there are zeros in\n\
-  *     the Z vector.  For each such occurence the dimension of the\n\
+  *     the Z vector.  For each such occurrence the dimension of the\n\
   *     secular equation problem is reduced by one.  This stage is\n\
   *     performed by the routine DLASD2.\n\
   *\n\
diff --git a/dev/defs/dlasd6 b/dev/defs/dlasd6
index e13bb3a..ba6c237 100644
--- a/dev/defs/dlasd6
+++ b/dev/defs/dlasd6
@@ -152,7 +152,7 @@
   *\n\
   *        The first stage consists of deflating the size of the problem\n\
   *        when there are multiple singular values or if there is a zero\n\
-  *        in the Z vector. For each such occurence the dimension of the\n\
+  *        in the Z vector. For each such occurrence the dimension of the\n\
   *        secular equation problem is reduced by one. This stage is\n\
   *        performed by the routine DLASD7.\n\
   *\n\
diff --git a/dev/defs/slaed1 b/dev/defs/slaed1
index 6b03f70..0863d2e 100644
--- a/dev/defs/slaed1
+++ b/dev/defs/slaed1
@@ -68,7 +68,7 @@
   *\n\
   *        The first stage consists of deflating the size of the problem\n\
   *        when there are multiple eigenvalues or if there is a zero in\n\
-  *        the Z vector.  For each such occurence the dimension of the\n\
+  *        the Z vector.  For each such occurrence the dimension of the\n\
   *        secular equation problem is reduced by one.  This stage is\n\
   *        performed by the routine SLAED2.\n\
   *\n\
diff --git a/dev/defs/slaed7 b/dev/defs/slaed7
index d8f75e2..89f7b49 100644
--- a/dev/defs/slaed7
+++ b/dev/defs/slaed7
@@ -120,7 +120,7 @@
   *\n\
   *        The first stage consists of deflating the size of the problem\n\
   *        when there are multiple eigenvalues or if there is a zero in\n\
-  *        the Z vector.  For each such occurence the dimension of the\n\
+  *        the Z vector.  For each such occurrence the dimension of the\n\
   *        secular equation problem is reduced by one.  This stage is\n\
   *        performed by the routine SLAED8.\n\
   *\n\
diff --git a/dev/defs/slag2 b/dev/defs/slag2
index decf72e..67d47eb 100644
--- a/dev/defs/slag2
+++ b/dev/defs/slag2
@@ -1,42 +1,42 @@
---- 
+---
 :name: slag2
 :md5sum: 4299c5465453583eb5c3f7ba95c8c2df
 :category: :subroutine
-:arguments: 
-- a: 
+:arguments:
+- a:
     :type: real
     :intent: input
-    :dims: 
+    :dims:
     - lda
     - "2"
-- lda: 
+- lda:
     :type: integer
     :intent: input
-- b: 
+- b:
     :type: real
     :intent: input
-    :dims: 
+    :dims:
     - ldb
     - "2"
-- ldb: 
+- ldb:
     :type: integer
     :intent: input
-- safmin: 
+- safmin:
     :type: real
     :intent: input
-- scale1: 
+- scale1:
     :type: real
     :intent: output
-- scale2: 
+- scale2:
     :type: real
     :intent: output
-- wr1: 
+- wr1:
     :type: real
     :intent: output
-- wr2: 
+- wr2:
     :type: real
     :intent: output
-- wi: 
+- wi:
     :type: real
     :intent: output
 :substitutions: {}
@@ -91,7 +91,7 @@
   *          will always be positive.  If the eigenvalues are real, then\n\
   *          the first (real) eigenvalue is  WR1 / SCALE1 , but this may\n\
   *          overflow or underflow, and in fact, SCALE1 may be zero or\n\
-  *          less than the underflow threshhold if the exact eigenvalue\n\
+  *          less than the underflow threshold if the exact eigenvalue\n\
   *          is sufficiently large.\n\
   *\n\
   *  SCALE2  (output) REAL\n\
@@ -101,7 +101,7 @@
   *          eigenvalues are real, then the second (real) eigenvalue is\n\
   *          WR2 / SCALE2 , but this may overflow or underflow, and in\n\
   *          fact, SCALE2 may be zero or less than the underflow\n\
-  *          threshhold if the exact eigenvalue is sufficiently large.\n\
+  *          threshold if the exact eigenvalue is sufficiently large.\n\
   *\n\
   *  WR1     (output) REAL\n\
   *          If the eigenvalue is real, then WR1 is SCALE1 times the\n\
diff --git a/dev/defs/slarrf b/dev/defs/slarrf
index 31fbed0..6f3ba00 100644
--- a/dev/defs/slarrf
+++ b/dev/defs/slarrf
@@ -91,7 +91,7 @@
   *  =========\n\
   *\n\
   *  N       (input) INTEGER\n\
-  *          The order of the matrix (subblock, if the matrix splitted).\n\
+  *          The order of the matrix (subblock, if the matrix split).\n\
   *\n\
   *  D       (input) REAL array, dimension (N)\n\
   *          The N diagonal elements of the diagonal matrix D.\n\
diff --git a/dev/defs/slarrv b/dev/defs/slarrv
index 53e21fd..9b5055b 100644
--- a/dev/defs/slarrv
+++ b/dev/defs/slarrv
@@ -134,7 +134,7 @@
   *  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 splitted.) At the end of each block\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\
diff --git a/dev/defs/slasd1 b/dev/defs/slasd1
index 046b2da..f3ab205 100644
--- a/dev/defs/slasd1
+++ b/dev/defs/slasd1
@@ -89,7 +89,7 @@
   *\n\
   *     The first stage consists of deflating the size of the problem\n\
   *     when there are multiple singular values or when there are zeros in\n\
-  *     the Z vector.  For each such occurence the dimension of the\n\
+  *     the Z vector.  For each such occurrence the dimension of the\n\
   *     secular equation problem is reduced by one.  This stage is\n\
   *     performed by the routine SLASD2.\n\
   *\n\
diff --git a/dev/defs/slasd6 b/dev/defs/slasd6
index 2d85074..24a595f 100644
--- a/dev/defs/slasd6
+++ b/dev/defs/slasd6
@@ -152,7 +152,7 @@
   *\n\
   *        The first stage consists of deflating the size of the problem\n\
   *        when there are multiple singular values or if there is a zero\n\
-  *        in the Z vector. For each such occurence the dimension of the\n\
+  *        in the Z vector. For each such occurrence the dimension of the\n\
   *        secular equation problem is reduced by one. This stage is\n\
   *        performed by the routine SLASD7.\n\
   *\n\
diff --git a/dev/defs/zlaed7 b/dev/defs/zlaed7
index e7db2a2..0c83bfb 100644
--- a/dev/defs/zlaed7
+++ b/dev/defs/zlaed7
@@ -120,7 +120,7 @@
   *\n\
   *        The first stage consists of deflating the size of the problem\n\
   *        when there are multiple eigenvalues or if there is a zero in\n\
-  *        the Z vector.  For each such occurence the dimension of the\n\
+  *        the Z vector.  For each such occurrence the dimension of the\n\
   *        secular equation problem is reduced by one.  This stage is\n\
   *        performed by the routine DLAED2.\n\
   *\n\
diff --git a/dev/defs/zlag2c b/dev/defs/zlag2c
index bd15105..f3eee85 100644
--- a/dev/defs/zlag2c
+++ b/dev/defs/zlag2c
@@ -1,36 +1,36 @@
---- 
+---
 :name: zlag2c
 :md5sum: 74fe0ffefcc616f52a172abaa7fccf0d
 :category: :subroutine
-:arguments: 
-- m: 
+:arguments:
+- m:
     :type: integer
     :intent: input
-- n: 
+- n:
     :type: integer
     :intent: input
-- a: 
+- a:
     :type: doublecomplex
     :intent: input
-    :dims: 
+    :dims:
     - lda
     - n
-- lda: 
+- lda:
     :type: integer
     :intent: input
-- sa: 
+- sa:
     :type: complex
     :intent: output
-    :dims: 
+    :dims:
     - ldsa
     - n
-- ldsa: 
+- ldsa:
     :type: integer
     :intent: input
-- info: 
+- info:
     :type: integer
     :intent: output
-:substitutions: 
+:substitutions:
   ldsa: MAX(1,m)
 :fortran_help: "      SUBROUTINE ZLAG2C( M, N, A, LDA, SA, LDSA, INFO )\n\n\
   *  Purpose\n\
@@ -40,7 +40,7 @@
   *\n\
   *  RMAX is the overflow for the SINGLE PRECISION arithmetic\n\
   *  ZLAG2C 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/zlarrv b/dev/defs/zlarrv
index 2ad6967..4f629a8 100644
--- a/dev/defs/zlarrv
+++ b/dev/defs/zlarrv
@@ -134,7 +134,7 @@
   *  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 splitted.) At the end of each block\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\
diff --git a/dev/make_csrc.rb b/dev/make_csrc.rb
index cb7da56..d75c38b 100644
--- a/dev/make_csrc.rb
+++ b/dev/make_csrc.rb
@@ -150,7 +150,7 @@ end
 
 
 
-def create_code(name, flag)
+def create_code(name, flag, debug)
   def_fname = File.join(TOPDIR, "dev", "defs", name)
   hash = nil
   begin
@@ -255,7 +255,7 @@ def create_code(name, flag)
     inputs.delete(k)
   end
 
-  if @@debug
+  if debug
     p "inputs"
     p inputs
     p "outputs"
@@ -481,7 +481,7 @@ EOF
   end
   order = new_order
 
- if @@debug
+ if debug
    p "order"
    pp order
  end
@@ -756,14 +756,14 @@ EOF
   return [code_all, sub_name]
 end
 
-def generate_code(fnames, names)
+def generate_code(fnames, names, debug)
   nfnames = fnames.length
   sub_names = Array.new
   fnames.each_with_index{|fname,i|
     print "#{i+1}/#{nfnames}\n" if (i+1)%100==0
     name = File.basename(fname)
     flag = names.nil? || names.include?(name)
-    code, sub_name = create_code(name, flag)
+    code, sub_name = create_code(name, flag, debug)
     if code
       sub_names.push sub_name
       if flag
@@ -846,7 +846,7 @@ end
 
 
 
-@@debug = ARGV.delete("--debug")
+debug = ARGV.delete("--debug")
 
 #dname = ARGV.shift || raise("Usage: ruby #$0 path_to_lapack_src [name0, name1, ..]")
 dname = File.join(TOPDIR, "dev", "defs")
@@ -856,7 +856,7 @@ end
 
 unless ARGV.empty?
   names = ARGV
-  @@debug = true
+  debug = true
 else
   names = nil
 end
@@ -864,4 +864,4 @@ end
 reg = File.join(dname, "[a-z]*[a-z0-9]")
 fnames = Dir[reg]
 
-generate_code(fnames, names)
+generate_code(fnames, names, debug)
diff --git a/dev/parse.rb b/dev/parse.rb
index f0b56e6..3c90b8d 100644
--- a/dev/parse.rb
+++ b/dev/parse.rb
@@ -64,10 +64,6 @@ ARGS = {
   "spstf2" => {
     "work" => {:intent => "input", :type => "real"}
   },
-  "slarrf" => {
-    "clgapl" => {:intent => "input", :type => "real"},
-    "clgapr" => {:intent => "input", :type => "real"},
-  },
   "cheequb" => {
     "uplo" => {:intent => "input", :type => "char"},
     "work" => {:intent => "input", :type => "complex"}
@@ -918,7 +914,7 @@ SUBSTS["dlansp"] = {"lwork" => '(lsame_(&norm,"I") || lsame_(&norm,"1") || lsame
 %w(zlange zlanhs).each{|n| SUBSTS[n] = {"lwork" => 'lsame_(&norm,"I") ? n : 0'}}
 %w(spprfs dpprfs cpprfs zpprfs chpsv zhpsv sspsv dspsv cspsv zspsv stprfs dtprfs ctprfs ztprfs).each{|n| SUBSTS[n] = {"n" => 'ldb'}}
 SUBSTS["slasd0"] = {"m" => "sqre == 0 ? n : sqre == 1 ? n+1 : 0", "ldu" => "n", "ldvt" => "m"}
-SUBSTS["dlasd0"] = {"m" => "sqre == 0 ? n : sqre == 1 ? n+1 : 0", "ldu" => "n", "ldu" => "n", "ldvt" => "n"}
+SUBSTS["dlasd0"] = {"m" => "sqre == 0 ? n : sqre == 1 ? n+1 : 0", "ldu" => "n",  "ldvt" => "n"}
 SUBSTS["slasd3"] = {"ldu2" => "n", "n" => "nl + nr + 1", "ldvt2" => "n", "m" => "n+sqre"}
 SUBSTS["dlasd3"] = {"ldu2" => "n", "n" => "nl + nr + 1", "ldvt2" => "n", "m" => "n + sqre"}
 %w(slasda dlasda).each{|n| SUBSTS[n] = {"m" => "sqre == 0 ? n : sqre == 1 ? n+1 : 0", "ldu" => "n"}}
@@ -1178,7 +1174,7 @@ def read_file(fname)
   return {:subr => subr, :purpose => purpose, :args => args, :help => help}
 end
 
-def parse_file(fname)
+def parse_file(fname, debug)
   hash = read_file(fname)
   subr = hash[:subr]
   purpose = hash[:purpose]
@@ -1219,7 +1215,7 @@ def parse_file(fname)
     raise "arg_names is nil #{fname}"
   end
 
-  if @@debug
+  if debug
     p sub_name
     p arg_names
   end
@@ -1289,7 +1285,7 @@ def parse_file(fname)
     end
   }
 
-  if @debug
+  if debug
     pp ary
   end
 
@@ -1437,7 +1433,7 @@ def parse_file(fname)
         str.sub!(/(just )?as declared in the (in the )?calling (subroutine|procedure)\./,"")
         str.strip
         if  /^([^;]+); if ([^,]+), ([^;]+); if ([^,]+), (.+)$/ =~ str
-          if @@debug
+          if debug
             p 100
           end
           v = get_vname($1)
@@ -1447,7 +1443,7 @@ def parse_file(fname)
           v1 = get_vname($5)
           str = "#{cond0} ? #{v0} : #{cond1} ? #{v1} : #{v}"
         elsif /^If ([^\,]+)\,\s+([^;]+); if ([^\,]+)\,\s+(.*)$/ =~ str || /^If ([^\,]+)\,\s+([^\.]+)\. If ([^\,]+)\,\s+(.*)$/ =~ str
-          if @@debug
+          if debug
             p 110
           end
           v0 = get_vname($1)
@@ -1456,7 +1452,7 @@ def parse_file(fname)
           cond1 = get_cond($4)
           str = "#{cond0} ? #{v0} : #{cond1} ? #{v1} : 0"
         elsif /^([^\,]+)\, and if ([^\,]+)\, (?:then )?(.*)$/ =~ str || /^([^;]+); if ([^\,]+)\, (?:then )?(.*)$/ =~ str
-          if @@debug
+          if debug
             p 120
           end
           v0 = get_vname($1)
@@ -1464,7 +1460,7 @@ def parse_file(fname)
           v1 = get_vname($3)
           str = "#{cond1} ? #{v1} : #{v0}"
         elsif /^(.+?) if ([^;]+); (.+?) otherwise$/ =~ str
-          if @@debug
+          if debug
             p 130
           end
           v0 = get_vname($1)
@@ -1472,7 +1468,7 @@ def parse_file(fname)
           v = get_vname($3)
           str = "#{cond0} ? #{v0} : #{v}"
         elsif /^If ([^,]+), then\s+(.+?)\.\s+In any case, (.+)$/ =~ str
-          if @@debug
+          if debug
             p 140
           end
           cond0 = get_cond($1)
@@ -1480,7 +1476,7 @@ def parse_file(fname)
           v = get_vname($3)
           str = "#{cond0} ? #{v0} : #{v}"
         elsif  /^([^;]+); and if ([^,]+), (.+)$/ =~ str
-          if @@debug
+          if debug
             p 150
           end
           v = get_vname($1)
@@ -1488,24 +1484,24 @@ def parse_file(fname)
           v0 = get_vname($3)
           str = "#{cond0} ? #{v0} : #{v}"
         elsif /^(.+?) \.LE\. #{un}$/ =~ str
-          if @@debug
+          if debug
             p 160
           end
           str = get_vname($1)
         elsif /^If ([^,]+), then\s+(.+)$/ =~ str
-          if @@debug
+          if debug
             p 170
           end
           cond0 = get_cond($1)
           v0 = get_vname($2)
           str = "#{cond0} ? #{v0} : 0"
         elsif (/^[sd]bdsdc$/ =~ sub_name && /^ld(u|vt)$/ =~ name)
-          if @@debug
+          if debug
             p 180
           end
           str = 'lsame_(&compq,"I") ? MAX(1,n) : 0'
         else
-          if @@debug
+          if debug
             p 190
           end
           if /^[sdcz]laqr[23]$/ =~ sub_name && name == "ldwv"
@@ -1569,39 +1565,39 @@ def parse_file(fname)
           if /^\([^;]+\); (\(.+?\) if [A-Z\d]+ = .+? or \(.+?\) if [A-Z\d]+ = .+)$/ =~ str
             str = $1
           end
-          if @@debug
+          if debug
             p name
             p str
           end
           while (str && str!="")
             if (/^(?:and )?\((.*?)\)\s+if\s+([^\,\;]+)[\,\;]\s+(.*)$/ =~ str) && (dim = $1.strip) && (cond = $2.strip) && (str_tmp = $3.strip) && (/ if .* if / !~ cond) && (/\([^\)]+$/ !~ cond) && (/=/ !~ dim)
-              if @@debug
+              if debug
                 p 1
               end
               str = str_tmp
             elsif (/^\(([^;]+?)\)\s+if\s+(.+?)\s+(?:or|and)\s+(\(.*\) if.*)$/ =~ str) || (/^\(([^;]+?)\)\s+if\s+(.+?)\s+(\(.*\)\s+if.*)$/ =~ str)
-              if @@debug
+              if debug
                 p 2
               end
               dim = $1
               cond = $2.strip
               str = $3.strip
             elsif /^If ([^\,]+)\,\s+([^;\.]+)[;\.]?(.*)$/ =~ str
-              if @@debug
+              if debug
                 p 2.5
               end
               cond = $1.strip
               dim = $2
               str = $3.strip
             elsif /^\((.*?)\)\s+if\s+([^\,]+)\, (\(.*\) otherwise)$/ =~ str
-              if @@debug
+              if debug
                 p 3
               end
               dim = $1.strip
               cond = $2.strip
               str = $3.strip
             elsif (/^(?:and )?\((.+?)\)\s+if\s+(.*)$/ =~ str) && (dim = $1.strip) && (cond = $2.strip) && (/if/ !~ dim) && (/ if /i !~ cond) && (/^[^\(]+\)/ !~ dim)
-              if @@debug
+              if debug
                 p 4
               end
               str = nil
@@ -1610,7 +1606,7 @@ def parse_file(fname)
               cond = $2
               str = $'
             elsif /^(.*?)\s+otherwise$/ =~ str && (dim = $1.strip) && (/ if / !~ dim)
-              if @@debug
+              if debug
                 p 5
               end
               if cond == "not referenced"
@@ -1623,7 +1619,7 @@ def parse_file(fname)
               flag = false
               break
             elsif /^\((.+?)\);?\s+If ([A-Z_\d]+ = [^\,]+)\, (then )?#{name.upcase} is not referenced.?$/ =~ str
-              if @@debug
+              if debug
                 p 6
               end
               dims = get_dims($1)
@@ -1634,7 +1630,7 @@ def parse_file(fname)
               flag = false
               break
             elsif /^\((.+?)\); Not referenced if (.*)$/ =~ str
-              if @@debug
+              if debug
                 p 6.5
               end
               v0 = get_vname($1)
@@ -1643,7 +1639,7 @@ def parse_file(fname)
               flag = false
               break
             elsif /\((.+?)\)\, where ([A-Z\d]+) >= ([A-Z\d]+) when ([^;]+); otherwise, #{name.upcase} is not referenced\.?$/ =~ str
-              if @@debug
+              if debug
                 p 7
               end
               dims = get_dims($1)
@@ -1654,7 +1650,7 @@ def parse_file(fname)
               flag = false
               break
             elsif /\((.+)\)[\.\,] where ([A-Z\d]+) = (.+)\.?$/ =~ str
-              if @@debug
+              if debug
                 p 8
               end
               dims = get_dims($1)
@@ -1664,7 +1660,7 @@ def parse_file(fname)
               flag = false
               break
             elsif /^(?:and )?(not referenced) if (.+).?$/ =~ str
-              if @@debug
+              if debug
                 p 9
               end
               dim = $1
@@ -1677,7 +1673,7 @@ def parse_file(fname)
               break
             else
               if /^\((.+?)\) (.+?) = (.+?) (?:when|if) ([^,]+), and (.+?) when (.+)$/ =~ str
-                if @@debug
+                if debug
                   p 10
                 end
                 dim = $1
@@ -1694,7 +1690,7 @@ def parse_file(fname)
                 flag = false
                 break
               elsif /^\((.+?)\) (.+?) = (.+?) (?:when|if) ([^,]+), and (.+?) otherwise.?$/ =~ str
-                if @@debug
+                if debug
                   p 11
                 end
                 dim = $1
@@ -1710,7 +1706,7 @@ def parse_file(fname)
                 flag = false
                 break
               elsif /^\((.+?)\);\s+[Ii]f ([A-Z_\d]+ = [^\,]+)\, ([A-Z_\d]+) \>?= ([^\.]+)\.\s+Otherwise\, ([A-Z_\d]+) \>?= (.*)$/ =~ str
-                if @@debug
+                if debug
                   p 14
                 end
                 dim = $1
@@ -1729,7 +1725,7 @@ def parse_file(fname)
                 break
               end
               if /^\((.+?)\)\.\s+[Ii]f ([A-Z_\d]+ = [^\,]+)\, ([A-Z_\d]+) = ([A-Z_\d]+); if ([A-Z_\d]+ = [^\,]+), ([A-Z_\d]+) = ([A-Z_\d]+)$/ =~ str
-                if @@debug
+                if debug
                   p 13
                 end
                 dim = $1
@@ -1740,7 +1736,7 @@ def parse_file(fname)
                 c10 = $6.downcase
                 c11 = $7.downcase
               elsif /\((.+?)\);? ([A-Z_\d]+) = (.+?) if ([^;]+); ([A-Z_\d]+) = (.+?) if (.+)$/ =~ str
-                if @@debug
+                if debug
                   p 13
                 end
                 dim = $1
@@ -1865,7 +1861,7 @@ def parse_file(fname)
     args["iloz"] = {:type => "integer", :intent => "input"}
     args["ihiz"] = {:type => "integer", :intent => "input"}
   end
-  if @@debug
+  if debug
     pp args
   end
 
@@ -1875,8 +1871,8 @@ def parse_file(fname)
 end
 
 
-def create_hash(fname)
-  hash = parse_file(fname)
+def create_hash(fname, debug)
+  hash = parse_file(fname, debug)
   if hash.nil?
     warn "skip #{fname}"
     return nil
@@ -1911,7 +1907,7 @@ def create_hash(fname)
   return hash
 end
 
-def generate_code(fnames)
+def generate_code(fnames, debug)
   nfnames = fnames.length
   sub_names = Array.new
   fnames.each_with_index{|fname,i|
@@ -1929,7 +1925,7 @@ def generate_code(fnames)
       next if get_md5sum(help) == md5sum && !@@force
     end
 
-    hash = create_hash(fname)
+    hash = create_hash(fname, debug)
     def hash.each
       [:name, :md5sum, :category].each do |k|
         yield(k, self[k])
@@ -1941,7 +1937,7 @@ def generate_code(fnames)
         yield(k, self[k])
       end
     end
-    p "write #{hash[:name]}" if @@debug
+    p "write #{hash[:name]}" if debug
     File.open(def_fname, "w") do |file|
       file.write hash.to_yaml
     end
@@ -1956,8 +1952,8 @@ end
 
 
 
-@@debug = ARGV.delete("--debug")
-@@force = ARGV.delete("--force")
+debug = ARGV.delete("--debug")
+force = ARGV.delete("--force")
 
 dname = ARGV[0] || raise("Usage: ruby #$0 path_to_lapack_src")
 if File.directory?(dname)
@@ -1967,6 +1963,6 @@ elsif File.file?(dname)
 #  @@debug = true
 end
 
-generate_code(fnames)
+generate_code(fnames, debug)
 
 
diff --git a/ext/claed7.c b/ext/claed7.c
index e7eb618..91a0756 100644
--- a/ext/claed7.c
+++ b/ext/claed7.c
@@ -59,7 +59,7 @@ rblapack_claed7(int argc, VALUE *argv, VALUE self){
     argc--;
     rblapack_options = argv[argc];
     if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
-      printf("%s\n", "USAGE:\n  indxq, info, d, q, qstore, qptr = NumRu::Lapack.claed7( cutpnt, qsiz, tlvls, curlvl, curpbm, d, q, rho, qstore, qptr, prmptr, perm, givptr, givcol, givnum, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE CLAED7( N, CUTPNT, QSIZ, TLVLS, CURLVL, CURPBM, D, Q, LDQ, RHO, INDXQ, QSTORE, QPTR, PRMPTR, PERM, GIVPTR, GIVCOL, GIVNUM, WORK, RWORK, IWORK, INFO )\n\n*  Purpose\n*  =======\n*\n*  CLAED7 computes the updated eigensystem of a diag [...]
+      printf("%s\n", "USAGE:\n  indxq, info, d, q, qstore, qptr = NumRu::Lapack.claed7( cutpnt, qsiz, tlvls, curlvl, curpbm, d, q, rho, qstore, qptr, prmptr, perm, givptr, givcol, givnum, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE CLAED7( N, CUTPNT, QSIZ, TLVLS, CURLVL, CURPBM, D, Q, LDQ, RHO, INDXQ, QSTORE, QPTR, PRMPTR, PERM, GIVPTR, GIVCOL, GIVNUM, WORK, RWORK, IWORK, INFO )\n\n*  Purpose\n*  =======\n*\n*  CLAED7 computes the updated eigensystem of a diag [...]
       return Qnil;
     }
     if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
diff --git a/ext/clarrv.c b/ext/clarrv.c
index 91b0aae..d27db0f 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 tri [...]
+      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 tri [...]
       return Qnil;
     }
     if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
diff --git a/ext/dlaed1.c b/ext/dlaed1.c
index 544ce31..51ea6ed 100644
--- a/ext/dlaed1.c
+++ b/ext/dlaed1.c
@@ -34,7 +34,7 @@ rblapack_dlaed1(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, q, indxq = NumRu::Lapack.dlaed1( d, q, indxq, rho, cutpnt, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE DLAED1( N, D, Q, LDQ, INDXQ, RHO, CUTPNT, WORK, IWORK, INFO )\n\n*  Purpose\n*  =======\n*\n*  DLAED1 computes the updated eigensystem of a diagonal\n*  matrix after modification by a rank-one symmetric matrix.  This\n*  routine is used only for the eigenproblem which requires all\n*  eigenvalues and eigenvectors of a  [...]
+      printf("%s\n", "USAGE:\n  info, d, q, indxq = NumRu::Lapack.dlaed1( d, q, indxq, rho, cutpnt, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE DLAED1( N, D, Q, LDQ, INDXQ, RHO, CUTPNT, WORK, IWORK, INFO )\n\n*  Purpose\n*  =======\n*\n*  DLAED1 computes the updated eigensystem of a diagonal\n*  matrix after modification by a rank-one symmetric matrix.  This\n*  routine is used only for the eigenproblem which requires all\n*  eigenvalues and eigenvectors of a  [...]
       return Qnil;
     }
     if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
diff --git a/ext/dlaed7.c b/ext/dlaed7.c
index b189c0c..860e668 100644
--- a/ext/dlaed7.c
+++ b/ext/dlaed7.c
@@ -60,7 +60,7 @@ rblapack_dlaed7(int argc, VALUE *argv, VALUE self){
     argc--;
     rblapack_options = argv[argc];
     if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
-      printf("%s\n", "USAGE:\n  indxq, info, d, q, qstore, qptr = NumRu::Lapack.dlaed7( icompq, qsiz, tlvls, curlvl, curpbm, d, q, rho, cutpnt, qstore, qptr, prmptr, perm, givptr, givcol, givnum, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE DLAED7( ICOMPQ, N, QSIZ, TLVLS, CURLVL, CURPBM, D, Q, LDQ, INDXQ, RHO, CUTPNT, QSTORE, QPTR, PRMPTR, PERM, GIVPTR, GIVCOL, GIVNUM, WORK, IWORK, INFO )\n\n*  Purpose\n*  =======\n*\n*  DLAED7 computes the updated eigensystem  [...]
+      printf("%s\n", "USAGE:\n  indxq, info, d, q, qstore, qptr = NumRu::Lapack.dlaed7( icompq, qsiz, tlvls, curlvl, curpbm, d, q, rho, cutpnt, qstore, qptr, prmptr, perm, givptr, givcol, givnum, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE DLAED7( ICOMPQ, N, QSIZ, TLVLS, CURLVL, CURPBM, D, Q, LDQ, INDXQ, RHO, CUTPNT, QSTORE, QPTR, PRMPTR, PERM, GIVPTR, GIVCOL, GIVNUM, WORK, IWORK, INFO )\n\n*  Purpose\n*  =======\n*\n*  DLAED7 computes the updated eigensystem  [...]
       return Qnil;
     }
     if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
diff --git a/ext/dlag2.c b/ext/dlag2.c
index 8890dc8..a87e924 100644
--- a/ext/dlag2.c
+++ b/ext/dlag2.c
@@ -30,7 +30,7 @@ rblapack_dlag2(int argc, VALUE *argv, VALUE self){
     argc--;
     rblapack_options = argv[argc];
     if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
-      printf("%s\n", "USAGE:\n  scale1, scale2, wr1, wr2, wi = NumRu::Lapack.dlag2( a, b, safmin, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE DLAG2( A, LDA, B, LDB, SAFMIN, SCALE1, SCALE2, WR1, WR2, WI )\n\n*  Purpose\n*  =======\n*\n*  DLAG2 computes the eigenvalues of a 2 x 2 generalized eigenvalue\n*  problem  A - w B, with scaling as necessary to avoid over-/underflow.\n*\n*  The scaling factor \"s\" results in a modified eigenvalue equation\n*\n*      s A [...]
+      printf("%s\n", "USAGE:\n  scale1, scale2, wr1, wr2, wi = NumRu::Lapack.dlag2( a, b, safmin, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE DLAG2( A, LDA, B, LDB, SAFMIN, SCALE1, SCALE2, WR1, WR2, WI )\n\n*  Purpose\n*  =======\n*\n*  DLAG2 computes the eigenvalues of a 2 x 2 generalized eigenvalue\n*  problem  A - w B, with scaling as necessary to avoid over-/underflow.\n*\n*  The scaling factor \"s\" results in a modified eigenvalue equation\n*\n*      s A [...]
       return Qnil;
     }
     if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
diff --git a/ext/dlag2s.c b/ext/dlag2s.c
index 61745a3..db1afa8 100644
--- a/ext/dlag2s.c
+++ b/ext/dlag2s.c
@@ -23,7 +23,7 @@ rblapack_dlag2s(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.dlag2s( m, a, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE DLAG2S( M, N, A, LDA, SA, LDSA, INFO )\n\n*  Purpose\n*  =======\n*\n*  DLAG2S converts a DOUBLE PRECISION matrix, SA, to a SINGLE\n*  PRECISION matrix, A.\n*\n*  RMAX is the overflow for the SINGLE PRECISION arithmetic\n*  DLAG2S checks that all the entries of A are between -RMAX and\n*  RMAX. If not the convertion is aborted and a flag is raised [...]
+      printf("%s\n", "USAGE:\n  sa, info = NumRu::Lapack.dlag2s( m, a, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE DLAG2S( M, N, A, LDA, SA, LDSA, INFO )\n\n*  Purpose\n*  =======\n*\n*  DLAG2S converts a DOUBLE PRECISION matrix, SA, to a SINGLE\n*  PRECISION matrix, A.\n*\n*  RMAX is the overflow for the SINGLE PRECISION arithmetic\n*  DLAG2S checks that all the entries of A are between -RMAX and\n*  RMAX. If not the conversion is aborted and a flag is raised [...]
       return Qnil;
     }
     if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
diff --git a/ext/dlarrf.c b/ext/dlarrf.c
index 468de82..57853a2 100644
--- a/ext/dlarrf.c
+++ b/ext/dlarrf.c
@@ -48,7 +48,7 @@ rblapack_dlarrf(int argc, VALUE *argv, VALUE self){
     argc--;
     rblapack_options = argv[argc];
     if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
-      printf("%s\n", "USAGE:\n  sigma, dplus, lplus, info, wgap = NumRu::Lapack.dlarrf( d, l, ld, clstrt, clend, w, wgap, werr, spdiam, clgapl, clgapr, pivmin, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE DLARRF( N, D, L, LD, CLSTRT, CLEND, W, WGAP, WERR, SPDIAM, CLGAPL, CLGAPR, PIVMIN, SIGMA, DPLUS, LPLUS, WORK, INFO )\n\n*  Purpose\n*  =======\n*\n*  Given the initial representation L D L^T and its cluster of close\n*  eigenvalues (in a relative measure), W(  [...]
+      printf("%s\n", "USAGE:\n  sigma, dplus, lplus, info, wgap = NumRu::Lapack.dlarrf( d, l, ld, clstrt, clend, w, wgap, werr, spdiam, clgapl, clgapr, pivmin, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE DLARRF( N, D, L, LD, CLSTRT, CLEND, W, WGAP, WERR, SPDIAM, CLGAPL, CLGAPR, PIVMIN, SIGMA, DPLUS, LPLUS, WORK, INFO )\n\n*  Purpose\n*  =======\n*\n*  Given the initial representation L D L^T and its cluster of close\n*  eigenvalues (in a relative measure), W(  [...]
       return Qnil;
     }
     if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
diff --git a/ext/dlarrv.c b/ext/dlarrv.c
index 5ae6426..e1114cf 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 tri [...]
+      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 tri [...]
       return Qnil;
     }
     if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
diff --git a/ext/dlasd1.c b/ext/dlasd1.c
index ab546e9..b901939 100644
--- a/ext/dlasd1.c
+++ b/ext/dlasd1.c
@@ -44,7 +44,7 @@ rblapack_dlasd1(int argc, VALUE *argv, VALUE self){
     argc--;
     rblapack_options = argv[argc];
     if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
-      printf("%s\n", "USAGE:\n  idxq, info, d, alpha, beta, u, vt = NumRu::Lapack.dlasd1( nl, nr, sqre, d, alpha, beta, u, vt, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE DLASD1( NL, NR, SQRE, D, ALPHA, BETA, U, LDU, VT, LDVT, IDXQ, IWORK, WORK, INFO )\n\n*  Purpose\n*  =======\n*\n*  DLASD1 computes the SVD of an upper bidiagonal N-by-M matrix B,\n*  where N = NL + NR + 1 and M = N + SQRE. DLASD1 is called from DLASD0.\n*\n*  A related subroutine DLASD7 handl [...]
+      printf("%s\n", "USAGE:\n  idxq, info, d, alpha, beta, u, vt = NumRu::Lapack.dlasd1( nl, nr, sqre, d, alpha, beta, u, vt, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE DLASD1( NL, NR, SQRE, D, ALPHA, BETA, U, LDU, VT, LDVT, IDXQ, IWORK, WORK, INFO )\n\n*  Purpose\n*  =======\n*\n*  DLASD1 computes the SVD of an upper bidiagonal N-by-M matrix B,\n*  where N = NL + NR + 1 and M = N + SQRE. DLASD1 is called from DLASD0.\n*\n*  A related subroutine DLASD7 handl [...]
       return Qnil;
     }
     if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
diff --git a/ext/dlasd6.c b/ext/dlasd6.c
index e728a22..97623b2 100644
--- a/ext/dlasd6.c
+++ b/ext/dlasd6.c
@@ -68,7 +68,7 @@ rblapack_dlasd6(int argc, VALUE *argv, VALUE self){
     argc--;
     rblapack_options = argv[argc];
     if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
-      printf("%s\n", "USAGE:\n  idxq, perm, givptr, givcol, givnum, poles, difl, difr, z, k, c, s, info, d, vf, vl, alpha, beta = NumRu::Lapack.dlasd6( icompq, nl, nr, sqre, d, vf, vl, alpha, beta, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE DLASD6( ICOMPQ, NL, NR, SQRE, D, VF, VL, ALPHA, BETA, IDXQ, PERM, GIVPTR, GIVCOL, LDGCOL, GIVNUM, LDGNUM, POLES, DIFL, DIFR, Z, K, C, S, WORK, IWORK, INFO )\n\n*  Purpose\n*  =======\n*\n*  DLASD6 computes the SVD of an up [...]
+      printf("%s\n", "USAGE:\n  idxq, perm, givptr, givcol, givnum, poles, difl, difr, z, k, c, s, info, d, vf, vl, alpha, beta = NumRu::Lapack.dlasd6( icompq, nl, nr, sqre, d, vf, vl, alpha, beta, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE DLASD6( ICOMPQ, NL, NR, SQRE, D, VF, VL, ALPHA, BETA, IDXQ, PERM, GIVPTR, GIVCOL, LDGCOL, GIVNUM, LDGNUM, POLES, DIFL, DIFR, Z, K, C, S, WORK, IWORK, INFO )\n\n*  Purpose\n*  =======\n*\n*  DLASD6 computes the SVD of an up [...]
       return Qnil;
     }
     if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
diff --git a/ext/extconf.rb b/ext/extconf.rb
index 0e9d26d..9eca373 100644
--- a/ext/extconf.rb
+++ b/ext/extconf.rb
@@ -62,19 +62,33 @@ unless find_library("lapack", nil)
   end
 end
 
-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]))
-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
+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)
   else
-    sitearchdir = RbConfig::CONFIG["sitearchdir"]
-    narray_include = narray_lib = [ $sitearchdir, $sitearchdir]
+    narray_dir = s.extension_dir + "/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]))
+  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]
+    end
   end
 end
 dir_config('narray', narray_include, narray_lib)
diff --git a/ext/f2c_minimal.h b/ext/f2c_minimal.h
index 1c895c1..3dae80a 100644
--- a/ext/f2c_minimal.h
+++ b/ext/f2c_minimal.h
@@ -7,7 +7,9 @@
 #ifndef F2C_INCLUDE
 #define F2C_INCLUDE
 
-#if defined(__alpha__) || defined(__sparc64__) || defined(__x86_64__) || defined(__ia64__)
+#include <stdint.h>
+
+#if UINTPTR_MAX == UINT64_MAX
 typedef int integer;
 typedef int logical;
 #else
@@ -22,7 +24,7 @@ typedef struct { doublereal r, i; } doublecomplex;
 #ifdef f2c_i2
 typedef short ftnlen;
 #else
-#if defined(__alpha__) || defined(__sparc64__) || defined(__x86_64__) || defined(__ia64__)
+#if UINTPTR_MAX == UINT64_MAX
 typedef int ftnlen;
 #else
 typedef long int ftnlen;
diff --git a/ext/slaed1.c b/ext/slaed1.c
index 8276c1a..5a36250 100644
--- a/ext/slaed1.c
+++ b/ext/slaed1.c
@@ -34,7 +34,7 @@ rblapack_slaed1(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, q, indxq = NumRu::Lapack.slaed1( d, q, indxq, rho, cutpnt, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE SLAED1( N, D, Q, LDQ, INDXQ, RHO, CUTPNT, WORK, IWORK, INFO )\n\n*  Purpose\n*  =======\n*\n*  SLAED1 computes the updated eigensystem of a diagonal\n*  matrix after modification by a rank-one symmetric matrix.  This\n*  routine is used only for the eigenproblem which requires all\n*  eigenvalues and eigenvectors of a  [...]
+      printf("%s\n", "USAGE:\n  info, d, q, indxq = NumRu::Lapack.slaed1( d, q, indxq, rho, cutpnt, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE SLAED1( N, D, Q, LDQ, INDXQ, RHO, CUTPNT, WORK, IWORK, INFO )\n\n*  Purpose\n*  =======\n*\n*  SLAED1 computes the updated eigensystem of a diagonal\n*  matrix after modification by a rank-one symmetric matrix.  This\n*  routine is used only for the eigenproblem which requires all\n*  eigenvalues and eigenvectors of a  [...]
       return Qnil;
     }
     if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
diff --git a/ext/slaed7.c b/ext/slaed7.c
index af6410f..52c81e6 100644
--- a/ext/slaed7.c
+++ b/ext/slaed7.c
@@ -60,7 +60,7 @@ rblapack_slaed7(int argc, VALUE *argv, VALUE self){
     argc--;
     rblapack_options = argv[argc];
     if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
-      printf("%s\n", "USAGE:\n  indxq, info, d, q, qstore, qptr = NumRu::Lapack.slaed7( icompq, qsiz, tlvls, curlvl, curpbm, d, q, rho, cutpnt, qstore, qptr, prmptr, perm, givptr, givcol, givnum, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE SLAED7( ICOMPQ, N, QSIZ, TLVLS, CURLVL, CURPBM, D, Q, LDQ, INDXQ, RHO, CUTPNT, QSTORE, QPTR, PRMPTR, PERM, GIVPTR, GIVCOL, GIVNUM, WORK, IWORK, INFO )\n\n*  Purpose\n*  =======\n*\n*  SLAED7 computes the updated eigensystem  [...]
+      printf("%s\n", "USAGE:\n  indxq, info, d, q, qstore, qptr = NumRu::Lapack.slaed7( icompq, qsiz, tlvls, curlvl, curpbm, d, q, rho, cutpnt, qstore, qptr, prmptr, perm, givptr, givcol, givnum, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE SLAED7( ICOMPQ, N, QSIZ, TLVLS, CURLVL, CURPBM, D, Q, LDQ, INDXQ, RHO, CUTPNT, QSTORE, QPTR, PRMPTR, PERM, GIVPTR, GIVCOL, GIVNUM, WORK, IWORK, INFO )\n\n*  Purpose\n*  =======\n*\n*  SLAED7 computes the updated eigensystem  [...]
       return Qnil;
     }
     if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
diff --git a/ext/slag2.c b/ext/slag2.c
index 2f9f0f7..bf5fa9f 100644
--- a/ext/slag2.c
+++ b/ext/slag2.c
@@ -30,7 +30,7 @@ rblapack_slag2(int argc, VALUE *argv, VALUE self){
     argc--;
     rblapack_options = argv[argc];
     if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
-      printf("%s\n", "USAGE:\n  scale1, scale2, wr1, wr2, wi = NumRu::Lapack.slag2( a, b, safmin, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE SLAG2( A, LDA, B, LDB, SAFMIN, SCALE1, SCALE2, WR1, WR2, WI )\n\n*  Purpose\n*  =======\n*\n*  SLAG2 computes the eigenvalues of a 2 x 2 generalized eigenvalue\n*  problem  A - w B, with scaling as necessary to avoid over-/underflow.\n*\n*  The scaling factor \"s\" results in a modified eigenvalue equation\n*\n*      s A [...]
+      printf("%s\n", "USAGE:\n  scale1, scale2, wr1, wr2, wi = NumRu::Lapack.slag2( a, b, safmin, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE SLAG2( A, LDA, B, LDB, SAFMIN, SCALE1, SCALE2, WR1, WR2, WI )\n\n*  Purpose\n*  =======\n*\n*  SLAG2 computes the eigenvalues of a 2 x 2 generalized eigenvalue\n*  problem  A - w B, with scaling as necessary to avoid over-/underflow.\n*\n*  The scaling factor \"s\" results in a modified eigenvalue equation\n*\n*      s A [...]
       return Qnil;
     }
     if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
diff --git a/ext/slarrf.c b/ext/slarrf.c
index 4948531..2a52d06 100644
--- a/ext/slarrf.c
+++ b/ext/slarrf.c
@@ -48,7 +48,7 @@ rblapack_slarrf(int argc, VALUE *argv, VALUE self){
     argc--;
     rblapack_options = argv[argc];
     if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
-      printf("%s\n", "USAGE:\n  sigma, dplus, lplus, info, wgap = NumRu::Lapack.slarrf( d, l, ld, clstrt, clend, w, wgap, werr, spdiam, clgapl, clgapr, pivmin, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE SLARRF( N, D, L, LD, CLSTRT, CLEND, W, WGAP, WERR, SPDIAM, CLGAPL, CLGAPR, PIVMIN, SIGMA, DPLUS, LPLUS, WORK, INFO )\n\n*  Purpose\n*  =======\n*\n*  Given the initial representation L D L^T and its cluster of close\n*  eigenvalues (in a relative measure), W(  [...]
+      printf("%s\n", "USAGE:\n  sigma, dplus, lplus, info, wgap = NumRu::Lapack.slarrf( d, l, ld, clstrt, clend, w, wgap, werr, spdiam, clgapl, clgapr, pivmin, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE SLARRF( N, D, L, LD, CLSTRT, CLEND, W, WGAP, WERR, SPDIAM, CLGAPL, CLGAPR, PIVMIN, SIGMA, DPLUS, LPLUS, WORK, INFO )\n\n*  Purpose\n*  =======\n*\n*  Given the initial representation L D L^T and its cluster of close\n*  eigenvalues (in a relative measure), W(  [...]
       return Qnil;
     }
     if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
diff --git a/ext/slarrv.c b/ext/slarrv.c
index cf15390..f6d627b 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 tri [...]
+      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 tri [...]
       return Qnil;
     }
     if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
diff --git a/ext/slasd1.c b/ext/slasd1.c
index 50b4549..603dc25 100644
--- a/ext/slasd1.c
+++ b/ext/slasd1.c
@@ -44,7 +44,7 @@ rblapack_slasd1(int argc, VALUE *argv, VALUE self){
     argc--;
     rblapack_options = argv[argc];
     if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
-      printf("%s\n", "USAGE:\n  idxq, info, d, alpha, beta, u, vt = NumRu::Lapack.slasd1( nl, nr, sqre, d, alpha, beta, u, vt, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE SLASD1( NL, NR, SQRE, D, ALPHA, BETA, U, LDU, VT, LDVT, IDXQ, IWORK, WORK, INFO )\n\n*  Purpose\n*  =======\n*\n*  SLASD1 computes the SVD of an upper bidiagonal N-by-M matrix B,\n*  where N = NL + NR + 1 and M = N + SQRE. SLASD1 is called from SLASD0.\n*\n*  A related subroutine SLASD7 handl [...]
+      printf("%s\n", "USAGE:\n  idxq, info, d, alpha, beta, u, vt = NumRu::Lapack.slasd1( nl, nr, sqre, d, alpha, beta, u, vt, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE SLASD1( NL, NR, SQRE, D, ALPHA, BETA, U, LDU, VT, LDVT, IDXQ, IWORK, WORK, INFO )\n\n*  Purpose\n*  =======\n*\n*  SLASD1 computes the SVD of an upper bidiagonal N-by-M matrix B,\n*  where N = NL + NR + 1 and M = N + SQRE. SLASD1 is called from SLASD0.\n*\n*  A related subroutine SLASD7 handl [...]
       return Qnil;
     }
     if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
diff --git a/ext/slasd6.c b/ext/slasd6.c
index 26c712f..146e5b8 100644
--- a/ext/slasd6.c
+++ b/ext/slasd6.c
@@ -68,7 +68,7 @@ rblapack_slasd6(int argc, VALUE *argv, VALUE self){
     argc--;
     rblapack_options = argv[argc];
     if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
-      printf("%s\n", "USAGE:\n  idxq, perm, givptr, givcol, givnum, poles, difl, difr, z, k, c, s, info, d, vf, vl, alpha, beta = NumRu::Lapack.slasd6( icompq, nl, nr, sqre, d, vf, vl, alpha, beta, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE SLASD6( ICOMPQ, NL, NR, SQRE, D, VF, VL, ALPHA, BETA, IDXQ, PERM, GIVPTR, GIVCOL, LDGCOL, GIVNUM, LDGNUM, POLES, DIFL, DIFR, Z, K, C, S, WORK, IWORK, INFO )\n\n*  Purpose\n*  =======\n*\n*  SLASD6 computes the SVD of an up [...]
+      printf("%s\n", "USAGE:\n  idxq, perm, givptr, givcol, givnum, poles, difl, difr, z, k, c, s, info, d, vf, vl, alpha, beta = NumRu::Lapack.slasd6( icompq, nl, nr, sqre, d, vf, vl, alpha, beta, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE SLASD6( ICOMPQ, NL, NR, SQRE, D, VF, VL, ALPHA, BETA, IDXQ, PERM, GIVPTR, GIVCOL, LDGCOL, GIVNUM, LDGNUM, POLES, DIFL, DIFR, Z, K, C, S, WORK, IWORK, INFO )\n\n*  Purpose\n*  =======\n*\n*  SLASD6 computes the SVD of an up [...]
       return Qnil;
     }
     if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
diff --git a/ext/zlaed7.c b/ext/zlaed7.c
index 9bfe8b6..986bd74 100644
--- a/ext/zlaed7.c
+++ b/ext/zlaed7.c
@@ -59,7 +59,7 @@ rblapack_zlaed7(int argc, VALUE *argv, VALUE self){
     argc--;
     rblapack_options = argv[argc];
     if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
-      printf("%s\n", "USAGE:\n  indxq, info, d, q, qstore, qptr = NumRu::Lapack.zlaed7( cutpnt, qsiz, tlvls, curlvl, curpbm, d, q, rho, qstore, qptr, prmptr, perm, givptr, givcol, givnum, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE ZLAED7( N, CUTPNT, QSIZ, TLVLS, CURLVL, CURPBM, D, Q, LDQ, RHO, INDXQ, QSTORE, QPTR, PRMPTR, PERM, GIVPTR, GIVCOL, GIVNUM, WORK, RWORK, IWORK, INFO )\n\n*  Purpose\n*  =======\n*\n*  ZLAED7 computes the updated eigensystem of a diag [...]
+      printf("%s\n", "USAGE:\n  indxq, info, d, q, qstore, qptr = NumRu::Lapack.zlaed7( cutpnt, qsiz, tlvls, curlvl, curpbm, d, q, rho, qstore, qptr, prmptr, perm, givptr, givcol, givnum, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE ZLAED7( N, CUTPNT, QSIZ, TLVLS, CURLVL, CURPBM, D, Q, LDQ, RHO, INDXQ, QSTORE, QPTR, PRMPTR, PERM, GIVPTR, GIVCOL, GIVNUM, WORK, RWORK, IWORK, INFO )\n\n*  Purpose\n*  =======\n*\n*  ZLAED7 computes the updated eigensystem of a diag [...]
       return Qnil;
     }
     if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
diff --git a/ext/zlag2c.c b/ext/zlag2c.c
index 3e2a780..5f98d10 100644
--- a/ext/zlag2c.c
+++ b/ext/zlag2c.c
@@ -23,7 +23,7 @@ rblapack_zlag2c(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.zlag2c( m, a, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE ZLAG2C( M, N, A, LDA, SA, LDSA, INFO )\n\n*  Purpose\n*  =======\n*\n*  ZLAG2C converts a COMPLEX*16 matrix, SA, to a COMPLEX matrix, A.\n*\n*  RMAX is the overflow for the SINGLE PRECISION arithmetic\n*  ZLAG2C 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 [...]
+      printf("%s\n", "USAGE:\n  sa, info = NumRu::Lapack.zlag2c( m, a, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n      SUBROUTINE ZLAG2C( M, N, A, LDA, SA, LDSA, INFO )\n\n*  Purpose\n*  =======\n*\n*  ZLAG2C converts a COMPLEX*16 matrix, SA, to a COMPLEX matrix, A.\n*\n*  RMAX is the overflow for the SINGLE PRECISION arithmetic\n*  ZLAG2C 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 [...]
       return Qnil;
     }
     if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
diff --git a/ext/zlarrv.c b/ext/zlarrv.c
index fb25b0c..26ee791 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 tri [...]
+      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 tri [...]
       return Qnil;
     }
     if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ruby-extras/ruby-lapack.git



More information about the Pkg-ruby-extras-commits mailing list