Vocabulary/LAPACK

First, go to Package Manager and make sure you have the latest version of the math/lapack2 addon.

To use it:

```   load 'math/lapack2'
```

Finding a LAPACK function

The LAPACK documentation is here. Browse through it to find the function you need, and go to the manual page to find the meaning of the arguments.

Examples of use

QR decomposition

You have a matrix a and you want to find the QR decomposition.

```   ]a=: 3 3 \$12. _51 4 6 167 _68 _4 24 _41  NB. Floating-point matrix
12 _51   4
6 167 _68
_4  24 _41
```

Decide which LAPACK function to use

Go through the LAPACK library and decide which function you want to use. This may take some time, as there are often several different routines depending on what you know about your inputs (are they symmetric, upper-triangular, etc?) and what form of output you want. Consult whatever references you need.

For QR factorization we find GEQRF, listed in some references as ?GEQRF. This needs one more letter to complete the name of the function.

The first letter of a LAPACK function indicates the argument precision, the rest indicate the operation. J floating-point values are double-precision floating-point, so they begin with the letter D.

The routine we will use is DGEQRF in LAPACK. The j verb is named dgeqrf.

Understand the argument layout

Starting from the page at http://www.netlib.org/lapack/explore-html/modules.html, we expand Modules>LAPACK>General Matrices>Computational Routines>double>dgeqrf to get to the page on [dgeqrf]. Read and understand the parameters.

The parameters match those given in the J function header created by the math/lapack2 addon:

```   load 'math/lapack2'
dgeqrf_jlapack2_
'"c:/j901/addons/math/lapack2/lib/liblapack3.dll" dgeqrf_ + n *i *i *d *i *d *d *i *i '&cd
```

The part of this you need to understand is the argument descriptors n *i *i *d *i *d *d *i *i. (For the full description of the last line see here.) The first field describes the result; the value n indicates that the function does not return a result. The other 8 fields correspond to the definition on the dgeqrf page. i signifies an integer, d floating-point.

Note that every argument is passed by a pointer, indicated by the * in each argument descriptor. This is the FORTRAN call-by-reference standard. What this means to you is that every argument whose descriptor contains * must be an array, not an atom.

Also be aware that the LAPACK routines, being FORTRAN routines, expect matrices to be stored in column-major order rather than J's row-major order. Thus, you will need to transpose arrays going into and coming out of LAPACK routines unless you know they are symmetric.

Write the interface routine

We will build up the routine for QR factorization step by step in an explicit definition.

Reading the argument description, we see that the argument WORK is an array whose size must be determined by a preliminary call to dgeqrf. We'll start with that call:

```require 'math/lapack2'
NB. QR factorization of y
NB. Result is Q;R such that Q is unitary, R is upper-triangular, and y -: Q +/ . * R
dgeqrf =: 3 : 0
assert. 2 = #@\$ y  NB. y must be a matrix
'r c' =. ,"0 \$ y  NB. get # rows and columns, as lists
NB. preliminary call to find best LWORK
ret =. dgeqrf_jlapack2_ c;r;(|:y);(1>.c);((r<.c)\$0.);(1\$0.);(,_1);,_1
assert. 0 = _1 {:: ret
ret
)
dgeqrf a
+-+-+-+-----------+-+-----+-+--+-+
|0|3|3| 12   6  _4|3|0 0 0|3|_1|0|
| | | |_51 167  24| |     | |  | |
| | | |  4 _68 _41| |     | |  | |
+-+-+-+-----------+-+-----+-+--+-+
```

It worked. Good return (the 0 at the end), and the WORK argument has been filled in with the value to use for LWORK. We will extend our program to use that value of LWORK to do the work:

If you pass a name into a LAPACK routine, J makes a copy of the name before calling LAPACK. Thus, the name itself is unchanged, even if the LAPACK documentation says that the field is modified. To see the result of the LAPACK function you must look in the boxed result of the call (ret here).

```   dgeqrf =: 3 : 0
assert. 2 = #@\$ y  NB. y must be a matrix
'r c' =. ,"0 \$ y  NB. get # rows and columns, as lists
NB. preliminary call to find best LWORK
ret =. dgeqrf_jlapack2_ c;r;(|:y);(1>.c);((r<.c)\$0.);(1\$0.);(,_1);,_1
assert. 0 = _1 {:: ret
lwork =. , (6;0) {:: ret  NB. extract
best value for LWORKret
ret =. dgeqrf_jlapack2_ c;r;(|:y);(1>.c);((r<.c)\$0.);(lwork\$0.);lwork;,_1
assert. 0 = _1 {:: ret
ret
)
dgeqrf a
+-+-+-+-------------+-+---------------+-------+-+-+
|0|3|3| 14  _3     2|3|0.142857 1.28 2|3 126 0|3|0|
| | | | 21 175 _0.75| |               |       | | |
| | | |_14 _70    35| |               |       | | |
+-+-+-+-------------+-+---------------+-------+-+-+
```

We have the result of dgeqrf, but where are Q and R? After examination of the description of dgeqrf we realize that Q and R are packed into the result matrix, with the main diagonal and above being R and the part below the diagonal representing a sequence of Householder transformations that identify Q. To realize Q itself we need another search through our resources, and we finally land on the function dorgqr]. It takes the result of dgeqrf and expands the product to produce Q. This makes the whole program:

```   dgeqrf =: 3 : 0
assert. 2 = #@\$ y  NB. y must be a matrix
'r c' =. ,"0 \$ y  NB. get # rows and columns, as lists
NB. preliminary call to find best LWORK
ret =. dgeqrf_jlapack2_ c;r;(|:y);(1>.c);((r<.c)\$0.);(1\$0.);(,_1);,_1
assert. 0 = _1 {:: ret
lwork =. , (6;0) {:: ret  NB. extract recommended size of workarea
ret =. dgeqrf_jlapack2_ c;r;(|:y);(1>.c);((r<.c)\$0.);(lwork\$0.);lwork;,_1
assert. 0 = _1 {:: ret
R =. |: ({."0 1~  #\) 3 {:: ret  NB. Remember transposed order!  take up through the main diagonal of each row, then transpose
ret =. dorgqr_jlapack2_ (1 2 2 3 4 5 6 7{ret),<,_1  NB. Realize Q.  Reuse workareas
assert. 0 = _1 {:: ret
(|: 4{::ret);R  NB. Return Q and R, remembering to transpose the Q result
)
dgeqrf a
+-----------------------------+----------+
| 0.857143 _0.394286 _0.331429|14  21 _14|
| 0.428571  0.902857 0.0342857| 0 175 _70|
|_0.285714  0.171429 _0.942857| 0   0  35|
+-----------------------------+----------+
+/ . *&>/ dgeqrf a
12 _51   4
6 167 _68
_4  24 _41
```

Estimate condition number of a symmetric matrix

Searching resources we find the LAPACK call DSYCON which requires first calculating the 1-norm of the matrix and then factoring it using DSYTRF. We can calculate the 1-norm in J directly. The program is

```require 'math/lapack2'
NB. Program to estimate the reciprocal condition number (in the 1-norm) of symmetric real matrix y.
NB. Result is reciprocal condition number
dsycon =: 3 : 0
assert. 2 = #@\$ y
n =. ,#y  NB. # rows, as vector
ret =. dsytrf_jlapack2_ (,'U');n;y;n;(n\$00);(1\$0.);(,_1);,_1    NB. no need to transpose symmetric matrix
assert. 0 = _1{::ret
lwork =. , (6;0) {:: ret  NB. extract size of workarea
ret =. dsytrf_jlapack2_ (,'U');n;y;n;(n\$00);(lwork\$0.);(,lwork);,_1  NB. Call again with workarea allocated
assert. 0 = _1{::ret
ret =. dsycon_jlapack2_ (1 2 3 4 5{ret),(, >./ +/"1 | y);(1\$0.);((2*n)\$0.);(n\$01);,_1
assert. 0 = _1{::ret
7{::ret
)
dsycon  2 2 \$ 2 0 0 1
0.5
```

Verbs defined in math/lapack2

The lapack2 addon consists mainly of a set of cover verbs for the LAPACK functions. These verbs call the LAPACK DLL. You need to understand how to pass parameters to a DLL. The cover verbs are already set up to give your argument the correct datatype.

All these verbs are defined in the jlapack2 locale.

 Function name Result/arguments (first field is result) sgetrf n *i *i *f *i *i *i dgetrf n *i *i *d *i *i *i cgetrf n *i *i *z *i *i *i zgetrf n *i *i *j *i *i *i sgetrf2 n *i *i *f *i *i *i dgetrf2 n *i *i *d *i *i *i cgetrf2 n *i *i *z *i *i *i zgetrf2 n *i *i *j *i *i *i sgbtrf n *i *i *i *i *f *i *i *i dgbtrf n *i *i *i *i *d *i *i *i cgbtrf n *i *i *i *i *z *i *i *i zgbtrf n *i *i *i *i *j *i *i *i sgttrf n *i *f *f *f *f *i *i dgttrf n *i *d *d *d *d *i *i cgttrf n *i *z *z *z *z *i *i zgttrf n *i *j *j *j *j *i *i spotrf2 n *c *i *f *i *i dpotrf2 n *c *i *d *i *i cpotrf2 n *c *i *z *i *i zpotrf2 n *c *i *j *i *i spotrf n *c *i *f *i *i dpotrf n *c *i *d *i *i cpotrf n *c *i *z *i *i zpotrf n *c *i *j *i *i dpstrf n *c *i *d *i *i *i *d *d *i spstrf n *c *i *f *i *i *i *f *f *i zpstrf n *c *i *j *i *i *i *d *d *i cpstrf n *c *i *z *i *i *i *f *f *i dpftrf n *c *c *i *d *i spftrf n *c *c *i *f *i zpftrf n *c *c *i *j *i cpftrf n *c *c *i *z *i spptrf n *c *i *f *i dpptrf n *c *i *d *i cpptrf n *c *i *z *i zpptrf n *c *i *j *i spbtrf n *c *i *i *f *i *i dpbtrf n *c *i *i *d *i *i cpbtrf n *c *i *i *z *i *i zpbtrf n *c *i *i *j *i *i spttrf n *i *f *f *i dpttrf n *i *d *d *i cpttrf n *i *f *z *i zpttrf n *i *d *j *i ssytrf n *c *i *f *i *i *f *i *i dsytrf n *c *i *d *i *i *d *i *i csytrf n *c *i *z *i *i *z *i *i zsytrf n *c *i *j *i *i *j *i *i chetrf n *c *i *z *i *i *z *i *i zhetrf n *c *i *j *i *i *j *i *i ssptrf n *c *i *f *i *i dsptrf n *c *i *d *i *i csptrf n *c *i *z *i *i zsptrf n *c *i *j *i *i chptrf n *c *i *z *i *i zhptrf n *c *i *j *i *i sgetrs n *c *i *i *f *i *i *f *i *i dgetrs n *c *i *i *d *i *i *d *i *i cgetrs n *c *i *i *z *i *i *z *i *i zgetrs n *c *i *i *j *i *i *j *i *i sgbtrs n *c *i *i *i *i *f *i *i *f *i *i dgbtrs n *c *i *i *i *i *d *i *i *d *i *i cgbtrs n *c *i *i *i *i *z *i *i *z *i *i zgbtrs n *c *i *i *i *i *j *i *i *j *i *i sgttrs n *c *i *i *f *f *f *f *i *f *i *i dgttrs n *c *i *i *d *d *d *d *i *d *i *i cgttrs n *c *i *i *z *z *z *z *i *z *i *i zgttrs n *c *i *i *j *j *j *j *i *j *i *i spotrs n *c *i *i *f *i *f *i *i dpotrs n *c *i *i *d *i *d *i *i cpotrs n *c *i *i *z *i *z *i *i zpotrs n *c *i *i *j *i *j *i *i dpftrs n *c *c *i *i *d *d *i *i spftrs n *c *c *i *i *f *f *i *i zpftrs n *c *c *i *i *j *j *i *i cpftrs n *c *c *i *i *z *z *i *i spptrs n *c *i *i *f *f *i *i dpptrs n *c *i *i *d *d *i *i cpptrs n *c *i *i *z *z *i *i zpptrs n *c *i *i *j *j *i *i spbtrs n *c *i *i *i *f *i *f *i *i dpbtrs n *c *i *i *i *d *i *d *i *i cpbtrs n *c *i *i *i *z *i *z *i *i zpbtrs n *c *i *i *i *j *i *j *i *i spttrs n *i *i *f *f *f *i *i dpttrs n *i *i *d *d *d *i *i cpttrs n *c *i *i *f *z *z *i *i zpttrs n *c *i *i *d *j *j *i *i ssytrs n *c *i *i *f *i *i *f *i *i dsytrs n *c *i *i *d *i *i *d *i *i csytrs n *c *i *i *z *i *i *z *i *i zsytrs n *c *i *i *j *i *i *j *i *i chetrs n *c *i *i *z *i *i *z *i *i zhetrs n *c *i *i *j *i *i *j *i *i ssptrs n *c *i *i *f *i *f *i *i dsptrs n *c *i *i *d *i *d *i *i csptrs n *c *i *i *z *i *z *i *i zsptrs n *c *i *i *j *i *j *i *i chptrs n *c *i *i *z *i *z *i *i zhptrs n *c *i *i *j *i *j *i *i strtrs n *c *c *c *i *i *f *i *f *i *i dtrtrs n *c *c *c *i *i *d *i *d *i *i ctrtrs n *c *c *c *i *i *z *i *z *i *i ztrtrs n *c *c *c *i *i *j *i *j *i *i stptrs n *c *c *c *i *i *f *f *i *i dtptrs n *c *c *c *i *i *d *d *i *i ctptrs n *c *c *c *i *i *z *z *i *i ztptrs n *c *c *c *i *i *j *j *i *i stbtrs n *c *c *c *i *i *i *f *i *f *i *i dtbtrs n *c *c *c *i *i *i *d *i *d *i *i ctbtrs n *c *c *c *i *i *i *z *i *z *i *i ztbtrs n *c *c *c *i *i *i *j *i *j *i *i sgecon n *c *i *f *i *f *f *f *i *i dgecon n *c *i *d *i *d *d *d *i *i cgecon n *c *i *z *i *f *f *z *f *i zgecon n *c *i *j *i *d *d *j *d *i sgbcon n *c *i *i *i *f *i *i *f *f *f *i *i dgbcon n *c *i *i *i *d *i *i *d *d *d *i *i cgbcon n *c *i *i *i *z *i *i *f *f *z *f *i zgbcon n *c *i *i *i *j *i *i *d *d *j *d *i sgtcon n *c *i *f *f *f *f *i *f *f *f *i *i dgtcon n *c *i *d *d *d *d *i *d *d *d *i *i cgtcon n *c *i *z *z *z *z *i *f *f *z *i zgtcon n *c *i *j *j *j *j *i *d *d *j *i spocon n *c *i *f *i *f *f *f *i *i dpocon n *c *i *d *i *d *d *d *i *i cpocon n *c *i *z *i *f *f *z *f *i zpocon n *c *i *j *i *d *d *j *d *i sppcon n *c *i *f *f *f *f *i *i dppcon n *c *i *d *d *d *d *i *i cppcon n *c *i *z *f *f *z *f *i zppcon n *c *i *j *d *d *j *d *i spbcon n *c *i *i *f *i *f *f *f *i *i dpbcon n *c *i *i *d *i *d *d *d *i *i cpbcon n *c *i *i *z *i *f *f *z *f *i zpbcon n *c *i *i *j *i *d *d *j *d *i sptcon n *i *f *f *f *f *f *i dptcon n *i *d *d *d *d *d *i cptcon n *i *f *z *f *f *f *i zptcon n *i *d *j *d *d *d *i ssycon n *c *i *f *i *i *f *f *f *i *i dsycon n *c *i *d *i *i *d *d *d *i *i csycon n *c *i *z *i *i *f *f *z *i zsycon n *c *i *j *i *i *d *d *j *i checon n *c *i *z *i *i *f *f *z *i zhecon n *c *i *j *i *i *d *d *j *i sspcon n *c *i *f *i *f *f *f *i *i dspcon n *c *i *d *i *d *d *d *i *i cspcon n *c *i *z *i *f *f *z *i zspcon n *c *i *j *i *d *d *j *i chpcon n *c *i *z *i *f *f *z *i zhpcon n *c *i *j *i *d *d *j *i strcon n *c *c *c *i *f *i *f *f *i *i dtrcon n *c *c *c *i *d *i *d *d *i *i ctrcon n *c *c *c *i *z *i *f *z *f *i ztrcon n *c *c *c *i *j *i *d *j *d *i stpcon n *c *c *c *i *f *f *f *i *i dtpcon n *c *c *c *i *d *d *d *i *i ctpcon n *c *c *c *i *z *f *z *f *i ztpcon n *c *c *c *i *j *d *j *d *i stbcon n *c *c *c *i *i *f *i *f *f *i *i dtbcon n *c *c *c *i *i *d *i *d *d *i *i ctbcon n *c *c *c *i *i *z *i *f *z *f *i ztbcon n *c *c *c *i *i *j *i *d *j *d *i sgerfs n *c *i *i *f *i *f *i *i *f *i *f *i *f *f *f *i *i dgerfs n *c *i *i *d *i *d *i *i *d *i *d *i *d *d *d *i *i cgerfs n *c *i *i *z *i *z *i *i *z *i *z *i *f *f *z *f *i zgerfs n *c *i *i *j *i *j *i *i *j *i *j *i *d *d *j *d *i dgerfsx n *c *c *i *i *d *i *d *i *i *d *d *d *i *d *i *d *d *i *d *d *i *d *d *i *i sgerfsx n *c *c *i *i *f *i *f *i *i *f *f *f *i *f *i *f *f *i *f *f *i *f *f *i *i zgerfsx n *c *c *i *i *j *i *j *i *i *d *d *j *i *j *i *d *d *i *d *d *i *d *j *d *i cgerfsx n *c *c *i *i *z *i *z *i *i *f *f *z *i *z *i *f *f *i *f *f *i *f *z *f *i sgbrfs n *c *i *i *i *i *f *i *f *i *i *f *i *f *i *f *f *f *i *i dgbrfs n *c *i *i *i *i *d *i *d *i *i *d *i *d *i *d *d *d *i *i cgbrfs n *c *i *i *i *i *z *i *z *i *i *z *i *z *i *f *f *z *f *i zgbrfs n *c *i *i *i *i *j *i *j *i *i *j *i *j *i *d *d *j *d *i dgbrfsx n *c *c *i *i *i *i *d *i *d *i *i *d *d *d *i *d *i *d *d *i *d *d *i *d *d *i *i sgbrfsx n *c *c *i *i *i *i *f *i *f *i *i *f *f *f *i *f *i *f *f *i *f *f *i *f *f *i *i zgbrfsx n *c *c *i *i *i *i *j *i *j *i *i *d *d *j *i *j *i *d *d *i *d *d *i *d *j *d *i cgbrfsx n *c *c *i *i *i *i *z *i *z *i *i *f *f *z *i *z *i *f *f *i *f *f *i *f *z *f *i sgtrfs n *c *i *i *f *f *f *f *f *f *f *i *f *i *f *i *f *f *f *i *i dgtrfs n *c *i *i *d *d *d *d *d *d *d *i *d *i *d *i *d *d *d *i *i cgtrfs n *c *i *i *z *z *z *z *z *z *z *i *z *i *z *i *f *f *z *f *i zgtrfs n *c *i *i *j *j *j *j *j *j *j *i *j *i *j *i *d *d *j *d *i sporfs n *c *i *i *f *i *f *i *f *i *f *i *f *f *f *i *i dporfs n *c *i *i *d *i *d *i *d *i *d *i *d *d *d *i *i cporfs n *c *i *i *z *i *z *i *z *i *z *i *f *f *z *f *i zporfs n *c *i *i *j *i *j *i *j *i *j *i *d *d *j *d *i dporfsx n *c *c *i *i *d *i *d *i *d *d *i *d *i *d *d *i *d *d *i *d *d *i *i sporfsx n *c *c *i *i *f *i *f *i *f *f *i *f *i *f *f *i *f *f *i *f *f *i *i zporfsx n *c *c *i *i *j *i *j *i *d *j *i *j *i *d *d *i *d *d *i *d *j *d *i cporfsx n *c *c *i *i *z *i *z *i *f *z *i *z *i *f *f *i *f *f *i *f *z *f *i spprfs n *c *i *i *f *f *f *i *f *i *f *f *f *i *i dpprfs n *c *i *i *d *d *d *i *d *i *d *d *d *i *i cpprfs n *c *i *i *z *z *z *i *z *i *f *f *z *f *i zpprfs n *c *i *i *j *j *j *i *j *i *d *d *j *d *i spbrfs n *c *i *i *i *f *i *f *i *f *i *f *i *f *f *f *i *i dpbrfs n *c *i *i *i *d *i *d *i *d *i *d *i *d *d *d *i *i cpbrfs n *c *i *i *i *z *i *z *i *z *i *z *i *f *f *z *f *i zpbrfs n *c *i *i *i *j *i *j *i *j *i *j *i *d *d *j *d *i sptrfs n *i *i *f *f *f *f *f *i *f *i *f *f *f *i dptrfs n *i *i *d *d *d *d *d *i *d *i *d *d *d *i cptrfs n *c *i *i *f *z *f *z *z *i *z *i *f *f *z *f *i zptrfs n *c *i *i *d *j *d *j *j *i *j *i *d *d *j *d *i ssyrfs n *c *i *i *f *i *f *i *i *f *i *f *i *f *f *f *i *i dsyrfs n *c *i *i *d *i *d *i *i *d *i *d *i *d *d *d *i *i csyrfs n *c *i *i *z *i *z *i *i *z *i *z *i *f *f *z *f *i zsyrfs n *c *i *i *j *i *j *i *i *j *i *j *i *d *d *j *d *i dsyrfsx n *c *c *i *i *d *i *d *i *i *d *d *i *d *i *d *d *i *d *d *i *d *d *i *i ssyrfsx n *c *c *i *i *f *i *f *i *i *f *f *i *f *i *f *f *i *f *f *i *f *f *i *i zsyrfsx n *c *c *i *i *j *i *j *i *i *d *j *i *j *i *d *d *i *d *d *i *d *j *d *i csyrfsx n *c *c *i *i *z *i *z *i *i *f *z *i *z *i *f *f *i *f *f *i *f *z *f *i cherfs n *c *i *i *z *i *z *i *i *z *i *z *i *f *f *z *f *i zherfs n *c *i *i *j *i *j *i *i *j *i *j *i *d *d *j *d *i zherfsx n *c *c *i *i *j *i *j *i *i *d *j *i *j *i *d *d *i *d *d *i *d *j *d *i cherfsx n *c *c *i *i *z *i *z *i *i *f *z *i *z *i *f *f *i *f *f *i *f *z *f *i ssprfs n *c *i *i *f *f *i *f *i *f *i *f *f *f *i *i dsprfs n *c *i *i *d *d *i *d *i *d *i *d *d *d *i *i csprfs n *c *i *i *z *z *i *z *i *z *i *f *f *z *f *i zsprfs n *c *i *i *j *j *i *j *i *j *i *d *d *j *d *i chprfs n *c *i *i *z *z *i *z *i *z *i *f *f *z *f *i zhprfs n *c *i *i *j *j *i *j *i *j *i *d *d *j *d *i strrfs n *c *c *c *i *i *f *i *f *i *f *i *f *f *f *i *i dtrrfs n *c *c *c *i *i *d *i *d *i *d *i *d *d *d *i *i ctrrfs n *c *c *c *i *i *z *i *z *i *z *i *f *f *z *f *i ztrrfs n *c *c *c *i *i *j *i *j *i *j *i *d *d *j *d *i stprfs n *c *c *c *i *i *f *f *i *f *i *f *f *f *i *i dtprfs n *c *c *c *i *i *d *d *i *d *i *d *d *d *i *i ctprfs n *c *c *c *i *i *z *z *i *z *i *f *f *z *f *i ztprfs n *c *c *c *i *i *j *j *i *j *i *d *d *j *d *i stbrfs n *c *c *c *i *i *i *f *i *f *i *f *i *f *f *f *i *i dtbrfs n *c *c *c *i *i *i *d *i *d *i *d *i *d *d *d *i *i ctbrfs n *c *c *c *i *i *i *z *i *z *i *z *i *f *f *z *f *i ztbrfs n *c *c *c *i *i *i *j *i *j *i *j *i *d *d *j *d *i sgetri n *i *f *i *i *f *i *i dgetri n *i *d *i *i *d *i *i cgetri n *i *z *i *i *z *i *i zgetri n *i *j *i *i *j *i *i spotri n *c *i *f *i *i dpotri n *c *i *d *i *i cpotri n *c *i *z *i *i zpotri n *c *i *j *i *i dpftri n *c *c *i *d *i spftri n *c *c *i *f *i zpftri n *c *c *i *j *i cpftri n *c *c *i *z *i spptri n *c *i *f *i dpptri n *c *i *d *i cpptri n *c *i *z *i zpptri n *c *i *j *i ssytri n *c *i *f *i *i *f *i dsytri n *c *i *d *i *i *d *i csytri n *c *i *z *i *i *z *i zsytri n *c *i *j *i *i *j *i chetri n *c *i *z *i *i *z *i zhetri n *c *i *j *i *i *j *i ssptri n *c *i *f *i *f *i dsptri n *c *i *d *i *d *i csptri n *c *i *z *i *z *i zsptri n *c *i *j *i *j *i chptri n *c *i *z *i *z *i zhptri n *c *i *j *i *j *i strtri n *c *c *i *f *i *i dtrtri n *c *c *i *d *i *i ctrtri n *c *c *i *z *i *i ztrtri n *c *c *i *j *i *i dtftri n *c *c *c *i *d *i stftri n *c *c *c *i *f *i ztftri n *c *c *c *i *j *i ctftri n *c *c *c *i *z *i stptri n *c *c *i *f *i dtptri n *c *c *i *d *i ctptri n *c *c *i *z *i ztptri n *c *c *i *j *i sgeequ n *i *i *f *i *f *f *f *f *f *i dgeequ n *i *i *d *i *d *d *d *d *d *i cgeequ n *i *i *z *i *f *f *f *f *f *i zgeequ n *i *i *j *i *d *d *d *d *d *i dgeequb n *i *i *d *i *d *d *d *d *d *i sgeequb n *i *i *f *i *f *f *f *f *f *i zgeequb n *i *i *j *i *d *d *d *d *d *i cgeequb n *i *i *z *i *f *f *f *f *f *i sgbequ n *i *i *i *i *f *i *f *f *f *f *f *i dgbequ n *i *i *i *i *d *i *d *d *d *d *d *i cgbequ n *i *i *i *i *z *i *f *f *f *f *f *i zgbequ n *i *i *i *i *j *i *d *d *d *d *d *i dgbequb n *i *i *i *i *d *i *d *d *d *d *d *i sgbequb n *i *i *i *i *f *i *f *f *f *f *f *i zgbequb n *i *i *i *i *j *i *d *d *d *d *d *i cgbequb n *i *i *i *i *z *i *f *f *f *f *f *i spoequ n *i *f *i *f *f *f *i dpoequ n *i *d *i *d *d *d *i cpoequ n *i *z *i *f *f *f *i zpoequ n *i *j *i *d *d *d *i dpoequb n *i *d *i *d *d *d *i spoequb n *i *f *i *f *f *f *i zpoequb n *i *j *i *d *d *d *i cpoequb n *i *z *i *f *f *f *i sppequ n *c *i *f *f *f *f *i dppequ n *c *i *d *d *d *d *i cppequ n *c *i *z *f *f *f *i zppequ n *c *i *j *d *d *d *i spbequ n *c *i *i *f *i *f *f *f *i dpbequ n *c *i *i *d *i *d *d *d *i cpbequ n *c *i *i *z *i *f *f *f *i zpbequ n *c *i *i *j *i *d *d *d *i dsyequb n *c *i *d *i *d *d *d *d *i ssyequb n *c *i *f *i *f *f *f *f *i zsyequb n *c *i *j *i *d *d *d *j *i csyequb n *c *i *z *i *f *f *f *z *i zheequb n *c *i *j *i *d *d *d *j *i cheequb n *c *i *z *i *f *f *f *z *i sgesv n *i *i *f *i *i *f *i *i dgesv n *i *i *d *i *i *d *i *i cgesv n *i *i *z *i *i *z *i *i zgesv n *i *i *j *i *i *j *i *i dsgesv n *i *i *d *i *i *d *i *d *i *d *f *i *i zcgesv n *i *i *j *i *i *j *i *j *i *j *z *d *i *i sgesvx n *c *c *i *i *f *i *f *i *i *c *f *f *f *i *f *i *f *f *f *f *i *i dgesvx n *c *c *i *i *d *i *d *i *i *c *d *d *d *i *d *i *d *d *d *d *i *i cgesvx n *c *c *i *i *z *i *z *i *i *c *f *f *z *i *z *i *f *f *f *z *f *i zgesvx n *c *c *i *i *j *i *j *i *i *c *d *d *j *i *j *i *d *d *d *j *d *i dgesvxx n *c *c *i *i *d *i *d *i *i *c *d *d *d *i *d *i *d *d *d *i *d *d *i *d *d *i *i sgesvxx n *c *c *i *i *f *i *f *i *i *c *f *f *f *i *f *i *f *f *f *i *f *f *i *f *f *i *i zgesvxx n *c *c *i *i *j *i *j *i *i *c *d *d *j *i *j *i *d *d *d *i *d *d *i *d *j *d *i cgesvxx n *c *c *i *i *z *i *z *i *i *c *f *f *z *i *z *i *f *f *f *i *f *f *i *f *z *f *i sgbsv n *i *i *i *i *f *i *i *f *i *i dgbsv n *i *i *i *i *d *i *i *d *i *i cgbsv n *i *i *i *i *z *i *i *z *i *i zgbsv n *i *i *i *i *j *i *i *j *i *i sgbsvx n *c *c *i *i *i *i *f *i *f *i *i *c *f *f *f *i *f *i *f *f *f *f *i *i dgbsvx n *c *c *i *i *i *i *d *i *d *i *i *c *d *d *d *i *d *i *d *d *d *d *i *i cgbsvx n *c *c *i *i *i *i *z *i *z *i *i *c *f *f *z *i *z *i *f *f *f *z *f *i zgbsvx n *c *c *i *i *i *i *j *i *j *i *i *c *d *d *j *i *j *i *d *d *d *j *d *i dgbsvxx n *c *c *i *i *i *i *d *i *d *i *i *c *d *d *d *i *d *i *d *d *d *i *d *d *i *d *d *i *i sgbsvxx n *c *c *i *i *i *i *f *i *f *i *i *c *f *f *f *i *f *i *f *f *f *i *f *f *i *f *f *i *i zgbsvxx n *c *c *i *i *i *i *j *i *j *i *i *c *d *d *j *i *j *i *d *d *d *i *d *d *i *d *j *d *i cgbsvxx n *c *c *i *i *i *i *z *i *z *i *i *c *f *f *z *i *z *i *f *f *f *i *f *f *i *f *z *f *i sgtsv n *i *i *f *f *f *f *i *i dgtsv n *i *i *d *d *d *d *i *i cgtsv n *i *i *z *z *z *z *i *i zgtsv n *i *i *j *j *j *j *i *i sgtsvx n *c *c *i *i *f *f *f *f *f *f *f *i *f *i *f *i *f *f *f *f *i *i dgtsvx n *c *c *i *i *d *d *d *d *d *d *d *i *d *i *d *i *d *d *d *d *i *i cgtsvx n *c *c *i *i *z *z *z *z *z *z *z *i *z *i *z *i *f *f *f *z *f *i zgtsvx n *c *c *i *i *j *j *j *j *j *j *j *i *j *i *j *i *d *d *d *j *d *i sposv n *c *i *i *f *i *f *i *i dposv n *c *i *i *d *i *d *i *i cposv n *c *i *i *z *i *z *i *i zposv n *c *i *i *j *i *j *i *i dsposv n *c *i *i *d *i *d *i *d *i *d *f *i *i zcposv n *c *i *i *j *i *j *i *j *i *j *z *d *i *i sposvx n *c *c *i *i *f *i *f *i *c *f *f *i *f *i *f *f *f *f *i *i dposvx n *c *c *i *i *d *i *d *i *c *d *d *i *d *i *d *d *d *d *i *i cposvx n *c *c *i *i *z *i *z *i *c *f *z *i *z *i *f *f *f *z *f *i zposvx n *c *c *i *i *j *i *j *i *c *d *j *i *j *i *d *d *d *j *d *i dposvxx n *c *c *i *i *d *i *d *i *c *d *d *i *d *i *d *d *d *i *d *d *i *d *d *i *i sposvxx n *c *c *i *i *f *i *f *i *c *f *f *i *f *i *f *f *f *i *f *f *i *f *f *i *i zposvxx n *c *c *i *i *j *i *j *i *c *d *j *i *j *i *d *d *d *i *d *d *i *d *j *d *i cposvxx n *c *c *i *i *z *i *z *i *c *f *z *i *z *i *f *f *f *i *f *f *i *f *z *f *i sppsv n *c *i *i *f *f *i *i dppsv n *c *i *i *d *d *i *i cppsv n *c *i *i *z *z *i *i zppsv n *c *i *i *j *j *i *i sppsvx n *c *c *i *i *f *f *c *f *f *i *f *i *f *f *f *f *i *i dppsvx n *c *c *i *i *d *d *c *d *d *i *d *i *d *d *d *d *i *i cppsvx n *c *c *i *i *z *z *c *f *z *i *z *i *f *f *f *z *f *i zppsvx n *c *c *i *i *j *j *c *d *j *i *j *i *d *d *d *j *d *i spbsv n *c *i *i *i *f *i *f *i *i dpbsv n *c *i *i *i *d *i *d *i *i cpbsv n *c *i *i *i *z *i *z *i *i zpbsv n *c *i *i *i *j *i *j *i *i spbsvx n *c *c *i *i *i *f *i *f *i *c *f *f *i *f *i *f *f *f *f *i *i dpbsvx n *c *c *i *i *i *d *i *d *i *c *d *d *i *d *i *d *d *d *d *i *i cpbsvx n *c *c *i *i *i *z *i *z *i *c *f *z *i *z *i *f *f *f *z *f *i zpbsvx n *c *c *i *i *i *j *i *j *i *c *d *j *i *j *i *d *d *d *j *d *i sptsv n *i *i *f *f *f *i *i dptsv n *i *i *d *d *d *i *i cptsv n *i *i *f *z *z *i *i zptsv n *i *i *d *j *j *i *i sptsvx n *c *i *i *f *f *f *f *f *i *f *i *f *f *f *f *i dptsvx n *c *i *i *d *d *d *d *d *i *d *i *d *d *d *d *i cptsvx n *c *i *i *f *z *f *z *z *i *z *i *f *f *f *z *f *i zptsvx n *c *i *i *d *j *d *j *j *i *j *i *d *d *d *j *d *i ssysv n *c *i *i *f *i *i *f *i *f *i *i dsysv n *c *i *i *d *i *i *d *i *d *i *i csysv n *c *i *i *z *i *i *z *i *z *i *i zsysv n *c *i *i *j *i *i *j *i *j *i *i ssysvx n *c *c *i *i *f *i *f *i *i *f *i *f *i *f *f *f *f *i *i *i dsysvx n *c *c *i *i *d *i *d *i *i *d *i *d *i *d *d *d *d *i *i *i csysvx n *c *c *i *i *z *i *z *i *i *z *i *z *i *f *f *f *z *i *f *i zsysvx n *c *c *i *i *j *i *j *i *i *j *i *j *i *d *d *d *j *i *d *i dsysvxx n *c *c *i *i *d *i *d *i *i *c *d *d *i *d *i *d *d *d *i *d *d *i *d *d *i *i ssysvxx n *c *c *i *i *f *i *f *i *i *c *f *f *i *f *i *f *f *f *i *f *f *i *f *f *i *i zsysvxx n *c *c *i *i *j *i *j *i *i *c *d *j *i *j *i *d *d *d *i *d *d *i *d *j *d *i csysvxx n *c *c *i *i *z *i *z *i *i *c *f *z *i *z *i *f *f *f *i *f *f *i *f *z *f *i chesv n *c *i *i *z *i *i *z *i *z *i *i zhesv n *c *i *i *j *i *i *j *i *j *i *i chesvx n *c *c *i *i *z *i *z *i *i *z *i *z *i *f *f *f *z *i *f *i zhesvx n *c *c *i *i *j *i *j *i *i *j *i *j *i *d *d *d *j *i *d *i zhesvxx n *c *c *i *i *j *i *j *i *i *c *d *j *i *j *i *d *d *d *i *d *d *i *d *j *d *i chesvxx n *c *c *i *i *z *i *z *i *i *c *f *z *i *z *i *f *f *f *i *f *f *i *f *z *f *i sspsv n *c *i *i *f *i *f *i *i dspsv n *c *i *i *d *i *d *i *i cspsv n *c *i *i *z *i *z *i *i zspsv n *c *i *i *j *i *j *i *i sspsvx n *c *c *i *i *f *f *i *f *i *f *i *f *f *f *f *i *i dspsvx n *c *c *i *i *d *d *i *d *i *d *i *d *d *d *d *i *i cspsvx n *c *c *i *i *z *z *i *z *i *z *i *f *f *f *z *f *i zspsvx n *c *c *i *i *j *j *i *j *i *j *i *d *d *d *j *d *i chpsv n *c *i *i *z *i *z *i *i zhpsv n *c *i *i *j *i *j *i *i chpsvx n *c *c *i *i *z *z *i *z *i *z *i *f *f *f *z *f *i zhpsvx n *c *c *i *i *j *j *i *j *i *j *i *d *d *d *j *d *i sgeqrf n *i *i *f *i *f *f *i *i dgeqrf n *i *i *d *i *d *d *i *i cgeqrf n *i *i *z *i *z *z *i *i zgeqrf n *i *i *j *i *j *j *i *i sgeqpf n *i *i *f *i *i *f *f *i dgeqpf n *i *i *d *i *i *d *d *i cgeqpf n *i *i *z *i *i *z *z *f *i zgeqpf n *i *i *j *i *i *j *j *d *i sgeqp3 n *i *i *f *i *i *f *f *i *i dgeqp3 n *i *i *d *i *i *d *d *i *i cgeqp3 n *i *i *z *i *i *z *z *i *f *i zgeqp3 n *i *i *j *i *i *j *j *i *d *i sorgqr n *i *i *i *f *i *f *f *i *i dorgqr n *i *i *i *d *i *d *d *i *i sormqr n *c *c *i *i *i *f *i *f *f *i *f *i *i dormqr n *c *c *i *i *i *d *i *d *d *i *d *i *i cungqr n *i *i *i *z *i *z *z *i *i zungqr n *i *i *i *j *i *j *j *i *i cunmqr n *c *c *i *i *i *z *i *z *z *i *z *i *i zunmqr n *c *c *i *i *i *j *i *j *j *i *j *i *i sgelqf n *i *i *f *i *f *f *i *i dgelqf n *i *i *d *i *d *d *i *i cgelqf n *i *i *z *i *z *z *i *i zgelqf n *i *i *j *i *j *j *i *i sorglq n *i *i *i *f *i *f *f *i *i dorglq n *i *i *i *d *i *d *d *i *i sormlq n *c *c *i *i *i *f *i *f *f *i *f *i *i dormlq n *c *c *i *i *i *d *i *d *d *i *d *i *i cunglq n *i *i *i *z *i *z *z *i *i zunglq n *i *i *i *j *i *j *j *i *i cunmlq n *c *c *i *i *i *z *i *z *z *i *z *i *i zunmlq n *c *c *i *i *i *j *i *j *j *i *j *i *i sgeqlf n *i *i *f *i *f *f *i *i dgeqlf n *i *i *d *i *d *d *i *i cgeqlf n *i *i *z *i *z *z *i *i zgeqlf n *i *i *j *i *j *j *i *i sorgql n *i *i *i *f *i *f *f *i *i dorgql n *i *i *i *d *i *d *d *i *i cungql n *i *i *i *z *i *z *z *i *i zungql n *i *i *i *j *i *j *j *i *i sormql n *c *c *i *i *i *f *i *f *f *i *f *i *i dormql n *c *c *i *i *i *d *i *d *d *i *d *i *i cunmql n *c *c *i *i *i *z *i *z *z *i *z *i *i zunmql n *c *c *i *i *i *j *i *j *j *i *j *i *i sgerqf n *i *i *f *i *f *f *i *i dgerqf n *i *i *d *i *d *d *i *i cgerqf n *i *i *z *i *z *z *i *i zgerqf n *i *i *j *i *j *j *i *i sorgrq n *i *i *i *f *i *f *f *i *i dorgrq n *i *i *i *d *i *d *d *i *i cungrq n *i *i *i *z *i *z *z *i *i zungrq n *i *i *i *j *i *j *j *i *i sormrq n *c *c *i *i *i *f *i *f *f *i *f *i *i dormrq n *c *c *i *i *i *d *i *d *d *i *d *i *i cunmrq n *c *c *i *i *i *z *i *z *z *i *z *i *i zunmrq n *c *c *i *i *i *j *i *j *j *i *j *i *i stzrzf n *i *i *f *i *f *f *i *i dtzrzf n *i *i *d *i *d *d *i *i ctzrzf n *i *i *z *i *z *z *i *i ztzrzf n *i *i *j *i *j *j *i *i sormrz n *c *c *i *i *i *i *f *i *f *f *i *f *i *i dormrz n *c *c *i *i *i *i *d *i *d *d *i *d *i *i cunmrz n *c *c *i *i *i *i *z *i *z *z *i *z *i *i zunmrz n *c *c *i *i *i *i *j *i *j *j *i *j *i *i sggqrf n *i *i *i *f *i *f *f *i *f *f *i *i dggqrf n *i *i *i *d *i *d *d *i *d *d *i *i cggqrf n *i *i *i *z *i *z *z *i *z *z *i *i zggqrf n *i *i *i *j *i *j *j *i *j *j *i *i sggrqf n *i *i *i *f *i *f *f *i *f *f *i *i dggrqf n *i *i *i *d *i *d *d *i *d *d *i *i cggrqf n *i *i *i *z *i *z *z *i *z *z *i *i zggrqf n *i *i *i *j *i *j *j *i *j *j *i *i sgebrd n *i *i *f *i *f *f *f *f *f *i *i dgebrd n *i *i *d *i *d *d *d *d *d *i *i cgebrd n *i *i *z *i *f *f *z *z *z *i *i zgebrd n *i *i *j *i *d *d *j *j *j *i *i sgbbrd n *c *i *i *i *i *i *f *i *f *f *f *i *f *i *f *i *f *i dgbbrd n *c *i *i *i *i *i *d *i *d *d *d *i *d *i *d *i *d *i cgbbrd n *c *i *i *i *i *i *z *i *f *f *z *i *z *i *z *i *z *f *i zgbbrd n *c *i *i *i *i *i *j *i *d *d *j *i *j *i *j *i *j *d *i sorgbr n *c *i *i *i *f *i *f *f *i *i dorgbr n *c *i *i *i *d *i *d *d *i *i sormbr n *c *c *c *i *i *i *f *i *f *f *i *f *i *i dormbr n *c *c *c *i *i *i *d *i *d *d *i *d *i *i cungbr n *c *i *i *i *z *i *z *z *i *i zungbr n *c *i *i *i *j *i *j *j *i *i cunmbr n *c *c *c *i *i *i *z *i *z *z *i *z *i *i zunmbr n *c *c *c *i *i *i *j *i *j *j *i *j *i *i sbdsqr n *c *i *i *i *i *f *f *f *i *f *i *f *i *f *i dbdsqr n *c *i *i *i *i *d *d *d *i *d *i *d *i *d *i cbdsqr n *c *i *i *i *i *f *f *z *i *z *i *z *i *f *i zbdsqr n *c *i *i *i *i *d *d *j *i *j *i *j *i *d *i sbdsdc n *c *c *i *f *f *f *i *f *i *f *i *f *i *i dbdsdc n *c *c *i *d *d *d *i *d *i *d *i *d *i *i sbdsvdx n *c *c *c *i *f *f *f *f *i *i *i *f *f *i *f *i *i dbdsvdx n *c *c *c *i *d *d *d *d *i *i *i *d *d *i *d *i *i ssytrd n *c *i *f *i *f *f *f *f *i *i dsytrd n *c *i *d *i *d *d *d *d *i *i sorgtr n *c *i *f *i *f *f *i *i dorgtr n *c *i *d *i *d *d *i *i sormtr n *c *c *c *i *i *f *i *f *f *i *f *i *i dormtr n *c *c *c *i *i *d *i *d *d *i *d *i *i chetrd n *c *i *z *i *f *f *z *z *i *i zhetrd n *c *i *j *i *d *d *j *j *i *i cungtr n *c *i *z *i *z *z *i *i zungtr n *c *i *j *i *j *j *i *i cunmtr n *c *c *c *i *i *z *i *z *z *i *z *i *i zunmtr n *c *c *c *i *i *j *i *j *j *i *j *i *i ssptrd n *c *i *f *f *f *f *i dsptrd n *c *i *d *d *d *d *i sopgtr n *c *i *f *f *f *i *f *i dopgtr n *c *i *d *d *d *i *d *i sopmtr n *c *c *c *i *i *f *f *f *i *f *i dopmtr n *c *c *c *i *i *d *d *d *i *d *i chptrd n *c *i *z *f *f *z *i zhptrd n *c *i *j *d *d *j *i cupgtr n *c *i *z *z *z *i *z *i zupgtr n *c *i *j *j *j *i *j *i cupmtr n *c *c *c *i *i *z *z *z *i *z *i zupmtr n *c *c *c *i *i *j *j *j *i *j *i ssbtrd n *c *c *i *i *f *i *f *f *f *i *f *i dsbtrd n *c *c *i *i *d *i *d *d *d *i *d *i chbtrd n *c *c *i *i *z *i *f *f *z *i *z *i zhbtrd n *c *c *i *i *j *i *d *d *j *i *j *i ssterf n *i *f *f *i dsterf n *i *d *d *i ssteqr n *c *i *f *f *f *i *f *i dsteqr n *c *i *d *d *d *i *d *i csteqr n *c *i *f *f *z *i *f *i zsteqr n *c *i *d *d *j *i *d *i sstemr n *c *c *i *f *f *f *f *i *i *i *f *f *i *i *i *i *f *i *i *i *i dstemr n *c *c *i *d *d *d *d *i *i *i *d *d *i *i *i *i *d *i *i *i *i cstemr n *c *c *i *f *f *f *f *i *i *i *f *z *i *i *i *i *f *i *i *i *i zstemr n *c *c *i *d *d *d *d *i *i *i *d *j *i *i *i *i *d *i *i *i *i sstedc n *c *i *f *f *f *i *f *i *i *i *i dstedc n *c *i *d *d *d *i *d *i *i *i *i cstedc n *c *i *f *f *z *i *z *i *f *i *i *i *i zstedc n *c *i *d *d *j *i *j *i *d *i *i *i *i sstegr n *c *c *i *f *f *f *f *i *i *f *i *f *f *i *i *f *i *i *i *i dstegr n *c *c *i *d *d *d *d *i *i *d *i *d *d *i *i *d *i *i *i *i cstegr n *c *c *i *f *f *f *f *i *i *f *i *f *z *i *i *f *i *i *i *i zstegr n *c *c *i *d *d *d *d *i *i *d *i *d *j *i *i *d *i *i *i *i spteqr n *c *i *f *f *f *i *f *i dpteqr n *c *i *d *d *d *i *d *i cpteqr n *c *i *f *f *z *i *f *i zpteqr n *c *i *d *d *j *i *d *i sstebz n *c *c *i *f *f *i *i *f *f *f *i *i *f *i *i *f *i *i dstebz n *c *c *i *d *d *i *i *d *d *d *i *i *d *i *i *d *i *i sstein n *i *f *f *i *f *i *i *f *i *f *i *i *i dstein n *i *d *d *i *d *i *i *d *i *d *i *i *i cstein n *i *f *f *i *f *i *i *z *i *f *i *i *i zstein n *i *d *d *i *d *i *i *j *i *d *i *i *i sdisna n *c *i *i *f *f *i ddisna n *c *i *i *d *d *i ssygst n *i *c *i *f *i *f *i *i dsygst n *i *c *i *d *i *d *i *i chegst n *i *c *i *z *i *z *i *i zhegst n *i *c *i *j *i *j *i *i sspgst n *i *c *i *f *f *i dspgst n *i *c *i *d *d *i chpgst n *i *c *i *z *z *i zhpgst n *i *c *i *j *j *i ssbgst n *c *c *i *i *i *f *i *f *i *f *i *f *i dsbgst n *c *c *i *i *i *d *i *d *i *d *i *d *i chbgst n *c *c *i *i *i *z *i *z *i *z *i *z *f *i zhbgst n *c *c *i *i *i *j *i *j *i *j *i *j *d *i spbstf n *c *i *i *f *i *i dpbstf n *c *i *i *d *i *i cpbstf n *c *i *i *z *i *i zpbstf n *c *i *i *j *i *i sgehrd n *i *i *i *f *i *f *f *i *i dgehrd n *i *i *i *d *i *d *d *i *i cgehrd n *i *i *i *z *i *z *z *i *i zgehrd n *i *i *i *j *i *j *j *i *i sorghr n *i *i *i *f *i *f *f *i *i dorghr n *i *i *i *d *i *d *d *i *i sormhr n *c *c *i *i *i *i *f *i *f *f *i *f *i *i dormhr n *c *c *i *i *i *i *d *i *d *d *i *d *i *i cunghr n *i *i *i *z *i *z *z *i *i zunghr n *i *i *i *j *i *j *j *i *i cunmhr n *c *c *i *i *i *i *z *i *z *z *i *z *i *i zunmhr n *c *c *i *i *i *i *j *i *j *j *i *j *i *i sgebal n *c *i *f *i *i *i *f *i dgebal n *c *i *d *i *i *i *d *i cgebal n *c *i *z *i *i *i *f *i zgebal n *c *i *j *i *i *i *d *i sgebak n *c *c *i *i *i *f *i *f *i *i dgebak n *c *c *i *i *i *d *i *d *i *i cgebak n *c *c *i *i *i *f *i *z *i *i zgebak n *c *c *i *i *i *d *i *j *i *i shseqr n *c *c *i *i *i *f *i *f *f *f *i *f *i *i dhseqr n *c *c *i *i *i *d *i *d *d *d *i *d *i *i chseqr n *c *c *i *i *i *z *i *z *z *i *z *i *i zhseqr n *c *c *i *i *i *j *i *j *j *i *j *i *i shsein n *c *c *c *i *i *f *i *f *f *f *i *f *i *i *i *f *i *i *i dhsein n *c *c *c *i *i *d *i *d *d *d *i *d *i *i *i *d *i *i *i chsein n *c *c *c *i *i *z *i *z *z *i *z *i *i *i *z *f *i *i *i zhsein n *c *c *c *i *i *j *i *j *j *i *j *i *i *i *j *d *i *i *i strevc n *c *c *i *i *f *i *f *i *f *i *i *i *f *i dtrevc n *c *c *i *i *d *i *d *i *d *i *i *i *d *i ctrevc n *c *c *i *i *z *i *z *i *z *i *i *i *z *f *i ztrevc n *c *c *i *i *j *i *j *i *j *i *i *i *j *d *i strsna n *c *c *i *i *f *i *f *i *f *i *f *f *i *i *f *i *i *i dtrsna n *c *c *i *i *d *i *d *i *d *i *d *d *i *i *d *i *i *i ctrsna n *c *c *i *i *z *i *z *i *z *i *f *f *i *i *z *i *f *i ztrsna n *c *c *i *i *j *i *j *i *j *i *d *d *i *i *j *i *d *i strexc n *c *i *f *i *f *i *i *i *f *i dtrexc n *c *i *d *i *d *i *i *i *d *i ctrexc n *c *i *z *i *z *i *i *i *i ztrexc n *c *i *j *i *j *i *i *i *i strsen n *c *c *i *i *f *i *f *i *f *f *i *f *f *f *i *i *i *i dtrsen n *c *c *i *i *d *i *d *i *d *d *i *d *d *d *i *i *i *i ctrsen n *c *c *i *i *z *i *z *i *z *i *f *f *z *i *i ztrsen n *c *c *i *i *j *i *j *i *j *i *d *d *j *i *i strsyl n *c *c *i *i *i *f *i *f *i *f *i *f *i dtrsyl n *c *c *i *i *i *d *i *d *i *d *i *d *i ctrsyl n *c *c *i *i *i *z *i *z *i *z *i *f *i ztrsyl n *c *c *i *i *i *j *i *j *i *j *i *d *i sgghrd n *c *c *i *i *i *f *i *f *i *f *i *f *i *i dgghrd n *c *c *i *i *i *d *i *d *i *d *i *d *i *i cgghrd n *c *c *i *i *i *z *i *z *i *z *i *z *i *i zgghrd n *c *c *i *i *i *j *i *j *i *j *i *j *i *i sgghd3 n *c *c *i *i *i *f *i *f *i *f *i *f *i *f *i *i dgghd3 n *c *c *i *i *i *d *i *d *i *d *i *d *i *d *i *i cgghd3 n *c *c *i *i *i *z *i *z *i *z *i *z *i *z *i *i zgghd3 n *c *c *i *i *i *j *i *j *i *j *i *j *i *j *i *i sggbal n *c *i *f *i *f *i *i *i *f *f *f *i dggbal n *c *i *d *i *d *i *i *i *d *d *d *i cggbal n *c *i *z *i *z *i *i *i *f *f *f *i zggbal n *c *i *j *i *j *i *i *i *d *d *d *i sggbak n *c *c *i *i *i *f *f *i *f *i *i dggbak n *c *c *i *i *i *d *d *i *d *i *i cggbak n *c *c *i *i *i *f *f *i *z *i *i zggbak n *c *c *i *i *i *d *d *i *j *i *i shgeqz n *c *c *c *i *i *i *f *i *f *i *f *f *f *f *i *f *i *f *i *i dhgeqz n *c *c *c *i *i *i *d *i *d *i *d *d *d *d *i *d *i *d *i *i chgeqz n *c *c *c *i *i *i *z *i *z *i *z *z *z *i *z *i *z *i *f *i zhgeqz n *c *c *c *i *i *i *j *i *j *i *j *j *j *i *j *i *j *i *d *i stgevc n *c *c *i *i *f *i *f *i *f *i *f *i *i *i *f *i dtgevc n *c *c *i *i *d *i *d *i *d *i *d *i *i *i *d *i ctgevc n *c *c *i *i *z *i *z *i *z *i *z *i *i *i *z *f *i ztgevc n *c *c *i *i *j *i *j *i *j *i *j *i *i *i *j *d *i stgexc n *i *i *i *f *i *f *i *f *i *f *i *i *i *f *i *i dtgexc n *i *i *i *d *i *d *i *d *i *d *i *i *i *d *i *i ctgexc n *i *i *i *z *i *z *i *z *i *z *i *i *i *i ztgexc n *i *i *i *j *i *j *i *j *i *j *i *i *i *i stgsen n *i *i *i *i *i *f *i *f *i *f *f *f *f *i *f *i *i *f *f *f *f *i *i *i *i dtgsen n *i *i *i *i *i *d *i *d *i *d *d *d *d *i *d *i *i *d *d *d *d *i *i *i *i ctgsen n *i *i *i *i *i *z *i *z *i *z *z *z *i *z *i *i *f *f *f *z *i *i *i *i ztgsen n *i *i *i *i *i *j *i *j *i *j *j *j *i *j *i *i *d *d *d *j *i *i *i *i stgsyl n *c *i *i *i *f *i *f *i *f *i *f *i *f *i *f *i *f *f *f *i *i *i dtgsyl n *c *i *i *i *d *i *d *i *d *i *d *i *d *i *d *i *d *d *d *i *i *i ctgsyl n *c *i *i *i *z *i *z *i *z *i *z *i *z *i *z *i *f *f *z *i *i *i ztgsyl n *c *i *i *i *j *i *j *i *j *i *j *i *j *i *j *i *d *d *j *i *i *i stgsna n *c *c *i *i *f *i *f *i *f *i *f *i *f *f *i *i *f *i *i *i dtgsna n *c *c *i *i *d *i *d *i *d *i *d *i *d *d *i *i *d *i *i *i ctgsna n *c *c *i *i *z *i *z *i *z *i *z *i *f *f *i *i *z *i *i *i ztgsna n *c *c *i *i *j *i *j *i *j *i *j *i *d *d *i *i *j *i *i *i sggsvp n *c *c *c *i *i *i *f *i *f *i *f *f *i *i *f *i *f *i *f *i *i *f *f *i dggsvp n *c *c *c *i *i *i *d *i *d *i *d *d *i *i *d *i *d *i *d *i *i *d *d *i cggsvp n *c *c *c *i *i *i *z *i *z *i *f *f *i *i *z *i *z *i *z *i *i *f *z *z *i zggsvp n *c *c *c *i *i *i *j *i *j *i *d *d *i *i *j *i *j *i *j *i *i *d *j *j *i sggsvp3 n *c *c *c *i *i *i *f *i *f *i *f *f *i *i *f *i *f *i *f *i *i *f *f *i *i dggsvp3 n *c *c *c *i *i *i *d *i *d *i *d *d *i *i *d *i *d *i *d *i *i *d *d *i *i cggsvp3 n *c *c *c *i *i *i *z *i *z *i *f *f *i *i *z *i *z *i *z *i *i *f *z *z *i *i zggsvp3 n *c *c *c *i *i *i *j *i *j *i *d *d *i *i *j *i *j *i *j *i *i *d *j *j *i *i stgsja n *c *c *c *i *i *i *i *i *f *i *f *i *f *f *f *f *f *i *f *i *f *i *f *i *i dtgsja n *c *c *c *i *i *i *i *i *d *i *d *i *d *d *d *d *d *i *d *i *d *i *d *i *i ctgsja n *c *c *c *i *i *i *i *i *z *i *z *i *f *f *f *f *z *i *z *i *z *i *z *i *i ztgsja n *c *c *c *i *i *i *i *i *j *i *j *i *d *d *d *d *j *i *j *i *j *i *j *i *i sgels n *c *i *i *i *f *i *f *i *f *i *i dgels n *c *i *i *i *d *i *d *i *d *i *i cgels n *c *i *i *i *z *i *z *i *z *i *i zgels n *c *i *i *i *j *i *j *i *j *i *i sgelsy n *i *i *i *f *i *f *i *i *f *i *f *i *i dgelsy n *i *i *i *d *i *d *i *i *d *i *d *i *i cgelsy n *i *i *i *z *i *z *i *i *f *i *z *i *f *i zgelsy n *i *i *i *j *i *j *i *i *d *i *j *i *d *i sgelss n *i *i *i *f *i *f *i *f *f *i *f *i *i dgelss n *i *i *i *d *i *d *i *d *d *i *d *i *i cgelss n *i *i *i *z *i *z *i *f *f *i *z *i *f *i zgelss n *i *i *i *j *i *j *i *d *d *i *j *i *d *i sgelsd n *i *i *i *f *i *f *i *f *f *i *f *i *i *i dgelsd n *i *i *i *d *i *d *i *d *d *i *d *i *i *i cgelsd n *i *i *i *z *i *z *i *f *f *i *z *i *f *i *i zgelsd n *i *i *i *j *i *j *i *d *d *i *j *i *d *i *i sgglse n *i *i *i *f *i *f *i *f *f *f *f *i *i dgglse n *i *i *i *d *i *d *i *d *d *d *d *i *i cgglse n *i *i *i *z *i *z *i *z *z *z *z *i *i zgglse n *i *i *i *j *i *j *i *j *j *j *j *i *i sggglm n *i *i *i *f *i *f *i *f *f *f *f *i *i dggglm n *i *i *i *d *i *d *i *d *d *d *d *i *i cggglm n *i *i *i *z *i *z *i *z *z *z *z *i *i zggglm n *i *i *i *j *i *j *i *j *j *j *j *i *i ssyev n *c *c *i *f *i *f *f *i *i dsyev n *c *c *i *d *i *d *d *i *i cheev n *c *c *i *z *i *f *z *i *f *i zheev n *c *c *i *j *i *d *j *i *d *i ssyevd n *c *c *i *f *i *f *f *i *i *i *i dsyevd n *c *c *i *d *i *d *d *i *i *i *i cheevd n *c *c *i *z *i *f *z *i *f *i *i *i *i zheevd n *c *c *i *j *i *d *j *i *d *i *i *i *i ssyevx n *c *c *c *i *f *i *f *f *i *i *f *i *f *f *i *f *i *i *i *i dsyevx n *c *c *c *i *d *i *d *d *i *i *d *i *d *d *i *d *i *i *i *i cheevx n *c *c *c *i *z *i *f *f *i *i *f *i *f *z *i *z *i *f *i *i *i zheevx n *c *c *c *i *j *i *d *d *i *i *d *i *d *j *i *j *i *d *i *i *i ssyevr n *c *c *c *i *f *i *f *f *i *i *f *i *f *f *i *i *f *i *i *i *i dsyevr n *c *c *c *i *d *i *d *d *i *i *d *i *d *d *i *i *d *i *i *i *i cheevr n *c *c *c *i *z *i *f *f *i *i *f *i *f *z *i *i *z *i *f *i *i *i *i zheevr n *c *c *c *i *j *i *d *d *i *i *d *i *d *j *i *i *j *i *d *i *i *i *i sspev n *c *c *i *f *f *f *i *f *i dspev n *c *c *i *d *d *d *i *d *i chpev n *c *c *i *z *f *z *i *z *f *i zhpev n *c *c *i *j *d *j *i *j *d *i sspevd n *c *c *i *f *f *f *i *f *i *i *i *i dspevd n *c *c *i *d *d *d *i *d *i *i *i *i chpevd n *c *c *i *z *f *z *i *z *i *f *i *i *i *i zhpevd n *c *c *i *j *d *j *i *j *i *d *i *i *i *i sspevx n *c *c *c *i *f *f *f *i *i *f *i *f *f *i *f *i *i *i dspevx n *c *c *c *i *d *d *d *i *i *d *i *d *d *i *d *i *i *i chpevx n *c *c *c *i *z *f *f *i *i *f *i *f *z *i *z *f *i *i *i zhpevx n *c *c *c *i *j *d *d *i *i *d *i *d *j *i *j *d *i *i *i ssbev n *c *c *i *i *f *i *f *f *i *f *i dsbev n *c *c *i *i *d *i *d *d *i *d *i chbev n *c *c *i *i *z *i *f *z *i *z *f *i zhbev n *c *c *i *i *j *i *d *j *i *j *d *i ssbevd n *c *c *i *i *f *i *f *f *i *f *i *i *i *i dsbevd n *c *c *i *i *d *i *d *d *i *d *i *i *i *i chbevd n *c *c *i *i *z *i *f *z *i *z *i *f *i *i *i *i zhbevd n *c *c *i *i *j *i *d *j *i *j *i *d *i *i *i *i ssbevx n *c *c *c *i *i *f *i *f *i *f *f *i *i *f *i *f *f *i *f *i *i *i dsbevx n *c *c *c *i *i *d *i *d *i *d *d *i *i *d *i *d *d *i *d *i *i *i chbevx n *c *c *c *i *i *z *i *z *i *f *f *i *i *f *i *f *z *i *z *f *i *i *i zhbevx n *c *c *c *i *i *j *i *j *i *d *d *i *i *d *i *d *j *i *j *d *i *i *i sstev n *c *i *f *f *f *i *f *i dstev n *c *i *d *d *d *i *d *i sstevd n *c *i *f *f *f *i *f *i *i *i *i dstevd n *c *i *d *d *d *i *d *i *i *i *i sstevx n *c *c *i *f *f *f *f *i *i *f *i *f *f *i *f *i *i *i dstevx n *c *c *i *d *d *d *d *i *i *d *i *d *d *i *d *i *i *i sstevr n *c *c *i *f *f *f *f *i *i *f *i *f *f *i *i *f *i *i *i *i dstevr n *c *c *i *d *d *d *d *i *i *d *i *d *d *i *i *d *i *i *i *i sgees n *c *c * *i *f *i *i *f *f *f *i *f *i *i *i dgees n *c *c * *i *d *i *i *d *d *d *i *d *i *i *i cgees n *c *c * *i *z *i *i *z *z *i *z *i *f *i *i zgees n *c *c * *i *j *i *i *j *j *i *j *i *d *i *i sgeesx n *c *c * *c *i *f *i *i *f *f *f *i *f *f *f *i *i *i *i *i dgeesx n *c *c * *c *i *d *i *i *d *d *d *i *d *d *d *i *i *i *i *i cgeesx n *c *c * *c *i *z *i *i *z *z *i *f *f *z *i *f *i *i zgeesx n *c *c * *c *i *j *i *i *j *j *i *d *d *j *i *d *i *i sgeev n *c *c *i *f *i *f *f *f *i *f *i *f *i *i dgeev n *c *c *i *d *i *d *d *d *i *d *i *d *i *i cgeev n *c *c *i *z *i *z *z *i *z *i *z *i *f *i zgeev n *c *c *i *j *i *j *j *i *j *i *j *i *d *i sgeevx n *c *c *c *c *i *f *i *f *f *f *i *f *i *i *i *f *f *f *f *f *i *i *i dgeevx n *c *c *c *c *i *d *i *d *d *d *i *d *i *i *i *d *d *d *d *d *i *i *i cgeevx n *c *c *c *c *i *z *i *z *z *i *z *i *i *i *f *f *f *f *z *i *f *i zgeevx n *c *c *c *c *i *j *i *j *j *i *j *i *i *i *d *d *d *d *j *i *d *i sgesvd n *c *c *i *i *f *i *f *f *i *f *i *f *i *i dgesvd n *c *c *i *i *d *i *d *d *i *d *i *d *i *i cgesvd n *c *c *i *i *z *i *f *z *i *z *i *z *i *f *i zgesvd n *c *c *i *i *j *i *d *j *i *j *i *j *i *d *i sgesvdx n *c *c *c *i *i *f *i *f *f *i *i *i *f *f *i *f *i *f *i *i *i dgesvdx n *c *c *c *i *i *d *i *d *d *i *i *i *d *d *i *d *i *d *i *i *i cgesvdx n *c *c *c *i *i *z *i *f *f *i *i *i *f *z *i *z *i *z *i *f *i *i zgesvdx n *c *c *c *i *i *j *i *d *d *i *i *i *d *j *i *j *i *j *i *d *i *i sgesdd n *c *i *i *f *i *f *f *i *f *i *f *i *i *i dgesdd n *c *i *i *d *i *d *d *i *d *i *d *i *i *i cgesdd n *c *i *i *z *i *f *z *i *z *i *z *i *f *i *i zgesdd n *c *i *i *j *i *d *j *i *j *i *j *i *d *i *i dgejsv n *c *c *c *c *c *c *i *i *d *i *d *d *i *d *i *d *i *i *i sgejsv n *c *c *c *c *c *c *i *i *f *i *f *f *i *f *i *f *i *i *i cgejsv n *c *c *c *c *c *c *i *i *z *i *f *z *i *z *i *z *i *f *i *i *i zgejsv n *c *c *c *c *c *c *i *i *j *i *d *j *i *j *i *j *i *d *i *i *i dgesvj n *c *c *c *i *i *d *i *d *i *d *i *d *i *i sgesvj n *c *c *c *i *i *f *i *f *i *f *i *f *i *i cgesvj n *c *c *c *i *i *z *i *f *i *z *i *z *i *f *i *i zgesvj n *c *c *c *i *i *j *i *d *i *j *i *j *i *d *i *i sggsvd n *c *c *c *i *i *i *i *i *f *i *f *i *f *f *f *i *f *i *f *i *f *i *i dggsvd n *c *c *c *i *i *i *i *i *d *i *d *i *d *d *d *i *d *i *d *i *d *i *i cggsvd n *c *c *c *i *i *i *i *i *z *i *z *i *f *f *z *i *z *i *z *i *z *f *i *i zggsvd n *c *c *c *i *i *i *i *i *j *i *j *i *d *d *j *i *j *i *j *i *j *d *i *i sggsvd3 n *c *c *c *i *i *i *i *i *f *i *f *i *f *f *f *i *f *i *f *i *f *i *i *i dggsvd3 n *c *c *c *i *i *i *i *i *d *i *d *i *d *d *d *i *d *i *d *i *d *i *i *i cggsvd3 n *c *c *c *i *i *i *i *i *z *i *z *i *f *f *z *i *z *i *z *i *z *i *f *i *i zggsvd3 n *c *c *c *i *i *i *i *i *j *i *j *i *d *d *j *i *j *i *j *i *j *i *d *i *i ssygv n *i *c *c *i *f *i *f *i *f *f *i *i dsygv n *i *c *c *i *d *i *d *i *d *d *i *i chegv n *i *c *c *i *z *i *z *i *f *z *i *f *i zhegv n *i *c *c *i *j *i *j *i *d *j *i *d *i ssygvd n *i *c *c *i *f *i *f *i *f *f *i *i *i *i dsygvd n *i *c *c *i *d *i *d *i *d *d *i *i *i *i chegvd n *i *c *c *i *z *i *z *i *f *z *i *f *i *i *i *i zhegvd n *i *c *c *i *j *i *j *i *d *j *i *d *i *i *i *i ssygvx n *i *c *c *c *i *f *i *f *i *f *f *i *i *f *i *f *f *i *f *i *i *i *i dsygvx n *i *c *c *c *i *d *i *d *i *d *d *i *i *d *i *d *d *i *d *i *i *i *i chegvx n *i *c *c *c *i *z *i *z *i *f *f *i *i *f *i *f *z *i *z *i *f *i *i *i zhegvx n *i *c *c *c *i *j *i *j *i *d *d *i *i *d *i *d *j *i *j *i *d *i *i *i sspgv n *i *c *c *i *f *f *f *f *i *f *i dspgv n *i *c *c *i *d *d *d *d *i *d *i chpgv n *i *c *c *i *z *z *f *z *i *z *f *i zhpgv n *i *c *c *i *j *j *d *j *i *j *d *i sspgvd n *i *c *c *i *f *f *f *f *i *f *i *i *i *i dspgvd n *i *c *c *i *d *d *d *d *i *d *i *i *i *i chpgvd n *i *c *c *i *z *z *f *z *i *z *i *f *i *i *i *i zhpgvd n *i *c *c *i *j *j *d *j *i *j *i *d *i *i *i *i sspgvx n *i *c *c *c *i *f *f *f *f *i *i *f *i *f *f *i *f *i *i *i dspgvx n *i *c *c *c *i *d *d *d *d *i *i *d *i *d *d *i *d *i *i *i chpgvx n *i *c *c *c *i *z *z *f *f *i *i *f *i *f *z *i *z *f *i *i *i zhpgvx n *i *c *c *c *i *j *j *d *d *i *i *d *i *d *j *i *j *d *i *i *i ssbgv n *c *c *i *i *i *f *i *f *i *f *f *i *f *i dsbgv n *c *c *i *i *i *d *i *d *i *d *d *i *d *i chbgv n *c *c *i *i *i *z *i *z *i *f *z *i *z *f *i zhbgv n *c *c *i *i *i *j *i *j *i *d *j *i *j *d *i ssbgvd n *c *c *i *i *i *f *i *f *i *f *f *i *f *i *i *i *i dsbgvd n *c *c *i *i *i *d *i *d *i *d *d *i *d *i *i *i *i chbgvd n *c *c *i *i *i *z *i *z *i *f *z *i *z *i *f *i *i *i *i zhbgvd n *c *c *i *i *i *j *i *j *i *d *j *i *j *i *d *i *i *i *i ssbgvx n *c *c *c *i *i *i *f *i *f *i *f *i *f *f *i *i *f *i *f *f *i *f *i *i *i dsbgvx n *c *c *c *i *i *i *d *i *d *i *d *i *d *d *i *i *d *i *d *d *i *d *i *i *i chbgvx n *c *c *c *i *i *i *z *i *z *i *z *i *f *f *i *i *f *i *f *z *i *z *f *i *i *i zhbgvx n *c *c *c *i *i *i *j *i *j *i *j *i *d *d *i *i *d *i *d *j *i *j *d *i *i *i sgges n *c *c *c * *i *f *i *f *i *i *f *f *f *f *i *f *i *f *i *i *i dgges n *c *c *c * *i *d *i *d *i *i *d *d *d *d *i *d *i *d *i *i *i cgges n *c *c *c * *i *z *i *z *i *i *z *z *z *i *z *i *z *i *f *i *i zgges n *c *c *c * *i *j *i *j *i *i *j *j *j *i *j *i *j *i *d *i *i sgges3 n *c *c *c * *i *f *i *f *i *i *f *f *f *f *i *f *i *f *i *i *i dgges3 n *c *c *c * *i *d *i *d *i *i *d *d *d *d *i *d *i *d *i *i *i cgges3 n *c *c *c * *i *z *i *z *i *i *z *z *z *i *z *i *z *i *f *i *i zgges3 n *c *c *c * *i *j *i *j *i *i *j *j *j *i *j *i *j *i *d *i *i sggesx n *c *c *c * *c *i *f *i *f *i *i *f *f *f *f *i *f *i *f *f *f *i *i *i *i *i dggesx n *c *c *c * *c *i *d *i *d *i *i *d *d *d *d *i *d *i *d *d *d *i *i *i *i *i cggesx n *c *c *c * *c *i *z *i *z *i *i *z *z *z *i *z *i *f *f *z *i *f *i *i *i *i zggesx n *c *c *c * *c *i *j *i *j *i *i *j *j *j *i *j *i *d *d *j *i *d *i *i *i *i sggev n *c *c *i *f *i *f *i *f *f *f *f *i *f *i *f *i *i dggev n *c *c *i *d *i *d *i *d *d *d *d *i *d *i *d *i *i cggev n *c *c *i *z *i *z *i *z *z *z *i *z *i *z *i *f *i zggev n *c *c *i *j *i *j *i *j *j *j *i *j *i *j *i *d *i sggev3 n *c *c *i *f *i *f *i *f *f *f *f *i *f *i *f *i *i dggev3 n *c *c *i *d *i *d *i *d *d *d *d *i *d *i *d *i *i cggev3 n *c *c *i *z *i *z *i *z *z *z *i *z *i *z *i *f *i zggev3 n *c *c *i *j *i *j *i *j *j *j *i *j *i *j *i *d *i sggevx n *c *c *c *c *i *f *i *f *i *f *f *f *f *i *f *i *i *i *f *f *f *f *f *f *f *i *i *i *i dggevx n *c *c *c *c *i *d *i *d *i *d *d *d *d *i *d *i *i *i *d *d *d *d *d *d *d *i *i *i *i cggevx n *c *c *c *c *i *z *i *z *i *z *z *z *i *z *i *i *i *f *f *f *f *f *f *z *i *f *i *i *i zggevx n *c *c *c *c *i *j *i *j *i *j *j *j *i *j *i *i *i *d *d *d *d *d *d *j *i *d *i *i *i dsfrk n *c *c *c *i *i *d *d *i *d *d ssfrk n *c *c *c *i *i *f *f *i *f *f zhfrk n *c *c *c *i *i *d *j *i *d *j chfrk n *c *c *c *i *i *f *z *i *f *z dtfsm n *c *c *c *c *c *i *i *d *d *d *i stfsm n *c *c *c *c *c *i *i *f *f *f *i ztfsm n *c *c *c *c *c *i *i *j *j *j *i ctfsm n *c *c *c *c *c *i *i *z *z *z *i dtfttp n *c *c *i *d *d *i stfttp n *c *c *i *f *f *i ztfttp n *c *c *i *j *j *i ctfttp n *c *c *i *z *z *i dtfttr n *c *c *i *d *d *i *i stfttr n *c *c *i *f *f *i *i ztfttr n *c *c *i *j *j *i *i ctfttr n *c *c *i *z *z *i *i dtpttf n *c *c *i *d *d *i stpttf n *c *c *i *f *f *i ztpttf n *c *c *i *j *j *i ctpttf n *c *c *i *z *z *i dtpttr n *c *i *d *d *i *i stpttr n *c *i *f *f *i *i ztpttr n *c *i *j *j *i *i ctpttr n *c *i *z *z *i *i dtrttf n *c *c *i *d *i *d *i strttf n *c *c *i *f *i *f *i ztrttf n *c *c *i *j *i *j *i ctrttf n *c *c *i *z *i *z *i dtrttp n *c *i *d *i *d *i strttp n *c *i *f *i *f *i ztrttp n *c *i *j *i *j *i ctrttp n *c *i *z *i *z *i sgeqrfp n *i *i *f *i *f *f *i *i dgeqrfp n *i *i *d *i *d *d *i *i cgeqrfp n *i *i *z *i *z *z *i *i zgeqrfp n *i *i *j *i *j *j *i *i clacgv n *i *z *i zlacgv n *i *j *i slarnv n *i *i *i *f dlarnv n *i *i *i *d clarnv n *i *i *i *z zlarnv n *i *i *i *j sgeqr2 n *i *i *f *i *f *f *i dgeqr2 n *i *i *d *i *d *d *i cgeqr2 n *i *i *z *i *z *z *i zgeqr2 n *i *i *j *i *j *j *i slacn2 n *i *f *f *i *f *i *i dlacn2 n *i *d *d *i *d *i *i clacn2 n *i *z *z *f *i *i zlacn2 n *i *j *j *d *i *i slacpy n *c *i *i *f *i *f *i dlacpy n *c *i *i *d *i *d *i clacpy n *c *i *i *z *i *z *i zlacpy n *c *i *i *j *i *j *i clacp2 n *c *i *i *f *i *z *i zlacp2 n *c *i *i *d *i *j *i sgetf2 n *i *i *f *i *i *i dgetf2 n *i *i *d *i *i *i cgetf2 n *i *i *z *i *i *i zgetf2 n *i *i *j *i *i *i slaswp n *i *f *i *i *i *i *i dlaswp n *i *d *i *i *i *i *i claswp n *i *z *i *i *i *i *i zlaswp n *i *j *i *i *i *i *i slange f *c *i *i *f *i *f dlange d *c *i *i *d *i *d clange f *c *i *i *z *i *f zlange d *c *i *i *j *i *d clanhe f *c *c *i *z *i *f zlanhe d *c *c *i *j *i *d clarcm n *i *i *f *i *z *i *z *i *f zlarcm n *i *i *d *i *j *i *j *i *d clacrm n *i *i *z *i *f *i *z *i *f zlacrm n *i *i *j *i *d *i *j *i *d slansy f *c *c *i *f *i *f dlansy d *c *c *i *d *i *d clansy f *c *c *i *z *i *f zlansy d *c *c *i *j *i *d slantr f *c *c *c *i *i *f *i *f dlantr d *c *c *c *i *i *d *i *d clantr f *c *c *c *i *i *z *i *f zlantr d *c *c *c *i *i *j *i *d slamch f *c dlamch d *c sgelq2 n *i *i *f *i *f *f *i dgelq2 n *i *i *d *i *d *d *i cgelq2 n *i *i *z *i *z *z *i zgelq2 n *i *i *j *i *j *j *i slarfb n *c *c *c *c *i *i *i *f *i *f *i *f *i *f *i dlarfb n *c *c *c *c *i *i *i *d *i *d *i *d *i *d *i clarfb n *c *c *c *c *i *i *i *z *i *z *i *z *i *z *i zlarfb n *c *c *c *c *i *i *i *j *i *j *i *j *i *j *i slarfg n *i *f *f *i *f dlarfg n *i *d *d *i *d clarfg n *i *z *z *i *z zlarfg n *i *j *j *i *j slassq n *i *f *i *f *f dlassq n *i *d *i *d *d classq n *i *z *i *f *f zlassq n *i *j *i *d *d slarft n *c *c *i *i *f *i *f *f *i dlarft n *c *c *i *i *d *i *d *d *i clarft n *c *c *i *i *z *i *z *z *i zlarft n *c *c *i *i *j *i *j *j *i slarfx n *c *i *i *f *f *f *i *f dlarfx n *c *i *i *d *d *d *i *d clarfx n *c *i *i *z *z *z *i *z zlarfx n *c *i *i *j *j *j *i *j slatms n *i *i *c *i *c *f *i *f *f *i *i *c *f *i *f *i dlatms n *i *i *c *i *c *d *i *d *d *i *i *c *d *i *d *i clatms n *i *i *c *i *c *f *i *f *f *i *i *c *z *i *z *i zlatms n *i *i *c *i *c *d *i *d *d *i *i *c *j *i *j *i slag2d n *i *i *f *i *d *i *i dlag2s n *i *i *d *i *f *i *i clag2z n *i *i *z *i *j *i *i zlag2c n *i *i *j *i *z *i *i slauum n *c *i *f *i *i dlauum n *c *i *d *i *i clauum n *c *i *z *i *i zlauum n *c *i *j *i *i slagge n *i *i *i *i *f *f *i *i *f *i dlagge n *i *i *i *i *d *d *i *i *d *i clagge n *i *i *i *i *f *z *i *i *z *i zlagge n *i *i *i *i *d *j *i *i *j *i slascl n *c *i *i *f *f *i *i *f *i *i dlascl n *c *i *i *d *d *i *i *d *i *i clascl n *c *i *i *f *f *i *i *z *i *i zlascl n *c *i *i *d *d *i *i *j *i *i slaset n *c *i *i *f *f *f *i dlaset n *c *i *i *d *d *d *i claset n *c *i *i *z *z *z *i zlaset n *c *i *i *j *j *j *i slasrt n *c *i *f *i dlasrt n *c *i *d *i claghe n *i *i *f *z *i *i *z *i zlaghe n *i *i *d *j *i *i *j *i slagsy n *i *i *f *f *i *i *f *i dlagsy n *i *i *d *d *i *i *d *i clagsy n *i *i *f *z *i *i *z *i zlagsy n *i *i *d *j *i *i *j *i slapmr n *i *i *i *f *i *i dlapmr n *i *i *i *d *i *i clapmr n *i *i *i *z *i *i zlapmr n *i *i *i *j *i *i slapmt n *i *i *i *f *i *i dlapmt n *i *i *i *d *i *i clapmt n *i *i *i *z *i *i zlapmt n *i *i *i *j *i *i slapy2 f *f *f dlapy2 d *d *d slapy3 f *f *f *f dlapy3 d *d *d *d slartgp n *f *f *f *f *f dlartgp n *d *d *d *d *d slartgs n *f *f *f *f *f dlartgs n *d *d *d *d *d cbbcsd n *c *c *c *c *c *i *i *i *f *f *z *i *z *i *z *i *z *i *f *f *f *f *f *f *f *f *f *i *i cheswapr n *c *i *z *i *i *i chetri2 n *c *i *z *i *i *z *i *i chetri2x n *c *i *z *i *i *z *i *i chetrs2 n *c *i *i *z *i *i *z *i *z *i csyconv n *c *c *i *z *i *i *z *i csyswapr n *c *i *z *i *i *i csytri2 n *c *i *z *i *i *z *i *i csytri2x n *c *i *z *i *i *z *i *i csytrs2 n *c *i *i *z *i *i *z *i *z *i cunbdb n *c *c *i *i *i *z *i *z *i *z *i *z *i *f *f *z *z *z *z *z *i *i cuncsd n *c *c *c *c *c *c *i *i *i *z *i *z *i *z *i *z *i *f *z *i *z *i *z *i *z *i *z *i *f *i *i *i cuncsd2by1 n *c *c *c *i *i *i *z *i *z *i *f *z *i *z *i *z *i *z *i *f *i *i *i dbbcsd n *c *c *c *c *c *i *i *i *d *d *d *i *d *i *d *i *d *i *d *d *d *d *d *d *d *d *d *i *i dorbdb n *c *c *i *i *i *d *i *d *i *d *i *d *i *d *d *d *d *d *d *d *i *i dorcsd n *c *c *c *c *c *c *i *i *i *d *i *d *i *d *i *d *i *d *d *i *d *i *d *i *d *i *d *i *i *i dorcsd2by1 n *c *c *c *i *i *i *d *i *d *i *d *d *i *d *i *d *i *d *i *i *i dsyconv n *c *c *i *d *i *i *d *i dsyswapr n *c *i *d *i *i *i dsytri2 n *c *i *d *i *i *d *i *i dsytri2x n *c *i *d *i *i *d *i *i dsytrs2 n *c *i *i *d *i *i *d *i *d *i sbbcsd n *c *c *c *c *c *i *i *i *f *f *f *i *f *i *f *i *f *i *f *f *f *f *f *f *f *f *f *i *i sorbdb n *c *c *i *i *i *f *i *f *i *f *i *f *i *f *f *f *f *f *f *f *i *i sorcsd n *c *c *c *c *c *c *i *i *i *f *i *f *i *f *i *f *i *f *f *i *f *i *f *i *f *i *f *i *i *i sorcsd2by1 n *c *c *c *i *i *i *f *i *f *i *f *f *i *f *i *f *i *f *i *i *i ssyconv n *c *c *i *f *i *i *f *i ssyswapr n *c *i *f *i *i *i ssytri2 n *c *i *f *i *i *f *i *i ssytri2x n *c *i *f *i *i *f *i *i ssytrs2 n *c *i *i *f *i *i *f *i *f *i zbbcsd n *c *c *c *c *c *i *i *i *d *d *j *i *j *i *j *i *j *i *d *d *d *d *d *d *d *d *d *i *i zheswapr n *c *i *j *i *i *i zhetri2 n *c *i *j *i *i *j *i *i zhetri2x n *c *i *j *i *i *j *i *i zhetrs2 n *c *i *i *j *i *i *j *i *j *i zsyconv n *c *c *i *j *i *i *j *i zsyswapr n *c *i *j *i *i *i zsytri2 n *c *i *j *i *i *j *i *i zsytri2x n *c *i *j *i *i *j *i *i zsytrs2 n *c *i *i *j *i *i *j *i *j *i zunbdb n *c *c *i *i *i *j *i *j *i *j *i *j *i *d *d *j *j *j *j *j *i *i zuncsd n *c *c *c *c *c *c *i *i *i *j *i *j *i *j *i *j *i *d *j *i *j *i *j *i *j *i *j *i *d *i *i *i zuncsd2by1 n *c *c *c *i *i *i *j *i *j *i *d *j *i *j *i *j *i *j *i *d *i *i *i sgemqrt n *c *c *i *i *i *i *f *i *f *i *f *i *f *i dgemqrt n *c *c *i *i *i *i *d *i *d *i *d *i *d *i cgemqrt n *c *c *i *i *i *i *z *i *z *i *z *i *z *i zgemqrt n *c *c *i *i *i *i *j *i *j *i *j *i *j *i sgeqrt n *i *i *i *f *i *f *i *f *i dgeqrt n *i *i *i *d *i *d *i *d *i cgeqrt n *i *i *i *z *i *z *i *z *i zgeqrt n *i *i *i *j *i *j *i *j *i sgeqrt2 n *i *i *f *i *f *i *i dgeqrt2 n *i *i *d *i *d *i *i cgeqrt2 n *i *i *z *i *z *i *i zgeqrt2 n *i *i *j *i *j *i *i sgeqrt3 n *i *i *f *i *f *i *i dgeqrt3 n *i *i *d *i *d *i *i cgeqrt3 n *i *i *z *i *z *i *i zgeqrt3 n *i *i *j *i *j *i *i stpmqrt n *c *c *i *i *i *i *i *f *i *f *i *f *i *f *i *f *i dtpmqrt n *c *c *i *i *i *i *i *d *i *d *i *d *i *d *i *d *i ctpmqrt n *c *c *i *i *i *i *i *z *i *z *i *z *i *z *i *z *i ztpmqrt n *c *c *i *i *i *i *i *j *i *j *i *j *i *j *i *j *i stpqrt n *i *i *i *i *f *i *f *i *f *i *f *i dtpqrt n *i *i *i *i *d *i *d *i *d *i *d *i ctpqrt n *i *i *i *i *z *i *z *i *z *i *z *i ztpqrt n *i *i *i *i *j *i *j *i *j *i *j *i stpqrt2 n *i *i *i *f *i *f *i *f *i *i dtpqrt2 n *i *i *i *d *i *d *i *d *i *i ctpqrt2 n *i *i *i *z *i *z *i *z *i *i ztpqrt2 n *i *i *i *j *i *j *i *j *i *i stprfb n *c *c *c *c *i *i *i *i *f *i *f *i *f *i *f *i *f *i dtprfb n *c *c *c *c *i *i *i *i *d *i *d *i *d *i *d *i *d *i ctprfb n *c *c *c *c *i *i *i *i *z *i *z *i *z *i *z *i *z *i ztprfb n *c *c *c *c *i *i *i *i *j *i *j *i *j *i *j *i *j *i ssysv_rook n *c *i *i *f *i *i *f *i *f *i *i ssytrf_rook n *c *i *f *i *i *f *i *i dsysv_rook n *c *i *i *d *i *i *d *i *d *i *i dsytrf_rook n *c *i *d *i *i *d *i *i csysv_rook n *c *i *i *z *i *i *z *i *z *i *i csytrf_rook n *c *i *z *i *i *z *i *i zsysv_rook n *c *i *i *j *i *i *j *i *j *i *i zsytrf_rook n *c *i *j *i *i *j *i *i ssytrs_rook n *c *i *i *f *i *i *f *i *i dsytrs_rook n *c *i *i *d *i *i *d *i *i csytrs_rook n *c *i *i *z *i *i *z *i *i zsytrs_rook n *c *i *i *j *i *i *j *i *i chetrf_rook n *c *i *z *i *i *z *i *i zhetrf_rook n *c *i *j *i *i *j *i *i chetrs_rook n *c *i *i *z *i *i *z *i *i zhetrs_rook n *c *i *i *j *i *i *j *i *i csyr n *c *i *z *z *i *z *i zsyr n *c *i *j *j *i *j *i ilaver n *i *i *i ssysv_aa n *c *i *i *f *i *i *f *i *f *i *i dsysv_aa n *c *i *i *d *i *i *d *i *d *i *i csysv_aa n *c *i *i *z *i *i *z *i *z *i *i zsysv_aa n *c *i *i *j *i *i *j *i *j *i *i chesv_aa n *c *i *i *z *i *i *z *i *z *i *i zhesv_aa n *c *i *i *j *i *i *j *i *j *i *i ssytrf_aa n *c *i *f *i *i *f *i *i dsytrf_aa n *c *i *d *i *i *d *i *i csytrf_aa n *c *i *z *i *i *z *i *i zsytrf_aa n *c *i *j *i *i *j *i *i chetrf_aa n *c *i *z *i *i *z *i *i zhetrf_aa n *c *i *j *i *i *j *i *i ssytrs_aa n *c *i *i *f *i *i *f *i *f *i *i dsytrs_aa n *c *i *i *d *i *i *d *i *d *i *i csytrs_aa n *c *i *i *z *i *i *z *i *z *i *i zsytrs_aa n *c *i *i *j *i *i *j *i *j *i *i chetrs_aa n *c *i *i *z *i *i *z *i *z *i *i zhetrs_aa n *c *i *i *j *i *i *j *i *j *i *i ssysv_rk n *c *i *i *f *i *f *i *f *i *f *i *i dsysv_rk n *c *i *i *d *i *d *i *d *i *d *i *i csysv_rk n *c *i *i *z *i *z *i *z *i *z *i *i zsysv_rk n *c *i *i *j *i *j *i *j *i *j *i *i chesv_rk n *c *i *i *z *i *z *i *z *i *z *i *i zhesv_rk n *c *i *i *j *i *j *i *j *i *j *i *i ssytrf_rk n *c *i *f *i *f *i *f *i *i dsytrf_rk n *c *i *d *i *d *i *d *i *i csytrf_rk n *c *i *z *i *z *i *z *i *i zsytrf_rk n *c *i *j *i *j *i *j *i *i chetrf_rk n *c *i *z *i *z *i *z *i *i zhetrf_rk n *c *i *j *i *j *i *j *i *i ssytrs_3 n *c *i *i *f *i *f *i *f *i *i dsytrs_3 n *c *i *i *d *i *d *i *d *i *i csytrs_3 n *c *i *i *z *i *z *i *z *i *i zsytrs_3 n *c *i *i *j *i *j *i *j *i *i chetrs_3 n *c *i *i *z *i *z *i *z *i *i zhetrs_3 n *c *i *i *j *i *j *i *j *i *i ssytri_3 n *c *i *f *i *f *i *f *i *i dsytri_3 n *c *i *d *i *d *i *d *i *i csytri_3 n *c *i *z *i *z *i *z *i *i zsytri_3 n *c *i *j *i *j *i *j *i *i chetri_3 n *c *i *z *i *z *i *z *i *i zhetri_3 n *c *i *j *i *j *i *j *i *i ssycon_3 n *c *i *f *i *f *i *f *f *f *i *i dsycon_3 n *c *i *d *i *d *i *d *d *d *i *i csycon_3 n *c *i *z *i *z *i *f *f *z *i zsycon_3 n *c *i *j *i *j *i *d *d *j *i checon_3 n *c *i *z *i *z *i *f *f *z *i zhecon_3 n *c *i *j *i *j *i *d *d *j *i sgelq n *i *i *f *i *f *i *f *i *i dgelq n *i *i *d *i *d *i *d *i *i cgelq n *i *i *z *i *z *i *z *i *i zgelq n *i *i *j *i *j *i *j *i *i sgemlq n *c *c *i *i *i *f *i *f *i *f *i *f *i *i dgemlq n *c *c *i *i *i *d *i *d *i *d *i *d *i *i cgemlq n *c *c *i *i *i *z *i *z *i *z *i *z *i *i zgemlq n *c *c *i *i *i *j *i *j *i *j *i *j *i *i sgeqr n *i *i *f *i *f *i *f *i *i dgeqr n *i *i *d *i *d *i *d *i *i cgeqr n *i *i *z *i *z *i *z *i *i zgeqr n *i *i *j *i *j *i *j *i *i sgemqr n *c *c *i *i *i *f *i *f *i *f *i *f *i *i dgemqr n *c *c *i *i *i *d *i *d *i *d *i *d *i *i cgemqr n *c *c *i *i *i *z *i *z *i *z *i *z *i *i zgemqr n *c *c *i *i *i *j *i *j *i *j *i *j *i *i sgetsls n *c *i *i *i *f *i *f *i *f *i *i dgetsls n *c *i *i *i *d *i *d *i *d *i *i cgetsls n *c *i *i *i *z *i *z *i *z *i *i zgetsls n *c *i *i *i *j *i *j *i *j *i *i ssyev_2stage n *c *c *i *f *i *f *f *i *i dsyev_2stage n *c *c *i *d *i *d *d *i *i cheev_2stage n *c *c *i *z *i *f *z *i *f *i zheev_2stage n *c *c *i *j *i *d *j *i *d *i ssyevd_2stage n *c *c *i *f *i *f *f *i *i *i *i dsyevd_2stage n *c *c *i *d *i *d *d *i *i *i *i cheevd_2stage n *c *c *i *z *i *f *z *i *f *i *i *i *i zheevd_2stage n *c *c *i *j *i *d *j *i *d *i *i *i *i ssyevx_2stage n *c *c *c *i *f *i *f *f *i *i *f *i *f *f *i *f *i *i *i *i dsyevx_2stage n *c *c *c *i *d *i *d *d *i *i *d *i *d *d *i *d *i *i *i *i cheevx_2stage n *c *c *c *i *z *i *f *f *i *i *f *i *f *z *i *z *i *f *i *i *i zheevx_2stage n *c *c *c *i *j *i *d *d *i *i *d *i *d *j *i *j *i *d *i *i *i ssyevr_2stage n *c *c *c *i *f *i *f *f *i *i *f *i *f *f *i *i *f *i *i *i *i dsyevr_2stage n *c *c *c *i *d *i *d *d *i *i *d *i *d *d *i *i *d *i *i *i *i cheevr_2stage n *c *c *c *i *z *i *f *f *i *i *f *i *f *z *i *i *z *i *f *i *i *i *i zheevr_2stage n *c *c *c *i *j *i *d *d *i *i *d *i *d *j *i *i *j *i *d *i *i *i *i ssbev_2stage n *c *c *i *i *f *i *f *f *i *f *i *i dsbev_2stage n *c *c *i *i *d *i *d *d *i *d *i *i chbev_2stage n *c *c *i *i *z *i *f *z *i *z *i *f *i zhbev_2stage n *c *c *i *i *j *i *d *j *i *j *i *d *i ssbevd_2stage n *c *c *i *i *f *i *f *f *i *f *i *i *i *i dsbevd_2stage n *c *c *i *i *d *i *d *d *i *d *i *i *i *i chbevd_2stage n *c *c *i *i *z *i *f *z *i *z *i *f *i *i *i *i zhbevd_2stage n *c *c *i *i *j *i *d *j *i *j *i *d *i *i *i *i ssbevx_2stage n *c *c *c *i *i *f *i *f *i *f *f *i *i *f *i *f *f *i *f *i *i *i *i dsbevx_2stage n *c *c *c *i *i *d *i *d *i *d *d *i *i *d *i *d *d *i *d *i *i *i *i chbevx_2stage n *c *c *c *i *i *z *i *z *i *f *f *i *i *f *i *f *z *i *z *i *f *i *i *i zhbevx_2stage n *c *c *c *i *i *j *i *j *i *d *d *i *i *d *i *d *j *i *j *i *d *i *i *i ssygv_2stage n *i *c *c *i *f *i *f *i *f *f *i *i dsygv_2stage n *i *c *c *i *d *i *d *i *d *d *i *i chegv_2stage n *i *c *c *i *z *i *z *i *f *z *i *f *i zhegv_2stage n *i *c *c *i *j *i *j *i *d *j *i *d *i ssysv_aa_2stage n *c *i *i *f *i *f *i *i *i *f *i *f *i *i dsysv_aa_2stage n *c *i *i *d *i *d *i *i *i *d *i *d *i *i csysv_aa_2stage n *c *i *i *z *i *z *i *i *i *z *i *z *i *i zsysv_aa_2stage n *c *i *i *j *i *j *i *i *i *j *i *j *i *i chesv_aa_2stage n *c *i *i *z *i *z *i *i *i *z *i *z *i *i zhesv_aa_2stage n *c *i *i *j *i *j *i *i *i *j *i *j *i *i ssytrf_aa_2stage n *c *i *f *i *f *i *i *i *f *i *i dsytrf_aa_2stage n *c *i *d *i *d *i *i *i *d *i *i csytrf_aa_2stage n *c *i *z *i *z *i *i *i *z *i *i zsytrf_aa_2stage n *c *i *j *i *j *i *i *i *j *i *i chetrf_aa_2stage n *c *i *z *i *z *i *i *i *z *i *i zhetrf_aa_2stage n *c *i *j *i *j *i *i *i *j *i *i ssytrs_aa_2stage n *c *i *i *f *i *f *i *i *i *f *i *i dsytrs_aa_2stage n *c *i *i *d *i *d *i *i *i *d *i *i csytrs_aa_2stage n *c *i *i *z *i *z *i *i *i *z *i *i zsytrs_aa_2stage n *c *i *i *j *i *j *i *i *i *j *i *i chetrs_aa_2stage n *c *i *i *z *i *z *i *i *i *z *i *i zhetrs_aa_2stage n *c *i *i *j *i *j *i *i *i *j *i *i