The OpenD Programming Language

1 /++
2 LAPACK bindings for D.
3 
4 Authors:  William V. Baxter III, Lars Tandle Kyllingstad, Ilya Yaroshenko
5 Copyright:  Copyright (c) 2009, Lars T. Kyllingstad; Copyright © 2017, Symmetry Investments & Kaleidic Associates
6 +/
7 module lapack.lapack;
8 
9 version(CBLAS_STD_COMPLEX)
10 {
11 	import std.complex : Complex;
12 }
13 else
14 {
15 	import mir.complex : Complex;
16 }
17 
18 alias _cfloat = Complex!float;
19 alias _cdouble = Complex!double;
20 
21 version(LAPACKNATIVEINT)
22 {
23     ///
24     alias lapackint = ptrdiff_t;
25 }
26 else
27 {
28     ///
29     alias lapackint = int;
30 }
31 
32 /*
33     Copyright (C) 2006--2008 William V. Baxter III, OLM Digital, Inc.
34 
35     This software is provided 'as-is', without any express or implied
36     warranty.  In no event will the authors be held liable for any
37     damages arising from the use of this software.
38 
39     Permission is granted to anyone to use this software for any
40     purpose, including commercial applications, and to alter it and
41     redistribute it freely, subject to the following restrictions:
42 
43     1. The origin of this software must not be misrepresented; you must
44          not claim that you wrote the original software. If you use this
45          software in a product, an acknowledgment in the product
46          documentation would be appreciated but is not required.
47 
48     2. Altered source versions must be plainly marked as such, and must
49          not be misrepresented as being the original software.
50     3. This notice may not be removed or altered from any source distribution.
51 
52     William Baxter wbaxter@gmail.com
53 */
54 
55 
56 // Prototypes for the raw Fortran interface to BLAS
57 pure nothrow @nogc extern(C):
58 
59 alias FCB_CGEES_SELECT  = lapackint function(_cfloat *);
60 alias FCB_CGEESX_SELECT = lapackint function(_cfloat *);
61 alias FCB_CGGES_SELCTG  = lapackint function(_cfloat *, _cfloat *);
62 alias FCB_CGGESX_SELCTG = lapackint function(_cfloat *, _cfloat *);
63 alias FCB_DGEES_SELECT  = lapackint function(double *, double *);
64 alias FCB_DGEESX_SELECT = lapackint function(double *, double *);
65 alias FCB_DGGES_DELCTG  = lapackint function(double *, double *, double *);
66 alias FCB_DGGESX_DELCTG = lapackint function(double *, double *, double *);
67 alias FCB_SGEES_SELECT  = lapackint function(float *, float *);
68 alias FCB_SGEESX_SELECT = lapackint function(float *, float *);
69 alias FCB_SGGES_SELCTG  = lapackint function(float *, float *, float *);
70 alias FCB_SGGESX_SELCTG = lapackint function(float *, float *, float *);
71 alias FCB_ZGEES_SELECT  = lapackint function(_cdouble *);
72 alias FCB_ZGEESX_SELECT = lapackint function(_cdouble *);
73 alias FCB_ZGGES_DELCTG  = lapackint function(_cdouble *, _cdouble *);
74 alias FCB_ZGGESX_DELCTG = lapackint function(_cdouble *, _cdouble *);
75 
76 version (FORTRAN_FLOAT_FUNCTIONS_RETURN_DOUBLE)
77 {
78     alias lapack_float_ret_t = double;
79 }
80 else
81 {
82     alias lapack_float_ret_t = float;
83 }
84 
85 /* LAPACK routines */
86 
87 //--------------------------------------------------------
88 // ---- SIMPLE and DIVIDE AND CONQUER DRIVER routines ----
89 //---------------------------------------------------------
90 
91 /// Solves a general system of linear equations AX=B.
92 void sgesv_(ref lapackint n, ref lapackint nrhs, float *a, ref lapackint lda, lapackint *ipiv, float *b, ref lapackint ldb, ref lapackint info);
93 void dgesv_(ref lapackint n, ref lapackint nrhs, double *a, ref lapackint lda, lapackint *ipiv, double *b, ref lapackint ldb, ref lapackint info);
94 void cgesv_(ref lapackint n, ref lapackint nrhs, _cfloat *a, ref lapackint lda, lapackint *ipiv, _cfloat *b, ref lapackint ldb, ref lapackint info);
95 void zgesv_(ref lapackint n, ref lapackint nrhs, _cdouble *a, ref lapackint lda, lapackint *ipiv, _cdouble *b, ref lapackint ldb, ref lapackint info);
96 
97 /// Solves a general banded system of linear equations AX=B.
98 void sgbsv_(ref lapackint n, ref lapackint kl, ref lapackint ku, ref lapackint nrhs, float *ab, ref lapackint ldab, lapackint *ipiv, float *b, ref lapackint ldb, ref lapackint info);
99 void dgbsv_(ref lapackint n, ref lapackint kl, ref lapackint ku, ref lapackint nrhs, double *ab, ref lapackint ldab, lapackint *ipiv, double *b, ref lapackint ldb, ref lapackint info);
100 void cgbsv_(ref lapackint n, ref lapackint kl, ref lapackint ku, ref lapackint nrhs, _cfloat *ab, ref lapackint ldab, lapackint *ipiv, _cfloat *b, ref lapackint ldb, ref lapackint info);
101 void zgbsv_(ref lapackint n, ref lapackint kl, ref lapackint ku, ref lapackint nrhs, _cdouble *ab, ref lapackint ldab, lapackint *ipiv, _cdouble *b, ref lapackint ldb, ref lapackint info);
102 
103 /// Solves a general tridiagonal system of linear equations AX=B.
104 void sgtsv_(ref lapackint n, ref lapackint nrhs, float *dl, float *d, float *du, float *b, ref lapackint ldb, ref lapackint info);
105 void dgtsv_(ref lapackint n, ref lapackint nrhs, double *dl, double *d, double *du, double *b, ref lapackint ldb, ref lapackint info);
106 void cgtsv_(ref lapackint n, ref lapackint nrhs, _cfloat *dl, _cfloat *d, _cfloat *du, _cfloat *b, ref lapackint ldb, ref lapackint info);
107 void zgtsv_(ref lapackint n, ref lapackint nrhs, _cdouble *dl, _cdouble *d, _cdouble *du, _cdouble *b, ref lapackint ldb, ref lapackint info);
108 
109 /// Solves a symmetric positive definite system of linear
110 /// equations AX=B.
111 void sposv_(ref char uplo, ref lapackint n, ref lapackint nrhs, float *a, ref lapackint lda, float *b, ref lapackint ldb, ref lapackint info);
112 void dposv_(ref char uplo, ref lapackint n, ref lapackint nrhs, double *a, ref lapackint lda, double *b, ref lapackint ldb, ref lapackint info);
113 void cposv_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, ref lapackint info);
114 void zposv_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, ref lapackint info);
115 
116 /// Solves a symmetric positive definite system of linear
117 /// equations AX=B, where A is held in packed storage.
118 void sppsv_(ref char uplo, ref lapackint n, ref lapackint nrhs, float *ap, float *b, ref lapackint ldb, ref lapackint info);
119 void dppsv_(ref char uplo, ref lapackint n, ref lapackint nrhs, double *ap, double *b, ref lapackint ldb, ref lapackint info);
120 void cppsv_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cfloat *ap, _cfloat *b, ref lapackint ldb, ref lapackint info);
121 void zppsv_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cdouble *ap, _cdouble *b, ref lapackint ldb, ref lapackint info);
122 
123 /// Solves a symmetric positive definite banded system
124 /// of linear equations AX=B.
125 void spbsv_(ref char uplo, ref lapackint n, lapackint *kd, ref lapackint nrhs, float *ab, ref lapackint ldab, float *b, ref lapackint ldb, ref lapackint info);
126 void dpbsv_(ref char uplo, ref lapackint n, lapackint *kd, ref lapackint nrhs, double *ab, ref lapackint ldab, double *b, ref lapackint ldb, ref lapackint info);
127 void cpbsv_(ref char uplo, ref lapackint n, lapackint *kd, ref lapackint nrhs, _cfloat *ab, ref lapackint ldab, _cfloat *b, ref lapackint ldb, ref lapackint info);
128 void zpbsv_(ref char uplo, ref lapackint n, lapackint *kd, ref lapackint nrhs, _cdouble *ab, ref lapackint ldab, _cdouble *b, ref lapackint ldb, ref lapackint info);
129 
130 /// Solves a symmetric positive definite tridiagonal system
131 /// of linear equations AX=B.
132 void sptsv_(ref lapackint n, ref lapackint nrhs, float *d, float *e, float *b, ref lapackint ldb, ref lapackint info);
133 void dptsv_(ref lapackint n, ref lapackint nrhs, double *d, double *e, double *b, ref lapackint ldb, ref lapackint info);
134 void cptsv_(ref lapackint n, ref lapackint nrhs, float *d, _cfloat *e, _cfloat *b, ref lapackint ldb, ref lapackint info);
135 void zptsv_(ref lapackint n, ref lapackint nrhs, double *d, _cdouble *e, _cdouble *b, ref lapackint ldb, ref lapackint info);
136 
137 
138 /// Solves a real symmetric indefinite system of linear equations AX=B.
139 void ssysv_(ref char uplo, ref lapackint n, ref lapackint nrhs, float *a, ref lapackint lda, lapackint *ipiv, float *b, ref lapackint ldb, float *work, ref lapackint lwork, ref lapackint info);
140 void dsysv_(ref char uplo, ref lapackint n, ref lapackint nrhs, double *a, ref lapackint lda, lapackint *ipiv, double *b, ref lapackint ldb, double *work, ref lapackint lwork, ref lapackint info);
141 void csysv_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cfloat *a, ref lapackint lda, lapackint *ipiv, _cfloat *b, ref lapackint ldb, _cfloat *work, ref lapackint lwork, ref lapackint info);
142 void zsysv_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cdouble *a, ref lapackint lda, lapackint *ipiv, _cdouble *b, ref lapackint ldb, _cdouble *work, ref lapackint lwork, ref lapackint info);
143 
144 /// Solves a real symmetric indefinite system of linear equations AX=B. Rook method (LDL decomposition)
145 void ssysv_rk_(ref char uplo, ref lapackint n, ref lapackint nrhs, float *a, ref lapackint lda, float *e, lapackint *ipiv, float *b, ref lapackint ldb, float *work, ref lapackint lwork, ref lapackint info);
146 void dsysv_rk_(ref char uplo, ref lapackint n, ref lapackint nrhs, double *a, ref lapackint lda, double *e, lapackint *ipiv, double *b, ref lapackint ldb, double *work, ref lapackint lwork, ref lapackint info);
147 void csysv_rk_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cfloat *a, ref lapackint lda, _cfloat *e, lapackint *ipiv, _cfloat *b, ref lapackint ldb, _cfloat *work, ref lapackint lwork, ref lapackint info);
148 void zsysv_rk_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cdouble *a, ref lapackint lda, _cdouble *e, lapackint *ipiv, _cdouble *b, ref lapackint ldb, _cdouble *work, ref lapackint lwork, ref lapackint info);
149 
150 /// Solves a real symmetric indefinite system of linear equations AX=B. Rook method (LDL decomposition)
151 void ssysv_rook_(ref char uplo, ref lapackint n, ref lapackint nrhs, float *a, ref lapackint lda, lapackint *ipiv, float *b, ref lapackint ldb, float *work, ref lapackint lwork, ref lapackint info);
152 void dsysv_rook_(ref char uplo, ref lapackint n, ref lapackint nrhs, double *a, ref lapackint lda, lapackint *ipiv, double *b, ref lapackint ldb, double *work, ref lapackint lwork, ref lapackint info);
153 void csysv_rook_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cfloat *a, ref lapackint lda, lapackint *ipiv, _cfloat *b, ref lapackint ldb, _cfloat *work, ref lapackint lwork, ref lapackint info);
154 void zsysv_rook_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cdouble *a, ref lapackint lda, lapackint *ipiv, _cdouble *b, ref lapackint ldb, _cdouble *work, ref lapackint lwork, ref lapackint info);
155 
156 /// Solves a complex Hermitian indefinite system of linear equations AX=B.
157 void chesv_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cfloat *a, ref lapackint lda, lapackint *ipiv, _cfloat *b, ref lapackint ldb, _cfloat *work, ref lapackint lwork, ref lapackint info);
158 void zhesv_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cdouble *a, ref lapackint lda, lapackint *ipiv, _cdouble *b, ref lapackint ldb, _cdouble *work, ref lapackint lwork, ref lapackint info);
159 
160 /// Solves a real symmetric indefinite system of linear equations AX=B,
161 /// where A is held in packed storage.
162 void sspsv_(ref char uplo, ref lapackint n, ref lapackint nrhs, float *ap, lapackint *ipiv, float *b, ref lapackint ldb, ref lapackint info);
163 void dspsv_(ref char uplo, ref lapackint n, ref lapackint nrhs, double *ap, lapackint *ipiv, double *b, ref lapackint ldb, ref lapackint info);
164 void cspsv_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cfloat *ap, lapackint *ipiv, _cfloat *b, ref lapackint ldb, ref lapackint info);
165 void zspsv_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cdouble *ap, lapackint *ipiv, _cdouble *b, ref lapackint ldb, ref lapackint info);
166 
167 /// Solves a complex Hermitian indefinite system of linear equations AX=B,
168 /// where A is held in packed storage.
169 void chpsv_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cfloat *ap, lapackint *ipiv, _cfloat *b, ref lapackint ldb, ref lapackint info);
170 void zhpsv_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cdouble *ap, lapackint *ipiv, _cdouble *b, ref lapackint ldb, ref lapackint info);
171 
172 /// Computes the least squares solution to an over-determined system
173 /// of linear equations, A X=B or A**H X=B,  or the minimum norm
174 /// solution of an under-determined system, where A is a general
175 /// rectangular matrix of full rank,  using a QR or LQ factorization
176 /// of A.
177 void sgels_(ref char trans, ref lapackint m, ref lapackint n, ref lapackint nrhs, float *a, ref lapackint lda, float *b, ref lapackint ldb, float *work, ref lapackint lwork, ref lapackint info);
178 void dgels_(ref char trans, ref lapackint m, ref lapackint n, ref lapackint nrhs, double *a, ref lapackint lda, double *b, ref lapackint ldb, double *work, ref lapackint lwork, ref lapackint info);
179 void cgels_(ref char trans, ref lapackint m, ref lapackint n, ref lapackint nrhs, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, _cfloat *work, ref lapackint lwork, ref lapackint info);
180 void zgels_(ref char trans, ref lapackint m, ref lapackint n, ref lapackint nrhs, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, _cdouble *work, ref lapackint lwork, ref lapackint info);
181 
182 /// Computes the least squares solution to an over-determined system
183 /// of linear equations, A X=B or A**H X=B,  or the minimum norm
184 /// solution of an under-determined system, using a divide and conquer
185 /// method, where A is a general rectangular matrix of full rank,
186 /// using a QR or LQ factorization of A.
187 void sgelsd_(ref lapackint m, ref lapackint n, ref lapackint nrhs, float *a, ref lapackint lda, float *b, ref lapackint ldb, float *s, ref const float rcond, ref lapackint rank, float *work, ref lapackint lwork, lapackint *iwork, ref lapackint info);
188 void dgelsd_(ref lapackint m, ref lapackint n, ref lapackint nrhs, double *a, ref lapackint lda, double *b, ref lapackint ldb, double *s, ref const double rcond, ref lapackint rank, double *work, ref lapackint lwork, lapackint *iwork, ref lapackint info);
189 void cgelsd_(ref lapackint m, ref lapackint n, ref lapackint nrhs, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, float *s, ref const float rcond, ref lapackint rank, _cfloat *work, ref lapackint lwork, float *rwork, lapackint *iwork, ref lapackint info);
190 void zgelsd_(ref lapackint m, ref lapackint n, ref lapackint nrhs, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, double *s, ref const double rcond, ref lapackint rank, _cdouble *work, ref lapackint lwork, double *rwork, lapackint *iwork, ref lapackint info);
191 
192 /// Solves the LSE (Constrained Linear Least Squares Problem) using
193 /// the GRQ (Generalized RQ) factorization
194 void sgglse_(ref lapackint m, ref lapackint n, ref lapackint p, float *a, ref lapackint lda, float *b, ref lapackint ldb, float *c, float *d, float *x, float *work, ref lapackint lwork, ref lapackint info);
195 void dgglse_(ref lapackint m, ref lapackint n, ref lapackint p, double *a, ref lapackint lda, double *b, ref lapackint ldb, double *c, double *d, double *x, double *work, ref lapackint lwork, ref lapackint info);
196 void cgglse_(ref lapackint m, ref lapackint n, ref lapackint p, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, _cfloat *c, _cfloat *d, _cfloat *x, _cfloat *work, ref lapackint lwork, ref lapackint info);
197 void zgglse_(ref lapackint m, ref lapackint n, ref lapackint p, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, _cdouble *c, _cdouble *d, _cdouble *x, _cdouble *work, ref lapackint lwork, ref lapackint info);
198 
199 /// Solves the GLM (Generalized Linear Regression Model) using
200 /// the GQR (Generalized QR) factorization
201 void sggglm_(ref lapackint n, ref lapackint m, ref lapackint p, float *a, ref lapackint lda, float *b, ref lapackint ldb, float *d, float *x, float *y, float *work, ref lapackint lwork, ref lapackint info);
202 void dggglm_(ref lapackint n, ref lapackint m, ref lapackint p, double *a, ref lapackint lda, double *b, ref lapackint ldb, double *d, double *x, double *y, double *work, ref lapackint lwork, ref lapackint info);
203 void cggglm_(ref lapackint n, ref lapackint m, ref lapackint p, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, _cfloat *d, _cfloat *x, _cfloat *y, _cfloat *work, ref lapackint lwork, ref lapackint info);
204 void zggglm_(ref lapackint n, ref lapackint m, ref lapackint p, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, _cdouble *d, _cdouble *x, _cdouble *y, _cdouble *work, ref lapackint lwork, ref lapackint info);
205 
206 /// Computes all eigenvalues, and optionally, eigenvectors of a real
207 /// symmetric matrix.
208 void ssyev_(ref char jobz, ref char uplo, ref lapackint n, float *a, ref lapackint lda, float *w, float *work, ref lapackint lwork, ref lapackint info);
209 void dsyev_(ref char jobz, ref char uplo, ref lapackint n, double *a, ref lapackint lda, double *w, double *work, ref lapackint lwork, ref lapackint info);
210 void ssyev_2stage_(ref char jobz, ref char uplo, ref lapackint n, float *a, ref lapackint lda, float *w, float *work, ref lapackint lwork, ref lapackint info);
211 void dsyev_2stage_(ref char jobz, ref char uplo, ref lapackint n, double *a, ref lapackint lda, double *w, double *work, ref lapackint lwork, ref lapackint info);
212 
213 
214 /// Computes all eigenvalues and, optionally, eigenvectors of a complex
215 /// Hermitian matrix.
216 void cheev_(ref char jobz, ref char uplo, ref lapackint n, _cfloat *a, ref lapackint lda, float *w, _cfloat *work, ref lapackint lwork, float *rwork, ref lapackint info);
217 void zheev_(ref char jobz, ref char uplo, ref lapackint n, _cdouble *a, ref lapackint lda, double *w, _cdouble *work, ref lapackint lwork, double *rwork, ref lapackint info);
218 void cheev_2stage_(ref char jobz, ref char uplo, ref lapackint n, _cfloat *a, ref lapackint lda, float *w, _cfloat *work, ref lapackint lwork, float *rwork, ref lapackint info);
219 void zheev_2stage_(ref char jobz, ref char uplo, ref lapackint n, _cdouble *a, ref lapackint lda, double *w, _cdouble *work, ref lapackint lwork, double *rwork, ref lapackint info);
220 
221 
222 /// Computes all eigenvalues, and optionally, eigenvectors of a real
223 /// symmetric matrix.  If eigenvectors are desired, it uses a divide
224 /// and conquer algorithm.
225 void ssyevd_(ref char jobz, ref char uplo, ref lapackint n, float *a, ref lapackint lda, float *w, float *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
226 void dsyevd_(ref char jobz, ref char uplo, ref lapackint n, double *a, ref lapackint lda, double *w, double *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
227 void ssyevd_2stage_(ref char jobz, ref char uplo, ref lapackint n, float *a, ref lapackint lda, float *w, float *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
228 void dsyevd_2stage_(ref char jobz, ref char uplo, ref lapackint n, double *a, ref lapackint lda, double *w, double *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
229 
230 /// Computes all eigenvalues and, optionally, eigenvectors of a complex
231 /// Hermitian matrix.  If eigenvectors are desired, it uses a divide
232 /// and conquer algorithm.
233 void cheevd_(ref char jobz, ref char uplo, ref lapackint n, _cfloat *a, ref lapackint lda, float *w, _cfloat *work, ref lapackint lwork, float *rwork, lapackint *lrwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
234 void zheevd_(ref char jobz, ref char uplo, ref lapackint n, _cdouble *a, ref lapackint lda, double *w, _cdouble *work, ref lapackint lwork, double *rwork, lapackint *lrwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
235 void cheevd_2stage_(ref char jobz, ref char uplo, ref lapackint n, _cfloat *a, ref lapackint lda, float *w, _cfloat *work, ref lapackint lwork, float *rwork, lapackint *lrwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
236 void zheevd_2stage_(ref char jobz, ref char uplo, ref lapackint n, _cdouble *a, ref lapackint lda, double *w, _cdouble *work, ref lapackint lwork, double *rwork, lapackint *lrwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
237 
238 /// Computes all eigenvalues, and optionally, eigenvectors of a real
239 /// symmetric matrix in packed storage.
240 void sspev_(ref char jobz, ref char uplo, ref lapackint n, float *ap, float *w, float *z, ref lapackint ldz, float *work, ref lapackint info);
241 void dspev_(ref char jobz, ref char uplo, ref lapackint n, double *ap, double *w, double *z, ref lapackint ldz, double *work, ref lapackint info);
242 
243 /// Computes selected eigenvalues, and optionally, eigenvectors of a complex
244 /// Hermitian matrix.  Eigenvalues are computed by the dqds
245 /// algorithm, and eigenvectors are computed from various "good" LDL^T
246 /// representations (also known as Relatively Robust Representations).
247 /// Computes all eigenvalues and, optionally, eigenvectors of a complex
248 /// Hermitian matrix in packed storage.
249 void chpev_(ref char jobz, ref char uplo, ref lapackint n, _cfloat *ap, float *w, _cfloat *z, ref lapackint ldz, _cfloat *work, float *rwork, ref lapackint info);
250 void zhpev_(ref char jobz, ref char uplo, ref lapackint n, _cdouble *ap, double *w, _cdouble *z, ref lapackint ldz, _cdouble *work, double *rwork, ref lapackint info);
251 
252 /// Computes all eigenvalues, and optionally, eigenvectors of a real
253 /// symmetric matrix in packed storage.  If eigenvectors are desired,
254 /// it uses a divide and conquer algorithm.
255 void sspevd_(ref char jobz, ref char uplo, ref lapackint n, float *ap, float *w, float *z, ref lapackint ldz, float *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
256 void dspevd_(ref char jobz, ref char uplo, ref lapackint n, double *ap, double *w, double *z, ref lapackint ldz, double *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
257 
258 /// Computes all eigenvalues and, optionally, eigenvectors of a complex
259 /// Hermitian matrix in packed storage.  If eigenvectors are desired, it
260 /// uses a divide and conquer algorithm.
261 void chpevd_(ref char jobz, ref char uplo, ref lapackint n, _cfloat *ap, float *w, _cfloat *z, ref lapackint ldz, _cfloat *work, ref lapackint lwork, float *rwork, lapackint *lrwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
262 void zhpevd_(ref char jobz, ref char uplo, ref lapackint n, _cdouble *ap, double *w, _cdouble *z, ref lapackint ldz, _cdouble *work, ref lapackint lwork, double *rwork, lapackint *lrwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
263 
264 /// Computes all eigenvalues, and optionally, eigenvectors of a real
265 /// symmetric band matrix.
266 void ssbev_(ref char jobz, ref char uplo, ref lapackint n, lapackint *kd, float *ab, ref lapackint ldab, float *w, float *z, ref lapackint ldz, float *work, ref lapackint info);
267 void dsbev_(ref char jobz, ref char uplo, ref lapackint n, lapackint *kd, double *ab, ref lapackint ldab, double *w, double *z, ref lapackint ldz, double *work, ref lapackint info);
268 
269 /// Computes all eigenvalues and, optionally, eigenvectors of a complex
270 /// Hermitian band matrix.
271 void chbev_(ref char jobz, ref char uplo, ref lapackint n, lapackint *kd, _cfloat *ab, ref lapackint ldab, float *w, _cfloat *z, ref lapackint ldz, _cfloat *work, float *rwork, ref lapackint info);
272 void zhbev_(ref char jobz, ref char uplo, ref lapackint n, lapackint *kd, _cdouble *ab, ref lapackint ldab, double *w, _cdouble *z, ref lapackint ldz, _cdouble *work, double *rwork, ref lapackint info);
273 
274 /// Computes all eigenvalues, and optionally, eigenvectors of a real
275 /// symmetric band matrix.  If eigenvectors are desired, it uses a
276 /// divide and conquer algorithm.
277 void ssbevd_(ref char jobz, ref char uplo, ref lapackint n, lapackint *kd, float *ab, ref lapackint ldab, float *w, float *z, ref lapackint ldz, float *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
278 void dsbevd_(ref char jobz, ref char uplo, ref lapackint n, lapackint *kd, double *ab, ref lapackint ldab, double *w, double *z, ref lapackint ldz, double *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
279 
280 /// Computes all eigenvalues and, optionally, eigenvectors of a complex
281 /// Hermitian band matrix.  If eigenvectors are desired, it uses a divide
282 /// and conquer algorithm.
283 void chbevd_(ref char jobz, ref char uplo, ref lapackint n, lapackint *kd, _cfloat *ab, ref lapackint ldab, float *w, _cfloat *z, ref lapackint ldz, _cfloat *work, ref lapackint lwork, float *rwork, lapackint *lrwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
284 void zhbevd_(ref char jobz, ref char uplo, ref lapackint n, lapackint *kd, _cdouble *ab, ref lapackint ldab, double *w, _cdouble *z, ref lapackint ldz, _cdouble *work, ref lapackint lwork, double *rwork, lapackint *lrwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
285 
286 /// Computes all eigenvalues, and optionally, eigenvectors of a real
287 /// symmetric tridiagonal matrix.
288 void sstev_(ref char jobz, ref lapackint n, float *d, float *e, float *z, ref lapackint ldz, float *work, ref lapackint info);
289 void dstev_(ref char jobz, ref lapackint n, double *d, double *e, double *z, ref lapackint ldz, double *work, ref lapackint info);
290 
291 /// Computes all eigenvalues, and optionally, eigenvectors of a real
292 /// symmetric tridiagonal matrix.  If eigenvectors are desired, it uses
293 /// a divide and conquer algorithm.
294 void sstevd_(ref char jobz, ref lapackint n, float *d, float *e, float *z, ref lapackint ldz, float *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
295 void dstevd_(ref char jobz, ref lapackint n, double *d, double *e, double *z, ref lapackint ldz, double *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
296 
297 /// Computes the eigenvalues and Schur factorization of a general
298 /// matrix, and orders the factorization so that selected eigenvalues
299 /// are at the top left of the Schur form.
300 void sgees_(ref char jobvs, ref char sort, FCB_SGEES_SELECT select, ref lapackint n, float *a, ref lapackint lda, lapackint *sdim, float *wr, float *wi, float *vs, ref lapackint ldvs, float *work, ref lapackint lwork, lapackint *bwork, ref lapackint info);
301 void dgees_(ref char jobvs, ref char sort, FCB_DGEES_SELECT select, ref lapackint n, double *a, ref lapackint lda, lapackint *sdim, double *wr, double *wi, double *vs, ref lapackint ldvs, double *work, ref lapackint lwork, lapackint *bwork, ref lapackint info);
302 void cgees_(ref char jobvs, ref char sort, FCB_CGEES_SELECT select, ref lapackint n, _cfloat *a, ref lapackint lda, lapackint *sdim, _cfloat *w, _cfloat *vs, ref lapackint ldvs, _cfloat *work, ref lapackint lwork, float *rwork, lapackint *bwork, ref lapackint info);
303 void zgees_(ref char jobvs, ref char sort, FCB_ZGEES_SELECT select, ref lapackint n, _cdouble *a, ref lapackint lda, lapackint *sdim, _cdouble *w, _cdouble *vs, ref lapackint ldvs, _cdouble *work, ref lapackint lwork, double *rwork, lapackint *bwork, ref lapackint info);
304 
305 /// Computes the eigenvalues and left and right eigenvectors of
306 /// a general matrix.
307 void sgeev_(ref char jobvl, ref char jobvr, ref lapackint n, float *a, ref lapackint lda, float *wr, float *wi, float *vl, ref lapackint ldvl, float *vr, ref lapackint ldvr, float *work, ref lapackint lwork, ref lapackint info);
308 void dgeev_(ref char jobvl, ref char jobvr, ref lapackint n, double *a, ref lapackint lda, double *wr, double *wi, double *vl, ref lapackint ldvl, double *vr, ref lapackint ldvr, double *work, ref lapackint lwork, ref lapackint info);
309 void cgeev_(ref char jobvl, ref char jobvr, ref lapackint n, _cfloat *a, ref lapackint lda, _cfloat *w, _cfloat *vl, ref lapackint ldvl, _cfloat *vr, ref lapackint ldvr, _cfloat *work, ref lapackint lwork, float *rwork, ref lapackint info);
310 void zgeev_(ref char jobvl, ref char jobvr, ref lapackint n, _cdouble *a, ref lapackint lda, _cdouble *w, _cdouble *vl, ref lapackint ldvl, _cdouble *vr, ref lapackint ldvr, _cdouble *work, ref lapackint lwork, double *rwork, ref lapackint info);
311 
312 /// Computes the singular value decomposition (SVD) of a general
313 /// rectangular matrix.
314 void sgesvd_(ref char jobu, ref char jobvt, ref lapackint m, ref lapackint n, float *a, ref lapackint lda, float *s, float *u, ref lapackint ldu, float *vt, ref lapackint ldvt, float *work, ref lapackint lwork, ref lapackint info);
315 void dgesvd_(ref char jobu, ref char jobvt, ref lapackint m, ref lapackint n, double *a, ref lapackint lda, double *s, double *u, ref lapackint ldu, double *vt, ref lapackint ldvt, double *work, ref lapackint lwork, ref lapackint info);
316 void cgesvd_(ref char jobu, ref char jobvt, ref lapackint m, ref lapackint n, _cfloat *a, ref lapackint lda, float *s, _cfloat *u, ref lapackint ldu, _cfloat *vt, ref lapackint ldvt, _cfloat *work, ref lapackint lwork, float *rwork, ref lapackint info);
317 void zgesvd_(ref char jobu, ref char jobvt, ref lapackint m, ref lapackint n, _cdouble *a, ref lapackint lda, double *s, _cdouble *u, ref lapackint ldu, _cdouble *vt, ref lapackint ldvt, _cdouble *work, ref lapackint lwork, double *rwork, ref lapackint info);
318 
319 /// Computes the singular value decomposition (SVD) of a general
320 /// rectangular matrix using divide-and-conquer.
321 void sgesdd_(ref char jobz, ref lapackint m, ref lapackint n, float *a, ref lapackint lda, float *s, float *u, ref lapackint ldu, float *vt, ref lapackint ldvt, float *work, ref lapackint lwork, lapackint *iwork, ref lapackint info);
322 void dgesdd_(ref char jobz, ref lapackint m, ref lapackint n, double *a, ref lapackint lda, double *s, double *u, ref lapackint ldu, double *vt, ref lapackint ldvt, double *work, ref lapackint lwork, lapackint *iwork, ref lapackint info);
323 void cgesdd_(ref char jobz, ref lapackint m, ref lapackint n, _cfloat *a, ref lapackint lda, float *s, _cfloat *u, ref lapackint ldu, _cfloat *vt, ref lapackint ldvt, _cfloat *work, ref lapackint lwork, float *rwork, lapackint *iwork, ref lapackint info);
324 void zgesdd_(ref char jobz, ref lapackint m, ref lapackint n, _cdouble *a, ref lapackint lda, double *s, _cdouble *u, ref lapackint ldu, _cdouble *vt, ref lapackint ldvt, _cdouble *work, ref lapackint lwork, double *rwork, lapackint *iwork, ref lapackint info);
325 
326 /// Computes all eigenvalues and the eigenvectors of  a generalized
327 /// symmetric-definite generalized eigenproblem,
328 /// Ax= lambda Bx,  ABx= lambda x,  or BAx= lambda x.
329 void ssygv_(lapackint *itype, ref char jobz, ref char uplo, ref lapackint n, float *a, ref lapackint lda, float *b, ref lapackint ldb, float *w, float *work, ref lapackint lwork, ref lapackint info);
330 void dsygv_(lapackint *itype, ref char jobz, ref char uplo, ref lapackint n, double *a, ref lapackint lda, double *b, ref lapackint ldb, double *w, double *work, ref lapackint lwork, ref lapackint info);
331 
332 /// Computes all eigenvalues and the eigenvectors of  a generalized
333 /// Hermitian-definite generalized eigenproblem,
334 /// Ax= lambda Bx,  ABx= lambda x,  or BAx= lambda x.
335 void chegv_(lapackint *itype, ref char jobz, ref char uplo, ref lapackint n, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, float *w, _cfloat *work, ref lapackint lwork, float *rwork, ref lapackint info);
336 void zhegv_(lapackint *itype, ref char jobz, ref char uplo, ref lapackint n, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, double *w, _cdouble *work, ref lapackint lwork, double *rwork, ref lapackint info);
337 
338 /// Computes all eigenvalues and the eigenvectors of  a generalized
339 /// symmetric-definite generalized eigenproblem,
340 /// Ax= lambda Bx,  ABx= lambda x,  or BAx= lambda x.
341 /// If eigenvectors are desired, it uses a divide and conquer algorithm.
342 void ssygvd_(lapackint *itype, ref char jobz, ref char uplo, ref lapackint n, float *a, ref lapackint lda, float *b, ref lapackint ldb, float *w, float *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
343 void dsygvd_(lapackint *itype, ref char jobz, ref char uplo, ref lapackint n, double *a, ref lapackint lda, double *b, ref lapackint ldb, double *w, double *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
344 /// Computes all eigenvalues and the eigenvectors of  a generalized
345 /// Hermitian-definite generalized eigenproblem,
346 /// Ax= lambda Bx,  ABx= lambda x,  or BAx= lambda x.
347 /// If eigenvectors are desired, it uses a divide and conquer algorithm.
348 void chegvd_(lapackint *itype, ref char jobz, ref char uplo, ref lapackint n, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, float *w, _cfloat *work, ref lapackint lwork, float *rwork, lapackint *lrwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
349 void zhegvd_(lapackint *itype, ref char jobz, ref char uplo, ref lapackint n, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, double *w, _cdouble *work, ref lapackint lwork, double *rwork, lapackint *lrwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
350 
351 /// Computes all eigenvalues and eigenvectors of  a generalized
352 /// symmetric-definite generalized eigenproblem,  Ax= lambda
353 /// Bx,  ABx= lambda x,  or BAx= lambda x, where A and B are in packed
354 /// storage.
355 void sspgv_(lapackint *itype, ref char jobz, ref char uplo, ref lapackint n, float *ap, float *bp, float *w, float *z, ref lapackint ldz, float *work, ref lapackint info);
356 void dspgv_(lapackint *itype, ref char jobz, ref char uplo, ref lapackint n, double *ap, double *bp, double *w, double *z, ref lapackint ldz, double *work, ref lapackint info);
357 
358 /// Computes all eigenvalues and eigenvectors of  a generalized
359 /// Hermitian-definite generalized eigenproblem,  Ax= lambda
360 /// Bx,  ABx= lambda x,  or BAx= lambda x, where A and B are in packed
361 /// storage.
362 void chpgv_(lapackint *itype, ref char jobz, ref char uplo, ref lapackint n, _cfloat *ap, _cfloat *bp, float *w, _cfloat *z, ref lapackint ldz, _cfloat *work, float *rwork, ref lapackint info);
363 void zhpgv_(lapackint *itype, ref char jobz, ref char uplo, ref lapackint n, _cdouble *ap, _cdouble *bp, double *w, _cdouble *z, ref lapackint ldz, _cdouble *work, double *rwork, ref lapackint info);
364 
365 /// Computes all eigenvalues and eigenvectors of  a generalized
366 /// symmetric-definite generalized eigenproblem,  Ax= lambda
367 /// Bx,  ABx= lambda x,  or BAx= lambda x, where A and B are in packed
368 /// storage.
369 /// If eigenvectors are desired, it uses a divide and conquer algorithm.
370 void sspgvd_(lapackint *itype, ref char jobz, ref char uplo, ref lapackint n, float *ap, float *bp, float *w, float *z, ref lapackint ldz, float *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
371 void dspgvd_(lapackint *itype, ref char jobz, ref char uplo, ref lapackint n, double *ap, double *bp, double *w, double *z, ref lapackint ldz, double *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
372 
373 /// Computes all eigenvalues and eigenvectors of  a generalized
374 /// Hermitian-definite generalized eigenproblem,  Ax= lambda
375 /// Bx,  ABx= lambda x,  or BAx= lambda x, where A and B are in packed
376 /// storage.
377 /// If eigenvectors are desired, it uses a divide and conquer algorithm.
378 void chpgvd_(lapackint *itype, ref char jobz, ref char uplo, ref lapackint n, _cfloat *ap, _cfloat *bp, float *w, _cfloat *z, ref lapackint ldz, _cfloat *work, ref lapackint lwork, float *rwork, lapackint *lrwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
379 void zhpgvd_(lapackint *itype, ref char jobz, ref char uplo, ref lapackint n, _cdouble *ap, _cdouble *bp, double *w, _cdouble *z, ref lapackint ldz, _cdouble *work, ref lapackint lwork, double *rwork, lapackint *lrwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
380 
381 /// Computes all the eigenvalues, and optionally, the eigenvectors
382 /// of a real generalized symmetric-definite banded eigenproblem, of
383 /// the form A*x=(lambda)*B*x.  A and B are assumed to be symmetric
384 /// and banded, and B is also positive definite.
385 void ssbgv_(ref char jobz, ref char uplo, ref lapackint n, lapackint *ka, lapackint *kb, float *ab, ref lapackint ldab, float *bb, ref lapackint ldbb, float *w, float *z, ref lapackint ldz, float *work, ref lapackint info);
386 void dsbgv_(ref char jobz, ref char uplo, ref lapackint n, lapackint *ka, lapackint *kb, double *ab, ref lapackint ldab, double *bb, ref lapackint ldbb, double *w, double *z, ref lapackint ldz, double *work, ref lapackint info);
387 
388 /// Computes all the eigenvalues, and optionally, the eigenvectors
389 /// of a complex generalized Hermitian-definite banded eigenproblem, of
390 /// the form A*x=(lambda)*B*x.  A and B are assumed to be Hermitian
391 /// and banded, and B is also positive definite.
392 void chbgv_(ref char jobz, ref char uplo, ref lapackint n, lapackint *ka, lapackint *kb, _cfloat *ab, ref lapackint ldab, _cfloat *bb, ref lapackint ldbb, float *w, _cfloat *z, ref lapackint ldz, _cfloat *work, float *rwork, ref lapackint info);
393 void zhbgv_(ref char jobz, ref char uplo, ref lapackint n, lapackint *ka, lapackint *kb, _cdouble *ab, ref lapackint ldab, _cdouble *bb, ref lapackint ldbb, double *w, _cdouble *z, ref lapackint ldz, _cdouble *work, double *rwork, ref lapackint info);
394 
395 /// Computes all the eigenvalues, and optionally, the eigenvectors
396 /// of a real generalized symmetric-definite banded eigenproblem, of
397 /// the form A*x=(lambda)*B*x.  A and B are assumed to be symmetric
398 /// and banded, and B is also positive definite.
399 /// If eigenvectors are desired, it uses a divide and conquer algorithm.
400 void ssbgvd_(ref char jobz, ref char uplo, ref lapackint n, lapackint *ka, lapackint *kb, float *ab, ref lapackint ldab, float *bb, ref lapackint ldbb, float *w, float *z, ref lapackint ldz, float *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
401 void dsbgvd_(ref char jobz, ref char uplo, ref lapackint n, lapackint *ka, lapackint *kb, double *ab, ref lapackint ldab, double *bb, ref lapackint ldbb, double *w, double *z, ref lapackint ldz, double *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
402 
403 /// Computes all the eigenvalues, and optionally, the eigenvectors
404 /// of a complex generalized Hermitian-definite banded eigenproblem, of
405 /// the form A*x=(lambda)*B*x.  A and B are assumed to be Hermitian
406 /// and banded, and B is also positive definite.
407 /// If eigenvectors are desired, it uses a divide and conquer algorithm.
408 void chbgvd_(ref char jobz, ref char uplo, ref lapackint n, lapackint *ka, lapackint *kb, _cfloat *ab, ref lapackint ldab, _cfloat *bb, ref lapackint ldbb, float *w, _cfloat *z, ref lapackint ldz, _cfloat *work, ref lapackint lwork, float *rwork, lapackint *lrwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
409 void zhbgvd_(ref char jobz, ref char uplo, ref lapackint n, lapackint *ka, lapackint *kb, _cdouble *ab, ref lapackint ldab, _cdouble *bb, ref lapackint ldbb, double *w, _cdouble *z, ref lapackint ldz, _cdouble *work, ref lapackint lwork, double *rwork, lapackint *lrwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
410 
411 /// Computes the generalized eigenvalues, Schur form, and left and/or
412 /// right Schur vectors for a pair of nonsymmetric matrices
413 void sgegs_(ref char jobvsl, ref char jobvsr, ref lapackint n, float *a, ref lapackint lda, float *b, ref lapackint ldb, float *alphar, float *alphai, float *betav, float *vsl, ref lapackint ldvsl, float *vsr, ref lapackint ldvsr, float *work, ref lapackint lwork, ref lapackint info);
414 void dgegs_(ref char jobvsl, ref char jobvsr, ref lapackint n, double *a, ref lapackint lda, double *b, ref lapackint ldb, double *alphar, double *alphai, double *betav, double *vsl, ref lapackint ldvsl, double *vsr, ref lapackint ldvsr, double *work, ref lapackint lwork, ref lapackint info);
415 void cgegs_(ref char jobvsl, ref char jobvsr, ref lapackint n, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, _cfloat *alphav, _cfloat *betav, _cfloat *vsl, ref lapackint ldvsl, _cfloat *vsr, ref lapackint ldvsr, _cfloat *work, ref lapackint lwork, float *rwork, ref lapackint info);
416 void zgegs_(ref char jobvsl, ref char jobvsr, ref lapackint n, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, _cdouble *alphav, _cdouble *betav, _cdouble *vsl, ref lapackint ldvsl, _cdouble *vsr, ref lapackint ldvsr, _cdouble *work, ref lapackint lwork, double *rwork, ref lapackint info);
417 
418 /// Computes the generalized eigenvalues, Schur form, and left and/or
419 /// right Schur vectors for a pair of nonsymmetric matrices
420 void sgges_(ref char jobvsl, ref char jobvsr, ref char sort, FCB_SGGES_SELCTG selctg, ref lapackint n, float *a, ref lapackint lda, float *b, ref lapackint ldb, lapackint *sdim, float *alphar, float *alphai, float *betav, float *vsl, ref lapackint ldvsl, float *vsr, ref lapackint ldvsr, float *work, ref lapackint lwork, lapackint *bwork, ref lapackint info);
421 void dgges_(ref char jobvsl, ref char jobvsr, ref char sort, FCB_DGGES_DELCTG delctg, ref lapackint n, double *a, ref lapackint lda, double *b, ref lapackint ldb, lapackint *sdim, double *alphar, double *alphai, double *betav, double *vsl, ref lapackint ldvsl, double *vsr, ref lapackint ldvsr, double *work, ref lapackint lwork, lapackint *bwork, ref lapackint info);
422 void cgges_(ref char jobvsl, ref char jobvsr, ref char sort, FCB_CGGES_SELCTG selctg, ref lapackint n, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, lapackint *sdim, _cfloat *alphav, _cfloat *betav, _cfloat *vsl, ref lapackint ldvsl, _cfloat *vsr, ref lapackint ldvsr, _cfloat *work, ref lapackint lwork, float *rwork, lapackint *bwork, ref lapackint info);
423 void zgges_(ref char jobvsl, ref char jobvsr, ref char sort, FCB_ZGGES_DELCTG delctg, ref lapackint n, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, lapackint *sdim, _cdouble *alphav, _cdouble *betav, _cdouble *vsl, ref lapackint ldvsl, _cdouble *vsr, ref lapackint ldvsr, _cdouble *work, ref lapackint lwork, double *rwork, lapackint *bwork, ref lapackint info);
424 
425 /// Computes the generalized eigenvalues, and left and/or right
426 /// generalized eigenvectors for a pair of nonsymmetric matrices
427 void sgegv_(ref char jobvl, ref char jobvr, ref lapackint n, float *a, ref lapackint lda, float *b, ref lapackint ldb, float *alphar, float *alphai, float *betav, float *vl, ref lapackint ldvl, float *vr, ref lapackint ldvr, float *work, ref lapackint lwork, ref lapackint info);
428 void dgegv_(ref char jobvl, ref char jobvr, ref lapackint n, double *a, ref lapackint lda, double *b, ref lapackint ldb, double *alphar, double *alphai, double *betav, double *vl, ref lapackint ldvl, double *vr, ref lapackint ldvr, double *work, ref lapackint lwork, ref lapackint info);
429 void cgegv_(ref char jobvl, ref char jobvr, ref lapackint n, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, _cfloat *alphar, _cfloat *betav, _cfloat *vl, ref lapackint ldvl, _cfloat *vr, ref lapackint ldvr, _cfloat *work, ref lapackint lwork, float *rwork, ref lapackint info);
430 void zgegv_(ref char jobvl, ref char jobvr, ref lapackint n, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, _cdouble *alphar, _cdouble *betav, _cdouble *vl, ref lapackint ldvl, _cdouble *vr, ref lapackint ldvr, _cdouble *work, ref lapackint lwork, double *rwork, ref lapackint info);
431 
432 /// Computes the generalized eigenvalues, and left and/or right
433 /// generalized eigenvectors for a pair of nonsymmetric matrices
434 void sggev_(ref char jobvl, ref char jobvr, ref lapackint n, float *a, ref lapackint lda, float *b, ref lapackint ldb, float *alphar, float *alphai, float *betav, float *vl, ref lapackint ldvl, float *vr, ref lapackint ldvr, float *work, ref lapackint lwork, ref lapackint info);
435 void dggev_(ref char jobvl, ref char jobvr, ref lapackint n, double *a, ref lapackint lda, double *b, ref lapackint ldb, double *alphar, double *alphai, double *betav, double *vl, ref lapackint ldvl, double *vr, ref lapackint ldvr, double *work, ref lapackint lwork, ref lapackint info);
436 void cggev_(ref char jobvl, ref char jobvr, ref lapackint n, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, _cfloat *alphav, _cfloat *betav, _cfloat *vl, ref lapackint ldvl, _cfloat *vr, ref lapackint ldvr, _cfloat *work, ref lapackint lwork, float *rwork, ref lapackint info);
437 void zggev_(ref char jobvl, ref char jobvr, ref lapackint n, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, _cdouble *alphav, _cdouble *betav, _cdouble *vl, ref lapackint ldvl, _cdouble *vr, ref lapackint ldvr, _cdouble *work, ref lapackint lwork, double *rwork, ref lapackint info);
438 
439 /// Computes the Generalized Singular Value Decomposition
440 void sggsvd_(ref char jobu, ref char jobv, ref char jobq, ref lapackint m, ref lapackint n, ref lapackint p, ref lapackint k, ref lapackint l, float *a, ref lapackint lda, float *b, ref lapackint ldb, float *alphav, float *betav, float *u, ref lapackint ldu, float *v, ref lapackint ldv, float *q, ref lapackint ldq, float *work, lapackint *iwork, ref lapackint info);
441 void dggsvd_(ref char jobu, ref char jobv, ref char jobq, ref lapackint m, ref lapackint n, ref lapackint p, ref lapackint k, ref lapackint l, double *a, ref lapackint lda, double *b, ref lapackint ldb, double *alphav, double *betav, double *u, ref lapackint ldu, double *v, ref lapackint ldv, double *q, ref lapackint ldq, double *work, lapackint *iwork, ref lapackint info);
442 void cggsvd_(ref char jobu, ref char jobv, ref char jobq, ref lapackint m, ref lapackint n, ref lapackint p, ref lapackint k, ref lapackint l, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, float *alphav, float *betav, _cfloat *u, ref lapackint ldu, _cfloat *v, ref lapackint ldv, _cfloat *q, ref lapackint ldq, _cfloat *work, float *rwork, lapackint *iwork, ref lapackint info);
443 void zggsvd_(ref char jobu, ref char jobv, ref char jobq, ref lapackint m, ref lapackint n, ref lapackint p, ref lapackint k, ref lapackint l, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, double *alphav, double *betav, _cdouble *u, ref lapackint ldu, _cdouble *v, ref lapackint ldv, _cdouble *q, ref lapackint ldq, _cdouble *work, double *rwork, lapackint *iwork, ref lapackint info);
444 
445 //-----------------------------------------------------
446 //       ---- EXPERT and RRR DRIVER routines ----
447 //-----------------------------------------------------
448 
449 /// Solves a general system of linear equations AX=B, A**T X=B
450 /// or A**H X=B, and provides an estimate of the condition number
451 /// and error bounds on the solution.
452 void sgesvx_(ref char fact, ref char trans, ref lapackint n, ref lapackint nrhs, float *a, ref lapackint lda, float *af, ref lapackint ldaf, lapackint *ipiv, ref char equed, float *r, float *c, float *b, ref lapackint ldb, float *x, ref lapackint ldx, ref float rcond, float *ferr, float *berr, float *work, lapackint *iwork, ref lapackint info);
453 void dgesvx_(ref char fact, ref char trans, ref lapackint n, ref lapackint nrhs, double *a, ref lapackint lda, double *af, ref lapackint ldaf, lapackint *ipiv, ref char equed, double *r, double *c, double *b, ref lapackint ldb, double *x, ref lapackint ldx, ref double rcond, double *ferr, double *berr, double *work, lapackint *iwork, ref lapackint info);
454 void cgesvx_(ref char fact, ref char trans, ref lapackint n, ref lapackint nrhs, _cfloat *a, ref lapackint lda, _cfloat *af, ref lapackint ldaf, lapackint *ipiv, ref char equed, float *r, float *c, _cfloat *b, ref lapackint ldb, _cfloat *x, ref lapackint ldx, ref float rcond, float *ferr, float *berr, _cfloat *work, float *rwork, ref lapackint info);
455 void zgesvx_(ref char fact, ref char trans, ref lapackint n, ref lapackint nrhs, _cdouble *a, ref lapackint lda, _cdouble *af, ref lapackint ldaf, lapackint *ipiv, ref char equed, double *r, double *c, _cdouble *b, ref lapackint ldb, _cdouble *x, ref lapackint ldx, ref double rcond, double *ferr, double *berr, _cdouble *work, double *rwork, ref lapackint info);
456 
457 /// Solves a general banded system of linear equations AX=B,
458 /// A**T X=B or A**H X=B, and provides an estimate of the condition
459 /// number and error bounds on the solution.
460 void sgbsvx_(ref char fact, ref char trans, ref lapackint n, ref lapackint kl, ref lapackint ku, ref lapackint nrhs, float *ab, ref lapackint ldab, float *afb, ref lapackint ldafb, lapackint *ipiv, ref char equed, float *r, float *c, float *b, ref lapackint ldb, float *x, ref lapackint ldx, ref float rcond, float *ferr, float *berr, float *work, lapackint *iwork, ref lapackint info);
461 void dgbsvx_(ref char fact, ref char trans, ref lapackint n, ref lapackint kl, ref lapackint ku, ref lapackint nrhs, double *ab, ref lapackint ldab, double *afb, ref lapackint ldafb, lapackint *ipiv, ref char equed, double *r, double *c, double *b, ref lapackint ldb, double *x, ref lapackint ldx, ref double rcond, double *ferr, double *berr, double *work, lapackint *iwork, ref lapackint info);
462 void cgbsvx_(ref char fact, ref char trans, ref lapackint n, ref lapackint kl, ref lapackint ku, ref lapackint nrhs, _cfloat *ab, ref lapackint ldab, _cfloat *afb, ref lapackint ldafb, lapackint *ipiv, ref char equed, float *r, float *c, _cfloat *b, ref lapackint ldb, _cfloat *x, ref lapackint ldx, ref float rcond, float *ferr, float *berr, _cfloat *work, float *rwork, ref lapackint info);
463 void zgbsvx_(ref char fact, ref char trans, ref lapackint n, ref lapackint kl, ref lapackint ku, ref lapackint nrhs, _cdouble *ab, ref lapackint ldab, _cdouble *afb, ref lapackint ldafb, lapackint *ipiv, ref char equed, double *r, double *c, _cdouble *b, ref lapackint ldb, _cdouble *x, ref lapackint ldx, ref double rcond, double *ferr, double *berr, _cdouble *work, double *rwork, ref lapackint info);
464 
465 /// Solves a general tridiagonal system of linear equations AX=B,
466 /// A**T X=B or A**H X=B, and provides an estimate of the condition
467 /// number  and error bounds on the solution.
468 void sgtsvx_(ref char fact, ref char trans, ref lapackint n, ref lapackint nrhs, float *dl, float *d, float *du, float *dlf, float *df, float *duf, float *du2, lapackint *ipiv, float *b, ref lapackint ldb, float *x, ref lapackint ldx, ref float rcond, float *ferr, float *berr, float *work, lapackint *iwork, ref lapackint info);
469 void dgtsvx_(ref char fact, ref char trans, ref lapackint n, ref lapackint nrhs, double *dl, double *d, double *du, double *dlf, double *df, double *duf, double *du2, lapackint *ipiv, double *b, ref lapackint ldb, double *x, ref lapackint ldx, ref double rcond, double *ferr, double *berr, double *work, lapackint *iwork, ref lapackint info);
470 void cgtsvx_(ref char fact, ref char trans, ref lapackint n, ref lapackint nrhs, _cfloat *dl, _cfloat *d, _cfloat *du, _cfloat *dlf, _cfloat *df, _cfloat *duf, _cfloat *du2, lapackint *ipiv, _cfloat *b, ref lapackint ldb, _cfloat *x, ref lapackint ldx, ref float rcond, float *ferr, float *berr, _cfloat *work, float *rwork, ref lapackint info);
471 void zgtsvx_(ref char fact, ref char trans, ref lapackint n, ref lapackint nrhs, _cdouble *dl, _cdouble *d, _cdouble *du, _cdouble *dlf, _cdouble *df, _cdouble *duf, _cdouble *du2, lapackint *ipiv, _cdouble *b, ref lapackint ldb, _cdouble *x, ref lapackint ldx, ref double rcond, double *ferr, double *berr, _cdouble *work, double *rwork, ref lapackint info);
472 
473 /// Solves a symmetric positive definite system of linear
474 /// equations AX=B, and provides an estimate of the condition number
475 /// and error bounds on the solution.
476 void sposvx_(ref char fact, ref char uplo, ref lapackint n, ref lapackint nrhs, float *a, ref lapackint lda, float *af, ref lapackint ldaf, ref char equed, float *s, float *b, ref lapackint ldb, float *x, ref lapackint ldx, ref float rcond, float *ferr, float *berr, float *work, lapackint *iwork, ref lapackint info);
477 void dposvx_(ref char fact, ref char uplo, ref lapackint n, ref lapackint nrhs, double *a, ref lapackint lda, double *af, ref lapackint ldaf, ref char equed, double *s, double *b, ref lapackint ldb, double *x, ref lapackint ldx, ref double rcond, double *ferr, double *berr, double *work, lapackint *iwork, ref lapackint info);
478 void cposvx_(ref char fact, ref char uplo, ref lapackint n, ref lapackint nrhs, _cfloat *a, ref lapackint lda, _cfloat *af, ref lapackint ldaf, ref char equed, float *s, _cfloat *b, ref lapackint ldb, _cfloat *x, ref lapackint ldx, ref float rcond, float *ferr, float *berr, _cfloat *work, float *rwork, ref lapackint info);
479 void zposvx_(ref char fact, ref char uplo, ref lapackint n, ref lapackint nrhs, _cdouble *a, ref lapackint lda, _cdouble *af, ref lapackint ldaf, ref char equed, double *s, _cdouble *b, ref lapackint ldb, _cdouble *x, ref lapackint ldx, ref double rcond, double *ferr, double *berr, _cdouble *work, double *rwork, ref lapackint info);
480 
481 /// Solves a symmetric positive definite system of linear
482 /// equations AX=B, where A is held in packed storage, and provides
483 /// an estimate of the condition number and error bounds on the
484 /// solution.
485 void sppsvx_(ref char fact, ref char uplo, ref lapackint n, ref lapackint nrhs, float *ap, float *afp, ref char equed, float *s, float *b, ref lapackint ldb, float *x, ref lapackint ldx, ref float rcond, float *ferr, float *berr, float *work, lapackint *iwork, ref lapackint info);
486 void dppsvx_(ref char fact, ref char uplo, ref lapackint n, ref lapackint nrhs, double *ap, double *afp, ref char equed, double *s, double *b, ref lapackint ldb, double *x, ref lapackint ldx, ref double rcond, double *ferr, double *berr, double *work, lapackint *iwork, ref lapackint info);
487 void cppsvx_(ref char fact, ref char uplo, ref lapackint n, ref lapackint nrhs, _cfloat *ap, _cfloat *afp, ref char equed, float *s, _cfloat *b, ref lapackint ldb, _cfloat *x, ref lapackint ldx, ref float rcond, float *ferr, float *berr, _cfloat *work, float *rwork, ref lapackint info);
488 void zppsvx_(ref char fact, ref char uplo, ref lapackint n, ref lapackint nrhs, _cdouble *ap, _cdouble *afp, ref char equed, double *s, _cdouble *b, ref lapackint ldb, _cdouble *x, ref lapackint ldx, ref double rcond, double *ferr, double *berr, _cdouble *work, double *rwork, ref lapackint info);
489 
490 /// Solves a symmetric positive definite banded system
491 /// of linear equations AX=B, and provides an estimate of the condition
492 /// number and error bounds on the solution.
493 void spbsvx_(ref char fact, ref char uplo, ref lapackint n, lapackint *kd, ref lapackint nrhs, float *ab, ref lapackint ldab, float *afb, ref lapackint ldafb, ref char equed, float *s, float *b, ref lapackint ldb, float *x, ref lapackint ldx, ref float rcond, float *ferr, float *berr, float *work, lapackint *iwork, ref lapackint info);
494 void dpbsvx_(ref char fact, ref char uplo, ref lapackint n, lapackint *kd, ref lapackint nrhs, double *ab, ref lapackint ldab, double *afb, ref lapackint ldafb, ref char equed, double *s, double *b, ref lapackint ldb, double *x, ref lapackint ldx, ref double rcond, double *ferr, double *berr, double *work, lapackint *iwork, ref lapackint info);
495 void cpbsvx_(ref char fact, ref char uplo, ref lapackint n, lapackint *kd, ref lapackint nrhs, _cfloat *ab, ref lapackint ldab, _cfloat *afb, ref lapackint ldafb, ref char equed, float *s, _cfloat *b, ref lapackint ldb, _cfloat *x, ref lapackint ldx, ref float rcond, float *ferr, float *berr, _cfloat *work, float *rwork, ref lapackint info);
496 void zpbsvx_(ref char fact, ref char uplo, ref lapackint n, lapackint *kd, ref lapackint nrhs, _cdouble *ab, ref lapackint ldab, _cdouble *afb, ref lapackint ldafb, ref char equed, double *s, _cdouble *b, ref lapackint ldb, _cdouble *x, ref lapackint ldx, ref double rcond, double *ferr, double *berr, _cdouble *work, double *rwork, ref lapackint info);
497 
498 /// Solves a symmetric positive definite tridiagonal
499 /// system of linear equations AX=B, and provides an estimate of
500 /// the condition number and error bounds on the solution.
501 void sptsvx_(ref char fact, ref lapackint n, ref lapackint nrhs, float *d, float *e, float *df, float *ef, float *b, ref lapackint ldb, float *x, ref lapackint ldx, ref float rcond, float *ferr, float *berr, float *work, ref lapackint info);
502 void dptsvx_(ref char fact, ref lapackint n, ref lapackint nrhs, double *d, double *e, double *df, double *ef, double *b, ref lapackint ldb, double *x, ref lapackint ldx, ref double rcond, double *ferr, double *berr, double *work, ref lapackint info);
503 void cptsvx_(ref char fact, ref lapackint n, ref lapackint nrhs, float *d, _cfloat *e, float *df, _cfloat *ef, _cfloat *b, ref lapackint ldb, _cfloat *x, ref lapackint ldx, ref float rcond, float *ferr, float *berr, _cfloat *work, float *rwork, ref lapackint info);
504 void zptsvx_(ref char fact, ref lapackint n, ref lapackint nrhs, double *d, _cdouble *e, double *df, _cdouble *ef, _cdouble *b, ref lapackint ldb, _cdouble *x, ref lapackint ldx, ref double rcond, double *ferr, double *berr, _cdouble *work, double *rwork, ref lapackint info);
505 
506 /// Solves a real symmetric
507 /// indefinite system  of linear equations AX=B, and provides an
508 /// estimate of the condition number and error bounds on the solution.
509 void ssysvx_(ref char fact, ref char uplo, ref lapackint n, ref lapackint nrhs, float *a, ref lapackint lda, float *af, ref lapackint ldaf, lapackint *ipiv, float *b, ref lapackint ldb, float *x, ref lapackint ldx, ref float rcond, float *ferr, float *berr, float *work, ref lapackint lwork, lapackint *iwork, ref lapackint info);
510 void dsysvx_(ref char fact, ref char uplo, ref lapackint n, ref lapackint nrhs, double *a, ref lapackint lda, double *af, ref lapackint ldaf, lapackint *ipiv, double *b, ref lapackint ldb, double *x, ref lapackint ldx, ref double rcond, double *ferr, double *berr, double *work, ref lapackint lwork, lapackint *iwork, ref lapackint info);
511 void csysvx_(ref char fact, ref char uplo, ref lapackint n, ref lapackint nrhs, _cfloat *a, ref lapackint lda, _cfloat *af, ref lapackint ldaf, lapackint *ipiv, _cfloat *b, ref lapackint ldb, _cfloat *x, ref lapackint ldx, ref float rcond, float *ferr, float *berr, _cfloat *work, ref lapackint lwork, float *rwork, ref lapackint info);
512 void zsysvx_(ref char fact, ref char uplo, ref lapackint n, ref lapackint nrhs, _cdouble *a, ref lapackint lda, _cdouble *af, ref lapackint ldaf, lapackint *ipiv, _cdouble *b, ref lapackint ldb, _cdouble *x, ref lapackint ldx, ref double rcond, double *ferr, double *berr, _cdouble *work, ref lapackint lwork, double *rwork, ref lapackint info);
513 
514 /// Solves a complex Hermitian
515 /// indefinite system  of linear equations AX=B, and provides an
516 /// estimate of the condition number and error bounds on the solution.
517 void chesvx_(ref char fact, ref char uplo, ref lapackint n, ref lapackint nrhs, _cfloat *a, ref lapackint lda, _cfloat *af, ref lapackint ldaf, lapackint *ipiv, _cfloat *b, ref lapackint ldb, _cfloat *x, ref lapackint ldx, ref float rcond, float *ferr, float *berr, _cfloat *work, ref lapackint lwork, float *rwork, ref lapackint info);
518 void zhesvx_(ref char fact, ref char uplo, ref lapackint n, ref lapackint nrhs, _cdouble *a, ref lapackint lda, _cdouble *af, ref lapackint ldaf, lapackint *ipiv, _cdouble *b, ref lapackint ldb, _cdouble *x, ref lapackint ldx, ref double rcond, double *ferr, double *berr, _cdouble *work, ref lapackint lwork, double *rwork, ref lapackint info);
519 
520 /// Solves a real symmetric
521 /// indefinite system of linear equations AX=B, where A is held
522 /// in packed storage, and provides an estimate of the condition
523 /// number and error bounds on the solution.
524 void sspsvx_(ref char fact, ref char uplo, ref lapackint n, ref lapackint nrhs, float *ap, float *afp, lapackint *ipiv, float *b, ref lapackint ldb, float *x, ref lapackint ldx, ref float rcond, float *ferr, float *berr, float *work, lapackint *iwork, ref lapackint info);
525 void dspsvx_(ref char fact, ref char uplo, ref lapackint n, ref lapackint nrhs, double *ap, double *afp, lapackint *ipiv, double *b, ref lapackint ldb, double *x, ref lapackint ldx, ref double rcond, double *ferr, double *berr, double *work, lapackint *iwork, ref lapackint info);
526 void cspsvx_(ref char fact, ref char uplo, ref lapackint n, ref lapackint nrhs, _cfloat *ap, _cfloat *afp, lapackint *ipiv, _cfloat *b, ref lapackint ldb, _cfloat *x, ref lapackint ldx, ref float rcond, float *ferr, float *berr, _cfloat *work, float *rwork, ref lapackint info);
527 void zspsvx_(ref char fact, ref char uplo, ref lapackint n, ref lapackint nrhs, _cdouble *ap, _cdouble *afp, lapackint *ipiv, _cdouble *b, ref lapackint ldb, _cdouble *x, ref lapackint ldx, ref double rcond, double *ferr, double *berr, _cdouble *work, double *rwork, ref lapackint info);
528 
529 /// Solves a complex Hermitian
530 /// indefinite system of linear equations AX=B, where A is held
531 /// in packed storage, and provides an estimate of the condition
532 /// number and error bounds on the solution.
533 void chpsvx_(ref char fact, ref char uplo, ref lapackint n, ref lapackint nrhs, _cfloat *ap, _cfloat *afp, lapackint *ipiv, _cfloat *b, ref lapackint ldb, _cfloat *x, ref lapackint ldx, ref float rcond, float *ferr, float *berr, _cfloat *work, float *rwork, ref lapackint info);
534 void zhpsvx_(ref char fact, ref char uplo, ref lapackint n, ref lapackint nrhs, _cdouble *ap, _cdouble *afp, lapackint *ipiv, _cdouble *b, ref lapackint ldb, _cdouble *x, ref lapackint ldx, ref double rcond, double *ferr, double *berr, _cdouble *work, double *rwork, ref lapackint info);
535 
536 /// Computes the minimum norm least squares solution to an over-
537 /// or under-determined system of linear equations A X=B, using a
538 /// complete orthogonal factorization of A.
539 void sgelsx_(ref lapackint m, ref lapackint n, ref lapackint nrhs, float *a, ref lapackint lda, float *b, ref lapackint ldb, lapackint *jpvt, ref float rcond, ref lapackint rank, float *work, ref lapackint info);
540 void dgelsx_(ref lapackint m, ref lapackint n, ref lapackint nrhs, double *a, ref lapackint lda, double *b, ref lapackint ldb, lapackint *jpvt, ref double rcond, ref lapackint rank, double *work, ref lapackint info);
541 void cgelsx_(ref lapackint m, ref lapackint n, ref lapackint nrhs, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, lapackint *jpvt, ref float rcond, ref lapackint rank, _cfloat *work, float *rwork, ref lapackint info);
542 void zgelsx_(ref lapackint m, ref lapackint n, ref lapackint nrhs, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, lapackint *jpvt, ref double rcond, ref lapackint rank, _cdouble *work, double *rwork, ref lapackint info);
543 
544 /// Computes the minimum norm least squares solution to an over-
545 /// or under-determined system of linear equations A X=B, using a
546 /// complete orthogonal factorization of A.
547 void sgelsy_(ref lapackint m, ref lapackint n, ref lapackint nrhs, float *a, ref lapackint lda, float *b, ref lapackint ldb, lapackint *jpvt, ref float rcond, ref lapackint rank, float *work, ref lapackint lwork, ref lapackint info);
548 void dgelsy_(ref lapackint m, ref lapackint n, ref lapackint nrhs, double *a, ref lapackint lda, double *b, ref lapackint ldb, lapackint *jpvt, ref double rcond, ref lapackint rank, double *work, ref lapackint lwork, ref lapackint info);
549 void cgelsy_(ref lapackint m, ref lapackint n, ref lapackint nrhs, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, lapackint *jpvt, ref float rcond, ref lapackint rank, _cfloat *work, ref lapackint lwork, float *rwork, ref lapackint info);
550 void zgelsy_(ref lapackint m, ref lapackint n, ref lapackint nrhs, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, lapackint *jpvt, ref double rcond, ref lapackint rank, _cdouble *work, ref lapackint lwork, double *rwork, ref lapackint info);
551 
552 /// Computes the minimum norm least squares solution to an over-
553 /// or under-determined system of linear equations A X=B,  using
554 /// the singular value decomposition of A.
555 void sgelss_(ref lapackint m, ref lapackint n, ref lapackint nrhs, float *a, ref lapackint lda, float *b, ref lapackint ldb, float *s, ref float rcond, ref lapackint rank, float *work, ref lapackint lwork, ref lapackint info);
556 void dgelss_(ref lapackint m, ref lapackint n, ref lapackint nrhs, double *a, ref lapackint lda, double *b, ref lapackint ldb, double *s, ref double rcond, ref lapackint rank, double *work, ref lapackint lwork, ref lapackint info);
557 void cgelss_(ref lapackint m, ref lapackint n, ref lapackint nrhs, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, float *s, ref float rcond, ref lapackint rank, _cfloat *work, ref lapackint lwork, float *rwork, ref lapackint info);
558 void zgelss_(ref lapackint m, ref lapackint n, ref lapackint nrhs, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, double *s, ref double rcond, ref lapackint rank, _cdouble *work, ref lapackint lwork, double *rwork, ref lapackint info);
559 
560 /// Computes selected eigenvalues and eigenvectors of a symmetric matrix.
561 void ssyevx_(ref char jobz, ref char range, ref char uplo, ref lapackint n, float *a, ref lapackint lda, float *vl, float *vu, lapackint *il, lapackint *iu, ref float abstol, ref lapackint m, float *w, float *z, ref lapackint ldz, float *work, ref lapackint lwork, lapackint *iwork, lapackint *ifail, ref lapackint info);
562 void dsyevx_(ref char jobz, ref char range, ref char uplo, ref lapackint n, double *a, ref lapackint lda, double *vl, double *vu, lapackint *il, lapackint *iu, ref double abstol, ref lapackint m, double *w, double *z, ref lapackint ldz, double *work, ref lapackint lwork, lapackint *iwork, lapackint *ifail, ref lapackint info);
563 
564 /// Computes selected eigenvalues and eigenvectors of a Hermitian matrix.
565 void cheevx_(ref char jobz, ref char range, ref char uplo, ref lapackint n, _cfloat *a, ref lapackint lda, float *vl, float *vu, lapackint *il, lapackint *iu, ref float abstol, ref lapackint m, float *w, _cfloat *z, ref lapackint ldz, _cfloat *work, ref lapackint lwork, float *rwork, lapackint *iwork, lapackint *ifail, ref lapackint info);
566 void zheevx_(ref char jobz, ref char range, ref char uplo, ref lapackint n, _cdouble *a, ref lapackint lda, double *vl, double *vu, lapackint *il, lapackint *iu, ref double abstol, ref lapackint m, double *w, _cdouble *z, ref lapackint ldz, _cdouble *work, ref lapackint lwork, double *rwork, lapackint *iwork, lapackint *ifail, ref lapackint info);
567 
568 /// Computes selected eigenvalues, and optionally, eigenvectors of a real
569 /// symmetric matrix.  Eigenvalues are computed by the dqds
570 /// algorithm, and eigenvectors are computed from various "good" LDL^T
571 /// representations (also known as Relatively Robust Representations).
572 void ssyevr_(ref char jobz, ref char range, ref char uplo, ref lapackint n, float *a, ref lapackint lda, float *vl, float *vu, lapackint *il, lapackint *iu, ref float abstol, ref lapackint m, float *w, float *z, ref lapackint ldz, lapackint *isuppz, float *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
573 void dsyevr_(ref char jobz, ref char range, ref char uplo, ref lapackint n, double *a, ref lapackint lda, double *vl, double *vu, lapackint *il, lapackint *iu, ref double abstol, ref lapackint m, double *w, double *z, ref lapackint ldz, lapackint *isuppz, double *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
574 
575 /// Computes selected eigenvalues, and optionally, eigenvectors of a complex
576 /// Hermitian matrix.  Eigenvalues are computed by the dqds
577 /// algorithm, and eigenvectors are computed from various "good" LDL^T
578 /// representations (also known as Relatively Robust Representations).
579 void cheevr_(ref char jobz, ref char range, ref char uplo, ref lapackint n, _cfloat *a, ref lapackint lda, float *vl, float *vu, lapackint *il, lapackint *iu, ref float abstol, ref lapackint m, float *w, _cfloat *z, ref lapackint ldz, lapackint *isuppz, _cfloat *work, ref lapackint lwork, float *rwork, lapackint *lrwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
580 void zheevr_(ref char jobz, ref char range, ref char uplo, ref lapackint n, _cdouble *a, ref lapackint lda, double *vl, double *vu, lapackint *il, lapackint *iu, ref double abstol, ref lapackint m, double *w, _cdouble *z, ref lapackint ldz, lapackint *isuppz, _cdouble *work, ref lapackint lwork, double *rwork, lapackint *lrwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
581 
582 
583 /// Computes selected eigenvalues, and optionally, the eigenvectors of
584 /// a generalized symmetric-definite generalized eigenproblem,
585 /// Ax= lambda Bx,  ABx= lambda x,  or BAx= lambda x.
586 void ssygvx_(lapackint *itype, ref char jobz, ref char range, ref char uplo, ref lapackint n, float *a, ref lapackint lda, float *b, ref lapackint ldb, float *vl, float *vu, lapackint *il, lapackint *iu, ref float abstol, ref lapackint m, float *w, float *z, ref lapackint ldz, float *work, ref lapackint lwork, lapackint *iwork, lapackint *ifail, ref lapackint info);
587 void dsygvx_(lapackint *itype, ref char jobz, ref char range, ref char uplo, ref lapackint n, double *a, ref lapackint lda, double *b, ref lapackint ldb, double *vl, double *vu, lapackint *il, lapackint *iu, ref double abstol, ref lapackint m, double *w, double *z, ref lapackint ldz, double *work, ref lapackint lwork, lapackint *iwork, lapackint *ifail, ref lapackint info);
588 
589 /// Computes selected eigenvalues, and optionally, the eigenvectors of
590 /// a generalized Hermitian-definite generalized eigenproblem,
591 /// Ax= lambda Bx,  ABx= lambda x,  or BAx= lambda x.
592 void chegvx_(lapackint *itype, ref char jobz, ref char range, ref char uplo, ref lapackint n, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, float *vl, float *vu, lapackint *il, lapackint *iu, ref float abstol, ref lapackint m, float *w, _cfloat *z, ref lapackint ldz, _cfloat *work, ref lapackint lwork, float *rwork, lapackint *iwork, lapackint *ifail, ref lapackint info);
593 void zhegvx_(lapackint *itype, ref char jobz, ref char range, ref char uplo, ref lapackint n, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, double *vl, double *vu, lapackint *il, lapackint *iu, ref double abstol, ref lapackint m, double *w, _cdouble *z, ref lapackint ldz, _cdouble *work, ref lapackint lwork, double *rwork, lapackint *iwork, lapackint *ifail, ref lapackint info);
594 
595 /// Computes selected eigenvalues and eigenvectors of a
596 /// symmetric matrix in packed storage.
597 void sspevx_(ref char jobz, ref char range, ref char uplo, ref lapackint n, float *ap, float *vl, float *vu, lapackint *il, lapackint *iu, ref float abstol, ref lapackint m, float *w, float *z, ref lapackint ldz, float *work, lapackint *iwork, lapackint *ifail, ref lapackint info);
598 void dspevx_(ref char jobz, ref char range, ref char uplo, ref lapackint n, double *ap, double *vl, double *vu, lapackint *il, lapackint *iu, ref double abstol, ref lapackint m, double *w, double *z, ref lapackint ldz, double *work, lapackint *iwork, lapackint *ifail, ref lapackint info);
599 
600 /// Computes selected eigenvalues and eigenvectors of a
601 /// Hermitian matrix in packed storage.
602 void chpevx_(ref char jobz, ref char range, ref char uplo, ref lapackint n, _cfloat *ap, float *vl, float *vu, lapackint *il, lapackint *iu, ref float abstol, ref lapackint m, float *w, _cfloat *z, ref lapackint ldz, _cfloat *work, float *rwork, lapackint *iwork, lapackint *ifail, ref lapackint info);
603 void zhpevx_(ref char jobz, ref char range, ref char uplo, ref lapackint n, _cdouble *ap, double *vl, double *vu, lapackint *il, lapackint *iu, ref double abstol, ref lapackint m, double *w, _cdouble *z, ref lapackint ldz, _cdouble *work, double *rwork, lapackint *iwork, lapackint *ifail, ref lapackint info);
604 
605 /// Computes selected eigenvalues, and optionally, eigenvectors of
606 /// a generalized symmetric-definite generalized eigenproblem,  Ax= lambda
607 /// Bx,  ABx= lambda x,  or BAx= lambda x, where A and B are in packed
608 /// storage.
609 void sspgvx_(lapackint *itype, ref char jobz, ref char range, ref char uplo, ref lapackint n, float *ap, float *bp, float *vl, float *vu, lapackint *il, lapackint *iu, ref float abstol, ref lapackint m, float *w, float *z, ref lapackint ldz, float *work, lapackint *iwork, lapackint *ifail, ref lapackint info);
610 void dspgvx_(lapackint *itype, ref char jobz, ref char range, ref char uplo, ref lapackint n, double *ap, double *bp, double *vl, double *vu, lapackint *il, lapackint *iu, ref double abstol, ref lapackint m, double *w, double *z, ref lapackint ldz, double *work, lapackint *iwork, lapackint *ifail, ref lapackint info);
611 
612 /// Computes selected eigenvalues, and optionally, the eigenvectors of
613 /// a generalized Hermitian-definite generalized eigenproblem,  Ax= lambda
614 /// Bx,  ABx= lambda x,  or BAx= lambda x, where A and B are in packed
615 /// storage.
616 void chpgvx_(lapackint *itype, ref char jobz, ref char range, ref char uplo, ref lapackint n, _cfloat *ap, _cfloat *bp, float *vl, float *vu, lapackint *il, lapackint *iu, ref float abstol, ref lapackint m, float *w, _cfloat *z, ref lapackint ldz, _cfloat *work, float *rwork, lapackint *iwork, lapackint *ifail, ref lapackint info);
617 void zhpgvx_(lapackint *itype, ref char jobz, ref char range, ref char uplo, ref lapackint n, _cdouble *ap, _cdouble *bp, double *vl, double *vu, lapackint *il, lapackint *iu, ref double abstol, ref lapackint m, double *w, _cdouble *z, ref lapackint ldz, _cdouble *work, double *rwork, lapackint *iwork, lapackint *ifail, ref lapackint info);
618 
619 /// Computes selected eigenvalues and eigenvectors of a
620 /// symmetric band matrix.
621 void ssbevx_(ref char jobz, ref char range, ref char uplo, ref lapackint n, lapackint *kd, float *ab, ref lapackint ldab, float *q, ref lapackint ldq, float *vl, float *vu, lapackint *il, lapackint *iu, ref float abstol, ref lapackint m, float *w, float *z, ref lapackint ldz, float *work, lapackint *iwork, lapackint *ifail, ref lapackint info);
622 void dsbevx_(ref char jobz, ref char range, ref char uplo, ref lapackint n, lapackint *kd, double *ab, ref lapackint ldab, double *q, ref lapackint ldq, double *vl, double *vu, lapackint *il, lapackint *iu, ref double abstol, ref lapackint m, double *w, double *z, ref lapackint ldz, double *work, lapackint *iwork, lapackint *ifail, ref lapackint info);
623 
624 /// Computes selected eigenvalues and eigenvectors of a
625 /// Hermitian band matrix.
626 void chbevx_(ref char jobz, ref char range, ref char uplo, ref lapackint n, lapackint *kd, _cfloat *ab, ref lapackint ldab, _cfloat *q, ref lapackint ldq, float *vl, float *vu, lapackint *il, lapackint *iu, ref float abstol, ref lapackint m, float *w, _cfloat *z, ref lapackint ldz, _cfloat *work, float *rwork, lapackint *iwork, lapackint *ifail, ref lapackint info);
627 void zhbevx_(ref char jobz, ref char range, ref char uplo, ref lapackint n, lapackint *kd, _cdouble *ab, ref lapackint ldab, _cdouble *q, ref lapackint ldq, double *vl, double *vu, lapackint *il, lapackint *iu, ref double abstol, ref lapackint m, double *w, _cdouble *z, ref lapackint ldz, _cdouble *work, double *rwork, lapackint *iwork, lapackint *ifail, ref lapackint info);
628 
629 /// Computes selected eigenvalues, and optionally, the eigenvectors
630 /// of a real generalized symmetric-definite banded eigenproblem, of
631 /// the form A*x=(lambda)*B*x.  A and B are assumed to be symmetric
632 /// and banded, and B is also positive definite.
633 void ssbgvx_(ref char jobz, ref char range, ref char uplo, ref lapackint n, lapackint *ka, lapackint *kb, float *ab, ref lapackint ldab, float *bb, ref lapackint ldbb, float *q, ref lapackint ldq, float *vl, float *vu, lapackint *il, lapackint *iu, ref float abstol, ref lapackint m, float *w, float *z, ref lapackint ldz, float *work, lapackint *iwork, lapackint *ifail, ref lapackint info);
634 void dsbgvx_(ref char jobz, ref char range, ref char uplo, ref lapackint n, lapackint *ka, lapackint *kb, double *ab, ref lapackint ldab, double *bb, ref lapackint ldbb, double *q, ref lapackint ldq, double *vl, double *vu, lapackint *il, lapackint *iu, ref double abstol, ref lapackint m, double *w, double *z, ref lapackint ldz, double *work, lapackint *iwork, lapackint *ifail, ref lapackint info);
635 
636 /// Computes selected eigenvalues, and optionally, the eigenvectors
637 /// of a complex generalized Hermitian-definite banded eigenproblem, of
638 /// the form A*x=(lambda)*B*x.  A and B are assumed to be Hermitian
639 /// and banded, and B is also positive definite.
640 void chbgvx_(ref char jobz, ref char range, ref char uplo, ref lapackint n, lapackint *ka, lapackint *kb, _cfloat *ab, ref lapackint ldab, _cfloat *bb, ref lapackint ldbb, _cfloat *q, ref lapackint ldq, float *vl, float *vu, lapackint *il, lapackint *iu, ref float abstol, ref lapackint m, float *w, _cfloat *z, ref lapackint ldz, _cfloat *work, float *rwork, lapackint *iwork, lapackint *ifail, ref lapackint info);
641 void zhbgvx_(ref char jobz, ref char range, ref char uplo, ref lapackint n, lapackint *ka, lapackint *kb, _cdouble *ab, ref lapackint ldab, _cdouble *bb, ref lapackint ldbb, _cdouble *q, ref lapackint ldq, double *vl, double *vu, lapackint *il, lapackint *iu, ref double abstol, ref lapackint m, double *w, _cdouble *z, ref lapackint ldz, _cdouble *work, double *rwork, lapackint *iwork, lapackint *ifail, ref lapackint info);
642 
643 /// Computes selected eigenvalues and eigenvectors of a real
644 /// symmetric tridiagonal matrix.
645 void sstevx_(ref char jobz, ref char range, ref lapackint n, float *d, float *e, float *vl, float *vu, lapackint *il, lapackint *iu, ref float abstol, ref lapackint m, float *w, float *z, ref lapackint ldz, float *work, lapackint *iwork, lapackint *ifail, ref lapackint info);
646 void dstevx_(ref char jobz, ref char range, ref lapackint n, double *d, double *e, double *vl, double *vu, lapackint *il, lapackint *iu, ref double abstol, ref lapackint m, double *w, double *z, ref lapackint ldz, double *work, lapackint *iwork, lapackint *ifail, ref lapackint info);
647 
648 /// Computes selected eigenvalues, and optionally, eigenvectors of a real
649 /// symmetric tridiagonal matrix.  Eigenvalues are computed by the dqds
650 /// algorithm, and eigenvectors are computed from various "good" LDL^T
651 /// representations (also known as Relatively Robust Representations).
652 void sstevr_(ref char jobz, ref char range, ref lapackint n, float *d, float *e, float *vl, float *vu, lapackint *il, lapackint *iu, ref float abstol, ref lapackint m, float *w, float *z, ref lapackint ldz, lapackint *isuppz, float *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
653 void dstevr_(ref char jobz, ref char range, ref lapackint n, double *d, double *e, double *vl, double *vu, lapackint *il, lapackint *iu, ref double abstol, ref lapackint m, double *w, double *z, ref lapackint ldz, lapackint *isuppz, double *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
654 
655 /// Computes the eigenvalues and Schur factorization of a general
656 /// matrix, orders the factorization so that selected eigenvalues
657 /// are at the top left of the Schur form, and computes reciprocal
658 /// condition numbers for the average of the selected eigenvalues,
659 /// and for the associated right invariant subspace.
660 void sgeesx_(ref char jobvs, ref char sort, FCB_SGEESX_SELECT select, ref char sense, ref lapackint n, float *a, ref lapackint lda, lapackint *sdim, float *wr, float *wi, float *vs, ref lapackint ldvs, ref float rconde, ref float rcondv, float *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, lapackint *bwork, ref lapackint info);
661 void dgeesx_(ref char jobvs, ref char sort, FCB_DGEESX_SELECT select, ref char sense, ref lapackint n, double *a, ref lapackint lda, lapackint *sdim, double *wr, double *wi, double *vs, ref lapackint ldvs, ref double rconde, ref double rcondv, double *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, lapackint *bwork, ref lapackint info);
662 void cgeesx_(ref char jobvs, ref char sort, FCB_CGEESX_SELECT select, ref char sense, ref lapackint n, _cfloat *a, ref lapackint lda, lapackint *sdim, _cfloat *w, _cfloat *vs, ref lapackint ldvs, ref float rconde, ref float rcondv, _cfloat *work, ref lapackint lwork, float *rwork, lapackint *bwork, ref lapackint info);
663 void zgeesx_(ref char jobvs, ref char sort, FCB_ZGEESX_SELECT select, ref char sense, ref lapackint n, _cdouble *a, ref lapackint lda, lapackint *sdim, _cdouble *w, _cdouble *vs, ref lapackint ldvs, ref double rconde, ref double rcondv, _cdouble *work, ref lapackint lwork, double *rwork, lapackint *bwork, ref lapackint info);
664 
665 /// Computes the generalized eigenvalues, the real Schur form, and,
666 /// optionally, the left and/or right matrices of Schur vectors.
667 void sggesx_(ref char jobvsl, ref char jobvsr, ref char sort, FCB_SGGESX_SELCTG selctg, ref char sense, ref lapackint n, float *a, ref lapackint lda, float *b, ref lapackint ldb, lapackint *sdim, float *alphar, float *alphai, float *betav, float *vsl, ref lapackint ldvsl, float *vsr, ref lapackint ldvsr, ref float rconde, ref float rcondv, float *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, lapackint *bwork, ref lapackint info);
668 void dggesx_(ref char jobvsl, ref char jobvsr, ref char sort, FCB_DGGESX_DELCTG delctg, ref char sense, ref lapackint n, double *a, ref lapackint lda, double *b, ref lapackint ldb, lapackint *sdim, double *alphar, double *alphai, double *betav, double *vsl, ref lapackint ldvsl, double *vsr, ref lapackint ldvsr, ref double rconde, ref double rcondv, double *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, lapackint *bwork, ref lapackint info);
669 void cggesx_(ref char jobvsl, ref char jobvsr, ref char sort, FCB_CGGESX_SELCTG selctg, ref char sense, ref lapackint n, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, lapackint *sdim, _cfloat *alphav, _cfloat *betav, _cfloat *vsl, ref lapackint ldvsl, _cfloat *vsr, ref lapackint ldvsr, ref float rconde, ref float rcondv, _cfloat *work, ref lapackint lwork, float *rwork, lapackint *iwork, lapackint *liwork, lapackint *bwork, ref lapackint info);
670 void zggesx_(ref char jobvsl, ref char jobvsr, ref char sort, FCB_ZGGESX_DELCTG delctg, ref char sense, ref lapackint n, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, lapackint *sdim, _cdouble *alphav, _cdouble *betav, _cdouble *vsl, ref lapackint ldvsl, _cdouble *vsr, ref lapackint ldvsr, ref double rconde, ref double rcondv, _cdouble *work, ref lapackint lwork, double *rwork, lapackint *iwork, lapackint *liwork, lapackint *bwork, ref lapackint info);
671 
672 /// Computes the eigenvalues and left and right eigenvectors of
673 /// a general matrix,  with preliminary balancing of the matrix,
674 /// and computes reciprocal condition numbers for the eigenvalues
675 /// and right eigenvectors.
676 void sgeevx_(ref char balanc, ref char jobvl, ref char jobvr, ref char sense, ref lapackint n, float *a, ref lapackint lda, float *wr, float *wi, float *vl, ref lapackint ldvl, float *vr, ref lapackint ldvr, ref lapackint ilo, ref lapackint ihi, float *scale, ref float abnrm, ref float rconde, ref float rcondv, float *work, ref lapackint lwork, lapackint *iwork, ref lapackint info);
677 void dgeevx_(ref char balanc, ref char jobvl, ref char jobvr, ref char sense, ref lapackint n, double *a, ref lapackint lda, double *wr, double *wi, double *vl, ref lapackint ldvl, double *vr, ref lapackint ldvr, ref lapackint ilo, ref lapackint ihi, double *scale, ref double abnrm, ref double rconde, ref double rcondv, double *work, ref lapackint lwork, lapackint *iwork, ref lapackint info);
678 void cgeevx_(ref char balanc, ref char jobvl, ref char jobvr, ref char sense, ref lapackint n, _cfloat *a, ref lapackint lda, _cfloat *w, _cfloat *vl, ref lapackint ldvl, _cfloat *vr, ref lapackint ldvr, ref lapackint ilo, ref lapackint ihi, float *scale, ref float abnrm, ref float rconde, ref float rcondv, _cfloat *work, ref lapackint lwork, float *rwork, ref lapackint info);
679 void zgeevx_(ref char balanc, ref char jobvl, ref char jobvr, ref char sense, ref lapackint n, _cdouble *a, ref lapackint lda, _cdouble *w, _cdouble *vl, ref lapackint ldvl, _cdouble *vr, ref lapackint ldvr, ref lapackint ilo, ref lapackint ihi, double *scale, ref double abnrm, ref double rconde, ref double rcondv, _cdouble *work, ref lapackint lwork, double *rwork, ref lapackint info);
680 
681 /// Computes the generalized eigenvalues, and optionally, the left
682 /// and/or right generalized eigenvectors.
683 void sggevx_(ref char balanc, ref char jobvl, ref char jobvr, ref char sense, ref lapackint n, float *a, ref lapackint lda, float *b, ref lapackint ldb, float *alphar, float *alphai, float *betav, float *vl, ref lapackint ldvl, float *vr, ref lapackint ldvr, ref lapackint ilo, ref lapackint ihi, float *lscale, float *rscale, ref float abnrm, ref float bbnrm, ref float rconde, ref float rcondv, float *work, ref lapackint lwork, lapackint *iwork, lapackint *bwork, ref lapackint info);
684 void dggevx_(ref char balanc, ref char jobvl, ref char jobvr, ref char sense, ref lapackint n, double *a, ref lapackint lda, double *b, ref lapackint ldb, double *alphar, double *alphai, double *betav, double *vl, ref lapackint ldvl, double *vr, ref lapackint ldvr, ref lapackint ilo, ref lapackint ihi, double *lscale, double *rscale, ref double abnrm, ref double bbnrm, ref double rconde, ref double rcondv, double *work, ref lapackint lwork, lapackint *iwork, lapackint *bwork, ref lapackint info);
685 void cggevx_(ref char balanc, ref char jobvl, ref char jobvr, ref char sense, ref lapackint n, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, _cfloat *alphav, _cfloat *betav, _cfloat *vl, ref lapackint ldvl, _cfloat *vr, ref lapackint ldvr, ref lapackint ilo, ref lapackint ihi, float *lscale, float *rscale, ref float abnrm, ref float bbnrm, ref float rconde, ref float rcondv, _cfloat *work, ref lapackint lwork, float *rwork, lapackint *iwork, lapackint *bwork, ref lapackint info);
686 void zggevx_(ref char balanc, ref char jobvl, ref char jobvr, ref char sense, ref lapackint n, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, _cdouble *alphav, _cdouble *betav, _cdouble *vl, ref lapackint ldvl, _cdouble *vr, ref lapackint ldvr, ref lapackint ilo, ref lapackint ihi, double *lscale, double *rscale, ref double abnrm, ref double bbnrm, ref double rconde, ref double rcondv, _cdouble *work, ref lapackint lwork, double *rwork, lapackint *iwork, lapackint *bwork, ref lapackint info);
687 
688 
689 
690 //----------------------------------------
691 //    ---- COMPUTATIONAL routines ----
692 //----------------------------------------
693 
694 
695 /// Computes the singular value decomposition (SVD) of a real bidiagonal
696 /// matrix, using a divide and conquer method.
697 void sbdsdc_(ref char uplo, ref char compq, ref lapackint n, float *d, float *e, float *u, ref lapackint ldu, float *vt, ref lapackint ldvt, float *q, lapackint *iq, float *work, lapackint *iwork, ref lapackint info);
698 void dbdsdc_(ref char uplo, ref char compq, ref lapackint n, double *d, double *e, double *u, ref lapackint ldu, double *vt, ref lapackint ldvt, double *q, lapackint *iq, double *work, lapackint *iwork, ref lapackint info);
699 
700 /// Computes the singular value decomposition (SVD) of a real bidiagonal
701 /// matrix, using the bidiagonal QR algorithm.
702 void sbdsqr_(ref char uplo, ref lapackint n, ref lapackint ncvt, ref lapackint nru, ref lapackint ncc, float *d, float *e, float *vt, ref lapackint ldvt, float *u, ref lapackint ldu, float *c, ref lapackint ldc, float *work, ref lapackint info);
703 void dbdsqr_(ref char uplo, ref lapackint n, ref lapackint ncvt, ref lapackint nru, ref lapackint ncc, double *d, double *e, double *vt, ref lapackint ldvt, double *u, ref lapackint ldu, double *c, ref lapackint ldc, double *work, ref lapackint info);
704 void cbdsqr_(ref char uplo, ref lapackint n, ref lapackint ncvt, ref lapackint nru, ref lapackint ncc, float *d, float *e, _cfloat *vt, ref lapackint ldvt, _cfloat *u, ref lapackint ldu, _cfloat *c, ref lapackint ldc, float *rwork, ref lapackint info);
705 void zbdsqr_(ref char uplo, ref lapackint n, ref lapackint ncvt, ref lapackint nru, ref lapackint ncc, double *d, double *e, _cdouble *vt, ref lapackint ldvt, _cdouble *u, ref lapackint ldu, _cdouble *c, ref lapackint ldc, double *rwork, ref lapackint info);
706 
707 /// Computes the reciprocal condition numbers for the eigenvectors of a
708 /// real symmetric or complex Hermitian matrix or for the left or right
709 /// singular vectors of a general matrix.
710 void sdisna_(ref char job, ref lapackint m, ref lapackint n, float *d, float *sep, ref lapackint info);
711 void ddisna_(ref char job, ref lapackint m, ref lapackint n, double *d, double *sep, ref lapackint info);
712 
713 /// Reduces a general band matrix to real upper bidiagonal form
714 /// by an orthogonal transformation.
715 void sgbbrd_(ref char vect, ref lapackint m, ref lapackint n, ref lapackint ncc, ref lapackint kl, ref lapackint ku, float *ab, ref lapackint ldab, float *d, float *e, float *q, ref lapackint ldq, float *pt, ref lapackint ldpt, float *c, ref lapackint ldc, float *work, ref lapackint info);
716 void dgbbrd_(ref char vect, ref lapackint m, ref lapackint n, ref lapackint ncc, ref lapackint kl, ref lapackint ku, double *ab, ref lapackint ldab, double *d, double *e, double *q, ref lapackint ldq, double *pt, ref lapackint ldpt, double *c, ref lapackint ldc, double *work, ref lapackint info);
717 void cgbbrd_(ref char vect, ref lapackint m, ref lapackint n, ref lapackint ncc, ref lapackint kl, ref lapackint ku, _cfloat *ab, ref lapackint ldab, float *d, float *e, _cfloat *q, ref lapackint ldq, _cfloat *pt, ref lapackint ldpt, _cfloat *c, ref lapackint ldc, _cfloat *work, float *rwork, ref lapackint info);
718 void zgbbrd_(ref char vect, ref lapackint m, ref lapackint n, ref lapackint ncc, ref lapackint kl, ref lapackint ku, _cdouble *ab, ref lapackint ldab, double *d, double *e, _cdouble *q, ref lapackint ldq, _cdouble *pt, ref lapackint ldpt, _cdouble *c, ref lapackint ldc, _cdouble *work, double *rwork, ref lapackint info);
719 
720 /// Estimates the reciprocal of the condition number of a general
721 /// band matrix, in either the 1-norm or the infinity-norm, using
722 /// the LU factorization computed by SGBTRF.
723 void sgbcon_(ref char norm, ref lapackint n, ref lapackint kl, ref lapackint ku, float *ab, ref lapackint ldab, lapackint *ipiv, float *anorm, ref float rcond, float *work, lapackint *iwork, ref lapackint info);
724 void dgbcon_(ref char norm, ref lapackint n, ref lapackint kl, ref lapackint ku, double *ab, ref lapackint ldab, lapackint *ipiv, double *anorm, ref double rcond, double *work, lapackint *iwork, ref lapackint info);
725 void cgbcon_(ref char norm, ref lapackint n, ref lapackint kl, ref lapackint ku, _cfloat *ab, ref lapackint ldab, lapackint *ipiv, float *anorm, ref float rcond, _cfloat *work, float *rwork, ref lapackint info);
726 void zgbcon_(ref char norm, ref lapackint n, ref lapackint kl, ref lapackint ku, _cdouble *ab, ref lapackint ldab, lapackint *ipiv, double *anorm, ref double rcond, _cdouble *work, double *rwork, ref lapackint info);
727 
728 /// Computes row and column scalings to equilibrate a general band
729 /// matrix and reduce its condition number.
730 void sgbequ_(ref lapackint m, ref lapackint n, ref lapackint kl, ref lapackint ku, float *ab, ref lapackint ldab, float *r, float *c, float *rowcnd, float *colcnd, float *amax, ref lapackint info);
731 void dgbequ_(ref lapackint m, ref lapackint n, ref lapackint kl, ref lapackint ku, double *ab, ref lapackint ldab, double *r, double *c, double *rowcnd, double *colcnd, double *amax, ref lapackint info);
732 void cgbequ_(ref lapackint m, ref lapackint n, ref lapackint kl, ref lapackint ku, _cfloat *ab, ref lapackint ldab, float *r, float *c, float *rowcnd, float *colcnd, float *amax, ref lapackint info);
733 void zgbequ_(ref lapackint m, ref lapackint n, ref lapackint kl, ref lapackint ku, _cdouble *ab, ref lapackint ldab, double *r, double *c, double *rowcnd, double *colcnd, double *amax, ref lapackint info);
734 
735 /// Improves the computed solution to a general banded system of
736 /// linear equations AX=B, A**T X=B or A**H X=B, and provides forward
737 /// and backward error bounds for the solution.
738 void sgbrfs_(ref char trans, ref lapackint n, ref lapackint kl, ref lapackint ku, ref lapackint nrhs, float *ab, ref lapackint ldab, float *afb, ref lapackint ldafb, lapackint *ipiv, float *b, ref lapackint ldb, float *x, ref lapackint ldx, float *ferr, float *berr, float *work, lapackint *iwork, ref lapackint info);
739 void dgbrfs_(ref char trans, ref lapackint n, ref lapackint kl, ref lapackint ku, ref lapackint nrhs, double *ab, ref lapackint ldab, double *afb, ref lapackint ldafb, lapackint *ipiv, double *b, ref lapackint ldb, double *x, ref lapackint ldx, double *ferr, double *berr, double *work, lapackint *iwork, ref lapackint info);
740 void cgbrfs_(ref char trans, ref lapackint n, ref lapackint kl, ref lapackint ku, ref lapackint nrhs, _cfloat *ab, ref lapackint ldab, _cfloat *afb, ref lapackint ldafb, lapackint *ipiv, _cfloat *b, ref lapackint ldb, _cfloat *x, ref lapackint ldx, float *ferr, float *berr, _cfloat *work, float *rwork, ref lapackint info);
741 void zgbrfs_(ref char trans, ref lapackint n, ref lapackint kl, ref lapackint ku, ref lapackint nrhs, _cdouble *ab, ref lapackint ldab, _cdouble *afb, ref lapackint ldafb, lapackint *ipiv, _cdouble *b, ref lapackint ldb, _cdouble *x, ref lapackint ldx, double *ferr, double *berr, _cdouble *work, double *rwork, ref lapackint info);
742 
743 /// Computes an LU factorization of a general band matrix, using
744 /// partial pivoting with row interchanges.
745 void sgbtrf_(ref lapackint m, ref lapackint n, ref lapackint kl, ref lapackint ku, float *ab, ref lapackint ldab, lapackint *ipiv, ref lapackint info);
746 void dgbtrf_(ref lapackint m, ref lapackint n, ref lapackint kl, ref lapackint ku, double *ab, ref lapackint ldab, lapackint *ipiv, ref lapackint info);
747 void cgbtrf_(ref lapackint m, ref lapackint n, ref lapackint kl, ref lapackint ku, _cfloat *ab, ref lapackint ldab, lapackint *ipiv, ref lapackint info);
748 void zgbtrf_(ref lapackint m, ref lapackint n, ref lapackint kl, ref lapackint ku, _cdouble *ab, ref lapackint ldab, lapackint *ipiv, ref lapackint info);
749 
750 /// Solves a general banded system of linear equations AX=B,
751 /// A**T X=B or A**H X=B, using the LU factorization computed
752 /// by SGBTRF.
753 void sgbtrs_(ref char trans, ref lapackint n, ref lapackint kl, ref lapackint ku, ref lapackint nrhs, float *ab, ref lapackint ldab, lapackint *ipiv, float *b, ref lapackint ldb, ref lapackint info);
754 void dgbtrs_(ref char trans, ref lapackint n, ref lapackint kl, ref lapackint ku, ref lapackint nrhs, double *ab, ref lapackint ldab, lapackint *ipiv, double *b, ref lapackint ldb, ref lapackint info);
755 void cgbtrs_(ref char trans, ref lapackint n, ref lapackint kl, ref lapackint ku, ref lapackint nrhs, _cfloat *ab, ref lapackint ldab, lapackint *ipiv, _cfloat *b, ref lapackint ldb, ref lapackint info);
756 void zgbtrs_(ref char trans, ref lapackint n, ref lapackint kl, ref lapackint ku, ref lapackint nrhs, _cdouble *ab, ref lapackint ldab, lapackint *ipiv, _cdouble *b, ref lapackint ldb, ref lapackint info);
757 
758 /// Transforms eigenvectors of a balanced matrix to those of the
759 /// original matrix supplied to SGEBAL.
760 void sgebak_(ref char job, ref char side, ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, float *scale, ref lapackint m, float *v, ref lapackint ldv, ref lapackint info);
761 void dgebak_(ref char job, ref char side, ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, double *scale, ref lapackint m, double *v, ref lapackint ldv, ref lapackint info);
762 void cgebak_(ref char job, ref char side, ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, float *scale, ref lapackint m, _cfloat *v, ref lapackint ldv, ref lapackint info);
763 void zgebak_(ref char job, ref char side, ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, double *scale, ref lapackint m, _cdouble *v, ref lapackint ldv, ref lapackint info);
764 
765 /// Balances a general matrix in order to improve the accuracy
766 /// of computed eigenvalues.
767 void sgebal_(ref char job, ref lapackint n, float *a, ref lapackint lda, ref lapackint ilo, ref lapackint ihi, float *scale, ref lapackint info);
768 void dgebal_(ref char job, ref lapackint n, double *a, ref lapackint lda, ref lapackint ilo, ref lapackint ihi, double *scale, ref lapackint info);
769 void cgebal_(ref char job, ref lapackint n, _cfloat *a, ref lapackint lda, ref lapackint ilo, ref lapackint ihi, float *scale, ref lapackint info);
770 void zgebal_(ref char job, ref lapackint n, _cdouble *a, ref lapackint lda, ref lapackint ilo, ref lapackint ihi, double *scale, ref lapackint info);
771 
772 /// Reduces a general rectangular matrix to real bidiagonal form
773 /// by an orthogonal transformation.
774 void sgebrd_(ref lapackint m, ref lapackint n, float *a, ref lapackint lda, float *d, float *e, float *tauq, float *taup, float *work, ref lapackint lwork, ref lapackint info);
775 void dgebrd_(ref lapackint m, ref lapackint n, double *a, ref lapackint lda, double *d, double *e, double *tauq, double *taup, double *work, ref lapackint lwork, ref lapackint info);
776 void cgebrd_(ref lapackint m, ref lapackint n, _cfloat *a, ref lapackint lda, float *d, float *e, _cfloat *tauq, _cfloat *taup, _cfloat *work, ref lapackint lwork, ref lapackint info);
777 void zgebrd_(ref lapackint m, ref lapackint n, _cdouble *a, ref lapackint lda, double *d, double *e, _cdouble *tauq, _cdouble *taup, _cdouble *work, ref lapackint lwork, ref lapackint info);
778 
779 /// Estimates the reciprocal of the condition number of a general
780 /// matrix, in either the 1-norm or the infinity-norm, using the
781 /// LU factorization computed by SGETRF.
782 void sgecon_(ref char norm, ref lapackint n, float *a, ref lapackint lda, float *anorm, ref float rcond, float *work, lapackint *iwork, ref lapackint info);
783 void dgecon_(ref char norm, ref lapackint n, double *a, ref lapackint lda, double *anorm, ref double rcond, double *work, lapackint *iwork, ref lapackint info);
784 void cgecon_(ref char norm, ref lapackint n, _cfloat *a, ref lapackint lda, float *anorm, ref float rcond, _cfloat *work, float *rwork, ref lapackint info);
785 void zgecon_(ref char norm, ref lapackint n, _cdouble *a, ref lapackint lda, double *anorm, ref double rcond, _cdouble *work, double *rwork, ref lapackint info);
786 
787 /// Computes row and column scalings to equilibrate a general
788 /// rectangular matrix and reduce its condition number.
789 void sgeequ_(ref lapackint m, ref lapackint n, float *a, ref lapackint lda, float *r, float *c, float *rowcnd, float *colcnd, float *amax, ref lapackint info);
790 void dgeequ_(ref lapackint m, ref lapackint n, double *a, ref lapackint lda, double *r, double *c, double *rowcnd, double *colcnd, double *amax, ref lapackint info);
791 void cgeequ_(ref lapackint m, ref lapackint n, _cfloat *a, ref lapackint lda, float *r, float *c, float *rowcnd, float *colcnd, float *amax, ref lapackint info);
792 void zgeequ_(ref lapackint m, ref lapackint n, _cdouble *a, ref lapackint lda, double *r, double *c, double *rowcnd, double *colcnd, double *amax, ref lapackint info);
793 
794 /// Reduces a general matrix to upper Hessenberg form by an
795 /// orthogonal similarity transformation.
796 void sgehrd_(ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, float *a, ref lapackint lda, float *tau, float *work, ref lapackint lwork, ref lapackint info);
797 void dgehrd_(ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, double *a, ref lapackint lda, double *tau, double *work, ref lapackint lwork, ref lapackint info);
798 void cgehrd_(ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, _cfloat *a, ref lapackint lda, _cfloat *tau, _cfloat *work, ref lapackint lwork, ref lapackint info);
799 void zgehrd_(ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, _cdouble *a, ref lapackint lda, _cdouble *tau, _cdouble *work, ref lapackint lwork, ref lapackint info);
800 
801 /// Computes an LQ factorization of a general rectangular matrix.
802 void sgelqf_(ref lapackint m, ref lapackint n, float *a, ref lapackint lda, float *tau, float *work, ref lapackint lwork, ref lapackint info);
803 void dgelqf_(ref lapackint m, ref lapackint n, double *a, ref lapackint lda, double *tau, double *work, ref lapackint lwork, ref lapackint info);
804 void cgelqf_(ref lapackint m, ref lapackint n, _cfloat *a, ref lapackint lda, _cfloat *tau, _cfloat *work, ref lapackint lwork, ref lapackint info);
805 void zgelqf_(ref lapackint m, ref lapackint n, _cdouble *a, ref lapackint lda, _cdouble *tau, _cdouble *work, ref lapackint lwork, ref lapackint info);
806 
807 /// Computes a QL factorization of a general rectangular matrix.
808 void sgeqlf_(ref lapackint m, ref lapackint n, float *a, ref lapackint lda, float *tau, float *work, ref lapackint lwork, ref lapackint info);
809 void dgeqlf_(ref lapackint m, ref lapackint n, double *a, ref lapackint lda, double *tau, double *work, ref lapackint lwork, ref lapackint info);
810 void cgeqlf_(ref lapackint m, ref lapackint n, _cfloat *a, ref lapackint lda, _cfloat *tau, _cfloat *work, ref lapackint lwork, ref lapackint info);
811 void zgeqlf_(ref lapackint m, ref lapackint n, _cdouble *a, ref lapackint lda, _cdouble *tau, _cdouble *work, ref lapackint lwork, ref lapackint info);
812 
813 /// Computes a QR factorization with column pivoting of a general
814 /// rectangular matrix using Level 3 BLAS.
815 void sgeqp3_(ref lapackint m, ref lapackint n, float *a, ref lapackint lda, lapackint *jpvt, float *tau, float *work, ref lapackint lwork, ref lapackint info);
816 void dgeqp3_(ref lapackint m, ref lapackint n, double *a, ref lapackint lda, lapackint *jpvt, double *tau, double *work, ref lapackint lwork, ref lapackint info);
817 void cgeqp3_(ref lapackint m, ref lapackint n, _cfloat *a, ref lapackint lda, lapackint *jpvt, _cfloat *tau, _cfloat *work, ref lapackint lwork, float *rwork, ref lapackint info);
818 void zgeqp3_(ref lapackint m, ref lapackint n, _cdouble *a, ref lapackint lda, lapackint *jpvt, _cdouble *tau, _cdouble *work, ref lapackint lwork, double *rwork, ref lapackint info);
819 
820 /// Computes a QR factorization with column pivoting of a general
821 /// rectangular matrix.
822 void sgeqpf_(ref lapackint m, ref lapackint n, float *a, ref lapackint lda, lapackint *jpvt, float *tau, float *work, ref lapackint info);
823 void dgeqpf_(ref lapackint m, ref lapackint n, double *a, ref lapackint lda, lapackint *jpvt, double *tau, double *work, ref lapackint info);
824 void cgeqpf_(ref lapackint m, ref lapackint n, _cfloat *a, ref lapackint lda, lapackint *jpvt, _cfloat *tau, _cfloat *work, float *rwork, ref lapackint info);
825 void zgeqpf_(ref lapackint m, ref lapackint n, _cdouble *a, ref lapackint lda, lapackint *jpvt, _cdouble *tau, _cdouble *work, double *rwork, ref lapackint info);
826 
827 /// Computes a QR factorization of a general rectangular matrix.
828 void sgeqrf_(ref lapackint m, ref lapackint n, float *a, ref lapackint lda, float *tau, float *work, ref lapackint lwork, ref lapackint info);
829 void dgeqrf_(ref lapackint m, ref lapackint n, double *a, ref lapackint lda, double *tau, double *work, ref lapackint lwork, ref lapackint info);
830 void cgeqrf_(ref lapackint m, ref lapackint n, _cfloat *a, ref lapackint lda, _cfloat *tau, _cfloat *work, ref lapackint lwork, ref lapackint info);
831 void zgeqrf_(ref lapackint m, ref lapackint n, _cdouble *a, ref lapackint lda, _cdouble *tau, _cdouble *work, ref lapackint lwork, ref lapackint info);
832 
833 /// Improves the computed solution to a general system of linear
834 /// equations AX=B, A**T X=B or A**H X=B, and provides forward and
835 /// backward error bounds for the solution.
836 void sgerfs_(ref char trans, ref lapackint n, ref lapackint nrhs, float *a, ref lapackint lda, float *af, ref lapackint ldaf, lapackint *ipiv, float *b, ref lapackint ldb, float *x, ref lapackint ldx, float *ferr, float *berr, float *work, lapackint *iwork, ref lapackint info);
837 void dgerfs_(ref char trans, ref lapackint n, ref lapackint nrhs, double *a, ref lapackint lda, double *af, ref lapackint ldaf, lapackint *ipiv, double *b, ref lapackint ldb, double *x, ref lapackint ldx, double *ferr, double *berr, double *work, lapackint *iwork, ref lapackint info);
838 void cgerfs_(ref char trans, ref lapackint n, ref lapackint nrhs, _cfloat *a, ref lapackint lda, _cfloat *af, ref lapackint ldaf, lapackint *ipiv, _cfloat *b, ref lapackint ldb, _cfloat *x, ref lapackint ldx, float *ferr, float *berr, _cfloat *work, float *rwork, ref lapackint info);
839 void zgerfs_(ref char trans, ref lapackint n, ref lapackint nrhs, _cdouble *a, ref lapackint lda, _cdouble *af, ref lapackint ldaf, lapackint *ipiv, _cdouble *b, ref lapackint ldb, _cdouble *x, ref lapackint ldx, double *ferr, double *berr, _cdouble *work, double *rwork, ref lapackint info);
840 
841 /// Computes an RQ factorization of a general rectangular matrix.
842 void sgerqf_(ref lapackint m, ref lapackint n, float *a, ref lapackint lda, float *tau, float *work, ref lapackint lwork, ref lapackint info);
843 void dgerqf_(ref lapackint m, ref lapackint n, double *a, ref lapackint lda, double *tau, double *work, ref lapackint lwork, ref lapackint info);
844 void cgerqf_(ref lapackint m, ref lapackint n, _cfloat *a, ref lapackint lda, _cfloat *tau, _cfloat *work, ref lapackint lwork, ref lapackint info);
845 void zgerqf_(ref lapackint m, ref lapackint n, _cdouble *a, ref lapackint lda, _cdouble *tau, _cdouble *work, ref lapackint lwork, ref lapackint info);
846 
847 /// Computes an LU factorization of a general matrix, using partial
848 /// pivoting with row interchanges.
849 void sgetrf_(ref lapackint m, ref lapackint n, float *a, ref lapackint lda, lapackint *ipiv, ref lapackint info);
850 void dgetrf_(ref lapackint m, ref lapackint n, double *a, ref lapackint lda, lapackint *ipiv, ref lapackint info);
851 void cgetrf_(ref lapackint m, ref lapackint n, _cfloat *a, ref lapackint lda, lapackint *ipiv, ref lapackint info);
852 void zgetrf_(ref lapackint m, ref lapackint n, _cdouble *a, ref lapackint lda, lapackint *ipiv, ref lapackint info);
853 
854 /// Computes the inverse of a general matrix, using the LU factorization
855 /// computed by SGETRF.
856 void sgetri_(ref lapackint n, float *a, ref lapackint lda, lapackint *ipiv, float *work, ref lapackint lwork, ref lapackint info);
857 void dgetri_(ref lapackint n, double *a, ref lapackint lda, lapackint *ipiv, double *work, ref lapackint lwork, ref lapackint info);
858 void cgetri_(ref lapackint n, _cfloat *a, ref lapackint lda, lapackint *ipiv, _cfloat *work, ref lapackint lwork, ref lapackint info);
859 void zgetri_(ref lapackint n, _cdouble *a, ref lapackint lda, lapackint *ipiv, _cdouble *work, ref lapackint lwork, ref lapackint info);
860 
861 /// Solves a general system of linear equations AX=B, A**T X=B
862 /// or A**H X=B, using the LU factorization computed by SGETRF.
863 void sgetrs_(ref char trans, ref lapackint n, ref lapackint nrhs, float *a, ref lapackint lda, lapackint *ipiv, float *b, ref lapackint ldb, ref lapackint info);
864 void dgetrs_(ref char trans, ref lapackint n, ref lapackint nrhs, double *a, ref lapackint lda, lapackint *ipiv, double *b, ref lapackint ldb, ref lapackint info);
865 void cgetrs_(ref char trans, ref lapackint n, ref lapackint nrhs, _cfloat *a, ref lapackint lda, lapackint *ipiv, _cfloat *b, ref lapackint ldb, ref lapackint info);
866 void zgetrs_(ref char trans, ref lapackint n, ref lapackint nrhs, _cdouble *a, ref lapackint lda, lapackint *ipiv, _cdouble *b, ref lapackint ldb, ref lapackint info);
867 
868 /// Forms the right or left eigenvectors of the generalized eigenvalue
869 /// problem by backward transformation on the computed eigenvectors of
870 /// the balanced pair of matrices output by SGGBAL.
871 void sggbak_(ref char job, ref char side, ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, float *lscale, float *rscale, ref lapackint m, float *v, ref lapackint ldv, ref lapackint info);
872 void dggbak_(ref char job, ref char side, ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, double *lscale, double *rscale, ref lapackint m, double *v, ref lapackint ldv, ref lapackint info);
873 void cggbak_(ref char job, ref char side, ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, float *lscale, float *rscale, ref lapackint m, _cfloat *v, ref lapackint ldv, ref lapackint info);
874 void zggbak_(ref char job, ref char side, ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, double *lscale, double *rscale, ref lapackint m, _cdouble *v, ref lapackint ldv, ref lapackint info);
875 
876 /// Balances a pair of general real matrices for the generalized
877 /// eigenvalue problem A x = lambda B x.
878 void sggbal_(ref char job, ref lapackint n, float *a, ref lapackint lda, float *b, ref lapackint ldb, ref lapackint ilo, ref lapackint ihi, float *lscale, float *rscale, float *work, ref lapackint info);
879 void dggbal_(ref char job, ref lapackint n, double *a, ref lapackint lda, double *b, ref lapackint ldb, ref lapackint ilo, ref lapackint ihi, double *lscale, double *rscale, double *work, ref lapackint info);
880 void cggbal_(ref char job, ref lapackint n, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, ref lapackint ilo, ref lapackint ihi, float *lscale, float *rscale, float *work, ref lapackint info);
881 void zggbal_(ref char job, ref lapackint n, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, ref lapackint ilo, ref lapackint ihi, double *lscale, double *rscale, double *work, ref lapackint info);
882 
883 /// Reduces a pair of real matrices to generalized upper
884 /// Hessenberg form using orthogonal transformations 
885 void sgghrd_(ref char compq, ref char compz, ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, float *a, ref lapackint lda, float *b, ref lapackint ldb, float *q, ref lapackint ldq, float *z, ref lapackint ldz, ref lapackint info);
886 void dgghrd_(ref char compq, ref char compz, ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, double *a, ref lapackint lda, double *b, ref lapackint ldb, double *q, ref lapackint ldq, double *z, ref lapackint ldz, ref lapackint info);
887 void cgghrd_(ref char compq, ref char compz, ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, _cfloat *q, ref lapackint ldq, _cfloat *z, ref lapackint ldz, ref lapackint info);
888 void zgghrd_(ref char compq, ref char compz, ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, _cdouble *q, ref lapackint ldq, _cdouble *z, ref lapackint ldz, ref lapackint info);
889 
890 /// Computes a generalized QR factorization of a pair of matrices. 
891 void sggqrf_(ref lapackint n, ref lapackint m, ref lapackint p, float *a, ref lapackint lda, float *taua, float *b, ref lapackint ldb, float *taub, float *work, ref lapackint lwork, ref lapackint info);
892 void dggqrf_(ref lapackint n, ref lapackint m, ref lapackint p, double *a, ref lapackint lda, double *taua, double *b, ref lapackint ldb, double *taub, double *work, ref lapackint lwork, ref lapackint info);
893 void cggqrf_(ref lapackint n, ref lapackint m, ref lapackint p, _cfloat *a, ref lapackint lda, _cfloat *taua, _cfloat *b, ref lapackint ldb, _cfloat *taub, _cfloat *work, ref lapackint lwork, ref lapackint info);
894 void zggqrf_(ref lapackint n, ref lapackint m, ref lapackint p, _cdouble *a, ref lapackint lda, _cdouble *taua, _cdouble *b, ref lapackint ldb, _cdouble *taub, _cdouble *work, ref lapackint lwork, ref lapackint info);
895 
896 /// Computes a generalized RQ factorization of a pair of matrices.
897 void sggrqf_(ref lapackint m, ref lapackint p, ref lapackint n, float *a, ref lapackint lda, float *taua, float *b, ref lapackint ldb, float *taub, float *work, ref lapackint lwork, ref lapackint info);
898 void dggrqf_(ref lapackint m, ref lapackint p, ref lapackint n, double *a, ref lapackint lda, double *taua, double *b, ref lapackint ldb, double *taub, double *work, ref lapackint lwork, ref lapackint info);
899 void cggrqf_(ref lapackint m, ref lapackint p, ref lapackint n, _cfloat *a, ref lapackint lda, _cfloat *taua, _cfloat *b, ref lapackint ldb, _cfloat *taub, _cfloat *work, ref lapackint lwork, ref lapackint info);
900 void zggrqf_(ref lapackint m, ref lapackint p, ref lapackint n, _cdouble *a, ref lapackint lda, _cdouble *taua, _cdouble *b, ref lapackint ldb, _cdouble *taub, _cdouble *work, ref lapackint lwork, ref lapackint info);
901 
902 /// Computes orthogonal matrices as a preprocessing step
903 /// for computing the generalized singular value decomposition
904 void sggsvp_(ref char jobu, ref char jobv, ref char jobq, ref lapackint m, ref lapackint p, ref lapackint n, float *a, float *b, ref lapackint ldb, float *tola, float *tolb, ref lapackint k, ref lapackint ldu, float *v, ref lapackint ldv, float *q, ref lapackint ldq, lapackint *iwork, float *tau, float *work, ref lapackint info);
905 void dggsvp_(ref char jobu, ref char jobv, ref char jobq, ref lapackint m, ref lapackint p, ref lapackint n, double *a, double *b, ref lapackint ldb, double *tola, double *tolb, ref lapackint k, ref lapackint ldu, double *v, ref lapackint ldv, double *q, ref lapackint ldq, lapackint *iwork, double *tau, double *work, ref lapackint info);
906 void cggsvp_(ref char jobu, ref char jobv, ref char jobq, ref lapackint m, ref lapackint p, ref lapackint n, _cfloat *a, _cfloat *b, ref lapackint ldb, float *tola, float *tolb, ref lapackint k, ref lapackint ldu, _cfloat *v, ref lapackint ldv, _cfloat *q, ref lapackint ldq, lapackint *iwork, float *rwork, _cfloat *tau, _cfloat *work, ref lapackint info);
907 void zggsvp_(ref char jobu, ref char jobv, ref char jobq, ref lapackint m, ref lapackint p, ref lapackint n, _cdouble *a, _cdouble *b, ref lapackint ldb, double *tola, double *tolb, ref lapackint k, ref lapackint ldu, _cdouble *v, ref lapackint ldv, _cdouble *q, ref lapackint ldq, lapackint *iwork, double *rwork, _cdouble *tau, _cdouble *work, ref lapackint info);
908 
909 /// Estimates the reciprocal of the condition number of a general
910 /// tridiagonal matrix, in either the 1-norm or the infinity-norm,
911 /// using the LU factorization computed by SGTTRF.
912 void sgtcon_(ref char norm, ref lapackint n, float *dl, float *d, float *du, float *du2, lapackint *ipiv, float *anorm, ref float rcond, float *work, lapackint *iwork, ref lapackint info);
913 void dgtcon_(ref char norm, ref lapackint n, double *dl, double *d, double *du, double *du2, lapackint *ipiv, double *anorm, ref double rcond, double *work, lapackint *iwork, ref lapackint info);
914 void cgtcon_(ref char norm, ref lapackint n, _cfloat *dl, _cfloat *d, _cfloat *du, _cfloat *du2, lapackint *ipiv, float *anorm, ref float rcond, _cfloat *work, ref lapackint info);
915 void zgtcon_(ref char norm, ref lapackint n, _cdouble *dl, _cdouble *d, _cdouble *du, _cdouble *du2, lapackint *ipiv, double *anorm, ref double rcond, _cdouble *work, ref lapackint info);
916 
917 /// Improves the computed solution to a general tridiagonal system
918 /// of linear equations AX=B, A**T X=B or A**H X=B, and provides
919 /// forward and backward error bounds for the solution.
920 void sgtrfs_(ref char trans, ref lapackint n, ref lapackint nrhs, float *dl, float *d, float *du, float *dlf, float *df, float *duf, float *du2, lapackint *ipiv, float *b, ref lapackint ldb, float *x, ref lapackint ldx, float *ferr, float *berr, float *work, lapackint *iwork, ref lapackint info);
921 void dgtrfs_(ref char trans, ref lapackint n, ref lapackint nrhs, double *dl, double *d, double *du, double *dlf, double *df, double *duf, double *du2, lapackint *ipiv, double *b, ref lapackint ldb, double *x, ref lapackint ldx, double *ferr, double *berr, double *work, lapackint *iwork, ref lapackint info);
922 void cgtrfs_(ref char trans, ref lapackint n, ref lapackint nrhs, _cfloat *dl, _cfloat *d, _cfloat *du, _cfloat *dlf, _cfloat *df, _cfloat *duf, _cfloat *du2, lapackint *ipiv, _cfloat *b, ref lapackint ldb, _cfloat *x, ref lapackint ldx, float *ferr, float *berr, _cfloat *work, float *rwork, ref lapackint info);
923 void zgtrfs_(ref char trans, ref lapackint n, ref lapackint nrhs, _cdouble *dl, _cdouble *d, _cdouble *du, _cdouble *dlf, _cdouble *df, _cdouble *duf, _cdouble *du2, lapackint *ipiv, _cdouble *b, ref lapackint ldb, _cdouble *x, ref lapackint ldx, double *ferr, double *berr, _cdouble *work, double *rwork, ref lapackint info);
924 
925 /// Computes an LU factorization of a general tridiagonal matrix,
926 /// using partial pivoting with row interchanges.
927 void sgttrf_(ref lapackint n, float *dl, float *d, float *du, float *du2, lapackint *ipiv, ref lapackint info);
928 void dgttrf_(ref lapackint n, double *dl, double *d, double *du, double *du2, lapackint *ipiv, ref lapackint info);
929 void cgttrf_(ref lapackint n, _cfloat *dl, _cfloat *d, _cfloat *du, _cfloat *du2, lapackint *ipiv, ref lapackint info);
930 void zgttrf_(ref lapackint n, _cdouble *dl, _cdouble *d, _cdouble *du, _cdouble *du2, lapackint *ipiv, ref lapackint info);
931 
932 /// Solves a general tridiagonal system of linear equations AX=B,
933 /// A**T X=B or A**H X=B, using the LU factorization computed by
934 /// SGTTRF.
935 void sgttrs_(ref char trans, ref lapackint n, ref lapackint nrhs, float *dl, float *d, float *du, float *du2, lapackint *ipiv, float *b, ref lapackint ldb, ref lapackint info);
936 void dgttrs_(ref char trans, ref lapackint n, ref lapackint nrhs, double *dl, double *d, double *du, double *du2, lapackint *ipiv, double *b, ref lapackint ldb, ref lapackint info);
937 void cgttrs_(ref char trans, ref lapackint n, ref lapackint nrhs, _cfloat *dl, _cfloat *d, _cfloat *du, _cfloat *du2, lapackint *ipiv, _cfloat *b, ref lapackint ldb, ref lapackint info);
938 void zgttrs_(ref char trans, ref lapackint n, ref lapackint nrhs, _cdouble *dl, _cdouble *d, _cdouble *du, _cdouble *du2, lapackint *ipiv, _cdouble *b, ref lapackint ldb, ref lapackint info);
939 
940 /// Implements a single-/double-shift version of the QZ method for
941 /// finding the generalized eigenvalues of the equation 
942 /// det(A - w(i) B) = 0
943 void shgeqz_(ref char job, ref char compq, ref char compz, ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, float *a, ref lapackint lda, float *b, ref lapackint ldb, float *alphar, float *alphai, float *betav, float *q, ref lapackint ldq, float *z, ref lapackint ldz, float *work, ref lapackint lwork, ref lapackint info);
944 void dhgeqz_(ref char job, ref char compq, ref char compz, ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, double *a, ref lapackint lda, double *b, ref lapackint ldb, double *alphar, double *alphai, double *betav, double *q, ref lapackint ldq, double *z, ref lapackint ldz, double *work, ref lapackint lwork, ref lapackint info);
945 void chgeqz_(ref char job, ref char compq, ref char compz, ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, _cfloat *alphav, _cfloat *betav, _cfloat *q, ref lapackint ldq, _cfloat *z, ref lapackint ldz, _cfloat *work, ref lapackint lwork, float *rwork, ref lapackint info);
946 void zhgeqz_(ref char job, ref char compq, ref char compz, ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, _cdouble *alphav, _cdouble *betav, _cdouble *q, ref lapackint ldq, _cdouble *z, ref lapackint ldz, _cdouble *work, ref lapackint lwork, double *rwork, ref lapackint info);
947 
948 /// Computes specified right and/or left eigenvectors of an upper
949 /// Hessenberg matrix by inverse iteration.
950 void shsein_(ref char side, ref char eigsrc, ref char initv, ref lapackint select, ref lapackint n, float *h, ref lapackint ldh, float *wr, float *wi, float *vl, ref lapackint ldvl, float *vr, ref lapackint ldvr, ref lapackint mm, ref lapackint m, float *work, ref lapackint ifaill, ref lapackint ifailr, ref lapackint info);
951 void dhsein_(ref char side, ref char eigsrc, ref char initv, ref lapackint select, ref lapackint n, double *h, ref lapackint ldh, double *wr, double *wi, double *vl, ref lapackint ldvl, double *vr, ref lapackint ldvr, ref lapackint mm, ref lapackint m, double *work, ref lapackint ifaill, ref lapackint ifailr, ref lapackint info);
952 void chsein_(ref char side, ref char eigsrc, ref char initv, ref const lapackint select, ref lapackint n, _cfloat *h, ref lapackint ldh, _cfloat *w, _cfloat *vl, ref lapackint ldvl, _cfloat *vr, ref lapackint ldvr, ref lapackint mm, ref lapackint m, _cfloat *work, float *rwork, ref lapackint ifaill, ref lapackint ifailr, ref lapackint info);
953 void zhsein_(ref char side, ref char eigsrc, ref char initv, ref const lapackint select, ref lapackint n, _cdouble *h, ref lapackint ldh, _cdouble *w, _cdouble *vl, ref lapackint ldvl, _cdouble *vr, ref lapackint ldvr, ref lapackint mm, ref lapackint m, _cdouble *work, double *rwork, ref lapackint ifaill, ref lapackint ifailr, ref lapackint info);
954 
955 /// Computes the eigenvalues and Schur factorization of an upper
956 /// Hessenberg matrix, using the multishift QR algorithm.
957 void shseqr_(ref char job, ref char compz, ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, float *h, ref lapackint ldh, float *wr, float *wi, float *z, ref lapackint ldz, float *work, ref lapackint lwork, ref lapackint info);
958 void dhseqr_(ref char job, ref char compz, ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, double *h, ref lapackint ldh, double *wr, double *wi, double *z, ref lapackint ldz, double *work, ref lapackint lwork, ref lapackint info);
959 void chseqr_(ref char job, ref char compz, ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, _cfloat *h, ref lapackint ldh, _cfloat *w, _cfloat *z, ref lapackint ldz, _cfloat *work, ref lapackint lwork, ref lapackint info);
960 void zhseqr_(ref char job, ref char compz, ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, _cdouble *h, ref lapackint ldh, _cdouble *w, _cdouble *z, ref lapackint ldz, _cdouble *work, ref lapackint lwork, ref lapackint info);
961 
962 /// Generates the orthogonal transformation matrix from
963 /// a reduction to tridiagonal form determined by SSPTRD.
964 void sopgtr_(ref char uplo, ref lapackint n, float *ap, float *tau, float *q, ref lapackint ldq, float *work, ref lapackint info);
965 void dopgtr_(ref char uplo, ref lapackint n, double *ap, double *tau, double *q, ref lapackint ldq, double *work, ref lapackint info);
966 
967 /// Generates the unitary transformation matrix from
968 /// a reduction to tridiagonal form determined by CHPTRD.
969 void cupgtr_(ref char uplo, ref lapackint n, _cfloat *ap, _cfloat *tau, _cfloat *q, ref lapackint ldq, _cfloat *work, ref lapackint info);
970 void zupgtr_(ref char uplo, ref lapackint n, _cdouble *ap, _cdouble *tau, _cdouble *q, ref lapackint ldq, _cdouble *work, ref lapackint info);
971 
972 
973 /// Multiplies a general matrix by the orthogonal
974 /// transformation matrix from a reduction to tridiagonal form
975 /// determined by SSPTRD.
976 void sopmtr_(ref char side, ref char uplo, ref char trans, ref lapackint m, ref lapackint n, float *ap, float *tau, float *c, ref lapackint ldc, float *work, ref lapackint info);
977 void dopmtr_(ref char side, ref char uplo, ref char trans, ref lapackint m, ref lapackint n, double *ap, double *tau, double *c, ref lapackint ldc, double *work, ref lapackint info);
978 
979 /// Generates the orthogonal transformation matrices from
980 /// a reduction to bidiagonal form determined by SGEBRD.
981 void sorgbr_(ref char vect, ref lapackint m, ref lapackint n, ref lapackint k, float *a, ref lapackint lda, float *tau, float *work, ref lapackint lwork, ref lapackint info);
982 void dorgbr_(ref char vect, ref lapackint m, ref lapackint n, ref lapackint k, double *a, ref lapackint lda, double *tau, double *work, ref lapackint lwork, ref lapackint info);
983 
984 /// Generates the unitary transformation matrices from
985 /// a reduction to bidiagonal form determined by CGEBRD.
986 void cungbr_(ref char vect, ref lapackint m, ref lapackint n, ref lapackint k, _cfloat *a, ref lapackint lda, _cfloat *tau, _cfloat *work, ref lapackint lwork, ref lapackint info);
987 void zungbr_(ref char vect, ref lapackint m, ref lapackint n, ref lapackint k, _cdouble *a, ref lapackint lda, _cdouble *tau, _cdouble *work, ref lapackint lwork, ref lapackint info);
988 
989 /// Generates the orthogonal transformation matrix from
990 /// a reduction to Hessenberg form determined by SGEHRD.
991 void sorghr_(ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, float *a, ref lapackint lda, float *tau, float *work, ref lapackint lwork, ref lapackint info);
992 void dorghr_(ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, double *a, ref lapackint lda, double *tau, double *work, ref lapackint lwork, ref lapackint info);
993 
994 /// Generates the unitary transformation matrix from
995 /// a reduction to Hessenberg form determined by CGEHRD.
996 void cunghr_(ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, _cfloat *a, ref lapackint lda, _cfloat *tau, _cfloat *work, ref lapackint lwork, ref lapackint info);
997 void zunghr_(ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, _cdouble *a, ref lapackint lda, _cdouble *tau, _cdouble *work, ref lapackint lwork, ref lapackint info);
998 
999 /// Generates all or part of the orthogonal matrix Q from
1000 /// an LQ factorization determined by SGELQF.
1001 void sorglq_(ref lapackint m, ref lapackint n, ref lapackint k, float *a, ref lapackint lda, float *tau, float *work, ref lapackint lwork, ref lapackint info);
1002 void dorglq_(ref lapackint m, ref lapackint n, ref lapackint k, double *a, ref lapackint lda, double *tau, double *work, ref lapackint lwork, ref lapackint info);
1003 
1004 /// Generates all or part of the unitary matrix Q from
1005 /// an LQ factorization determined by CGELQF.
1006 void cunglq_(ref lapackint m, ref lapackint n, ref lapackint k, _cfloat *a, ref lapackint lda, _cfloat *tau, _cfloat *work, ref lapackint lwork, ref lapackint info);
1007 void zunglq_(ref lapackint m, ref lapackint n, ref lapackint k, _cdouble *a, ref lapackint lda, _cdouble *tau, _cdouble *work, ref lapackint lwork, ref lapackint info);
1008 
1009 /// Generates all or part of the orthogonal matrix Q from
1010 /// a QL factorization determined by SGEQLF.
1011 void sorgql_(ref lapackint m, ref lapackint n, ref lapackint k, float *a, ref lapackint lda, float *tau, float *work, ref lapackint lwork, ref lapackint info);
1012 void dorgql_(ref lapackint m, ref lapackint n, ref lapackint k, double *a, ref lapackint lda, double *tau, double *work, ref lapackint lwork, ref lapackint info);
1013 
1014 /// Generates all or part of the unitary matrix Q from
1015 /// a QL factorization determined by CGEQLF.
1016 void cungql_(ref lapackint m, ref lapackint n, ref lapackint k, _cfloat *a, ref lapackint lda, _cfloat *tau, _cfloat *work, ref lapackint lwork, ref lapackint info);
1017 void zungql_(ref lapackint m, ref lapackint n, ref lapackint k, _cdouble *a, ref lapackint lda, _cdouble *tau, _cdouble *work, ref lapackint lwork, ref lapackint info);
1018 
1019 /// Generates all or part of the orthogonal matrix Q from
1020 /// a QR factorization determined by SGEQRF.
1021 void sorgqr_(ref lapackint m, ref lapackint n, ref lapackint k, float *a, ref lapackint lda, float *tau, float *work, ref lapackint lwork, ref lapackint info);
1022 void dorgqr_(ref lapackint m, ref lapackint n, ref lapackint k, double *a, ref lapackint lda, double *tau, double *work, ref lapackint lwork, ref lapackint info);
1023 
1024 /// Generates all or part of the unitary matrix Q from
1025 /// a QR factorization determined by CGEQRF.
1026 void cungqr_(ref lapackint m, ref lapackint n, ref lapackint k, _cfloat *a, ref lapackint lda, _cfloat *tau, _cfloat *work, ref lapackint lwork, ref lapackint info);
1027 void zungqr_(ref lapackint m, ref lapackint n, ref lapackint k, _cdouble *a, ref lapackint lda, _cdouble *tau, _cdouble *work, ref lapackint lwork, ref lapackint info);
1028 
1029 /// Generates all or part of the orthogonal matrix Q from
1030 /// an RQ factorization determined by SGERQF.
1031 void sorgrq_(ref lapackint m, ref lapackint n, ref lapackint k, float *a, ref lapackint lda, float *tau, float *work, ref lapackint lwork, ref lapackint info);
1032 void dorgrq_(ref lapackint m, ref lapackint n, ref lapackint k, double *a, ref lapackint lda, double *tau, double *work, ref lapackint lwork, ref lapackint info);
1033 
1034 /// Generates all or part of the unitary matrix Q from
1035 /// an RQ factorization determined by CGERQF.
1036 void cungrq_(ref lapackint m, ref lapackint n, ref lapackint k, _cfloat *a, ref lapackint lda, _cfloat *tau, _cfloat *work, ref lapackint lwork, ref lapackint info);
1037 void zungrq_(ref lapackint m, ref lapackint n, ref lapackint k, _cdouble *a, ref lapackint lda, _cdouble *tau, _cdouble *work, ref lapackint lwork, ref lapackint info);
1038 
1039 /// Generates the orthogonal transformation matrix from
1040 /// a reduction to tridiagonal form determined by SSYTRD.
1041 void sorgtr_(ref char uplo, ref lapackint n, float *a, ref lapackint lda, float *tau, float *work, ref lapackint lwork, ref lapackint info);
1042 void dorgtr_(ref char uplo, ref lapackint n, double *a, ref lapackint lda, double *tau, double *work, ref lapackint lwork, ref lapackint info);
1043 
1044 /// Generates the unitary transformation matrix from
1045 /// a reduction to tridiagonal form determined by CHETRD.
1046 void cungtr_(ref char uplo, ref lapackint n, _cfloat *a, ref lapackint lda, _cfloat *tau, _cfloat *work, ref lapackint lwork, ref lapackint info);
1047 void zungtr_(ref char uplo, ref lapackint n, _cdouble *a, ref lapackint lda, _cdouble *tau, _cdouble *work, ref lapackint lwork, ref lapackint info);
1048 
1049 /// Multiplies a general matrix by one of the orthogonal
1050 /// transformation  matrices from a reduction to bidiagonal form
1051 /// determined by SGEBRD.
1052 void sormbr_(ref char vect, ref char side, ref char trans, ref lapackint m, ref lapackint n, ref lapackint k, float *a, ref lapackint lda, float *tau, float *c, ref lapackint ldc, float *work, ref lapackint lwork, ref lapackint info);
1053 void dormbr_(ref char vect, ref char side, ref char trans, ref lapackint m, ref lapackint n, ref lapackint k, double *a, ref lapackint lda, double *tau, double *c, ref lapackint ldc, double *work, ref lapackint lwork, ref lapackint info);
1054 
1055 /// Multiplies a general matrix by one of the unitary
1056 /// transformation matrices from a reduction to bidiagonal form
1057 /// determined by CGEBRD.
1058 void cunmbr_(ref char vect, ref char side, ref char trans, ref lapackint m, ref lapackint n, ref lapackint k, _cfloat *a, ref lapackint lda, _cfloat *tau, _cfloat *c, ref lapackint ldc, _cfloat *work, ref lapackint lwork, ref lapackint info);
1059 void zunmbr_(ref char vect, ref char side, ref char trans, ref lapackint m, ref lapackint n, ref lapackint k, _cdouble *a, ref lapackint lda, _cdouble *tau, _cdouble *c, ref lapackint ldc, _cdouble *work, ref lapackint lwork, ref lapackint info);
1060 
1061 /// Multiplies a general matrix by the orthogonal transformation
1062 /// matrix from a reduction to Hessenberg form determined by SGEHRD.
1063 void sormhr_(ref char side, ref char trans, ref lapackint m, ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, float *a, ref lapackint lda, float *tau, float *c, ref lapackint ldc, float *work, ref lapackint lwork, ref lapackint info);
1064 void dormhr_(ref char side, ref char trans, ref lapackint m, ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, double *a, ref lapackint lda, double *tau, double *c, ref lapackint ldc, double *work, ref lapackint lwork, ref lapackint info);
1065 
1066 /// Multiplies a general matrix by the unitary transformation
1067 /// matrix from a reduction to Hessenberg form determined by CGEHRD.
1068 void cunmhr_(ref char side, ref char trans, ref lapackint m, ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, _cfloat *a, ref lapackint lda, _cfloat *tau, _cfloat *c, ref lapackint ldc, _cfloat *work, ref lapackint lwork, ref lapackint info);
1069 void zunmhr_(ref char side, ref char trans, ref lapackint m, ref lapackint n, ref const lapackint ilo, ref const lapackint ihi, _cdouble *a, ref lapackint lda, _cdouble *tau, _cdouble *c, ref lapackint ldc, _cdouble *work, ref lapackint lwork, ref lapackint info);
1070 
1071 /// Multiplies a general matrix by the orthogonal matrix
1072 /// from an LQ factorization determined by SGELQF.
1073 void sormlq_(ref char side, ref char trans, ref lapackint m, ref lapackint n, ref lapackint k, float *a, ref lapackint lda, float *tau, float *c, ref lapackint ldc, float *work, ref lapackint lwork, ref lapackint info);
1074 void dormlq_(ref char side, ref char trans, ref lapackint m, ref lapackint n, ref lapackint k, double *a, ref lapackint lda, double *tau, double *c, ref lapackint ldc, double *work, ref lapackint lwork, ref lapackint info);
1075 
1076 /// Multiplies a general matrix by the unitary matrix
1077 /// from an LQ factorization determined by CGELQF.
1078 void cunmlq_(ref char side, ref char trans, ref lapackint m, ref lapackint n, ref lapackint k, _cfloat *a, ref lapackint lda, _cfloat *tau, _cfloat *c, ref lapackint ldc, _cfloat *work, ref lapackint lwork, ref lapackint info);
1079 void zunmlq_(ref char side, ref char trans, ref lapackint m, ref lapackint n, ref lapackint k, _cdouble *a, ref lapackint lda, _cdouble *tau, _cdouble *c, ref lapackint ldc, _cdouble *work, ref lapackint lwork, ref lapackint info);
1080 
1081 /// Multiplies a general matrix by the orthogonal matrix
1082 /// from a QL factorization determined by SGEQLF.
1083 void sormql_(ref char side, ref char trans, ref lapackint m, ref lapackint n, ref lapackint k, float *a, ref lapackint lda, float *tau, float *c, ref lapackint ldc, float *work, ref lapackint lwork, ref lapackint info);
1084 void dormql_(ref char side, ref char trans, ref lapackint m, ref lapackint n, ref lapackint k, double *a, ref lapackint lda, double *tau, double *c, ref lapackint ldc, double *work, ref lapackint lwork, ref lapackint info);
1085 
1086 /// Multiplies a general matrix by the unitary matrix
1087 /// from a QL factorization determined by CGEQLF.
1088 void cunmql_(ref char side, ref char trans, ref lapackint m, ref lapackint n, ref lapackint k, _cfloat *a, ref lapackint lda, _cfloat *tau, _cfloat *c, ref lapackint ldc, _cfloat *work, ref lapackint lwork, ref lapackint info);
1089 void zunmql_(ref char side, ref char trans, ref lapackint m, ref lapackint n, ref lapackint k, _cdouble *a, ref lapackint lda, _cdouble *tau, _cdouble *c, ref lapackint ldc, _cdouble *work, ref lapackint lwork, ref lapackint info);
1090 
1091 /// Multiplies a general matrix by the orthogonal matrix
1092 /// from a QR factorization determined by SGEQRF.
1093 void sormqr_(ref char side, ref char trans, ref lapackint m, ref lapackint n, ref lapackint k, float *a, ref lapackint lda, float *tau, float *c, ref lapackint ldc, float *work, ref lapackint lwork, ref lapackint info);
1094 void dormqr_(ref char side, ref char trans, ref lapackint m, ref lapackint n, ref lapackint k, double *a, ref lapackint lda, double *tau, double *c, ref lapackint ldc, double *work, ref lapackint lwork, ref lapackint info);
1095 
1096 /// Multiplies a general matrix by the unitary matrix
1097 /// from a QR factorization determined by CGEQRF.
1098 void cunmqr_(ref char side, ref char trans, ref lapackint m, ref lapackint n, ref lapackint k, _cfloat *a, ref lapackint lda, _cfloat *tau, _cfloat *c, ref lapackint ldc, _cfloat *work, ref lapackint lwork, ref lapackint info);
1099 void zunmqr_(ref char side, ref char trans, ref lapackint m, ref lapackint n, ref lapackint k, _cdouble *a, ref lapackint lda, _cdouble *tau, _cdouble *c, ref lapackint ldc, _cdouble *work, ref lapackint lwork, ref lapackint info);
1100 
1101 /// Multiples a general matrix by the orthogonal matrix
1102 /// from an RZ factorization determined by STZRZF.
1103 void sormr3_(ref char side, ref char trans, ref lapackint m, ref lapackint n, ref lapackint k, lapackint *a, ref lapackint lda, float *tau, float *c, ref lapackint ldc, float *work, ref lapackint info);
1104 void dormr3_(ref char side, ref char trans, ref lapackint m, ref lapackint n, ref lapackint k, lapackint *a, ref lapackint lda, double *tau, double *c, ref lapackint ldc, double *work, ref lapackint info);
1105 
1106 /// Multiples a general matrix by the unitary matrix
1107 /// from an RZ factorization determined by CTZRZF.
1108 void cunmr3_(ref char side, ref char trans, ref lapackint m, ref lapackint n, ref lapackint k, lapackint *a, ref lapackint lda, _cfloat *tau, _cfloat *c, ref lapackint ldc, _cfloat *work, ref lapackint info);
1109 void zunmr3_(ref char side, ref char trans, ref lapackint m, ref lapackint n, ref lapackint k, lapackint *a, ref lapackint lda, _cdouble *tau, _cdouble *c, ref lapackint ldc, _cdouble *work, ref lapackint info);
1110 
1111 /// Multiplies a general matrix by the orthogonal matrix
1112 /// from an RQ factorization determined by SGERQF.
1113 void sormrq_(ref char side, ref char trans, ref lapackint m, ref lapackint n, ref lapackint k, float *a, ref lapackint lda, float *tau, float *c, ref lapackint ldc, float *work, ref lapackint lwork, ref lapackint info);
1114 void dormrq_(ref char side, ref char trans, ref lapackint m, ref lapackint n, ref lapackint k, double *a, ref lapackint lda, double *tau, double *c, ref lapackint ldc, double *work, ref lapackint lwork, ref lapackint info);
1115 
1116 /// Multiplies a general matrix by the unitary matrix
1117 /// from an RQ factorization determined by CGERQF.
1118 void cunmrq_(ref char side, ref char trans, ref lapackint m, ref lapackint n, ref lapackint k, _cfloat *a, ref lapackint lda, _cfloat *tau, _cfloat *c, ref lapackint ldc, _cfloat *work, ref lapackint lwork, ref lapackint info);
1119 void zunmrq_(ref char side, ref char trans, ref lapackint m, ref lapackint n, ref lapackint k, _cdouble *a, ref lapackint lda, _cdouble *tau, _cdouble *c, ref lapackint ldc, _cdouble *work, ref lapackint lwork, ref lapackint info);
1120 
1121 /// Multiples a general matrix by the orthogonal matrix
1122 /// from an RZ factorization determined by STZRZF.
1123 void sormrz_(ref char side, ref char trans, ref lapackint m, ref lapackint n, ref lapackint k, lapackint *a, ref lapackint lda, float *tau, float *c, ref lapackint ldc, float *work, ref lapackint lwork, ref lapackint info);
1124 void dormrz_(ref char side, ref char trans, ref lapackint m, ref lapackint n, ref lapackint k, lapackint *a, ref lapackint lda, double *tau, double *c, ref lapackint ldc, double *work, ref lapackint lwork, ref lapackint info);
1125 
1126 /// Multiples a general matrix by the unitary matrix
1127 /// from an RZ factorization determined by CTZRZF.
1128 void cunmrz_(ref char side, ref char trans, ref lapackint m, ref lapackint n, ref lapackint k, lapackint *a, ref lapackint lda, _cfloat *tau, _cfloat *c, ref lapackint ldc, _cfloat *work, ref lapackint lwork, ref lapackint info);
1129 void zunmrz_(ref char side, ref char trans, ref lapackint m, ref lapackint n, ref lapackint k, lapackint *a, ref lapackint lda, _cdouble *tau, _cdouble *c, ref lapackint ldc, _cdouble *work, ref lapackint lwork, ref lapackint info);
1130 
1131 /// Multiplies a general matrix by the orthogonal
1132 /// transformation matrix from a reduction to tridiagonal form
1133 /// determined by SSYTRD.
1134 void sormtr_(ref char side, ref char uplo, ref char trans, ref lapackint m, ref lapackint n, float *a, ref lapackint lda, float *tau, float *c, ref lapackint ldc, float *work, ref lapackint lwork, ref lapackint info);
1135 void dormtr_(ref char side, ref char uplo, ref char trans, ref lapackint m, ref lapackint n, double *a, ref lapackint lda, double *tau, double *c, ref lapackint ldc, double *work, ref lapackint lwork, ref lapackint info);
1136 
1137 /// Multiplies a general matrix by the unitary
1138 /// transformation matrix from a reduction to tridiagonal form
1139 /// determined by CHETRD.
1140 void cunmtr_(ref char side, ref char uplo, ref char trans, ref lapackint m, ref lapackint n, _cfloat *a, ref lapackint lda, _cfloat *tau, _cfloat *c, ref lapackint ldc, _cfloat *work, ref lapackint lwork, ref lapackint info);
1141 void zunmtr_(ref char side, ref char uplo, ref char trans, ref lapackint m, ref lapackint n, _cdouble *a, ref lapackint lda, _cdouble *tau, _cdouble *c, ref lapackint ldc, _cdouble *work, ref lapackint lwork, ref lapackint info);
1142 
1143 /// Estimates the reciprocal of the condition number of a
1144 /// symmetric positive definite band matrix, using the
1145 /// Cholesky factorization computed by SPBTRF.
1146 void spbcon_(ref char uplo, ref lapackint n, lapackint *kd, float *ab, ref lapackint ldab, float *anorm, ref float rcond, float *work, lapackint *iwork, ref lapackint info);
1147 void dpbcon_(ref char uplo, ref lapackint n, lapackint *kd, double *ab, ref lapackint ldab, double *anorm, ref double rcond, double *work, lapackint *iwork, ref lapackint info);
1148 void cpbcon_(ref char uplo, ref lapackint n, lapackint *kd, _cfloat *ab, ref lapackint ldab, float *anorm, ref float rcond, _cfloat *work, float *rwork, ref lapackint info);
1149 void zpbcon_(ref char uplo, ref lapackint n, lapackint *kd, _cdouble *ab, ref lapackint ldab, double *anorm, ref double rcond, _cdouble *work, double *rwork, ref lapackint info);
1150 
1151 /// Computes row and column scalings to equilibrate a symmetric
1152 /// positive definite band matrix and reduce its condition number.
1153 void spbequ_(ref char uplo, ref lapackint n, lapackint *kd, float *ab, ref lapackint ldab, float *s, float *scond, float *amax, ref lapackint info);
1154 void dpbequ_(ref char uplo, ref lapackint n, lapackint *kd, double *ab, ref lapackint ldab, double *s, double *scond, double *amax, ref lapackint info);
1155 void cpbequ_(ref char uplo, ref lapackint n, lapackint *kd, _cfloat *ab, ref lapackint ldab, float *s, float *scond, float *amax, ref lapackint info);
1156 void zpbequ_(ref char uplo, ref lapackint n, lapackint *kd, _cdouble *ab, ref lapackint ldab, double *s, double *scond, double *amax, ref lapackint info);
1157 
1158 /// Improves the computed solution to a symmetric positive
1159 /// definite banded system of linear equations AX=B, and provides
1160 /// forward and backward error bounds for the solution.
1161 void spbrfs_(ref char uplo, ref lapackint n, lapackint *kd, ref lapackint nrhs, float *ab, ref lapackint ldab, float *afb, ref lapackint ldafb, float *b, ref lapackint ldb, float *x, ref lapackint ldx, float *ferr, float *berr, float *work, lapackint *iwork, ref lapackint info);
1162 void dpbrfs_(ref char uplo, ref lapackint n, lapackint *kd, ref lapackint nrhs, double *ab, ref lapackint ldab, double *afb, ref lapackint ldafb, double *b, ref lapackint ldb, double *x, ref lapackint ldx, double *ferr, double *berr, double *work, lapackint *iwork, ref lapackint info);
1163 void cpbrfs_(ref char uplo, ref lapackint n, lapackint *kd, ref lapackint nrhs, _cfloat *ab, ref lapackint ldab, _cfloat *afb, ref lapackint ldafb, _cfloat *b, ref lapackint ldb, _cfloat *x, ref lapackint ldx, float *ferr, float *berr, _cfloat *work, float *rwork, ref lapackint info);
1164 void zpbrfs_(ref char uplo, ref lapackint n, lapackint *kd, ref lapackint nrhs, _cdouble *ab, ref lapackint ldab, _cdouble *afb, ref lapackint ldafb, _cdouble *b, ref lapackint ldb, _cdouble *x, ref lapackint ldx, double *ferr, double *berr, _cdouble *work, double *rwork, ref lapackint info);
1165 
1166 /// Computes a split Cholesky factorization of a real symmetric positive
1167 /// definite band matrix.
1168 void spbstf_(ref char uplo, ref lapackint n, lapackint *kd, float *ab, ref lapackint ldab, ref lapackint info);
1169 void dpbstf_(ref char uplo, ref lapackint n, lapackint *kd, double *ab, ref lapackint ldab, ref lapackint info);
1170 void cpbstf_(ref char uplo, ref lapackint n, lapackint *kd, _cfloat *ab, ref lapackint ldab, ref lapackint info);
1171 void zpbstf_(ref char uplo, ref lapackint n, lapackint *kd, _cdouble *ab, ref lapackint ldab, ref lapackint info);
1172 
1173 /// Computes the Cholesky factorization of a symmetric
1174 /// positive definite band matrix.
1175 void spbtrf_(ref char uplo, ref lapackint n, lapackint *kd, float *ab, ref lapackint ldab, ref lapackint info);
1176 void dpbtrf_(ref char uplo, ref lapackint n, lapackint *kd, double *ab, ref lapackint ldab, ref lapackint info);
1177 void cpbtrf_(ref char uplo, ref lapackint n, lapackint *kd, _cfloat *ab, ref lapackint ldab, ref lapackint info);
1178 void zpbtrf_(ref char uplo, ref lapackint n, lapackint *kd, _cdouble *ab, ref lapackint ldab, ref lapackint info);
1179 
1180 /// Solves a symmetric positive definite banded system
1181 /// of linear equations AX=B, using the Cholesky factorization
1182 /// computed by SPBTRF.
1183 void spbtrs_(ref char uplo, ref lapackint n, lapackint *kd, ref lapackint nrhs, float *ab, ref lapackint ldab, float *b, ref lapackint ldb, ref lapackint info);
1184 void dpbtrs_(ref char uplo, ref lapackint n, lapackint *kd, ref lapackint nrhs, double *ab, ref lapackint ldab, double *b, ref lapackint ldb, ref lapackint info);
1185 void cpbtrs_(ref char uplo, ref lapackint n, lapackint *kd, ref lapackint nrhs, _cfloat *ab, ref lapackint ldab, _cfloat *b, ref lapackint ldb, ref lapackint info);
1186 void zpbtrs_(ref char uplo, ref lapackint n, lapackint *kd, ref lapackint nrhs, _cdouble *ab, ref lapackint ldab, _cdouble *b, ref lapackint ldb, ref lapackint info);
1187 
1188 /// Estimates the reciprocal of the condition number of a
1189 /// symmetric positive definite matrix, using the
1190 /// Cholesky factorization computed by SPOTRF.
1191 void spocon_(ref char uplo, ref lapackint n, float *a, ref lapackint lda, float *anorm, ref float rcond, float *work, lapackint *iwork, ref lapackint info);
1192 void dpocon_(ref char uplo, ref lapackint n, double *a, ref lapackint lda, double *anorm, ref double rcond, double *work, lapackint *iwork, ref lapackint info);
1193 void cpocon_(ref char uplo, ref lapackint n, _cfloat *a, ref lapackint lda, float *anorm, ref float rcond, _cfloat *work, float *rwork, ref lapackint info);
1194 void zpocon_(ref char uplo, ref lapackint n, _cdouble *a, ref lapackint lda, double *anorm, ref double rcond, _cdouble *work, double *rwork, ref lapackint info);
1195 
1196 /// Computes row and column scalings to equilibrate a symmetric
1197 /// positive definite matrix and reduce its condition number.
1198 void spoequ_(ref lapackint n, float *a, ref lapackint lda, float *s, float *scond, float *amax, ref lapackint info);
1199 void dpoequ_(ref lapackint n, double *a, ref lapackint lda, double *s, double *scond, double *amax, ref lapackint info);
1200 void cpoequ_(ref lapackint n, _cfloat *a, ref lapackint lda, float *s, float *scond, float *amax, ref lapackint info);
1201 void zpoequ_(ref lapackint n, _cdouble *a, ref lapackint lda, double *s, double *scond, double *amax, ref lapackint info);
1202 
1203 /// Improves the computed solution to a symmetric positive
1204 /// definite system of linear equations AX=B, and provides forward
1205 /// and backward error bounds for the solution.
1206 void sporfs_(ref char uplo, ref lapackint n, ref lapackint nrhs, float *a, ref lapackint lda, float *af, ref lapackint ldaf, float *b, ref lapackint ldb, float *x, ref lapackint ldx, float *ferr, float *berr, float *work, lapackint *iwork, ref lapackint info);
1207 void dporfs_(ref char uplo, ref lapackint n, ref lapackint nrhs, double *a, ref lapackint lda, double *af, ref lapackint ldaf, double *b, ref lapackint ldb, double *x, ref lapackint ldx, double *ferr, double *berr, double *work, lapackint *iwork, ref lapackint info);
1208 void cporfs_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cfloat *a, ref lapackint lda, _cfloat *af, ref lapackint ldaf, _cfloat *b, ref lapackint ldb, _cfloat *x, ref lapackint ldx, float *ferr, float *berr, _cfloat *work, float *rwork, ref lapackint info);
1209 void zporfs_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cdouble *a, ref lapackint lda, _cdouble *af, ref lapackint ldaf, _cdouble *b, ref lapackint ldb, _cdouble *x, ref lapackint ldx, double *ferr, double *berr, _cdouble *work, double *rwork, ref lapackint info);
1210 
1211 /// Computes the Cholesky factorization of a symmetric
1212 /// positive definite matrix.
1213 void spotrf_(ref char uplo, ref lapackint n, float *a, ref lapackint lda, ref lapackint info);
1214 void dpotrf_(ref char uplo, ref lapackint n, double *a, ref lapackint lda, ref lapackint info);
1215 void cpotrf_(ref char uplo, ref lapackint n, _cfloat *a, ref lapackint lda, ref lapackint info);
1216 void zpotrf_(ref char uplo, ref lapackint n, _cdouble *a, ref lapackint lda, ref lapackint info);
1217 
1218 /// Computes the inverse of a symmetric positive definite
1219 /// matrix, using the Cholesky factorization computed by SPOTRF.
1220 void spotri_(ref char uplo, ref lapackint n, float *a, ref lapackint lda, ref lapackint info);
1221 void dpotri_(ref char uplo, ref lapackint n, double *a, ref lapackint lda, ref lapackint info);
1222 void cpotri_(ref char uplo, ref lapackint n, _cfloat *a, ref lapackint lda, ref lapackint info);
1223 void zpotri_(ref char uplo, ref lapackint n, _cdouble *a, ref lapackint lda, ref lapackint info);
1224 
1225 /// Solves a symmetric positive definite system of linear
1226 /// equations AX=B, using the Cholesky factorization computed by
1227 /// SPOTRF.
1228 void spotrs_(ref char uplo, ref lapackint n, ref lapackint nrhs, float *a, ref lapackint lda, float *b, ref lapackint ldb, ref lapackint info);
1229 void dpotrs_(ref char uplo, ref lapackint n, ref lapackint nrhs, double *a, ref lapackint lda, double *b, ref lapackint ldb, ref lapackint info);
1230 void cpotrs_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, ref lapackint info);
1231 void zpotrs_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, ref lapackint info);
1232 
1233 /// Estimates the reciprocal of the condition number of a
1234 /// symmetric positive definite matrix in packed storage,
1235 /// using the Cholesky factorization computed by SPPTRF.
1236 void sppcon_(ref char uplo, ref lapackint n, float *ap, float *anorm, ref float rcond, float *work, lapackint *iwork, ref lapackint info);
1237 void dppcon_(ref char uplo, ref lapackint n, double *ap, double *anorm, ref double rcond, double *work, lapackint *iwork, ref lapackint info);
1238 void cppcon_(ref char uplo, ref lapackint n, _cfloat *ap, float *anorm, ref float rcond, _cfloat *work, float *rwork, ref lapackint info);
1239 void zppcon_(ref char uplo, ref lapackint n, _cdouble *ap, double *anorm, ref double rcond, _cdouble *work, double *rwork, ref lapackint info);
1240 
1241 /// Computes row and column scalings to equilibrate a symmetric
1242 /// positive definite matrix in packed storage and reduce its condition
1243 /// number.
1244 void sppequ_(ref char uplo, ref lapackint n, float *ap, float *s, float *scond, float *amax, ref lapackint info);
1245 void dppequ_(ref char uplo, ref lapackint n, double *ap, double *s, double *scond, double *amax, ref lapackint info);
1246 void cppequ_(ref char uplo, ref lapackint n, _cfloat *ap, float *s, float *scond, float *amax, ref lapackint info);
1247 void zppequ_(ref char uplo, ref lapackint n, _cdouble *ap, double *s, double *scond, double *amax, ref lapackint info);
1248 
1249 /// Improves the computed solution to a symmetric positive
1250 /// definite system of linear equations AX=B, where A is held in
1251 /// packed storage, and provides forward and backward error bounds
1252 /// for the solution.
1253 void spprfs_(ref char uplo, ref lapackint n, ref lapackint nrhs, float *ap, float *afp, float *b, ref lapackint ldb, float *x, ref lapackint ldx, float *ferr, float *berr, float *work, lapackint *iwork, ref lapackint info);
1254 void dpprfs_(ref char uplo, ref lapackint n, ref lapackint nrhs, double *ap, double *afp, double *b, ref lapackint ldb, double *x, ref lapackint ldx, double *ferr, double *berr, double *work, lapackint *iwork, ref lapackint info);
1255 void cpprfs_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cfloat *ap, _cfloat *afp, _cfloat *b, ref lapackint ldb, _cfloat *x, ref lapackint ldx, float *ferr, float *berr, _cfloat *work, float *rwork, ref lapackint info);
1256 void zpprfs_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cdouble *ap, _cdouble *afp, _cdouble *b, ref lapackint ldb, _cdouble *x, ref lapackint ldx, double *ferr, double *berr, _cdouble *work, double *rwork, ref lapackint info);
1257 
1258 /// Computes the Cholesky factorization of a symmetric
1259 /// positive definite matrix in packed storage.
1260 void spptrf_(ref char uplo, ref lapackint n, float *ap, ref lapackint info);
1261 void dpptrf_(ref char uplo, ref lapackint n, double *ap, ref lapackint info);
1262 void cpptrf_(ref char uplo, ref lapackint n, _cfloat *ap, ref lapackint info);
1263 void zpptrf_(ref char uplo, ref lapackint n, _cdouble *ap, ref lapackint info);
1264 
1265 /// Computes the inverse of a symmetric positive definite
1266 /// matrix in packed storage, using the Cholesky factorization computed
1267 /// by SPPTRF.
1268 void spptri_(ref char uplo, ref lapackint n, float *ap, ref lapackint info);
1269 void dpptri_(ref char uplo, ref lapackint n, double *ap, ref lapackint info);
1270 void cpptri_(ref char uplo, ref lapackint n, _cfloat *ap, ref lapackint info);
1271 void zpptri_(ref char uplo, ref lapackint n, _cdouble *ap, ref lapackint info);
1272 
1273 /// Solves a symmetric positive definite system of linear
1274 /// equations AX=B, where A is held in packed storage, using the
1275 /// Cholesky factorization computed by SPPTRF.
1276 void spptrs_(ref char uplo, ref lapackint n, ref lapackint nrhs, float *ap, float *b, ref lapackint ldb, ref lapackint info);
1277 void dpptrs_(ref char uplo, ref lapackint n, ref lapackint nrhs, double *ap, double *b, ref lapackint ldb, ref lapackint info);
1278 void cpptrs_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cfloat *ap, _cfloat *b, ref lapackint ldb, ref lapackint info);
1279 void zpptrs_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cdouble *ap, _cdouble *b, ref lapackint ldb, ref lapackint info);
1280 
1281 /// Computes the reciprocal of the condition number of a
1282 /// symmetric positive definite tridiagonal matrix,
1283 /// using the LDL**H factorization computed by SPTTRF.
1284 void sptcon_(ref lapackint n, float *d, float *e, float *anorm, ref float rcond, float *work, ref lapackint info);
1285 void dptcon_(ref lapackint n, double *d, double *e, double *anorm, ref double rcond, double *work, ref lapackint info);
1286 void cptcon_(ref lapackint n, float *d, _cfloat *e, float *anorm, ref float rcond, float *rwork, ref lapackint info);
1287 void zptcon_(ref lapackint n, double *d, _cdouble *e, double *anorm, ref double rcond, double *rwork, ref lapackint info);
1288 
1289 /// Computes all eigenvalues and eigenvectors of a real symmetric
1290 /// positive definite tridiagonal matrix, by computing the SVD of
1291 /// its bidiagonal Cholesky factor.
1292 void spteqr_(ref char compz, ref lapackint n, float *d, float *e, float *z, ref lapackint ldz, float *work, ref lapackint info);
1293 void dpteqr_(ref char compz, ref lapackint n, double *d, double *e, double *z, ref lapackint ldz, double *work, ref lapackint info);
1294 void cpteqr_(ref char compz, ref lapackint n, float *d, float *e, _cfloat *z, ref lapackint ldz, float *work, ref lapackint info);
1295 void zpteqr_(ref char compz, ref lapackint n, double *d, double *e, _cdouble *z, ref lapackint ldz, double *work, ref lapackint info);
1296 
1297 /// Improves the computed solution to a symmetric positive
1298 /// definite tridiagonal system of linear equations AX=B, and provides
1299 /// forward and backward error bounds for the solution.
1300 void sptrfs_(ref lapackint n, ref lapackint nrhs, float *d, float *e, float *df, float *ef, float *b, ref lapackint ldb, float *x, ref lapackint ldx, float *ferr, float *berr, float *work, ref lapackint info);
1301 void dptrfs_(ref lapackint n, ref lapackint nrhs, double *d, double *e, double *df, double *ef, double *b, ref lapackint ldb, double *x, ref lapackint ldx, double *ferr, double *berr, double *work, ref lapackint info);
1302 void cptrfs_(ref char uplo, ref lapackint n, ref lapackint nrhs, float *d, _cfloat *e, float *df, _cfloat *ef, _cfloat *b, ref lapackint ldb, _cfloat *x, ref lapackint ldx, float *ferr, float *berr, _cfloat *work, float *rwork, ref lapackint info);
1303 void zptrfs_(ref char uplo, ref lapackint n, ref lapackint nrhs, double *d, _cdouble *e, double *df, _cdouble *ef, _cdouble *b, ref lapackint ldb, _cdouble *x, ref lapackint ldx, double *ferr, double *berr, _cdouble *work, double *rwork, ref lapackint info);
1304 
1305 /// Computes the LDL**H factorization of a symmetric
1306 /// positive definite tridiagonal matrix.
1307 void spttrf_(ref lapackint n, float *d, float *e, ref lapackint info);
1308 void dpttrf_(ref lapackint n, double *d, double *e, ref lapackint info);
1309 void cpttrf_(ref lapackint n, float *d, _cfloat *e, ref lapackint info);
1310 void zpttrf_(ref lapackint n, double *d, _cdouble *e, ref lapackint info);
1311 
1312 /// Solves a symmetric positive definite tridiagonal
1313 /// system of linear equations, using the LDL**H factorization
1314 /// computed by SPTTRF.
1315 void spttrs_(ref lapackint n, ref lapackint nrhs, float *d, float *e, float *b, ref lapackint ldb, ref lapackint info);
1316 void dpttrs_(ref lapackint n, ref lapackint nrhs, double *d, double *e, double *b, ref lapackint ldb, ref lapackint info);
1317 void cpttrs_(ref char uplo, ref lapackint n, ref lapackint nrhs, float *d, _cfloat *e, _cfloat *b, ref lapackint ldb, ref lapackint info);
1318 void zpttrs_(ref char uplo, ref lapackint n, ref lapackint nrhs, double *d, _cdouble *e, _cdouble *b, ref lapackint ldb, ref lapackint info);
1319 
1320 /// Reduces a real symmetric-definite banded generalized eigenproblem
1321 /// A x = lambda B x to standard form, where B has been factorized by
1322 /// SPBSTF (Crawford's algorithm).
1323 void ssbgst_(ref char vect, ref char uplo, ref lapackint n, lapackint *ka, lapackint *kb, float *ab, ref lapackint ldab, float *bb, ref lapackint ldbb, float *x, ref lapackint ldx, float *work, ref lapackint info);
1324 void dsbgst_(ref char vect, ref char uplo, ref lapackint n, lapackint *ka, lapackint *kb, double *ab, ref lapackint ldab, double *bb, ref lapackint ldbb, double *x, ref lapackint ldx, double *work, ref lapackint info);
1325 
1326 /// Reduces a complex Hermitian-definite banded generalized eigenproblem
1327 /// A x = lambda B x to standard form, where B has been factorized by
1328 /// CPBSTF (Crawford's algorithm).
1329 void chbgst_(ref char vect, ref char uplo, ref lapackint n, lapackint *ka, lapackint *kb, _cfloat *ab, ref lapackint ldab, _cfloat *bb, ref lapackint ldbb, _cfloat *x, ref lapackint ldx, _cfloat *work, float *rwork, ref lapackint info);
1330 void zhbgst_(ref char vect, ref char uplo, ref lapackint n, lapackint *ka, lapackint *kb, _cdouble *ab, ref lapackint ldab, _cdouble *bb, ref lapackint ldbb, _cdouble *x, ref lapackint ldx, _cdouble *work, double *rwork, ref lapackint info);
1331 
1332 /// Reduces a symmetric band matrix to real symmetric
1333 /// tridiagonal form by an orthogonal similarity transformation.
1334 void ssbtrd_(ref char vect, ref char uplo, ref lapackint n, lapackint *kd, float *ab, ref lapackint ldab, float *d, float *e, float *q, ref lapackint ldq, float *work, ref lapackint info);
1335 void dsbtrd_(ref char vect, ref char uplo, ref lapackint n, lapackint *kd, double *ab, ref lapackint ldab, double *d, double *e, double *q, ref lapackint ldq, double *work, ref lapackint info);
1336 
1337 /// Reduces a Hermitian band matrix to real symmetric
1338 /// tridiagonal form by a unitary similarity transformation.
1339 void chbtrd_(ref char vect, ref char uplo, ref lapackint n, lapackint *kd, _cfloat *ab, ref lapackint ldab, float *d, float *e, _cfloat *q, ref lapackint ldq, _cfloat *work, ref lapackint info);
1340 void zhbtrd_(ref char vect, ref char uplo, ref lapackint n, lapackint *kd, _cdouble *ab, ref lapackint ldab, double *d, double *e, _cdouble *q, ref lapackint ldq, _cdouble *work, ref lapackint info);
1341 
1342 /// Estimates the reciprocal of the condition number of a
1343 /// real symmetric indefinite
1344 /// matrix in packed storage, using the factorization computed
1345 /// by SSPTRF.
1346 void sspcon_(ref char uplo, ref lapackint n, float *ap, lapackint *ipiv, float *anorm, ref float rcond, float *work, lapackint *iwork, ref lapackint info);
1347 void dspcon_(ref char uplo, ref lapackint n, double *ap, lapackint *ipiv, double *anorm, ref double rcond, double *work, lapackint *iwork, ref lapackint info);
1348 void cspcon_(ref char uplo, ref lapackint n, _cfloat *ap, lapackint *ipiv, float *anorm, ref float rcond, _cfloat *work, ref lapackint info);
1349 void zspcon_(ref char uplo, ref lapackint n, _cdouble *ap, lapackint *ipiv, double *anorm, ref double rcond, _cdouble *work, ref lapackint info);
1350 
1351 /// Estimates the reciprocal of the condition number of a
1352 /// complex Hermitian indefinite
1353 /// matrix in packed storage, using the factorization computed
1354 /// by CHPTRF.
1355 void chpcon_(ref char uplo, ref lapackint n, _cfloat *ap, lapackint *ipiv, float *anorm, ref float rcond, _cfloat *work, ref lapackint info);
1356 void zhpcon_(ref char uplo, ref lapackint n, _cdouble *ap, lapackint *ipiv, double *anorm, ref double rcond, _cdouble *work, ref lapackint info);
1357 
1358 /// Reduces a symmetric-definite generalized eigenproblem
1359 /// Ax= lambda Bx,  ABx= lambda x,  or BAx= lambda x, to standard
1360 /// form,  where A and B are held in packed storage, and B has been
1361 /// factorized by SPPTRF.
1362 void sspgst_(lapackint *itype, ref char uplo, ref lapackint n, float *ap, float *bp, ref lapackint info);
1363 void dspgst_(lapackint *itype, ref char uplo, ref lapackint n, double *ap, double *bp, ref lapackint info);
1364 
1365 /// Reduces a Hermitian-definite generalized eigenproblem
1366 /// Ax= lambda Bx,  ABx= lambda x,  or BAx= lambda x, to standard
1367 /// form,  where A and B are held in packed storage, and B has been
1368 /// factorized by CPPTRF.
1369 void chpgst_(lapackint *itype, ref char uplo, ref lapackint n, _cfloat *ap, _cfloat *bp, ref lapackint info);
1370 void zhpgst_(lapackint *itype, ref char uplo, ref lapackint n, _cdouble *ap, _cdouble *bp, ref lapackint info);
1371 
1372 /// Improves the computed solution to a real
1373 /// symmetric indefinite system of linear equations
1374 /// AX=B, where A is held in packed storage, and provides forward
1375 /// and backward error bounds for the solution.
1376 void ssprfs_(ref char uplo, ref lapackint n, ref lapackint nrhs, float *ap, float *afp, lapackint *ipiv, float *b, ref lapackint ldb, float *x, ref lapackint ldx, float *ferr, float *berr, float *work, lapackint *iwork, ref lapackint info);
1377 void dsprfs_(ref char uplo, ref lapackint n, ref lapackint nrhs, double *ap, double *afp, lapackint *ipiv, double *b, ref lapackint ldb, double *x, ref lapackint ldx, double *ferr, double *berr, double *work, lapackint *iwork, ref lapackint info);
1378 void csprfs_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cfloat *ap, _cfloat *afp, lapackint *ipiv, _cfloat *b, ref lapackint ldb, _cfloat *x, ref lapackint ldx, float *ferr, float *berr, _cfloat *work, float *rwork, ref lapackint info);
1379 void zsprfs_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cdouble *ap, _cdouble *afp, lapackint *ipiv, _cdouble *b, ref lapackint ldb, _cdouble *x, ref lapackint ldx, double *ferr, double *berr, _cdouble *work, double *rwork, ref lapackint info);
1380 
1381 /// Improves the computed solution to a complex
1382 /// Hermitian indefinite system of linear equations
1383 /// AX=B, where A is held in packed storage, and provides forward
1384 /// and backward error bounds for the solution.
1385 void chprfs_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cfloat *ap, _cfloat *afp, lapackint *ipiv, _cfloat *b, ref lapackint ldb, _cfloat *x, ref lapackint ldx, float *ferr, float *berr, _cfloat *work, float *rwork, ref lapackint info);
1386 void zhprfs_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cdouble *ap, _cdouble *afp, lapackint *ipiv, _cdouble *b, ref lapackint ldb, _cdouble *x, ref lapackint ldx, double *ferr, double *berr, _cdouble *work, double *rwork, ref lapackint info);
1387 
1388 /// Reduces a symmetric matrix in packed storage to real
1389 /// symmetric tridiagonal form by an orthogonal similarity
1390 /// transformation.
1391 void ssptrd_(ref char uplo, ref lapackint n, float *ap, float *d, float *e, float *tau, ref lapackint info);
1392 void dsptrd_(ref char uplo, ref lapackint n, double *ap, double *d, double *e, double *tau, ref lapackint info);
1393 
1394 /// Reduces a Hermitian matrix in packed storage to real
1395 /// symmetric tridiagonal form by a unitary similarity
1396 /// transformation.
1397 void chptrd_(ref char uplo, ref lapackint n, _cfloat *ap, float *d, float *e, _cfloat *tau, ref lapackint info);
1398 void zhptrd_(ref char uplo, ref lapackint n, _cdouble *ap, double *d, double *e, _cdouble *tau, ref lapackint info);
1399 
1400 /// Computes the factorization of a real
1401 /// symmetric-indefinite matrix in packed storage,
1402 /// using the diagonal pivoting method.
1403 void ssptrf_(ref char uplo, ref lapackint n, float *ap, lapackint *ipiv, ref lapackint info);
1404 void dsptrf_(ref char uplo, ref lapackint n, double *ap, lapackint *ipiv, ref lapackint info);
1405 void csptrf_(ref char uplo, ref lapackint n, _cfloat *ap, lapackint *ipiv, ref lapackint info);
1406 void zsptrf_(ref char uplo, ref lapackint n, _cdouble *ap, lapackint *ipiv, ref lapackint info);
1407 
1408 /// Computes the factorization of a complex
1409 /// Hermitian-indefinite matrix in packed storage,
1410 /// using the diagonal pivoting method.
1411 void chptrf_(ref char uplo, ref lapackint n, _cfloat *ap, lapackint *ipiv, ref lapackint info);
1412 void zhptrf_(ref char uplo, ref lapackint n, _cdouble *ap, lapackint *ipiv, ref lapackint info);
1413 
1414 /// Computes the inverse of a real symmetric
1415 /// indefinite matrix in packed storage, using the factorization
1416 /// computed by SSPTRF.
1417 void ssptri_(ref char uplo, ref lapackint n, float *ap, lapackint *ipiv, float *work, ref lapackint info);
1418 void dsptri_(ref char uplo, ref lapackint n, double *ap, lapackint *ipiv, double *work, ref lapackint info);
1419 void csptri_(ref char uplo, ref lapackint n, _cfloat *ap, lapackint *ipiv, _cfloat *work, ref lapackint info);
1420 void zsptri_(ref char uplo, ref lapackint n, _cdouble *ap, lapackint *ipiv, _cdouble *work, ref lapackint info);
1421 
1422 /// Computes the inverse of a complex
1423 /// Hermitian indefinite matrix in packed storage, using the factorization
1424 /// computed by CHPTRF.
1425 void chptri_(ref char uplo, ref lapackint n, _cfloat *ap, lapackint *ipiv, _cfloat *work, ref lapackint info);
1426 void zhptri_(ref char uplo, ref lapackint n, _cdouble *ap, lapackint *ipiv, _cdouble *work, ref lapackint info);
1427 
1428 /// Solves a real symmetric
1429 /// indefinite system of linear equations AX=B, where A is held
1430 /// in packed storage, using the factorization computed
1431 /// by SSPTRF.
1432 void ssptrs_(ref char uplo, ref lapackint n, ref lapackint nrhs, float *ap, lapackint *ipiv, float *b, ref lapackint ldb, ref lapackint info);
1433 void dsptrs_(ref char uplo, ref lapackint n, ref lapackint nrhs, double *ap, lapackint *ipiv, double *b, ref lapackint ldb, ref lapackint info);
1434 void csptrs_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cfloat *ap, lapackint *ipiv, _cfloat *b, ref lapackint ldb, ref lapackint info);
1435 void zsptrs_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cdouble *ap, lapackint *ipiv, _cdouble *b, ref lapackint ldb, ref lapackint info);
1436 
1437 /// Solves a complex Hermitian
1438 /// indefinite system of linear equations AX=B, where A is held
1439 /// in packed storage, using the factorization computed
1440 /// by CHPTRF.
1441 void chptrs_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cfloat *ap, lapackint *ipiv, _cfloat *b, ref lapackint ldb, ref lapackint info);
1442 void zhptrs_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cdouble *ap, lapackint *ipiv, _cdouble *b, ref lapackint ldb, ref lapackint info);
1443 
1444 /// Computes selected eigenvalues of a real symmetric tridiagonal
1445 /// matrix by bisection.
1446 void sstebz_(ref char range, ref char order, ref lapackint n, float *vl, float *vu, lapackint *il, lapackint *iu, ref float abstol, float *d, float *e, ref lapackint m, ref lapackint nsplit, float *w, lapackint *iblock, lapackint *isplit, float *work, lapackint *iwork, ref lapackint info);
1447 void dstebz_(ref char range, ref char order, ref lapackint n, double *vl, double *vu, lapackint *il, lapackint *iu, ref double abstol, double *d, double *e, ref lapackint m, ref lapackint nsplit, double *w, lapackint *iblock, lapackint *isplit, double *work, lapackint *iwork, ref lapackint info);
1448 
1449 /// Computes all eigenvalues and, optionally, eigenvectors of a
1450 /// symmetric tridiagonal matrix using the divide and conquer algorithm.
1451 void sstedc_(ref char compz, ref lapackint n, float *d, float *e, float *z, ref lapackint ldz, float *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
1452 void dstedc_(ref char compz, ref lapackint n, double *d, double *e, double *z, ref lapackint ldz, double *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
1453 void cstedc_(ref char compz, ref lapackint n, float *d, float *e, _cfloat *z, ref lapackint ldz, _cfloat *work, ref lapackint lwork, float *rwork, lapackint *lrwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
1454 void zstedc_(ref char compz, ref lapackint n, double *d, double *e, _cdouble *z, ref lapackint ldz, _cdouble *work, ref lapackint lwork, double *rwork, lapackint *lrwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
1455 
1456 /// Computes selected eigenvalues and, optionally, eigenvectors of a
1457 /// symmetric tridiagonal matrix.  The eigenvalues are computed by the
1458 /// dqds algorithm, while eigenvectors are computed from various "good"
1459 /// LDL^T representations (also known as Relatively Robust Representations.)
1460 void sstegr_(ref char jobz, ref char range, ref lapackint n, float *d, float *e, float *vl, float *vu, lapackint *il, lapackint *iu, ref float abstol, ref lapackint m, float *w, float *z, ref lapackint ldz, lapackint *isuppz, float *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
1461 void dstegr_(ref char jobz, ref char range, ref lapackint n, double *d, double *e, double *vl, double *vu, lapackint *il, lapackint *iu, ref double abstol, ref lapackint m, double *w, double *z, ref lapackint ldz, lapackint *isuppz, double *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
1462 void cstegr_(ref char jobz, ref char range, ref lapackint n, float *d, float *e, float *vl, float *vu, lapackint *il, lapackint *iu, ref float abstol, ref lapackint m, float *w, _cfloat *z, ref lapackint ldz, lapackint *isuppz, float *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
1463 void zstegr_(ref char jobz, ref char range, ref lapackint n, double *d, double *e, double *vl, double *vu, lapackint *il, lapackint *iu, ref double abstol, ref lapackint m, double *w, _cdouble *z, ref lapackint ldz, lapackint *isuppz, double *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
1464 
1465 /// Computes selected eigenvectors of a real symmetric tridiagonal
1466 /// matrix by inverse iteration.
1467 void sstein_(ref lapackint n, float *d, float *e, ref lapackint m, float *w, lapackint *iblock, lapackint *isplit, float *z, ref lapackint ldz, float *work, lapackint *iwork, lapackint *ifail, ref lapackint info);
1468 void dstein_(ref lapackint n, double *d, double *e, ref lapackint m, double *w, lapackint *iblock, lapackint *isplit, double *z, ref lapackint ldz, double *work, lapackint *iwork, lapackint *ifail, ref lapackint info);
1469 void cstein_(ref lapackint n, float *d, float *e, ref lapackint m, float *w, lapackint *iblock, lapackint *isplit, _cfloat *z, ref lapackint ldz, float *work, lapackint *iwork, lapackint *ifail, ref lapackint info);
1470 void zstein_(ref lapackint n, double *d, double *e, ref lapackint m, double *w, lapackint *iblock, lapackint *isplit, _cdouble *z, ref lapackint ldz, double *work, lapackint *iwork, lapackint *ifail, ref lapackint info);
1471 
1472 /// Computes all eigenvalues and eigenvectors of a real symmetric
1473 /// tridiagonal matrix, using the implicit QL or QR algorithm.
1474 void ssteqr_(ref char compz, ref lapackint n, float *d, float *e, float *z, ref lapackint ldz, float *work, ref lapackint info);
1475 void dsteqr_(ref char compz, ref lapackint n, double *d, double *e, double *z, ref lapackint ldz, double *work, ref lapackint info);
1476 void csteqr_(ref char compz, ref lapackint n, float *d, float *e, _cfloat *z, ref lapackint ldz, float *work, ref lapackint info);
1477 void zsteqr_(ref char compz, ref lapackint n, double *d, double *e, _cdouble *z, ref lapackint ldz, double *work, ref lapackint info);
1478 
1479 /// Computes all eigenvalues of a real symmetric tridiagonal matrix,
1480 /// using a root-free variant of the QL or QR algorithm.
1481 void ssterf_(ref lapackint n, float *d, float *e, ref lapackint info);
1482 void dsterf_(ref lapackint n, double *d, double *e, ref lapackint info);
1483 
1484 /// Estimates the reciprocal of the condition number of a
1485 /// real symmetric indefinite matrix,
1486 /// using the factorization computed by SSYTRF.
1487 void ssycon_(ref char uplo, ref lapackint n, float *a, ref lapackint lda, lapackint *ipiv, float *anorm, ref float rcond, float *work, lapackint *iwork, ref lapackint info);
1488 void dsycon_(ref char uplo, ref lapackint n, double *a, ref lapackint lda, lapackint *ipiv, double *anorm, ref double rcond, double *work, lapackint *iwork, ref lapackint info);
1489 void csycon_(ref char uplo, ref lapackint n, _cfloat *a, ref lapackint lda, lapackint *ipiv, float *anorm, ref float rcond, _cfloat *work, ref lapackint info);
1490 void zsycon_(ref char uplo, ref lapackint n, _cdouble *a, ref lapackint lda, lapackint *ipiv, double *anorm, ref double rcond, _cdouble *work, ref lapackint info);
1491 
1492 /// Estimates the reciprocal of the condition number of a
1493 /// complex Hermitian indefinite matrix,
1494 /// using the factorization computed by CHETRF.
1495 void checon_(ref char uplo, ref lapackint n, _cfloat *a, ref lapackint lda, lapackint *ipiv, float *anorm, ref float rcond, _cfloat *work, ref lapackint info);
1496 void zhecon_(ref char uplo, ref lapackint n, _cdouble *a, ref lapackint lda, lapackint *ipiv, double *anorm, ref double rcond, _cdouble *work, ref lapackint info);
1497 
1498 /// Reduces a symmetric-definite generalized eigenproblem
1499 /// Ax= lambda Bx,  ABx= lambda x,  or BAx= lambda x, to standard
1500 /// form, where B has been factorized by SPOTRF.
1501 void ssygst_(lapackint *itype, ref char uplo, ref lapackint n, float *a, ref lapackint lda, float *b, ref lapackint ldb, ref lapackint info);
1502 void dsygst_(lapackint *itype, ref char uplo, ref lapackint n, double *a, ref lapackint lda, double *b, ref lapackint ldb, ref lapackint info);
1503 
1504 /// Reduces a Hermitian-definite generalized eigenproblem
1505 /// Ax= lambda Bx,  ABx= lambda x,  or BAx= lambda x, to standard
1506 /// form, where B has been factorized by CPOTRF.
1507 void chegst_(lapackint *itype, ref char uplo, ref lapackint n, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, ref lapackint info);
1508 void zhegst_(lapackint *itype, ref char uplo, ref lapackint n, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, ref lapackint info);
1509 
1510 /// Improves the computed solution to a real
1511 /// symmetric indefinite system of linear equations
1512 /// AX=B, and provides forward and backward error bounds for the
1513 /// solution.
1514 void ssyrfs_(ref char uplo, ref lapackint n, ref lapackint nrhs, float *a, ref lapackint lda, float *af, ref lapackint ldaf, lapackint *ipiv, float *b, ref lapackint ldb, float *x, ref lapackint ldx, float *ferr, float *berr, float *work, lapackint *iwork, ref lapackint info);
1515 void dsyrfs_(ref char uplo, ref lapackint n, ref lapackint nrhs, double *a, ref lapackint lda, double *af, ref lapackint ldaf, lapackint *ipiv, double *b, ref lapackint ldb, double *x, ref lapackint ldx, double *ferr, double *berr, double *work, lapackint *iwork, ref lapackint info);
1516 void csyrfs_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cfloat *a, ref lapackint lda, _cfloat *af, ref lapackint ldaf, lapackint *ipiv, _cfloat *b, ref lapackint ldb, _cfloat *x, ref lapackint ldx, float *ferr, float *berr, _cfloat *work, float *rwork, ref lapackint info);
1517 void zsyrfs_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cdouble *a, ref lapackint lda, _cdouble *af, ref lapackint ldaf, lapackint *ipiv, _cdouble *b, ref lapackint ldb, _cdouble *x, ref lapackint ldx, double *ferr, double *berr, _cdouble *work, double *rwork, ref lapackint info);
1518 
1519 /// Improves the computed solution to a complex
1520 /// Hermitian indefinite system of linear equations
1521 /// AX=B, and provides forward and backward error bounds for the
1522 /// solution.
1523 void cherfs_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cfloat *a, ref lapackint lda, _cfloat *af, ref lapackint ldaf, lapackint *ipiv, _cfloat *b, ref lapackint ldb, _cfloat *x, ref lapackint ldx, float *ferr, float *berr, _cfloat *work, float *rwork, ref lapackint info);
1524 void zherfs_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cdouble *a, ref lapackint lda, _cdouble *af, ref lapackint ldaf, lapackint *ipiv, _cdouble *b, ref lapackint ldb, _cdouble *x, ref lapackint ldx, double *ferr, double *berr, _cdouble *work, double *rwork, ref lapackint info);
1525 
1526 /// Reduces a symmetric matrix to real symmetric tridiagonal
1527 /// form by an orthogonal similarity transformation.
1528 void ssytrd_(ref char uplo, ref lapackint n, float *a, ref lapackint lda, float *d, float *e, float *tau, float *work, ref lapackint lwork, ref lapackint info);
1529 void dsytrd_(ref char uplo, ref lapackint n, double *a, ref lapackint lda, double *d, double *e, double *tau, double *work, ref lapackint lwork, ref lapackint info);
1530 
1531 /// Reduces a Hermitian matrix to real symmetric tridiagonal
1532 /// form by an orthogonal/unitary similarity transformation.
1533 void chetrd_(ref char uplo, ref lapackint n, _cfloat *a, ref lapackint lda, float *d, float *e, _cfloat *tau, _cfloat *work, ref lapackint lwork, ref lapackint info);
1534 void zhetrd_(ref char uplo, ref lapackint n, _cdouble *a, ref lapackint lda, double *d, double *e, _cdouble *tau, _cdouble *work, ref lapackint lwork, ref lapackint info);
1535 
1536 /// Computes the factorization of a real symmetric-indefinite matrix,
1537 /// using the diagonal pivoting method.
1538 void ssytrf_(ref char uplo, ref lapackint n, float *a, ref lapackint lda, lapackint *ipiv, float *work, ref lapackint lwork, ref lapackint info);
1539 void dsytrf_(ref char uplo, ref lapackint n, double *a, ref lapackint lda, lapackint *ipiv, double *work, ref lapackint lwork, ref lapackint info);
1540 void csytrf_(ref char uplo, ref lapackint n, _cfloat *a, ref lapackint lda, lapackint *ipiv, _cfloat *work, ref lapackint lwork, ref lapackint info);
1541 void zsytrf_(ref char uplo, ref lapackint n, _cdouble *a, ref lapackint lda, lapackint *ipiv, _cdouble *work, ref lapackint lwork, ref lapackint info);
1542 
1543 /// Computes the factorization of a real symmetric-indefinite matrix,
1544 /// using the diagonal pivoting method.
1545 void ssytrf_rk_(ref const char uplo, ref const lapackint n, float *a, ref const lapackint lda, float* e, lapackint *ipiv, float *work, ref lapackint lwork, ref lapackint info);
1546 void dsytrf_rk_(ref const char uplo, ref const lapackint n, double *a, ref const lapackint lda, double* e, lapackint *ipiv, double *work, ref lapackint lwork, ref lapackint info);
1547 void csytrf_rk_(ref const char uplo, ref const lapackint n, _cfloat *a, ref const lapackint lda, _cfloat* e, lapackint *ipiv, _cfloat *work, ref lapackint lwork, ref lapackint info);
1548 void zsytrf_rk_(ref const char uplo, ref const lapackint n, _cdouble *a, ref const lapackint lda, _cdouble* e, lapackint *ipiv, _cdouble *work, ref lapackint lwork, ref lapackint info);
1549 
1550 /// Computes the factorization of a complex Hermitian-indefinite matrix,
1551 /// using the diagonal pivoting method.
1552 void chetrf_(ref char uplo, ref lapackint n, _cfloat *a, ref lapackint lda, lapackint *ipiv, _cfloat *work, ref lapackint lwork, ref lapackint info);
1553 void zhetrf_(ref char uplo, ref lapackint n, _cdouble *a, ref lapackint lda, lapackint *ipiv, _cdouble *work, ref lapackint lwork, ref lapackint info);
1554 
1555 /// Computes the inverse of a real symmetric indefinite matrix,
1556 /// using the factorization computed by SSYTRF.
1557 void ssytri_(ref char uplo, ref lapackint n, float *a, ref lapackint lda, lapackint *ipiv, float *work, ref lapackint info);
1558 void dsytri_(ref char uplo, ref lapackint n, double *a, ref lapackint lda, lapackint *ipiv, double *work, ref lapackint info);
1559 void csytri_(ref char uplo, ref lapackint n, _cfloat *a, ref lapackint lda, lapackint *ipiv, _cfloat *work, ref lapackint info);
1560 void zsytri_(ref char uplo, ref lapackint n, _cdouble *a, ref lapackint lda, lapackint *ipiv, _cdouble *work, ref lapackint info);
1561 
1562 /// Computes the inverse of a complex Hermitian indefinite matrix,
1563 /// using the factorization computed by CHETRF.
1564 void chetri_(ref char uplo, ref lapackint n, _cfloat *a, ref lapackint lda, lapackint *ipiv, _cfloat *work, ref lapackint info);
1565 void zhetri_(ref char uplo, ref lapackint n, _cdouble *a, ref lapackint lda, lapackint *ipiv, _cdouble *work, ref lapackint info);
1566 
1567 /// Solves a real symmetric indefinite system of linear equations AX=B,
1568 /// using the factorization computed by SSPTRF.
1569 void ssytrs_(ref char uplo, ref lapackint n, ref lapackint nrhs, float *a, ref lapackint lda, lapackint *ipiv, float *b, ref lapackint ldb, ref lapackint info);
1570 void dsytrs_(ref char uplo, ref lapackint n, ref lapackint nrhs, double *a, ref lapackint lda, lapackint *ipiv, double *b, ref lapackint ldb, ref lapackint info);
1571 void csytrs_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cfloat *a, ref lapackint lda, lapackint *ipiv, _cfloat *b, ref lapackint ldb, ref lapackint info);
1572 void zsytrs_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cdouble *a, ref lapackint lda, lapackint *ipiv, _cdouble *b, ref lapackint ldb, ref lapackint info);
1573 
1574 /// Solves a real symmetric indefinite system of linear equations AX=B,
1575 /// using the factorization computed by SSPTRF_RK.
1576 void ssytrs_3_(ref const char uplo, ref const lapackint n, ref const lapackint nrhs, const(float) *a, ref const lapackint lda, const(float)* e, const(lapackint)* ipiv, float* b, ref const lapackint ldb, ref lapackint info);
1577 void dsytrs_3_(ref const char uplo, ref const lapackint n, ref const lapackint nrhs, const(double) *a, ref const lapackint lda, const(double)* e, const(lapackint)* ipiv, double* b, ref const lapackint ldb, ref lapackint info);
1578 void csytrs_3_(ref const char uplo, ref const lapackint n, ref const lapackint nrhs, const(_cfloat) *a, ref const lapackint lda, const(_cfloat)* e, const(lapackint)* ipiv, _cfloat* b, ref const lapackint ldb, ref lapackint info);
1579 void zsytrs_3_(ref const char uplo, ref const lapackint n, ref const lapackint nrhs, const(_cdouble) *a, ref const lapackint lda, const(_cdouble)* e, const(lapackint)* ipiv, _cdouble* b, ref const lapackint ldb, ref lapackint info);
1580 
1581 /// Solves a complex Hermitian indefinite system of linear equations AX=B,
1582 /// using the factorization computed by CHPTRF.
1583 void chetrs_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cfloat *a, ref lapackint lda, lapackint *ipiv, _cfloat *b, ref lapackint ldb, ref lapackint info);
1584 void zhetrs_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cdouble *a, ref lapackint lda, lapackint *ipiv, _cdouble *b, ref lapackint ldb, ref lapackint info);
1585 
1586 /// Estimates the reciprocal of the condition number of a triangular
1587 /// band matrix, in either the 1-norm or the infinity-norm.
1588 void stbcon_(ref char norm, ref char uplo, ref char diag, ref lapackint n, lapackint *kd, float *ab, ref lapackint ldab, ref float rcond, float *work, lapackint *iwork, ref lapackint info);
1589 void dtbcon_(ref char norm, ref char uplo, ref char diag, ref lapackint n, lapackint *kd, double *ab, ref lapackint ldab, ref double rcond, double *work, lapackint *iwork, ref lapackint info);
1590 void ctbcon_(ref char norm, ref char uplo, ref char diag, ref lapackint n, lapackint *kd, _cfloat *ab, ref lapackint ldab, ref float rcond, _cfloat *work, float *rwork, ref lapackint info);
1591 void ztbcon_(ref char norm, ref char uplo, ref char diag, ref lapackint n, lapackint *kd, _cdouble *ab, ref lapackint ldab, ref double rcond, _cdouble *work, double *rwork, ref lapackint info);
1592 
1593 /// Provides forward and backward error bounds for the solution
1594 /// of a triangular banded system of linear equations AX=B,
1595 /// A**T X=B or A**H X=B.
1596 void stbrfs_(ref char uplo, ref char trans, ref char diag, ref lapackint n, lapackint *kd, ref lapackint nrhs, float *ab, ref lapackint ldab, float *b, ref lapackint ldb, float *x, ref lapackint ldx, float *ferr, float *berr, float *work, lapackint *iwork, ref lapackint info);
1597 void dtbrfs_(ref char uplo, ref char trans, ref char diag, ref lapackint n, lapackint *kd, ref lapackint nrhs, double *ab, ref lapackint ldab, double *b, ref lapackint ldb, double *x, ref lapackint ldx, double *ferr, double *berr, double *work, lapackint *iwork, ref lapackint info);
1598 void ctbrfs_(ref char uplo, ref char trans, ref char diag, ref lapackint n, lapackint *kd, ref lapackint nrhs, _cfloat *ab, ref lapackint ldab, _cfloat *b, ref lapackint ldb, _cfloat *x, ref lapackint ldx, float *ferr, float *berr, _cfloat *work, float *rwork, ref lapackint info);
1599 void ztbrfs_(ref char uplo, ref char trans, ref char diag, ref lapackint n, lapackint *kd, ref lapackint nrhs, _cdouble *ab, ref lapackint ldab, _cdouble *b, ref lapackint ldb, _cdouble *x, ref lapackint ldx, double *ferr, double *berr, _cdouble *work, double *rwork, ref lapackint info);
1600 
1601 /// Solves a triangular banded system of linear equations AX=B,
1602 /// A**T X=B or A**H X=B.
1603 void stbtrs_(ref char uplo, ref char trans, ref char diag, ref lapackint n, lapackint *kd, ref lapackint nrhs, float *ab, ref lapackint ldab, float *b, ref lapackint ldb, ref lapackint info);
1604 void dtbtrs_(ref char uplo, ref char trans, ref char diag, ref lapackint n, lapackint *kd, ref lapackint nrhs, double *ab, ref lapackint ldab, double *b, ref lapackint ldb, ref lapackint info);
1605 void ctbtrs_(ref char uplo, ref char trans, ref char diag, ref lapackint n, lapackint *kd, ref lapackint nrhs, _cfloat *ab, ref lapackint ldab, _cfloat *b, ref lapackint ldb, ref lapackint info);
1606 void ztbtrs_(ref char uplo, ref char trans, ref char diag, ref lapackint n, lapackint *kd, ref lapackint nrhs, _cdouble *ab, ref lapackint ldab, _cdouble *b, ref lapackint ldb, ref lapackint info);
1607 
1608 /// Computes some or all of the right and/or left generalized eigenvectors
1609 /// of a pair of upper triangular matrices.
1610 void stgevc_(ref char side, ref char howmny, ref const lapackint select, ref lapackint n, float *a, ref lapackint lda, float *b, ref lapackint ldb, float *vl, ref lapackint ldvl, float *vr, ref lapackint ldvr, ref lapackint mm, ref lapackint m, float *work, ref lapackint info);
1611 void dtgevc_(ref char side, ref char howmny, ref const lapackint select, ref lapackint n, double *a, ref lapackint lda, double *b, ref lapackint ldb, double *vl, ref lapackint ldvl, double *vr, ref lapackint ldvr, ref lapackint mm, ref lapackint m, double *work, ref lapackint info);
1612 void ctgevc_(ref char side, ref char howmny, ref const lapackint select, ref lapackint n, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, _cfloat *vl, ref lapackint ldvl, _cfloat *vr, ref lapackint ldvr, ref lapackint mm, ref lapackint m, _cfloat *work, float *rwork, ref lapackint info);
1613 void ztgevc_(ref char side, ref char howmny, ref const lapackint select, ref lapackint n, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, _cdouble *vl, ref lapackint ldvl, _cdouble *vr, ref lapackint ldvr, ref lapackint mm, ref lapackint m, _cdouble *work, double *rwork, ref lapackint info);
1614 
1615 /// Reorders the generalized real Schur decomposition of a real
1616 /// matrix pair (A,B) using an orthogonal equivalence transformation
1617 /// so that the diagonal block of (A,B) with row index IFST is moved
1618 /// to row ILST.
1619 void stgexc_(ref const lapackint wantq, ref const lapackint wantz, ref lapackint n, float *a, ref lapackint lda, float *b, ref lapackint ldb, float *q, ref lapackint ldq, float *z, ref lapackint ldz, ref lapackint ifst, ref lapackint ilst, float *work, ref lapackint lwork, ref lapackint info);
1620 void dtgexc_(ref const lapackint wantq, ref const lapackint wantz, ref lapackint n, double *a, ref lapackint lda, double *b, ref lapackint ldb, double *q, ref lapackint ldq, double *z, ref lapackint ldz, ref lapackint ifst, ref lapackint ilst, double *work, ref lapackint lwork, ref lapackint info);
1621 void ctgexc_(ref const lapackint wantq, ref const lapackint wantz, ref lapackint n, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, _cfloat *q, ref lapackint ldq, _cfloat *z, ref lapackint ldz, ref const lapackint ifst, ref const lapackint ilst, ref lapackint info);
1622 void ztgexc_(ref const lapackint wantq, ref const lapackint wantz, ref lapackint n, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, _cdouble *q, ref lapackint ldq, _cdouble *z, ref lapackint ldz, ref const lapackint ifst, ref const lapackint ilst, ref lapackint info);
1623 
1624 /// Reorders the generalized real Schur decomposition of a real
1625 /// matrix pair (A, B) so that a selected cluster of eigenvalues
1626 /// appears in the leading diagonal blocks of the upper quasi-triangular
1627 /// matrix A and the upper triangular B.
1628 void stgsen_(ref const lapackint ijob, ref const lapackint wantq, ref const lapackint wantz, ref const lapackint select, ref lapackint n, float *a, ref lapackint lda, float *b, ref lapackint ldb, float *alphar, float *alphai, float *betav, float *q, ref lapackint ldq, float *z, ref lapackint ldz, ref lapackint m, ref float pl, ref float pr, float *dif, float *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
1629 void dtgsen_(ref const lapackint ijob, ref const lapackint wantq, ref const lapackint wantz, ref const lapackint select, ref lapackint n, double *a, ref lapackint lda, double *b, ref lapackint ldb, double *alphar, double *alphai, double *betav, double *q, ref lapackint ldq, double *z, ref lapackint ldz, ref lapackint m, ref double pl, ref double pr, double *dif, double *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
1630 void ctgsen_(ref const lapackint ijob, ref const lapackint wantq, ref const lapackint wantz, ref const lapackint select, ref lapackint n, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, _cfloat *alphav, _cfloat *betav, _cfloat *q, ref lapackint ldq, _cfloat *z, ref lapackint ldz, ref lapackint m, ref float pl, ref float pr, float *dif, _cfloat *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
1631 void ztgsen_(ref const lapackint ijob, ref const lapackint wantq, ref const lapackint wantz, ref const lapackint select, ref lapackint n, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, _cdouble *alphav, _cdouble *betav, _cdouble *q, ref lapackint ldq, _cdouble *z, ref lapackint ldz, ref lapackint m, ref double pl, ref double pr, double *dif, _cdouble *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
1632 
1633 /// Computes the generalized singular value decomposition of two real
1634 /// upper triangular (or trapezoidal) matrices as output by SGGSVP.
1635 void stgsja_(ref char jobu, ref char jobv, ref char jobq, ref lapackint m, ref lapackint p, ref lapackint n, ref lapackint k, ref lapackint l, float *a, ref lapackint lda, float *b, ref lapackint ldb, float *tola, float *tolb, float *alphav, float *betav, float *u, ref lapackint ldu, float *v, ref lapackint ldv, float *q, ref lapackint ldq, float *work, ref lapackint ncycle, ref lapackint info);
1636 void dtgsja_(ref char jobu, ref char jobv, ref char jobq, ref lapackint m, ref lapackint p, ref lapackint n, ref lapackint k, ref lapackint l, double *a, ref lapackint lda, double *b, ref lapackint ldb, double *tola, double *tolb, double *alphav, double *betav, double *u, ref lapackint ldu, double *v, ref lapackint ldv, double *q, ref lapackint ldq, double *work, ref lapackint ncycle, ref lapackint info);
1637 void ctgsja_(ref char jobu, ref char jobv, ref char jobq, ref lapackint m, ref lapackint p, ref lapackint n, ref lapackint k, ref lapackint l, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, float *tola, float *tolb, float *alphav, float *betav, _cfloat *u, ref lapackint ldu, _cfloat *v, ref lapackint ldv, _cfloat *q, ref lapackint ldq, _cfloat *work, ref lapackint ncycle, ref lapackint info);
1638 void ztgsja_(ref char jobu, ref char jobv, ref char jobq, ref lapackint m, ref lapackint p, ref lapackint n, ref lapackint k, ref lapackint l, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, double *tola, double *tolb, double *alphav, double *betav, _cdouble *u, ref lapackint ldu, _cdouble *v, ref lapackint ldv, _cdouble *q, ref lapackint ldq, _cdouble *work, ref lapackint ncycle, ref lapackint info);
1639 
1640 /// Estimates reciprocal condition numbers for specified
1641 /// eigenvalues and/or eigenvectors of a matrix pair (A, B) in
1642 /// generalized real Schur canonical form, as returned by SGGES.
1643 void stgsna_(ref char job, ref char howmny, ref const lapackint select, ref lapackint n, float *a, ref lapackint lda, float *b, ref lapackint ldb, float *vl, ref lapackint ldvl, float *vr, ref lapackint ldvr, float *s, float *dif, ref lapackint mm, ref lapackint m, float *work, ref lapackint lwork, lapackint *iwork, ref lapackint info);
1644 void dtgsna_(ref char job, ref char howmny, ref const lapackint select, ref lapackint n, double *a, ref lapackint lda, double *b, ref lapackint ldb, double *vl, ref lapackint ldvl, double *vr, ref lapackint ldvr, double *s, double *dif, ref lapackint mm, ref lapackint m, double *work, ref lapackint lwork, lapackint *iwork, ref lapackint info);
1645 void ctgsna_(ref char job, ref char howmny, ref const lapackint select, ref lapackint n, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, _cfloat *vl, ref lapackint ldvl, _cfloat *vr, ref lapackint ldvr, float *s, float *dif, ref lapackint mm, ref lapackint m, _cfloat *work, ref lapackint lwork, lapackint *iwork, ref lapackint info);
1646 void ztgsna_(ref char job, ref char howmny, ref const lapackint select, ref lapackint n, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, _cdouble *vl, ref lapackint ldvl, _cdouble *vr, ref lapackint ldvr, double *s, double *dif, ref lapackint mm, ref lapackint m, _cdouble *work, ref lapackint lwork, lapackint *iwork, ref lapackint info);
1647 
1648 /// Solves the generalized Sylvester equation.
1649 void stgsyl_(ref char trans, lapackint *ijob, ref lapackint m, ref lapackint n, float *a, ref lapackint lda, float *b, ref lapackint ldb, float *c, ref lapackint ldc, float *d, ref lapackint ldd, float *e, ref lapackint lde, float *f, ref lapackint ldf, float *scale, float *dif, float *work, ref lapackint lwork, lapackint *iwork, ref lapackint info);
1650 void dtgsyl_(ref char trans, lapackint *ijob, ref lapackint m, ref lapackint n, double *a, ref lapackint lda, double *b, ref lapackint ldb, double *c, ref lapackint ldc, double *d, ref lapackint ldd, double *e, ref lapackint lde, double *f, ref lapackint ldf, double *scale, double *dif, double *work, ref lapackint lwork, lapackint *iwork, ref lapackint info);
1651 void ctgsyl_(ref char trans, lapackint *ijob, ref lapackint m, ref lapackint n, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, _cfloat *c, ref lapackint ldc, _cfloat *d, ref lapackint ldd, _cfloat *e, ref lapackint lde, _cfloat *f, ref lapackint ldf, float *scale, float *dif, _cfloat *work, ref lapackint lwork, lapackint *iwork, ref lapackint info);
1652 void ztgsyl_(ref char trans, lapackint *ijob, ref lapackint m, ref lapackint n, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, _cdouble *c, ref lapackint ldc, _cdouble *d, ref lapackint ldd, _cdouble *e, ref lapackint lde, _cdouble *f, ref lapackint ldf, double *scale, double *dif, _cdouble *work, ref lapackint lwork, lapackint *iwork, ref lapackint info);
1653 
1654 /// Estimates the reciprocal of the condition number of a triangular
1655 /// matrix in packed storage, in either the 1-norm or the infinity-norm.
1656 void stpcon_(ref char norm, ref char uplo, ref char diag, ref lapackint n, float *ap, ref float rcond, float *work, lapackint *iwork, ref lapackint info);
1657 void dtpcon_(ref char norm, ref char uplo, ref char diag, ref lapackint n, double *ap, ref double rcond, double *work, lapackint *iwork, ref lapackint info);
1658 void ctpcon_(ref char norm, ref char uplo, ref char diag, ref lapackint n, _cfloat *ap, ref float rcond, _cfloat *work, float *rwork, ref lapackint info);
1659 void ztpcon_(ref char norm, ref char uplo, ref char diag, ref lapackint n, _cdouble *ap, ref double rcond, _cdouble *work, double *rwork, ref lapackint info);
1660 
1661 /// Provides forward and backward error bounds for the solution
1662 /// of a triangular system of linear equations AX=B, A**T X=B or
1663 /// A**H X=B, where A is held in packed storage.
1664 void stprfs_(ref char uplo, ref char trans, ref char diag, ref lapackint n, ref lapackint nrhs, float *ap, float *b, ref lapackint ldb, float *x, ref lapackint ldx, float *ferr, float *berr, float *work, lapackint *iwork, ref lapackint info);
1665 void dtprfs_(ref char uplo, ref char trans, ref char diag, ref lapackint n, ref lapackint nrhs, double *ap, double *b, ref lapackint ldb, double *x, ref lapackint ldx, double *ferr, double *berr, double *work, lapackint *iwork, ref lapackint info);
1666 void ctprfs_(ref char uplo, ref char trans, ref char diag, ref lapackint n, ref lapackint nrhs, _cfloat *ap, _cfloat *b, ref lapackint ldb, _cfloat *x, ref lapackint ldx, float *ferr, float *berr, _cfloat *work, float *rwork, ref lapackint info);
1667 void ztprfs_(ref char uplo, ref char trans, ref char diag, ref lapackint n, ref lapackint nrhs, _cdouble *ap, _cdouble *b, ref lapackint ldb, _cdouble *x, ref lapackint ldx, double *ferr, double *berr, _cdouble *work, double *rwork, ref lapackint info);
1668 
1669 ///  Computes the inverse of a triangular matrix in packed storage.
1670 void stptri_(ref char uplo, ref char diag, ref lapackint n, float *ap, ref lapackint info);
1671 void dtptri_(ref char uplo, ref char diag, ref lapackint n, double *ap, ref lapackint info);
1672 void ctptri_(ref char uplo, ref char diag, ref lapackint n, _cfloat *ap, ref lapackint info);
1673 void ztptri_(ref char uplo, ref char diag, ref lapackint n, _cdouble *ap, ref lapackint info);
1674 
1675 /// Solves a triangular system of linear equations AX=B,
1676 /// A**T X=B or A**H X=B, where A is held in packed storage.
1677 void stptrs_(ref char uplo, ref char trans, ref char diag, ref lapackint n, ref lapackint nrhs, float *ap, float *b, ref lapackint ldb, ref lapackint info);
1678 void dtptrs_(ref char uplo, ref char trans, ref char diag, ref lapackint n, ref lapackint nrhs, double *ap, double *b, ref lapackint ldb, ref lapackint info);
1679 void ctptrs_(ref char uplo, ref char trans, ref char diag, ref lapackint n, ref lapackint nrhs, _cfloat *ap, _cfloat *b, ref lapackint ldb, ref lapackint info);
1680 void ztptrs_(ref char uplo, ref char trans, ref char diag, ref lapackint n, ref lapackint nrhs, _cdouble *ap, _cdouble *b, ref lapackint ldb, ref lapackint info);
1681 
1682 /// Estimates the reciprocal of the condition number of a triangular
1683 /// matrix, in either the 1-norm or the infinity-norm.
1684 void strcon_(ref char norm, ref char uplo, ref char diag, ref lapackint n, float *a, ref lapackint lda, ref float rcond, float *work, lapackint *iwork, ref lapackint info);
1685 void dtrcon_(ref char norm, ref char uplo, ref char diag, ref lapackint n, double *a, ref lapackint lda, ref double rcond, double *work, lapackint *iwork, ref lapackint info);
1686 void ctrcon_(ref char norm, ref char uplo, ref char diag, ref lapackint n, _cfloat *a, ref lapackint lda, ref float rcond, _cfloat *work, float *rwork, ref lapackint info);
1687 void ztrcon_(ref char norm, ref char uplo, ref char diag, ref lapackint n, _cdouble *a, ref lapackint lda, ref double rcond, _cdouble *work, double *rwork, ref lapackint info);
1688 
1689 /// Computes some or all of the right and/or left eigenvectors of
1690 /// an upper quasi-triangular matrix.
1691 void strevc_(ref char side, ref char howmny, ref lapackint select, ref lapackint n, float *t, ref lapackint ldt, float *vl, ref lapackint ldvl, float *vr, ref lapackint ldvr, ref lapackint mm, ref lapackint m, float *work, ref lapackint info);
1692 void dtrevc_(ref char side, ref char howmny, ref lapackint select, ref lapackint n, double *t, ref lapackint ldt, double *vl, ref lapackint ldvl, double *vr, ref lapackint ldvr, ref lapackint mm, ref lapackint m, double *work, ref lapackint info);
1693 void ctrevc_(ref char side, ref char howmny, ref lapackint select, ref lapackint n, _cfloat *t, ref lapackint ldt, _cfloat *vl, ref lapackint ldvl, _cfloat *vr, ref lapackint ldvr, ref lapackint mm, ref lapackint m, _cfloat *work, float *rwork, ref lapackint info);
1694 void ztrevc_(ref char side, ref char howmny, ref lapackint select, ref lapackint n, _cdouble *t, ref lapackint ldt, _cdouble *vl, ref lapackint ldvl, _cdouble *vr, ref lapackint ldvr, ref lapackint mm, ref lapackint m, _cdouble *work, double *rwork, ref lapackint info);
1695 
1696 /// Reorders the Schur factorization of a matrix by an orthogonal
1697 /// similarity transformation.
1698 void strexc_(ref char compq, ref lapackint n, float *t, ref lapackint ldt, float *q, ref lapackint ldq, lapackint *ifst, lapackint *ilst, float *work, ref lapackint info);
1699 void dtrexc_(ref char compq, ref lapackint n, double *t, ref lapackint ldt, double *q, ref lapackint ldq, lapackint *ifst, lapackint *ilst, double *work, ref lapackint info);
1700 void ctrexc_(ref char compq, ref lapackint n, _cfloat *t, ref lapackint ldt, _cfloat *q, ref lapackint ldq, lapackint *ifst, lapackint *ilst, ref lapackint info);
1701 void ztrexc_(ref char compq, ref lapackint n, _cdouble *t, ref lapackint ldt, _cdouble *q, ref lapackint ldq, lapackint *ifst, lapackint *ilst, ref lapackint info);
1702 
1703 /// Provides forward and backward error bounds for the solution
1704 /// of a triangular system of linear equations A X=B, A**T X=B or
1705 /// A**H X=B.
1706 void strrfs_(ref char uplo, ref char trans, ref char diag, ref lapackint n, ref lapackint nrhs, float *a, ref lapackint lda, float *b, ref lapackint ldb, float *x, ref lapackint ldx, float *ferr, float *berr, float *work, lapackint *iwork, ref lapackint info);
1707 void dtrrfs_(ref char uplo, ref char trans, ref char diag, ref lapackint n, ref lapackint nrhs, double *a, ref lapackint lda, double *b, ref lapackint ldb, double *x, ref lapackint ldx, double *ferr, double *berr, double *work, lapackint *iwork, ref lapackint info);
1708 void ctrrfs_(ref char uplo, ref char trans, ref char diag, ref lapackint n, ref lapackint nrhs, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, _cfloat *x, ref lapackint ldx, float *ferr, float *berr, _cfloat *work, float *rwork, ref lapackint info);
1709 void ztrrfs_(ref char uplo, ref char trans, ref char diag, ref lapackint n, ref lapackint nrhs, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, _cdouble *x, ref lapackint ldx, double *ferr, double *berr, _cdouble *work, double *rwork, ref lapackint info);
1710 
1711 /// Reorders the Schur factorization of a matrix in order to find
1712 /// an orthonormal basis of a right invariant subspace corresponding
1713 /// to selected eigenvalues, and returns reciprocal condition numbers
1714 /// (sensitivities) of the average of the cluster of eigenvalues
1715 /// and of the invariant subspace.
1716 void strsen_(ref char job, ref char compq, ref const lapackint select, ref lapackint n, float *t, ref lapackint ldt, float *q, ref lapackint ldq, float *wr, float *wi, ref lapackint m, ref float s, ref float sep, float *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
1717 void dtrsen_(ref char job, ref char compq, ref const lapackint select, ref lapackint n, double *t, ref lapackint ldt, double *q, ref lapackint ldq, double *wr, double *wi, ref lapackint m, ref double s, ref double sep, double *work, ref lapackint lwork, lapackint *iwork, lapackint *liwork, ref lapackint info);
1718 void ctrsen_(ref char job, ref char compq, ref const lapackint select, ref lapackint n, _cfloat *t, ref lapackint ldt, _cfloat *q, ref lapackint ldq, _cfloat *w, ref lapackint m, ref float s, ref float sep, _cfloat *work, ref lapackint lwork, ref lapackint info);
1719 void ztrsen_(ref char job, ref char compq, ref const lapackint select, ref lapackint n, _cdouble *t, ref lapackint ldt, _cdouble *q, ref lapackint ldq, _cdouble *w, ref lapackint m, ref double s, ref double sep, _cdouble *work, ref lapackint lwork, ref lapackint info);
1720 
1721 /// Estimates the reciprocal condition numbers (sensitivities)
1722 /// of selected eigenvalues and eigenvectors of an upper
1723 /// quasi-triangular matrix.
1724 void strsna_(ref char job, ref char howmny, ref const lapackint select, ref lapackint n, float *t, ref lapackint ldt, float *vl, ref lapackint ldvl, float *vr, ref lapackint ldvr, float *s, float *sep, ref lapackint mm, ref lapackint m, float *work, ref lapackint ldwork, lapackint *iwork, ref lapackint info);
1725 void dtrsna_(ref char job, ref char howmny, ref const lapackint select, ref lapackint n, double *t, ref lapackint ldt, double *vl, ref lapackint ldvl, double *vr, ref lapackint ldvr, double *s, double *sep, ref lapackint mm, ref lapackint m, double *work, ref lapackint ldwork, lapackint *iwork, ref lapackint info);
1726 void ctrsna_(ref char job, ref char howmny, ref const lapackint select, ref lapackint n, _cfloat *t, ref lapackint ldt, _cfloat *vl, ref lapackint ldvl, _cfloat *vr, ref lapackint ldvr, float *s, float *sep, ref lapackint mm, ref lapackint m, _cfloat *work, ref lapackint ldwork, float *rwork, ref lapackint info);
1727 void ztrsna_(ref char job, ref char howmny, ref const lapackint select, ref lapackint n, _cdouble *t, ref lapackint ldt, _cdouble *vl, ref lapackint ldvl, _cdouble *vr, ref lapackint ldvr, double *s, double *sep, ref lapackint mm, ref lapackint m, _cdouble *work, ref lapackint ldwork, double *rwork, ref lapackint info);
1728 
1729 /// Solves the Sylvester matrix equation A X +/- X B=C where A
1730 /// and B are upper quasi-triangular, and may be transposed.
1731 void strsyl_(ref char trana, ref char tranb, lapackint *isgn, ref lapackint m, ref lapackint n, float *a, ref lapackint lda, float *b, ref lapackint ldb, float *c, ref lapackint ldc, float *scale, ref lapackint info);
1732 void dtrsyl_(ref char trana, ref char tranb, lapackint *isgn, ref lapackint m, ref lapackint n, double *a, ref lapackint lda, double *b, ref lapackint ldb, double *c, ref lapackint ldc, double *scale, ref lapackint info);
1733 void ctrsyl_(ref char trana, ref char tranb, lapackint *isgn, ref lapackint m, ref lapackint n, _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, _cfloat *c, ref lapackint ldc, float *scale, ref lapackint info);
1734 void ztrsyl_(ref char trana, ref char tranb, lapackint *isgn, ref lapackint m, ref lapackint n, _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, _cdouble *c, ref lapackint ldc, double *scale, ref lapackint info);
1735 
1736 /// Computes the inverse of a triangular matrix.
1737 void strtri_(ref char uplo, ref char diag, ref lapackint n, float *a, ref lapackint lda, ref lapackint info);
1738 void dtrtri_(ref char uplo, ref char diag, ref lapackint n, double *a, ref lapackint lda, ref lapackint info);
1739 void ctrtri_(ref char uplo, ref char diag, ref lapackint n, _cfloat *a, ref lapackint lda, ref lapackint info);
1740 void ztrtri_(ref char uplo, ref char diag, ref lapackint n, _cdouble *a, ref lapackint lda, ref lapackint info);
1741 
1742 /// Solves a triangular system of linear equations AX=B,
1743 /// A**T X=B or A**H X=B.
1744 void strtrs_(ref char uplo, ref char trans, ref char diag, ref lapackint n, ref lapackint nrhs, const float *a, ref lapackint lda, float *b, ref lapackint ldb, ref lapackint info);
1745 void dtrtrs_(ref char uplo, ref char trans, ref char diag, ref lapackint n, ref lapackint nrhs, const double *a, ref lapackint lda, double *b, ref lapackint ldb, ref lapackint info);
1746 void ctrtrs_(ref char uplo, ref char trans, ref char diag, ref lapackint n, ref lapackint nrhs, const _cfloat *a, ref lapackint lda, _cfloat *b, ref lapackint ldb, ref lapackint info);
1747 void ztrtrs_(ref char uplo, ref char trans, ref char diag, ref lapackint n, ref lapackint nrhs, const _cdouble *a, ref lapackint lda, _cdouble *b, ref lapackint ldb, ref lapackint info);
1748 
1749 /// Computes an RQ factorization of an upper trapezoidal matrix.
1750 void stzrqf_(ref lapackint m, ref lapackint n, float *a, ref lapackint lda, float *tau, ref lapackint info);
1751 void dtzrqf_(ref lapackint m, ref lapackint n, double *a, ref lapackint lda, double *tau, ref lapackint info);
1752 void ctzrqf_(ref lapackint m, ref lapackint n, _cfloat *a, ref lapackint lda, _cfloat *tau, ref lapackint info);
1753 void ztzrqf_(ref lapackint m, ref lapackint n, _cdouble *a, ref lapackint lda, _cdouble *tau, ref lapackint info);
1754 
1755 /// Computes an RZ factorization of an upper trapezoidal matrix
1756 /// (blocked version of STZRQF).
1757 void stzrzf_(ref lapackint m, ref lapackint n, float *a, ref lapackint lda, float *tau, float *work, ref lapackint lwork, ref lapackint info);
1758 void dtzrzf_(ref lapackint m, ref lapackint n, double *a, ref lapackint lda, double *tau, double *work, ref lapackint lwork, ref lapackint info);
1759 void ctzrzf_(ref lapackint m, ref lapackint n, _cfloat *a, ref lapackint lda, _cfloat *tau, _cfloat *work, ref lapackint lwork, ref lapackint info);
1760 void ztzrzf_(ref lapackint m, ref lapackint n, _cdouble *a, ref lapackint lda, _cdouble *tau, _cdouble *work, ref lapackint lwork, ref lapackint info);
1761 
1762 
1763 /// Multiplies a general matrix by the unitary
1764 /// transformation matrix from a reduction to tridiagonal form
1765 /// determined by CHPTRD.
1766 void cupmtr_(ref char side, ref char uplo, ref char trans, ref lapackint m, ref lapackint n, _cfloat *ap, _cfloat *tau, _cfloat *c, ref lapackint ldc, _cfloat *work, ref lapackint info);
1767 void zupmtr_(ref char side, ref char uplo, ref char trans, ref lapackint m, ref lapackint n, _cdouble *ap, _cdouble *tau, _cdouble *c, ref lapackint ldc, _cdouble *work, ref lapackint info);
1768 
1769 /// Solves a real symmetric indefinite system of linear equations AX=B,
1770 /// using the factorization computed by SYTRF.
1771 void ssytrs2_(ref char uplo, ref lapackint n, ref lapackint nrhs, float *a, ref lapackint lda, lapackint *ipiv, float *b, ref lapackint ldb, float *work, ref lapackint info);
1772 void dsytrs2_(ref char uplo, ref lapackint n, ref lapackint nrhs, double *a, ref lapackint lda, lapackint *ipiv, double *b, ref lapackint ldb, double *work, ref lapackint info);
1773 void csytrs2_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cfloat *a, ref lapackint lda, lapackint *ipiv, _cfloat *b, ref lapackint ldb, _cfloat *work, ref lapackint info);
1774 void zsytrs2_(ref char uplo, ref lapackint n, ref lapackint nrhs, _cdouble *a, ref lapackint lda, lapackint *ipiv, _cdouble *b, ref lapackint ldb, _cdouble *work, ref lapackint info);
1775 
1776 ///Solve the least squares problem
1777 ///using the QR factorization computed by GEQRF
1778 void sgeqrs_(ref lapackint m, ref lapackint n, ref lapackint nrhs, float *a, ref lapackint lda, float *tau, float *b, ref lapackint ldb, float *work, ref lapackint lwork, ref lapackint info);
1779 void dgeqrs_(ref lapackint m, ref lapackint n, ref lapackint nrhs, double *a, ref lapackint lda, double *tau, double *b, ref lapackint ldb, double *work, ref lapackint lwork, ref lapackint info);
1780 void cgeqrs_(ref lapackint m, ref lapackint n, ref lapackint nrhs, _cfloat *a, ref lapackint lda, _cfloat *tau, _cfloat *b, ref lapackint ldb, _cfloat *work, ref lapackint lwork, ref lapackint info);
1781 void zgeqrs_(ref lapackint m, ref lapackint n, ref lapackint nrhs, _cdouble *a, ref lapackint lda, _cdouble *tau, _cdouble *b, ref lapackint ldb, _cdouble *work, ref lapackint lwork, ref lapackint info);
1782 
1783 //------------------------------------
1784 //     ----- MISC routines -----
1785 //------------------------------------
1786 
1787 ///
1788 lapackint ilaenv_(ref const lapackint ispec, scope const(char)* name, scope const(char)* opts, ref const lapackint n1, ref const lapackint n2, ref const lapackint n3, ref const lapackint n4);
1789 ///
1790 lapackint ilaenv2stage_(ref const lapackint ispec, scope const(char)* name, scope const(char)* opts, ref const lapackint n1, ref const lapackint n2, ref const lapackint n3, ref const lapackint n4);
1791 ///
1792 void ilaenvset_(ref const lapackint ispec, scope const(char)* name, scope const(char)* opts, ref const lapackint n1, ref const lapackint n2, ref const lapackint n3, ref const lapackint n4, ref const lapackint nvalue, ref lapackint info);
1793 
1794 ///
1795 float slamch_(char* cmach);
1796 double dlamch_(char* cmach);
1797 
1798 version(CLAPACK_NETLIB)
1799 {
1800     ///
1801     lapack_float_ret_t second_();
1802     ///
1803     double dsecnd_();
1804 }