[DRE-commits] [ruby-lapack] 02/05: Refresh patches

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 5f5062226e37b042fd73d3c57656a55f3f388a71
Author: Youhei SASAKI <uwabami at gfd-dennou.org>
Date:   Mon Feb 8 19:45:31 2016 +0900

    Refresh patches
    
    Signed-off-by: Youhei SASAKI <uwabami at gfd-dennou.org>
---
 .../{0002-Fix-typo.patch => 0002_Fix-Typo.patch}   | 3201 +++-----------------
 debian/patches/series                              |    2 +-
 2 files changed, 400 insertions(+), 2803 deletions(-)

diff --git a/debian/patches/0002-Fix-typo.patch b/debian/patches/0002_Fix-Typo.patch
similarity index 57%
rename from debian/patches/0002-Fix-typo.patch
rename to debian/patches/0002_Fix-Typo.patch
index b15f0aa..a68804c 100644
--- a/debian/patches/0002-Fix-typo.patch
+++ b/debian/patches/0002_Fix-Typo.patch
@@ -1,280 +1,102 @@
-From: Youhei SASAKI <uwabami at gfd-dennou.org>
-Date: Sun, 23 Mar 2014 21:26:58 +0900
-Subject: Fix typo.
+From: Debian Ruby Extras Maintainers
+ <pkg-ruby-extras-maintainers at lists.alioth.debian.org>
+Date: Mon, 8 Feb 2016 19:50:25 +0900
+Subject: Fix Typo
 
 Signed-off-by: Youhei SASAKI <uwabami at gfd-dennou.org>
 ---
- dev/defs/clarrv | 84 ++++++++++++++++++++++++++++-----------------------------
- dev/defs/clatdf | 32 +++++++++++-----------
- dev/defs/cstegr | 62 +++++++++++++++++++++---------------------
- dev/defs/dlamrg | 22 +++++++--------
- dev/defs/dlarrf | 60 ++++++++++++++++++++---------------------
- dev/defs/dlarrv | 84 ++++++++++++++++++++++++++++-----------------------------
- dev/defs/dlatdf | 32 +++++++++++-----------
- dev/defs/dsgesv |  2 +-
- dev/defs/dsposv |  2 +-
- dev/defs/dstegr | 62 +++++++++++++++++++++---------------------
- dev/defs/slamrg | 22 +++++++--------
- dev/defs/slarrf | 60 ++++++++++++++++++++---------------------
- dev/defs/slarrv | 84 ++++++++++++++++++++++++++++-----------------------------
- dev/defs/slatdf | 32 +++++++++++-----------
- dev/defs/sstegr | 62 +++++++++++++++++++++---------------------
- dev/defs/zcgesv |  2 +-
- dev/defs/zcposv |  2 +-
- dev/defs/zlarrv | 84 ++++++++++++++++++++++++++++-----------------------------
- dev/defs/zlatdf | 32 +++++++++++-----------
- dev/defs/zstegr | 62 +++++++++++++++++++++---------------------
- ext/clarrv.c    | 46 +++++++++++++++----------------
- ext/clatdf.c    | 18 ++++++-------
- ext/cstegr.c    | 40 +++++++++++++--------------
- ext/dlamrg.c    | 16 +++++------
- ext/dlarrf.c    | 36 ++++++++++++-------------
- ext/dlarrv.c    | 46 +++++++++++++++----------------
- ext/dlatdf.c    | 18 ++++++-------
- ext/dsgesv.c    | 16 +++++------
- ext/dsposv.c    | 16 +++++------
- ext/dstegr.c    | 40 +++++++++++++--------------
- ext/slamrg.c    | 16 +++++------
- ext/slarrf.c    | 36 ++++++++++++-------------
- ext/slarrv.c    | 46 +++++++++++++++----------------
- ext/slatdf.c    | 18 ++++++-------
- ext/sstegr.c    | 40 +++++++++++++--------------
- ext/zcgesv.c    | 16 +++++------
- ext/zcposv.c    | 16 +++++------
- ext/zlarrv.c    | 46 +++++++++++++++----------------
- ext/zlatdf.c    | 18 ++++++-------
- ext/zstegr.c    | 40 +++++++++++++--------------
- 40 files changed, 734 insertions(+), 734 deletions(-)
+ 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 3c9b374..248c11f 100644
+index 3318121..bd98ea2 100644
 --- a/dev/defs/clarrv
 +++ b/dev/defs/clarrv
-@@ -1,111 +1,111 @@
----- 
-+---
- :name: clarrv
- :md5sum: 247eb83eb2fa79b6048985eb11384e6f
- :category: :subroutine
--:arguments: 
--- n: 
-+:arguments:
-+- n:
-     :type: integer
-     :intent: input
--- vl: 
-+- vl:
-     :type: real
-     :intent: input
--- vu: 
-+- vu:
-     :type: real
-     :intent: input
--- d: 
-+- d:
-     :type: real
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- l: 
-+- l:
-     :type: real
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- pivmin: 
-+- pivmin:
-     :type: real
-     :intent: input
--- isplit: 
-+- isplit:
-     :type: integer
-     :intent: input
--    :dims: 
-+    :dims:
-     - n
--- m: 
-+- m:
-     :type: integer
-     :intent: input
--- dol: 
-+- dol:
-     :type: integer
-     :intent: input
--- dou: 
-+- dou:
-     :type: integer
-     :intent: input
--- minrgp: 
-+- minrgp:
-     :type: real
-     :intent: input
--- rtol1: 
-+- rtol1:
-     :type: real
-     :intent: input
--- rtol2: 
-+- rtol2:
-     :type: real
-     :intent: input
--- w: 
-+- w:
-     :type: real
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- werr: 
-+- werr:
-     :type: real
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- wgap: 
-+- wgap:
-     :type: real
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- iblock: 
-+- iblock:
-     :type: integer
-     :intent: input
--    :dims: 
-+    :dims:
-     - n
--- indexw: 
-+- indexw:
-     :type: integer
-     :intent: input
--    :dims: 
-+    :dims:
-     - n
--- gers: 
-+- gers:
-     :type: real
-     :intent: input
--    :dims: 
-+    :dims:
-     - 2*n
--- z: 
-+- z:
-     :type: complex
-     :intent: output
--    :dims: 
-+    :dims:
-     - ldz
-     - MAX(1,m)
--- ldz: 
-+- ldz:
-     :type: integer
-     :intent: input
--- isuppz: 
-+- isuppz:
-     :type: integer
-     :intent: output
--    :dims: 
-+    :dims:
-     - 2*MAX(1,m)
--- work: 
-+- work:
-     :type: real
-     :intent: workspace
--    :dims: 
-+    :dims:
-     - 12*n
--- iwork: 
-+- iwork:
-     :type: integer
-     :intent: workspace
--    :dims: 
-+    :dims:
-     - 7*n
--- info: 
-+- info:
-     :type: integer
-     :intent: output
--:substitutions: 
-+:substitutions:
-   ldz: n
- :fortran_help: "      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\
-@@ -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\
+@@ -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..e4132ef 100644
+index 12168b6..46efa47 100644
 --- a/dev/defs/clatdf
 +++ b/dev/defs/clatdf
-@@ -1,43 +1,43 @@
----- 
-+---
- :name: clatdf
- :md5sum: 5c926a59b991b5455a3094fe676dfba8
- :category: :subroutine
--:arguments: 
--- ijob: 
-+:arguments:
-+- ijob:
-     :type: integer
-     :intent: input
--- n: 
-+- n:
-     :type: integer
-     :intent: input
--- z: 
-+- z:
-     :type: complex
-     :intent: input
--    :dims: 
-+    :dims:
-     - ldz
-     - n
--- ldz: 
-+- ldz:
-     :type: integer
-     :intent: input
--- rhs: 
-+- rhs:
-     :type: complex
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- rdsum: 
-+- rdsum:
-     :type: real
-     :intent: input/output
--- rdscal: 
-+- rdscal:
-     :type: real
-     :intent: input/output
--- ipiv: 
-+- ipiv:
-     :type: integer
-     :intent: input
--    :dims: 
-+    :dims:
-     - n
--- jpiv: 
-+- jpiv:
-     :type: integer
-     :intent: input
--    :dims: 
-+    :dims:
-     - n
- :substitutions: {}
- 
 @@ -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\
@@ -285,128 +107,9 @@ index 12168b6..e4132ef 100644
    *\n\
    *  N       (input) INTEGER\n\
 diff --git a/dev/defs/cstegr b/dev/defs/cstegr
-index 59c7931..b987983 100644
+index 59c7931..fb6174c 100644
 --- a/dev/defs/cstegr
 +++ b/dev/defs/cstegr
-@@ -1,88 +1,88 @@
----- 
-+---
- :name: cstegr
- :md5sum: d6dab7dc05d3eff31201f84ab530e5d5
- :category: :subroutine
--:arguments: 
--- jobz: 
-+:arguments:
-+- jobz:
-     :type: char
-     :intent: input
--- range: 
-+- range:
-     :type: char
-     :intent: input
--- n: 
-+- n:
-     :type: integer
-     :intent: input
--- d: 
-+- d:
-     :type: real
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- e: 
-+- e:
-     :type: real
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- vl: 
-+- vl:
-     :type: real
-     :intent: input
--- vu: 
-+- vu:
-     :type: real
-     :intent: input
--- il: 
-+- il:
-     :type: integer
-     :intent: input
--- iu: 
-+- iu:
-     :type: integer
-     :intent: input
--- abstol: 
-+- abstol:
-     :type: real
-     :intent: input
--- m: 
-+- m:
-     :type: integer
-     :intent: output
--- w: 
-+- w:
-     :type: real
-     :intent: output
--    :dims: 
-+    :dims:
-     - n
--- z: 
-+- z:
-     :type: complex
-     :intent: output
--    :dims: 
-+    :dims:
-     - ldz
-     - MAX(1,m)
--- ldz: 
-+- ldz:
-     :type: integer
-     :intent: input
--- isuppz: 
-+- isuppz:
-     :type: integer
-     :intent: output
--    :dims: 
-+    :dims:
-     - 2*MAX(1,m)
--- work: 
-+- work:
-     :type: real
-     :intent: output
--    :dims: 
-+    :dims:
-     - MAX(1,lwork)
--- lwork: 
-+- lwork:
-     :type: integer
-     :intent: input
-     :option: true
-     :default: "lsame_(&jobz,\"V\") ? 18*n : lsame_(&jobz,\"N\") ? 12*n : 0"
--- iwork: 
-+- iwork:
-     :type: integer
-     :intent: output
--    :dims: 
-+    :dims:
-     - MAX(1,liwork)
--- liwork: 
-+- liwork:
-     :type: integer
-     :intent: input
-     :option: true
-     :default: "lsame_(&jobz,\"V\") ? 10*n : lsame_(&jobz,\"N\") ? 8*n : 0"
--- info: 
-+- info:
-     :type: integer
-     :intent: output
--:substitutions: 
-+:substitutions:
-   ldz: "lsame_(&jobz,\"V\") ? MAX(1,n) : 1"
-   m: "lsame_(&range,\"A\") ? n : lsame_(&range,\"I\") ? iu-il+1 : 0"
- :fortran_help: "      SUBROUTINE CSTEGR( JOBZ, RANGE, N, D, E, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK, IWORK, LIWORK, INFO )\n\n\
 @@ -98,7 +98,7 @@
    *  either an interval (VL,VU] or a range of indices IL:IU for the desired\n\
    *  eigenvalues.\n\
@@ -416,50 +119,23 @@ index 59c7931..b987983 100644
    *  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..8e7dba5 100644
+index f544b90..26c7b45 100644
 --- a/dev/defs/dlamrg
 +++ b/dev/defs/dlamrg
-@@ -1,29 +1,29 @@
----- 
-+---
- :name: dlamrg
- :md5sum: 482180fad6debeccfe564bd4a552d6d5
- :category: :subroutine
--:arguments: 
--- n1: 
-+:arguments:
-+- n1:
-     :type: integer
-     :intent: input
--- n2: 
-+- n2:
-     :type: integer
-     :intent: input
--- a: 
-+- a:
-     :type: doublereal
-     :intent: input
--    :dims: 
-+    :dims:
-     - n1+n2
--- dtrd1: 
-+- dtrd1:
-     :type: integer
-     :intent: input
--- dtrd2: 
-+- dtrd2:
-     :type: integer
-     :intent: input
--- index: 
-+- index:
-     :type: integer
-     :intent: output
--    :dims: 
-+    :dims:
-     - n1+n2
- :substitutions: {}
- 
 @@ -40,7 +40,7 @@
    *\n\
    *  N1     (input) INTEGER\n\
@@ -469,356 +145,62 @@ index f544b90..8e7dba5 100644
    *         sorted lists to be merged.\n\
    *\n\
    *  A      (input) DOUBLE PRECISION array, dimension (N1+N2)\n\
-diff --git a/dev/defs/dlarrf b/dev/defs/dlarrf
-index 810d076..0f69bbd 100644
---- a/dev/defs/dlarrf
-+++ b/dev/defs/dlarrf
-@@ -1,78 +1,78 @@
----- 
-+---
- :name: dlarrf
- :md5sum: df72f10d35d5993e0a6caea1cd27a6a6
- :category: :subroutine
--:arguments: 
--- n: 
-+:arguments:
-+- n:
-     :type: integer
-     :intent: input
--- d: 
-+- d:
-     :type: doublereal
-     :intent: input
--    :dims: 
-+    :dims:
-     - n
--- l: 
-+- l:
-     :type: doublereal
-     :intent: input
--    :dims: 
-+    :dims:
-     - n-1
--- ld: 
-+- ld:
-     :type: doublereal
-     :intent: input
--    :dims: 
-+    :dims:
-     - n-1
--- clstrt: 
-+- clstrt:
-     :type: integer
-     :intent: input
--- clend: 
-+- clend:
-     :type: integer
-     :intent: input
--- w: 
-+- w:
-     :type: doublereal
-     :intent: input
--    :dims: 
-+    :dims:
-     - clend-clstrt+1
--- wgap: 
-+- wgap:
-     :type: doublereal
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - clend-clstrt+1
--- werr: 
-+- werr:
-     :type: doublereal
-     :intent: input
--    :dims: 
-+    :dims:
-     - clend-clstrt+1
--- spdiam: 
-+- spdiam:
-     :type: doublereal
-     :intent: input
--- clgapl: 
-+- clgapl:
-     :type: doublereal
-     :intent: input
--- clgapr: 
-+- clgapr:
-     :type: doublereal
-     :intent: input
--- pivmin: 
-+- pivmin:
-     :type: doublereal
-     :intent: input
--- sigma: 
-+- sigma:
-     :type: doublereal
-     :intent: output
--- dplus: 
-+- dplus:
-     :type: doublereal
-     :intent: output
--    :dims: 
-+    :dims:
-     - n
--- lplus: 
-+- lplus:
-     :type: doublereal
-     :intent: output
--    :dims: 
-+    :dims:
-     - n-1
--- work: 
-+- work:
-     :type: doublereal
-     :intent: workspace
--    :dims: 
-+    :dims:
-     - 2*n
--- info: 
-+- info:
-     :type: integer
-     :intent: output
- :substitutions: {}
-@@ -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\
+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\
-   *  D       (input) DOUBLE PRECISION array, dimension (N)\n\
-   *          The N diagonal elements of the diagonal matrix D.\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 bb9462c..2d8b6de 100644
+index 009113d..d3858fd 100644
 --- a/dev/defs/dlarrv
 +++ b/dev/defs/dlarrv
-@@ -1,111 +1,111 @@
----- 
-+---
- :name: dlarrv
- :md5sum: 955488910714829a06c9ad0b196024a4
- :category: :subroutine
--:arguments: 
--- n: 
-+:arguments:
-+- n:
-     :type: integer
-     :intent: input
--- vl: 
-+- vl:
-     :type: doublereal
-     :intent: input
--- vu: 
-+- vu:
-     :type: doublereal
-     :intent: input
--- d: 
-+- d:
-     :type: doublereal
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- l: 
-+- l:
-     :type: doublereal
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- pivmin: 
-+- pivmin:
-     :type: doublereal
-     :intent: input
--- isplit: 
-+- isplit:
-     :type: integer
-     :intent: input
--    :dims: 
-+    :dims:
-     - n
--- m: 
-+- m:
-     :type: integer
-     :intent: input
--- dol: 
-+- dol:
-     :type: integer
-     :intent: input
--- dou: 
-+- dou:
-     :type: integer
-     :intent: input
--- minrgp: 
-+- minrgp:
-     :type: doublereal
-     :intent: input
--- rtol1: 
-+- rtol1:
-     :type: doublereal
-     :intent: input
--- rtol2: 
-+- rtol2:
-     :type: doublereal
-     :intent: input
--- w: 
-+- w:
-     :type: doublereal
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- werr: 
-+- werr:
-     :type: doublereal
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- wgap: 
-+- wgap:
-     :type: doublereal
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- iblock: 
-+- iblock:
-     :type: integer
-     :intent: input
--    :dims: 
-+    :dims:
-     - n
--- indexw: 
-+- indexw:
-     :type: integer
-     :intent: input
--    :dims: 
-+    :dims:
-     - n
--- gers: 
-+- gers:
-     :type: doublereal
-     :intent: input
--    :dims: 
-+    :dims:
-     - 2*n
--- z: 
-+- z:
-     :type: doublereal
-     :intent: output
--    :dims: 
-+    :dims:
-     - ldz
-     - MAX(1,m)
--- ldz: 
-+- ldz:
-     :type: integer
-     :intent: input
--- isuppz: 
-+- isuppz:
-     :type: integer
-     :intent: output
--    :dims: 
-+    :dims:
-     - 2*MAX(1,m)
--- work: 
-+- work:
-     :type: doublereal
-     :intent: workspace
--    :dims: 
-+    :dims:
-     - 12*n
--- iwork: 
-+- iwork:
-     :type: integer
-     :intent: workspace
--    :dims: 
-+    :dims:
-     - 7*n
--- info: 
-+- info:
-     :type: integer
-     :intent: output
--:substitutions: 
-+:substitutions:
-   ldz: n
- :fortran_help: "      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\
-@@ -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\
+@@ -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..7da7e0b 100644
+index ecdd975..eca3bc6 100644
 --- a/dev/defs/dlatdf
 +++ b/dev/defs/dlatdf
-@@ -1,43 +1,43 @@
----- 
-+---
- :name: dlatdf
- :md5sum: 69cfce3953f1837f451afd56bf000e43
- :category: :subroutine
--:arguments: 
--- ijob: 
-+:arguments:
-+- ijob:
-     :type: integer
-     :intent: input
--- n: 
-+- n:
-     :type: integer
-     :intent: input
--- z: 
-+- z:
-     :type: doublereal
-     :intent: input
--    :dims: 
-+    :dims:
-     - ldz
-     - n
--- ldz: 
-+- ldz:
-     :type: integer
-     :intent: input
--- rhs: 
-+- rhs:
-     :type: doublereal
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- rdsum: 
-+- rdsum:
-     :type: doublereal
-     :intent: input/output
--- rdscal: 
-+- rdscal:
-     :type: doublereal
-     :intent: input/output
--- ipiv: 
-+- ipiv:
-     :type: integer
-     :intent: input
--    :dims: 
-+    :dims:
-     - n
--- jpiv: 
-+- jpiv:
-     :type: integer
-     :intent: input
--    :dims: 
-+    :dims:
-     - n
- :substitutions: {}
- 
 @@ -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\
@@ -855,128 +237,9 @@ index e3abebe..6367c8e 100644
    *\n\
    *  INFO    (output) INTEGER\n\
 diff --git a/dev/defs/dstegr b/dev/defs/dstegr
-index 9b76a1a..eae605c 100644
+index 9b76a1a..aa228ac 100644
 --- a/dev/defs/dstegr
 +++ b/dev/defs/dstegr
-@@ -1,88 +1,88 @@
----- 
-+---
- :name: dstegr
- :md5sum: 5393f044bbbc7b15c9c7280098a07f35
- :category: :subroutine
--:arguments: 
--- jobz: 
-+:arguments:
-+- jobz:
-     :type: char
-     :intent: input
--- range: 
-+- range:
-     :type: char
-     :intent: input
--- n: 
-+- n:
-     :type: integer
-     :intent: input
--- d: 
-+- d:
-     :type: doublereal
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- e: 
-+- e:
-     :type: doublereal
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- vl: 
-+- vl:
-     :type: doublereal
-     :intent: input
--- vu: 
-+- vu:
-     :type: doublereal
-     :intent: input
--- il: 
-+- il:
-     :type: integer
-     :intent: input
--- iu: 
-+- iu:
-     :type: integer
-     :intent: input
--- abstol: 
-+- abstol:
-     :type: doublereal
-     :intent: input
--- m: 
-+- m:
-     :type: integer
-     :intent: output
--- w: 
-+- w:
-     :type: doublereal
-     :intent: output
--    :dims: 
-+    :dims:
-     - n
--- z: 
-+- z:
-     :type: doublereal
-     :intent: output
--    :dims: 
-+    :dims:
-     - ldz
-     - MAX(1,m)
--- ldz: 
-+- ldz:
-     :type: integer
-     :intent: input
--- isuppz: 
-+- isuppz:
-     :type: integer
-     :intent: output
--    :dims: 
-+    :dims:
-     - 2*MAX(1,m)
--- work: 
-+- work:
-     :type: doublereal
-     :intent: output
--    :dims: 
-+    :dims:
-     - MAX(1,lwork)
--- lwork: 
-+- lwork:
-     :type: integer
-     :intent: input
-     :option: true
-     :default: "lsame_(&jobz,\"V\") ? 18*n : lsame_(&jobz,\"N\") ? 12*n : 0"
--- iwork: 
-+- iwork:
-     :type: integer
-     :intent: output
--    :dims: 
-+    :dims:
-     - MAX(1,liwork)
--- liwork: 
-+- liwork:
-     :type: integer
-     :intent: input
-     :option: true
-     :default: "lsame_(&jobz,\"V\") ? 10*n : lsame_(&jobz,\"N\") ? 8*n : 0"
--- info: 
-+- info:
-     :type: integer
-     :intent: output
--:substitutions: 
-+:substitutions:
-   ldz: "lsame_(&jobz,\"V\") ? MAX(1,n) : 1"
-   m: "lsame_(&range,\"A\") ? n : lsame_(&range,\"I\") ? iu-il+1 : 0"
- :fortran_help: "      SUBROUTINE DSTEGR( JOBZ, RANGE, N, D, E, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK, IWORK, LIWORK, INFO )\n\n\
 @@ -98,7 +98,7 @@
    *  either an interval (VL,VU] or a range of indices IL:IU for the desired\n\
    *  eigenvalues.\n\
@@ -986,50 +249,23 @@ index 9b76a1a..eae605c 100644
    *  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..728a55e 100644
+index 126e4f9..29330e6 100644
 --- a/dev/defs/slamrg
 +++ b/dev/defs/slamrg
-@@ -1,29 +1,29 @@
----- 
-+---
- :name: slamrg
- :md5sum: 0a48b06c5453d8e1f06057cc7369f5f8
- :category: :subroutine
--:arguments: 
--- n1: 
-+:arguments:
-+- n1:
-     :type: integer
-     :intent: input
--- n2: 
-+- n2:
-     :type: integer
-     :intent: input
--- a: 
-+- a:
-     :type: real
-     :intent: input
--    :dims: 
-+    :dims:
-     - n1+n2
--- strd1: 
-+- strd1:
-     :type: integer
-     :intent: input
--- strd2: 
-+- strd2:
-     :type: integer
-     :intent: input
--- index: 
-+- index:
-     :type: integer
-     :intent: output
--    :dims: 
-+    :dims:
-     - n1+n2
- :substitutions: {}
- 
 @@ -40,7 +40,7 @@
    *\n\
    *  N1     (input) INTEGER\n\
@@ -1039,356 +275,49 @@ index 126e4f9..728a55e 100644
    *         sorted lists to be merged.\n\
    *\n\
    *  A      (input) REAL array, dimension (N1+N2)\n\
-diff --git a/dev/defs/slarrf b/dev/defs/slarrf
-index 31fbed0..08a278a 100644
---- a/dev/defs/slarrf
-+++ b/dev/defs/slarrf
-@@ -1,78 +1,78 @@
----- 
-+---
- :name: slarrf
- :md5sum: 04503ebe32bcc573b80d9d85b4382ab2
- :category: :subroutine
--:arguments: 
--- n: 
-+:arguments:
-+- n:
-     :type: integer
-     :intent: input
--- d: 
-+- d:
-     :type: real
-     :intent: input
--    :dims: 
-+    :dims:
-     - n
--- l: 
-+- l:
-     :type: real
-     :intent: input
--    :dims: 
-+    :dims:
-     - n-1
--- ld: 
-+- ld:
-     :type: real
-     :intent: input
--    :dims: 
-+    :dims:
-     - n-1
--- clstrt: 
-+- clstrt:
-     :type: integer
-     :intent: input
--- clend: 
-+- clend:
-     :type: integer
-     :intent: input
--- w: 
-+- w:
-     :type: real
-     :intent: input
--    :dims: 
-+    :dims:
-     - clend-clstrt+1
--- wgap: 
-+- wgap:
-     :type: real
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - clend-clstrt+1
--- werr: 
-+- werr:
-     :type: real
-     :intent: input
--    :dims: 
-+    :dims:
-     - clend-clstrt+1
--- spdiam: 
-+- spdiam:
-     :type: real
-     :intent: input
--- clgapl: 
-+- clgapl:
-     :type: real
-     :intent: input
--- clgapr: 
-+- clgapr:
-     :type: real
-     :intent: input
--- pivmin: 
-+- pivmin:
-     :type: real
-     :intent: input
--- sigma: 
-+- sigma:
-     :type: real
-     :intent: output
--- dplus: 
-+- dplus:
-     :type: real
-     :intent: output
--    :dims: 
-+    :dims:
-     - n
--- lplus: 
-+- lplus:
-     :type: real
-     :intent: output
--    :dims: 
-+    :dims:
-     - n-1
--- work: 
-+- work:
-     :type: real
-     :intent: workspace
--    :dims: 
-+    :dims:
-     - 2*n
--- info: 
-+- info:
-     :type: integer
-     :intent: output
- :substitutions: {}
-@@ -91,7 +91,7 @@
-   *  =========\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\
-   *  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\
+   *  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 53e21fd..a844d20 100644
+index 9b5055b..eb106da 100644
 --- a/dev/defs/slarrv
 +++ b/dev/defs/slarrv
-@@ -1,111 +1,111 @@
----- 
-+---
- :name: slarrv
- :md5sum: c11cfd693c654d5325e306c9460e5b65
- :category: :subroutine
--:arguments: 
--- n: 
-+:arguments:
-+- n:
-     :type: integer
-     :intent: input
--- vl: 
-+- vl:
-     :type: real
-     :intent: input
--- vu: 
-+- vu:
-     :type: real
-     :intent: input
--- d: 
-+- d:
-     :type: real
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- l: 
-+- l:
-     :type: real
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- pivmin: 
-+- pivmin:
-     :type: real
-     :intent: input
--- isplit: 
-+- isplit:
-     :type: integer
-     :intent: input
--    :dims: 
-+    :dims:
-     - n
--- m: 
-+- m:
-     :type: integer
-     :intent: input
--- dol: 
-+- dol:
-     :type: integer
-     :intent: input
--- dou: 
-+- dou:
-     :type: integer
-     :intent: input
--- minrgp: 
-+- minrgp:
-     :type: real
-     :intent: input
--- rtol1: 
-+- rtol1:
-     :type: real
-     :intent: input
--- rtol2: 
-+- rtol2:
-     :type: real
-     :intent: input
--- w: 
-+- w:
-     :type: real
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- werr: 
-+- werr:
-     :type: real
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- wgap: 
-+- wgap:
-     :type: real
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- iblock: 
-+- iblock:
-     :type: integer
-     :intent: input
--    :dims: 
-+    :dims:
-     - n
--- indexw: 
-+- indexw:
-     :type: integer
-     :intent: input
--    :dims: 
-+    :dims:
-     - n
--- gers: 
-+- gers:
-     :type: real
-     :intent: input
--    :dims: 
-+    :dims:
-     - 2*n
--- z: 
-+- z:
-     :type: real
-     :intent: output
--    :dims: 
-+    :dims:
-     - ldz
-     - MAX(1,m)
--- ldz: 
-+- ldz:
-     :type: integer
-     :intent: input
--- isuppz: 
-+- isuppz:
-     :type: integer
-     :intent: output
--    :dims: 
-+    :dims:
-     - 2*MAX(1,m)
--- work: 
-+- work:
-     :type: real
-     :intent: workspace
--    :dims: 
-+    :dims:
-     - 12*n
--- iwork: 
-+- iwork:
-     :type: integer
-     :intent: workspace
--    :dims: 
-+    :dims:
-     - 7*n
--- info: 
-+- info:
-     :type: integer
-     :intent: output
--:substitutions: 
-+:substitutions:
-   ldz: n
- :fortran_help: "      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\
-@@ -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\
+@@ -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..cbea1fa 100644
+index 80c6aeb..2410e9f 100644
 --- a/dev/defs/slatdf
 +++ b/dev/defs/slatdf
-@@ -1,43 +1,43 @@
----- 
-+---
- :name: slatdf
- :md5sum: f15dc290a2df350b5b3f847a55798283
- :category: :subroutine
--:arguments: 
--- ijob: 
-+:arguments:
-+- ijob:
-     :type: integer
-     :intent: input
--- n: 
-+- n:
-     :type: integer
-     :intent: input
--- z: 
-+- z:
-     :type: real
-     :intent: input
--    :dims: 
-+    :dims:
-     - ldz
-     - n
--- ldz: 
-+- ldz:
-     :type: integer
-     :intent: input
--- rhs: 
-+- rhs:
-     :type: real
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- rdsum: 
-+- rdsum:
-     :type: real
-     :intent: input/output
--- rdscal: 
-+- rdscal:
-     :type: real
-     :intent: input/output
--- ipiv: 
-+- ipiv:
-     :type: integer
-     :intent: input
--    :dims: 
-+    :dims:
-     - n
--- jpiv: 
-+- jpiv:
-     :type: integer
-     :intent: input
--    :dims: 
-+    :dims:
-     - n
- :substitutions: {}
- 
 @@ -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\
@@ -1399,128 +328,9 @@ index 80c6aeb..cbea1fa 100644
    *  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..41f9915 100644
+index 8513aea..05a63db 100644
 --- a/dev/defs/sstegr
 +++ b/dev/defs/sstegr
-@@ -1,88 +1,88 @@
----- 
-+---
- :name: sstegr
- :md5sum: 992b1604b86ed979e0de63b7c057e36b
- :category: :subroutine
--:arguments: 
--- jobz: 
-+:arguments:
-+- jobz:
-     :type: char
-     :intent: input
--- range: 
-+- range:
-     :type: char
-     :intent: input
--- n: 
-+- n:
-     :type: integer
-     :intent: input
--- d: 
-+- d:
-     :type: real
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- e: 
-+- e:
-     :type: real
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- vl: 
-+- vl:
-     :type: real
-     :intent: input
--- vu: 
-+- vu:
-     :type: real
-     :intent: input
--- il: 
-+- il:
-     :type: integer
-     :intent: input
--- iu: 
-+- iu:
-     :type: integer
-     :intent: input
--- abstol: 
-+- abstol:
-     :type: real
-     :intent: input
--- m: 
-+- m:
-     :type: integer
-     :intent: output
--- w: 
-+- w:
-     :type: real
-     :intent: output
--    :dims: 
-+    :dims:
-     - n
--- z: 
-+- z:
-     :type: real
-     :intent: output
--    :dims: 
-+    :dims:
-     - ldz
-     - MAX(1,m)
--- ldz: 
-+- ldz:
-     :type: integer
-     :intent: input
--- isuppz: 
-+- isuppz:
-     :type: integer
-     :intent: output
--    :dims: 
-+    :dims:
-     - 2*MAX(1,m)
--- work: 
-+- work:
-     :type: real
-     :intent: output
--    :dims: 
-+    :dims:
-     - MAX(1,lwork)
--- lwork: 
-+- lwork:
-     :type: integer
-     :intent: input
-     :option: true
-     :default: "lsame_(&jobz,\"V\") ? 18*n : lsame_(&jobz,\"N\") ? 12*n : 0"
--- iwork: 
-+- iwork:
-     :type: integer
-     :intent: output
--    :dims: 
-+    :dims:
-     - MAX(1,liwork)
--- liwork: 
-+- liwork:
-     :type: integer
-     :intent: input
-     :option: true
-     :default: "lsame_(&jobz,\"V\") ? 10*n : lsame_(&jobz,\"N\") ? 8*n : 0"
--- info: 
-+- info:
-     :type: integer
-     :intent: output
--:substitutions: 
-+:substitutions:
-   ldz: "lsame_(&jobz,\"V\") ? MAX(1,n) : 1"
-   m: "lsame_(&range,\"A\") ? n : lsame_(&range,\"I\") ? iu-il+1 : 0"
- :fortran_help: "      SUBROUTINE SSTEGR( JOBZ, RANGE, N, D, E, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK, IWORK, LIWORK, INFO )\n\n\
 @@ -98,7 +98,7 @@
    *  either an interval (VL,VU] or a range of indices IL:IU for the desired\n\
    *  eigenvalues.\n\
@@ -1556,235 +366,53 @@ index 874be30..cc237f6 100644
    *               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 2ad6967..a6b2d6c 100644
+index 4f629a8..100987b 100644
 --- a/dev/defs/zlarrv
 +++ b/dev/defs/zlarrv
-@@ -1,111 +1,111 @@
----- 
-+---
- :name: zlarrv
- :md5sum: ae9ce24a0dd6a243053bd6396969a553
- :category: :subroutine
--:arguments: 
--- n: 
-+:arguments:
-+- n:
-     :type: integer
-     :intent: input
--- vl: 
-+- vl:
-     :type: doublereal
-     :intent: input
--- vu: 
-+- vu:
-     :type: doublereal
-     :intent: input
--- d: 
-+- d:
-     :type: doublereal
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- l: 
-+- l:
-     :type: doublereal
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- pivmin: 
-+- pivmin:
-     :type: doublereal
-     :intent: input
--- isplit: 
-+- isplit:
-     :type: integer
-     :intent: input
--    :dims: 
-+    :dims:
-     - n
--- m: 
-+- m:
-     :type: integer
-     :intent: input
--- dol: 
-+- dol:
-     :type: integer
-     :intent: input
--- dou: 
-+- dou:
-     :type: integer
-     :intent: input
--- minrgp: 
-+- minrgp:
-     :type: doublereal
-     :intent: input
--- rtol1: 
-+- rtol1:
-     :type: doublereal
-     :intent: input
--- rtol2: 
-+- rtol2:
-     :type: doublereal
-     :intent: input
--- w: 
-+- w:
-     :type: doublereal
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- werr: 
-+- werr:
-     :type: doublereal
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- wgap: 
-+- wgap:
-     :type: doublereal
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- iblock: 
-+- iblock:
-     :type: integer
-     :intent: input
--    :dims: 
-+    :dims:
-     - n
--- indexw: 
-+- indexw:
-     :type: integer
-     :intent: input
--    :dims: 
-+    :dims:
-     - n
--- gers: 
-+- gers:
-     :type: doublereal
-     :intent: input
--    :dims: 
-+    :dims:
-     - 2*n
--- z: 
-+- z:
-     :type: doublecomplex
-     :intent: output
--    :dims: 
-+    :dims:
-     - ldz
-     - MAX(1,m)
--- ldz: 
-+- ldz:
-     :type: integer
-     :intent: input
--- isuppz: 
-+- isuppz:
-     :type: integer
-     :intent: output
--    :dims: 
-+    :dims:
-     - 2*MAX(1,m)
--- work: 
-+- work:
-     :type: doublereal
-     :intent: workspace
--    :dims: 
-+    :dims:
-     - 12*n
--- iwork: 
-+- iwork:
-     :type: integer
-     :intent: workspace
--    :dims: 
-+    :dims:
-     - 7*n
--- info: 
-+- info:
-     :type: integer
-     :intent: output
--:substitutions: 
-+:substitutions:
-   ldz: n
- :fortran_help: "      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\
-@@ -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\
+@@ -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..8cade80 100644
+index 2683ca7..5565876 100644
 --- a/dev/defs/zlatdf
 +++ b/dev/defs/zlatdf
-@@ -1,43 +1,43 @@
----- 
-+---
- :name: zlatdf
- :md5sum: a3e258a309f756a498efa03aacc75a5a
- :category: :subroutine
--:arguments: 
--- ijob: 
-+:arguments:
-+- ijob:
-     :type: integer
-     :intent: input
--- n: 
-+- n:
-     :type: integer
-     :intent: input
--- z: 
-+- z:
-     :type: doublecomplex
-     :intent: input
--    :dims: 
-+    :dims:
-     - ldz
-     - n
--- ldz: 
-+- ldz:
-     :type: integer
-     :intent: input
--- rhs: 
-+- rhs:
-     :type: doublecomplex
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- rdsum: 
-+- rdsum:
-     :type: doublereal
-     :intent: input/output
--- rdscal: 
-+- rdscal:
-     :type: doublereal
-     :intent: input/output
--- ipiv: 
-+- ipiv:
-     :type: integer
-     :intent: input
--    :dims: 
-+    :dims:
-     - n
--- jpiv: 
-+- jpiv:
-     :type: integer
-     :intent: input
--    :dims: 
-+    :dims:
-     - n
- :substitutions: {}
- 
 @@ -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\
@@ -1795,128 +423,9 @@ index 2683ca7..8cade80 100644
    *\n\
    *  N       (input) INTEGER\n\
 diff --git a/dev/defs/zstegr b/dev/defs/zstegr
-index 8cf0a7a..74c983d 100644
+index 8cf0a7a..88aa424 100644
 --- a/dev/defs/zstegr
 +++ b/dev/defs/zstegr
-@@ -1,88 +1,88 @@
----- 
-+---
- :name: zstegr
- :md5sum: 49832177055455b53b056123ac827dbc
- :category: :subroutine
--:arguments: 
--- jobz: 
-+:arguments:
-+- jobz:
-     :type: char
-     :intent: input
--- range: 
-+- range:
-     :type: char
-     :intent: input
--- n: 
-+- n:
-     :type: integer
-     :intent: input
--- d: 
-+- d:
-     :type: doublereal
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- e: 
-+- e:
-     :type: doublereal
-     :intent: input/output
--    :dims: 
-+    :dims:
-     - n
--- vl: 
-+- vl:
-     :type: doublereal
-     :intent: input
--- vu: 
-+- vu:
-     :type: doublereal
-     :intent: input
--- il: 
-+- il:
-     :type: integer
-     :intent: input
--- iu: 
-+- iu:
-     :type: integer
-     :intent: input
--- abstol: 
-+- abstol:
-     :type: doublereal
-     :intent: input
--- m: 
-+- m:
-     :type: integer
-     :intent: output
--- w: 
-+- w:
-     :type: doublereal
-     :intent: output
--    :dims: 
-+    :dims:
-     - n
--- z: 
-+- z:
-     :type: doublecomplex
-     :intent: output
--    :dims: 
-+    :dims:
-     - ldz
-     - MAX(1,m)
--- ldz: 
-+- ldz:
-     :type: integer
-     :intent: input
--- isuppz: 
-+- isuppz:
-     :type: integer
-     :intent: output
--    :dims: 
-+    :dims:
-     - 2*MAX(1,m)
--- work: 
-+- work:
-     :type: doublereal
-     :intent: output
--    :dims: 
-+    :dims:
-     - MAX(1,lwork)
--- lwork: 
-+- lwork:
-     :type: integer
-     :intent: input
-     :option: true
-     :default: "lsame_(&jobz,\"V\") ? 18*n : lsame_(&jobz,\"N\") ? 12*n : 0"
--- iwork: 
-+- iwork:
-     :type: integer
-     :intent: output
--    :dims: 
-+    :dims:
-     - MAX(1,liwork)
--- liwork: 
-+- liwork:
-     :type: integer
-     :intent: input
-     :option: true
-     :default: "lsame_(&jobz,\"V\") ? 10*n : lsame_(&jobz,\"N\") ? 8*n : 0"
--- info: 
-+- info:
-     :type: integer
-     :intent: output
--:substitutions: 
-+:substitutions:
-   ldz: "lsame_(&jobz,\"V\") ? MAX(1,n) : 1"
-   m: "lsame_(&range,\"A\") ? n : lsame_(&range,\"I\") ? iu-il+1 : 0"
- :fortran_help: "      SUBROUTINE ZSTEGR( JOBZ, RANGE, N, D, E, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK, IWORK, LIWORK, INFO )\n\n\
 @@ -98,7 +98,7 @@
    *  either an interval (VL,VU] or a range of indices IL:IU for the desired\n\
    *  eigenvalues.\n\
@@ -1926,127 +435,37 @@ index 8cf0a7a..74c983d 100644
    *  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- [...]
++      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- [...]
+       return Qnil;
+     }
+     if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
 diff --git a/ext/clarrv.c b/ext/clarrv.c
-index 91b0aae..1b2fcab 100644
+index d27db0f..502f69d 100644
 --- a/ext/clarrv.c
 +++ b/ext/clarrv.c
-@@ -6,47 +6,47 @@ extern VOID clarrv_(integer* n, real* vl, real* vu, real* d, real* l, real* pivm
- static VALUE
- rblapack_clarrv(int argc, VALUE *argv, VALUE self){
-   VALUE rblapack_vl;
--  real vl; 
-+  real vl;
-   VALUE rblapack_vu;
--  real vu; 
-+  real vu;
-   VALUE rblapack_d;
--  real *d; 
-+  real *d;
-   VALUE rblapack_l;
--  real *l; 
-+  real *l;
-   VALUE rblapack_pivmin;
--  real pivmin; 
-+  real pivmin;
-   VALUE rblapack_isplit;
--  integer *isplit; 
-+  integer *isplit;
-   VALUE rblapack_m;
--  integer m; 
-+  integer m;
-   VALUE rblapack_dol;
--  integer dol; 
-+  integer dol;
-   VALUE rblapack_dou;
--  integer dou; 
-+  integer dou;
-   VALUE rblapack_minrgp;
--  real minrgp; 
-+  real minrgp;
-   VALUE rblapack_rtol1;
--  real rtol1; 
-+  real rtol1;
-   VALUE rblapack_rtol2;
--  real rtol2; 
-+  real rtol2;
-   VALUE rblapack_w;
--  real *w; 
-+  real *w;
-   VALUE rblapack_werr;
--  real *werr; 
-+  real *werr;
-   VALUE rblapack_wgap;
--  real *wgap; 
-+  real *wgap;
-   VALUE rblapack_iblock;
--  integer *iblock; 
-+  integer *iblock;
-   VALUE rblapack_indexw;
--  integer *indexw; 
-+  integer *indexw;
-   VALUE rblapack_gers;
--  real *gers; 
-+  real *gers;
-   VALUE rblapack_z;
--  complex *z; 
-+  complex *z;
-   VALUE rblapack_isuppz;
--  integer *isuppz; 
-+  integer *isuppz;
-   VALUE rblapack_info;
--  integer info; 
-+  integer info;
-   VALUE rblapack_d_out__;
-   real *d_out__;
-   VALUE rblapack_l_out__;
-@@ -68,13 +68,13 @@ rblapack_clarrv(int argc, VALUE *argv, VALUE self){
+@@ -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 tr [...]
-+      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 tr [...]
+-      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 tr [...]
++      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 tr [...]
        return Qnil;
      }
      if (rb_hash_aref(rblapack_options, sUsage) == 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");
-       return Qnil;
--    } 
-+    }
-   } else
-     rblapack_options = Qnil;
-   if (argc != 18 && argc != 18)
 diff --git a/ext/clatdf.c b/ext/clatdf.c
-index cb44570..3930cf8 100644
+index cb44570..213852b 100644
 --- a/ext/clatdf.c
 +++ b/ext/clatdf.c
-@@ -6,19 +6,19 @@ extern VOID clatdf_(integer* ijob, integer* n, complex* z, integer* ldz, complex
- static VALUE
- rblapack_clatdf(int argc, VALUE *argv, VALUE self){
-   VALUE rblapack_ijob;
--  integer ijob; 
-+  integer ijob;
-   VALUE rblapack_z;
--  complex *z; 
-+  complex *z;
-   VALUE rblapack_rhs;
--  complex *rhs; 
-+  complex *rhs;
-   VALUE rblapack_rdsum;
--  real rdsum; 
-+  real rdsum;
-   VALUE rblapack_rdscal;
--  real rdscal; 
-+  real rdscal;
-   VALUE rblapack_ipiv;
--  integer *ipiv; 
-+  integer *ipiv;
-   VALUE rblapack_jpiv;
--  integer *jpiv; 
-+  integer *jpiv;
-   VALUE rblapack_rhs_out__;
-   complex *rhs_out__;
- 
-@@ -30,13 +30,13 @@ rblapack_clatdf(int argc, VALUE *argv, VALUE self){
+@@ -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) {
@@ -2055,78 +474,11 @@ index cb44570..3930cf8 100644
        return Qnil;
      }
      if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
-       printf("%s\n", "USAGE:\n  rhs, rdsum, rdscal = NumRu::Lapack.clatdf( ijob, z, rhs, rdsum, rdscal, ipiv, jpiv, [:usage => usage, :help => help])\n");
-       return Qnil;
--    } 
-+    }
-   } else
-     rblapack_options = Qnil;
-   if (argc != 7 && argc != 7)
 diff --git a/ext/cstegr.c b/ext/cstegr.c
-index fb7fff5..cdefc99 100644
+index fb7fff5..9c42e95 100644
 --- a/ext/cstegr.c
 +++ b/ext/cstegr.c
-@@ -6,41 +6,41 @@ extern VOID cstegr_(char* jobz, char* range, integer* n, real* d, real* e, real*
- static VALUE
- rblapack_cstegr(int argc, VALUE *argv, VALUE self){
-   VALUE rblapack_jobz;
--  char jobz; 
-+  char jobz;
-   VALUE rblapack_range;
--  char range; 
-+  char range;
-   VALUE rblapack_d;
--  real *d; 
-+  real *d;
-   VALUE rblapack_e;
--  real *e; 
-+  real *e;
-   VALUE rblapack_vl;
--  real vl; 
-+  real vl;
-   VALUE rblapack_vu;
--  real vu; 
-+  real vu;
-   VALUE rblapack_il;
--  integer il; 
-+  integer il;
-   VALUE rblapack_iu;
--  integer iu; 
-+  integer iu;
-   VALUE rblapack_abstol;
--  real abstol; 
-+  real abstol;
-   VALUE rblapack_lwork;
--  integer lwork; 
-+  integer lwork;
-   VALUE rblapack_liwork;
--  integer liwork; 
-+  integer liwork;
-   VALUE rblapack_m;
--  integer m; 
-+  integer m;
-   VALUE rblapack_w;
--  real *w; 
-+  real *w;
-   VALUE rblapack_z;
--  complex *z; 
-+  complex *z;
-   VALUE rblapack_isuppz;
--  integer *isuppz; 
-+  integer *isuppz;
-   VALUE rblapack_work;
--  real *work; 
-+  real *work;
-   VALUE rblapack_iwork;
--  integer *iwork; 
-+  integer *iwork;
-   VALUE rblapack_info;
--  integer info; 
-+  integer info;
-   VALUE rblapack_d_out__;
-   real *d_out__;
-   VALUE rblapack_e_out__;
-@@ -54,13 +54,13 @@ rblapack_cstegr(int argc, VALUE *argv, VALUE self){
+@@ -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) {
@@ -2135,42 +487,24 @@ index fb7fff5..cdefc99 100644
        return Qnil;
      }
      if (rb_hash_aref(rblapack_options, sUsage) == 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");
+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*  m [...]
++      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*  m [...]
        return Qnil;
--    } 
-+    }
-   } else
-     rblapack_options = Qnil;
-   if (argc != 9 && argc != 11)
+     }
+     if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
 diff --git a/ext/dlamrg.c b/ext/dlamrg.c
-index c96fc1f..3d778a7 100644
+index c96fc1f..27c4e36 100644
 --- a/ext/dlamrg.c
 +++ b/ext/dlamrg.c
-@@ -6,17 +6,17 @@ extern VOID dlamrg_(integer* n1, integer* n2, doublereal* a, integer* dtrd1, int
- static VALUE
- rblapack_dlamrg(int argc, VALUE *argv, VALUE self){
-   VALUE rblapack_n1;
--  integer n1; 
-+  integer n1;
-   VALUE rblapack_n2;
--  integer n2; 
-+  integer n2;
-   VALUE rblapack_a;
--  doublereal *a; 
-+  doublereal *a;
-   VALUE rblapack_dtrd1;
--  integer dtrd1; 
-+  integer dtrd1;
-   VALUE rblapack_dtrd2;
--  integer dtrd2; 
-+  integer dtrd2;
-   VALUE rblapack_index;
--  integer *index; 
-+  integer *index;
- 
- 
-   VALUE rblapack_options;
-@@ -24,13 +24,13 @@ rblapack_dlamrg(int argc, VALUE *argv, VALUE self){
+@@ -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) {
@@ -2179,208 +513,63 @@ index c96fc1f..3d778a7 100644
        return Qnil;
      }
      if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
-       printf("%s\n", "USAGE:\n  index = NumRu::Lapack.dlamrg( n1, n2, a, dtrd1, dtrd2, [:usage => usage, :help => help])\n");
-       return Qnil;
--    } 
-+    }
-   } else
-     rblapack_options = Qnil;
-   if (argc != 5 && argc != 5)
-diff --git a/ext/dlarrf.c b/ext/dlarrf.c
-index 468de82..b8adf30 100644
---- a/ext/dlarrf.c
-+++ b/ext/dlarrf.c
-@@ -6,37 +6,37 @@ extern VOID dlarrf_(integer* n, doublereal* d, doublereal* l, doublereal* ld, in
- static VALUE
- rblapack_dlarrf(int argc, VALUE *argv, VALUE self){
-   VALUE rblapack_d;
--  doublereal *d; 
-+  doublereal *d;
-   VALUE rblapack_l;
--  doublereal *l; 
-+  doublereal *l;
-   VALUE rblapack_ld;
--  doublereal *ld; 
-+  doublereal *ld;
-   VALUE rblapack_clstrt;
--  integer clstrt; 
-+  integer clstrt;
-   VALUE rblapack_clend;
--  integer clend; 
-+  integer clend;
-   VALUE rblapack_w;
--  doublereal *w; 
-+  doublereal *w;
-   VALUE rblapack_wgap;
--  doublereal *wgap; 
-+  doublereal *wgap;
-   VALUE rblapack_werr;
--  doublereal *werr; 
-+  doublereal *werr;
-   VALUE rblapack_spdiam;
--  doublereal spdiam; 
-+  doublereal spdiam;
-   VALUE rblapack_clgapl;
--  doublereal clgapl; 
-+  doublereal clgapl;
-   VALUE rblapack_clgapr;
--  doublereal clgapr; 
-+  doublereal clgapr;
-   VALUE rblapack_pivmin;
--  doublereal pivmin; 
-+  doublereal pivmin;
-   VALUE rblapack_sigma;
--  doublereal sigma; 
-+  doublereal sigma;
-   VALUE rblapack_dplus;
--  doublereal *dplus; 
-+  doublereal *dplus;
-   VALUE rblapack_lplus;
--  doublereal *lplus; 
-+  doublereal *lplus;
-   VALUE rblapack_info;
--  integer info; 
-+  integer info;
-   VALUE rblapack_wgap_out__;
-   doublereal *wgap_out__;
-   doublereal *work;
-@@ -48,13 +48,13 @@ rblapack_dlarrf(int argc, VALUE *argv, VALUE self){
+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  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( [...]
+-      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 g [...]
++      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 g [...]
        return Qnil;
      }
      if (rb_hash_aref(rblapack_options, sUsage) == 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");
-       return Qnil;
--    } 
-+    }
-   } else
-     rblapack_options = Qnil;
-   if (argc != 12 && argc != 12)
 diff --git a/ext/dlarrv.c b/ext/dlarrv.c
-index 5ae6426..005216a 100644
+index e1114cf..0e04555 100644
 --- a/ext/dlarrv.c
 +++ b/ext/dlarrv.c
-@@ -6,47 +6,47 @@ extern VOID dlarrv_(integer* n, doublereal* vl, doublereal* vu, doublereal* d, d
- static VALUE
- rblapack_dlarrv(int argc, VALUE *argv, VALUE self){
-   VALUE rblapack_vl;
--  doublereal vl; 
-+  doublereal vl;
-   VALUE rblapack_vu;
--  doublereal vu; 
-+  doublereal vu;
-   VALUE rblapack_d;
--  doublereal *d; 
-+  doublereal *d;
-   VALUE rblapack_l;
--  doublereal *l; 
-+  doublereal *l;
-   VALUE rblapack_pivmin;
--  doublereal pivmin; 
-+  doublereal pivmin;
-   VALUE rblapack_isplit;
--  integer *isplit; 
-+  integer *isplit;
-   VALUE rblapack_m;
--  integer m; 
-+  integer m;
-   VALUE rblapack_dol;
--  integer dol; 
-+  integer dol;
-   VALUE rblapack_dou;
--  integer dou; 
-+  integer dou;
-   VALUE rblapack_minrgp;
--  doublereal minrgp; 
-+  doublereal minrgp;
-   VALUE rblapack_rtol1;
--  doublereal rtol1; 
-+  doublereal rtol1;
-   VALUE rblapack_rtol2;
--  doublereal rtol2; 
-+  doublereal rtol2;
-   VALUE rblapack_w;
--  doublereal *w; 
-+  doublereal *w;
-   VALUE rblapack_werr;
--  doublereal *werr; 
-+  doublereal *werr;
-   VALUE rblapack_wgap;
--  doublereal *wgap; 
-+  doublereal *wgap;
-   VALUE rblapack_iblock;
--  integer *iblock; 
-+  integer *iblock;
-   VALUE rblapack_indexw;
--  integer *indexw; 
-+  integer *indexw;
-   VALUE rblapack_gers;
--  doublereal *gers; 
-+  doublereal *gers;
-   VALUE rblapack_z;
--  doublereal *z; 
-+  doublereal *z;
-   VALUE rblapack_isuppz;
--  integer *isuppz; 
-+  integer *isuppz;
-   VALUE rblapack_info;
--  integer info; 
-+  integer info;
-   VALUE rblapack_d_out__;
-   doublereal *d_out__;
-   VALUE rblapack_l_out__;
-@@ -68,13 +68,13 @@ rblapack_dlarrv(int argc, VALUE *argv, VALUE self){
+@@ -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 tr [...]
++      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 tr [...]
+       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  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 tr [...]
-+      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 tr [...]
+-      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. Lett [...]
++      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. Lett [...]
        return Qnil;
      }
      if (rb_hash_aref(rblapack_options, sUsage) == 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");
+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 [...]
++      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 [...]
        return Qnil;
--    } 
-+    }
-   } else
-     rblapack_options = Qnil;
-   if (argc != 18 && argc != 18)
+     }
+     if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
 diff --git a/ext/dlatdf.c b/ext/dlatdf.c
-index e7e73ed..0683d61 100644
+index e7e73ed..3abeaa5 100644
 --- a/ext/dlatdf.c
 +++ b/ext/dlatdf.c
-@@ -6,19 +6,19 @@ extern VOID dlatdf_(integer* ijob, integer* n, doublereal* z, integer* ldz, doub
- static VALUE
- rblapack_dlatdf(int argc, VALUE *argv, VALUE self){
-   VALUE rblapack_ijob;
--  integer ijob; 
-+  integer ijob;
-   VALUE rblapack_z;
--  doublereal *z; 
-+  doublereal *z;
-   VALUE rblapack_rhs;
--  doublereal *rhs; 
-+  doublereal *rhs;
-   VALUE rblapack_rdsum;
--  doublereal rdsum; 
-+  doublereal rdsum;
-   VALUE rblapack_rdscal;
--  doublereal rdscal; 
-+  doublereal rdscal;
-   VALUE rblapack_ipiv;
--  integer *ipiv; 
-+  integer *ipiv;
-   VALUE rblapack_jpiv;
--  integer *jpiv; 
-+  integer *jpiv;
-   VALUE rblapack_rhs_out__;
-   doublereal *rhs_out__;
- 
-@@ -30,13 +30,13 @@ rblapack_dlatdf(int argc, VALUE *argv, VALUE self){
+@@ -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) {
@@ -2389,42 +578,11 @@ index e7e73ed..0683d61 100644
        return Qnil;
      }
      if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
-       printf("%s\n", "USAGE:\n  rhs, rdsum, rdscal = NumRu::Lapack.dlatdf( ijob, z, rhs, rdsum, rdscal, ipiv, jpiv, [:usage => usage, :help => help])\n");
-       return Qnil;
--    } 
-+    }
-   } else
-     rblapack_options = Qnil;
-   if (argc != 7 && argc != 7)
 diff --git a/ext/dsgesv.c b/ext/dsgesv.c
-index e5876b3..9243962 100644
+index e5876b3..a94c56b 100644
 --- a/ext/dsgesv.c
 +++ b/ext/dsgesv.c
-@@ -6,17 +6,17 @@ extern VOID dsgesv_(integer* n, integer* nrhs, doublereal* a, integer* lda, inte
- static VALUE
- rblapack_dsgesv(int argc, VALUE *argv, VALUE self){
-   VALUE rblapack_a;
--  doublereal *a; 
-+  doublereal *a;
-   VALUE rblapack_b;
--  doublereal *b; 
-+  doublereal *b;
-   VALUE rblapack_ipiv;
--  integer *ipiv; 
-+  integer *ipiv;
-   VALUE rblapack_x;
--  doublereal *x; 
-+  doublereal *x;
-   VALUE rblapack_iter;
--  integer iter; 
-+  integer iter;
-   VALUE rblapack_info;
--  integer info; 
-+  integer info;
-   VALUE rblapack_a_out__;
-   doublereal *a_out__;
-   doublereal *work;
-@@ -33,13 +33,13 @@ rblapack_dsgesv(int argc, VALUE *argv, VALUE self){
+@@ -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) {
@@ -2433,42 +591,11 @@ index e5876b3..9243962 100644
        return Qnil;
      }
      if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
-       printf("%s\n", "USAGE:\n  ipiv, x, iter, info, a = NumRu::Lapack.dsgesv( a, b, [:usage => usage, :help => help])\n");
-       return Qnil;
--    } 
-+    }
-   } else
-     rblapack_options = Qnil;
-   if (argc != 2 && argc != 2)
 diff --git a/ext/dsposv.c b/ext/dsposv.c
-index 14b0baf..2dda443 100644
+index 14b0baf..17c2fe0 100644
 --- a/ext/dsposv.c
 +++ b/ext/dsposv.c
-@@ -6,17 +6,17 @@ extern VOID dsposv_(char* uplo, integer* n, integer* nrhs, doublereal* a, intege
- static VALUE
- rblapack_dsposv(int argc, VALUE *argv, VALUE self){
-   VALUE rblapack_uplo;
--  char uplo; 
-+  char uplo;
-   VALUE rblapack_a;
--  doublereal *a; 
-+  doublereal *a;
-   VALUE rblapack_b;
--  doublereal *b; 
-+  doublereal *b;
-   VALUE rblapack_x;
--  doublereal *x; 
-+  doublereal *x;
-   VALUE rblapack_iter;
--  integer iter; 
-+  integer iter;
-   VALUE rblapack_info;
--  integer info; 
-+  integer info;
-   VALUE rblapack_a_out__;
-   doublereal *a_out__;
-   doublereal *work;
-@@ -33,13 +33,13 @@ rblapack_dsposv(int argc, VALUE *argv, VALUE self){
+@@ -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) {
@@ -2477,78 +604,11 @@ index 14b0baf..2dda443 100644
        return Qnil;
      }
      if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
-       printf("%s\n", "USAGE:\n  x, iter, info, a = NumRu::Lapack.dsposv( uplo, a, b, [:usage => usage, :help => help])\n");
-       return Qnil;
--    } 
-+    }
-   } else
-     rblapack_options = Qnil;
-   if (argc != 3 && argc != 3)
 diff --git a/ext/dstegr.c b/ext/dstegr.c
-index 6aef85a..8db3824 100644
+index 6aef85a..bcbee32 100644
 --- a/ext/dstegr.c
 +++ b/ext/dstegr.c
-@@ -6,41 +6,41 @@ extern VOID dstegr_(char* jobz, char* range, integer* n, doublereal* d, doublere
- static VALUE
- rblapack_dstegr(int argc, VALUE *argv, VALUE self){
-   VALUE rblapack_jobz;
--  char jobz; 
-+  char jobz;
-   VALUE rblapack_range;
--  char range; 
-+  char range;
-   VALUE rblapack_d;
--  doublereal *d; 
-+  doublereal *d;
-   VALUE rblapack_e;
--  doublereal *e; 
-+  doublereal *e;
-   VALUE rblapack_vl;
--  doublereal vl; 
-+  doublereal vl;
-   VALUE rblapack_vu;
--  doublereal vu; 
-+  doublereal vu;
-   VALUE rblapack_il;
--  integer il; 
-+  integer il;
-   VALUE rblapack_iu;
--  integer iu; 
-+  integer iu;
-   VALUE rblapack_abstol;
--  doublereal abstol; 
-+  doublereal abstol;
-   VALUE rblapack_lwork;
--  integer lwork; 
-+  integer lwork;
-   VALUE rblapack_liwork;
--  integer liwork; 
-+  integer liwork;
-   VALUE rblapack_m;
--  integer m; 
-+  integer m;
-   VALUE rblapack_w;
--  doublereal *w; 
-+  doublereal *w;
-   VALUE rblapack_z;
--  doublereal *z; 
-+  doublereal *z;
-   VALUE rblapack_isuppz;
--  integer *isuppz; 
-+  integer *isuppz;
-   VALUE rblapack_work;
--  doublereal *work; 
-+  doublereal *work;
-   VALUE rblapack_iwork;
--  integer *iwork; 
-+  integer *iwork;
-   VALUE rblapack_info;
--  integer info; 
-+  integer info;
-   VALUE rblapack_d_out__;
-   doublereal *d_out__;
-   VALUE rblapack_e_out__;
-@@ -54,13 +54,13 @@ rblapack_dstegr(int argc, VALUE *argv, VALUE self){
+@@ -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) {
@@ -2557,42 +617,24 @@ index 6aef85a..8db3824 100644
        return Qnil;
      }
      if (rb_hash_aref(rblapack_options, sUsage) == 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");
+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*  m [...]
++      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*  m [...]
        return Qnil;
--    } 
-+    }
-   } else
-     rblapack_options = Qnil;
-   if (argc != 9 && argc != 11)
+     }
+     if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
 diff --git a/ext/slamrg.c b/ext/slamrg.c
-index 742f244..e770796 100644
+index 742f244..92290ea 100644
 --- a/ext/slamrg.c
 +++ b/ext/slamrg.c
-@@ -6,17 +6,17 @@ extern VOID slamrg_(integer* n1, integer* n2, real* a, integer* strd1, integer*
- static VALUE
- rblapack_slamrg(int argc, VALUE *argv, VALUE self){
-   VALUE rblapack_n1;
--  integer n1; 
-+  integer n1;
-   VALUE rblapack_n2;
--  integer n2; 
-+  integer n2;
-   VALUE rblapack_a;
--  real *a; 
-+  real *a;
-   VALUE rblapack_strd1;
--  integer strd1; 
-+  integer strd1;
-   VALUE rblapack_strd2;
--  integer strd2; 
-+  integer strd2;
-   VALUE rblapack_index;
--  integer *index; 
-+  integer *index;
- 
- 
-   VALUE rblapack_options;
-@@ -24,13 +24,13 @@ rblapack_slamrg(int argc, VALUE *argv, VALUE self){
+@@ -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) {
@@ -2601,208 +643,50 @@ index 742f244..e770796 100644
        return Qnil;
      }
      if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
-       printf("%s\n", "USAGE:\n  index = NumRu::Lapack.slamrg( n1, n2, a, strd1, strd2, [:usage => usage, :help => help])\n");
-       return Qnil;
--    } 
-+    }
-   } else
-     rblapack_options = Qnil;
-   if (argc != 5 && argc != 5)
-diff --git a/ext/slarrf.c b/ext/slarrf.c
-index 4948531..a47ce0d 100644
---- a/ext/slarrf.c
-+++ b/ext/slarrf.c
-@@ -6,37 +6,37 @@ extern VOID slarrf_(integer* n, real* d, real* l, real* ld, integer* clstrt, int
- static VALUE
- rblapack_slarrf(int argc, VALUE *argv, VALUE self){
-   VALUE rblapack_d;
--  real *d; 
-+  real *d;
-   VALUE rblapack_l;
--  real *l; 
-+  real *l;
-   VALUE rblapack_ld;
--  real *ld; 
-+  real *ld;
-   VALUE rblapack_clstrt;
--  integer clstrt; 
-+  integer clstrt;
-   VALUE rblapack_clend;
--  integer clend; 
-+  integer clend;
-   VALUE rblapack_w;
--  real *w; 
-+  real *w;
-   VALUE rblapack_wgap;
--  real *wgap; 
-+  real *wgap;
-   VALUE rblapack_werr;
--  real *werr; 
-+  real *werr;
-   VALUE rblapack_spdiam;
--  real spdiam; 
-+  real spdiam;
-   VALUE rblapack_clgapl;
--  real clgapl; 
-+  real clgapl;
-   VALUE rblapack_clgapr;
--  real clgapr; 
-+  real clgapr;
-   VALUE rblapack_pivmin;
--  real pivmin; 
-+  real pivmin;
-   VALUE rblapack_sigma;
--  real sigma; 
-+  real sigma;
-   VALUE rblapack_dplus;
--  real *dplus; 
-+  real *dplus;
-   VALUE rblapack_lplus;
--  real *lplus; 
-+  real *lplus;
-   VALUE rblapack_info;
--  integer info; 
-+  integer info;
-   VALUE rblapack_wgap_out__;
-   real *wgap_out__;
-   real *work;
-@@ -48,13 +48,13 @@ rblapack_slarrf(int argc, VALUE *argv, VALUE self){
+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  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( [...]
+-      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 g [...]
++      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 g [...]
        return Qnil;
      }
      if (rb_hash_aref(rblapack_options, sUsage) == 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");
-       return Qnil;
--    } 
-+    }
-   } else
-     rblapack_options = Qnil;
-   if (argc != 12 && argc != 12)
 diff --git a/ext/slarrv.c b/ext/slarrv.c
-index cf15390..52cee16 100644
+index f6d627b..3851965 100644
 --- a/ext/slarrv.c
 +++ b/ext/slarrv.c
-@@ -6,47 +6,47 @@ extern VOID slarrv_(integer* n, real* vl, real* vu, real* d, real* l, real* pivm
- static VALUE
- rblapack_slarrv(int argc, VALUE *argv, VALUE self){
-   VALUE rblapack_vl;
--  real vl; 
-+  real vl;
-   VALUE rblapack_vu;
--  real vu; 
-+  real vu;
-   VALUE rblapack_d;
--  real *d; 
-+  real *d;
-   VALUE rblapack_l;
--  real *l; 
-+  real *l;
-   VALUE rblapack_pivmin;
--  real pivmin; 
-+  real pivmin;
-   VALUE rblapack_isplit;
--  integer *isplit; 
-+  integer *isplit;
-   VALUE rblapack_m;
--  integer m; 
-+  integer m;
-   VALUE rblapack_dol;
--  integer dol; 
-+  integer dol;
-   VALUE rblapack_dou;
--  integer dou; 
-+  integer dou;
-   VALUE rblapack_minrgp;
--  real minrgp; 
-+  real minrgp;
-   VALUE rblapack_rtol1;
--  real rtol1; 
-+  real rtol1;
-   VALUE rblapack_rtol2;
--  real rtol2; 
-+  real rtol2;
-   VALUE rblapack_w;
--  real *w; 
-+  real *w;
-   VALUE rblapack_werr;
--  real *werr; 
-+  real *werr;
-   VALUE rblapack_wgap;
--  real *wgap; 
-+  real *wgap;
-   VALUE rblapack_iblock;
--  integer *iblock; 
-+  integer *iblock;
-   VALUE rblapack_indexw;
--  integer *indexw; 
-+  integer *indexw;
-   VALUE rblapack_gers;
--  real *gers; 
-+  real *gers;
-   VALUE rblapack_z;
--  real *z; 
-+  real *z;
-   VALUE rblapack_isuppz;
--  integer *isuppz; 
-+  integer *isuppz;
-   VALUE rblapack_info;
--  integer info; 
-+  integer info;
-   VALUE rblapack_d_out__;
-   real *d_out__;
-   VALUE rblapack_l_out__;
-@@ -68,13 +68,13 @@ rblapack_slarrv(int argc, VALUE *argv, VALUE self){
+@@ -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 tr [...]
-+      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 tr [...]
+-      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 tr [...]
++      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 tr [...]
        return Qnil;
      }
      if (rb_hash_aref(rblapack_options, sUsage) == 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");
+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. Lett [...]
++      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. Lett [...]
        return Qnil;
--    } 
-+    }
-   } else
-     rblapack_options = Qnil;
-   if (argc != 18 && argc != 18)
+     }
+     if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
 diff --git a/ext/slatdf.c b/ext/slatdf.c
-index bf5e87e..6942b46 100644
+index bf5e87e..3188496 100644
 --- a/ext/slatdf.c
 +++ b/ext/slatdf.c
-@@ -6,19 +6,19 @@ extern VOID slatdf_(integer* ijob, integer* n, real* z, integer* ldz, real* rhs,
- static VALUE
- rblapack_slatdf(int argc, VALUE *argv, VALUE self){
-   VALUE rblapack_ijob;
--  integer ijob; 
-+  integer ijob;
-   VALUE rblapack_z;
--  real *z; 
-+  real *z;
-   VALUE rblapack_rhs;
--  real *rhs; 
-+  real *rhs;
-   VALUE rblapack_rdsum;
--  real rdsum; 
-+  real rdsum;
-   VALUE rblapack_rdscal;
--  real rdscal; 
-+  real rdscal;
-   VALUE rblapack_ipiv;
--  integer *ipiv; 
-+  integer *ipiv;
-   VALUE rblapack_jpiv;
--  integer *jpiv; 
-+  integer *jpiv;
-   VALUE rblapack_rhs_out__;
-   real *rhs_out__;
- 
-@@ -30,13 +30,13 @@ rblapack_slatdf(int argc, VALUE *argv, VALUE self){
+@@ -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) {
@@ -2811,78 +695,11 @@ index bf5e87e..6942b46 100644
        return Qnil;
      }
      if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
-       printf("%s\n", "USAGE:\n  rhs, rdsum, rdscal = NumRu::Lapack.slatdf( ijob, z, rhs, rdsum, rdscal, ipiv, jpiv, [:usage => usage, :help => help])\n");
-       return Qnil;
--    } 
-+    }
-   } else
-     rblapack_options = Qnil;
-   if (argc != 7 && argc != 7)
 diff --git a/ext/sstegr.c b/ext/sstegr.c
-index 583af96..34ba7ff 100644
+index 583af96..a7cdef1 100644
 --- a/ext/sstegr.c
 +++ b/ext/sstegr.c
-@@ -6,41 +6,41 @@ extern VOID sstegr_(char* jobz, char* range, integer* n, real* d, real* e, real*
- static VALUE
- rblapack_sstegr(int argc, VALUE *argv, VALUE self){
-   VALUE rblapack_jobz;
--  char jobz; 
-+  char jobz;
-   VALUE rblapack_range;
--  char range; 
-+  char range;
-   VALUE rblapack_d;
--  real *d; 
-+  real *d;
-   VALUE rblapack_e;
--  real *e; 
-+  real *e;
-   VALUE rblapack_vl;
--  real vl; 
-+  real vl;
-   VALUE rblapack_vu;
--  real vu; 
-+  real vu;
-   VALUE rblapack_il;
--  integer il; 
-+  integer il;
-   VALUE rblapack_iu;
--  integer iu; 
-+  integer iu;
-   VALUE rblapack_abstol;
--  real abstol; 
-+  real abstol;
-   VALUE rblapack_lwork;
--  integer lwork; 
-+  integer lwork;
-   VALUE rblapack_liwork;
--  integer liwork; 
-+  integer liwork;
-   VALUE rblapack_m;
--  integer m; 
-+  integer m;
-   VALUE rblapack_w;
--  real *w; 
-+  real *w;
-   VALUE rblapack_z;
--  real *z; 
-+  real *z;
-   VALUE rblapack_isuppz;
--  integer *isuppz; 
-+  integer *isuppz;
-   VALUE rblapack_work;
--  real *work; 
-+  real *work;
-   VALUE rblapack_iwork;
--  integer *iwork; 
-+  integer *iwork;
-   VALUE rblapack_info;
--  integer info; 
-+  integer info;
-   VALUE rblapack_d_out__;
-   real *d_out__;
-   VALUE rblapack_e_out__;
-@@ -54,13 +54,13 @@ rblapack_sstegr(int argc, VALUE *argv, VALUE self){
+@@ -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) {
@@ -2891,42 +708,11 @@ index 583af96..34ba7ff 100644
        return Qnil;
      }
      if (rb_hash_aref(rblapack_options, sUsage) == 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");
-       return Qnil;
--    } 
-+    }
-   } else
-     rblapack_options = Qnil;
-   if (argc != 9 && argc != 11)
 diff --git a/ext/zcgesv.c b/ext/zcgesv.c
-index 8f5fb14..53842b3 100644
+index 8f5fb14..a15b56f 100644
 --- a/ext/zcgesv.c
 +++ b/ext/zcgesv.c
-@@ -6,17 +6,17 @@ extern VOID zcgesv_(integer* n, integer* nrhs, doublecomplex* a, integer* lda, i
- static VALUE
- rblapack_zcgesv(int argc, VALUE *argv, VALUE self){
-   VALUE rblapack_a;
--  doublecomplex *a; 
-+  doublecomplex *a;
-   VALUE rblapack_b;
--  doublecomplex *b; 
-+  doublecomplex *b;
-   VALUE rblapack_ipiv;
--  integer *ipiv; 
-+  integer *ipiv;
-   VALUE rblapack_x;
--  doublecomplex *x; 
-+  doublecomplex *x;
-   VALUE rblapack_iter;
--  integer iter; 
-+  integer iter;
-   VALUE rblapack_info;
--  integer info; 
-+  integer info;
-   VALUE rblapack_a_out__;
-   doublecomplex *a_out__;
-   doublecomplex *work;
-@@ -34,13 +34,13 @@ rblapack_zcgesv(int argc, VALUE *argv, VALUE self){
+@@ -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) {
@@ -2935,42 +721,11 @@ index 8f5fb14..53842b3 100644
        return Qnil;
      }
      if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
-       printf("%s\n", "USAGE:\n  ipiv, x, iter, info, a = NumRu::Lapack.zcgesv( a, b, [:usage => usage, :help => help])\n");
-       return Qnil;
--    } 
-+    }
-   } else
-     rblapack_options = Qnil;
-   if (argc != 2 && argc != 2)
 diff --git a/ext/zcposv.c b/ext/zcposv.c
-index 17edb2f..4bb607e 100644
+index 17edb2f..ab2a492 100644
 --- a/ext/zcposv.c
 +++ b/ext/zcposv.c
-@@ -6,17 +6,17 @@ extern VOID zcposv_(char* uplo, integer* n, integer* nrhs, doublecomplex* a, int
- static VALUE
- rblapack_zcposv(int argc, VALUE *argv, VALUE self){
-   VALUE rblapack_uplo;
--  char uplo; 
-+  char uplo;
-   VALUE rblapack_a;
--  doublecomplex *a; 
-+  doublecomplex *a;
-   VALUE rblapack_b;
--  doublecomplex *b; 
-+  doublecomplex *b;
-   VALUE rblapack_x;
--  doublecomplex *x; 
-+  doublecomplex *x;
-   VALUE rblapack_iter;
--  integer iter; 
-+  integer iter;
-   VALUE rblapack_info;
--  integer info; 
-+  integer info;
-   VALUE rblapack_a_out__;
-   doublecomplex *a_out__;
-   doublecomplex *work;
-@@ -34,13 +34,13 @@ rblapack_zcposv(int argc, VALUE *argv, VALUE self){
+@@ -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) {
@@ -2979,134 +734,50 @@ index 17edb2f..4bb607e 100644
        return Qnil;
      }
      if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
-       printf("%s\n", "USAGE:\n  x, iter, info, a = NumRu::Lapack.zcposv( uplo, a, b, [:usage => usage, :help => help])\n");
+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- [...]
++      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- [...]
        return Qnil;
--    } 
-+    }
-   } else
-     rblapack_options = Qnil;
-   if (argc != 3 && argc != 3)
+     }
+     if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
 diff --git a/ext/zlarrv.c b/ext/zlarrv.c
-index fb25b0c..8aa536b 100644
+index 26ee791..6567365 100644
 --- a/ext/zlarrv.c
 +++ b/ext/zlarrv.c
-@@ -6,47 +6,47 @@ extern VOID zlarrv_(integer* n, doublereal* vl, doublereal* vu, doublereal* d, d
- static VALUE
- rblapack_zlarrv(int argc, VALUE *argv, VALUE self){
-   VALUE rblapack_vl;
--  doublereal vl; 
-+  doublereal vl;
-   VALUE rblapack_vu;
--  doublereal vu; 
-+  doublereal vu;
-   VALUE rblapack_d;
--  doublereal *d; 
-+  doublereal *d;
-   VALUE rblapack_l;
--  doublereal *l; 
-+  doublereal *l;
-   VALUE rblapack_pivmin;
--  doublereal pivmin; 
-+  doublereal pivmin;
-   VALUE rblapack_isplit;
--  integer *isplit; 
-+  integer *isplit;
-   VALUE rblapack_m;
--  integer m; 
-+  integer m;
-   VALUE rblapack_dol;
--  integer dol; 
-+  integer dol;
-   VALUE rblapack_dou;
--  integer dou; 
-+  integer dou;
-   VALUE rblapack_minrgp;
--  doublereal minrgp; 
-+  doublereal minrgp;
-   VALUE rblapack_rtol1;
--  doublereal rtol1; 
-+  doublereal rtol1;
-   VALUE rblapack_rtol2;
--  doublereal rtol2; 
-+  doublereal rtol2;
-   VALUE rblapack_w;
--  doublereal *w; 
-+  doublereal *w;
-   VALUE rblapack_werr;
--  doublereal *werr; 
-+  doublereal *werr;
-   VALUE rblapack_wgap;
--  doublereal *wgap; 
-+  doublereal *wgap;
-   VALUE rblapack_iblock;
--  integer *iblock; 
-+  integer *iblock;
-   VALUE rblapack_indexw;
--  integer *indexw; 
-+  integer *indexw;
-   VALUE rblapack_gers;
--  doublereal *gers; 
-+  doublereal *gers;
-   VALUE rblapack_z;
--  doublecomplex *z; 
-+  doublecomplex *z;
-   VALUE rblapack_isuppz;
--  integer *isuppz; 
-+  integer *isuppz;
-   VALUE rblapack_info;
--  integer info; 
-+  integer info;
-   VALUE rblapack_d_out__;
-   doublereal *d_out__;
-   VALUE rblapack_l_out__;
-@@ -68,13 +68,13 @@ rblapack_zlarrv(int argc, VALUE *argv, VALUE self){
+@@ -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 tr [...]
-+      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 tr [...]
+-      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 tr [...]
++      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 tr [...]
        return Qnil;
      }
      if (rb_hash_aref(rblapack_options, sUsage) == 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");
+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  [...]
++      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  [...]
        return Qnil;
--    } 
-+    }
-   } else
-     rblapack_options = Qnil;
-   if (argc != 18 && argc != 18)
+     }
+     if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
 diff --git a/ext/zlatdf.c b/ext/zlatdf.c
-index 6b00003..272e9ad 100644
+index 6b00003..b432db6 100644
 --- a/ext/zlatdf.c
 +++ b/ext/zlatdf.c
-@@ -6,19 +6,19 @@ extern VOID zlatdf_(integer* ijob, integer* n, doublecomplex* z, integer* ldz, d
- static VALUE
- rblapack_zlatdf(int argc, VALUE *argv, VALUE self){
-   VALUE rblapack_ijob;
--  integer ijob; 
-+  integer ijob;
-   VALUE rblapack_z;
--  doublecomplex *z; 
-+  doublecomplex *z;
-   VALUE rblapack_rhs;
--  doublecomplex *rhs; 
-+  doublecomplex *rhs;
-   VALUE rblapack_rdsum;
--  doublereal rdsum; 
-+  doublereal rdsum;
-   VALUE rblapack_rdscal;
--  doublereal rdscal; 
-+  doublereal rdscal;
-   VALUE rblapack_ipiv;
--  integer *ipiv; 
-+  integer *ipiv;
-   VALUE rblapack_jpiv;
--  integer *jpiv; 
-+  integer *jpiv;
-   VALUE rblapack_rhs_out__;
-   doublecomplex *rhs_out__;
- 
-@@ -30,13 +30,13 @@ rblapack_zlatdf(int argc, VALUE *argv, VALUE self){
+@@ -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) {
@@ -3115,78 +786,11 @@ index 6b00003..272e9ad 100644
        return Qnil;
      }
      if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
-       printf("%s\n", "USAGE:\n  rhs, rdsum, rdscal = NumRu::Lapack.zlatdf( ijob, z, rhs, rdsum, rdscal, ipiv, jpiv, [:usage => usage, :help => help])\n");
-       return Qnil;
--    } 
-+    }
-   } else
-     rblapack_options = Qnil;
-   if (argc != 7 && argc != 7)
 diff --git a/ext/zstegr.c b/ext/zstegr.c
-index b553b1b..00e4d4e 100644
+index b553b1b..3e98bf3 100644
 --- a/ext/zstegr.c
 +++ b/ext/zstegr.c
-@@ -6,41 +6,41 @@ extern VOID zstegr_(char* jobz, char* range, integer* n, doublereal* d, doublere
- static VALUE
- rblapack_zstegr(int argc, VALUE *argv, VALUE self){
-   VALUE rblapack_jobz;
--  char jobz; 
-+  char jobz;
-   VALUE rblapack_range;
--  char range; 
-+  char range;
-   VALUE rblapack_d;
--  doublereal *d; 
-+  doublereal *d;
-   VALUE rblapack_e;
--  doublereal *e; 
-+  doublereal *e;
-   VALUE rblapack_vl;
--  doublereal vl; 
-+  doublereal vl;
-   VALUE rblapack_vu;
--  doublereal vu; 
-+  doublereal vu;
-   VALUE rblapack_il;
--  integer il; 
-+  integer il;
-   VALUE rblapack_iu;
--  integer iu; 
-+  integer iu;
-   VALUE rblapack_abstol;
--  doublereal abstol; 
-+  doublereal abstol;
-   VALUE rblapack_lwork;
--  integer lwork; 
-+  integer lwork;
-   VALUE rblapack_liwork;
--  integer liwork; 
-+  integer liwork;
-   VALUE rblapack_m;
--  integer m; 
-+  integer m;
-   VALUE rblapack_w;
--  doublereal *w; 
-+  doublereal *w;
-   VALUE rblapack_z;
--  doublecomplex *z; 
-+  doublecomplex *z;
-   VALUE rblapack_isuppz;
--  integer *isuppz; 
-+  integer *isuppz;
-   VALUE rblapack_work;
--  doublereal *work; 
-+  doublereal *work;
-   VALUE rblapack_iwork;
--  integer *iwork; 
-+  integer *iwork;
-   VALUE rblapack_info;
--  integer info; 
-+  integer info;
-   VALUE rblapack_d_out__;
-   doublereal *d_out__;
-   VALUE rblapack_e_out__;
-@@ -54,13 +54,13 @@ rblapack_zstegr(int argc, VALUE *argv, VALUE self){
+@@ -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) {
@@ -3195,10 +799,3 @@ index b553b1b..00e4d4e 100644
        return Qnil;
      }
      if (rb_hash_aref(rblapack_options, sUsage) == 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");
-       return Qnil;
--    } 
-+    }
-   } else
-     rblapack_options = Qnil;
-   if (argc != 9 && argc != 11)
diff --git a/debian/patches/series b/debian/patches/series
index 1d4f3d4..571bb60 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1,2 @@
 0001-Drop-RubyGems-Depends.patch
-0002-Fix-typo.patch
+0002_Fix-Typo.patch

-- 
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