summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/Data/Packed/Foreign.hs99
-rw-r--r--lib/Data/Packed/Internal/Matrix.hs21
-rw-r--r--lib/Data/Packed/Internal/Vector.hs59
-rw-r--r--lib/Data/Packed/Matrix.hs44
-rw-r--r--lib/Data/Packed/Random.hs21
-rw-r--r--lib/Numeric/Container.hs11
-rw-r--r--lib/Numeric/GSL/Internal.hs3
-rw-r--r--lib/Numeric/GSL/Root.hs81
-rw-r--r--lib/Numeric/GSL/gsl-aux.c154
-rw-r--r--lib/Numeric/LinearAlgebra/LAPACK.hs41
-rw-r--r--lib/Numeric/LinearAlgebra/LAPACK/clapack.h5079
-rw-r--r--lib/Numeric/LinearAlgebra/LAPACK/lapack-aux.c104
-rw-r--r--lib/Numeric/LinearAlgebra/LAPACK/lapack-aux.h71
-rw-r--r--lib/Numeric/LinearAlgebra/Util.hs87
-rw-r--r--lib/Numeric/Vector.hs27
15 files changed, 587 insertions, 5315 deletions
diff --git a/lib/Data/Packed/Foreign.hs b/lib/Data/Packed/Foreign.hs
new file mode 100644
index 0000000..efa51ca
--- /dev/null
+++ b/lib/Data/Packed/Foreign.hs
@@ -0,0 +1,99 @@
1{-# LANGUAGE MagicHash, UnboxedTuples #-}
2-- | FFI and hmatrix helpers.
3--
4-- Sample usage, to upload a perspective matrix to a shader.
5--
6-- @ glUniformMatrix4fv 0 1 (fromIntegral gl_TRUE) \`appMatrix\` perspective 0.01 100 (pi\/2) (4\/3)
7-- @
8--
9module Data.Packed.Foreign
10 ( app
11 , appVector, appVectorLen
12 , appMatrix, appMatrixLen, appMatrixRaw, appMatrixRawLen
13 , unsafeMatrixToVector, unsafeMatrixToForeignPtr
14 ) where
15import Data.Packed.Internal
16import qualified Data.Vector.Storable as S
17import Foreign (Ptr, ForeignPtr, Storable)
18import Foreign.C.Types (CInt)
19import GHC.Base (IO(..), realWorld#)
20
21{-# INLINE unsafeInlinePerformIO #-}
22-- | If we use unsafePerformIO, it may not get inlined, so in a function that returns IO (which are all safe uses of app* in this module), there would be
23-- unecessary calls to unsafePerformIO or its internals.
24unsafeInlinePerformIO :: IO a -> a
25unsafeInlinePerformIO (IO f) = case f realWorld# of
26 (# _, x #) -> x
27
28{-# INLINE app #-}
29-- | Only useful since it is left associated with a precedence of 1, unlike 'Prelude.$', which is right associative.
30-- e.g.
31--
32-- @
33-- someFunction
34-- \`appMatrixLen\` m
35-- \`appVectorLen\` v
36-- \`app\` other
37-- \`app\` arguments
38-- \`app\` go here
39-- @
40--
41-- One could also write:
42--
43-- @
44-- (someFunction
45-- \`appMatrixLen\` m
46-- \`appVectorLen\` v)
47-- other
48-- arguments
49-- (go here)
50-- @
51--
52app :: (a -> b) -> a -> b
53app f = f
54
55{-# INLINE appVector #-}
56appVector :: Storable a => (Ptr a -> b) -> Vector a -> b
57appVector f x = unsafeInlinePerformIO (S.unsafeWith x (return . f))
58
59{-# INLINE appVectorLen #-}
60appVectorLen :: Storable a => (CInt -> Ptr a -> b) -> Vector a -> b
61appVectorLen f x = unsafeInlinePerformIO (S.unsafeWith x (return . f (fromIntegral (S.length x))))
62
63{-# INLINE appMatrix #-}
64appMatrix :: Element a => (Ptr a -> b) -> Matrix a -> b
65appMatrix f x = unsafeInlinePerformIO (S.unsafeWith (flatten x) (return . f))
66
67{-# INLINE appMatrixLen #-}
68appMatrixLen :: Element a => (CInt -> CInt -> Ptr a -> b) -> Matrix a -> b
69appMatrixLen f x = unsafeInlinePerformIO (S.unsafeWith (flatten x) (return . f r c))
70 where
71 r = fromIntegral (rows x)
72 c = fromIntegral (cols x)
73
74{-# INLINE appMatrixRaw #-}
75appMatrixRaw :: Storable a => (Ptr a -> b) -> Matrix a -> b
76appMatrixRaw f x = unsafeInlinePerformIO (S.unsafeWith (xdat x) (return . f))
77
78{-# INLINE appMatrixRawLen #-}
79appMatrixRawLen :: Element a => (CInt -> CInt -> Ptr a -> b) -> Matrix a -> b
80appMatrixRawLen f x = unsafeInlinePerformIO (S.unsafeWith (xdat x) (return . f r c))
81 where
82 r = fromIntegral (rows x)
83 c = fromIntegral (cols x)
84
85infixl 1 `app`
86infixl 1 `appVector`
87infixl 1 `appMatrix`
88infixl 1 `appMatrixRaw`
89
90{-# INLINE unsafeMatrixToVector #-}
91-- | This will disregard the order of the matrix, and simply return it as-is.
92-- If the order of the matrix is RowMajor, this function is identical to 'flatten'.
93unsafeMatrixToVector :: Matrix a -> Vector a
94unsafeMatrixToVector = xdat
95
96{-# INLINE unsafeMatrixToForeignPtr #-}
97unsafeMatrixToForeignPtr :: Storable a => Matrix a -> (ForeignPtr a, Int)
98unsafeMatrixToForeignPtr m = S.unsafeToForeignPtr0 (xdat m)
99
diff --git a/lib/Data/Packed/Internal/Matrix.hs b/lib/Data/Packed/Internal/Matrix.hs
index b8ed18d..255009c 100644
--- a/lib/Data/Packed/Internal/Matrix.hs
+++ b/lib/Data/Packed/Internal/Matrix.hs
@@ -47,6 +47,7 @@ import Data.Complex(Complex)
47import Foreign.C.Types 47import Foreign.C.Types
48import Foreign.C.String(newCString) 48import Foreign.C.String(newCString)
49import System.IO.Unsafe(unsafePerformIO) 49import System.IO.Unsafe(unsafePerformIO)
50import Control.DeepSeq
50 51
51----------------------------------------------------------------- 52-----------------------------------------------------------------
52 53
@@ -131,12 +132,10 @@ mat a f =
131 let m g = do 132 let m g = do
132 g (fi (rows a)) (fi (cols a)) p 133 g (fi (rows a)) (fi (cols a)) p
133 f m 134 f m
134 135-- | Creates a vector by concatenation of rows. If the matrix is ColumnMajor, this operation requires a transpose.
135{- | Creates a vector by concatenation of rows 136--
136 137-- @\> flatten ('ident' 3)
137@\> flatten ('ident' 3) 138-- 9 |> [1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0]@
1389 |> [1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0]@
139-}
140flatten :: Element t => Matrix t -> Vector t 139flatten :: Element t => Matrix t -> Vector t
141flatten = xdat . cmat 140flatten = xdat . cmat
142 141
@@ -459,3 +458,13 @@ size m = (rows m, cols m)
459 458
460shSize m = "(" ++ show (rows m) ++"><"++ show (cols m)++")" 459shSize m = "(" ++ show (rows m) ++"><"++ show (cols m)++")"
461 460
461----------------------------------------------------------------------
462
463instance (Storable t, NFData t) => NFData (Matrix t)
464 where
465 rnf m | d > 0 = rnf (v @> 0)
466 | otherwise = ()
467 where
468 d = dim v
469 v = xdat m
470
diff --git a/lib/Data/Packed/Internal/Vector.hs b/lib/Data/Packed/Internal/Vector.hs
index d3b80ff..5892e67 100644
--- a/lib/Data/Packed/Internal/Vector.hs
+++ b/lib/Data/Packed/Internal/Vector.hs
@@ -55,48 +55,17 @@ import GHC.Base
55import GHC.IOBase hiding (liftIO) 55import GHC.IOBase hiding (liftIO)
56#endif 56#endif
57 57
58#ifdef VECTOR
59import qualified Data.Vector.Storable as Vector 58import qualified Data.Vector.Storable as Vector
60import Data.Vector.Storable(Vector, 59import Data.Vector.Storable(Vector,
61 unsafeToForeignPtr, 60 unsafeToForeignPtr,
62 unsafeFromForeignPtr, 61 unsafeFromForeignPtr,
63 unsafeWith) 62 unsafeWith)
64#else
65import Foreign.ForeignPtr(withForeignPtr)
66#endif
67 63
68#ifdef VECTOR
69 64
70-- | Number of elements 65-- | Number of elements
71dim :: (Storable t) => Vector t -> Int 66dim :: (Storable t) => Vector t -> Int
72dim = Vector.length 67dim = Vector.length
73 68
74#else
75
76-- | One-dimensional array of objects stored in a contiguous memory block.
77data Vector t =
78 V { ioff :: {-# UNPACK #-} !Int -- ^ offset of first element
79 , idim :: {-# UNPACK #-} !Int -- ^ number of elements
80 , fptr :: {-# UNPACK #-} !(ForeignPtr t) -- ^ foreign pointer to the memory block
81 }
82
83unsafeToForeignPtr :: Storable a => Vector a -> (ForeignPtr a, Int, Int)
84unsafeToForeignPtr v = (fptr v, ioff v, idim v)
85
86-- | Same convention as in Roman Leshchinskiy's vector package.
87unsafeFromForeignPtr :: Storable a => ForeignPtr a -> Int -> Int -> Vector a
88unsafeFromForeignPtr fp i n | n > 0 = V {ioff = i, idim = n, fptr = fp}
89 | otherwise = error "unsafeFromForeignPtr with dim < 1"
90
91unsafeWith (V i _ fp) m = withForeignPtr fp $ \p -> m (p `advancePtr` i)
92{-# INLINE unsafeWith #-}
93
94-- | Number of elements
95dim :: (Storable t) => Vector t -> Int
96dim = idim
97
98#endif
99
100 69
101-- C-Haskell vector adapter 70-- C-Haskell vector adapter
102-- vec :: Adapt (CInt -> Ptr t -> r) (Vector t) r 71-- vec :: Adapt (CInt -> Ptr t -> r) (Vector t) r
@@ -204,36 +173,8 @@ subVector :: Storable t => Int -- ^ index of the starting element
204 -> Int -- ^ number of elements to extract 173 -> Int -- ^ number of elements to extract
205 -> Vector t -- ^ source 174 -> Vector t -- ^ source
206 -> Vector t -- ^ result 175 -> Vector t -- ^ result
207
208#ifdef VECTOR
209
210subVector = Vector.slice 176subVector = Vector.slice
211 177
212{-
213subVector k l v
214 | k<0 || k >= n || k+l > n || l < 0 = error "subVector out of range"
215 | otherwise = unsafeFromForeignPtr fp (i+k) l
216 where
217 (fp, i, n) = unsafeToForeignPtr v
218-}
219
220#else
221
222subVector k l v@V{idim = n, ioff = i}
223 | k<0 || k >= n || k+l > n || l < 0 = error "subVector out of range"
224 | otherwise = v {idim = l, ioff = i+k}
225
226{-
227subVectorCopy k l (v@V {idim=n})
228 | k<0 || k >= n || k+l > n || l < 0 = error "subVector out of range"
229 | otherwise = unsafePerformIO $ do
230 r <- createVector l
231 let f _ s _ d = copyArray d (advancePtr s k) l >> return 0
232 app2 f vec v vec r "subVector"
233 return r
234-}
235
236#endif
237 178
238{- | Reads a vector position: 179{- | Reads a vector position:
239 180
diff --git a/lib/Data/Packed/Matrix.hs b/lib/Data/Packed/Matrix.hs
index c1a9b24..1b67820 100644
--- a/lib/Data/Packed/Matrix.hs
+++ b/lib/Data/Packed/Matrix.hs
@@ -30,7 +30,7 @@ module Data.Packed.Matrix (
30 (@@>), 30 (@@>),
31 asRow, asColumn, 31 asRow, asColumn,
32 fromRows, toRows, fromColumns, toColumns, 32 fromRows, toRows, fromColumns, toColumns,
33 fromBlocks, toBlocks, toBlocksEvery, 33 fromBlocks, diagBlock, toBlocks, toBlocksEvery,
34 repmat, 34 repmat,
35 flipud, fliprl, 35 flipud, fliprl,
36 subMatrix, takeRows, dropRows, takeColumns, dropColumns, 36 subMatrix, takeRows, dropRows, takeColumns, dropColumns,
@@ -46,6 +46,7 @@ import Data.Array
46 46
47import Data.List(transpose,intersperse) 47import Data.List(transpose,intersperse)
48import Foreign.Storable(Storable) 48import Foreign.Storable(Storable)
49import Control.Monad(liftM)
49 50
50------------------------------------------------------------------- 51-------------------------------------------------------------------
51 52
@@ -155,7 +156,19 @@ adaptBlocks ms = ms' where
155 x = m@@>(0,0) 156 x = m@@>(0,0)
156 g _ _ = error "inconsistent dimensions in fromBlocks" 157 g _ _ = error "inconsistent dimensions in fromBlocks"
157 158
158----------------------------------------------------------- 159
160--------------------------------------------------------------------------------
161
162-- | create a block diagonal matrix
163diagBlock :: (Element t, Num t) => [Matrix t] -> Matrix t
164diagBlock ms = fromBlocks $ zipWith f ms [0..]
165 where
166 f m k = take n $ replicate k z ++ m : repeat z
167 n = length ms
168 z = (1><1) [0]
169
170--------------------------------------------------------------------------------
171
159 172
160-- | Reverse rows 173-- | Reverse rows
161flipud :: Element t => Matrix t -> Matrix t 174flipud :: Element t => Matrix t -> Matrix t
@@ -351,7 +364,11 @@ toBlocksEvery r c m = toBlocks rs cs m where
351 364
352------------------------------------------------------------------- 365-------------------------------------------------------------------
353 366
354mk c g = \k v -> g (divMod k c) v 367-- Given a column number and a function taking matrix indexes, returns
368-- a function which takes vector indexes (that can be used on the
369-- flattened matrix).
370mk :: Int -> ((Int, Int) -> t) -> (Int -> t)
371mk c g = \k -> g (divMod k c)
355 372
356{- | 373{- |
357 374
@@ -364,9 +381,8 @@ m[1,1] = 5
364m[1,2] = 6@ 381m[1,2] = 6@
365-} 382-}
366mapMatrixWithIndexM_ 383mapMatrixWithIndexM_
367 :: (Element a, Num a, 384 :: (Element a, Num a, Monad m) =>
368 Functor f, Monad f) => 385 ((Int, Int) -> a -> m ()) -> Matrix a -> m ()
369 ((Int, Int) -> a -> f ()) -> Matrix a -> f ()
370mapMatrixWithIndexM_ g m = mapVectorWithIndexM_ (mk c g) . flatten $ m 386mapMatrixWithIndexM_ g m = mapVectorWithIndexM_ (mk c g) . flatten $ m
371 where 387 where
372 c = cols m 388 c = cols m
@@ -380,11 +396,9 @@ Just (3><3)
380 , 20.0, 21.0, 122.0 ]@ 396 , 20.0, 21.0, 122.0 ]@
381-} 397-}
382mapMatrixWithIndexM 398mapMatrixWithIndexM
383 :: (Foreign.Storable.Storable t, 399 :: (Element a, Storable b, Monad m) =>
384 Element a, Num a, 400 ((Int, Int) -> a -> m b) -> Matrix a -> m (Matrix b)
385 Functor f, Monad f) => 401mapMatrixWithIndexM g m = liftM (reshape c) . mapVectorWithIndexM (mk c g) . flatten $ m
386 ((Int, Int) -> a -> f t) -> Matrix a -> f (Matrix t)
387mapMatrixWithIndexM g m = fmap (reshape c) . mapVectorWithIndexM (mk c g) . flatten $ m
388 where 402 where
389 c = cols m 403 c = cols m
390 404
@@ -395,10 +409,10 @@ mapMatrixWithIndexM g m = fmap (reshape c) . mapVectorWithIndexM (mk c g) . flat
395 , 10.0, 111.0, 12.0 409 , 10.0, 111.0, 12.0
396 , 20.0, 21.0, 122.0 ]@ 410 , 20.0, 21.0, 122.0 ]@
397 -} 411 -}
398mapMatrixWithIndex :: (Foreign.Storable.Storable t, 412mapMatrixWithIndex
399 Element a, Num a) => 413 :: (Element a, Storable b) =>
400 ((Int, Int) -> a -> t) -> Matrix a -> Matrix t 414 ((Int, Int) -> a -> b) -> Matrix a -> Matrix b
401mapMatrixWithIndex g m = reshape c $ mapVectorWithIndex (mk c g) $ flatten m 415mapMatrixWithIndex g m = reshape c . mapVectorWithIndex (mk c g) . flatten $ m
402 where 416 where
403 c = cols m 417 c = cols m
404 418
diff --git a/lib/Data/Packed/Random.hs b/lib/Data/Packed/Random.hs
index 4b229f0..dabb17d 100644
--- a/lib/Data/Packed/Random.hs
+++ b/lib/Data/Packed/Random.hs
@@ -12,11 +12,11 @@
12----------------------------------------------------------------------------- 12-----------------------------------------------------------------------------
13 13
14module Data.Packed.Random ( 14module Data.Packed.Random (
15 Seed,
15 RandDist(..), 16 RandDist(..),
16 randomVector, 17 randomVector,
17 gaussianSample, 18 gaussianSample,
18 uniformSample, 19 uniformSample
19 meanCov,
20) where 20) where
21 21
22import Numeric.GSL.Vector 22import Numeric.GSL.Vector
@@ -25,9 +25,11 @@ import Numeric.ContainerBoot
25import Numeric.LinearAlgebra.Algorithms 25import Numeric.LinearAlgebra.Algorithms
26 26
27 27
28type Seed = Int
29
28-- | Obtains a matrix whose rows are pseudorandom samples from a multivariate 30-- | Obtains a matrix whose rows are pseudorandom samples from a multivariate
29-- Gaussian distribution. 31-- Gaussian distribution.
30gaussianSample :: Int -- ^ seed 32gaussianSample :: Seed
31 -> Int -- ^ number of rows 33 -> Int -- ^ number of rows
32 -> Vector Double -- ^ mean vector 34 -> Vector Double -- ^ mean vector
33 -> Matrix Double -- ^ covariance matrix 35 -> Matrix Double -- ^ covariance matrix
@@ -40,7 +42,7 @@ gaussianSample seed n med cov = m where
40 42
41-- | Obtains a matrix whose rows are pseudorandom samples from a multivariate 43-- | Obtains a matrix whose rows are pseudorandom samples from a multivariate
42-- uniform distribution. 44-- uniform distribution.
43uniformSample :: Int -- ^ seed 45uniformSample :: Seed
44 -> Int -- ^ number of rows 46 -> Int -- ^ number of rows
45 -> [(Double,Double)] -- ^ ranges for each column 47 -> [(Double,Double)] -- ^ ranges for each column
46 -> Matrix Double -- ^ result 48 -> Matrix Double -- ^ result
@@ -53,14 +55,3 @@ uniformSample seed n rgs = m where
53 am = konst 1 n `outer` a 55 am = konst 1 n `outer` a
54 m = fromColumns (zipWith scale cs dat) `add` am 56 m = fromColumns (zipWith scale cs dat) `add` am
55 57
56------------ utilities -------------------------------
57
58-- | Compute mean vector and covariance matrix of the rows of a matrix.
59meanCov :: Matrix Double -> (Vector Double, Matrix Double)
60meanCov x = (med,cov) where
61 r = rows x
62 k = 1 / fromIntegral r
63 med = konst k r `vXm` x
64 meds = konst 1 r `outer` med
65 xc = x `sub` meds
66 cov = scale (recip (fromIntegral (r-1))) (trans xc `mXm` xc)
diff --git a/lib/Numeric/Container.hs b/lib/Numeric/Container.hs
index 661e5b4..345c1f1 100644
--- a/lib/Numeric/Container.hs
+++ b/lib/Numeric/Container.hs
@@ -132,3 +132,14 @@ instance LSDiv Matrix Matrix where
132 (<\>) = linearSolveSVD 132 (<\>) = linearSolveSVD
133 133
134-------------------------------------------------------- 134--------------------------------------------------------
135
136-- | Compute mean vector and covariance matrix of the rows of a matrix.
137meanCov :: Matrix Double -> (Vector Double, Matrix Double)
138meanCov x = (med,cov) where
139 r = rows x
140 k = 1 / fromIntegral r
141 med = konst k r `vXm` x
142 meds = konst 1 r `outer` med
143 xc = x `sub` meds
144 cov = scale (recip (fromIntegral (r-1))) (trans xc `mXm` xc)
145
diff --git a/lib/Numeric/GSL/Internal.hs b/lib/Numeric/GSL/Internal.hs
index 84417ce..69a9750 100644
--- a/lib/Numeric/GSL/Internal.hs
+++ b/lib/Numeric/GSL/Internal.hs
@@ -36,6 +36,9 @@ foreign import ccall safe "wrapper"
36foreign import ccall safe "wrapper" 36foreign import ccall safe "wrapper"
37 mkDoubleVecVecfun :: (Double -> TVV) -> IO (FunPtr (Double -> TVV)) 37 mkDoubleVecVecfun :: (Double -> TVV) -> IO (FunPtr (Double -> TVV))
38 38
39foreign import ccall safe "wrapper"
40 mkDoublefun :: (Double -> Double) -> IO (FunPtr (Double -> Double))
41
39aux_vTov :: (Vector Double -> Vector Double) -> TVV 42aux_vTov :: (Vector Double -> Vector Double) -> TVV
40aux_vTov f n p nr r = g where 43aux_vTov f n p nr r = g where
41 v = f x 44 v = f x
diff --git a/lib/Numeric/GSL/Root.hs b/lib/Numeric/GSL/Root.hs
index cd2982a..6da15e5 100644
--- a/lib/Numeric/GSL/Root.hs
+++ b/lib/Numeric/GSL/Root.hs
@@ -45,6 +45,8 @@ main = do
45----------------------------------------------------------------------------- 45-----------------------------------------------------------------------------
46 46
47module Numeric.GSL.Root ( 47module Numeric.GSL.Root (
48 uniRoot, UniRootMethod(..),
49 uniRootJ, UniRootMethodJ(..),
48 root, RootMethod(..), 50 root, RootMethod(..),
49 rootJ, RootMethodJ(..), 51 rootJ, RootMethodJ(..),
50) where 52) where
@@ -58,6 +60,68 @@ import System.IO.Unsafe(unsafePerformIO)
58 60
59------------------------------------------------------------------------- 61-------------------------------------------------------------------------
60 62
63data UniRootMethod = Bisection
64 | FalsePos
65 | Brent
66 deriving (Enum, Eq, Show, Bounded)
67
68uniRoot :: UniRootMethod
69 -> Double
70 -> Int
71 -> (Double -> Double)
72 -> Double
73 -> Double
74 -> (Double, Matrix Double)
75uniRoot method epsrel maxit fun xl xu = uniRootGen (fi (fromEnum method)) fun xl xu epsrel maxit
76
77uniRootGen m f xl xu epsrel maxit = unsafePerformIO $ do
78 fp <- mkDoublefun f
79 rawpath <- createMIO maxit 4
80 (c_root m fp epsrel (fi maxit) xl xu)
81 "root"
82 let it = round (rawpath @@> (maxit-1,0))
83 path = takeRows it rawpath
84 [sol] = toLists $ dropRows (it-1) path
85 freeHaskellFunPtr fp
86 return (sol !! 1, path)
87
88foreign import ccall safe "root"
89 c_root:: CInt -> FunPtr (Double -> Double) -> Double -> CInt -> Double -> Double -> TM
90
91-------------------------------------------------------------------------
92data UniRootMethodJ = UNewton
93 | Secant
94 | Steffenson
95 deriving (Enum, Eq, Show, Bounded)
96
97uniRootJ :: UniRootMethodJ
98 -> Double
99 -> Int
100 -> (Double -> Double)
101 -> (Double -> Double)
102 -> Double
103 -> (Double, Matrix Double)
104uniRootJ method epsrel maxit fun dfun x = uniRootJGen (fi (fromEnum method)) fun
105 dfun x epsrel maxit
106
107uniRootJGen m f df x epsrel maxit = unsafePerformIO $ do
108 fp <- mkDoublefun f
109 dfp <- mkDoublefun df
110 rawpath <- createMIO maxit 2
111 (c_rootj m fp dfp epsrel (fi maxit) x)
112 "rootj"
113 let it = round (rawpath @@> (maxit-1,0))
114 path = takeRows it rawpath
115 [sol] = toLists $ dropRows (it-1) path
116 freeHaskellFunPtr fp
117 return (sol !! 1, path)
118
119foreign import ccall safe "rootj"
120 c_rootj :: CInt -> FunPtr (Double -> Double) -> FunPtr (Double -> Double)
121 -> Double -> CInt -> Double -> TM
122
123-------------------------------------------------------------------------
124
61data RootMethod = Hybrids 125data RootMethod = Hybrids
62 | Hybrid 126 | Hybrid
63 | DNewton 127 | DNewton
@@ -82,8 +146,8 @@ rootGen m f xi epsabs maxit = unsafePerformIO $ do
82 fp <- mkVecVecfun (aux_vTov (checkdim1 n . fromList . f . toList)) 146 fp <- mkVecVecfun (aux_vTov (checkdim1 n . fromList . f . toList))
83 rawpath <- vec xiv $ \xiv' -> 147 rawpath <- vec xiv $ \xiv' ->
84 createMIO maxit (2*n+1) 148 createMIO maxit (2*n+1)
85 (c_root m fp epsabs (fi maxit) // xiv') 149 (c_multiroot m fp epsabs (fi maxit) // xiv')
86 "root" 150 "multiroot"
87 let it = round (rawpath @@> (maxit-1,0)) 151 let it = round (rawpath @@> (maxit-1,0))
88 path = takeRows it rawpath 152 path = takeRows it rawpath
89 [sol] = toLists $ dropRows (it-1) path 153 [sol] = toLists $ dropRows (it-1) path
@@ -91,8 +155,8 @@ rootGen m f xi epsabs maxit = unsafePerformIO $ do
91 return (take n $ drop 1 sol, path) 155 return (take n $ drop 1 sol, path)
92 156
93 157
94foreign import ccall safe "root" 158foreign import ccall safe "multiroot"
95 c_root:: CInt -> FunPtr TVV -> Double -> CInt -> TVM 159 c_multiroot:: CInt -> FunPtr TVV -> Double -> CInt -> TVM
96 160
97------------------------------------------------------------------------- 161-------------------------------------------------------------------------
98 162
@@ -120,8 +184,8 @@ rootJGen m f jac xi epsabs maxit = unsafePerformIO $ do
120 jp <- mkVecMatfun (aux_vTom (checkdim2 n . fromLists . jac . toList)) 184 jp <- mkVecMatfun (aux_vTom (checkdim2 n . fromLists . jac . toList))
121 rawpath <- vec xiv $ \xiv' -> 185 rawpath <- vec xiv $ \xiv' ->
122 createMIO maxit (2*n+1) 186 createMIO maxit (2*n+1)
123 (c_rootj m fp jp epsabs (fi maxit) // xiv') 187 (c_multirootj m fp jp epsabs (fi maxit) // xiv')
124 "root" 188 "multiroot"
125 let it = round (rawpath @@> (maxit-1,0)) 189 let it = round (rawpath @@> (maxit-1,0))
126 path = takeRows it rawpath 190 path = takeRows it rawpath
127 [sol] = toLists $ dropRows (it-1) path 191 [sol] = toLists $ dropRows (it-1) path
@@ -129,9 +193,8 @@ rootJGen m f jac xi epsabs maxit = unsafePerformIO $ do
129 freeHaskellFunPtr jp 193 freeHaskellFunPtr jp
130 return (take n $ drop 1 sol, path) 194 return (take n $ drop 1 sol, path)
131 195
132 196foreign import ccall safe "multirootj"
133foreign import ccall safe "rootj" 197 c_multirootj:: CInt -> FunPtr TVV -> FunPtr TVM -> Double -> CInt -> TVM
134 c_rootj:: CInt -> FunPtr TVV -> FunPtr TVM -> Double -> CInt -> TVM
135 198
136------------------------------------------------------- 199-------------------------------------------------------
137 200
diff --git a/lib/Numeric/GSL/gsl-aux.c b/lib/Numeric/GSL/gsl-aux.c
index fc14ff5..e727c91 100644
--- a/lib/Numeric/GSL/gsl-aux.c
+++ b/lib/Numeric/GSL/gsl-aux.c
@@ -32,6 +32,7 @@
32#include <gsl/gsl_complex_math.h> 32#include <gsl/gsl_complex_math.h>
33#include <gsl/gsl_rng.h> 33#include <gsl/gsl_rng.h>
34#include <gsl/gsl_randist.h> 34#include <gsl/gsl_randist.h>
35#include <gsl/gsl_roots.h>
35#include <gsl/gsl_multifit_nlin.h> 36#include <gsl/gsl_multifit_nlin.h>
36#include <string.h> 37#include <string.h>
37#include <stdio.h> 38#include <stdio.h>
@@ -937,7 +938,7 @@ int minimize(int method, double f(int, double*), double tolsize, int maxit,
937 iter++; 938 iter++;
938 if (status) break; 939 if (status) break;
939 status = gsl_multimin_test_size (size, tolsize); 940 status = gsl_multimin_test_size (size, tolsize);
940 } while (status == GSL_CONTINUE && iter <= maxit); 941 } while (status == GSL_CONTINUE && iter < maxit);
941 int i,j; 942 int i,j;
942 for (i=iter; i<solr; i++) { 943 for (i=iter; i<solr; i++) {
943 solp[i*solc+0] = iter; 944 solp[i*solc+0] = iter;
@@ -1033,7 +1034,7 @@ int minimizeD(int method, double f(int, double*), int df(int, double*, int, doub
1033 iter++; 1034 iter++;
1034 if (status) break; 1035 if (status) break;
1035 status = gsl_multimin_test_gradient (s->gradient, tolgrad); 1036 status = gsl_multimin_test_gradient (s->gradient, tolgrad);
1036 } while (status == GSL_CONTINUE && iter <= maxit); 1037 } while (status == GSL_CONTINUE && iter < maxit);
1037 int i,j; 1038 int i,j;
1038 for (i=iter; i<solr; i++) { 1039 for (i=iter; i<solr; i++) {
1039 solp[i*solc+0] = iter; 1040 solp[i*solc+0] = iter;
@@ -1047,9 +1048,144 @@ int minimizeD(int method, double f(int, double*), int df(int, double*, int, doub
1047 1048
1048//--------------------------------------------------------------- 1049//---------------------------------------------------------------
1049 1050
1051double only_f_aux_root(double x, void *pars) {
1052 double (*f)(double) = (double (*)(double)) pars;
1053 return f(x);
1054}
1055
1056int root(int method, double f(double),
1057 double epsrel, int maxit,
1058 double xl, double xu, RMAT(sol)) {
1059 REQUIRES(solr == maxit && solc == 4,BAD_SIZE);
1060 DEBUGMSG("root_only_f");
1061 gsl_function my_func;
1062 // extract function from pars
1063 my_func.function = only_f_aux_root;
1064 my_func.params = f;
1065 size_t iter = 0;
1066 int status;
1067 const gsl_root_fsolver_type *T;
1068 gsl_root_fsolver *s;
1069 // Starting point
1070 switch(method) {
1071 case 0 : {T = gsl_root_fsolver_bisection; printf("7\n"); break; }
1072 case 1 : {T = gsl_root_fsolver_falsepos; break; }
1073 case 2 : {T = gsl_root_fsolver_brent; break; }
1074 default: ERROR(BAD_CODE);
1075 }
1076 s = gsl_root_fsolver_alloc (T);
1077 gsl_root_fsolver_set (s, &my_func, xl, xu);
1078 do {
1079 double best, current_lo, current_hi;
1080 status = gsl_root_fsolver_iterate (s);
1081 best = gsl_root_fsolver_root (s);
1082 current_lo = gsl_root_fsolver_x_lower (s);
1083 current_hi = gsl_root_fsolver_x_upper (s);
1084 solp[iter*solc] = iter + 1;
1085 solp[iter*solc+1] = best;
1086 solp[iter*solc+2] = current_lo;
1087 solp[iter*solc+3] = current_hi;
1088 iter++;
1089 if (status) /* check if solver is stuck */
1090 break;
1091
1092 status =
1093 gsl_root_test_interval (current_lo, current_hi, 0, epsrel);
1094 }
1095 while (status == GSL_CONTINUE && iter < maxit);
1096 int i;
1097 for (i=iter; i<solr; i++) {
1098 solp[i*solc+0] = iter;
1099 solp[i*solc+1]=0.;
1100 solp[i*solc+2]=0.;
1101 solp[i*solc+3]=0.;
1102 }
1103 gsl_root_fsolver_free(s);
1104 OK
1105}
1106
1107typedef struct {
1108 double (*f)(double);
1109 double (*jf)(double);
1110} uniTfjf;
1111
1112double f_aux_uni(double x, void *pars) {
1113 uniTfjf * fjf = ((uniTfjf*) pars);
1114 return (fjf->f)(x);
1115}
1116
1117double jf_aux_uni(double x, void * pars) {
1118 uniTfjf * fjf = ((uniTfjf*) pars);
1119 return (fjf->jf)(x);
1120}
1121
1122void fjf_aux_uni(double x, void * pars, double * f, double * g) {
1123 *f = f_aux_uni(x,pars);
1124 *g = jf_aux_uni(x,pars);
1125}
1126
1127int rootj(int method, double f(double),
1128 double df(double),
1129 double epsrel, int maxit,
1130 double x, RMAT(sol)) {
1131 REQUIRES(solr == maxit && solc == 2,BAD_SIZE);
1132 DEBUGMSG("root_fjf");
1133 gsl_function_fdf my_func;
1134 // extract function from pars
1135 my_func.f = f_aux_uni;
1136 my_func.df = jf_aux_uni;
1137 my_func.fdf = fjf_aux_uni;
1138 uniTfjf stfjf;
1139 stfjf.f = f;
1140 stfjf.jf = df;
1141 my_func.params = &stfjf;
1142 size_t iter = 0;
1143 int status;
1144 const gsl_root_fdfsolver_type *T;
1145 gsl_root_fdfsolver *s;
1146 // Starting point
1147 switch(method) {
1148 case 0 : {T = gsl_root_fdfsolver_newton;; break; }
1149 case 1 : {T = gsl_root_fdfsolver_secant; break; }
1150 case 2 : {T = gsl_root_fdfsolver_steffenson; break; }
1151 default: ERROR(BAD_CODE);
1152 }
1153 s = gsl_root_fdfsolver_alloc (T);
1154
1155 gsl_root_fdfsolver_set (s, &my_func, x);
1156
1157 do {
1158 double x0;
1159 status = gsl_root_fdfsolver_iterate (s);
1160 x0 = x;
1161 x = gsl_root_fdfsolver_root(s);
1162 solp[iter*solc+0] = iter+1;
1163 solp[iter*solc+1] = x;
1164
1165 iter++;
1166 if (status) /* check if solver is stuck */
1167 break;
1168
1169 status =
1170 gsl_root_test_delta (x, x0, 0, epsrel);
1171 }
1172 while (status == GSL_CONTINUE && iter < maxit);
1173
1174 int i;
1175 for (i=iter; i<solr; i++) {
1176 solp[i*solc+0] = iter;
1177 solp[i*solc+1]=0.;
1178 }
1179 gsl_root_fdfsolver_free(s);
1180 OK
1181}
1182
1183
1184//---------------------------------------------------------------
1185
1050typedef void TrawfunV(int, double*, int, double*); 1186typedef void TrawfunV(int, double*, int, double*);
1051 1187
1052int only_f_aux_root(const gsl_vector*x, void *pars, gsl_vector*y) { 1188int only_f_aux_multiroot(const gsl_vector*x, void *pars, gsl_vector*y) {
1053 TrawfunV * f = (TrawfunV*) pars; 1189 TrawfunV * f = (TrawfunV*) pars;
1054 double* p = (double*)calloc(x->size,sizeof(double)); 1190 double* p = (double*)calloc(x->size,sizeof(double));
1055 double* q = (double*)calloc(y->size,sizeof(double)); 1191 double* q = (double*)calloc(y->size,sizeof(double));
@@ -1066,14 +1202,14 @@ int only_f_aux_root(const gsl_vector*x, void *pars, gsl_vector*y) {
1066 return 0; //hmmm 1202 return 0; //hmmm
1067} 1203}
1068 1204
1069int root(int method, void f(int, double*, int, double*), 1205int multiroot(int method, void f(int, double*, int, double*),
1070 double epsabs, int maxit, 1206 double epsabs, int maxit,
1071 KRVEC(xi), RMAT(sol)) { 1207 KRVEC(xi), RMAT(sol)) {
1072 REQUIRES(solr == maxit && solc == 1+2*xin,BAD_SIZE); 1208 REQUIRES(solr == maxit && solc == 1+2*xin,BAD_SIZE);
1073 DEBUGMSG("root_only_f"); 1209 DEBUGMSG("root_only_f");
1074 gsl_multiroot_function my_func; 1210 gsl_multiroot_function my_func;
1075 // extract function from pars 1211 // extract function from pars
1076 my_func.f = only_f_aux_root; 1212 my_func.f = only_f_aux_multiroot;
1077 my_func.n = xin; 1213 my_func.n = xin;
1078 my_func.params = f; 1214 my_func.params = f;
1079 size_t iter = 0; 1215 size_t iter = 0;
@@ -1112,7 +1248,7 @@ int root(int method, void f(int, double*, int, double*),
1112 status = 1248 status =
1113 gsl_multiroot_test_residual (s->f, epsabs); 1249 gsl_multiroot_test_residual (s->f, epsabs);
1114 } 1250 }
1115 while (status == GSL_CONTINUE && iter <= maxit); 1251 while (status == GSL_CONTINUE && iter < maxit);
1116 1252
1117 int i,j; 1253 int i,j;
1118 for (i=iter; i<solr; i++) { 1254 for (i=iter; i<solr; i++) {
@@ -1175,7 +1311,7 @@ int fjf_aux(const gsl_vector * x, void * pars, gsl_vector * f, gsl_matrix * g) {
1175 return 0; 1311 return 0;
1176} 1312}
1177 1313
1178int rootj(int method, int f(int, double*, int, double*), 1314int multirootj(int method, int f(int, double*, int, double*),
1179 int jac(int, double*, int, int, double*), 1315 int jac(int, double*, int, int, double*),
1180 double epsabs, int maxit, 1316 double epsabs, int maxit,
1181 KRVEC(xi), RMAT(sol)) { 1317 KRVEC(xi), RMAT(sol)) {
@@ -1228,7 +1364,7 @@ int rootj(int method, int f(int, double*, int, double*),
1228 status = 1364 status =
1229 gsl_multiroot_test_residual (s->f, epsabs); 1365 gsl_multiroot_test_residual (s->f, epsabs);
1230 } 1366 }
1231 while (status == GSL_CONTINUE && iter <= maxit); 1367 while (status == GSL_CONTINUE && iter < maxit);
1232 1368
1233 int i,j; 1369 int i,j;
1234 for (i=iter; i<solr; i++) { 1370 for (i=iter; i<solr; i++) {
@@ -1293,7 +1429,7 @@ int nlfit(int method, int f(int, double*, int, double*),
1293 1429
1294 status = gsl_multifit_test_delta (s->dx, s->x, epsabs, epsrel); 1430 status = gsl_multifit_test_delta (s->dx, s->x, epsabs, epsrel);
1295 } 1431 }
1296 while (status == GSL_CONTINUE && iter <= maxit); 1432 while (status == GSL_CONTINUE && iter < maxit);
1297 1433
1298 int i,j; 1434 int i,j;
1299 for (i=iter; i<solr; i++) { 1435 for (i=iter; i<solr; i++) {
diff --git a/lib/Numeric/LinearAlgebra/LAPACK.hs b/lib/Numeric/LinearAlgebra/LAPACK.hs
index 9bc6669..ffc6cee 100644
--- a/lib/Numeric/LinearAlgebra/LAPACK.hs
+++ b/lib/Numeric/LinearAlgebra/LAPACK.hs
@@ -211,10 +211,10 @@ leftSVAux f st x = unsafePerformIO $ do
211 211
212----------------------------------------------------------------------------- 212-----------------------------------------------------------------------------
213 213
214foreign import ccall unsafe "LAPACK/lapack-aux.h eig_l_R" dgeev :: TMMCVM 214foreign import ccall unsafe "eig_l_R" dgeev :: TMMCVM
215foreign import ccall unsafe "LAPACK/lapack-aux.h eig_l_C" zgeev :: TCMCMCVCM 215foreign import ccall unsafe "eig_l_C" zgeev :: TCMCMCVCM
216foreign import ccall unsafe "LAPACK/lapack-aux.h eig_l_S" dsyev :: CInt -> TMVM 216foreign import ccall unsafe "eig_l_S" dsyev :: CInt -> TMVM
217foreign import ccall unsafe "LAPACK/lapack-aux.h eig_l_H" zheev :: CInt -> TCMVCM 217foreign import ccall unsafe "eig_l_H" zheev :: CInt -> TCMVCM
218 218
219eigAux f st m = unsafePerformIO $ do 219eigAux f st m = unsafePerformIO $ do
220 l <- createVector r 220 l <- createVector r
@@ -359,10 +359,10 @@ cholSolveC :: Matrix (Complex Double) -> Matrix (Complex Double) -> Matrix (Comp
359cholSolveC a b = linearSolveSQAux zpotrs "cholSolveC" (fmat a) (fmat b) 359cholSolveC a b = linearSolveSQAux zpotrs "cholSolveC" (fmat a) (fmat b)
360 360
361----------------------------------------------------------------------------------- 361-----------------------------------------------------------------------------------
362foreign import ccall unsafe "LAPACK/lapack-aux.h linearSolveLSR_l" dgels :: TMMM 362foreign import ccall unsafe "linearSolveLSR_l" dgels :: TMMM
363foreign import ccall unsafe "LAPACK/lapack-aux.h linearSolveLSC_l" zgels :: TCMCMCM 363foreign import ccall unsafe "linearSolveLSC_l" zgels :: TCMCMCM
364foreign import ccall unsafe "LAPACK/lapack-aux.h linearSolveSVDR_l" dgelss :: Double -> TMMM 364foreign import ccall unsafe "linearSolveSVDR_l" dgelss :: Double -> TMMM
365foreign import ccall unsafe "LAPACK/lapack-aux.h linearSolveSVDC_l" zgelss :: Double -> TCMCMCM 365foreign import ccall unsafe "linearSolveSVDC_l" zgelss :: Double -> TCMCMCM
366 366
367linearSolveAux f st a b = unsafePerformIO $ do 367linearSolveAux f st a b = unsafePerformIO $ do
368 r <- createMatrix ColumnMajor (max m n) nrhs 368 r <- createMatrix ColumnMajor (max m n) nrhs
@@ -401,8 +401,8 @@ linearSolveSVDC (Just rcond) a b = subMatrix (0,0) (cols a, cols b) $
401linearSolveSVDC Nothing a b = linearSolveSVDC (Just (-1)) (fmat a) (fmat b) 401linearSolveSVDC Nothing a b = linearSolveSVDC (Just (-1)) (fmat a) (fmat b)
402 402
403----------------------------------------------------------------------------------- 403-----------------------------------------------------------------------------------
404foreign import ccall unsafe "LAPACK/lapack-aux.h chol_l_H" zpotrf :: TCMCM 404foreign import ccall unsafe "chol_l_H" zpotrf :: TCMCM
405foreign import ccall unsafe "LAPACK/lapack-aux.h chol_l_S" dpotrf :: TMM 405foreign import ccall unsafe "chol_l_S" dpotrf :: TMM
406 406
407cholAux f st a = do 407cholAux f st a = do
408 r <- createMatrix ColumnMajor n n 408 r <- createMatrix ColumnMajor n n
@@ -427,8 +427,8 @@ mbCholS :: Matrix Double -> Maybe (Matrix Double)
427mbCholS = unsafePerformIO . mbCatch . cholAux dpotrf "cholS" . fmat 427mbCholS = unsafePerformIO . mbCatch . cholAux dpotrf "cholS" . fmat
428 428
429----------------------------------------------------------------------------------- 429-----------------------------------------------------------------------------------
430foreign import ccall unsafe "LAPACK/lapack-aux.h qr_l_R" dgeqr2 :: TMVM 430foreign import ccall unsafe "qr_l_R" dgeqr2 :: TMVM
431foreign import ccall unsafe "LAPACK/lapack-aux.h qr_l_C" zgeqr2 :: TCMCVCM 431foreign import ccall unsafe "qr_l_C" zgeqr2 :: TCMCVCM
432 432
433-- | QR factorization of a real matrix, using LAPACK's /dgeqr2/. 433-- | QR factorization of a real matrix, using LAPACK's /dgeqr2/.
434qrR :: Matrix Double -> (Matrix Double, Vector Double) 434qrR :: Matrix Double -> (Matrix Double, Vector Double)
@@ -448,8 +448,8 @@ qrAux f st a = unsafePerformIO $ do
448 mn = min m n 448 mn = min m n
449 449
450----------------------------------------------------------------------------------- 450-----------------------------------------------------------------------------------
451foreign import ccall unsafe "LAPACK/lapack-aux.h hess_l_R" dgehrd :: TMVM 451foreign import ccall unsafe "hess_l_R" dgehrd :: TMVM
452foreign import ccall unsafe "LAPACK/lapack-aux.h hess_l_C" zgehrd :: TCMCVCM 452foreign import ccall unsafe "hess_l_C" zgehrd :: TCMCVCM
453 453
454-- | Hessenberg factorization of a square real matrix, using LAPACK's /dgehrd/. 454-- | Hessenberg factorization of a square real matrix, using LAPACK's /dgehrd/.
455hessR :: Matrix Double -> (Matrix Double, Vector Double) 455hessR :: Matrix Double -> (Matrix Double, Vector Double)
@@ -469,8 +469,8 @@ hessAux f st a = unsafePerformIO $ do
469 mn = min m n 469 mn = min m n
470 470
471----------------------------------------------------------------------------------- 471-----------------------------------------------------------------------------------
472foreign import ccall unsafe "LAPACK/lapack-aux.h schur_l_R" dgees :: TMMM 472foreign import ccall unsafe "schur_l_R" dgees :: TMMM
473foreign import ccall unsafe "LAPACK/lapack-aux.h schur_l_C" zgees :: TCMCMCM 473foreign import ccall unsafe "schur_l_C" zgees :: TCMCMCM
474 474
475-- | Schur factorization of a square real matrix, using LAPACK's /dgees/. 475-- | Schur factorization of a square real matrix, using LAPACK's /dgees/.
476schurR :: Matrix Double -> (Matrix Double, Matrix Double) 476schurR :: Matrix Double -> (Matrix Double, Matrix Double)
@@ -488,8 +488,8 @@ schurAux f st a = unsafePerformIO $ do
488 where n = rows a 488 where n = rows a
489 489
490----------------------------------------------------------------------------------- 490-----------------------------------------------------------------------------------
491foreign import ccall unsafe "LAPACK/lapack-aux.h lu_l_R" dgetrf :: TMVM 491foreign import ccall unsafe "lu_l_R" dgetrf :: TMVM
492foreign import ccall unsafe "LAPACK/lapack-aux.h lu_l_C" zgetrf :: TCMVCM 492foreign import ccall unsafe "lu_l_C" zgetrf :: TCMVCM
493 493
494-- | LU factorization of a general real matrix, using LAPACK's /dgetrf/. 494-- | LU factorization of a general real matrix, using LAPACK's /dgetrf/.
495luR :: Matrix Double -> (Matrix Double, [Int]) 495luR :: Matrix Double -> (Matrix Double, [Int])
@@ -511,8 +511,8 @@ luAux f st a = unsafePerformIO $ do
511type TW a = CInt -> PD -> a 511type TW a = CInt -> PD -> a
512type TQ a = CInt -> CInt -> PC -> a 512type TQ a = CInt -> CInt -> PC -> a
513 513
514foreign import ccall unsafe "LAPACK/lapack-aux.h luS_l_R" dgetrs :: TMVMM 514foreign import ccall unsafe "luS_l_R" dgetrs :: TMVMM
515foreign import ccall unsafe "LAPACK/lapack-aux.h luS_l_C" zgetrs :: TQ (TW (TQ (TQ (IO CInt)))) 515foreign import ccall unsafe "luS_l_C" zgetrs :: TQ (TW (TQ (TQ (IO CInt))))
516 516
517-- | Solve a real linear system from a precomputed LU decomposition ('luR'), using LAPACK's /dgetrs/. 517-- | Solve a real linear system from a precomputed LU decomposition ('luR'), using LAPACK's /dgetrs/.
518lusR :: Matrix Double -> [Int] -> Matrix Double -> Matrix Double 518lusR :: Matrix Double -> [Int] -> Matrix Double -> Matrix Double
@@ -533,3 +533,4 @@ lusAux f st a piv b
533 n = rows b 533 n = rows b
534 m = cols b 534 m = cols b
535 piv' = fromList (map (fromIntegral.succ) piv) :: Vector Double 535 piv' = fromList (map (fromIntegral.succ) piv) :: Vector Double
536
diff --git a/lib/Numeric/LinearAlgebra/LAPACK/clapack.h b/lib/Numeric/LinearAlgebra/LAPACK/clapack.h
deleted file mode 100644
index 09101fd..0000000
--- a/lib/Numeric/LinearAlgebra/LAPACK/clapack.h
+++ /dev/null
@@ -1,5079 +0,0 @@
1#ifndef __CLAPACK_H
2#define __CLAPACK_H
3
4/* Subroutine */ int cbdsqr_(char *uplo, integer *n, integer *ncvt, integer *
5 nru, integer *ncc, real *d__, real *e, complex *vt, integer *ldvt,
6 complex *u, integer *ldu, complex *c__, integer *ldc, real *rwork,
7 integer *info);
8
9/* Subroutine */ int cgbbrd_(char *vect, integer *m, integer *n, integer *ncc,
10 integer *kl, integer *ku, complex *ab, integer *ldab, real *d__,
11 real *e, complex *q, integer *ldq, complex *pt, integer *ldpt,
12 complex *c__, integer *ldc, complex *work, real *rwork, integer *info);
13
14/* Subroutine */ int cgbcon_(char *norm, integer *n, integer *kl, integer *ku,
15 complex *ab, integer *ldab, integer *ipiv, real *anorm, real *rcond,
16 complex *work, real *rwork, integer *info);
17
18/* Subroutine */ int cgbequ_(integer *m, integer *n, integer *kl, integer *ku,
19 complex *ab, integer *ldab, real *r__, real *c__, real *rowcnd, real
20 *colcnd, real *amax, integer *info);
21
22/* Subroutine */ int cgbrfs_(char *trans, integer *n, integer *kl, integer *
23 ku, integer *nrhs, complex *ab, integer *ldab, complex *afb, integer *
24 ldafb, integer *ipiv, complex *b, integer *ldb, complex *x, integer *
25 ldx, real *ferr, real *berr, complex *work, real *rwork, integer *
26 info);
27
28/* Subroutine */ int cgbsv_(integer *n, integer *kl, integer *ku, integer *
29 nrhs, complex *ab, integer *ldab, integer *ipiv, complex *b, integer *
30 ldb, integer *info);
31
32/* Subroutine */ int cgbsvx_(char *fact, char *trans, integer *n, integer *kl,
33 integer *ku, integer *nrhs, complex *ab, integer *ldab, complex *afb,
34 integer *ldafb, integer *ipiv, char *equed, real *r__, real *c__,
35 complex *b, integer *ldb, complex *x, integer *ldx, real *rcond, real
36 *ferr, real *berr, complex *work, real *rwork, integer *info);
37
38/* Subroutine */ int cgbtf2_(integer *m, integer *n, integer *kl, integer *ku,
39 complex *ab, integer *ldab, integer *ipiv, integer *info);
40
41/* Subroutine */ int cgbtrf_(integer *m, integer *n, integer *kl, integer *ku,
42 complex *ab, integer *ldab, integer *ipiv, integer *info);
43
44/* Subroutine */ int cgbtrs_(char *trans, integer *n, integer *kl, integer *
45 ku, integer *nrhs, complex *ab, integer *ldab, integer *ipiv, complex
46 *b, integer *ldb, integer *info);
47
48/* Subroutine */ int cgebak_(char *job, char *side, integer *n, integer *ilo,
49 integer *ihi, real *scale, integer *m, complex *v, integer *ldv,
50 integer *info);
51
52/* Subroutine */ int cgebal_(char *job, integer *n, complex *a, integer *lda,
53 integer *ilo, integer *ihi, real *scale, integer *info);
54
55/* Subroutine */ int cgebd2_(integer *m, integer *n, complex *a, integer *lda,
56 real *d__, real *e, complex *tauq, complex *taup, complex *work,
57 integer *info);
58
59/* Subroutine */ int cgebrd_(integer *m, integer *n, complex *a, integer *lda,
60 real *d__, real *e, complex *tauq, complex *taup, complex *work,
61 integer *lwork, integer *info);
62
63/* Subroutine */ int cgecon_(char *norm, integer *n, complex *a, integer *lda,
64 real *anorm, real *rcond, complex *work, real *rwork, integer *info);
65
66/* Subroutine */ int cgeequ_(integer *m, integer *n, complex *a, integer *lda,
67 real *r__, real *c__, real *rowcnd, real *colcnd, real *amax,
68 integer *info);
69
70/* Subroutine */ int cgees_(char *jobvs, char *sort, L_fp select, integer *n,
71 complex *a, integer *lda, integer *sdim, complex *w, complex *vs,
72 integer *ldvs, complex *work, integer *lwork, real *rwork, logical *
73 bwork, integer *info);
74
75/* Subroutine */ int cgeesx_(char *jobvs, char *sort, L_fp select, char *
76 sense, integer *n, complex *a, integer *lda, integer *sdim, complex *
77 w, complex *vs, integer *ldvs, real *rconde, real *rcondv, complex *
78 work, integer *lwork, real *rwork, logical *bwork, integer *info);
79
80/* Subroutine */ int cgeev_(char *jobvl, char *jobvr, integer *n, complex *a,
81 integer *lda, complex *w, complex *vl, integer *ldvl, complex *vr,
82 integer *ldvr, complex *work, integer *lwork, real *rwork, integer *
83 info);
84
85/* Subroutine */ int cgeevx_(char *balanc, char *jobvl, char *jobvr, char *
86 sense, integer *n, complex *a, integer *lda, complex *w, complex *vl,
87 integer *ldvl, complex *vr, integer *ldvr, integer *ilo, integer *ihi,
88 real *scale, real *abnrm, real *rconde, real *rcondv, complex *work,
89 integer *lwork, real *rwork, integer *info);
90
91/* Subroutine */ int cgegs_(char *jobvsl, char *jobvsr, integer *n, complex *
92 a, integer *lda, complex *b, integer *ldb, complex *alpha, complex *
93 beta, complex *vsl, integer *ldvsl, complex *vsr, integer *ldvsr,
94 complex *work, integer *lwork, real *rwork, integer *info);
95
96/* Subroutine */ int cgegv_(char *jobvl, char *jobvr, integer *n, complex *a,
97 integer *lda, complex *b, integer *ldb, complex *alpha, complex *beta,
98 complex *vl, integer *ldvl, complex *vr, integer *ldvr, complex *
99 work, integer *lwork, real *rwork, integer *info);
100
101/* Subroutine */ int cgehd2_(integer *n, integer *ilo, integer *ihi, complex *
102 a, integer *lda, complex *tau, complex *work, integer *info);
103
104/* Subroutine */ int cgehrd_(integer *n, integer *ilo, integer *ihi, complex *
105 a, integer *lda, complex *tau, complex *work, integer *lwork, integer
106 *info);
107
108/* Subroutine */ int cgelq2_(integer *m, integer *n, complex *a, integer *lda,
109 complex *tau, complex *work, integer *info);
110
111/* Subroutine */ int cgelqf_(integer *m, integer *n, complex *a, integer *lda,
112 complex *tau, complex *work, integer *lwork, integer *info);
113
114/* Subroutine */ int cgels_(char *trans, integer *m, integer *n, integer *
115 nrhs, complex *a, integer *lda, complex *b, integer *ldb, complex *
116 work, integer *lwork, integer *info);
117
118/* Subroutine */ int cgelsx_(integer *m, integer *n, integer *nrhs, complex *
119 a, integer *lda, complex *b, integer *ldb, integer *jpvt, real *rcond,
120 integer *rank, complex *work, real *rwork, integer *info);
121
122/* Subroutine */ int cgelsy_(integer *m, integer *n, integer *nrhs, complex *
123 a, integer *lda, complex *b, integer *ldb, integer *jpvt, real *rcond,
124 integer *rank, complex *work, integer *lwork, real *rwork, integer *
125 info);
126
127/* Subroutine */ int cgeql2_(integer *m, integer *n, complex *a, integer *lda,
128 complex *tau, complex *work, integer *info);
129
130/* Subroutine */ int cgeqlf_(integer *m, integer *n, complex *a, integer *lda,
131 complex *tau, complex *work, integer *lwork, integer *info);
132
133/* Subroutine */ int cgeqp3_(integer *m, integer *n, complex *a, integer *lda,
134 integer *jpvt, complex *tau, complex *work, integer *lwork, real *
135 rwork, integer *info);
136
137/* Subroutine */ int cgeqpf_(integer *m, integer *n, complex *a, integer *lda,
138 integer *jpvt, complex *tau, complex *work, real *rwork, integer *
139 info);
140
141/* Subroutine */ int cgeqr2_(integer *m, integer *n, complex *a, integer *lda,
142 complex *tau, complex *work, integer *info);
143
144/* Subroutine */ int cgeqrf_(integer *m, integer *n, complex *a, integer *lda,
145 complex *tau, complex *work, integer *lwork, integer *info);
146
147/* Subroutine */ int cgerfs_(char *trans, integer *n, integer *nrhs, complex *
148 a, integer *lda, complex *af, integer *ldaf, integer *ipiv, complex *
149 b, integer *ldb, complex *x, integer *ldx, real *ferr, real *berr,
150 complex *work, real *rwork, integer *info);
151
152/* Subroutine */ int cgerq2_(integer *m, integer *n, complex *a, integer *lda,
153 complex *tau, complex *work, integer *info);
154
155/* Subroutine */ int cgerqf_(integer *m, integer *n, complex *a, integer *lda,
156 complex *tau, complex *work, integer *lwork, integer *info);
157
158/* Subroutine */ int cgesc2_(integer *n, complex *a, integer *lda, complex *
159 rhs, integer *ipiv, integer *jpiv, real *scale);
160
161/* Subroutine */ int cgesv_(integer *n, integer *nrhs, complex *a, integer *
162 lda, integer *ipiv, complex *b, integer *ldb, integer *info);
163
164/* Subroutine */ int cgesvx_(char *fact, char *trans, integer *n, integer *
165 nrhs, complex *a, integer *lda, complex *af, integer *ldaf, integer *
166 ipiv, char *equed, real *r__, real *c__, complex *b, integer *ldb,
167 complex *x, integer *ldx, real *rcond, real *ferr, real *berr,
168 complex *work, real *rwork, integer *info);
169
170/* Subroutine */ int cgetc2_(integer *n, complex *a, integer *lda, integer *
171 ipiv, integer *jpiv, integer *info);
172
173/* Subroutine */ int cgetf2_(integer *m, integer *n, complex *a, integer *lda,
174 integer *ipiv, integer *info);
175
176/* Subroutine */ int cgetrf_(integer *m, integer *n, complex *a, integer *lda,
177 integer *ipiv, integer *info);
178
179/* Subroutine */ int cgetri_(integer *n, complex *a, integer *lda, integer *
180 ipiv, complex *work, integer *lwork, integer *info);
181
182/* Subroutine */ int cgetrs_(char *trans, integer *n, integer *nrhs, complex *
183 a, integer *lda, integer *ipiv, complex *b, integer *ldb, integer *
184 info);
185
186/* Subroutine */ int cggbak_(char *job, char *side, integer *n, integer *ilo,
187 integer *ihi, real *lscale, real *rscale, integer *m, complex *v,
188 integer *ldv, integer *info);
189
190/* Subroutine */ int cggbal_(char *job, integer *n, complex *a, integer *lda,
191 complex *b, integer *ldb, integer *ilo, integer *ihi, real *lscale,
192 real *rscale, real *work, integer *info);
193
194/* Subroutine */ int cgges_(char *jobvsl, char *jobvsr, char *sort, L_fp
195 selctg, integer *n, complex *a, integer *lda, complex *b, integer *
196 ldb, integer *sdim, complex *alpha, complex *beta, complex *vsl,
197 integer *ldvsl, complex *vsr, integer *ldvsr, complex *work, integer *
198 lwork, real *rwork, logical *bwork, integer *info);
199
200/* Subroutine */ int cggesx_(char *jobvsl, char *jobvsr, char *sort, L_fp
201 selctg, char *sense, integer *n, complex *a, integer *lda, complex *b,
202 integer *ldb, integer *sdim, complex *alpha, complex *beta, complex *
203 vsl, integer *ldvsl, complex *vsr, integer *ldvsr, real *rconde, real
204 *rcondv, complex *work, integer *lwork, real *rwork, integer *iwork,
205 integer *liwork, logical *bwork, integer *info);
206
207/* Subroutine */ int cggev_(char *jobvl, char *jobvr, integer *n, complex *a,
208 integer *lda, complex *b, integer *ldb, complex *alpha, complex *beta,
209 complex *vl, integer *ldvl, complex *vr, integer *ldvr, complex *
210 work, integer *lwork, real *rwork, integer *info);
211
212/* Subroutine */ int cggevx_(char *balanc, char *jobvl, char *jobvr, char *
213 sense, integer *n, complex *a, integer *lda, complex *b, integer *ldb,
214 complex *alpha, complex *beta, complex *vl, integer *ldvl, complex *
215 vr, integer *ldvr, integer *ilo, integer *ihi, real *lscale, real *
216 rscale, real *abnrm, real *bbnrm, real *rconde, real *rcondv, complex
217 *work, integer *lwork, real *rwork, integer *iwork, logical *bwork,
218 integer *info);
219
220/* Subroutine */ int cggglm_(integer *n, integer *m, integer *p, complex *a,
221 integer *lda, complex *b, integer *ldb, complex *d__, complex *x,
222 complex *y, complex *work, integer *lwork, integer *info);
223
224/* Subroutine */ int cgghrd_(char *compq, char *compz, integer *n, integer *
225 ilo, integer *ihi, complex *a, integer *lda, complex *b, integer *ldb,
226 complex *q, integer *ldq, complex *z__, integer *ldz, integer *info);
227
228/* Subroutine */ int cgglse_(integer *m, integer *n, integer *p, complex *a,
229 integer *lda, complex *b, integer *ldb, complex *c__, complex *d__,
230 complex *x, complex *work, integer *lwork, integer *info);
231
232/* Subroutine */ int cggqrf_(integer *n, integer *m, integer *p, complex *a,
233 integer *lda, complex *taua, complex *b, integer *ldb, complex *taub,
234 complex *work, integer *lwork, integer *info);
235
236/* Subroutine */ int cggrqf_(integer *m, integer *p, integer *n, complex *a,
237 integer *lda, complex *taua, complex *b, integer *ldb, complex *taub,
238 complex *work, integer *lwork, integer *info);
239
240/* Subroutine */ int cggsvd_(char *jobu, char *jobv, char *jobq, integer *m,
241 integer *n, integer *p, integer *k, integer *l, complex *a, integer *
242 lda, complex *b, integer *ldb, real *alpha, real *beta, complex *u,
243 integer *ldu, complex *v, integer *ldv, complex *q, integer *ldq,
244 complex *work, real *rwork, integer *iwork, integer *info);
245
246/* Subroutine */ int cggsvp_(char *jobu, char *jobv, char *jobq, integer *m,
247 integer *p, integer *n, complex *a, integer *lda, complex *b, integer
248 *ldb, real *tola, real *tolb, integer *k, integer *l, complex *u,
249 integer *ldu, complex *v, integer *ldv, complex *q, integer *ldq,
250 integer *iwork, real *rwork, complex *tau, complex *work, integer *
251 info);
252
253/* Subroutine */ int cgtcon_(char *norm, integer *n, complex *dl, complex *
254 d__, complex *du, complex *du2, integer *ipiv, real *anorm, real *
255 rcond, complex *work, integer *info);
256
257/* Subroutine */ int cgtrfs_(char *trans, integer *n, integer *nrhs, complex *
258 dl, complex *d__, complex *du, complex *dlf, complex *df, complex *
259 duf, complex *du2, integer *ipiv, complex *b, integer *ldb, complex *
260 x, integer *ldx, real *ferr, real *berr, complex *work, real *rwork,
261 integer *info);
262
263/* Subroutine */ int cgtsv_(integer *n, integer *nrhs, complex *dl, complex *
264 d__, complex *du, complex *b, integer *ldb, integer *info);
265
266/* Subroutine */ int cgtsvx_(char *fact, char *trans, integer *n, integer *
267 nrhs, complex *dl, complex *d__, complex *du, complex *dlf, complex *
268 df, complex *duf, complex *du2, integer *ipiv, complex *b, integer *
269 ldb, complex *x, integer *ldx, real *rcond, real *ferr, real *berr,
270 complex *work, real *rwork, integer *info);
271
272/* Subroutine */ int cgttrf_(integer *n, complex *dl, complex *d__, complex *
273 du, complex *du2, integer *ipiv, integer *info);
274
275/* Subroutine */ int cgttrs_(char *trans, integer *n, integer *nrhs, complex *
276 dl, complex *d__, complex *du, complex *du2, integer *ipiv, complex *
277 b, integer *ldb, integer *info);
278
279/* Subroutine */ int cgtts2_(integer *itrans, integer *n, integer *nrhs,
280 complex *dl, complex *d__, complex *du, complex *du2, integer *ipiv,
281 complex *b, integer *ldb);
282
283/* Subroutine */ int chbev_(char *jobz, char *uplo, integer *n, integer *kd,
284 complex *ab, integer *ldab, real *w, complex *z__, integer *ldz,
285 complex *work, real *rwork, integer *info);
286
287/* Subroutine */ int chbevd_(char *jobz, char *uplo, integer *n, integer *kd,
288 complex *ab, integer *ldab, real *w, complex *z__, integer *ldz,
289 complex *work, integer *lwork, real *rwork, integer *lrwork, integer *
290 iwork, integer *liwork, integer *info);
291
292/* Subroutine */ int chbevx_(char *jobz, char *range, char *uplo, integer *n,
293 integer *kd, complex *ab, integer *ldab, complex *q, integer *ldq,
294 real *vl, real *vu, integer *il, integer *iu, real *abstol, integer *
295 m, real *w, complex *z__, integer *ldz, complex *work, real *rwork,
296 integer *iwork, integer *ifail, integer *info);
297
298/* Subroutine */ int chbgst_(char *vect, char *uplo, integer *n, integer *ka,
299 integer *kb, complex *ab, integer *ldab, complex *bb, integer *ldbb,
300 complex *x, integer *ldx, complex *work, real *rwork, integer *info);
301
302/* Subroutine */ int chbgv_(char *jobz, char *uplo, integer *n, integer *ka,
303 integer *kb, complex *ab, integer *ldab, complex *bb, integer *ldbb,
304 real *w, complex *z__, integer *ldz, complex *work, real *rwork,
305 integer *info);
306
307/* Subroutine */ int chbgvx_(char *jobz, char *range, char *uplo, integer *n,
308 integer *ka, integer *kb, complex *ab, integer *ldab, complex *bb,
309 integer *ldbb, complex *q, integer *ldq, real *vl, real *vu, integer *
310 il, integer *iu, real *abstol, integer *m, real *w, complex *z__,
311 integer *ldz, complex *work, real *rwork, integer *iwork, integer *
312 ifail, integer *info);
313
314/* Subroutine */ int chbtrd_(char *vect, char *uplo, integer *n, integer *kd,
315 complex *ab, integer *ldab, real *d__, real *e, complex *q, integer *
316 ldq, complex *work, integer *info);
317
318/* Subroutine */ int checon_(char *uplo, integer *n, complex *a, integer *lda,
319 integer *ipiv, real *anorm, real *rcond, complex *work, integer *
320 info);
321
322/* Subroutine */ int cheev_(char *jobz, char *uplo, integer *n, complex *a,
323 integer *lda, real *w, complex *work, integer *lwork, real *rwork,
324 integer *info);
325
326/* Subroutine */ int cheevd_(char *jobz, char *uplo, integer *n, complex *a,
327 integer *lda, real *w, complex *work, integer *lwork, real *rwork,
328 integer *lrwork, integer *iwork, integer *liwork, integer *info);
329
330/* Subroutine */ int cheevr_(char *jobz, char *range, char *uplo, integer *n,
331 complex *a, integer *lda, real *vl, real *vu, integer *il, integer *
332 iu, real *abstol, integer *m, real *w, complex *z__, integer *ldz,
333 integer *isuppz, complex *work, integer *lwork, real *rwork, integer *
334 lrwork, integer *iwork, integer *liwork, integer *info);
335
336/* Subroutine */ int cheevx_(char *jobz, char *range, char *uplo, integer *n,
337 complex *a, integer *lda, real *vl, real *vu, integer *il, integer *
338 iu, real *abstol, integer *m, real *w, complex *z__, integer *ldz,
339 complex *work, integer *lwork, real *rwork, integer *iwork, integer *
340 ifail, integer *info);
341
342/* Subroutine */ int chegs2_(integer *itype, char *uplo, integer *n, complex *
343 a, integer *lda, complex *b, integer *ldb, integer *info);
344
345/* Subroutine */ int chegst_(integer *itype, char *uplo, integer *n, complex *
346 a, integer *lda, complex *b, integer *ldb, integer *info);
347
348/* Subroutine */ int chegv_(integer *itype, char *jobz, char *uplo, integer *
349 n, complex *a, integer *lda, complex *b, integer *ldb, real *w,
350 complex *work, integer *lwork, real *rwork, integer *info);
351
352/* Subroutine */ int chegvd_(integer *itype, char *jobz, char *uplo, integer *
353 n, complex *a, integer *lda, complex *b, integer *ldb, real *w,
354 complex *work, integer *lwork, real *rwork, integer *lrwork, integer *
355 iwork, integer *liwork, integer *info);
356
357/* Subroutine */ int chegvx_(integer *itype, char *jobz, char *range, char *
358 uplo, integer *n, complex *a, integer *lda, complex *b, integer *ldb,
359 real *vl, real *vu, integer *il, integer *iu, real *abstol, integer *
360 m, real *w, complex *z__, integer *ldz, complex *work, integer *lwork,
361 real *rwork, integer *iwork, integer *ifail, integer *info);
362
363/* Subroutine */ int cherfs_(char *uplo, integer *n, integer *nrhs, complex *
364 a, integer *lda, complex *af, integer *ldaf, integer *ipiv, complex *
365 b, integer *ldb, complex *x, integer *ldx, real *ferr, real *berr,
366 complex *work, real *rwork, integer *info);
367
368/* Subroutine */ int chesv_(char *uplo, integer *n, integer *nrhs, complex *a,
369 integer *lda, integer *ipiv, complex *b, integer *ldb, complex *work,
370 integer *lwork, integer *info);
371
372/* Subroutine */ int chesvx_(char *fact, char *uplo, integer *n, integer *
373 nrhs, complex *a, integer *lda, complex *af, integer *ldaf, integer *
374 ipiv, complex *b, integer *ldb, complex *x, integer *ldx, real *rcond,
375 real *ferr, real *berr, complex *work, integer *lwork, real *rwork,
376 integer *info);
377
378/* Subroutine */ int chetf2_(char *uplo, integer *n, complex *a, integer *lda,
379 integer *ipiv, integer *info);
380
381/* Subroutine */ int chetrd_(char *uplo, integer *n, complex *a, integer *lda,
382 real *d__, real *e, complex *tau, complex *work, integer *lwork,
383 integer *info);
384
385/* Subroutine */ int chetrf_(char *uplo, integer *n, complex *a, integer *lda,
386 integer *ipiv, complex *work, integer *lwork, integer *info);
387
388/* Subroutine */ int chetri_(char *uplo, integer *n, complex *a, integer *lda,
389 integer *ipiv, complex *work, integer *info);
390
391/* Subroutine */ int chetrs_(char *uplo, integer *n, integer *nrhs, complex *
392 a, integer *lda, integer *ipiv, complex *b, integer *ldb, integer *
393 info);
394
395/* Subroutine */ int chgeqz_(char *job, char *compq, char *compz, integer *n,
396 integer *ilo, integer *ihi, complex *a, integer *lda, complex *b,
397 integer *ldb, complex *alpha, complex *beta, complex *q, integer *ldq,
398 complex *z__, integer *ldz, complex *work, integer *lwork, real *
399 rwork, integer *info);
400
401/* Subroutine */ int chpcon_(char *uplo, integer *n, complex *ap, integer *
402 ipiv, real *anorm, real *rcond, complex *work, integer *info);
403
404/* Subroutine */ int chpev_(char *jobz, char *uplo, integer *n, complex *ap,
405 real *w, complex *z__, integer *ldz, complex *work, real *rwork,
406 integer *info);
407
408/* Subroutine */ int chpevd_(char *jobz, char *uplo, integer *n, complex *ap,
409 real *w, complex *z__, integer *ldz, complex *work, integer *lwork,
410 real *rwork, integer *lrwork, integer *iwork, integer *liwork,
411 integer *info);
412
413/* Subroutine */ int chpevx_(char *jobz, char *range, char *uplo, integer *n,
414 complex *ap, real *vl, real *vu, integer *il, integer *iu, real *
415 abstol, integer *m, real *w, complex *z__, integer *ldz, complex *
416 work, real *rwork, integer *iwork, integer *ifail, integer *info);
417
418/* Subroutine */ int chpgst_(integer *itype, char *uplo, integer *n, complex *
419 ap, complex *bp, integer *info);
420
421/* Subroutine */ int chpgv_(integer *itype, char *jobz, char *uplo, integer *
422 n, complex *ap, complex *bp, real *w, complex *z__, integer *ldz,
423 complex *work, real *rwork, integer *info);
424
425/* Subroutine */ int chpgvd_(integer *itype, char *jobz, char *uplo, integer *
426 n, complex *ap, complex *bp, real *w, complex *z__, integer *ldz,
427 complex *work, integer *lwork, real *rwork, integer *lrwork, integer *
428 iwork, integer *liwork, integer *info);
429
430/* Subroutine */ int chpgvx_(integer *itype, char *jobz, char *range, char *
431 uplo, integer *n, complex *ap, complex *bp, real *vl, real *vu,
432 integer *il, integer *iu, real *abstol, integer *m, real *w, complex *
433 z__, integer *ldz, complex *work, real *rwork, integer *iwork,
434 integer *ifail, integer *info);
435
436/* Subroutine */ int chprfs_(char *uplo, integer *n, integer *nrhs, complex *
437 ap, complex *afp, integer *ipiv, complex *b, integer *ldb, complex *x,
438 integer *ldx, real *ferr, real *berr, complex *work, real *rwork,
439 integer *info);
440
441/* Subroutine */ int chpsv_(char *uplo, integer *n, integer *nrhs, complex *
442 ap, integer *ipiv, complex *b, integer *ldb, integer *info);
443
444/* Subroutine */ int chpsvx_(char *fact, char *uplo, integer *n, integer *
445 nrhs, complex *ap, complex *afp, integer *ipiv, complex *b, integer *
446 ldb, complex *x, integer *ldx, real *rcond, real *ferr, real *berr,
447 complex *work, real *rwork, integer *info);
448
449/* Subroutine */ int chptrd_(char *uplo, integer *n, complex *ap, real *d__,
450 real *e, complex *tau, integer *info);
451
452/* Subroutine */ int chptrf_(char *uplo, integer *n, complex *ap, integer *
453 ipiv, integer *info);
454
455/* Subroutine */ int chptri_(char *uplo, integer *n, complex *ap, integer *
456 ipiv, complex *work, integer *info);
457
458/* Subroutine */ int chptrs_(char *uplo, integer *n, integer *nrhs, complex *
459 ap, integer *ipiv, complex *b, integer *ldb, integer *info);
460
461/* Subroutine */ int chsein_(char *side, char *eigsrc, char *initv, logical *
462 select, integer *n, complex *h__, integer *ldh, complex *w, complex *
463 vl, integer *ldvl, complex *vr, integer *ldvr, integer *mm, integer *
464 m, complex *work, real *rwork, integer *ifaill, integer *ifailr,
465 integer *info);
466
467/* Subroutine */ int chseqr_(char *job, char *compz, integer *n, integer *ilo,
468 integer *ihi, complex *h__, integer *ldh, complex *w, complex *z__,
469 integer *ldz, complex *work, integer *lwork, integer *info);
470
471/* Subroutine */ int clabrd_(integer *m, integer *n, integer *nb, complex *a,
472 integer *lda, real *d__, real *e, complex *tauq, complex *taup,
473 complex *x, integer *ldx, complex *y, integer *ldy);
474
475/* Subroutine */ int clacgv_(integer *n, complex *x, integer *incx);
476
477/* Subroutine */ int clacon_(integer *n, complex *v, complex *x, real *est,
478 integer *kase);
479
480/* Subroutine */ int clacp2_(char *uplo, integer *m, integer *n, real *a,
481 integer *lda, complex *b, integer *ldb);
482
483/* Subroutine */ int clacpy_(char *uplo, integer *m, integer *n, complex *a,
484 integer *lda, complex *b, integer *ldb);
485
486/* Subroutine */ int clacrm_(integer *m, integer *n, complex *a, integer *lda,
487 real *b, integer *ldb, complex *c__, integer *ldc, real *rwork);
488
489/* Subroutine */ int clacrt_(integer *n, complex *cx, integer *incx, complex *
490 cy, integer *incy, complex *c__, complex *s);
491
492/* Subroutine */ int claed0_(integer *qsiz, integer *n, real *d__, real *e,
493 complex *q, integer *ldq, complex *qstore, integer *ldqs, real *rwork,
494 integer *iwork, integer *info);
495
496/* Subroutine */ int claed7_(integer *n, integer *cutpnt, integer *qsiz,
497 integer *tlvls, integer *curlvl, integer *curpbm, real *d__, complex *
498 q, integer *ldq, real *rho, integer *indxq, real *qstore, integer *
499 qptr, integer *prmptr, integer *perm, integer *givptr, integer *
500 givcol, real *givnum, complex *work, real *rwork, integer *iwork,
501 integer *info);
502
503/* Subroutine */ int claed8_(integer *k, integer *n, integer *qsiz, complex *
504 q, integer *ldq, real *d__, real *rho, integer *cutpnt, real *z__,
505 real *dlamda, complex *q2, integer *ldq2, real *w, integer *indxp,
506 integer *indx, integer *indxq, integer *perm, integer *givptr,
507 integer *givcol, real *givnum, integer *info);
508
509/* Subroutine */ int claein_(logical *rightv, logical *noinit, integer *n,
510 complex *h__, integer *ldh, complex *w, complex *v, complex *b,
511 integer *ldb, real *rwork, real *eps3, real *smlnum, integer *info);
512
513/* Subroutine */ int claesy_(complex *a, complex *b, complex *c__, complex *
514 rt1, complex *rt2, complex *evscal, complex *cs1, complex *sn1);
515
516/* Subroutine */ int claev2_(complex *a, complex *b, complex *c__, real *rt1,
517 real *rt2, real *cs1, complex *sn1);
518
519/* Subroutine */ int clags2_(logical *upper, real *a1, complex *a2, real *a3,
520 real *b1, complex *b2, real *b3, real *csu, complex *snu, real *csv,
521 complex *snv, real *csq, complex *snq);
522
523/* Subroutine */ int clagtm_(char *trans, integer *n, integer *nrhs, real *
524 alpha, complex *dl, complex *d__, complex *du, complex *x, integer *
525 ldx, real *beta, complex *b, integer *ldb);
526
527/* Subroutine */ int clahef_(char *uplo, integer *n, integer *nb, integer *kb,
528 complex *a, integer *lda, integer *ipiv, complex *w, integer *ldw,
529 integer *info);
530
531/* Subroutine */ int clahqr_(logical *wantt, logical *wantz, integer *n,
532 integer *ilo, integer *ihi, complex *h__, integer *ldh, complex *w,
533 integer *iloz, integer *ihiz, complex *z__, integer *ldz, integer *
534 info);
535
536/* Subroutine */ int clahrd_(integer *n, integer *k, integer *nb, complex *a,
537 integer *lda, complex *tau, complex *t, integer *ldt, complex *y,
538 integer *ldy);
539
540/* Subroutine */ int claic1_(integer *job, integer *j, complex *x, real *sest,
541 complex *w, complex *gamma, real *sestpr, complex *s, complex *c__);
542
543/* Subroutine */ int clals0_(integer *icompq, integer *nl, integer *nr,
544 integer *sqre, integer *nrhs, complex *b, integer *ldb, complex *bx,
545 integer *ldbx, integer *perm, integer *givptr, integer *givcol,
546 integer *ldgcol, real *givnum, integer *ldgnum, real *poles, real *
547 difl, real *difr, real *z__, integer *k, real *c__, real *s, real *
548 rwork, integer *info);
549
550/* Subroutine */ int clalsa_(integer *icompq, integer *smlsiz, integer *n,
551 integer *nrhs, complex *b, integer *ldb, complex *bx, integer *ldbx,
552 real *u, integer *ldu, real *vt, integer *k, real *difl, real *difr,
553 real *z__, real *poles, integer *givptr, integer *givcol, integer *
554 ldgcol, integer *perm, real *givnum, real *c__, real *s, real *rwork,
555 integer *iwork, integer *info);
556
557/* Subroutine */ int clapll_(integer *n, complex *x, integer *incx, complex *
558 y, integer *incy, real *ssmin);
559
560/* Subroutine */ int clapmt_(logical *forwrd, integer *m, integer *n, complex
561 *x, integer *ldx, integer *k);
562
563/* Subroutine */ int claqgb_(integer *m, integer *n, integer *kl, integer *ku,
564 complex *ab, integer *ldab, real *r__, real *c__, real *rowcnd, real
565 *colcnd, real *amax, char *equed);
566
567/* Subroutine */ int claqge_(integer *m, integer *n, complex *a, integer *lda,
568 real *r__, real *c__, real *rowcnd, real *colcnd, real *amax, char *
569 equed);
570
571/* Subroutine */ int claqhb_(char *uplo, integer *n, integer *kd, complex *ab,
572 integer *ldab, real *s, real *scond, real *amax, char *equed);
573
574/* Subroutine */ int claqhe_(char *uplo, integer *n, complex *a, integer *lda,
575 real *s, real *scond, real *amax, char *equed);
576
577/* Subroutine */ int claqhp_(char *uplo, integer *n, complex *ap, real *s,
578 real *scond, real *amax, char *equed);
579
580/* Subroutine */ int claqp2_(integer *m, integer *n, integer *offset, complex
581 *a, integer *lda, integer *jpvt, complex *tau, real *vn1, real *vn2,
582 complex *work);
583
584/* Subroutine */ int claqps_(integer *m, integer *n, integer *offset, integer
585 *nb, integer *kb, complex *a, integer *lda, integer *jpvt, complex *
586 tau, real *vn1, real *vn2, complex *auxv, complex *f, integer *ldf);
587
588/* Subroutine */ int claqsb_(char *uplo, integer *n, integer *kd, complex *ab,
589 integer *ldab, real *s, real *scond, real *amax, char *equed);
590
591/* Subroutine */ int claqsp_(char *uplo, integer *n, complex *ap, real *s,
592 real *scond, real *amax, char *equed);
593
594/* Subroutine */ int claqsy_(char *uplo, integer *n, complex *a, integer *lda,
595 real *s, real *scond, real *amax, char *equed);
596
597/* Subroutine */ int clar1v_(integer *n, integer *b1, integer *bn, real *
598 sigma, real *d__, real *l, real *ld, real *lld, real *gersch, complex
599 *z__, real *ztz, real *mingma, integer *r__, integer *isuppz, real *
600 work);
601
602/* Subroutine */ int clar2v_(integer *n, complex *x, complex *y, complex *z__,
603 integer *incx, real *c__, complex *s, integer *incc);
604
605/* Subroutine */ int clarcm_(integer *m, integer *n, real *a, integer *lda,
606 complex *b, integer *ldb, complex *c__, integer *ldc, real *rwork);
607
608/* Subroutine */ int clarf_(char *side, integer *m, integer *n, complex *v,
609 integer *incv, complex *tau, complex *c__, integer *ldc, complex *
610 work);
611
612/* Subroutine */ int clarfb_(char *side, char *trans, char *direct, char *
613 storev, integer *m, integer *n, integer *k, complex *v, integer *ldv,
614 complex *t, integer *ldt, complex *c__, integer *ldc, complex *work,
615 integer *ldwork);
616
617/* Subroutine */ int clarfg_(integer *n, complex *alpha, complex *x, integer *
618 incx, complex *tau);
619
620/* Subroutine */ int clarft_(char *direct, char *storev, integer *n, integer *
621 k, complex *v, integer *ldv, complex *tau, complex *t, integer *ldt);
622
623/* Subroutine */ int clarfx_(char *side, integer *m, integer *n, complex *v,
624 complex *tau, complex *c__, integer *ldc, complex *work);
625
626/* Subroutine */ int clargv_(integer *n, complex *x, integer *incx, complex *
627 y, integer *incy, real *c__, integer *incc);
628
629/* Subroutine */ int clarnv_(integer *idist, integer *iseed, integer *n,
630 complex *x);
631
632/* Subroutine */ int clarrv_(integer *n, real *d__, real *l, integer *isplit,
633 integer *m, real *w, integer *iblock, real *gersch, real *tol,
634 complex *z__, integer *ldz, integer *isuppz, real *work, integer *
635 iwork, integer *info);
636
637/* Subroutine */ int clartg_(complex *f, complex *g, real *cs, complex *sn,
638 complex *r__);
639
640/* Subroutine */ int clartv_(integer *n, complex *x, integer *incx, complex *
641 y, integer *incy, real *c__, complex *s, integer *incc);
642
643/* Subroutine */ int clarz_(char *side, integer *m, integer *n, integer *l,
644 complex *v, integer *incv, complex *tau, complex *c__, integer *ldc,
645 complex *work);
646
647/* Subroutine */ int clarzb_(char *side, char *trans, char *direct, char *
648 storev, integer *m, integer *n, integer *k, integer *l, complex *v,
649 integer *ldv, complex *t, integer *ldt, complex *c__, integer *ldc,
650 complex *work, integer *ldwork);
651
652/* Subroutine */ int clarzt_(char *direct, char *storev, integer *n, integer *
653 k, complex *v, integer *ldv, complex *tau, complex *t, integer *ldt);
654
655/* Subroutine */ int clascl_(char *type__, integer *kl, integer *ku, real *
656 cfrom, real *cto, integer *m, integer *n, complex *a, integer *lda,
657 integer *info);
658
659/* Subroutine */ int claset_(char *uplo, integer *m, integer *n, complex *
660 alpha, complex *beta, complex *a, integer *lda);
661
662/* Subroutine */ int clasr_(char *side, char *pivot, char *direct, integer *m,
663 integer *n, real *c__, real *s, complex *a, integer *lda);
664
665/* Subroutine */ int classq_(integer *n, complex *x, integer *incx, real *
666 scale, real *sumsq);
667
668/* Subroutine */ int claswp_(integer *n, complex *a, integer *lda, integer *
669 k1, integer *k2, integer *ipiv, integer *incx);
670
671/* Subroutine */ int clasyf_(char *uplo, integer *n, integer *nb, integer *kb,
672 complex *a, integer *lda, integer *ipiv, complex *w, integer *ldw,
673 integer *info);
674
675/* Subroutine */ int clatbs_(char *uplo, char *trans, char *diag, char *
676 normin, integer *n, integer *kd, complex *ab, integer *ldab, complex *
677 x, real *scale, real *cnorm, integer *info);
678
679/* Subroutine */ int clatdf_(integer *ijob, integer *n, complex *z__, integer
680 *ldz, complex *rhs, real *rdsum, real *rdscal, integer *ipiv, integer
681 *jpiv);
682
683/* Subroutine */ int clatps_(char *uplo, char *trans, char *diag, char *
684 normin, integer *n, complex *ap, complex *x, real *scale, real *cnorm,
685 integer *info);
686
687/* Subroutine */ int clatrd_(char *uplo, integer *n, integer *nb, complex *a,
688 integer *lda, real *e, complex *tau, complex *w, integer *ldw);
689
690/* Subroutine */ int clatrs_(char *uplo, char *trans, char *diag, char *
691 normin, integer *n, complex *a, integer *lda, complex *x, real *scale,
692 real *cnorm, integer *info);
693
694/* Subroutine */ int clatrz_(integer *m, integer *n, integer *l, complex *a,
695 integer *lda, complex *tau, complex *work);
696
697/* Subroutine */ int clatzm_(char *side, integer *m, integer *n, complex *v,
698 integer *incv, complex *tau, complex *c1, complex *c2, integer *ldc,
699 complex *work);
700
701/* Subroutine */ int clauu2_(char *uplo, integer *n, complex *a, integer *lda,
702 integer *info);
703
704/* Subroutine */ int clauum_(char *uplo, integer *n, complex *a, integer *lda,
705 integer *info);
706
707/* Subroutine */ int cpbcon_(char *uplo, integer *n, integer *kd, complex *ab,
708 integer *ldab, real *anorm, real *rcond, complex *work, real *rwork,
709 integer *info);
710
711/* Subroutine */ int cpbequ_(char *uplo, integer *n, integer *kd, complex *ab,
712 integer *ldab, real *s, real *scond, real *amax, integer *info);
713
714/* Subroutine */ int cpbrfs_(char *uplo, integer *n, integer *kd, integer *
715 nrhs, complex *ab, integer *ldab, complex *afb, integer *ldafb,
716 complex *b, integer *ldb, complex *x, integer *ldx, real *ferr, real *
717 berr, complex *work, real *rwork, integer *info);
718
719/* Subroutine */ int cpbstf_(char *uplo, integer *n, integer *kd, complex *ab,
720 integer *ldab, integer *info);
721
722/* Subroutine */ int cpbsv_(char *uplo, integer *n, integer *kd, integer *
723 nrhs, complex *ab, integer *ldab, complex *b, integer *ldb, integer *
724 info);
725
726/* Subroutine */ int cpbsvx_(char *fact, char *uplo, integer *n, integer *kd,
727 integer *nrhs, complex *ab, integer *ldab, complex *afb, integer *
728 ldafb, char *equed, real *s, complex *b, integer *ldb, complex *x,
729 integer *ldx, real *rcond, real *ferr, real *berr, complex *work,
730 real *rwork, integer *info);
731
732/* Subroutine */ int cpbtf2_(char *uplo, integer *n, integer *kd, complex *ab,
733 integer *ldab, integer *info);
734
735/* Subroutine */ int cpbtrf_(char *uplo, integer *n, integer *kd, complex *ab,
736 integer *ldab, integer *info);
737
738/* Subroutine */ int cpbtrs_(char *uplo, integer *n, integer *kd, integer *
739 nrhs, complex *ab, integer *ldab, complex *b, integer *ldb, integer *
740 info);
741
742/* Subroutine */ int cpocon_(char *uplo, integer *n, complex *a, integer *lda,
743 real *anorm, real *rcond, complex *work, real *rwork, integer *info);
744
745/* Subroutine */ int cpoequ_(integer *n, complex *a, integer *lda, real *s,
746 real *scond, real *amax, integer *info);
747
748/* Subroutine */ int cporfs_(char *uplo, integer *n, integer *nrhs, complex *
749 a, integer *lda, complex *af, integer *ldaf, complex *b, integer *ldb,
750 complex *x, integer *ldx, real *ferr, real *berr, complex *work,
751 real *rwork, integer *info);
752
753/* Subroutine */ int cposv_(char *uplo, integer *n, integer *nrhs, complex *a,
754 integer *lda, complex *b, integer *ldb, integer *info);
755
756/* Subroutine */ int cposvx_(char *fact, char *uplo, integer *n, integer *
757 nrhs, complex *a, integer *lda, complex *af, integer *ldaf, char *
758 equed, real *s, complex *b, integer *ldb, complex *x, integer *ldx,
759 real *rcond, real *ferr, real *berr, complex *work, real *rwork,
760 integer *info);
761
762/* Subroutine */ int cpotf2_(char *uplo, integer *n, complex *a, integer *lda,
763 integer *info);
764
765/* Subroutine */ int cpotrf_(char *uplo, integer *n, complex *a, integer *lda,
766 integer *info);
767
768/* Subroutine */ int cpotri_(char *uplo, integer *n, complex *a, integer *lda,
769 integer *info);
770
771/* Subroutine */ int cpotrs_(char *uplo, integer *n, integer *nrhs, complex *
772 a, integer *lda, complex *b, integer *ldb, integer *info);
773
774/* Subroutine */ int cppcon_(char *uplo, integer *n, complex *ap, real *anorm,
775 real *rcond, complex *work, real *rwork, integer *info);
776
777/* Subroutine */ int cppequ_(char *uplo, integer *n, complex *ap, real *s,
778 real *scond, real *amax, integer *info);
779
780/* Subroutine */ int cpprfs_(char *uplo, integer *n, integer *nrhs, complex *
781 ap, complex *afp, complex *b, integer *ldb, complex *x, integer *ldx,
782 real *ferr, real *berr, complex *work, real *rwork, integer *info);
783
784/* Subroutine */ int cppsv_(char *uplo, integer *n, integer *nrhs, complex *
785 ap, complex *b, integer *ldb, integer *info);
786
787/* Subroutine */ int cppsvx_(char *fact, char *uplo, integer *n, integer *
788 nrhs, complex *ap, complex *afp, char *equed, real *s, complex *b,
789 integer *ldb, complex *x, integer *ldx, real *rcond, real *ferr, real
790 *berr, complex *work, real *rwork, integer *info);
791
792/* Subroutine */ int cpptrf_(char *uplo, integer *n, complex *ap, integer *
793 info);
794
795/* Subroutine */ int cpptri_(char *uplo, integer *n, complex *ap, integer *
796 info);
797
798/* Subroutine */ int cpptrs_(char *uplo, integer *n, integer *nrhs, complex *
799 ap, complex *b, integer *ldb, integer *info);
800
801/* Subroutine */ int cptcon_(integer *n, real *d__, complex *e, real *anorm,
802 real *rcond, real *rwork, integer *info);
803
804/* Subroutine */ int cptrfs_(char *uplo, integer *n, integer *nrhs, real *d__,
805 complex *e, real *df, complex *ef, complex *b, integer *ldb, complex
806 *x, integer *ldx, real *ferr, real *berr, complex *work, real *rwork,
807 integer *info);
808
809/* Subroutine */ int cptsv_(integer *n, integer *nrhs, real *d__, complex *e,
810 complex *b, integer *ldb, integer *info);
811
812/* Subroutine */ int cptsvx_(char *fact, integer *n, integer *nrhs, real *d__,
813 complex *e, real *df, complex *ef, complex *b, integer *ldb, complex
814 *x, integer *ldx, real *rcond, real *ferr, real *berr, complex *work,
815 real *rwork, integer *info);
816
817/* Subroutine */ int cpttrf_(integer *n, real *d__, complex *e, integer *info);
818
819/* Subroutine */ int cpttrs_(char *uplo, integer *n, integer *nrhs, real *d__,
820 complex *e, complex *b, integer *ldb, integer *info);
821
822/* Subroutine */ int cptts2_(integer *iuplo, integer *n, integer *nrhs, real *
823 d__, complex *e, complex *b, integer *ldb);
824
825/* Subroutine */ int crot_(integer *n, complex *cx, integer *incx, complex *
826 cy, integer *incy, real *c__, complex *s);
827
828/* Subroutine */ int cspcon_(char *uplo, integer *n, complex *ap, integer *
829 ipiv, real *anorm, real *rcond, complex *work, integer *info);
830
831/* Subroutine */ int cspmv_(char *uplo, integer *n, complex *alpha, complex *
832 ap, complex *x, integer *incx, complex *beta, complex *y, integer *
833 incy);
834
835/* Subroutine */ int cspr_(char *uplo, integer *n, complex *alpha, complex *x,
836 integer *incx, complex *ap);
837
838/* Subroutine */ int csprfs_(char *uplo, integer *n, integer *nrhs, complex *
839 ap, complex *afp, integer *ipiv, complex *b, integer *ldb, complex *x,
840 integer *ldx, real *ferr, real *berr, complex *work, real *rwork,
841 integer *info);
842
843/* Subroutine */ int cspsv_(char *uplo, integer *n, integer *nrhs, complex *
844 ap, integer *ipiv, complex *b, integer *ldb, integer *info);
845
846/* Subroutine */ int cspsvx_(char *fact, char *uplo, integer *n, integer *
847 nrhs, complex *ap, complex *afp, integer *ipiv, complex *b, integer *
848 ldb, complex *x, integer *ldx, real *rcond, real *ferr, real *berr,
849 complex *work, real *rwork, integer *info);
850
851/* Subroutine */ int csptrf_(char *uplo, integer *n, complex *ap, integer *
852 ipiv, integer *info);
853
854/* Subroutine */ int csptri_(char *uplo, integer *n, complex *ap, integer *
855 ipiv, complex *work, integer *info);
856
857/* Subroutine */ int csptrs_(char *uplo, integer *n, integer *nrhs, complex *
858 ap, integer *ipiv, complex *b, integer *ldb, integer *info);
859
860/* Subroutine */ int csrot_(integer *n, complex *cx, integer *incx, complex *
861 cy, integer *incy, real *c__, real *s);
862
863/* Subroutine */ int csrscl_(integer *n, real *sa, complex *sx, integer *incx);
864
865/* Subroutine */ int cstedc_(char *compz, integer *n, real *d__, real *e,
866 complex *z__, integer *ldz, complex *work, integer *lwork, real *
867 rwork, integer *lrwork, integer *iwork, integer *liwork, integer *
868 info);
869
870/* Subroutine */ int cstein_(integer *n, real *d__, real *e, integer *m, real
871 *w, integer *iblock, integer *isplit, complex *z__, integer *ldz,
872 real *work, integer *iwork, integer *ifail, integer *info);
873
874/* Subroutine */ int csteqr_(char *compz, integer *n, real *d__, real *e,
875 complex *z__, integer *ldz, real *work, integer *info);
876
877/* Subroutine */ int csycon_(char *uplo, integer *n, complex *a, integer *lda,
878 integer *ipiv, real *anorm, real *rcond, complex *work, integer *
879 info);
880
881/* Subroutine */ int csymv_(char *uplo, integer *n, complex *alpha, complex *
882 a, integer *lda, complex *x, integer *incx, complex *beta, complex *y,
883 integer *incy);
884
885/* Subroutine */ int csyr_(char *uplo, integer *n, complex *alpha, complex *x,
886 integer *incx, complex *a, integer *lda);
887
888/* Subroutine */ int csyrfs_(char *uplo, integer *n, integer *nrhs, complex *
889 a, integer *lda, complex *af, integer *ldaf, integer *ipiv, complex *
890 b, integer *ldb, complex *x, integer *ldx, real *ferr, real *berr,
891 complex *work, real *rwork, integer *info);
892
893/* Subroutine */ int csysv_(char *uplo, integer *n, integer *nrhs, complex *a,
894 integer *lda, integer *ipiv, complex *b, integer *ldb, complex *work,
895 integer *lwork, integer *info);
896
897/* Subroutine */ int csysvx_(char *fact, char *uplo, integer *n, integer *
898 nrhs, complex *a, integer *lda, complex *af, integer *ldaf, integer *
899 ipiv, complex *b, integer *ldb, complex *x, integer *ldx, real *rcond,
900 real *ferr, real *berr, complex *work, integer *lwork, real *rwork,
901 integer *info);
902
903/* Subroutine */ int csytf2_(char *uplo, integer *n, complex *a, integer *lda,
904 integer *ipiv, integer *info);
905
906/* Subroutine */ int csytrf_(char *uplo, integer *n, complex *a, integer *lda,
907 integer *ipiv, complex *work, integer *lwork, integer *info);
908
909/* Subroutine */ int csytri_(char *uplo, integer *n, complex *a, integer *lda,
910 integer *ipiv, complex *work, integer *info);
911
912/* Subroutine */ int csytrs_(char *uplo, integer *n, integer *nrhs, complex *
913 a, integer *lda, integer *ipiv, complex *b, integer *ldb, integer *
914 info);
915
916/* Subroutine */ int ctbcon_(char *norm, char *uplo, char *diag, integer *n,
917 integer *kd, complex *ab, integer *ldab, real *rcond, complex *work,
918 real *rwork, integer *info);
919
920/* Subroutine */ int ctbrfs_(char *uplo, char *trans, char *diag, integer *n,
921 integer *kd, integer *nrhs, complex *ab, integer *ldab, complex *b,
922 integer *ldb, complex *x, integer *ldx, real *ferr, real *berr,
923 complex *work, real *rwork, integer *info);
924
925/* Subroutine */ int ctbtrs_(char *uplo, char *trans, char *diag, integer *n,
926 integer *kd, integer *nrhs, complex *ab, integer *ldab, complex *b,
927 integer *ldb, integer *info);
928
929/* Subroutine */ int ctgevc_(char *side, char *howmny, logical *select,
930 integer *n, complex *a, integer *lda, complex *b, integer *ldb,
931 complex *vl, integer *ldvl, complex *vr, integer *ldvr, integer *mm,
932 integer *m, complex *work, real *rwork, integer *info);
933
934/* Subroutine */ int ctgex2_(logical *wantq, logical *wantz, integer *n,
935 complex *a, integer *lda, complex *b, integer *ldb, complex *q,
936 integer *ldq, complex *z__, integer *ldz, integer *j1, integer *info);
937
938/* Subroutine */ int ctgexc_(logical *wantq, logical *wantz, integer *n,
939 complex *a, integer *lda, complex *b, integer *ldb, complex *q,
940 integer *ldq, complex *z__, integer *ldz, integer *ifst, integer *
941 ilst, integer *info);
942
943/* Subroutine */ int ctgsen_(integer *ijob, logical *wantq, logical *wantz,
944 logical *select, integer *n, complex *a, integer *lda, complex *b,
945 integer *ldb, complex *alpha, complex *beta, complex *q, integer *ldq,
946 complex *z__, integer *ldz, integer *m, real *pl, real *pr, real *
947 dif, complex *work, integer *lwork, integer *iwork, integer *liwork,
948 integer *info);
949
950/* Subroutine */ int ctgsja_(char *jobu, char *jobv, char *jobq, integer *m,
951 integer *p, integer *n, integer *k, integer *l, complex *a, integer *
952 lda, complex *b, integer *ldb, real *tola, real *tolb, real *alpha,
953 real *beta, complex *u, integer *ldu, complex *v, integer *ldv,
954 complex *q, integer *ldq, complex *work, integer *ncycle, integer *
955 info);
956
957/* Subroutine */ int ctgsna_(char *job, char *howmny, logical *select,
958 integer *n, complex *a, integer *lda, complex *b, integer *ldb,
959 complex *vl, integer *ldvl, complex *vr, integer *ldvr, real *s, real
960 *dif, integer *mm, integer *m, complex *work, integer *lwork, integer
961 *iwork, integer *info);
962
963/* Subroutine */ int ctgsy2_(char *trans, integer *ijob, integer *m, integer *
964 n, complex *a, integer *lda, complex *b, integer *ldb, complex *c__,
965 integer *ldc, complex *d__, integer *ldd, complex *e, integer *lde,
966 complex *f, integer *ldf, real *scale, real *rdsum, real *rdscal,
967 integer *info);
968
969/* Subroutine */ int ctgsyl_(char *trans, integer *ijob, integer *m, integer *
970 n, complex *a, integer *lda, complex *b, integer *ldb, complex *c__,
971 integer *ldc, complex *d__, integer *ldd, complex *e, integer *lde,
972 complex *f, integer *ldf, real *scale, real *dif, complex *work,
973 integer *lwork, integer *iwork, integer *info);
974
975/* Subroutine */ int ctpcon_(char *norm, char *uplo, char *diag, integer *n,
976 complex *ap, real *rcond, complex *work, real *rwork, integer *info);
977
978/* Subroutine */ int ctprfs_(char *uplo, char *trans, char *diag, integer *n,
979 integer *nrhs, complex *ap, complex *b, integer *ldb, complex *x,
980 integer *ldx, real *ferr, real *berr, complex *work, real *rwork,
981 integer *info);
982
983/* Subroutine */ int ctptri_(char *uplo, char *diag, integer *n, complex *ap,
984 integer *info);
985
986/* Subroutine */ int ctptrs_(char *uplo, char *trans, char *diag, integer *n,
987 integer *nrhs, complex *ap, complex *b, integer *ldb, integer *info);
988
989/* Subroutine */ int ctrcon_(char *norm, char *uplo, char *diag, integer *n,
990 complex *a, integer *lda, real *rcond, complex *work, real *rwork,
991 integer *info);
992
993/* Subroutine */ int ctrevc_(char *side, char *howmny, logical *select,
994 integer *n, complex *t, integer *ldt, complex *vl, integer *ldvl,
995 complex *vr, integer *ldvr, integer *mm, integer *m, complex *work,
996 real *rwork, integer *info);
997
998/* Subroutine */ int ctrexc_(char *compq, integer *n, complex *t, integer *
999 ldt, complex *q, integer *ldq, integer *ifst, integer *ilst, integer *
1000 info);
1001
1002/* Subroutine */ int ctrrfs_(char *uplo, char *trans, char *diag, integer *n,
1003 integer *nrhs, complex *a, integer *lda, complex *b, integer *ldb,
1004 complex *x, integer *ldx, real *ferr, real *berr, complex *work, real
1005 *rwork, integer *info);
1006
1007/* Subroutine */ int ctrsen_(char *job, char *compq, logical *select, integer
1008 *n, complex *t, integer *ldt, complex *q, integer *ldq, complex *w,
1009 integer *m, real *s, real *sep, complex *work, integer *lwork,
1010 integer *info);
1011
1012/* Subroutine */ int ctrsna_(char *job, char *howmny, logical *select,
1013 integer *n, complex *t, integer *ldt, complex *vl, integer *ldvl,
1014 complex *vr, integer *ldvr, real *s, real *sep, integer *mm, integer *
1015 m, complex *work, integer *ldwork, real *rwork, integer *info);
1016
1017/* Subroutine */ int ctrsyl_(char *trana, char *tranb, integer *isgn, integer
1018 *m, integer *n, complex *a, integer *lda, complex *b, integer *ldb,
1019 complex *c__, integer *ldc, real *scale, integer *info);
1020
1021/* Subroutine */ int ctrti2_(char *uplo, char *diag, integer *n, complex *a,
1022 integer *lda, integer *info);
1023
1024/* Subroutine */ int ctrtri_(char *uplo, char *diag, integer *n, complex *a,
1025 integer *lda, integer *info);
1026
1027/* Subroutine */ int ctrtrs_(char *uplo, char *trans, char *diag, integer *n,
1028 integer *nrhs, complex *a, integer *lda, complex *b, integer *ldb,
1029 integer *info);
1030
1031/* Subroutine */ int ctzrqf_(integer *m, integer *n, complex *a, integer *lda,
1032 complex *tau, integer *info);
1033
1034/* Subroutine */ int ctzrzf_(integer *m, integer *n, complex *a, integer *lda,
1035 complex *tau, complex *work, integer *lwork, integer *info);
1036
1037/* Subroutine */ int cung2l_(integer *m, integer *n, integer *k, complex *a,
1038 integer *lda, complex *tau, complex *work, integer *info);
1039
1040/* Subroutine */ int cung2r_(integer *m, integer *n, integer *k, complex *a,
1041 integer *lda, complex *tau, complex *work, integer *info);
1042
1043/* Subroutine */ int cungbr_(char *vect, integer *m, integer *n, integer *k,
1044 complex *a, integer *lda, complex *tau, complex *work, integer *lwork,
1045 integer *info);
1046
1047/* Subroutine */ int cunghr_(integer *n, integer *ilo, integer *ihi, complex *
1048 a, integer *lda, complex *tau, complex *work, integer *lwork, integer
1049 *info);
1050
1051/* Subroutine */ int cungl2_(integer *m, integer *n, integer *k, complex *a,
1052 integer *lda, complex *tau, complex *work, integer *info);
1053
1054/* Subroutine */ int cunglq_(integer *m, integer *n, integer *k, complex *a,
1055 integer *lda, complex *tau, complex *work, integer *lwork, integer *
1056 info);
1057
1058/* Subroutine */ int cungql_(integer *m, integer *n, integer *k, complex *a,
1059 integer *lda, complex *tau, complex *work, integer *lwork, integer *
1060 info);
1061
1062/* Subroutine */ int cungqr_(integer *m, integer *n, integer *k, complex *a,
1063 integer *lda, complex *tau, complex *work, integer *lwork, integer *
1064 info);
1065
1066/* Subroutine */ int cungr2_(integer *m, integer *n, integer *k, complex *a,
1067 integer *lda, complex *tau, complex *work, integer *info);
1068
1069/* Subroutine */ int cungrq_(integer *m, integer *n, integer *k, complex *a,
1070 integer *lda, complex *tau, complex *work, integer *lwork, integer *
1071 info);
1072
1073/* Subroutine */ int cungtr_(char *uplo, integer *n, complex *a, integer *lda,
1074 complex *tau, complex *work, integer *lwork, integer *info);
1075
1076/* Subroutine */ int cunm2l_(char *side, char *trans, integer *m, integer *n,
1077 integer *k, complex *a, integer *lda, complex *tau, complex *c__,
1078 integer *ldc, complex *work, integer *info);
1079
1080/* Subroutine */ int cunm2r_(char *side, char *trans, integer *m, integer *n,
1081 integer *k, complex *a, integer *lda, complex *tau, complex *c__,
1082 integer *ldc, complex *work, integer *info);
1083
1084/* Subroutine */ int cunmbr_(char *vect, char *side, char *trans, integer *m,
1085 integer *n, integer *k, complex *a, integer *lda, complex *tau,
1086 complex *c__, integer *ldc, complex *work, integer *lwork, integer *
1087 info);
1088
1089/* Subroutine */ int cunmhr_(char *side, char *trans, integer *m, integer *n,
1090 integer *ilo, integer *ihi, complex *a, integer *lda, complex *tau,
1091 complex *c__, integer *ldc, complex *work, integer *lwork, integer *
1092 info);
1093
1094/* Subroutine */ int cunml2_(char *side, char *trans, integer *m, integer *n,
1095 integer *k, complex *a, integer *lda, complex *tau, complex *c__,
1096 integer *ldc, complex *work, integer *info);
1097
1098/* Subroutine */ int cunmlq_(char *side, char *trans, integer *m, integer *n,
1099 integer *k, complex *a, integer *lda, complex *tau, complex *c__,
1100 integer *ldc, complex *work, integer *lwork, integer *info);
1101
1102/* Subroutine */ int cunmql_(char *side, char *trans, integer *m, integer *n,
1103 integer *k, complex *a, integer *lda, complex *tau, complex *c__,
1104 integer *ldc, complex *work, integer *lwork, integer *info);
1105
1106/* Subroutine */ int cunmqr_(char *side, char *trans, integer *m, integer *n,
1107 integer *k, complex *a, integer *lda, complex *tau, complex *c__,
1108 integer *ldc, complex *work, integer *lwork, integer *info);
1109
1110/* Subroutine */ int cunmr2_(char *side, char *trans, integer *m, integer *n,
1111 integer *k, complex *a, integer *lda, complex *tau, complex *c__,
1112 integer *ldc, complex *work, integer *info);
1113
1114/* Subroutine */ int cunmr3_(char *side, char *trans, integer *m, integer *n,
1115 integer *k, integer *l, complex *a, integer *lda, complex *tau,
1116 complex *c__, integer *ldc, complex *work, integer *info);
1117
1118/* Subroutine */ int cunmrq_(char *side, char *trans, integer *m, integer *n,
1119 integer *k, complex *a, integer *lda, complex *tau, complex *c__,
1120 integer *ldc, complex *work, integer *lwork, integer *info);
1121
1122/* Subroutine */ int cunmrz_(char *side, char *trans, integer *m, integer *n,
1123 integer *k, integer *l, complex *a, integer *lda, complex *tau,
1124 complex *c__, integer *ldc, complex *work, integer *lwork, integer *
1125 info);
1126
1127/* Subroutine */ int cunmtr_(char *side, char *uplo, char *trans, integer *m,
1128 integer *n, complex *a, integer *lda, complex *tau, complex *c__,
1129 integer *ldc, complex *work, integer *lwork, integer *info);
1130
1131/* Subroutine */ int cupgtr_(char *uplo, integer *n, complex *ap, complex *
1132 tau, complex *q, integer *ldq, complex *work, integer *info);
1133
1134/* Subroutine */ int cupmtr_(char *side, char *uplo, char *trans, integer *m,
1135 integer *n, complex *ap, complex *tau, complex *c__, integer *ldc,
1136 complex *work, integer *info);
1137
1138/* Subroutine */ int dbdsdc_(char *uplo, char *compq, integer *n, doublereal *
1139 d__, doublereal *e, doublereal *u, integer *ldu, doublereal *vt,
1140 integer *ldvt, doublereal *q, integer *iq, doublereal *work, integer *
1141 iwork, integer *info);
1142
1143/* Subroutine */ int dbdsqr_(char *uplo, integer *n, integer *ncvt, integer *
1144 nru, integer *ncc, doublereal *d__, doublereal *e, doublereal *vt,
1145 integer *ldvt, doublereal *u, integer *ldu, doublereal *c__, integer *
1146 ldc, doublereal *work, integer *info);
1147
1148/* Subroutine */ int ddisna_(char *job, integer *m, integer *n, doublereal *
1149 d__, doublereal *sep, integer *info);
1150
1151/* Subroutine */ int dgbbrd_(char *vect, integer *m, integer *n, integer *ncc,
1152 integer *kl, integer *ku, doublereal *ab, integer *ldab, doublereal *
1153 d__, doublereal *e, doublereal *q, integer *ldq, doublereal *pt,
1154 integer *ldpt, doublereal *c__, integer *ldc, doublereal *work,
1155 integer *info);
1156
1157/* Subroutine */ int dgbcon_(char *norm, integer *n, integer *kl, integer *ku,
1158 doublereal *ab, integer *ldab, integer *ipiv, doublereal *anorm,
1159 doublereal *rcond, doublereal *work, integer *iwork, integer *info);
1160
1161/* Subroutine */ int dgbequ_(integer *m, integer *n, integer *kl, integer *ku,
1162 doublereal *ab, integer *ldab, doublereal *r__, doublereal *c__,
1163 doublereal *rowcnd, doublereal *colcnd, doublereal *amax, integer *
1164 info);
1165
1166/* Subroutine */ int dgbrfs_(char *trans, integer *n, integer *kl, integer *
1167 ku, integer *nrhs, doublereal *ab, integer *ldab, doublereal *afb,
1168 integer *ldafb, integer *ipiv, doublereal *b, integer *ldb,
1169 doublereal *x, integer *ldx, doublereal *ferr, doublereal *berr,
1170 doublereal *work, integer *iwork, integer *info);
1171
1172/* Subroutine */ int dgbsv_(integer *n, integer *kl, integer *ku, integer *
1173 nrhs, doublereal *ab, integer *ldab, integer *ipiv, doublereal *b,
1174 integer *ldb, integer *info);
1175
1176/* Subroutine */ int dgbsvx_(char *fact, char *trans, integer *n, integer *kl,
1177 integer *ku, integer *nrhs, doublereal *ab, integer *ldab,
1178 doublereal *afb, integer *ldafb, integer *ipiv, char *equed,
1179 doublereal *r__, doublereal *c__, doublereal *b, integer *ldb,
1180 doublereal *x, integer *ldx, doublereal *rcond, doublereal *ferr,
1181 doublereal *berr, doublereal *work, integer *iwork, integer *info);
1182
1183/* Subroutine */ int dgbtf2_(integer *m, integer *n, integer *kl, integer *ku,
1184 doublereal *ab, integer *ldab, integer *ipiv, integer *info);
1185
1186/* Subroutine */ int dgbtrf_(integer *m, integer *n, integer *kl, integer *ku,
1187 doublereal *ab, integer *ldab, integer *ipiv, integer *info);
1188
1189/* Subroutine */ int dgbtrs_(char *trans, integer *n, integer *kl, integer *
1190 ku, integer *nrhs, doublereal *ab, integer *ldab, integer *ipiv,
1191 doublereal *b, integer *ldb, integer *info);
1192
1193/* Subroutine */ int dgebak_(char *job, char *side, integer *n, integer *ilo,
1194 integer *ihi, doublereal *scale, integer *m, doublereal *v, integer *
1195 ldv, integer *info);
1196
1197/* Subroutine */ int dgebal_(char *job, integer *n, doublereal *a, integer *
1198 lda, integer *ilo, integer *ihi, doublereal *scale, integer *info);
1199
1200/* Subroutine */ int dgebd2_(integer *m, integer *n, doublereal *a, integer *
1201 lda, doublereal *d__, doublereal *e, doublereal *tauq, doublereal *
1202 taup, doublereal *work, integer *info);
1203
1204/* Subroutine */ int dgebrd_(integer *m, integer *n, doublereal *a, integer *
1205 lda, doublereal *d__, doublereal *e, doublereal *tauq, doublereal *
1206 taup, doublereal *work, integer *lwork, integer *info);
1207
1208/* Subroutine */ int dgecon_(char *norm, integer *n, doublereal *a, integer *
1209 lda, doublereal *anorm, doublereal *rcond, doublereal *work, integer *
1210 iwork, integer *info);
1211
1212/* Subroutine */ int dgeequ_(integer *m, integer *n, doublereal *a, integer *
1213 lda, doublereal *r__, doublereal *c__, doublereal *rowcnd, doublereal
1214 *colcnd, doublereal *amax, integer *info);
1215
1216/* Subroutine */ int dgees_(char *jobvs, char *sort, L_fp select, integer *n,
1217 doublereal *a, integer *lda, integer *sdim, doublereal *wr,
1218 doublereal *wi, doublereal *vs, integer *ldvs, doublereal *work,
1219 integer *lwork, logical *bwork, integer *info);
1220
1221/* Subroutine */ int dgeesx_(char *jobvs, char *sort, L_fp select, char *
1222 sense, integer *n, doublereal *a, integer *lda, integer *sdim,
1223 doublereal *wr, doublereal *wi, doublereal *vs, integer *ldvs,
1224 doublereal *rconde, doublereal *rcondv, doublereal *work, integer *
1225 lwork, integer *iwork, integer *liwork, logical *bwork, integer *info);
1226
1227/* Subroutine */ int dgeev_(char *jobvl, char *jobvr, integer *n, doublereal *
1228 a, integer *lda, doublereal *wr, doublereal *wi, doublereal *vl,
1229 integer *ldvl, doublereal *vr, integer *ldvr, doublereal *work,
1230 integer *lwork, integer *info);
1231
1232/* Subroutine */ int dgeevx_(char *balanc, char *jobvl, char *jobvr, char *
1233 sense, integer *n, doublereal *a, integer *lda, doublereal *wr,
1234 doublereal *wi, doublereal *vl, integer *ldvl, doublereal *vr,
1235 integer *ldvr, integer *ilo, integer *ihi, doublereal *scale,
1236 doublereal *abnrm, doublereal *rconde, doublereal *rcondv, doublereal
1237 *work, integer *lwork, integer *iwork, integer *info);
1238
1239/* Subroutine */ int dgegs_(char *jobvsl, char *jobvsr, integer *n,
1240 doublereal *a, integer *lda, doublereal *b, integer *ldb, doublereal *
1241 alphar, doublereal *alphai, doublereal *beta, doublereal *vsl,
1242 integer *ldvsl, doublereal *vsr, integer *ldvsr, doublereal *work,
1243 integer *lwork, integer *info);
1244
1245/* Subroutine */ int dgegv_(char *jobvl, char *jobvr, integer *n, doublereal *
1246 a, integer *lda, doublereal *b, integer *ldb, doublereal *alphar,
1247 doublereal *alphai, doublereal *beta, doublereal *vl, integer *ldvl,
1248 doublereal *vr, integer *ldvr, doublereal *work, integer *lwork,
1249 integer *info);
1250
1251/* Subroutine */ int dgehd2_(integer *n, integer *ilo, integer *ihi,
1252 doublereal *a, integer *lda, doublereal *tau, doublereal *work,
1253 integer *info);
1254
1255/* Subroutine */ int dgehrd_(integer *n, integer *ilo, integer *ihi,
1256 doublereal *a, integer *lda, doublereal *tau, doublereal *work,
1257 integer *lwork, integer *info);
1258
1259/* Subroutine */ int dgelq2_(integer *m, integer *n, doublereal *a, integer *
1260 lda, doublereal *tau, doublereal *work, integer *info);
1261
1262/* Subroutine */ int dgelqf_(integer *m, integer *n, doublereal *a, integer *
1263 lda, doublereal *tau, doublereal *work, integer *lwork, integer *info);
1264
1265/* Subroutine */ int dgels_(char *trans, integer *m, integer *n, integer *
1266 nrhs, doublereal *a, integer *lda, doublereal *b, integer *ldb,
1267 doublereal *work, integer *lwork, integer *info);
1268
1269/* Subroutine */ int dgelsd_(integer *m, integer *n, integer *nrhs,
1270 doublereal *a, integer *lda, doublereal *b, integer *ldb, doublereal *
1271 s, doublereal *rcond, integer *rank, doublereal *work, integer *lwork,
1272 integer *iwork, integer *info);
1273
1274/* Subroutine */ int dgelss_(integer *m, integer *n, integer *nrhs,
1275 doublereal *a, integer *lda, doublereal *b, integer *ldb, doublereal *
1276 s, doublereal *rcond, integer *rank, doublereal *work, integer *lwork,
1277 integer *info);
1278
1279/* Subroutine */ int dgelsx_(integer *m, integer *n, integer *nrhs,
1280 doublereal *a, integer *lda, doublereal *b, integer *ldb, integer *
1281 jpvt, doublereal *rcond, integer *rank, doublereal *work, integer *
1282 info);
1283
1284/* Subroutine */ int dgelsy_(integer *m, integer *n, integer *nrhs,
1285 doublereal *a, integer *lda, doublereal *b, integer *ldb, integer *
1286 jpvt, doublereal *rcond, integer *rank, doublereal *work, integer *
1287 lwork, integer *info);
1288
1289/* Subroutine */ int dgeql2_(integer *m, integer *n, doublereal *a, integer *
1290 lda, doublereal *tau, doublereal *work, integer *info);
1291
1292/* Subroutine */ int dgeqlf_(integer *m, integer *n, doublereal *a, integer *
1293 lda, doublereal *tau, doublereal *work, integer *lwork, integer *info);
1294
1295/* Subroutine */ int dgeqp3_(integer *m, integer *n, doublereal *a, integer *
1296 lda, integer *jpvt, doublereal *tau, doublereal *work, integer *lwork,
1297 integer *info);
1298
1299/* Subroutine */ int dgeqpf_(integer *m, integer *n, doublereal *a, integer *
1300 lda, integer *jpvt, doublereal *tau, doublereal *work, integer *info);
1301
1302/* Subroutine */ int dgeqr2_(integer *m, integer *n, doublereal *a, integer *
1303 lda, doublereal *tau, doublereal *work, integer *info);
1304
1305/* Subroutine */ int dgeqrf_(integer *m, integer *n, doublereal *a, integer *
1306 lda, doublereal *tau, doublereal *work, integer *lwork, integer *info);
1307
1308/* Subroutine */ int dgerfs_(char *trans, integer *n, integer *nrhs,
1309 doublereal *a, integer *lda, doublereal *af, integer *ldaf, integer *
1310 ipiv, doublereal *b, integer *ldb, doublereal *x, integer *ldx,
1311 doublereal *ferr, doublereal *berr, doublereal *work, integer *iwork,
1312 integer *info);
1313
1314/* Subroutine */ int dgerq2_(integer *m, integer *n, doublereal *a, integer *
1315 lda, doublereal *tau, doublereal *work, integer *info);
1316
1317/* Subroutine */ int dgerqf_(integer *m, integer *n, doublereal *a, integer *
1318 lda, doublereal *tau, doublereal *work, integer *lwork, integer *info);
1319
1320/* Subroutine */ int dgesc2_(integer *n, doublereal *a, integer *lda,
1321 doublereal *rhs, integer *ipiv, integer *jpiv, doublereal *scale);
1322
1323/* Subroutine */ int dgesdd_(char *jobz, integer *m, integer *n, doublereal *
1324 a, integer *lda, doublereal *s, doublereal *u, integer *ldu,
1325 doublereal *vt, integer *ldvt, doublereal *work, integer *lwork,
1326 integer *iwork, integer *info);
1327
1328/* Subroutine */ int dgesv_(integer *n, integer *nrhs, doublereal *a, integer
1329 *lda, integer *ipiv, doublereal *b, integer *ldb, integer *info);
1330
1331/* Subroutine */ int dgesvd_(char *jobu, char *jobvt, integer *m, integer *n,
1332 doublereal *a, integer *lda, doublereal *s, doublereal *u, integer *
1333 ldu, doublereal *vt, integer *ldvt, doublereal *work, integer *lwork,
1334 integer *info);
1335
1336/* Subroutine */ int dgesvx_(char *fact, char *trans, integer *n, integer *
1337 nrhs, doublereal *a, integer *lda, doublereal *af, integer *ldaf,
1338 integer *ipiv, char *equed, doublereal *r__, doublereal *c__,
1339 doublereal *b, integer *ldb, doublereal *x, integer *ldx, doublereal *
1340 rcond, doublereal *ferr, doublereal *berr, doublereal *work, integer *
1341 iwork, integer *info);
1342
1343/* Subroutine */ int dgetc2_(integer *n, doublereal *a, integer *lda, integer
1344 *ipiv, integer *jpiv, integer *info);
1345
1346/* Subroutine */ int dgetf2_(integer *m, integer *n, doublereal *a, integer *
1347 lda, integer *ipiv, integer *info);
1348
1349/* Subroutine */ int dgetrf_(integer *m, integer *n, doublereal *a, integer *
1350 lda, integer *ipiv, integer *info);
1351
1352/* Subroutine */ int dgetri_(integer *n, doublereal *a, integer *lda, integer
1353 *ipiv, doublereal *work, integer *lwork, integer *info);
1354
1355/* Subroutine */ int dgetrs_(char *trans, integer *n, integer *nrhs,
1356 doublereal *a, integer *lda, integer *ipiv, doublereal *b, integer *
1357 ldb, integer *info);
1358
1359/* Subroutine */ int dggbak_(char *job, char *side, integer *n, integer *ilo,
1360 integer *ihi, doublereal *lscale, doublereal *rscale, integer *m,
1361 doublereal *v, integer *ldv, integer *info);
1362
1363/* Subroutine */ int dggbal_(char *job, integer *n, doublereal *a, integer *
1364 lda, doublereal *b, integer *ldb, integer *ilo, integer *ihi,
1365 doublereal *lscale, doublereal *rscale, doublereal *work, integer *
1366 info);
1367
1368/* Subroutine */ int dgges_(char *jobvsl, char *jobvsr, char *sort, L_fp
1369 delctg, integer *n, doublereal *a, integer *lda, doublereal *b,
1370 integer *ldb, integer *sdim, doublereal *alphar, doublereal *alphai,
1371 doublereal *beta, doublereal *vsl, integer *ldvsl, doublereal *vsr,
1372 integer *ldvsr, doublereal *work, integer *lwork, logical *bwork,
1373 integer *info);
1374
1375/* Subroutine */ int dggesx_(char *jobvsl, char *jobvsr, char *sort, L_fp
1376 delctg, char *sense, integer *n, doublereal *a, integer *lda,
1377 doublereal *b, integer *ldb, integer *sdim, doublereal *alphar,
1378 doublereal *alphai, doublereal *beta, doublereal *vsl, integer *ldvsl,
1379 doublereal *vsr, integer *ldvsr, doublereal *rconde, doublereal *
1380 rcondv, doublereal *work, integer *lwork, integer *iwork, integer *
1381 liwork, logical *bwork, integer *info);
1382
1383/* Subroutine */ int dggev_(char *jobvl, char *jobvr, integer *n, doublereal *
1384 a, integer *lda, doublereal *b, integer *ldb, doublereal *alphar,
1385 doublereal *alphai, doublereal *beta, doublereal *vl, integer *ldvl,
1386 doublereal *vr, integer *ldvr, doublereal *work, integer *lwork,
1387 integer *info);
1388
1389/* Subroutine */ int dggevx_(char *balanc, char *jobvl, char *jobvr, char *
1390 sense, integer *n, doublereal *a, integer *lda, doublereal *b,
1391 integer *ldb, doublereal *alphar, doublereal *alphai, doublereal *
1392 beta, doublereal *vl, integer *ldvl, doublereal *vr, integer *ldvr,
1393 integer *ilo, integer *ihi, doublereal *lscale, doublereal *rscale,
1394 doublereal *abnrm, doublereal *bbnrm, doublereal *rconde, doublereal *
1395 rcondv, doublereal *work, integer *lwork, integer *iwork, logical *
1396 bwork, integer *info);
1397
1398/* Subroutine */ int dggglm_(integer *n, integer *m, integer *p, doublereal *
1399 a, integer *lda, doublereal *b, integer *ldb, doublereal *d__,
1400 doublereal *x, doublereal *y, doublereal *work, integer *lwork,
1401 integer *info);
1402
1403/* Subroutine */ int dgghrd_(char *compq, char *compz, integer *n, integer *
1404 ilo, integer *ihi, doublereal *a, integer *lda, doublereal *b,
1405 integer *ldb, doublereal *q, integer *ldq, doublereal *z__, integer *
1406 ldz, integer *info);
1407
1408/* Subroutine */ int dgglse_(integer *m, integer *n, integer *p, doublereal *
1409 a, integer *lda, doublereal *b, integer *ldb, doublereal *c__,
1410 doublereal *d__, doublereal *x, doublereal *work, integer *lwork,
1411 integer *info);
1412
1413/* Subroutine */ int dggqrf_(integer *n, integer *m, integer *p, doublereal *
1414 a, integer *lda, doublereal *taua, doublereal *b, integer *ldb,
1415 doublereal *taub, doublereal *work, integer *lwork, integer *info);
1416
1417/* Subroutine */ int dggrqf_(integer *m, integer *p, integer *n, doublereal *
1418 a, integer *lda, doublereal *taua, doublereal *b, integer *ldb,
1419 doublereal *taub, doublereal *work, integer *lwork, integer *info);
1420
1421/* Subroutine */ int dggsvd_(char *jobu, char *jobv, char *jobq, integer *m,
1422 integer *n, integer *p, integer *k, integer *l, doublereal *a,
1423 integer *lda, doublereal *b, integer *ldb, doublereal *alpha,
1424 doublereal *beta, doublereal *u, integer *ldu, doublereal *v, integer
1425 *ldv, doublereal *q, integer *ldq, doublereal *work, integer *iwork,
1426 integer *info);
1427
1428/* Subroutine */ int dggsvp_(char *jobu, char *jobv, char *jobq, integer *m,
1429 integer *p, integer *n, doublereal *a, integer *lda, doublereal *b,
1430 integer *ldb, doublereal *tola, doublereal *tolb, integer *k, integer
1431 *l, doublereal *u, integer *ldu, doublereal *v, integer *ldv,
1432 doublereal *q, integer *ldq, integer *iwork, doublereal *tau,
1433 doublereal *work, integer *info);
1434
1435/* Subroutine */ int dgtcon_(char *norm, integer *n, doublereal *dl,
1436 doublereal *d__, doublereal *du, doublereal *du2, integer *ipiv,
1437 doublereal *anorm, doublereal *rcond, doublereal *work, integer *
1438 iwork, integer *info);
1439
1440/* Subroutine */ int dgtrfs_(char *trans, integer *n, integer *nrhs,
1441 doublereal *dl, doublereal *d__, doublereal *du, doublereal *dlf,
1442 doublereal *df, doublereal *duf, doublereal *du2, integer *ipiv,
1443 doublereal *b, integer *ldb, doublereal *x, integer *ldx, doublereal *
1444 ferr, doublereal *berr, doublereal *work, integer *iwork, integer *
1445 info);
1446
1447/* Subroutine */ int dgtsv_(integer *n, integer *nrhs, doublereal *dl,
1448 doublereal *d__, doublereal *du, doublereal *b, integer *ldb, integer
1449 *info);
1450
1451/* Subroutine */ int dgtsvx_(char *fact, char *trans, integer *n, integer *
1452 nrhs, doublereal *dl, doublereal *d__, doublereal *du, doublereal *
1453 dlf, doublereal *df, doublereal *duf, doublereal *du2, integer *ipiv,
1454 doublereal *b, integer *ldb, doublereal *x, integer *ldx, doublereal *
1455 rcond, doublereal *ferr, doublereal *berr, doublereal *work, integer *
1456 iwork, integer *info);
1457
1458/* Subroutine */ int dgttrf_(integer *n, doublereal *dl, doublereal *d__,
1459 doublereal *du, doublereal *du2, integer *ipiv, integer *info);
1460
1461/* Subroutine */ int dgttrs_(char *trans, integer *n, integer *nrhs,
1462 doublereal *dl, doublereal *d__, doublereal *du, doublereal *du2,
1463 integer *ipiv, doublereal *b, integer *ldb, integer *info);
1464
1465/* Subroutine */ int dgtts2_(integer *itrans, integer *n, integer *nrhs,
1466 doublereal *dl, doublereal *d__, doublereal *du, doublereal *du2,
1467 integer *ipiv, doublereal *b, integer *ldb);
1468
1469/* Subroutine */ int dhgeqz_(char *job, char *compq, char *compz, integer *n,
1470 integer *ilo, integer *ihi, doublereal *a, integer *lda, doublereal *
1471 b, integer *ldb, doublereal *alphar, doublereal *alphai, doublereal *
1472 beta, doublereal *q, integer *ldq, doublereal *z__, integer *ldz,
1473 doublereal *work, integer *lwork, integer *info);
1474
1475/* Subroutine */ int dhsein_(char *side, char *eigsrc, char *initv, logical *
1476 select, integer *n, doublereal *h__, integer *ldh, doublereal *wr,
1477 doublereal *wi, doublereal *vl, integer *ldvl, doublereal *vr,
1478 integer *ldvr, integer *mm, integer *m, doublereal *work, integer *
1479 ifaill, integer *ifailr, integer *info);
1480
1481/* Subroutine */ int dhseqr_(char *job, char *compz, integer *n, integer *ilo,
1482 integer *ihi, doublereal *h__, integer *ldh, doublereal *wr,
1483 doublereal *wi, doublereal *z__, integer *ldz, doublereal *work,
1484 integer *lwork, integer *info);
1485
1486/* Subroutine */ int dlabad_(doublereal *smalll, doublereal *large); /* !? */
1487
1488/* Subroutine */ int dlabrd_(integer *m, integer *n, integer *nb, doublereal *
1489 a, integer *lda, doublereal *d__, doublereal *e, doublereal *tauq,
1490 doublereal *taup, doublereal *x, integer *ldx, doublereal *y, integer
1491 *ldy);
1492
1493/* Subroutine */ int dlacon_(integer *n, doublereal *v, doublereal *x,
1494 integer *isgn, doublereal *est, integer *kase);
1495
1496/* Subroutine */ int dlacpy_(char *uplo, integer *m, integer *n, doublereal *
1497 a, integer *lda, doublereal *b, integer *ldb);
1498
1499/* Subroutine */ int dladiv_(doublereal *a, doublereal *b, doublereal *c__,
1500 doublereal *d__, doublereal *p, doublereal *q);
1501
1502/* Subroutine */ int dlae2_(doublereal *a, doublereal *b, doublereal *c__,
1503 doublereal *rt1, doublereal *rt2);
1504
1505/* Subroutine */ int dlaebz_(integer *ijob, integer *nitmax, integer *n,
1506 integer *mmax, integer *minp, integer *nbmin, doublereal *abstol,
1507 doublereal *reltol, doublereal *pivmin, doublereal *d__, doublereal *
1508 e, doublereal *e2, integer *nval, doublereal *ab, doublereal *c__,
1509 integer *mout, integer *nab, doublereal *work, integer *iwork,
1510 integer *info);
1511
1512/* Subroutine */ int dlaed0_(integer *icompq, integer *qsiz, integer *n,
1513 doublereal *d__, doublereal *e, doublereal *q, integer *ldq,
1514 doublereal *qstore, integer *ldqs, doublereal *work, integer *iwork,
1515 integer *info);
1516
1517/* Subroutine */ int dlaed1_(integer *n, doublereal *d__, doublereal *q,
1518 integer *ldq, integer *indxq, doublereal *rho, integer *cutpnt,
1519 doublereal *work, integer *iwork, integer *info);
1520
1521/* Subroutine */ int dlaed2_(integer *k, integer *n, integer *n1, doublereal *
1522 d__, doublereal *q, integer *ldq, integer *indxq, doublereal *rho,
1523 doublereal *z__, doublereal *dlamda, doublereal *w, doublereal *q2,
1524 integer *indx, integer *indxc, integer *indxp, integer *coltyp,
1525 integer *info);
1526
1527/* Subroutine */ int dlaed3_(integer *k, integer *n, integer *n1, doublereal *
1528 d__, doublereal *q, integer *ldq, doublereal *rho, doublereal *dlamda,
1529 doublereal *q2, integer *indx, integer *ctot, doublereal *w,
1530 doublereal *s, integer *info);
1531
1532/* Subroutine */ int dlaed4_(integer *n, integer *i__, doublereal *d__,
1533 doublereal *z__, doublereal *delta, doublereal *rho, doublereal *dlam,
1534 integer *info);
1535
1536/* Subroutine */ int dlaed5_(integer *i__, doublereal *d__, doublereal *z__,
1537 doublereal *delta, doublereal *rho, doublereal *dlam);
1538
1539/* Subroutine */ int dlaed6_(integer *kniter, logical *orgati, doublereal *
1540 rho, doublereal *d__, doublereal *z__, doublereal *finit, doublereal *
1541 tau, integer *info);
1542
1543/* Subroutine */ int dlaed7_(integer *icompq, integer *n, integer *qsiz,
1544 integer *tlvls, integer *curlvl, integer *curpbm, doublereal *d__,
1545 doublereal *q, integer *ldq, integer *indxq, doublereal *rho, integer
1546 *cutpnt, doublereal *qstore, integer *qptr, integer *prmptr, integer *
1547 perm, integer *givptr, integer *givcol, doublereal *givnum,
1548 doublereal *work, integer *iwork, integer *info);
1549
1550/* Subroutine */ int dlaed8_(integer *icompq, integer *k, integer *n, integer
1551 *qsiz, doublereal *d__, doublereal *q, integer *ldq, integer *indxq,
1552 doublereal *rho, integer *cutpnt, doublereal *z__, doublereal *dlamda,
1553 doublereal *q2, integer *ldq2, doublereal *w, integer *perm, integer
1554 *givptr, integer *givcol, doublereal *givnum, integer *indxp, integer
1555 *indx, integer *info);
1556
1557/* Subroutine */ int dlaed9_(integer *k, integer *kstart, integer *kstop,
1558 integer *n, doublereal *d__, doublereal *q, integer *ldq, doublereal *
1559 rho, doublereal *dlamda, doublereal *w, doublereal *s, integer *lds,
1560 integer *info);
1561
1562/* Subroutine */ int dlaeda_(integer *n, integer *tlvls, integer *curlvl,
1563 integer *curpbm, integer *prmptr, integer *perm, integer *givptr,
1564 integer *givcol, doublereal *givnum, doublereal *q, integer *qptr,
1565 doublereal *z__, doublereal *ztemp, integer *info);
1566
1567/* Subroutine */ int dlaein_(logical *rightv, logical *noinit, integer *n,
1568 doublereal *h__, integer *ldh, doublereal *wr, doublereal *wi,
1569 doublereal *vr, doublereal *vi, doublereal *b, integer *ldb,
1570 doublereal *work, doublereal *eps3, doublereal *smlnum, doublereal *
1571 bignum, integer *info);
1572
1573/* Subroutine */ int dlaev2_(doublereal *a, doublereal *b, doublereal *c__,
1574 doublereal *rt1, doublereal *rt2, doublereal *cs1, doublereal *sn1);
1575
1576/* Subroutine */ int dlaexc_(logical *wantq, integer *n, doublereal *t,
1577 integer *ldt, doublereal *q, integer *ldq, integer *j1, integer *n1,
1578 integer *n2, doublereal *work, integer *info);
1579
1580/* Subroutine */ int dlag2_(doublereal *a, integer *lda, doublereal *b,
1581 integer *ldb, doublereal *safmin, doublereal *scale1, doublereal *
1582 scale2, doublereal *wr1, doublereal *wr2, doublereal *wi);
1583
1584/* Subroutine */ int dlags2_(logical *upper, doublereal *a1, doublereal *a2,
1585 doublereal *a3, doublereal *b1, doublereal *b2, doublereal *b3,
1586 doublereal *csu, doublereal *snu, doublereal *csv, doublereal *snv,
1587 doublereal *csq, doublereal *snq);
1588
1589/* Subroutine */ int dlagtf_(integer *n, doublereal *a, doublereal *lambda,
1590 doublereal *b, doublereal *c__, doublereal *tol, doublereal *d__,
1591 integer *in, integer *info);
1592
1593/* Subroutine */ int dlagtm_(char *trans, integer *n, integer *nrhs,
1594 doublereal *alpha, doublereal *dl, doublereal *d__, doublereal *du,
1595 doublereal *x, integer *ldx, doublereal *beta, doublereal *b, integer
1596 *ldb);
1597
1598/* Subroutine */ int dlagts_(integer *job, integer *n, doublereal *a,
1599 doublereal *b, doublereal *c__, doublereal *d__, integer *in,
1600 doublereal *y, doublereal *tol, integer *info);
1601
1602/* Subroutine */ int dlagv2_(doublereal *a, integer *lda, doublereal *b,
1603 integer *ldb, doublereal *alphar, doublereal *alphai, doublereal *
1604 beta, doublereal *csl, doublereal *snl, doublereal *csr, doublereal *
1605 snr);
1606
1607/* Subroutine */ int dlahqr_(logical *wantt, logical *wantz, integer *n,
1608 integer *ilo, integer *ihi, doublereal *h__, integer *ldh, doublereal
1609 *wr, doublereal *wi, integer *iloz, integer *ihiz, doublereal *z__,
1610 integer *ldz, integer *info);
1611
1612/* Subroutine */ int dlahrd_(integer *n, integer *k, integer *nb, doublereal *
1613 a, integer *lda, doublereal *tau, doublereal *t, integer *ldt,
1614 doublereal *y, integer *ldy);
1615
1616/* Subroutine */ int dlaic1_(integer *job, integer *j, doublereal *x,
1617 doublereal *sest, doublereal *w, doublereal *gamma, doublereal *
1618 sestpr, doublereal *s, doublereal *c__);
1619
1620/* Subroutine */ int dlaln2_(logical *ltrans, integer *na, integer *nw,
1621 doublereal *smin, doublereal *ca, doublereal *a, integer *lda,
1622 doublereal *d1, doublereal *d2, doublereal *b, integer *ldb,
1623 doublereal *wr, doublereal *wi, doublereal *x, integer *ldx,
1624 doublereal *scale, doublereal *xnorm, integer *info);
1625
1626/* Subroutine */ int dlals0_(integer *icompq, integer *nl, integer *nr,
1627 integer *sqre, integer *nrhs, doublereal *b, integer *ldb, doublereal
1628 *bx, integer *ldbx, integer *perm, integer *givptr, integer *givcol,
1629 integer *ldgcol, doublereal *givnum, integer *ldgnum, doublereal *
1630 poles, doublereal *difl, doublereal *difr, doublereal *z__, integer *
1631 k, doublereal *c__, doublereal *s, doublereal *work, integer *info);
1632
1633/* Subroutine */ int dlalsa_(integer *icompq, integer *smlsiz, integer *n,
1634 integer *nrhs, doublereal *b, integer *ldb, doublereal *bx, integer *
1635 ldbx, doublereal *u, integer *ldu, doublereal *vt, integer *k,
1636 doublereal *difl, doublereal *difr, doublereal *z__, doublereal *
1637 poles, integer *givptr, integer *givcol, integer *ldgcol, integer *
1638 perm, doublereal *givnum, doublereal *c__, doublereal *s, doublereal *
1639 work, integer *iwork, integer *info);
1640
1641/* Subroutine */ int dlalsd_(char *uplo, integer *smlsiz, integer *n, integer
1642 *nrhs, doublereal *d__, doublereal *e, doublereal *b, integer *ldb,
1643 doublereal *rcond, integer *rank, doublereal *work, integer *iwork,
1644 integer *info);
1645
1646/* Subroutine */ int dlamc1_(integer *beta, integer *t, logical *rnd, logical
1647 *ieee1);
1648
1649/* Subroutine */ int dlamc2_(integer *beta, integer *t, logical *rnd,
1650 doublereal *eps, integer *emin, doublereal *rmin, integer *emax,
1651 doublereal *rmax);
1652
1653/* Subroutine */ int dlamc4_(integer *emin, doublereal *start, integer *base);
1654
1655/* Subroutine */ int dlamc5_(integer *beta, integer *p, integer *emin,
1656 logical *ieee, integer *emax, doublereal *rmax);
1657
1658/* Subroutine */ int dlamrg_(integer *n1, integer *n2, doublereal *a, integer
1659 *dtrd1, integer *dtrd2, integer *index);
1660
1661/* Subroutine */ int dlanv2_(doublereal *a, doublereal *b, doublereal *c__,
1662 doublereal *d__, doublereal *rt1r, doublereal *rt1i, doublereal *rt2r,
1663 doublereal *rt2i, doublereal *cs, doublereal *sn);
1664
1665/* Subroutine */ int dlapll_(integer *n, doublereal *x, integer *incx,
1666 doublereal *y, integer *incy, doublereal *ssmin);
1667
1668/* Subroutine */ int dlapmt_(logical *forwrd, integer *m, integer *n,
1669 doublereal *x, integer *ldx, integer *k);
1670
1671/* Subroutine */ int dlaqgb_(integer *m, integer *n, integer *kl, integer *ku,
1672 doublereal *ab, integer *ldab, doublereal *r__, doublereal *c__,
1673 doublereal *rowcnd, doublereal *colcnd, doublereal *amax, char *equed);
1674
1675/* Subroutine */ int dlaqge_(integer *m, integer *n, doublereal *a, integer *
1676 lda, doublereal *r__, doublereal *c__, doublereal *rowcnd, doublereal
1677 *colcnd, doublereal *amax, char *equed);
1678
1679/* Subroutine */ int dlaqp2_(integer *m, integer *n, integer *offset,
1680 doublereal *a, integer *lda, integer *jpvt, doublereal *tau,
1681 doublereal *vn1, doublereal *vn2, doublereal *work);
1682
1683/* Subroutine */ int dlaqps_(integer *m, integer *n, integer *offset, integer
1684 *nb, integer *kb, doublereal *a, integer *lda, integer *jpvt,
1685 doublereal *tau, doublereal *vn1, doublereal *vn2, doublereal *auxv,
1686 doublereal *f, integer *ldf);
1687
1688/* Subroutine */ int dlaqsb_(char *uplo, integer *n, integer *kd, doublereal *
1689 ab, integer *ldab, doublereal *s, doublereal *scond, doublereal *amax,
1690 char *equed);
1691
1692/* Subroutine */ int dlaqsp_(char *uplo, integer *n, doublereal *ap,
1693 doublereal *s, doublereal *scond, doublereal *amax, char *equed);
1694
1695/* Subroutine */ int dlaqsy_(char *uplo, integer *n, doublereal *a, integer *
1696 lda, doublereal *s, doublereal *scond, doublereal *amax, char *equed);
1697
1698/* Subroutine */ int dlaqtr_(logical *ltran, logical *lreal, integer *n,
1699 doublereal *t, integer *ldt, doublereal *b, doublereal *w, doublereal
1700 *scale, doublereal *x, doublereal *work, integer *info);
1701
1702/* Subroutine */ int dlar1v_(integer *n, integer *b1, integer *bn, doublereal
1703 *sigma, doublereal *d__, doublereal *l, doublereal *ld, doublereal *
1704 lld, doublereal *gersch, doublereal *z__, doublereal *ztz, doublereal
1705 *mingma, integer *r__, integer *isuppz, doublereal *work);
1706
1707/* Subroutine */ int dlar2v_(integer *n, doublereal *x, doublereal *y,
1708 doublereal *z__, integer *incx, doublereal *c__, doublereal *s,
1709 integer *incc);
1710
1711/* Subroutine */ int dlarf_(char *side, integer *m, integer *n, doublereal *v,
1712 integer *incv, doublereal *tau, doublereal *c__, integer *ldc,
1713 doublereal *work);
1714
1715/* Subroutine */ int dlarfb_(char *side, char *trans, char *direct, char *
1716 storev, integer *m, integer *n, integer *k, doublereal *v, integer *
1717 ldv, doublereal *t, integer *ldt, doublereal *c__, integer *ldc,
1718 doublereal *work, integer *ldwork);
1719
1720/* Subroutine */ int dlarfg_(integer *n, doublereal *alpha, doublereal *x,
1721 integer *incx, doublereal *tau);
1722
1723/* Subroutine */ int dlarft_(char *direct, char *storev, integer *n, integer *
1724 k, doublereal *v, integer *ldv, doublereal *tau, doublereal *t,
1725 integer *ldt);
1726
1727/* Subroutine */ int dlarfx_(char *side, integer *m, integer *n, doublereal *
1728 v, doublereal *tau, doublereal *c__, integer *ldc, doublereal *work);
1729
1730/* Subroutine */ int dlargv_(integer *n, doublereal *x, integer *incx,
1731 doublereal *y, integer *incy, doublereal *c__, integer *incc);
1732
1733/* Subroutine */ int dlarnv_(integer *idist, integer *iseed, integer *n,
1734 doublereal *x);
1735
1736/* Subroutine */ int dlarrb_(integer *n, doublereal *d__, doublereal *l,
1737 doublereal *ld, doublereal *lld, integer *ifirst, integer *ilast,
1738 doublereal *sigma, doublereal *reltol, doublereal *w, doublereal *
1739 wgap, doublereal *werr, doublereal *work, integer *iwork, integer *
1740 info);
1741
1742/* Subroutine */ int dlarre_(integer *n, doublereal *d__, doublereal *e,
1743 doublereal *tol, integer *nsplit, integer *isplit, integer *m,
1744 doublereal *w, doublereal *woff, doublereal *gersch, doublereal *work,
1745 integer *info);
1746
1747/* Subroutine */ int dlarrf_(integer *n, doublereal *d__, doublereal *l,
1748 doublereal *ld, doublereal *lld, integer *ifirst, integer *ilast,
1749 doublereal *w, doublereal *dplus, doublereal *lplus, doublereal *work,
1750 integer *iwork, integer *info);
1751
1752/* Subroutine */ int dlarrv_(integer *n, doublereal *d__, doublereal *l,
1753 integer *isplit, integer *m, doublereal *w, integer *iblock,
1754 doublereal *gersch, doublereal *tol, doublereal *z__, integer *ldz,
1755 integer *isuppz, doublereal *work, integer *iwork, integer *info);
1756
1757/* Subroutine */ int dlartg_(doublereal *f, doublereal *g, doublereal *cs,
1758 doublereal *sn, doublereal *r__);
1759
1760/* Subroutine */ int dlartv_(integer *n, doublereal *x, integer *incx,
1761 doublereal *y, integer *incy, doublereal *c__, doublereal *s, integer
1762 *incc);
1763
1764/* Subroutine */ int dlaruv_(integer *iseed, integer *n, doublereal *x);
1765
1766/* Subroutine */ int dlarz_(char *side, integer *m, integer *n, integer *l,
1767 doublereal *v, integer *incv, doublereal *tau, doublereal *c__,
1768 integer *ldc, doublereal *work);
1769
1770/* Subroutine */ int dlarzb_(char *side, char *trans, char *direct, char *
1771 storev, integer *m, integer *n, integer *k, integer *l, doublereal *v,
1772 integer *ldv, doublereal *t, integer *ldt, doublereal *c__, integer *
1773 ldc, doublereal *work, integer *ldwork);
1774
1775/* Subroutine */ int dlarzt_(char *direct, char *storev, integer *n, integer *
1776 k, doublereal *v, integer *ldv, doublereal *tau, doublereal *t,
1777 integer *ldt);
1778
1779/* Subroutine */ int dlas2_(doublereal *f, doublereal *g, doublereal *h__,
1780 doublereal *ssmin, doublereal *ssmax);
1781
1782/* Subroutine */ int dlascl_(char *type__, integer *kl, integer *ku,
1783 doublereal *cfrom, doublereal *cto, integer *m, integer *n,
1784 doublereal *a, integer *lda, integer *info);
1785
1786/* Subroutine */ int dlasd0_(integer *n, integer *sqre, doublereal *d__,
1787 doublereal *e, doublereal *u, integer *ldu, doublereal *vt, integer *
1788 ldvt, integer *smlsiz, integer *iwork, doublereal *work, integer *
1789 info);
1790
1791/* Subroutine */ int dlasd1_(integer *nl, integer *nr, integer *sqre,
1792 doublereal *d__, doublereal *alpha, doublereal *beta, doublereal *u,
1793 integer *ldu, doublereal *vt, integer *ldvt, integer *idxq, integer *
1794 iwork, doublereal *work, integer *info);
1795
1796/* Subroutine */ int dlasd2_(integer *nl, integer *nr, integer *sqre, integer
1797 *k, doublereal *d__, doublereal *z__, doublereal *alpha, doublereal *
1798 beta, doublereal *u, integer *ldu, doublereal *vt, integer *ldvt,
1799 doublereal *dsigma, doublereal *u2, integer *ldu2, doublereal *vt2,
1800 integer *ldvt2, integer *idxp, integer *idx, integer *idxc, integer *
1801 idxq, integer *coltyp, integer *info);
1802
1803/* Subroutine */ int dlasd3_(integer *nl, integer *nr, integer *sqre, integer
1804 *k, doublereal *d__, doublereal *q, integer *ldq, doublereal *dsigma,
1805 doublereal *u, integer *ldu, doublereal *u2, integer *ldu2,
1806 doublereal *vt, integer *ldvt, doublereal *vt2, integer *ldvt2,
1807 integer *idxc, integer *ctot, doublereal *z__, integer *info);
1808
1809/* Subroutine */ int dlasd4_(integer *n, integer *i__, doublereal *d__,
1810 doublereal *z__, doublereal *delta, doublereal *rho, doublereal *
1811 sigma, doublereal *work, integer *info);
1812
1813/* Subroutine */ int dlasd5_(integer *i__, doublereal *d__, doublereal *z__,
1814 doublereal *delta, doublereal *rho, doublereal *dsigma, doublereal *
1815 work);
1816
1817/* Subroutine */ int dlasd6_(integer *icompq, integer *nl, integer *nr,
1818 integer *sqre, doublereal *d__, doublereal *vf, doublereal *vl,
1819 doublereal *alpha, doublereal *beta, integer *idxq, integer *perm,
1820 integer *givptr, integer *givcol, integer *ldgcol, doublereal *givnum,
1821 integer *ldgnum, doublereal *poles, doublereal *difl, doublereal *
1822 difr, doublereal *z__, integer *k, doublereal *c__, doublereal *s,
1823 doublereal *work, integer *iwork, integer *info);
1824
1825/* Subroutine */ int dlasd7_(integer *icompq, integer *nl, integer *nr,
1826 integer *sqre, integer *k, doublereal *d__, doublereal *z__,
1827 doublereal *zw, doublereal *vf, doublereal *vfw, doublereal *vl,
1828 doublereal *vlw, doublereal *alpha, doublereal *beta, doublereal *
1829 dsigma, integer *idx, integer *idxp, integer *idxq, integer *perm,
1830 integer *givptr, integer *givcol, integer *ldgcol, doublereal *givnum,
1831 integer *ldgnum, doublereal *c__, doublereal *s, integer *info);
1832
1833/* Subroutine */ int dlasd8_(integer *icompq, integer *k, doublereal *d__,
1834 doublereal *z__, doublereal *vf, doublereal *vl, doublereal *difl,
1835 doublereal *difr, integer *lddifr, doublereal *dsigma, doublereal *
1836 work, integer *info);
1837
1838/* Subroutine */ int dlasd9_(integer *icompq, integer *ldu, integer *k,
1839 doublereal *d__, doublereal *z__, doublereal *vf, doublereal *vl,
1840 doublereal *difl, doublereal *difr, doublereal *dsigma, doublereal *
1841 work, integer *info);
1842
1843/* Subroutine */ int dlasda_(integer *icompq, integer *smlsiz, integer *n,
1844 integer *sqre, doublereal *d__, doublereal *e, doublereal *u, integer
1845 *ldu, doublereal *vt, integer *k, doublereal *difl, doublereal *difr,
1846 doublereal *z__, doublereal *poles, integer *givptr, integer *givcol,
1847 integer *ldgcol, integer *perm, doublereal *givnum, doublereal *c__,
1848 doublereal *s, doublereal *work, integer *iwork, integer *info);
1849
1850/* Subroutine */ int dlasdq_(char *uplo, integer *sqre, integer *n, integer *
1851 ncvt, integer *nru, integer *ncc, doublereal *d__, doublereal *e,
1852 doublereal *vt, integer *ldvt, doublereal *u, integer *ldu,
1853 doublereal *c__, integer *ldc, doublereal *work, integer *info);
1854
1855/* Subroutine */ int dlasdt_(integer *n, integer *lvl, integer *nd, integer *
1856 inode, integer *ndiml, integer *ndimr, integer *msub);
1857
1858/* Subroutine */ int dlaset_(char *uplo, integer *m, integer *n, doublereal *
1859 alpha, doublereal *beta, doublereal *a, integer *lda);
1860
1861/* Subroutine */ int dlasq1_(integer *n, doublereal *d__, doublereal *e,
1862 doublereal *work, integer *info);
1863
1864/* Subroutine */ int dlasq2_(integer *n, doublereal *z__, integer *info);
1865
1866/* Subroutine */ int dlasq3_(integer *i0, integer *n0, doublereal *z__,
1867 integer *pp, doublereal *dmin__, doublereal *sigma, doublereal *desig,
1868 doublereal *qmax, integer *nfail, integer *iter, integer *ndiv,
1869 logical *ieee);
1870
1871/* Subroutine */ int dlasq4_(integer *i0, integer *n0, doublereal *z__,
1872 integer *pp, integer *n0in, doublereal *dmin__, doublereal *dmin1,
1873 doublereal *dmin2, doublereal *dn, doublereal *dn1, doublereal *dn2,
1874 doublereal *tau, integer *ttype);
1875
1876/* Subroutine */ int dlasq5_(integer *i0, integer *n0, doublereal *z__,
1877 integer *pp, doublereal *tau, doublereal *dmin__, doublereal *dmin1,
1878 doublereal *dmin2, doublereal *dn, doublereal *dnm1, doublereal *dnm2,
1879 logical *ieee);
1880
1881/* Subroutine */ int dlasq6_(integer *i0, integer *n0, doublereal *z__,
1882 integer *pp, doublereal *dmin__, doublereal *dmin1, doublereal *dmin2,
1883 doublereal *dn, doublereal *dnm1, doublereal *dnm2);
1884
1885/* Subroutine */ int dlasr_(char *side, char *pivot, char *direct, integer *m,
1886 integer *n, doublereal *c__, doublereal *s, doublereal *a, integer *
1887 lda);
1888
1889/* Subroutine */ int dlasrt_(char *id, integer *n, doublereal *d__, integer *
1890 info);
1891
1892/* Subroutine */ int dlassq_(integer *n, doublereal *x, integer *incx,
1893 doublereal *scale, doublereal *sumsq);
1894
1895/* Subroutine */ int dlasv2_(doublereal *f, doublereal *g, doublereal *h__,
1896 doublereal *ssmin, doublereal *ssmax, doublereal *snr, doublereal *
1897 csr, doublereal *snl, doublereal *csl);
1898
1899/* Subroutine */ int dlaswp_(integer *n, doublereal *a, integer *lda, integer
1900 *k1, integer *k2, integer *ipiv, integer *incx);
1901
1902/* Subroutine */ int dlasy2_(logical *ltranl, logical *ltranr, integer *isgn,
1903 integer *n1, integer *n2, doublereal *tl, integer *ldtl, doublereal *
1904 tr, integer *ldtr, doublereal *b, integer *ldb, doublereal *scale,
1905 doublereal *x, integer *ldx, doublereal *xnorm, integer *info);
1906
1907/* Subroutine */ int dlasyf_(char *uplo, integer *n, integer *nb, integer *kb,
1908 doublereal *a, integer *lda, integer *ipiv, doublereal *w, integer *
1909 ldw, integer *info);
1910
1911/* Subroutine */ int dlatbs_(char *uplo, char *trans, char *diag, char *
1912 normin, integer *n, integer *kd, doublereal *ab, integer *ldab,
1913 doublereal *x, doublereal *scale, doublereal *cnorm, integer *info);
1914
1915/* Subroutine */ int dlatdf_(integer *ijob, integer *n, doublereal *z__,
1916 integer *ldz, doublereal *rhs, doublereal *rdsum, doublereal *rdscal,
1917 integer *ipiv, integer *jpiv);
1918
1919/* Subroutine */ int dlatps_(char *uplo, char *trans, char *diag, char *
1920 normin, integer *n, doublereal *ap, doublereal *x, doublereal *scale,
1921 doublereal *cnorm, integer *info);
1922
1923/* Subroutine */ int dlatrd_(char *uplo, integer *n, integer *nb, doublereal *
1924 a, integer *lda, doublereal *e, doublereal *tau, doublereal *w,
1925 integer *ldw);
1926
1927/* Subroutine */ int dlatrs_(char *uplo, char *trans, char *diag, char *
1928 normin, integer *n, doublereal *a, integer *lda, doublereal *x,
1929 doublereal *scale, doublereal *cnorm, integer *info);
1930
1931/* Subroutine */ int dlatrz_(integer *m, integer *n, integer *l, doublereal *
1932 a, integer *lda, doublereal *tau, doublereal *work);
1933
1934/* Subroutine */ int dlatzm_(char *side, integer *m, integer *n, doublereal *
1935 v, integer *incv, doublereal *tau, doublereal *c1, doublereal *c2,
1936 integer *ldc, doublereal *work);
1937
1938/* Subroutine */ int dlauu2_(char *uplo, integer *n, doublereal *a, integer *
1939 lda, integer *info);
1940
1941/* Subroutine */ int dlauum_(char *uplo, integer *n, doublereal *a, integer *
1942 lda, integer *info);
1943
1944/* Subroutine */ int dopgtr_(char *uplo, integer *n, doublereal *ap,
1945 doublereal *tau, doublereal *q, integer *ldq, doublereal *work,
1946 integer *info);
1947
1948/* Subroutine */ int dopmtr_(char *side, char *uplo, char *trans, integer *m,
1949 integer *n, doublereal *ap, doublereal *tau, doublereal *c__, integer
1950 *ldc, doublereal *work, integer *info);
1951
1952/* Subroutine */ int dorg2l_(integer *m, integer *n, integer *k, doublereal *
1953 a, integer *lda, doublereal *tau, doublereal *work, integer *info);
1954
1955/* Subroutine */ int dorg2r_(integer *m, integer *n, integer *k, doublereal *
1956 a, integer *lda, doublereal *tau, doublereal *work, integer *info);
1957
1958/* Subroutine */ int dorgbr_(char *vect, integer *m, integer *n, integer *k,
1959 doublereal *a, integer *lda, doublereal *tau, doublereal *work,
1960 integer *lwork, integer *info);
1961
1962/* Subroutine */ int dorghr_(integer *n, integer *ilo, integer *ihi,
1963 doublereal *a, integer *lda, doublereal *tau, doublereal *work,
1964 integer *lwork, integer *info);
1965
1966/* Subroutine */ int dorgl2_(integer *m, integer *n, integer *k, doublereal *
1967 a, integer *lda, doublereal *tau, doublereal *work, integer *info);
1968
1969/* Subroutine */ int dorglq_(integer *m, integer *n, integer *k, doublereal *
1970 a, integer *lda, doublereal *tau, doublereal *work, integer *lwork,
1971 integer *info);
1972
1973/* Subroutine */ int dorgql_(integer *m, integer *n, integer *k, doublereal *
1974 a, integer *lda, doublereal *tau, doublereal *work, integer *lwork,
1975 integer *info);
1976
1977/* Subroutine */ int dorgqr_(integer *m, integer *n, integer *k, doublereal *
1978 a, integer *lda, doublereal *tau, doublereal *work, integer *lwork,
1979 integer *info);
1980
1981/* Subroutine */ int dorgr2_(integer *m, integer *n, integer *k, doublereal *
1982 a, integer *lda, doublereal *tau, doublereal *work, integer *info);
1983
1984/* Subroutine */ int dorgrq_(integer *m, integer *n, integer *k, doublereal *
1985 a, integer *lda, doublereal *tau, doublereal *work, integer *lwork,
1986 integer *info);
1987
1988/* Subroutine */ int dorgtr_(char *uplo, integer *n, doublereal *a, integer *
1989 lda, doublereal *tau, doublereal *work, integer *lwork, integer *info);
1990
1991/* Subroutine */ int dorm2l_(char *side, char *trans, integer *m, integer *n,
1992 integer *k, doublereal *a, integer *lda, doublereal *tau, doublereal *
1993 c__, integer *ldc, doublereal *work, integer *info);
1994
1995/* Subroutine */ int dorm2r_(char *side, char *trans, integer *m, integer *n,
1996 integer *k, doublereal *a, integer *lda, doublereal *tau, doublereal *
1997 c__, integer *ldc, doublereal *work, integer *info);
1998
1999/* Subroutine */ int dormbr_(char *vect, char *side, char *trans, integer *m,
2000 integer *n, integer *k, doublereal *a, integer *lda, doublereal *tau,
2001 doublereal *c__, integer *ldc, doublereal *work, integer *lwork,
2002 integer *info);
2003
2004/* Subroutine */ int dormhr_(char *side, char *trans, integer *m, integer *n,
2005 integer *ilo, integer *ihi, doublereal *a, integer *lda, doublereal *
2006 tau, doublereal *c__, integer *ldc, doublereal *work, integer *lwork,
2007 integer *info);
2008
2009/* Subroutine */ int dorml2_(char *side, char *trans, integer *m, integer *n,
2010 integer *k, doublereal *a, integer *lda, doublereal *tau, doublereal *
2011 c__, integer *ldc, doublereal *work, integer *info);
2012
2013/* Subroutine */ int dormlq_(char *side, char *trans, integer *m, integer *n,
2014 integer *k, doublereal *a, integer *lda, doublereal *tau, doublereal *
2015 c__, integer *ldc, doublereal *work, integer *lwork, integer *info);
2016
2017/* Subroutine */ int dormql_(char *side, char *trans, integer *m, integer *n,
2018 integer *k, doublereal *a, integer *lda, doublereal *tau, doublereal *
2019 c__, integer *ldc, doublereal *work, integer *lwork, integer *info);
2020
2021/* Subroutine */ int dormqr_(char *side, char *trans, integer *m, integer *n,
2022 integer *k, doublereal *a, integer *lda, doublereal *tau, doublereal *
2023 c__, integer *ldc, doublereal *work, integer *lwork, integer *info);
2024
2025/* Subroutine */ int dormr2_(char *side, char *trans, integer *m, integer *n,
2026 integer *k, doublereal *a, integer *lda, doublereal *tau, doublereal *
2027 c__, integer *ldc, doublereal *work, integer *info);
2028
2029/* Subroutine */ int dormr3_(char *side, char *trans, integer *m, integer *n,
2030 integer *k, integer *l, doublereal *a, integer *lda, doublereal *tau,
2031 doublereal *c__, integer *ldc, doublereal *work, integer *info);
2032
2033/* Subroutine */ int dormrq_(char *side, char *trans, integer *m, integer *n,
2034 integer *k, doublereal *a, integer *lda, doublereal *tau, doublereal *
2035 c__, integer *ldc, doublereal *work, integer *lwork, integer *info);
2036
2037/* Subroutine */ int dormrz_(char *side, char *trans, integer *m, integer *n,
2038 integer *k, integer *l, doublereal *a, integer *lda, doublereal *tau,
2039 doublereal *c__, integer *ldc, doublereal *work, integer *lwork,
2040 integer *info);
2041
2042/* Subroutine */ int dormtr_(char *side, char *uplo, char *trans, integer *m,
2043 integer *n, doublereal *a, integer *lda, doublereal *tau, doublereal *
2044 c__, integer *ldc, doublereal *work, integer *lwork, integer *info);
2045
2046/* Subroutine */ int dpbcon_(char *uplo, integer *n, integer *kd, doublereal *
2047 ab, integer *ldab, doublereal *anorm, doublereal *rcond, doublereal *
2048 work, integer *iwork, integer *info);
2049
2050/* Subroutine */ int dpbequ_(char *uplo, integer *n, integer *kd, doublereal *
2051 ab, integer *ldab, doublereal *s, doublereal *scond, doublereal *amax,
2052 integer *info);
2053
2054/* Subroutine */ int dpbrfs_(char *uplo, integer *n, integer *kd, integer *
2055 nrhs, doublereal *ab, integer *ldab, doublereal *afb, integer *ldafb,
2056 doublereal *b, integer *ldb, doublereal *x, integer *ldx, doublereal *
2057 ferr, doublereal *berr, doublereal *work, integer *iwork, integer *
2058 info);
2059
2060/* Subroutine */ int dpbstf_(char *uplo, integer *n, integer *kd, doublereal *
2061 ab, integer *ldab, integer *info);
2062
2063/* Subroutine */ int dpbsv_(char *uplo, integer *n, integer *kd, integer *
2064 nrhs, doublereal *ab, integer *ldab, doublereal *b, integer *ldb,
2065 integer *info);
2066
2067/* Subroutine */ int dpbsvx_(char *fact, char *uplo, integer *n, integer *kd,
2068 integer *nrhs, doublereal *ab, integer *ldab, doublereal *afb,
2069 integer *ldafb, char *equed, doublereal *s, doublereal *b, integer *
2070 ldb, doublereal *x, integer *ldx, doublereal *rcond, doublereal *ferr,
2071 doublereal *berr, doublereal *work, integer *iwork, integer *info);
2072
2073/* Subroutine */ int dpbtf2_(char *uplo, integer *n, integer *kd, doublereal *
2074 ab, integer *ldab, integer *info);
2075
2076/* Subroutine */ int dpbtrf_(char *uplo, integer *n, integer *kd, doublereal *
2077 ab, integer *ldab, integer *info);
2078
2079/* Subroutine */ int dpbtrs_(char *uplo, integer *n, integer *kd, integer *
2080 nrhs, doublereal *ab, integer *ldab, doublereal *b, integer *ldb,
2081 integer *info);
2082
2083/* Subroutine */ int dpocon_(char *uplo, integer *n, doublereal *a, integer *
2084 lda, doublereal *anorm, doublereal *rcond, doublereal *work, integer *
2085 iwork, integer *info);
2086
2087/* Subroutine */ int dpoequ_(integer *n, doublereal *a, integer *lda,
2088 doublereal *s, doublereal *scond, doublereal *amax, integer *info);
2089
2090/* Subroutine */ int dporfs_(char *uplo, integer *n, integer *nrhs,
2091 doublereal *a, integer *lda, doublereal *af, integer *ldaf,
2092 doublereal *b, integer *ldb, doublereal *x, integer *ldx, doublereal *
2093 ferr, doublereal *berr, doublereal *work, integer *iwork, integer *
2094 info);
2095
2096/* Subroutine */ int dposv_(char *uplo, integer *n, integer *nrhs, doublereal
2097 *a, integer *lda, doublereal *b, integer *ldb, integer *info);
2098
2099/* Subroutine */ int dposvx_(char *fact, char *uplo, integer *n, integer *
2100 nrhs, doublereal *a, integer *lda, doublereal *af, integer *ldaf,
2101 char *equed, doublereal *s, doublereal *b, integer *ldb, doublereal *
2102 x, integer *ldx, doublereal *rcond, doublereal *ferr, doublereal *
2103 berr, doublereal *work, integer *iwork, integer *info);
2104
2105/* Subroutine */ int dpotf2_(char *uplo, integer *n, doublereal *a, integer *
2106 lda, integer *info);
2107
2108/* Subroutine */ int dpotrf_(char *uplo, integer *n, doublereal *a, integer *
2109 lda, integer *info);
2110
2111/* Subroutine */ int dpotri_(char *uplo, integer *n, doublereal *a, integer *
2112 lda, integer *info);
2113
2114/* Subroutine */ int dpotrs_(char *uplo, integer *n, integer *nrhs,
2115 doublereal *a, integer *lda, doublereal *b, integer *ldb, integer *
2116 info);
2117
2118/* Subroutine */ int dppcon_(char *uplo, integer *n, doublereal *ap,
2119 doublereal *anorm, doublereal *rcond, doublereal *work, integer *
2120 iwork, integer *info);
2121
2122/* Subroutine */ int dppequ_(char *uplo, integer *n, doublereal *ap,
2123 doublereal *s, doublereal *scond, doublereal *amax, integer *info);
2124
2125/* Subroutine */ int dpprfs_(char *uplo, integer *n, integer *nrhs,
2126 doublereal *ap, doublereal *afp, doublereal *b, integer *ldb,
2127 doublereal *x, integer *ldx, doublereal *ferr, doublereal *berr,
2128 doublereal *work, integer *iwork, integer *info);
2129
2130/* Subroutine */ int dppsv_(char *uplo, integer *n, integer *nrhs, doublereal
2131 *ap, doublereal *b, integer *ldb, integer *info);
2132
2133/* Subroutine */ int dppsvx_(char *fact, char *uplo, integer *n, integer *
2134 nrhs, doublereal *ap, doublereal *afp, char *equed, doublereal *s,
2135 doublereal *b, integer *ldb, doublereal *x, integer *ldx, doublereal *
2136 rcond, doublereal *ferr, doublereal *berr, doublereal *work, integer *
2137 iwork, integer *info);
2138
2139/* Subroutine */ int dpptrf_(char *uplo, integer *n, doublereal *ap, integer *
2140 info);
2141
2142/* Subroutine */ int dpptri_(char *uplo, integer *n, doublereal *ap, integer *
2143 info);
2144
2145/* Subroutine */ int dpptrs_(char *uplo, integer *n, integer *nrhs,
2146 doublereal *ap, doublereal *b, integer *ldb, integer *info);
2147
2148/* Subroutine */ int dptcon_(integer *n, doublereal *d__, doublereal *e,
2149 doublereal *anorm, doublereal *rcond, doublereal *work, integer *info);
2150
2151/* Subroutine */ int dpteqr_(char *compz, integer *n, doublereal *d__,
2152 doublereal *e, doublereal *z__, integer *ldz, doublereal *work,
2153 integer *info);
2154
2155/* Subroutine */ int dptrfs_(integer *n, integer *nrhs, doublereal *d__,
2156 doublereal *e, doublereal *df, doublereal *ef, doublereal *b, integer
2157 *ldb, doublereal *x, integer *ldx, doublereal *ferr, doublereal *berr,
2158 doublereal *work, integer *info);
2159
2160/* Subroutine */ int dptsv_(integer *n, integer *nrhs, doublereal *d__,
2161 doublereal *e, doublereal *b, integer *ldb, integer *info);
2162
2163/* Subroutine */ int dptsvx_(char *fact, integer *n, integer *nrhs,
2164 doublereal *d__, doublereal *e, doublereal *df, doublereal *ef,
2165 doublereal *b, integer *ldb, doublereal *x, integer *ldx, doublereal *
2166 rcond, doublereal *ferr, doublereal *berr, doublereal *work, integer *
2167 info);
2168
2169/* Subroutine */ int dpttrf_(integer *n, doublereal *d__, doublereal *e,
2170 integer *info);
2171
2172/* Subroutine */ int dpttrs_(integer *n, integer *nrhs, doublereal *d__,
2173 doublereal *e, doublereal *b, integer *ldb, integer *info);
2174
2175/* Subroutine */ int dptts2_(integer *n, integer *nrhs, doublereal *d__,
2176 doublereal *e, doublereal *b, integer *ldb);
2177
2178/* Subroutine */ int drscl_(integer *n, doublereal *sa, doublereal *sx,
2179 integer *incx);
2180
2181/* Subroutine */ int dsbev_(char *jobz, char *uplo, integer *n, integer *kd,
2182 doublereal *ab, integer *ldab, doublereal *w, doublereal *z__,
2183 integer *ldz, doublereal *work, integer *info);
2184
2185/* Subroutine */ int dsbevd_(char *jobz, char *uplo, integer *n, integer *kd,
2186 doublereal *ab, integer *ldab, doublereal *w, doublereal *z__,
2187 integer *ldz, doublereal *work, integer *lwork, integer *iwork,
2188 integer *liwork, integer *info);
2189
2190/* Subroutine */ int dsbevx_(char *jobz, char *range, char *uplo, integer *n,
2191 integer *kd, doublereal *ab, integer *ldab, doublereal *q, integer *
2192 ldq, doublereal *vl, doublereal *vu, integer *il, integer *iu,
2193 doublereal *abstol, integer *m, doublereal *w, doublereal *z__,
2194 integer *ldz, doublereal *work, integer *iwork, integer *ifail,
2195 integer *info);
2196
2197/* Subroutine */ int dsbgst_(char *vect, char *uplo, integer *n, integer *ka,
2198 integer *kb, doublereal *ab, integer *ldab, doublereal *bb, integer *
2199 ldbb, doublereal *x, integer *ldx, doublereal *work, integer *info);
2200
2201/* Subroutine */ int dsbgv_(char *jobz, char *uplo, integer *n, integer *ka,
2202 integer *kb, doublereal *ab, integer *ldab, doublereal *bb, integer *
2203 ldbb, doublereal *w, doublereal *z__, integer *ldz, doublereal *work,
2204 integer *info);
2205
2206/* Subroutine */ int dsbgvd_(char *jobz, char *uplo, integer *n, integer *ka,
2207 integer *kb, doublereal *ab, integer *ldab, doublereal *bb, integer *
2208 ldbb, doublereal *w, doublereal *z__, integer *ldz, doublereal *work,
2209 integer *lwork, integer *iwork, integer *liwork, integer *info);
2210
2211/* Subroutine */ int dsbgvx_(char *jobz, char *range, char *uplo, integer *n,
2212 integer *ka, integer *kb, doublereal *ab, integer *ldab, doublereal *
2213 bb, integer *ldbb, doublereal *q, integer *ldq, doublereal *vl,
2214 doublereal *vu, integer *il, integer *iu, doublereal *abstol, integer
2215 *m, doublereal *w, doublereal *z__, integer *ldz, doublereal *work,
2216 integer *iwork, integer *ifail, integer *info);
2217
2218/* Subroutine */ int dsbtrd_(char *vect, char *uplo, integer *n, integer *kd,
2219 doublereal *ab, integer *ldab, doublereal *d__, doublereal *e,
2220 doublereal *q, integer *ldq, doublereal *work, integer *info);
2221
2222/* Subroutine */ int dspcon_(char *uplo, integer *n, doublereal *ap, integer *
2223 ipiv, doublereal *anorm, doublereal *rcond, doublereal *work, integer
2224 *iwork, integer *info);
2225
2226/* Subroutine */ int dspev_(char *jobz, char *uplo, integer *n, doublereal *
2227 ap, doublereal *w, doublereal *z__, integer *ldz, doublereal *work,
2228 integer *info);
2229
2230/* Subroutine */ int dspevd_(char *jobz, char *uplo, integer *n, doublereal *
2231 ap, doublereal *w, doublereal *z__, integer *ldz, doublereal *work,
2232 integer *lwork, integer *iwork, integer *liwork, integer *info);
2233
2234/* Subroutine */ int dspevx_(char *jobz, char *range, char *uplo, integer *n,
2235 doublereal *ap, doublereal *vl, doublereal *vu, integer *il, integer *
2236 iu, doublereal *abstol, integer *m, doublereal *w, doublereal *z__,
2237 integer *ldz, doublereal *work, integer *iwork, integer *ifail,
2238 integer *info);
2239
2240/* Subroutine */ int dspgst_(integer *itype, char *uplo, integer *n,
2241 doublereal *ap, doublereal *bp, integer *info);
2242
2243/* Subroutine */ int dspgv_(integer *itype, char *jobz, char *uplo, integer *
2244 n, doublereal *ap, doublereal *bp, doublereal *w, doublereal *z__,
2245 integer *ldz, doublereal *work, integer *info);
2246
2247/* Subroutine */ int dspgvd_(integer *itype, char *jobz, char *uplo, integer *
2248 n, doublereal *ap, doublereal *bp, doublereal *w, doublereal *z__,
2249 integer *ldz, doublereal *work, integer *lwork, integer *iwork,
2250 integer *liwork, integer *info);
2251
2252/* Subroutine */ int dspgvx_(integer *itype, char *jobz, char *range, char *
2253 uplo, integer *n, doublereal *ap, doublereal *bp, doublereal *vl,
2254 doublereal *vu, integer *il, integer *iu, doublereal *abstol, integer
2255 *m, doublereal *w, doublereal *z__, integer *ldz, doublereal *work,
2256 integer *iwork, integer *ifail, integer *info);
2257
2258/* Subroutine */ int dsprfs_(char *uplo, integer *n, integer *nrhs,
2259 doublereal *ap, doublereal *afp, integer *ipiv, doublereal *b,
2260 integer *ldb, doublereal *x, integer *ldx, doublereal *ferr,
2261 doublereal *berr, doublereal *work, integer *iwork, integer *info);
2262
2263/* Subroutine */ int dspsv_(char *uplo, integer *n, integer *nrhs, doublereal
2264 *ap, integer *ipiv, doublereal *b, integer *ldb, integer *info);
2265
2266/* Subroutine */ int dspsvx_(char *fact, char *uplo, integer *n, integer *
2267 nrhs, doublereal *ap, doublereal *afp, integer *ipiv, doublereal *b,
2268 integer *ldb, doublereal *x, integer *ldx, doublereal *rcond,
2269 doublereal *ferr, doublereal *berr, doublereal *work, integer *iwork,
2270 integer *info);
2271
2272/* Subroutine */ int dsptrd_(char *uplo, integer *n, doublereal *ap,
2273 doublereal *d__, doublereal *e, doublereal *tau, integer *info);
2274
2275/* Subroutine */ int dsptrf_(char *uplo, integer *n, doublereal *ap, integer *
2276 ipiv, integer *info);
2277
2278/* Subroutine */ int dsptri_(char *uplo, integer *n, doublereal *ap, integer *
2279 ipiv, doublereal *work, integer *info);
2280
2281/* Subroutine */ int dsptrs_(char *uplo, integer *n, integer *nrhs,
2282 doublereal *ap, integer *ipiv, doublereal *b, integer *ldb, integer *
2283 info);
2284
2285/* Subroutine */ int dstebz_(char *range, char *order, integer *n, doublereal
2286 *vl, doublereal *vu, integer *il, integer *iu, doublereal *abstol,
2287 doublereal *d__, doublereal *e, integer *m, integer *nsplit,
2288 doublereal *w, integer *iblock, integer *isplit, doublereal *work,
2289 integer *iwork, integer *info);
2290
2291/* Subroutine */ int dstedc_(char *compz, integer *n, doublereal *d__,
2292 doublereal *e, doublereal *z__, integer *ldz, doublereal *work,
2293 integer *lwork, integer *iwork, integer *liwork, integer *info);
2294
2295/* Subroutine */ int dstegr_(char *jobz, char *range, integer *n, doublereal *
2296 d__, doublereal *e, doublereal *vl, doublereal *vu, integer *il,
2297 integer *iu, doublereal *abstol, integer *m, doublereal *w,
2298 doublereal *z__, integer *ldz, integer *isuppz, doublereal *work,
2299 integer *lwork, integer *iwork, integer *liwork, integer *info);
2300
2301/* Subroutine */ int dstein_(integer *n, doublereal *d__, doublereal *e,
2302 integer *m, doublereal *w, integer *iblock, integer *isplit,
2303 doublereal *z__, integer *ldz, doublereal *work, integer *iwork,
2304 integer *ifail, integer *info);
2305
2306/* Subroutine */ int dsteqr_(char *compz, integer *n, doublereal *d__,
2307 doublereal *e, doublereal *z__, integer *ldz, doublereal *work,
2308 integer *info);
2309
2310/* Subroutine */ int dsterf_(integer *n, doublereal *d__, doublereal *e,
2311 integer *info);
2312
2313/* Subroutine */ int dstev_(char *jobz, integer *n, doublereal *d__,
2314 doublereal *e, doublereal *z__, integer *ldz, doublereal *work,
2315 integer *info);
2316
2317/* Subroutine */ int dstevd_(char *jobz, integer *n, doublereal *d__,
2318 doublereal *e, doublereal *z__, integer *ldz, doublereal *work,
2319 integer *lwork, integer *iwork, integer *liwork, integer *info);
2320
2321/* Subroutine */ int dstevr_(char *jobz, char *range, integer *n, doublereal *
2322 d__, doublereal *e, doublereal *vl, doublereal *vu, integer *il,
2323 integer *iu, doublereal *abstol, integer *m, doublereal *w,
2324 doublereal *z__, integer *ldz, integer *isuppz, doublereal *work,
2325 integer *lwork, integer *iwork, integer *liwork, integer *info);
2326
2327/* Subroutine */ int dstevx_(char *jobz, char *range, integer *n, doublereal *
2328 d__, doublereal *e, doublereal *vl, doublereal *vu, integer *il,
2329 integer *iu, doublereal *abstol, integer *m, doublereal *w,
2330 doublereal *z__, integer *ldz, doublereal *work, integer *iwork,
2331 integer *ifail, integer *info);
2332
2333/* Subroutine */ int dsycon_(char *uplo, integer *n, doublereal *a, integer *
2334 lda, integer *ipiv, doublereal *anorm, doublereal *rcond, doublereal *
2335 work, integer *iwork, integer *info);
2336
2337/* Subroutine */ int dsyev_(char *jobz, char *uplo, integer *n, doublereal *a,
2338 integer *lda, doublereal *w, doublereal *work, integer *lwork,
2339 integer *info);
2340
2341/* Subroutine */ int dsyevd_(char *jobz, char *uplo, integer *n, doublereal *
2342 a, integer *lda, doublereal *w, doublereal *work, integer *lwork,
2343 integer *iwork, integer *liwork, integer *info);
2344
2345/* Subroutine */ int dsyevr_(char *jobz, char *range, char *uplo, integer *n,
2346 doublereal *a, integer *lda, doublereal *vl, doublereal *vu, integer *
2347 il, integer *iu, doublereal *abstol, integer *m, doublereal *w,
2348 doublereal *z__, integer *ldz, integer *isuppz, doublereal *work,
2349 integer *lwork, integer *iwork, integer *liwork, integer *info);
2350
2351/* Subroutine */ int dsyevx_(char *jobz, char *range, char *uplo, integer *n,
2352 doublereal *a, integer *lda, doublereal *vl, doublereal *vu, integer *
2353 il, integer *iu, doublereal *abstol, integer *m, doublereal *w,
2354 doublereal *z__, integer *ldz, doublereal *work, integer *lwork,
2355 integer *iwork, integer *ifail, integer *info);
2356
2357/* Subroutine */ int dsygs2_(integer *itype, char *uplo, integer *n,
2358 doublereal *a, integer *lda, doublereal *b, integer *ldb, integer *
2359 info);
2360
2361/* Subroutine */ int dsygst_(integer *itype, char *uplo, integer *n,
2362 doublereal *a, integer *lda, doublereal *b, integer *ldb, integer *
2363 info);
2364
2365/* Subroutine */ int dsygv_(integer *itype, char *jobz, char *uplo, integer *
2366 n, doublereal *a, integer *lda, doublereal *b, integer *ldb,
2367 doublereal *w, doublereal *work, integer *lwork, integer *info);
2368
2369/* Subroutine */ int dsygvd_(integer *itype, char *jobz, char *uplo, integer *
2370 n, doublereal *a, integer *lda, doublereal *b, integer *ldb,
2371 doublereal *w, doublereal *work, integer *lwork, integer *iwork,
2372 integer *liwork, integer *info);
2373
2374/* Subroutine */ int dsygvx_(integer *itype, char *jobz, char *range, char *
2375 uplo, integer *n, doublereal *a, integer *lda, doublereal *b, integer
2376 *ldb, doublereal *vl, doublereal *vu, integer *il, integer *iu,
2377 doublereal *abstol, integer *m, doublereal *w, doublereal *z__,
2378 integer *ldz, doublereal *work, integer *lwork, integer *iwork,
2379 integer *ifail, integer *info);
2380
2381/* Subroutine */ int dsyrfs_(char *uplo, integer *n, integer *nrhs,
2382 doublereal *a, integer *lda, doublereal *af, integer *ldaf, integer *
2383 ipiv, doublereal *b, integer *ldb, doublereal *x, integer *ldx,
2384 doublereal *ferr, doublereal *berr, doublereal *work, integer *iwork,
2385 integer *info);
2386
2387/* Subroutine */ int dsysv_(char *uplo, integer *n, integer *nrhs, doublereal
2388 *a, integer *lda, integer *ipiv, doublereal *b, integer *ldb,
2389 doublereal *work, integer *lwork, integer *info);
2390
2391/* Subroutine */ int dsysvx_(char *fact, char *uplo, integer *n, integer *
2392 nrhs, doublereal *a, integer *lda, doublereal *af, integer *ldaf,
2393 integer *ipiv, doublereal *b, integer *ldb, doublereal *x, integer *
2394 ldx, doublereal *rcond, doublereal *ferr, doublereal *berr,
2395 doublereal *work, integer *lwork, integer *iwork, integer *info);
2396
2397/* Subroutine */ int dsytd2_(char *uplo, integer *n, doublereal *a, integer *
2398 lda, doublereal *d__, doublereal *e, doublereal *tau, integer *info);
2399
2400/* Subroutine */ int dsytf2_(char *uplo, integer *n, doublereal *a, integer *
2401 lda, integer *ipiv, integer *info);
2402
2403/* Subroutine */ int dsytrd_(char *uplo, integer *n, doublereal *a, integer *
2404 lda, doublereal *d__, doublereal *e, doublereal *tau, doublereal *
2405 work, integer *lwork, integer *info);
2406
2407/* Subroutine */ int dsytrf_(char *uplo, integer *n, doublereal *a, integer *
2408 lda, integer *ipiv, doublereal *work, integer *lwork, integer *info);
2409
2410/* Subroutine */ int dsytri_(char *uplo, integer *n, doublereal *a, integer *
2411 lda, integer *ipiv, doublereal *work, integer *info);
2412
2413/* Subroutine */ int dsytrs_(char *uplo, integer *n, integer *nrhs,
2414 doublereal *a, integer *lda, integer *ipiv, doublereal *b, integer *
2415 ldb, integer *info);
2416
2417/* Subroutine */ int dtbcon_(char *norm, char *uplo, char *diag, integer *n,
2418 integer *kd, doublereal *ab, integer *ldab, doublereal *rcond,
2419 doublereal *work, integer *iwork, integer *info);
2420
2421/* Subroutine */ int dtbrfs_(char *uplo, char *trans, char *diag, integer *n,
2422 integer *kd, integer *nrhs, doublereal *ab, integer *ldab, doublereal
2423 *b, integer *ldb, doublereal *x, integer *ldx, doublereal *ferr,
2424 doublereal *berr, doublereal *work, integer *iwork, integer *info);
2425
2426/* Subroutine */ int dtbtrs_(char *uplo, char *trans, char *diag, integer *n,
2427 integer *kd, integer *nrhs, doublereal *ab, integer *ldab, doublereal
2428 *b, integer *ldb, integer *info);
2429
2430/* Subroutine */ int dtgevc_(char *side, char *howmny, logical *select,
2431 integer *n, doublereal *a, integer *lda, doublereal *b, integer *ldb,
2432 doublereal *vl, integer *ldvl, doublereal *vr, integer *ldvr, integer
2433 *mm, integer *m, doublereal *work, integer *info);
2434
2435/* Subroutine */ int dtgex2_(logical *wantq, logical *wantz, integer *n,
2436 doublereal *a, integer *lda, doublereal *b, integer *ldb, doublereal *
2437 q, integer *ldq, doublereal *z__, integer *ldz, integer *j1, integer *
2438 n1, integer *n2, doublereal *work, integer *lwork, integer *info);
2439
2440/* Subroutine */ int dtgexc_(logical *wantq, logical *wantz, integer *n,
2441 doublereal *a, integer *lda, doublereal *b, integer *ldb, doublereal *
2442 q, integer *ldq, doublereal *z__, integer *ldz, integer *ifst,
2443 integer *ilst, doublereal *work, integer *lwork, integer *info);
2444
2445/* Subroutine */ int dtgsen_(integer *ijob, logical *wantq, logical *wantz,
2446 logical *select, integer *n, doublereal *a, integer *lda, doublereal *
2447 b, integer *ldb, doublereal *alphar, doublereal *alphai, doublereal *
2448 beta, doublereal *q, integer *ldq, doublereal *z__, integer *ldz,
2449 integer *m, doublereal *pl, doublereal *pr, doublereal *dif,
2450 doublereal *work, integer *lwork, integer *iwork, integer *liwork,
2451 integer *info);
2452
2453/* Subroutine */ int dtgsja_(char *jobu, char *jobv, char *jobq, integer *m,
2454 integer *p, integer *n, integer *k, integer *l, doublereal *a,
2455 integer *lda, doublereal *b, integer *ldb, doublereal *tola,
2456 doublereal *tolb, doublereal *alpha, doublereal *beta, doublereal *u,
2457 integer *ldu, doublereal *v, integer *ldv, doublereal *q, integer *
2458 ldq, doublereal *work, integer *ncycle, integer *info);
2459
2460/* Subroutine */ int dtgsna_(char *job, char *howmny, logical *select,
2461 integer *n, doublereal *a, integer *lda, doublereal *b, integer *ldb,
2462 doublereal *vl, integer *ldvl, doublereal *vr, integer *ldvr,
2463 doublereal *s, doublereal *dif, integer *mm, integer *m, doublereal *
2464 work, integer *lwork, integer *iwork, integer *info);
2465
2466/* Subroutine */ int dtgsy2_(char *trans, integer *ijob, integer *m, integer *
2467 n, doublereal *a, integer *lda, doublereal *b, integer *ldb,
2468 doublereal *c__, integer *ldc, doublereal *d__, integer *ldd,
2469 doublereal *e, integer *lde, doublereal *f, integer *ldf, doublereal *
2470 scale, doublereal *rdsum, doublereal *rdscal, integer *iwork, integer
2471 *pq, integer *info);
2472
2473/* Subroutine */ int dtgsyl_(char *trans, integer *ijob, integer *m, integer *
2474 n, doublereal *a, integer *lda, doublereal *b, integer *ldb,
2475 doublereal *c__, integer *ldc, doublereal *d__, integer *ldd,
2476 doublereal *e, integer *lde, doublereal *f, integer *ldf, doublereal *
2477 scale, doublereal *dif, doublereal *work, integer *lwork, integer *
2478 iwork, integer *info);
2479
2480/* Subroutine */ int dtpcon_(char *norm, char *uplo, char *diag, integer *n,
2481 doublereal *ap, doublereal *rcond, doublereal *work, integer *iwork,
2482 integer *info);
2483
2484/* Subroutine */ int dtprfs_(char *uplo, char *trans, char *diag, integer *n,
2485 integer *nrhs, doublereal *ap, doublereal *b, integer *ldb,
2486 doublereal *x, integer *ldx, doublereal *ferr, doublereal *berr,
2487 doublereal *work, integer *iwork, integer *info);
2488
2489/* Subroutine */ int dtptri_(char *uplo, char *diag, integer *n, doublereal *
2490 ap, integer *info);
2491
2492/* Subroutine */ int dtptrs_(char *uplo, char *trans, char *diag, integer *n,
2493 integer *nrhs, doublereal *ap, doublereal *b, integer *ldb, integer *
2494 info);
2495
2496/* Subroutine */ int dtrcon_(char *norm, char *uplo, char *diag, integer *n,
2497 doublereal *a, integer *lda, doublereal *rcond, doublereal *work,
2498 integer *iwork, integer *info);
2499
2500/* Subroutine */ int dtrevc_(char *side, char *howmny, logical *select,
2501 integer *n, doublereal *t, integer *ldt, doublereal *vl, integer *
2502 ldvl, doublereal *vr, integer *ldvr, integer *mm, integer *m,
2503 doublereal *work, integer *info);
2504
2505/* Subroutine */ int dtrexc_(char *compq, integer *n, doublereal *t, integer *
2506 ldt, doublereal *q, integer *ldq, integer *ifst, integer *ilst,
2507 doublereal *work, integer *info);
2508
2509/* Subroutine */ int dtrrfs_(char *uplo, char *trans, char *diag, integer *n,
2510 integer *nrhs, doublereal *a, integer *lda, doublereal *b, integer *
2511 ldb, doublereal *x, integer *ldx, doublereal *ferr, doublereal *berr,
2512 doublereal *work, integer *iwork, integer *info);
2513
2514/* Subroutine */ int dtrsen_(char *job, char *compq, logical *select, integer
2515 *n, doublereal *t, integer *ldt, doublereal *q, integer *ldq,
2516 doublereal *wr, doublereal *wi, integer *m, doublereal *s, doublereal
2517 *sep, doublereal *work, integer *lwork, integer *iwork, integer *
2518 liwork, integer *info);
2519
2520/* Subroutine */ int dtrsna_(char *job, char *howmny, logical *select,
2521 integer *n, doublereal *t, integer *ldt, doublereal *vl, integer *
2522 ldvl, doublereal *vr, integer *ldvr, doublereal *s, doublereal *sep,
2523 integer *mm, integer *m, doublereal *work, integer *ldwork, integer *
2524 iwork, integer *info);
2525
2526/* Subroutine */ int dtrsyl_(char *trana, char *tranb, integer *isgn, integer
2527 *m, integer *n, doublereal *a, integer *lda, doublereal *b, integer *
2528 ldb, doublereal *c__, integer *ldc, doublereal *scale, integer *info);
2529
2530/* Subroutine */ int dtrti2_(char *uplo, char *diag, integer *n, doublereal *
2531 a, integer *lda, integer *info);
2532
2533/* Subroutine */ int dtrtri_(char *uplo, char *diag, integer *n, doublereal *
2534 a, integer *lda, integer *info);
2535
2536/* Subroutine */ int dtrtrs_(char *uplo, char *trans, char *diag, integer *n,
2537 integer *nrhs, doublereal *a, integer *lda, doublereal *b, integer *
2538 ldb, integer *info);
2539
2540/* Subroutine */ int dtzrqf_(integer *m, integer *n, doublereal *a, integer *
2541 lda, doublereal *tau, integer *info);
2542
2543/* Subroutine */ int dtzrzf_(integer *m, integer *n, doublereal *a, integer *
2544 lda, doublereal *tau, doublereal *work, integer *lwork, integer *info);
2545
2546integer icmax1_(integer *n, complex *cx, integer *incx);
2547
2548integer ieeeck_(integer *ispec, real *zero, real *one);
2549
2550integer ilaenv_(integer *ispec, char *name__, char *opts, integer *n1,
2551 integer *n2, integer *n3, integer *n4, ftnlen name_len, ftnlen
2552 opts_len);
2553
2554integer izmax1_(integer *n, doublecomplex *cx, integer *incx);
2555
2556/* Subroutine */ int sbdsdc_(char *uplo, char *compq, integer *n, real *d__,
2557 real *e, real *u, integer *ldu, real *vt, integer *ldvt, real *q,
2558 integer *iq, real *work, integer *iwork, integer *info);
2559
2560/* Subroutine */ int sbdsqr_(char *uplo, integer *n, integer *ncvt, integer *
2561 nru, integer *ncc, real *d__, real *e, real *vt, integer *ldvt, real *
2562 u, integer *ldu, real *c__, integer *ldc, real *work, integer *info);
2563
2564/* Subroutine */ int sdisna_(char *job, integer *m, integer *n, real *d__,
2565 real *sep, integer *info);
2566
2567/* Subroutine */ int sgbbrd_(char *vect, integer *m, integer *n, integer *ncc,
2568 integer *kl, integer *ku, real *ab, integer *ldab, real *d__, real *
2569 e, real *q, integer *ldq, real *pt, integer *ldpt, real *c__, integer
2570 *ldc, real *work, integer *info);
2571
2572/* Subroutine */ int sgbcon_(char *norm, integer *n, integer *kl, integer *ku,
2573 real *ab, integer *ldab, integer *ipiv, real *anorm, real *rcond,
2574 real *work, integer *iwork, integer *info);
2575
2576/* Subroutine */ int sgbequ_(integer *m, integer *n, integer *kl, integer *ku,
2577 real *ab, integer *ldab, real *r__, real *c__, real *rowcnd, real *
2578 colcnd, real *amax, integer *info);
2579
2580/* Subroutine */ int sgbrfs_(char *trans, integer *n, integer *kl, integer *
2581 ku, integer *nrhs, real *ab, integer *ldab, real *afb, integer *ldafb,
2582 integer *ipiv, real *b, integer *ldb, real *x, integer *ldx, real *
2583 ferr, real *berr, real *work, integer *iwork, integer *info);
2584
2585/* Subroutine */ int sgbsv_(integer *n, integer *kl, integer *ku, integer *
2586 nrhs, real *ab, integer *ldab, integer *ipiv, real *b, integer *ldb,
2587 integer *info);
2588
2589/* Subroutine */ int sgbsvx_(char *fact, char *trans, integer *n, integer *kl,
2590 integer *ku, integer *nrhs, real *ab, integer *ldab, real *afb,
2591 integer *ldafb, integer *ipiv, char *equed, real *r__, real *c__,
2592 real *b, integer *ldb, real *x, integer *ldx, real *rcond, real *ferr,
2593 real *berr, real *work, integer *iwork, integer *info);
2594
2595/* Subroutine */ int sgbtf2_(integer *m, integer *n, integer *kl, integer *ku,
2596 real *ab, integer *ldab, integer *ipiv, integer *info);
2597
2598/* Subroutine */ int sgbtrf_(integer *m, integer *n, integer *kl, integer *ku,
2599 real *ab, integer *ldab, integer *ipiv, integer *info);
2600
2601/* Subroutine */ int sgbtrs_(char *trans, integer *n, integer *kl, integer *
2602 ku, integer *nrhs, real *ab, integer *ldab, integer *ipiv, real *b,
2603 integer *ldb, integer *info);
2604
2605/* Subroutine */ int sgebak_(char *job, char *side, integer *n, integer *ilo,
2606 integer *ihi, real *scale, integer *m, real *v, integer *ldv, integer
2607 *info);
2608
2609/* Subroutine */ int sgebal_(char *job, integer *n, real *a, integer *lda,
2610 integer *ilo, integer *ihi, real *scale, integer *info);
2611
2612/* Subroutine */ int sgebd2_(integer *m, integer *n, real *a, integer *lda,
2613 real *d__, real *e, real *tauq, real *taup, real *work, integer *info);
2614
2615/* Subroutine */ int sgebrd_(integer *m, integer *n, real *a, integer *lda,
2616 real *d__, real *e, real *tauq, real *taup, real *work, integer *
2617 lwork, integer *info);
2618
2619/* Subroutine */ int sgecon_(char *norm, integer *n, real *a, integer *lda,
2620 real *anorm, real *rcond, real *work, integer *iwork, integer *info);
2621
2622/* Subroutine */ int sgeequ_(integer *m, integer *n, real *a, integer *lda,
2623 real *r__, real *c__, real *rowcnd, real *colcnd, real *amax, integer
2624 *info);
2625
2626/* Subroutine */ int sgees_(char *jobvs, char *sort, L_fp select, integer *n,
2627 real *a, integer *lda, integer *sdim, real *wr, real *wi, real *vs,
2628 integer *ldvs, real *work, integer *lwork, logical *bwork, integer *
2629 info);
2630
2631/* Subroutine */ int sgeesx_(char *jobvs, char *sort, L_fp select, char *
2632 sense, integer *n, real *a, integer *lda, integer *sdim, real *wr,
2633 real *wi, real *vs, integer *ldvs, real *rconde, real *rcondv, real *
2634 work, integer *lwork, integer *iwork, integer *liwork, logical *bwork,
2635 integer *info);
2636
2637/* Subroutine */ int sgeev_(char *jobvl, char *jobvr, integer *n, real *a,
2638 integer *lda, real *wr, real *wi, real *vl, integer *ldvl, real *vr,
2639 integer *ldvr, real *work, integer *lwork, integer *info);
2640
2641/* Subroutine */ int sgeevx_(char *balanc, char *jobvl, char *jobvr, char *
2642 sense, integer *n, real *a, integer *lda, real *wr, real *wi, real *
2643 vl, integer *ldvl, real *vr, integer *ldvr, integer *ilo, integer *
2644 ihi, real *scale, real *abnrm, real *rconde, real *rcondv, real *work,
2645 integer *lwork, integer *iwork, integer *info);
2646
2647/* Subroutine */ int sgegs_(char *jobvsl, char *jobvsr, integer *n, real *a,
2648 integer *lda, real *b, integer *ldb, real *alphar, real *alphai, real
2649 *beta, real *vsl, integer *ldvsl, real *vsr, integer *ldvsr, real *
2650 work, integer *lwork, integer *info);
2651
2652/* Subroutine */ int sgegv_(char *jobvl, char *jobvr, integer *n, real *a,
2653 integer *lda, real *b, integer *ldb, real *alphar, real *alphai, real
2654 *beta, real *vl, integer *ldvl, real *vr, integer *ldvr, real *work,
2655 integer *lwork, integer *info);
2656
2657/* Subroutine */ int sgehd2_(integer *n, integer *ilo, integer *ihi, real *a,
2658 integer *lda, real *tau, real *work, integer *info);
2659
2660/* Subroutine */ int sgehrd_(integer *n, integer *ilo, integer *ihi, real *a,
2661 integer *lda, real *tau, real *work, integer *lwork, integer *info);
2662
2663/* Subroutine */ int sgelq2_(integer *m, integer *n, real *a, integer *lda,
2664 real *tau, real *work, integer *info);
2665
2666/* Subroutine */ int sgelqf_(integer *m, integer *n, real *a, integer *lda,
2667 real *tau, real *work, integer *lwork, integer *info);
2668
2669/* Subroutine */ int sgels_(char *trans, integer *m, integer *n, integer *
2670 nrhs, real *a, integer *lda, real *b, integer *ldb, real *work,
2671 integer *lwork, integer *info);
2672
2673/* Subroutine */ int sgelsd_(integer *m, integer *n, integer *nrhs, real *a,
2674 integer *lda, real *b, integer *ldb, real *s, real *rcond, integer *
2675 rank, real *work, integer *lwork, integer *iwork, integer *info);
2676
2677/* Subroutine */ int sgelss_(integer *m, integer *n, integer *nrhs, real *a,
2678 integer *lda, real *b, integer *ldb, real *s, real *rcond, integer *
2679 rank, real *work, integer *lwork, integer *info);
2680
2681/* Subroutine */ int sgelsx_(integer *m, integer *n, integer *nrhs, real *a,
2682 integer *lda, real *b, integer *ldb, integer *jpvt, real *rcond,
2683 integer *rank, real *work, integer *info);
2684
2685/* Subroutine */ int sgelsy_(integer *m, integer *n, integer *nrhs, real *a,
2686 integer *lda, real *b, integer *ldb, integer *jpvt, real *rcond,
2687 integer *rank, real *work, integer *lwork, integer *info);
2688
2689/* Subroutine */ int sgeql2_(integer *m, integer *n, real *a, integer *lda,
2690 real *tau, real *work, integer *info);
2691
2692/* Subroutine */ int sgeqlf_(integer *m, integer *n, real *a, integer *lda,
2693 real *tau, real *work, integer *lwork, integer *info);
2694
2695/* Subroutine */ int sgeqp3_(integer *m, integer *n, real *a, integer *lda,
2696 integer *jpvt, real *tau, real *work, integer *lwork, integer *info);
2697
2698/* Subroutine */ int sgeqpf_(integer *m, integer *n, real *a, integer *lda,
2699 integer *jpvt, real *tau, real *work, integer *info);
2700
2701/* Subroutine */ int sgeqr2_(integer *m, integer *n, real *a, integer *lda,
2702 real *tau, real *work, integer *info);
2703
2704/* Subroutine */ int sgeqrf_(integer *m, integer *n, real *a, integer *lda,
2705 real *tau, real *work, integer *lwork, integer *info);
2706
2707/* Subroutine */ int sgerfs_(char *trans, integer *n, integer *nrhs, real *a,
2708 integer *lda, real *af, integer *ldaf, integer *ipiv, real *b,
2709 integer *ldb, real *x, integer *ldx, real *ferr, real *berr, real *
2710 work, integer *iwork, integer *info);
2711
2712/* Subroutine */ int sgerq2_(integer *m, integer *n, real *a, integer *lda,
2713 real *tau, real *work, integer *info);
2714
2715/* Subroutine */ int sgerqf_(integer *m, integer *n, real *a, integer *lda,
2716 real *tau, real *work, integer *lwork, integer *info);
2717
2718/* Subroutine */ int sgesc2_(integer *n, real *a, integer *lda, real *rhs,
2719 integer *ipiv, integer *jpiv, real *scale);
2720
2721/* Subroutine */ int sgesdd_(char *jobz, integer *m, integer *n, real *a,
2722 integer *lda, real *s, real *u, integer *ldu, real *vt, integer *ldvt,
2723 real *work, integer *lwork, integer *iwork, integer *info);
2724
2725/* Subroutine */ int sgesv_(integer *n, integer *nrhs, real *a, integer *lda,
2726 integer *ipiv, real *b, integer *ldb, integer *info);
2727
2728/* Subroutine */ int sgesvd_(char *jobu, char *jobvt, integer *m, integer *n,
2729 real *a, integer *lda, real *s, real *u, integer *ldu, real *vt,
2730 integer *ldvt, real *work, integer *lwork, integer *info);
2731
2732/* Subroutine */ int sgesvx_(char *fact, char *trans, integer *n, integer *
2733 nrhs, real *a, integer *lda, real *af, integer *ldaf, integer *ipiv,
2734 char *equed, real *r__, real *c__, real *b, integer *ldb, real *x,
2735 integer *ldx, real *rcond, real *ferr, real *berr, real *work,
2736 integer *iwork, integer *info);
2737
2738/* Subroutine */ int sgetc2_(integer *n, real *a, integer *lda, integer *ipiv,
2739 integer *jpiv, integer *info);
2740
2741/* Subroutine */ int sgetf2_(integer *m, integer *n, real *a, integer *lda,
2742 integer *ipiv, integer *info);
2743
2744/* Subroutine */ int sgetrf_(integer *m, integer *n, real *a, integer *lda,
2745 integer *ipiv, integer *info);
2746
2747/* Subroutine */ int sgetri_(integer *n, real *a, integer *lda, integer *ipiv,
2748 real *work, integer *lwork, integer *info);
2749
2750/* Subroutine */ int sgetrs_(char *trans, integer *n, integer *nrhs, real *a,
2751 integer *lda, integer *ipiv, real *b, integer *ldb, integer *info);
2752
2753/* Subroutine */ int sggbak_(char *job, char *side, integer *n, integer *ilo,
2754 integer *ihi, real *lscale, real *rscale, integer *m, real *v,
2755 integer *ldv, integer *info);
2756
2757/* Subroutine */ int sggbal_(char *job, integer *n, real *a, integer *lda,
2758 real *b, integer *ldb, integer *ilo, integer *ihi, real *lscale, real
2759 *rscale, real *work, integer *info);
2760
2761/* Subroutine */ int sgges_(char *jobvsl, char *jobvsr, char *sort, L_fp
2762 selctg, integer *n, real *a, integer *lda, real *b, integer *ldb,
2763 integer *sdim, real *alphar, real *alphai, real *beta, real *vsl,
2764 integer *ldvsl, real *vsr, integer *ldvsr, real *work, integer *lwork,
2765 logical *bwork, integer *info);
2766
2767/* Subroutine */ int sggesx_(char *jobvsl, char *jobvsr, char *sort, L_fp
2768 selctg, char *sense, integer *n, real *a, integer *lda, real *b,
2769 integer *ldb, integer *sdim, real *alphar, real *alphai, real *beta,
2770 real *vsl, integer *ldvsl, real *vsr, integer *ldvsr, real *rconde,
2771 real *rcondv, real *work, integer *lwork, integer *iwork, integer *
2772 liwork, logical *bwork, integer *info);
2773
2774/* Subroutine */ int sggev_(char *jobvl, char *jobvr, integer *n, real *a,
2775 integer *lda, real *b, integer *ldb, real *alphar, real *alphai, real
2776 *beta, real *vl, integer *ldvl, real *vr, integer *ldvr, real *work,
2777 integer *lwork, integer *info);
2778
2779/* Subroutine */ int sggevx_(char *balanc, char *jobvl, char *jobvr, char *
2780 sense, integer *n, real *a, integer *lda, real *b, integer *ldb, real
2781 *alphar, real *alphai, real *beta, real *vl, integer *ldvl, real *vr,
2782 integer *ldvr, integer *ilo, integer *ihi, real *lscale, real *rscale,
2783 real *abnrm, real *bbnrm, real *rconde, real *rcondv, real *work,
2784 integer *lwork, integer *iwork, logical *bwork, integer *info);
2785
2786/* Subroutine */ int sggglm_(integer *n, integer *m, integer *p, real *a,
2787 integer *lda, real *b, integer *ldb, real *d__, real *x, real *y,
2788 real *work, integer *lwork, integer *info);
2789
2790/* Subroutine */ int sgghrd_(char *compq, char *compz, integer *n, integer *
2791 ilo, integer *ihi, real *a, integer *lda, real *b, integer *ldb, real
2792 *q, integer *ldq, real *z__, integer *ldz, integer *info);
2793
2794/* Subroutine */ int sgglse_(integer *m, integer *n, integer *p, real *a,
2795 integer *lda, real *b, integer *ldb, real *c__, real *d__, real *x,
2796 real *work, integer *lwork, integer *info);
2797
2798/* Subroutine */ int sggqrf_(integer *n, integer *m, integer *p, real *a,
2799 integer *lda, real *taua, real *b, integer *ldb, real *taub, real *
2800 work, integer *lwork, integer *info);
2801
2802/* Subroutine */ int sggrqf_(integer *m, integer *p, integer *n, real *a,
2803 integer *lda, real *taua, real *b, integer *ldb, real *taub, real *
2804 work, integer *lwork, integer *info);
2805
2806/* Subroutine */ int sggsvd_(char *jobu, char *jobv, char *jobq, integer *m,
2807 integer *n, integer *p, integer *k, integer *l, real *a, integer *lda,
2808 real *b, integer *ldb, real *alpha, real *beta, real *u, integer *
2809 ldu, real *v, integer *ldv, real *q, integer *ldq, real *work,
2810 integer *iwork, integer *info);
2811
2812/* Subroutine */ int sggsvp_(char *jobu, char *jobv, char *jobq, integer *m,
2813 integer *p, integer *n, real *a, integer *lda, real *b, integer *ldb,
2814 real *tola, real *tolb, integer *k, integer *l, real *u, integer *ldu,
2815 real *v, integer *ldv, real *q, integer *ldq, integer *iwork, real *
2816 tau, real *work, integer *info);
2817
2818/* Subroutine */ int sgtcon_(char *norm, integer *n, real *dl, real *d__,
2819 real *du, real *du2, integer *ipiv, real *anorm, real *rcond, real *
2820 work, integer *iwork, integer *info);
2821
2822/* Subroutine */ int sgtrfs_(char *trans, integer *n, integer *nrhs, real *dl,
2823 real *d__, real *du, real *dlf, real *df, real *duf, real *du2,
2824 integer *ipiv, real *b, integer *ldb, real *x, integer *ldx, real *
2825 ferr, real *berr, real *work, integer *iwork, integer *info);
2826
2827/* Subroutine */ int sgtsv_(integer *n, integer *nrhs, real *dl, real *d__,
2828 real *du, real *b, integer *ldb, integer *info);
2829
2830/* Subroutine */ int sgtsvx_(char *fact, char *trans, integer *n, integer *
2831 nrhs, real *dl, real *d__, real *du, real *dlf, real *df, real *duf,
2832 real *du2, integer *ipiv, real *b, integer *ldb, real *x, integer *
2833 ldx, real *rcond, real *ferr, real *berr, real *work, integer *iwork,
2834 integer *info);
2835
2836/* Subroutine */ int sgttrf_(integer *n, real *dl, real *d__, real *du, real *
2837 du2, integer *ipiv, integer *info);
2838
2839/* Subroutine */ int sgttrs_(char *trans, integer *n, integer *nrhs, real *dl,
2840 real *d__, real *du, real *du2, integer *ipiv, real *b, integer *ldb,
2841 integer *info);
2842
2843/* Subroutine */ int sgtts2_(integer *itrans, integer *n, integer *nrhs, real
2844 *dl, real *d__, real *du, real *du2, integer *ipiv, real *b, integer *
2845 ldb);
2846
2847/* Subroutine */ int shgeqz_(char *job, char *compq, char *compz, integer *n,
2848 integer *ilo, integer *ihi, real *a, integer *lda, real *b, integer *
2849 ldb, real *alphar, real *alphai, real *beta, real *q, integer *ldq,
2850 real *z__, integer *ldz, real *work, integer *lwork, integer *info);
2851
2852/* Subroutine */ int shsein_(char *side, char *eigsrc, char *initv, logical *
2853 select, integer *n, real *h__, integer *ldh, real *wr, real *wi, real
2854 *vl, integer *ldvl, real *vr, integer *ldvr, integer *mm, integer *m,
2855 real *work, integer *ifaill, integer *ifailr, integer *info);
2856
2857/* Subroutine */ int shseqr_(char *job, char *compz, integer *n, integer *ilo,
2858 integer *ihi, real *h__, integer *ldh, real *wr, real *wi, real *z__,
2859 integer *ldz, real *work, integer *lwork, integer *info);
2860
2861/* Subroutine */ int slabad_(real *smalll, real *large); /* !? */
2862
2863/* Subroutine */ int slabrd_(integer *m, integer *n, integer *nb, real *a,
2864 integer *lda, real *d__, real *e, real *tauq, real *taup, real *x,
2865 integer *ldx, real *y, integer *ldy);
2866
2867/* Subroutine */ int slacon_(integer *n, real *v, real *x, integer *isgn,
2868 real *est, integer *kase);
2869
2870/* Subroutine */ int slacpy_(char *uplo, integer *m, integer *n, real *a,
2871 integer *lda, real *b, integer *ldb);
2872
2873/* Subroutine */ int sladiv_(real *a, real *b, real *c__, real *d__, real *p,
2874 real *q);
2875
2876/* Subroutine */ int slae2_(real *a, real *b, real *c__, real *rt1, real *rt2);
2877
2878/* Subroutine */ int slaebz_(integer *ijob, integer *nitmax, integer *n,
2879 integer *mmax, integer *minp, integer *nbmin, real *abstol, real *
2880 reltol, real *pivmin, real *d__, real *e, real *e2, integer *nval,
2881 real *ab, real *c__, integer *mout, integer *nab, real *work, integer
2882 *iwork, integer *info);
2883
2884/* Subroutine */ int slaed0_(integer *icompq, integer *qsiz, integer *n, real
2885 *d__, real *e, real *q, integer *ldq, real *qstore, integer *ldqs,
2886 real *work, integer *iwork, integer *info);
2887
2888/* Subroutine */ int slaed1_(integer *n, real *d__, real *q, integer *ldq,
2889 integer *indxq, real *rho, integer *cutpnt, real *work, integer *
2890 iwork, integer *info);
2891
2892/* Subroutine */ int slaed2_(integer *k, integer *n, integer *n1, real *d__,
2893 real *q, integer *ldq, integer *indxq, real *rho, real *z__, real *
2894 dlamda, real *w, real *q2, integer *indx, integer *indxc, integer *
2895 indxp, integer *coltyp, integer *info);
2896
2897/* Subroutine */ int slaed3_(integer *k, integer *n, integer *n1, real *d__,
2898 real *q, integer *ldq, real *rho, real *dlamda, real *q2, integer *
2899 indx, integer *ctot, real *w, real *s, integer *info);
2900
2901/* Subroutine */ int slaed4_(integer *n, integer *i__, real *d__, real *z__,
2902 real *delta, real *rho, real *dlam, integer *info);
2903
2904/* Subroutine */ int slaed5_(integer *i__, real *d__, real *z__, real *delta,
2905 real *rho, real *dlam);
2906
2907/* Subroutine */ int slaed6_(integer *kniter, logical *orgati, real *rho,
2908 real *d__, real *z__, real *finit, real *tau, integer *info);
2909
2910/* Subroutine */ int slaed7_(integer *icompq, integer *n, integer *qsiz,
2911 integer *tlvls, integer *curlvl, integer *curpbm, real *d__, real *q,
2912 integer *ldq, integer *indxq, real *rho, integer *cutpnt, real *
2913 qstore, integer *qptr, integer *prmptr, integer *perm, integer *
2914 givptr, integer *givcol, real *givnum, real *work, integer *iwork,
2915 integer *info);
2916
2917/* Subroutine */ int slaed8_(integer *icompq, integer *k, integer *n, integer
2918 *qsiz, real *d__, real *q, integer *ldq, integer *indxq, real *rho,
2919 integer *cutpnt, real *z__, real *dlamda, real *q2, integer *ldq2,
2920 real *w, integer *perm, integer *givptr, integer *givcol, real *
2921 givnum, integer *indxp, integer *indx, integer *info);
2922
2923/* Subroutine */ int slaed9_(integer *k, integer *kstart, integer *kstop,
2924 integer *n, real *d__, real *q, integer *ldq, real *rho, real *dlamda,
2925 real *w, real *s, integer *lds, integer *info);
2926
2927/* Subroutine */ int slaeda_(integer *n, integer *tlvls, integer *curlvl,
2928 integer *curpbm, integer *prmptr, integer *perm, integer *givptr,
2929 integer *givcol, real *givnum, real *q, integer *qptr, real *z__,
2930 real *ztemp, integer *info);
2931
2932/* Subroutine */ int slaein_(logical *rightv, logical *noinit, integer *n,
2933 real *h__, integer *ldh, real *wr, real *wi, real *vr, real *vi, real
2934 *b, integer *ldb, real *work, real *eps3, real *smlnum, real *bignum,
2935 integer *info);
2936
2937/* Subroutine */ int slaev2_(real *a, real *b, real *c__, real *rt1, real *
2938 rt2, real *cs1, real *sn1);
2939
2940/* Subroutine */ int slaexc_(logical *wantq, integer *n, real *t, integer *
2941 ldt, real *q, integer *ldq, integer *j1, integer *n1, integer *n2,
2942 real *work, integer *info);
2943
2944/* Subroutine */ int slag2_(real *a, integer *lda, real *b, integer *ldb,
2945 real *safmin, real *scale1, real *scale2, real *wr1, real *wr2, real *
2946 wi);
2947
2948/* Subroutine */ int slags2_(logical *upper, real *a1, real *a2, real *a3,
2949 real *b1, real *b2, real *b3, real *csu, real *snu, real *csv, real *
2950 snv, real *csq, real *snq);
2951
2952/* Subroutine */ int slagtf_(integer *n, real *a, real *lambda, real *b, real
2953 *c__, real *tol, real *d__, integer *in, integer *info);
2954
2955/* Subroutine */ int slagtm_(char *trans, integer *n, integer *nrhs, real *
2956 alpha, real *dl, real *d__, real *du, real *x, integer *ldx, real *
2957 beta, real *b, integer *ldb);
2958
2959/* Subroutine */ int slagts_(integer *job, integer *n, real *a, real *b, real
2960 *c__, real *d__, integer *in, real *y, real *tol, integer *info);
2961
2962/* Subroutine */ int slagv2_(real *a, integer *lda, real *b, integer *ldb,
2963 real *alphar, real *alphai, real *beta, real *csl, real *snl, real *
2964 csr, real *snr);
2965
2966/* Subroutine */ int slahqr_(logical *wantt, logical *wantz, integer *n,
2967 integer *ilo, integer *ihi, real *h__, integer *ldh, real *wr, real *
2968 wi, integer *iloz, integer *ihiz, real *z__, integer *ldz, integer *
2969 info);
2970
2971/* Subroutine */ int slahrd_(integer *n, integer *k, integer *nb, real *a,
2972 integer *lda, real *tau, real *t, integer *ldt, real *y, integer *ldy);
2973
2974/* Subroutine */ int slaic1_(integer *job, integer *j, real *x, real *sest,
2975 real *w, real *gamma, real *sestpr, real *s, real *c__);
2976
2977/* Subroutine */ int slaln2_(logical *ltrans, integer *na, integer *nw, real *
2978 smin, real *ca, real *a, integer *lda, real *d1, real *d2, real *b,
2979 integer *ldb, real *wr, real *wi, real *x, integer *ldx, real *scale,
2980 real *xnorm, integer *info);
2981
2982/* Subroutine */ int slals0_(integer *icompq, integer *nl, integer *nr,
2983 integer *sqre, integer *nrhs, real *b, integer *ldb, real *bx,
2984 integer *ldbx, integer *perm, integer *givptr, integer *givcol,
2985 integer *ldgcol, real *givnum, integer *ldgnum, real *poles, real *
2986 difl, real *difr, real *z__, integer *k, real *c__, real *s, real *
2987 work, integer *info);
2988
2989/* Subroutine */ int slalsa_(integer *icompq, integer *smlsiz, integer *n,
2990 integer *nrhs, real *b, integer *ldb, real *bx, integer *ldbx, real *
2991 u, integer *ldu, real *vt, integer *k, real *difl, real *difr, real *
2992 z__, real *poles, integer *givptr, integer *givcol, integer *ldgcol,
2993 integer *perm, real *givnum, real *c__, real *s, real *work, integer *
2994 iwork, integer *info);
2995
2996/* Subroutine */ int slalsd_(char *uplo, integer *smlsiz, integer *n, integer
2997 *nrhs, real *d__, real *e, real *b, integer *ldb, real *rcond,
2998 integer *rank, real *work, integer *iwork, integer *info);
2999
3000/* Subroutine */ int slamc1_(integer *beta, integer *t, logical *rnd, logical
3001 *ieee1);
3002
3003/* Subroutine */ int slamc2_(integer *beta, integer *t, logical *rnd, real *
3004 eps, integer *emin, real *rmin, integer *emax, real *rmax);
3005
3006/* Subroutine */ int slamc4_(integer *emin, real *start, integer *base);
3007
3008/* Subroutine */ int slamc5_(integer *beta, integer *p, integer *emin,
3009 logical *ieee, integer *emax, real *rmax);
3010
3011/* Subroutine */ int slamrg_(integer *n1, integer *n2, real *a, integer *
3012 strd1, integer *strd2, integer *index);
3013
3014/* Subroutine */ int slanv2_(real *a, real *b, real *c__, real *d__, real *
3015 rt1r, real *rt1i, real *rt2r, real *rt2i, real *cs, real *sn);
3016
3017/* Subroutine */ int slapll_(integer *n, real *x, integer *incx, real *y,
3018 integer *incy, real *ssmin);
3019
3020/* Subroutine */ int slapmt_(logical *forwrd, integer *m, integer *n, real *x,
3021 integer *ldx, integer *k);
3022
3023/* Subroutine */ int slaqgb_(integer *m, integer *n, integer *kl, integer *ku,
3024 real *ab, integer *ldab, real *r__, real *c__, real *rowcnd, real *
3025 colcnd, real *amax, char *equed);
3026
3027/* Subroutine */ int slaqge_(integer *m, integer *n, real *a, integer *lda,
3028 real *r__, real *c__, real *rowcnd, real *colcnd, real *amax, char *
3029 equed);
3030
3031/* Subroutine */ int slaqp2_(integer *m, integer *n, integer *offset, real *a,
3032 integer *lda, integer *jpvt, real *tau, real *vn1, real *vn2, real *
3033 work);
3034
3035/* Subroutine */ int slaqps_(integer *m, integer *n, integer *offset, integer
3036 *nb, integer *kb, real *a, integer *lda, integer *jpvt, real *tau,
3037 real *vn1, real *vn2, real *auxv, real *f, integer *ldf);
3038
3039/* Subroutine */ int slaqsb_(char *uplo, integer *n, integer *kd, real *ab,
3040 integer *ldab, real *s, real *scond, real *amax, char *equed);
3041
3042/* Subroutine */ int slaqsp_(char *uplo, integer *n, real *ap, real *s, real *
3043 scond, real *amax, char *equed);
3044
3045/* Subroutine */ int slaqsy_(char *uplo, integer *n, real *a, integer *lda,
3046 real *s, real *scond, real *amax, char *equed);
3047
3048/* Subroutine */ int slaqtr_(logical *ltran, logical *lreal, integer *n, real
3049 *t, integer *ldt, real *b, real *w, real *scale, real *x, real *work,
3050 integer *info);
3051
3052/* Subroutine */ int slar1v_(integer *n, integer *b1, integer *bn, real *
3053 sigma, real *d__, real *l, real *ld, real *lld, real *gersch, real *
3054 z__, real *ztz, real *mingma, integer *r__, integer *isuppz, real *
3055 work);
3056
3057/* Subroutine */ int slar2v_(integer *n, real *x, real *y, real *z__, integer
3058 *incx, real *c__, real *s, integer *incc);
3059
3060/* Subroutine */ int slarf_(char *side, integer *m, integer *n, real *v,
3061 integer *incv, real *tau, real *c__, integer *ldc, real *work);
3062
3063/* Subroutine */ int slarfb_(char *side, char *trans, char *direct, char *
3064 storev, integer *m, integer *n, integer *k, real *v, integer *ldv,
3065 real *t, integer *ldt, real *c__, integer *ldc, real *work, integer *
3066 ldwork);
3067
3068/* Subroutine */ int slarfg_(integer *n, real *alpha, real *x, integer *incx,
3069 real *tau);
3070
3071/* Subroutine */ int slarft_(char *direct, char *storev, integer *n, integer *
3072 k, real *v, integer *ldv, real *tau, real *t, integer *ldt);
3073
3074/* Subroutine */ int slarfx_(char *side, integer *m, integer *n, real *v,
3075 real *tau, real *c__, integer *ldc, real *work);
3076
3077/* Subroutine */ int slargv_(integer *n, real *x, integer *incx, real *y,
3078 integer *incy, real *c__, integer *incc);
3079
3080/* Subroutine */ int slarnv_(integer *idist, integer *iseed, integer *n, real
3081 *x);
3082
3083/* Subroutine */ int slarrb_(integer *n, real *d__, real *l, real *ld, real *
3084 lld, integer *ifirst, integer *ilast, real *sigma, real *reltol, real
3085 *w, real *wgap, real *werr, real *work, integer *iwork, integer *info);
3086
3087/* Subroutine */ int slarre_(integer *n, real *d__, real *e, real *tol,
3088 integer *nsplit, integer *isplit, integer *m, real *w, real *woff,
3089 real *gersch, real *work, integer *info);
3090
3091/* Subroutine */ int slarrf_(integer *n, real *d__, real *l, real *ld, real *
3092 lld, integer *ifirst, integer *ilast, real *w, real *dplus, real *
3093 lplus, real *work, integer *iwork, integer *info);
3094
3095/* Subroutine */ int slarrv_(integer *n, real *d__, real *l, integer *isplit,
3096 integer *m, real *w, integer *iblock, real *gersch, real *tol, real *
3097 z__, integer *ldz, integer *isuppz, real *work, integer *iwork,
3098 integer *info);
3099
3100/* Subroutine */ int slartg_(real *f, real *g, real *cs, real *sn, real *r__);
3101
3102/* Subroutine */ int slartv_(integer *n, real *x, integer *incx, real *y,
3103 integer *incy, real *c__, real *s, integer *incc);
3104
3105/* Subroutine */ int slaruv_(integer *iseed, integer *n, real *x);
3106
3107/* Subroutine */ int slarz_(char *side, integer *m, integer *n, integer *l,
3108 real *v, integer *incv, real *tau, real *c__, integer *ldc, real *
3109 work);
3110
3111/* Subroutine */ int slarzb_(char *side, char *trans, char *direct, char *
3112 storev, integer *m, integer *n, integer *k, integer *l, real *v,
3113 integer *ldv, real *t, integer *ldt, real *c__, integer *ldc, real *
3114 work, integer *ldwork);
3115
3116/* Subroutine */ int slarzt_(char *direct, char *storev, integer *n, integer *
3117 k, real *v, integer *ldv, real *tau, real *t, integer *ldt);
3118
3119/* Subroutine */ int slas2_(real *f, real *g, real *h__, real *ssmin, real *
3120 ssmax);
3121
3122/* Subroutine */ int slascl_(char *type__, integer *kl, integer *ku, real *
3123 cfrom, real *cto, integer *m, integer *n, real *a, integer *lda,
3124 integer *info);
3125
3126/* Subroutine */ int slasd0_(integer *n, integer *sqre, real *d__, real *e,
3127 real *u, integer *ldu, real *vt, integer *ldvt, integer *smlsiz,
3128 integer *iwork, real *work, integer *info);
3129
3130/* Subroutine */ int slasd1_(integer *nl, integer *nr, integer *sqre, real *
3131 d__, real *alpha, real *beta, real *u, integer *ldu, real *vt,
3132 integer *ldvt, integer *idxq, integer *iwork, real *work, integer *
3133 info);
3134
3135/* Subroutine */ int slasd2_(integer *nl, integer *nr, integer *sqre, integer
3136 *k, real *d__, real *z__, real *alpha, real *beta, real *u, integer *
3137 ldu, real *vt, integer *ldvt, real *dsigma, real *u2, integer *ldu2,
3138 real *vt2, integer *ldvt2, integer *idxp, integer *idx, integer *idxc,
3139 integer *idxq, integer *coltyp, integer *info);
3140
3141/* Subroutine */ int slasd3_(integer *nl, integer *nr, integer *sqre, integer
3142 *k, real *d__, real *q, integer *ldq, real *dsigma, real *u, integer *
3143 ldu, real *u2, integer *ldu2, real *vt, integer *ldvt, real *vt2,
3144 integer *ldvt2, integer *idxc, integer *ctot, real *z__, integer *
3145 info);
3146
3147/* Subroutine */ int slasd4_(integer *n, integer *i__, real *d__, real *z__,
3148 real *delta, real *rho, real *sigma, real *work, integer *info);
3149
3150/* Subroutine */ int slasd5_(integer *i__, real *d__, real *z__, real *delta,
3151 real *rho, real *dsigma, real *work);
3152
3153/* Subroutine */ int slasd6_(integer *icompq, integer *nl, integer *nr,
3154 integer *sqre, real *d__, real *vf, real *vl, real *alpha, real *beta,
3155 integer *idxq, integer *perm, integer *givptr, integer *givcol,
3156 integer *ldgcol, real *givnum, integer *ldgnum, real *poles, real *
3157 difl, real *difr, real *z__, integer *k, real *c__, real *s, real *
3158 work, integer *iwork, integer *info);
3159
3160/* Subroutine */ int slasd7_(integer *icompq, integer *nl, integer *nr,
3161 integer *sqre, integer *k, real *d__, real *z__, real *zw, real *vf,
3162 real *vfw, real *vl, real *vlw, real *alpha, real *beta, real *dsigma,
3163 integer *idx, integer *idxp, integer *idxq, integer *perm, integer *
3164 givptr, integer *givcol, integer *ldgcol, real *givnum, integer *
3165 ldgnum, real *c__, real *s, integer *info);
3166
3167/* Subroutine */ int slasd8_(integer *icompq, integer *k, real *d__, real *
3168 z__, real *vf, real *vl, real *difl, real *difr, integer *lddifr,
3169 real *dsigma, real *work, integer *info);
3170
3171/* Subroutine */ int slasd9_(integer *icompq, integer *ldu, integer *k, real *
3172 d__, real *z__, real *vf, real *vl, real *difl, real *difr, real *
3173 dsigma, real *work, integer *info);
3174
3175/* Subroutine */ int slasda_(integer *icompq, integer *smlsiz, integer *n,
3176 integer *sqre, real *d__, real *e, real *u, integer *ldu, real *vt,
3177 integer *k, real *difl, real *difr, real *z__, real *poles, integer *
3178 givptr, integer *givcol, integer *ldgcol, integer *perm, real *givnum,
3179 real *c__, real *s, real *work, integer *iwork, integer *info);
3180
3181/* Subroutine */ int slasdq_(char *uplo, integer *sqre, integer *n, integer *
3182 ncvt, integer *nru, integer *ncc, real *d__, real *e, real *vt,
3183 integer *ldvt, real *u, integer *ldu, real *c__, integer *ldc, real *
3184 work, integer *info);
3185
3186/* Subroutine */ int slasdt_(integer *n, integer *lvl, integer *nd, integer *
3187 inode, integer *ndiml, integer *ndimr, integer *msub);
3188
3189/* Subroutine */ int slaset_(char *uplo, integer *m, integer *n, real *alpha,
3190 real *beta, real *a, integer *lda);
3191
3192/* Subroutine */ int slasq1_(integer *n, real *d__, real *e, real *work,
3193 integer *info);
3194
3195/* Subroutine */ int slasq2_(integer *n, real *z__, integer *info);
3196
3197/* Subroutine */ int slasq3_(integer *i0, integer *n0, real *z__, integer *pp,
3198 real *dmin__, real *sigma, real *desig, real *qmax, integer *nfail,
3199 integer *iter, integer *ndiv, logical *ieee);
3200
3201/* Subroutine */ int slasq4_(integer *i0, integer *n0, real *z__, integer *pp,
3202 integer *n0in, real *dmin__, real *dmin1, real *dmin2, real *dn,
3203 real *dn1, real *dn2, real *tau, integer *ttype);
3204
3205/* Subroutine */ int slasq5_(integer *i0, integer *n0, real *z__, integer *pp,
3206 real *tau, real *dmin__, real *dmin1, real *dmin2, real *dn, real *
3207 dnm1, real *dnm2, logical *ieee);
3208
3209/* Subroutine */ int slasq6_(integer *i0, integer *n0, real *z__, integer *pp,
3210 real *dmin__, real *dmin1, real *dmin2, real *dn, real *dnm1, real *
3211 dnm2);
3212
3213/* Subroutine */ int slasr_(char *side, char *pivot, char *direct, integer *m,
3214 integer *n, real *c__, real *s, real *a, integer *lda);
3215
3216/* Subroutine */ int slasrt_(char *id, integer *n, real *d__, integer *info);
3217
3218/* Subroutine */ int slassq_(integer *n, real *x, integer *incx, real *scale,
3219 real *sumsq);
3220
3221/* Subroutine */ int slasv2_(real *f, real *g, real *h__, real *ssmin, real *
3222 ssmax, real *snr, real *csr, real *snl, real *csl);
3223
3224/* Subroutine */ int slaswp_(integer *n, real *a, integer *lda, integer *k1,
3225 integer *k2, integer *ipiv, integer *incx);
3226
3227/* Subroutine */ int slasy2_(logical *ltranl, logical *ltranr, integer *isgn,
3228 integer *n1, integer *n2, real *tl, integer *ldtl, real *tr, integer *
3229 ldtr, real *b, integer *ldb, real *scale, real *x, integer *ldx, real
3230 *xnorm, integer *info);
3231
3232/* Subroutine */ int slasyf_(char *uplo, integer *n, integer *nb, integer *kb,
3233 real *a, integer *lda, integer *ipiv, real *w, integer *ldw, integer
3234 *info);
3235
3236/* Subroutine */ int slatbs_(char *uplo, char *trans, char *diag, char *
3237 normin, integer *n, integer *kd, real *ab, integer *ldab, real *x,
3238 real *scale, real *cnorm, integer *info);
3239
3240/* Subroutine */ int slatdf_(integer *ijob, integer *n, real *z__, integer *
3241 ldz, real *rhs, real *rdsum, real *rdscal, integer *ipiv, integer *
3242 jpiv);
3243
3244/* Subroutine */ int slatps_(char *uplo, char *trans, char *diag, char *
3245 normin, integer *n, real *ap, real *x, real *scale, real *cnorm,
3246 integer *info);
3247
3248/* Subroutine */ int slatrd_(char *uplo, integer *n, integer *nb, real *a,
3249 integer *lda, real *e, real *tau, real *w, integer *ldw);
3250
3251/* Subroutine */ int slatrs_(char *uplo, char *trans, char *diag, char *
3252 normin, integer *n, real *a, integer *lda, real *x, real *scale, real
3253 *cnorm, integer *info);
3254
3255/* Subroutine */ int slatrz_(integer *m, integer *n, integer *l, real *a,
3256 integer *lda, real *tau, real *work);
3257
3258/* Subroutine */ int slatzm_(char *side, integer *m, integer *n, real *v,
3259 integer *incv, real *tau, real *c1, real *c2, integer *ldc, real *
3260 work);
3261
3262/* Subroutine */ int slauu2_(char *uplo, integer *n, real *a, integer *lda,
3263 integer *info);
3264
3265/* Subroutine */ int slauum_(char *uplo, integer *n, real *a, integer *lda,
3266 integer *info);
3267
3268/* Subroutine */ int sopgtr_(char *uplo, integer *n, real *ap, real *tau,
3269 real *q, integer *ldq, real *work, integer *info);
3270
3271/* Subroutine */ int sopmtr_(char *side, char *uplo, char *trans, integer *m,
3272 integer *n, real *ap, real *tau, real *c__, integer *ldc, real *work,
3273 integer *info);
3274
3275/* Subroutine */ int sorg2l_(integer *m, integer *n, integer *k, real *a,
3276 integer *lda, real *tau, real *work, integer *info);
3277
3278/* Subroutine */ int sorg2r_(integer *m, integer *n, integer *k, real *a,
3279 integer *lda, real *tau, real *work, integer *info);
3280
3281/* Subroutine */ int sorgbr_(char *vect, integer *m, integer *n, integer *k,
3282 real *a, integer *lda, real *tau, real *work, integer *lwork, integer
3283 *info);
3284
3285/* Subroutine */ int sorghr_(integer *n, integer *ilo, integer *ihi, real *a,
3286 integer *lda, real *tau, real *work, integer *lwork, integer *info);
3287
3288/* Subroutine */ int sorgl2_(integer *m, integer *n, integer *k, real *a,
3289 integer *lda, real *tau, real *work, integer *info);
3290
3291/* Subroutine */ int sorglq_(integer *m, integer *n, integer *k, real *a,
3292 integer *lda, real *tau, real *work, integer *lwork, integer *info);
3293
3294/* Subroutine */ int sorgql_(integer *m, integer *n, integer *k, real *a,
3295 integer *lda, real *tau, real *work, integer *lwork, integer *info);
3296
3297/* Subroutine */ int sorgqr_(integer *m, integer *n, integer *k, real *a,
3298 integer *lda, real *tau, real *work, integer *lwork, integer *info);
3299
3300/* Subroutine */ int sorgr2_(integer *m, integer *n, integer *k, real *a,
3301 integer *lda, real *tau, real *work, integer *info);
3302
3303/* Subroutine */ int sorgrq_(integer *m, integer *n, integer *k, real *a,
3304 integer *lda, real *tau, real *work, integer *lwork, integer *info);
3305
3306/* Subroutine */ int sorgtr_(char *uplo, integer *n, real *a, integer *lda,
3307 real *tau, real *work, integer *lwork, integer *info);
3308
3309/* Subroutine */ int sorm2l_(char *side, char *trans, integer *m, integer *n,
3310 integer *k, real *a, integer *lda, real *tau, real *c__, integer *ldc,
3311 real *work, integer *info);
3312
3313/* Subroutine */ int sorm2r_(char *side, char *trans, integer *m, integer *n,
3314 integer *k, real *a, integer *lda, real *tau, real *c__, integer *ldc,
3315 real *work, integer *info);
3316
3317/* Subroutine */ int sormbr_(char *vect, char *side, char *trans, integer *m,
3318 integer *n, integer *k, real *a, integer *lda, real *tau, real *c__,
3319 integer *ldc, real *work, integer *lwork, integer *info);
3320
3321/* Subroutine */ int sormhr_(char *side, char *trans, integer *m, integer *n,
3322 integer *ilo, integer *ihi, real *a, integer *lda, real *tau, real *
3323 c__, integer *ldc, real *work, integer *lwork, integer *info);
3324
3325/* Subroutine */ int sorml2_(char *side, char *trans, integer *m, integer *n,
3326 integer *k, real *a, integer *lda, real *tau, real *c__, integer *ldc,
3327 real *work, integer *info);
3328
3329/* Subroutine */ int sormlq_(char *side, char *trans, integer *m, integer *n,
3330 integer *k, real *a, integer *lda, real *tau, real *c__, integer *ldc,
3331 real *work, integer *lwork, integer *info);
3332
3333/* Subroutine */ int sormql_(char *side, char *trans, integer *m, integer *n,
3334 integer *k, real *a, integer *lda, real *tau, real *c__, integer *ldc,
3335 real *work, integer *lwork, integer *info);
3336
3337/* Subroutine */ int sormqr_(char *side, char *trans, integer *m, integer *n,
3338 integer *k, real *a, integer *lda, real *tau, real *c__, integer *ldc,
3339 real *work, integer *lwork, integer *info);
3340
3341/* Subroutine */ int sormr2_(char *side, char *trans, integer *m, integer *n,
3342 integer *k, real *a, integer *lda, real *tau, real *c__, integer *ldc,
3343 real *work, integer *info);
3344
3345/* Subroutine */ int sormr3_(char *side, char *trans, integer *m, integer *n,
3346 integer *k, integer *l, real *a, integer *lda, real *tau, real *c__,
3347 integer *ldc, real *work, integer *info);
3348
3349/* Subroutine */ int sormrq_(char *side, char *trans, integer *m, integer *n,
3350 integer *k, real *a, integer *lda, real *tau, real *c__, integer *ldc,
3351 real *work, integer *lwork, integer *info);
3352
3353/* Subroutine */ int sormrz_(char *side, char *trans, integer *m, integer *n,
3354 integer *k, integer *l, real *a, integer *lda, real *tau, real *c__,
3355 integer *ldc, real *work, integer *lwork, integer *info);
3356
3357/* Subroutine */ int sormtr_(char *side, char *uplo, char *trans, integer *m,
3358 integer *n, real *a, integer *lda, real *tau, real *c__, integer *ldc,
3359 real *work, integer *lwork, integer *info);
3360
3361/* Subroutine */ int spbcon_(char *uplo, integer *n, integer *kd, real *ab,
3362 integer *ldab, real *anorm, real *rcond, real *work, integer *iwork,
3363 integer *info);
3364
3365/* Subroutine */ int spbequ_(char *uplo, integer *n, integer *kd, real *ab,
3366 integer *ldab, real *s, real *scond, real *amax, integer *info);
3367
3368/* Subroutine */ int spbrfs_(char *uplo, integer *n, integer *kd, integer *
3369 nrhs, real *ab, integer *ldab, real *afb, integer *ldafb, real *b,
3370 integer *ldb, real *x, integer *ldx, real *ferr, real *berr, real *
3371 work, integer *iwork, integer *info);
3372
3373/* Subroutine */ int spbstf_(char *uplo, integer *n, integer *kd, real *ab,
3374 integer *ldab, integer *info);
3375
3376/* Subroutine */ int spbsv_(char *uplo, integer *n, integer *kd, integer *
3377 nrhs, real *ab, integer *ldab, real *b, integer *ldb, integer *info);
3378
3379/* Subroutine */ int spbsvx_(char *fact, char *uplo, integer *n, integer *kd,
3380 integer *nrhs, real *ab, integer *ldab, real *afb, integer *ldafb,
3381 char *equed, real *s, real *b, integer *ldb, real *x, integer *ldx,
3382 real *rcond, real *ferr, real *berr, real *work, integer *iwork,
3383 integer *info);
3384
3385/* Subroutine */ int spbtf2_(char *uplo, integer *n, integer *kd, real *ab,
3386 integer *ldab, integer *info);
3387
3388/* Subroutine */ int spbtrf_(char *uplo, integer *n, integer *kd, real *ab,
3389 integer *ldab, integer *info);
3390
3391/* Subroutine */ int spbtrs_(char *uplo, integer *n, integer *kd, integer *
3392 nrhs, real *ab, integer *ldab, real *b, integer *ldb, integer *info);
3393
3394/* Subroutine */ int spocon_(char *uplo, integer *n, real *a, integer *lda,
3395 real *anorm, real *rcond, real *work, integer *iwork, integer *info);
3396
3397/* Subroutine */ int spoequ_(integer *n, real *a, integer *lda, real *s, real
3398 *scond, real *amax, integer *info);
3399
3400/* Subroutine */ int sporfs_(char *uplo, integer *n, integer *nrhs, real *a,
3401 integer *lda, real *af, integer *ldaf, real *b, integer *ldb, real *x,
3402 integer *ldx, real *ferr, real *berr, real *work, integer *iwork,
3403 integer *info);
3404
3405/* Subroutine */ int sposv_(char *uplo, integer *n, integer *nrhs, real *a,
3406 integer *lda, real *b, integer *ldb, integer *info);
3407
3408/* Subroutine */ int sposvx_(char *fact, char *uplo, integer *n, integer *
3409 nrhs, real *a, integer *lda, real *af, integer *ldaf, char *equed,
3410 real *s, real *b, integer *ldb, real *x, integer *ldx, real *rcond,
3411 real *ferr, real *berr, real *work, integer *iwork, integer *info);
3412
3413/* Subroutine */ int spotf2_(char *uplo, integer *n, real *a, integer *lda,
3414 integer *info);
3415
3416/* Subroutine */ int spotrf_(char *uplo, integer *n, real *a, integer *lda,
3417 integer *info);
3418
3419/* Subroutine */ int spotri_(char *uplo, integer *n, real *a, integer *lda,
3420 integer *info);
3421
3422/* Subroutine */ int spotrs_(char *uplo, integer *n, integer *nrhs, real *a,
3423 integer *lda, real *b, integer *ldb, integer *info);
3424
3425/* Subroutine */ int sppcon_(char *uplo, integer *n, real *ap, real *anorm,
3426 real *rcond, real *work, integer *iwork, integer *info);
3427
3428/* Subroutine */ int sppequ_(char *uplo, integer *n, real *ap, real *s, real *
3429 scond, real *amax, integer *info);
3430
3431/* Subroutine */ int spprfs_(char *uplo, integer *n, integer *nrhs, real *ap,
3432 real *afp, real *b, integer *ldb, real *x, integer *ldx, real *ferr,
3433 real *berr, real *work, integer *iwork, integer *info);
3434
3435/* Subroutine */ int sppsv_(char *uplo, integer *n, integer *nrhs, real *ap,
3436 real *b, integer *ldb, integer *info);
3437
3438/* Subroutine */ int sppsvx_(char *fact, char *uplo, integer *n, integer *
3439 nrhs, real *ap, real *afp, char *equed, real *s, real *b, integer *
3440 ldb, real *x, integer *ldx, real *rcond, real *ferr, real *berr, real
3441 *work, integer *iwork, integer *info);
3442
3443/* Subroutine */ int spptrf_(char *uplo, integer *n, real *ap, integer *info);
3444
3445/* Subroutine */ int spptri_(char *uplo, integer *n, real *ap, integer *info);
3446
3447/* Subroutine */ int spptrs_(char *uplo, integer *n, integer *nrhs, real *ap,
3448 real *b, integer *ldb, integer *info);
3449
3450/* Subroutine */ int sptcon_(integer *n, real *d__, real *e, real *anorm,
3451 real *rcond, real *work, integer *info);
3452
3453/* Subroutine */ int spteqr_(char *compz, integer *n, real *d__, real *e,
3454 real *z__, integer *ldz, real *work, integer *info);
3455
3456/* Subroutine */ int sptrfs_(integer *n, integer *nrhs, real *d__, real *e,
3457 real *df, real *ef, real *b, integer *ldb, real *x, integer *ldx,
3458 real *ferr, real *berr, real *work, integer *info);
3459
3460/* Subroutine */ int sptsv_(integer *n, integer *nrhs, real *d__, real *e,
3461 real *b, integer *ldb, integer *info);
3462
3463/* Subroutine */ int sptsvx_(char *fact, integer *n, integer *nrhs, real *d__,
3464 real *e, real *df, real *ef, real *b, integer *ldb, real *x, integer
3465 *ldx, real *rcond, real *ferr, real *berr, real *work, integer *info);
3466
3467/* Subroutine */ int spttrf_(integer *n, real *d__, real *e, integer *info);
3468
3469/* Subroutine */ int spttrs_(integer *n, integer *nrhs, real *d__, real *e,
3470 real *b, integer *ldb, integer *info);
3471
3472/* Subroutine */ int sptts2_(integer *n, integer *nrhs, real *d__, real *e,
3473 real *b, integer *ldb);
3474
3475/* Subroutine */ int srscl_(integer *n, real *sa, real *sx, integer *incx);
3476
3477/* Subroutine */ int ssbev_(char *jobz, char *uplo, integer *n, integer *kd,
3478 real *ab, integer *ldab, real *w, real *z__, integer *ldz, real *work,
3479 integer *info);
3480
3481/* Subroutine */ int ssbevd_(char *jobz, char *uplo, integer *n, integer *kd,
3482 real *ab, integer *ldab, real *w, real *z__, integer *ldz, real *work,
3483 integer *lwork, integer *iwork, integer *liwork, integer *info);
3484
3485/* Subroutine */ int ssbevx_(char *jobz, char *range, char *uplo, integer *n,
3486 integer *kd, real *ab, integer *ldab, real *q, integer *ldq, real *vl,
3487 real *vu, integer *il, integer *iu, real *abstol, integer *m, real *
3488 w, real *z__, integer *ldz, real *work, integer *iwork, integer *
3489 ifail, integer *info);
3490
3491/* Subroutine */ int ssbgst_(char *vect, char *uplo, integer *n, integer *ka,
3492 integer *kb, real *ab, integer *ldab, real *bb, integer *ldbb, real *
3493 x, integer *ldx, real *work, integer *info);
3494
3495/* Subroutine */ int ssbgv_(char *jobz, char *uplo, integer *n, integer *ka,
3496 integer *kb, real *ab, integer *ldab, real *bb, integer *ldbb, real *
3497 w, real *z__, integer *ldz, real *work, integer *info);
3498
3499/* Subroutine */ int ssbgvd_(char *jobz, char *uplo, integer *n, integer *ka,
3500 integer *kb, real *ab, integer *ldab, real *bb, integer *ldbb, real *
3501 w, real *z__, integer *ldz, real *work, integer *lwork, integer *
3502 iwork, integer *liwork, integer *info);
3503
3504/* Subroutine */ int ssbgvx_(char *jobz, char *range, char *uplo, integer *n,
3505 integer *ka, integer *kb, real *ab, integer *ldab, real *bb, integer *
3506 ldbb, real *q, integer *ldq, real *vl, real *vu, integer *il, integer
3507 *iu, real *abstol, integer *m, real *w, real *z__, integer *ldz, real
3508 *work, integer *iwork, integer *ifail, integer *info);
3509
3510/* Subroutine */ int ssbtrd_(char *vect, char *uplo, integer *n, integer *kd,
3511 real *ab, integer *ldab, real *d__, real *e, real *q, integer *ldq,
3512 real *work, integer *info);
3513
3514/* Subroutine */ int sspcon_(char *uplo, integer *n, real *ap, integer *ipiv,
3515 real *anorm, real *rcond, real *work, integer *iwork, integer *info);
3516
3517/* Subroutine */ int sspev_(char *jobz, char *uplo, integer *n, real *ap,
3518 real *w, real *z__, integer *ldz, real *work, integer *info);
3519
3520/* Subroutine */ int sspevd_(char *jobz, char *uplo, integer *n, real *ap,
3521 real *w, real *z__, integer *ldz, real *work, integer *lwork, integer
3522 *iwork, integer *liwork, integer *info);
3523
3524/* Subroutine */ int sspevx_(char *jobz, char *range, char *uplo, integer *n,
3525 real *ap, real *vl, real *vu, integer *il, integer *iu, real *abstol,
3526 integer *m, real *w, real *z__, integer *ldz, real *work, integer *
3527 iwork, integer *ifail, integer *info);
3528
3529/* Subroutine */ int sspgst_(integer *itype, char *uplo, integer *n, real *ap,
3530 real *bp, integer *info);
3531
3532/* Subroutine */ int sspgv_(integer *itype, char *jobz, char *uplo, integer *
3533 n, real *ap, real *bp, real *w, real *z__, integer *ldz, real *work,
3534 integer *info);
3535
3536/* Subroutine */ int sspgvd_(integer *itype, char *jobz, char *uplo, integer *
3537 n, real *ap, real *bp, real *w, real *z__, integer *ldz, real *work,
3538 integer *lwork, integer *iwork, integer *liwork, integer *info);
3539
3540/* Subroutine */ int sspgvx_(integer *itype, char *jobz, char *range, char *
3541 uplo, integer *n, real *ap, real *bp, real *vl, real *vu, integer *il,
3542 integer *iu, real *abstol, integer *m, real *w, real *z__, integer *
3543 ldz, real *work, integer *iwork, integer *ifail, integer *info);
3544
3545/* Subroutine */ int ssprfs_(char *uplo, integer *n, integer *nrhs, real *ap,
3546 real *afp, integer *ipiv, real *b, integer *ldb, real *x, integer *
3547 ldx, real *ferr, real *berr, real *work, integer *iwork, integer *
3548 info);
3549
3550/* Subroutine */ int sspsv_(char *uplo, integer *n, integer *nrhs, real *ap,
3551 integer *ipiv, real *b, integer *ldb, integer *info);
3552
3553/* Subroutine */ int sspsvx_(char *fact, char *uplo, integer *n, integer *
3554 nrhs, real *ap, real *afp, integer *ipiv, real *b, integer *ldb, real
3555 *x, integer *ldx, real *rcond, real *ferr, real *berr, real *work,
3556 integer *iwork, integer *info);
3557
3558/* Subroutine */ int ssptrd_(char *uplo, integer *n, real *ap, real *d__,
3559 real *e, real *tau, integer *info);
3560
3561/* Subroutine */ int ssptrf_(char *uplo, integer *n, real *ap, integer *ipiv,
3562 integer *info);
3563
3564/* Subroutine */ int ssptri_(char *uplo, integer *n, real *ap, integer *ipiv,
3565 real *work, integer *info);
3566
3567/* Subroutine */ int ssptrs_(char *uplo, integer *n, integer *nrhs, real *ap,
3568 integer *ipiv, real *b, integer *ldb, integer *info);
3569
3570/* Subroutine */ int sstebz_(char *range, char *order, integer *n, real *vl,
3571 real *vu, integer *il, integer *iu, real *abstol, real *d__, real *e,
3572 integer *m, integer *nsplit, real *w, integer *iblock, integer *
3573 isplit, real *work, integer *iwork, integer *info);
3574
3575/* Subroutine */ int sstedc_(char *compz, integer *n, real *d__, real *e,
3576 real *z__, integer *ldz, real *work, integer *lwork, integer *iwork,
3577 integer *liwork, integer *info);
3578
3579/* Subroutine */ int sstegr_(char *jobz, char *range, integer *n, real *d__,
3580 real *e, real *vl, real *vu, integer *il, integer *iu, real *abstol,
3581 integer *m, real *w, real *z__, integer *ldz, integer *isuppz, real *
3582 work, integer *lwork, integer *iwork, integer *liwork, integer *info);
3583
3584/* Subroutine */ int sstein_(integer *n, real *d__, real *e, integer *m, real
3585 *w, integer *iblock, integer *isplit, real *z__, integer *ldz, real *
3586 work, integer *iwork, integer *ifail, integer *info);
3587
3588/* Subroutine */ int ssteqr_(char *compz, integer *n, real *d__, real *e,
3589 real *z__, integer *ldz, real *work, integer *info);
3590
3591/* Subroutine */ int ssterf_(integer *n, real *d__, real *e, integer *info);
3592
3593/* Subroutine */ int sstev_(char *jobz, integer *n, real *d__, real *e, real *
3594 z__, integer *ldz, real *work, integer *info);
3595
3596/* Subroutine */ int sstevd_(char *jobz, integer *n, real *d__, real *e, real
3597 *z__, integer *ldz, real *work, integer *lwork, integer *iwork,
3598 integer *liwork, integer *info);
3599
3600/* Subroutine */ int sstevr_(char *jobz, char *range, integer *n, real *d__,
3601 real *e, real *vl, real *vu, integer *il, integer *iu, real *abstol,
3602 integer *m, real *w, real *z__, integer *ldz, integer *isuppz, real *
3603 work, integer *lwork, integer *iwork, integer *liwork, integer *info);
3604
3605/* Subroutine */ int sstevx_(char *jobz, char *range, integer *n, real *d__,
3606 real *e, real *vl, real *vu, integer *il, integer *iu, real *abstol,
3607 integer *m, real *w, real *z__, integer *ldz, real *work, integer *
3608 iwork, integer *ifail, integer *info);
3609
3610/* Subroutine */ int ssycon_(char *uplo, integer *n, real *a, integer *lda,
3611 integer *ipiv, real *anorm, real *rcond, real *work, integer *iwork,
3612 integer *info);
3613
3614/* Subroutine */ int ssyev_(char *jobz, char *uplo, integer *n, real *a,
3615 integer *lda, real *w, real *work, integer *lwork, integer *info);
3616
3617/* Subroutine */ int ssyevd_(char *jobz, char *uplo, integer *n, real *a,
3618 integer *lda, real *w, real *work, integer *lwork, integer *iwork,
3619 integer *liwork, integer *info);
3620
3621/* Subroutine */ int ssyevr_(char *jobz, char *range, char *uplo, integer *n,
3622 real *a, integer *lda, real *vl, real *vu, integer *il, integer *iu,
3623 real *abstol, integer *m, real *w, real *z__, integer *ldz, integer *
3624 isuppz, real *work, integer *lwork, integer *iwork, integer *liwork,
3625 integer *info);
3626
3627/* Subroutine */ int ssyevx_(char *jobz, char *range, char *uplo, integer *n,
3628 real *a, integer *lda, real *vl, real *vu, integer *il, integer *iu,
3629 real *abstol, integer *m, real *w, real *z__, integer *ldz, real *
3630 work, integer *lwork, integer *iwork, integer *ifail, integer *info);
3631
3632/* Subroutine */ int ssygs2_(integer *itype, char *uplo, integer *n, real *a,
3633 integer *lda, real *b, integer *ldb, integer *info);
3634
3635/* Subroutine */ int ssygst_(integer *itype, char *uplo, integer *n, real *a,
3636 integer *lda, real *b, integer *ldb, integer *info);
3637
3638/* Subroutine */ int ssygv_(integer *itype, char *jobz, char *uplo, integer *
3639 n, real *a, integer *lda, real *b, integer *ldb, real *w, real *work,
3640 integer *lwork, integer *info);
3641
3642/* Subroutine */ int ssygvd_(integer *itype, char *jobz, char *uplo, integer *
3643 n, real *a, integer *lda, real *b, integer *ldb, real *w, real *work,
3644 integer *lwork, integer *iwork, integer *liwork, integer *info);
3645
3646/* Subroutine */ int ssygvx_(integer *itype, char *jobz, char *range, char *
3647 uplo, integer *n, real *a, integer *lda, real *b, integer *ldb, real *
3648 vl, real *vu, integer *il, integer *iu, real *abstol, integer *m,
3649 real *w, real *z__, integer *ldz, real *work, integer *lwork, integer
3650 *iwork, integer *ifail, integer *info);
3651
3652/* Subroutine */ int ssyrfs_(char *uplo, integer *n, integer *nrhs, real *a,
3653 integer *lda, real *af, integer *ldaf, integer *ipiv, real *b,
3654 integer *ldb, real *x, integer *ldx, real *ferr, real *berr, real *
3655 work, integer *iwork, integer *info);
3656
3657/* Subroutine */ int ssysv_(char *uplo, integer *n, integer *nrhs, real *a,
3658 integer *lda, integer *ipiv, real *b, integer *ldb, real *work,
3659 integer *lwork, integer *info);
3660
3661/* Subroutine */ int ssysvx_(char *fact, char *uplo, integer *n, integer *
3662 nrhs, real *a, integer *lda, real *af, integer *ldaf, integer *ipiv,
3663 real *b, integer *ldb, real *x, integer *ldx, real *rcond, real *ferr,
3664 real *berr, real *work, integer *lwork, integer *iwork, integer *
3665 info);
3666
3667/* Subroutine */ int ssytd2_(char *uplo, integer *n, real *a, integer *lda,
3668 real *d__, real *e, real *tau, integer *info);
3669
3670/* Subroutine */ int ssytf2_(char *uplo, integer *n, real *a, integer *lda,
3671 integer *ipiv, integer *info);
3672
3673/* Subroutine */ int ssytrd_(char *uplo, integer *n, real *a, integer *lda,
3674 real *d__, real *e, real *tau, real *work, integer *lwork, integer *
3675 info);
3676
3677/* Subroutine */ int ssytrf_(char *uplo, integer *n, real *a, integer *lda,
3678 integer *ipiv, real *work, integer *lwork, integer *info);
3679
3680/* Subroutine */ int ssytri_(char *uplo, integer *n, real *a, integer *lda,
3681 integer *ipiv, real *work, integer *info);
3682
3683/* Subroutine */ int ssytrs_(char *uplo, integer *n, integer *nrhs, real *a,
3684 integer *lda, integer *ipiv, real *b, integer *ldb, integer *info);
3685
3686/* Subroutine */ int stbcon_(char *norm, char *uplo, char *diag, integer *n,
3687 integer *kd, real *ab, integer *ldab, real *rcond, real *work,
3688 integer *iwork, integer *info);
3689
3690/* Subroutine */ int stbrfs_(char *uplo, char *trans, char *diag, integer *n,
3691 integer *kd, integer *nrhs, real *ab, integer *ldab, real *b, integer
3692 *ldb, real *x, integer *ldx, real *ferr, real *berr, real *work,
3693 integer *iwork, integer *info);
3694
3695/* Subroutine */ int stbtrs_(char *uplo, char *trans, char *diag, integer *n,
3696 integer *kd, integer *nrhs, real *ab, integer *ldab, real *b, integer
3697 *ldb, integer *info);
3698
3699/* Subroutine */ int stgevc_(char *side, char *howmny, logical *select,
3700 integer *n, real *a, integer *lda, real *b, integer *ldb, real *vl,
3701 integer *ldvl, real *vr, integer *ldvr, integer *mm, integer *m, real
3702 *work, integer *info);
3703
3704/* Subroutine */ int stgex2_(logical *wantq, logical *wantz, integer *n, real
3705 *a, integer *lda, real *b, integer *ldb, real *q, integer *ldq, real *
3706 z__, integer *ldz, integer *j1, integer *n1, integer *n2, real *work,
3707 integer *lwork, integer *info);
3708
3709/* Subroutine */ int stgexc_(logical *wantq, logical *wantz, integer *n, real
3710 *a, integer *lda, real *b, integer *ldb, real *q, integer *ldq, real *
3711 z__, integer *ldz, integer *ifst, integer *ilst, real *work, integer *
3712 lwork, integer *info);
3713
3714/* Subroutine */ int stgsen_(integer *ijob, logical *wantq, logical *wantz,
3715 logical *select, integer *n, real *a, integer *lda, real *b, integer *
3716 ldb, real *alphar, real *alphai, real *beta, real *q, integer *ldq,
3717 real *z__, integer *ldz, integer *m, real *pl, real *pr, real *dif,
3718 real *work, integer *lwork, integer *iwork, integer *liwork, integer *
3719 info);
3720
3721/* Subroutine */ int stgsja_(char *jobu, char *jobv, char *jobq, integer *m,
3722 integer *p, integer *n, integer *k, integer *l, real *a, integer *lda,
3723 real *b, integer *ldb, real *tola, real *tolb, real *alpha, real *
3724 beta, real *u, integer *ldu, real *v, integer *ldv, real *q, integer *
3725 ldq, real *work, integer *ncycle, integer *info);
3726
3727/* Subroutine */ int stgsna_(char *job, char *howmny, logical *select,
3728 integer *n, real *a, integer *lda, real *b, integer *ldb, real *vl,
3729 integer *ldvl, real *vr, integer *ldvr, real *s, real *dif, integer *
3730 mm, integer *m, real *work, integer *lwork, integer *iwork, integer *
3731 info);
3732
3733/* Subroutine */ int stgsy2_(char *trans, integer *ijob, integer *m, integer *
3734 n, real *a, integer *lda, real *b, integer *ldb, real *c__, integer *
3735 ldc, real *d__, integer *ldd, real *e, integer *lde, real *f, integer
3736 *ldf, real *scale, real *rdsum, real *rdscal, integer *iwork, integer
3737 *pq, integer *info);
3738
3739/* Subroutine */ int stgsyl_(char *trans, integer *ijob, integer *m, integer *
3740 n, real *a, integer *lda, real *b, integer *ldb, real *c__, integer *
3741 ldc, real *d__, integer *ldd, real *e, integer *lde, real *f, integer
3742 *ldf, real *scale, real *dif, real *work, integer *lwork, integer *
3743 iwork, integer *info);
3744
3745/* Subroutine */ int stpcon_(char *norm, char *uplo, char *diag, integer *n,
3746 real *ap, real *rcond, real *work, integer *iwork, integer *info);
3747
3748/* Subroutine */ int stprfs_(char *uplo, char *trans, char *diag, integer *n,
3749 integer *nrhs, real *ap, real *b, integer *ldb, real *x, integer *ldx,
3750 real *ferr, real *berr, real *work, integer *iwork, integer *info);
3751
3752/* Subroutine */ int stptri_(char *uplo, char *diag, integer *n, real *ap,
3753 integer *info);
3754
3755/* Subroutine */ int stptrs_(char *uplo, char *trans, char *diag, integer *n,
3756 integer *nrhs, real *ap, real *b, integer *ldb, integer *info);
3757
3758/* Subroutine */ int strcon_(char *norm, char *uplo, char *diag, integer *n,
3759 real *a, integer *lda, real *rcond, real *work, integer *iwork,
3760 integer *info);
3761
3762/* Subroutine */ int strevc_(char *side, char *howmny, logical *select,
3763 integer *n, real *t, integer *ldt, real *vl, integer *ldvl, real *vr,
3764 integer *ldvr, integer *mm, integer *m, real *work, integer *info);
3765
3766/* Subroutine */ int strexc_(char *compq, integer *n, real *t, integer *ldt,
3767 real *q, integer *ldq, integer *ifst, integer *ilst, real *work,
3768 integer *info);
3769
3770/* Subroutine */ int strrfs_(char *uplo, char *trans, char *diag, integer *n,
3771 integer *nrhs, real *a, integer *lda, real *b, integer *ldb, real *x,
3772 integer *ldx, real *ferr, real *berr, real *work, integer *iwork,
3773 integer *info);
3774
3775/* Subroutine */ int strsen_(char *job, char *compq, logical *select, integer
3776 *n, real *t, integer *ldt, real *q, integer *ldq, real *wr, real *wi,
3777 integer *m, real *s, real *sep, real *work, integer *lwork, integer *
3778 iwork, integer *liwork, integer *info);
3779
3780/* Subroutine */ int strsna_(char *job, char *howmny, logical *select,
3781 integer *n, real *t, integer *ldt, real *vl, integer *ldvl, real *vr,
3782 integer *ldvr, real *s, real *sep, integer *mm, integer *m, real *
3783 work, integer *ldwork, integer *iwork, integer *info);
3784
3785/* Subroutine */ int strsyl_(char *trana, char *tranb, integer *isgn, integer
3786 *m, integer *n, real *a, integer *lda, real *b, integer *ldb, real *
3787 c__, integer *ldc, real *scale, integer *info);
3788
3789/* Subroutine */ int strti2_(char *uplo, char *diag, integer *n, real *a,
3790 integer *lda, integer *info);
3791
3792/* Subroutine */ int strtri_(char *uplo, char *diag, integer *n, real *a,
3793 integer *lda, integer *info);
3794
3795/* Subroutine */ int strtrs_(char *uplo, char *trans, char *diag, integer *n,
3796 integer *nrhs, real *a, integer *lda, real *b, integer *ldb, integer *
3797 info);
3798
3799/* Subroutine */ int stzrqf_(integer *m, integer *n, real *a, integer *lda,
3800 real *tau, integer *info);
3801
3802/* Subroutine */ int stzrzf_(integer *m, integer *n, real *a, integer *lda,
3803 real *tau, real *work, integer *lwork, integer *info);
3804
3805/* Subroutine */ int xerbla_(char *srname, integer *info);
3806
3807/* Subroutine */ int zbdsqr_(char *uplo, integer *n, integer *ncvt, integer *
3808 nru, integer *ncc, doublereal *d__, doublereal *e, doublecomplex *vt,
3809 integer *ldvt, doublecomplex *u, integer *ldu, doublecomplex *c__,
3810 integer *ldc, doublereal *rwork, integer *info);
3811
3812/* Subroutine */ int zdrot_(integer *n, doublecomplex *cx, integer *incx,
3813 doublecomplex *cy, integer *incy, doublereal *c__, doublereal *s);
3814
3815/* Subroutine */ int zdrscl_(integer *n, doublereal *sa, doublecomplex *sx,
3816 integer *incx);
3817
3818/* Subroutine */ int zgbbrd_(char *vect, integer *m, integer *n, integer *ncc,
3819 integer *kl, integer *ku, doublecomplex *ab, integer *ldab,
3820 doublereal *d__, doublereal *e, doublecomplex *q, integer *ldq,
3821 doublecomplex *pt, integer *ldpt, doublecomplex *c__, integer *ldc,
3822 doublecomplex *work, doublereal *rwork, integer *info);
3823
3824/* Subroutine */ int zgbcon_(char *norm, integer *n, integer *kl, integer *ku,
3825 doublecomplex *ab, integer *ldab, integer *ipiv, doublereal *anorm,
3826 doublereal *rcond, doublecomplex *work, doublereal *rwork, integer *
3827 info);
3828
3829/* Subroutine */ int zgbequ_(integer *m, integer *n, integer *kl, integer *ku,
3830 doublecomplex *ab, integer *ldab, doublereal *r__, doublereal *c__,
3831 doublereal *rowcnd, doublereal *colcnd, doublereal *amax, integer *
3832 info);
3833
3834/* Subroutine */ int zgbrfs_(char *trans, integer *n, integer *kl, integer *
3835 ku, integer *nrhs, doublecomplex *ab, integer *ldab, doublecomplex *
3836 afb, integer *ldafb, integer *ipiv, doublecomplex *b, integer *ldb,
3837 doublecomplex *x, integer *ldx, doublereal *ferr, doublereal *berr,
3838 doublecomplex *work, doublereal *rwork, integer *info);
3839
3840/* Subroutine */ int zgbsv_(integer *n, integer *kl, integer *ku, integer *
3841 nrhs, doublecomplex *ab, integer *ldab, integer *ipiv, doublecomplex *
3842 b, integer *ldb, integer *info);
3843
3844/* Subroutine */ int zgbsvx_(char *fact, char *trans, integer *n, integer *kl,
3845 integer *ku, integer *nrhs, doublecomplex *ab, integer *ldab,
3846 doublecomplex *afb, integer *ldafb, integer *ipiv, char *equed,
3847 doublereal *r__, doublereal *c__, doublecomplex *b, integer *ldb,
3848 doublecomplex *x, integer *ldx, doublereal *rcond, doublereal *ferr,
3849 doublereal *berr, doublecomplex *work, doublereal *rwork, integer *
3850 info);
3851
3852/* Subroutine */ int zgbtf2_(integer *m, integer *n, integer *kl, integer *ku,
3853 doublecomplex *ab, integer *ldab, integer *ipiv, integer *info);
3854
3855/* Subroutine */ int zgbtrf_(integer *m, integer *n, integer *kl, integer *ku,
3856 doublecomplex *ab, integer *ldab, integer *ipiv, integer *info);
3857
3858/* Subroutine */ int zgbtrs_(char *trans, integer *n, integer *kl, integer *
3859 ku, integer *nrhs, doublecomplex *ab, integer *ldab, integer *ipiv,
3860 doublecomplex *b, integer *ldb, integer *info);
3861
3862/* Subroutine */ int zgebak_(char *job, char *side, integer *n, integer *ilo,
3863 integer *ihi, doublereal *scale, integer *m, doublecomplex *v,
3864 integer *ldv, integer *info);
3865
3866/* Subroutine */ int zgebal_(char *job, integer *n, doublecomplex *a, integer
3867 *lda, integer *ilo, integer *ihi, doublereal *scale, integer *info);
3868
3869/* Subroutine */ int zgebd2_(integer *m, integer *n, doublecomplex *a,
3870 integer *lda, doublereal *d__, doublereal *e, doublecomplex *tauq,
3871 doublecomplex *taup, doublecomplex *work, integer *info);
3872
3873/* Subroutine */ int zgebrd_(integer *m, integer *n, doublecomplex *a,
3874 integer *lda, doublereal *d__, doublereal *e, doublecomplex *tauq,
3875 doublecomplex *taup, doublecomplex *work, integer *lwork, integer *
3876 info);
3877
3878/* Subroutine */ int zgecon_(char *norm, integer *n, doublecomplex *a,
3879 integer *lda, doublereal *anorm, doublereal *rcond, doublecomplex *
3880 work, doublereal *rwork, integer *info);
3881
3882/* Subroutine */ int zgeequ_(integer *m, integer *n, doublecomplex *a,
3883 integer *lda, doublereal *r__, doublereal *c__, doublereal *rowcnd,
3884 doublereal *colcnd, doublereal *amax, integer *info);
3885
3886/* Subroutine */ int zgees_(char *jobvs, char *sort, L_fp select, integer *n,
3887 doublecomplex *a, integer *lda, integer *sdim, doublecomplex *w,
3888 doublecomplex *vs, integer *ldvs, doublecomplex *work, integer *lwork,
3889 doublereal *rwork, logical *bwork, integer *info);
3890
3891/* Subroutine */ int zgeesx_(char *jobvs, char *sort, L_fp select, char *
3892 sense, integer *n, doublecomplex *a, integer *lda, integer *sdim,
3893 doublecomplex *w, doublecomplex *vs, integer *ldvs, doublereal *
3894 rconde, doublereal *rcondv, doublecomplex *work, integer *lwork,
3895 doublereal *rwork, logical *bwork, integer *info);
3896
3897/* Subroutine */ int zgeev_(char *jobvl, char *jobvr, integer *n,
3898 doublecomplex *a, integer *lda, doublecomplex *w, doublecomplex *vl,
3899 integer *ldvl, doublecomplex *vr, integer *ldvr, doublecomplex *work,
3900 integer *lwork, doublereal *rwork, integer *info);
3901
3902/* Subroutine */ int zgeevx_(char *balanc, char *jobvl, char *jobvr, char *
3903 sense, integer *n, doublecomplex *a, integer *lda, doublecomplex *w,
3904 doublecomplex *vl, integer *ldvl, doublecomplex *vr, integer *ldvr,
3905 integer *ilo, integer *ihi, doublereal *scale, doublereal *abnrm,
3906 doublereal *rconde, doublereal *rcondv, doublecomplex *work, integer *
3907 lwork, doublereal *rwork, integer *info);
3908
3909/* Subroutine */ int zgegs_(char *jobvsl, char *jobvsr, integer *n,
3910 doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb,
3911 doublecomplex *alpha, doublecomplex *beta, doublecomplex *vsl,
3912 integer *ldvsl, doublecomplex *vsr, integer *ldvsr, doublecomplex *
3913 work, integer *lwork, doublereal *rwork, integer *info);
3914
3915/* Subroutine */ int zgegv_(char *jobvl, char *jobvr, integer *n,
3916 doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb,
3917 doublecomplex *alpha, doublecomplex *beta, doublecomplex *vl, integer
3918 *ldvl, doublecomplex *vr, integer *ldvr, doublecomplex *work, integer
3919 *lwork, doublereal *rwork, integer *info);
3920
3921/* Subroutine */ int zgehd2_(integer *n, integer *ilo, integer *ihi,
3922 doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex *
3923 work, integer *info);
3924
3925/* Subroutine */ int zgehrd_(integer *n, integer *ilo, integer *ihi,
3926 doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex *
3927 work, integer *lwork, integer *info);
3928
3929/* Subroutine */ int zgelq2_(integer *m, integer *n, doublecomplex *a,
3930 integer *lda, doublecomplex *tau, doublecomplex *work, integer *info);
3931
3932/* Subroutine */ int zgelqf_(integer *m, integer *n, doublecomplex *a,
3933 integer *lda, doublecomplex *tau, doublecomplex *work, integer *lwork,
3934 integer *info);
3935
3936/* Subroutine */ int zgels_(char *trans, integer *m, integer *n, integer *
3937 nrhs, doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb,
3938 doublecomplex *work, integer *lwork, integer *info);
3939
3940/* Subroutine */ int zgelsx_(integer *m, integer *n, integer *nrhs,
3941 doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb,
3942 integer *jpvt, doublereal *rcond, integer *rank, doublecomplex *work,
3943 doublereal *rwork, integer *info);
3944
3945/* Subroutine */ int zgelsy_(integer *m, integer *n, integer *nrhs,
3946 doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb,
3947 integer *jpvt, doublereal *rcond, integer *rank, doublecomplex *work,
3948 integer *lwork, doublereal *rwork, integer *info);
3949
3950/* Subroutine */ int zgeql2_(integer *m, integer *n, doublecomplex *a,
3951 integer *lda, doublecomplex *tau, doublecomplex *work, integer *info);
3952
3953/* Subroutine */ int zgeqlf_(integer *m, integer *n, doublecomplex *a,
3954 integer *lda, doublecomplex *tau, doublecomplex *work, integer *lwork,
3955 integer *info);
3956
3957/* Subroutine */ int zgeqp3_(integer *m, integer *n, doublecomplex *a,
3958 integer *lda, integer *jpvt, doublecomplex *tau, doublecomplex *work,
3959 integer *lwork, doublereal *rwork, integer *info);
3960
3961/* Subroutine */ int zgeqpf_(integer *m, integer *n, doublecomplex *a,
3962 integer *lda, integer *jpvt, doublecomplex *tau, doublecomplex *work,
3963 doublereal *rwork, integer *info);
3964
3965/* Subroutine */ int zgeqr2_(integer *m, integer *n, doublecomplex *a,
3966 integer *lda, doublecomplex *tau, doublecomplex *work, integer *info);
3967
3968/* Subroutine */ int zgeqrf_(integer *m, integer *n, doublecomplex *a,
3969 integer *lda, doublecomplex *tau, doublecomplex *work, integer *lwork,
3970 integer *info);
3971
3972/* Subroutine */ int zgerfs_(char *trans, integer *n, integer *nrhs,
3973 doublecomplex *a, integer *lda, doublecomplex *af, integer *ldaf,
3974 integer *ipiv, doublecomplex *b, integer *ldb, doublecomplex *x,
3975 integer *ldx, doublereal *ferr, doublereal *berr, doublecomplex *work,
3976 doublereal *rwork, integer *info);
3977
3978/* Subroutine */ int zgerq2_(integer *m, integer *n, doublecomplex *a,
3979 integer *lda, doublecomplex *tau, doublecomplex *work, integer *info);
3980
3981/* Subroutine */ int zgerqf_(integer *m, integer *n, doublecomplex *a,
3982 integer *lda, doublecomplex *tau, doublecomplex *work, integer *lwork,
3983 integer *info);
3984
3985/* Subroutine */ int zgesc2_(integer *n, doublecomplex *a, integer *lda,
3986 doublecomplex *rhs, integer *ipiv, integer *jpiv, doublereal *scale);
3987
3988/* Subroutine */ int zgesv_(integer *n, integer *nrhs, doublecomplex *a,
3989 integer *lda, integer *ipiv, doublecomplex *b, integer *ldb, integer *
3990 info);
3991
3992/* Subroutine */ int zgesvx_(char *fact, char *trans, integer *n, integer *
3993 nrhs, doublecomplex *a, integer *lda, doublecomplex *af, integer *
3994 ldaf, integer *ipiv, char *equed, doublereal *r__, doublereal *c__,
3995 doublecomplex *b, integer *ldb, doublecomplex *x, integer *ldx,
3996 doublereal *rcond, doublereal *ferr, doublereal *berr, doublecomplex *
3997 work, doublereal *rwork, integer *info);
3998
3999/* Subroutine */ int zgetc2_(integer *n, doublecomplex *a, integer *lda,
4000 integer *ipiv, integer *jpiv, integer *info);
4001
4002/* Subroutine */ int zgetf2_(integer *m, integer *n, doublecomplex *a,
4003 integer *lda, integer *ipiv, integer *info);
4004
4005/* Subroutine */ int zgetrf_(integer *m, integer *n, doublecomplex *a,
4006 integer *lda, integer *ipiv, integer *info);
4007
4008/* Subroutine */ int zgetri_(integer *n, doublecomplex *a, integer *lda,
4009 integer *ipiv, doublecomplex *work, integer *lwork, integer *info);
4010
4011/* Subroutine */ int zgetrs_(char *trans, integer *n, integer *nrhs,
4012 doublecomplex *a, integer *lda, integer *ipiv, doublecomplex *b,
4013 integer *ldb, integer *info);
4014
4015/* Subroutine */ int zggbak_(char *job, char *side, integer *n, integer *ilo,
4016 integer *ihi, doublereal *lscale, doublereal *rscale, integer *m,
4017 doublecomplex *v, integer *ldv, integer *info);
4018
4019/* Subroutine */ int zggbal_(char *job, integer *n, doublecomplex *a, integer
4020 *lda, doublecomplex *b, integer *ldb, integer *ilo, integer *ihi,
4021 doublereal *lscale, doublereal *rscale, doublereal *work, integer *
4022 info);
4023
4024/* Subroutine */ int zgges_(char *jobvsl, char *jobvsr, char *sort, L_fp
4025 delctg, integer *n, doublecomplex *a, integer *lda, doublecomplex *b,
4026 integer *ldb, integer *sdim, doublecomplex *alpha, doublecomplex *
4027 beta, doublecomplex *vsl, integer *ldvsl, doublecomplex *vsr, integer
4028 *ldvsr, doublecomplex *work, integer *lwork, doublereal *rwork,
4029 logical *bwork, integer *info);
4030
4031/* Subroutine */ int zggesx_(char *jobvsl, char *jobvsr, char *sort, L_fp
4032 delctg, char *sense, integer *n, doublecomplex *a, integer *lda,
4033 doublecomplex *b, integer *ldb, integer *sdim, doublecomplex *alpha,
4034 doublecomplex *beta, doublecomplex *vsl, integer *ldvsl,
4035 doublecomplex *vsr, integer *ldvsr, doublereal *rconde, doublereal *
4036 rcondv, doublecomplex *work, integer *lwork, doublereal *rwork,
4037 integer *iwork, integer *liwork, logical *bwork, integer *info);
4038
4039/* Subroutine */ int zggev_(char *jobvl, char *jobvr, integer *n,
4040 doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb,
4041 doublecomplex *alpha, doublecomplex *beta, doublecomplex *vl, integer
4042 *ldvl, doublecomplex *vr, integer *ldvr, doublecomplex *work, integer
4043 *lwork, doublereal *rwork, integer *info);
4044
4045/* Subroutine */ int zggevx_(char *balanc, char *jobvl, char *jobvr, char *
4046 sense, integer *n, doublecomplex *a, integer *lda, doublecomplex *b,
4047 integer *ldb, doublecomplex *alpha, doublecomplex *beta,
4048 doublecomplex *vl, integer *ldvl, doublecomplex *vr, integer *ldvr,
4049 integer *ilo, integer *ihi, doublereal *lscale, doublereal *rscale,
4050 doublereal *abnrm, doublereal *bbnrm, doublereal *rconde, doublereal *
4051 rcondv, doublecomplex *work, integer *lwork, doublereal *rwork,
4052 integer *iwork, logical *bwork, integer *info);
4053
4054/* Subroutine */ int zggglm_(integer *n, integer *m, integer *p,
4055 doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb,
4056 doublecomplex *d__, doublecomplex *x, doublecomplex *y, doublecomplex
4057 *work, integer *lwork, integer *info);
4058
4059/* Subroutine */ int zgghrd_(char *compq, char *compz, integer *n, integer *
4060 ilo, integer *ihi, doublecomplex *a, integer *lda, doublecomplex *b,
4061 integer *ldb, doublecomplex *q, integer *ldq, doublecomplex *z__,
4062 integer *ldz, integer *info);
4063
4064/* Subroutine */ int zgglse_(integer *m, integer *n, integer *p,
4065 doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb,
4066 doublecomplex *c__, doublecomplex *d__, doublecomplex *x,
4067 doublecomplex *work, integer *lwork, integer *info);
4068
4069/* Subroutine */ int zggqrf_(integer *n, integer *m, integer *p,
4070 doublecomplex *a, integer *lda, doublecomplex *taua, doublecomplex *b,
4071 integer *ldb, doublecomplex *taub, doublecomplex *work, integer *
4072 lwork, integer *info);
4073
4074/* Subroutine */ int zggrqf_(integer *m, integer *p, integer *n,
4075 doublecomplex *a, integer *lda, doublecomplex *taua, doublecomplex *b,
4076 integer *ldb, doublecomplex *taub, doublecomplex *work, integer *
4077 lwork, integer *info);
4078
4079/* Subroutine */ int zggsvd_(char *jobu, char *jobv, char *jobq, integer *m,
4080 integer *n, integer *p, integer *k, integer *l, doublecomplex *a,
4081 integer *lda, doublecomplex *b, integer *ldb, doublereal *alpha,
4082 doublereal *beta, doublecomplex *u, integer *ldu, doublecomplex *v,
4083 integer *ldv, doublecomplex *q, integer *ldq, doublecomplex *work,
4084 doublereal *rwork, integer *iwork, integer *info);
4085
4086/* Subroutine */ int zggsvp_(char *jobu, char *jobv, char *jobq, integer *m,
4087 integer *p, integer *n, doublecomplex *a, integer *lda, doublecomplex
4088 *b, integer *ldb, doublereal *tola, doublereal *tolb, integer *k,
4089 integer *l, doublecomplex *u, integer *ldu, doublecomplex *v, integer
4090 *ldv, doublecomplex *q, integer *ldq, integer *iwork, doublereal *
4091 rwork, doublecomplex *tau, doublecomplex *work, integer *info);
4092
4093/* Subroutine */ int zgtcon_(char *norm, integer *n, doublecomplex *dl,
4094 doublecomplex *d__, doublecomplex *du, doublecomplex *du2, integer *
4095 ipiv, doublereal *anorm, doublereal *rcond, doublecomplex *work,
4096 integer *info);
4097
4098/* Subroutine */ int zgtrfs_(char *trans, integer *n, integer *nrhs,
4099 doublecomplex *dl, doublecomplex *d__, doublecomplex *du,
4100 doublecomplex *dlf, doublecomplex *df, doublecomplex *duf,
4101 doublecomplex *du2, integer *ipiv, doublecomplex *b, integer *ldb,
4102 doublecomplex *x, integer *ldx, doublereal *ferr, doublereal *berr,
4103 doublecomplex *work, doublereal *rwork, integer *info);
4104
4105/* Subroutine */ int zgtsv_(integer *n, integer *nrhs, doublecomplex *dl,
4106 doublecomplex *d__, doublecomplex *du, doublecomplex *b, integer *ldb,
4107 integer *info);
4108
4109/* Subroutine */ int zgtsvx_(char *fact, char *trans, integer *n, integer *
4110 nrhs, doublecomplex *dl, doublecomplex *d__, doublecomplex *du,
4111 doublecomplex *dlf, doublecomplex *df, doublecomplex *duf,
4112 doublecomplex *du2, integer *ipiv, doublecomplex *b, integer *ldb,
4113 doublecomplex *x, integer *ldx, doublereal *rcond, doublereal *ferr,
4114 doublereal *berr, doublecomplex *work, doublereal *rwork, integer *
4115 info);
4116
4117/* Subroutine */ int zgttrf_(integer *n, doublecomplex *dl, doublecomplex *
4118 d__, doublecomplex *du, doublecomplex *du2, integer *ipiv, integer *
4119 info);
4120
4121/* Subroutine */ int zgttrs_(char *trans, integer *n, integer *nrhs,
4122 doublecomplex *dl, doublecomplex *d__, doublecomplex *du,
4123 doublecomplex *du2, integer *ipiv, doublecomplex *b, integer *ldb,
4124 integer *info);
4125
4126/* Subroutine */ int zgtts2_(integer *itrans, integer *n, integer *nrhs,
4127 doublecomplex *dl, doublecomplex *d__, doublecomplex *du,
4128 doublecomplex *du2, integer *ipiv, doublecomplex *b, integer *ldb);
4129
4130/* Subroutine */ int zhbev_(char *jobz, char *uplo, integer *n, integer *kd,
4131 doublecomplex *ab, integer *ldab, doublereal *w, doublecomplex *z__,
4132 integer *ldz, doublecomplex *work, doublereal *rwork, integer *info);
4133
4134/* Subroutine */ int zhbevd_(char *jobz, char *uplo, integer *n, integer *kd,
4135 doublecomplex *ab, integer *ldab, doublereal *w, doublecomplex *z__,
4136 integer *ldz, doublecomplex *work, integer *lwork, doublereal *rwork,
4137 integer *lrwork, integer *iwork, integer *liwork, integer *info);
4138
4139/* Subroutine */ int zhbevx_(char *jobz, char *range, char *uplo, integer *n,
4140 integer *kd, doublecomplex *ab, integer *ldab, doublecomplex *q,
4141 integer *ldq, doublereal *vl, doublereal *vu, integer *il, integer *
4142 iu, doublereal *abstol, integer *m, doublereal *w, doublecomplex *z__,
4143 integer *ldz, doublecomplex *work, doublereal *rwork, integer *iwork,
4144 integer *ifail, integer *info);
4145
4146/* Subroutine */ int zhbgst_(char *vect, char *uplo, integer *n, integer *ka,
4147 integer *kb, doublecomplex *ab, integer *ldab, doublecomplex *bb,
4148 integer *ldbb, doublecomplex *x, integer *ldx, doublecomplex *work,
4149 doublereal *rwork, integer *info);
4150
4151/* Subroutine */ int zhbgv_(char *jobz, char *uplo, integer *n, integer *ka,
4152 integer *kb, doublecomplex *ab, integer *ldab, doublecomplex *bb,
4153 integer *ldbb, doublereal *w, doublecomplex *z__, integer *ldz,
4154 doublecomplex *work, doublereal *rwork, integer *info);
4155
4156/* Subroutine */ int zhbgvx_(char *jobz, char *range, char *uplo, integer *n,
4157 integer *ka, integer *kb, doublecomplex *ab, integer *ldab,
4158 doublecomplex *bb, integer *ldbb, doublecomplex *q, integer *ldq,
4159 doublereal *vl, doublereal *vu, integer *il, integer *iu, doublereal *
4160 abstol, integer *m, doublereal *w, doublecomplex *z__, integer *ldz,
4161 doublecomplex *work, doublereal *rwork, integer *iwork, integer *
4162 ifail, integer *info);
4163
4164/* Subroutine */ int zhbtrd_(char *vect, char *uplo, integer *n, integer *kd,
4165 doublecomplex *ab, integer *ldab, doublereal *d__, doublereal *e,
4166 doublecomplex *q, integer *ldq, doublecomplex *work, integer *info);
4167
4168/* Subroutine */ int zhecon_(char *uplo, integer *n, doublecomplex *a,
4169 integer *lda, integer *ipiv, doublereal *anorm, doublereal *rcond,
4170 doublecomplex *work, integer *info);
4171
4172/* Subroutine */ int zheev_(char *jobz, char *uplo, integer *n, doublecomplex
4173 *a, integer *lda, doublereal *w, doublecomplex *work, integer *lwork,
4174 doublereal *rwork, integer *info);
4175
4176/* Subroutine */ int zheevd_(char *jobz, char *uplo, integer *n,
4177 doublecomplex *a, integer *lda, doublereal *w, doublecomplex *work,
4178 integer *lwork, doublereal *rwork, integer *lrwork, integer *iwork,
4179 integer *liwork, integer *info);
4180
4181/* Subroutine */ int zheevr_(char *jobz, char *range, char *uplo, integer *n,
4182 doublecomplex *a, integer *lda, doublereal *vl, doublereal *vu,
4183 integer *il, integer *iu, doublereal *abstol, integer *m, doublereal *
4184 w, doublecomplex *z__, integer *ldz, integer *isuppz, doublecomplex *
4185 work, integer *lwork, doublereal *rwork, integer *lrwork, integer *
4186 iwork, integer *liwork, integer *info);
4187
4188/* Subroutine */ int zheevx_(char *jobz, char *range, char *uplo, integer *n,
4189 doublecomplex *a, integer *lda, doublereal *vl, doublereal *vu,
4190 integer *il, integer *iu, doublereal *abstol, integer *m, doublereal *
4191 w, doublecomplex *z__, integer *ldz, doublecomplex *work, integer *
4192 lwork, doublereal *rwork, integer *iwork, integer *ifail, integer *
4193 info);
4194
4195/* Subroutine */ int zhegs2_(integer *itype, char *uplo, integer *n,
4196 doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb,
4197 integer *info);
4198
4199/* Subroutine */ int zhegst_(integer *itype, char *uplo, integer *n,
4200 doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb,
4201 integer *info);
4202
4203/* Subroutine */ int zhegv_(integer *itype, char *jobz, char *uplo, integer *
4204 n, doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb,
4205 doublereal *w, doublecomplex *work, integer *lwork, doublereal *rwork,
4206 integer *info);
4207
4208/* Subroutine */ int zhegvd_(integer *itype, char *jobz, char *uplo, integer *
4209 n, doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb,
4210 doublereal *w, doublecomplex *work, integer *lwork, doublereal *rwork,
4211 integer *lrwork, integer *iwork, integer *liwork, integer *info);
4212
4213/* Subroutine */ int zhegvx_(integer *itype, char *jobz, char *range, char *
4214 uplo, integer *n, doublecomplex *a, integer *lda, doublecomplex *b,
4215 integer *ldb, doublereal *vl, doublereal *vu, integer *il, integer *
4216 iu, doublereal *abstol, integer *m, doublereal *w, doublecomplex *z__,
4217 integer *ldz, doublecomplex *work, integer *lwork, doublereal *rwork,
4218 integer *iwork, integer *ifail, integer *info);
4219
4220/* Subroutine */ int zherfs_(char *uplo, integer *n, integer *nrhs,
4221 doublecomplex *a, integer *lda, doublecomplex *af, integer *ldaf,
4222 integer *ipiv, doublecomplex *b, integer *ldb, doublecomplex *x,
4223 integer *ldx, doublereal *ferr, doublereal *berr, doublecomplex *work,
4224 doublereal *rwork, integer *info);
4225
4226/* Subroutine */ int zhesv_(char *uplo, integer *n, integer *nrhs,
4227 doublecomplex *a, integer *lda, integer *ipiv, doublecomplex *b,
4228 integer *ldb, doublecomplex *work, integer *lwork, integer *info);
4229
4230/* Subroutine */ int zhesvx_(char *fact, char *uplo, integer *n, integer *
4231 nrhs, doublecomplex *a, integer *lda, doublecomplex *af, integer *
4232 ldaf, integer *ipiv, doublecomplex *b, integer *ldb, doublecomplex *x,
4233 integer *ldx, doublereal *rcond, doublereal *ferr, doublereal *berr,
4234 doublecomplex *work, integer *lwork, doublereal *rwork, integer *info);
4235
4236/* Subroutine */ int zhetf2_(char *uplo, integer *n, doublecomplex *a,
4237 integer *lda, integer *ipiv, integer *info);
4238
4239/* Subroutine */ int zhetrd_(char *uplo, integer *n, doublecomplex *a,
4240 integer *lda, doublereal *d__, doublereal *e, doublecomplex *tau,
4241 doublecomplex *work, integer *lwork, integer *info);
4242
4243/* Subroutine */ int zhetrf_(char *uplo, integer *n, doublecomplex *a,
4244 integer *lda, integer *ipiv, doublecomplex *work, integer *lwork,
4245 integer *info);
4246
4247/* Subroutine */ int zhetri_(char *uplo, integer *n, doublecomplex *a,
4248 integer *lda, integer *ipiv, doublecomplex *work, integer *info);
4249
4250/* Subroutine */ int zhetrs_(char *uplo, integer *n, integer *nrhs,
4251 doublecomplex *a, integer *lda, integer *ipiv, doublecomplex *b,
4252 integer *ldb, integer *info);
4253
4254/* Subroutine */ int zhgeqz_(char *job, char *compq, char *compz, integer *n,
4255 integer *ilo, integer *ihi, doublecomplex *a, integer *lda,
4256 doublecomplex *b, integer *ldb, doublecomplex *alpha, doublecomplex *
4257 beta, doublecomplex *q, integer *ldq, doublecomplex *z__, integer *
4258 ldz, doublecomplex *work, integer *lwork, doublereal *rwork, integer *
4259 info);
4260
4261/* Subroutine */ int zhpcon_(char *uplo, integer *n, doublecomplex *ap,
4262 integer *ipiv, doublereal *anorm, doublereal *rcond, doublecomplex *
4263 work, integer *info);
4264
4265/* Subroutine */ int zhpev_(char *jobz, char *uplo, integer *n, doublecomplex
4266 *ap, doublereal *w, doublecomplex *z__, integer *ldz, doublecomplex *
4267 work, doublereal *rwork, integer *info);
4268
4269/* Subroutine */ int zhpevd_(char *jobz, char *uplo, integer *n,
4270 doublecomplex *ap, doublereal *w, doublecomplex *z__, integer *ldz,
4271 doublecomplex *work, integer *lwork, doublereal *rwork, integer *
4272 lrwork, integer *iwork, integer *liwork, integer *info);
4273
4274/* Subroutine */ int zhpevx_(char *jobz, char *range, char *uplo, integer *n,
4275 doublecomplex *ap, doublereal *vl, doublereal *vu, integer *il,
4276 integer *iu, doublereal *abstol, integer *m, doublereal *w,
4277 doublecomplex *z__, integer *ldz, doublecomplex *work, doublereal *
4278 rwork, integer *iwork, integer *ifail, integer *info);
4279
4280/* Subroutine */ int zhpgst_(integer *itype, char *uplo, integer *n,
4281 doublecomplex *ap, doublecomplex *bp, integer *info);
4282
4283/* Subroutine */ int zhpgv_(integer *itype, char *jobz, char *uplo, integer *
4284 n, doublecomplex *ap, doublecomplex *bp, doublereal *w, doublecomplex
4285 *z__, integer *ldz, doublecomplex *work, doublereal *rwork, integer *
4286 info);
4287
4288/* Subroutine */ int zhpgvd_(integer *itype, char *jobz, char *uplo, integer *
4289 n, doublecomplex *ap, doublecomplex *bp, doublereal *w, doublecomplex
4290 *z__, integer *ldz, doublecomplex *work, integer *lwork, doublereal *
4291 rwork, integer *lrwork, integer *iwork, integer *liwork, integer *
4292 info);
4293
4294/* Subroutine */ int zhpgvx_(integer *itype, char *jobz, char *range, char *
4295 uplo, integer *n, doublecomplex *ap, doublecomplex *bp, doublereal *
4296 vl, doublereal *vu, integer *il, integer *iu, doublereal *abstol,
4297 integer *m, doublereal *w, doublecomplex *z__, integer *ldz,
4298 doublecomplex *work, doublereal *rwork, integer *iwork, integer *
4299 ifail, integer *info);
4300
4301/* Subroutine */ int zhprfs_(char *uplo, integer *n, integer *nrhs,
4302 doublecomplex *ap, doublecomplex *afp, integer *ipiv, doublecomplex *
4303 b, integer *ldb, doublecomplex *x, integer *ldx, doublereal *ferr,
4304 doublereal *berr, doublecomplex *work, doublereal *rwork, integer *
4305 info);
4306
4307/* Subroutine */ int zhpsv_(char *uplo, integer *n, integer *nrhs,
4308 doublecomplex *ap, integer *ipiv, doublecomplex *b, integer *ldb,
4309 integer *info);
4310
4311/* Subroutine */ int zhpsvx_(char *fact, char *uplo, integer *n, integer *
4312 nrhs, doublecomplex *ap, doublecomplex *afp, integer *ipiv,
4313 doublecomplex *b, integer *ldb, doublecomplex *x, integer *ldx,
4314 doublereal *rcond, doublereal *ferr, doublereal *berr, doublecomplex *
4315 work, doublereal *rwork, integer *info);
4316
4317/* Subroutine */ int zhptrd_(char *uplo, integer *n, doublecomplex *ap,
4318 doublereal *d__, doublereal *e, doublecomplex *tau, integer *info);
4319
4320/* Subroutine */ int zhptrf_(char *uplo, integer *n, doublecomplex *ap,
4321 integer *ipiv, integer *info);
4322
4323/* Subroutine */ int zhptri_(char *uplo, integer *n, doublecomplex *ap,
4324 integer *ipiv, doublecomplex *work, integer *info);
4325
4326/* Subroutine */ int zhptrs_(char *uplo, integer *n, integer *nrhs,
4327 doublecomplex *ap, integer *ipiv, doublecomplex *b, integer *ldb,
4328 integer *info);
4329
4330/* Subroutine */ int zhsein_(char *side, char *eigsrc, char *initv, logical *
4331 select, integer *n, doublecomplex *h__, integer *ldh, doublecomplex *
4332 w, doublecomplex *vl, integer *ldvl, doublecomplex *vr, integer *ldvr,
4333 integer *mm, integer *m, doublecomplex *work, doublereal *rwork,
4334 integer *ifaill, integer *ifailr, integer *info);
4335
4336/* Subroutine */ int zhseqr_(char *job, char *compz, integer *n, integer *ilo,
4337 integer *ihi, doublecomplex *h__, integer *ldh, doublecomplex *w,
4338 doublecomplex *z__, integer *ldz, doublecomplex *work, integer *lwork,
4339 integer *info);
4340
4341/* Subroutine */ int zlabrd_(integer *m, integer *n, integer *nb,
4342 doublecomplex *a, integer *lda, doublereal *d__, doublereal *e,
4343 doublecomplex *tauq, doublecomplex *taup, doublecomplex *x, integer *
4344 ldx, doublecomplex *y, integer *ldy);
4345
4346/* Subroutine */ int zlacgv_(integer *n, doublecomplex *x, integer *incx);
4347
4348/* Subroutine */ int zlacon_(integer *n, doublecomplex *v, doublecomplex *x,
4349 doublereal *est, integer *kase);
4350
4351/* Subroutine */ int zlacp2_(char *uplo, integer *m, integer *n, doublereal *
4352 a, integer *lda, doublecomplex *b, integer *ldb);
4353
4354/* Subroutine */ int zlacpy_(char *uplo, integer *m, integer *n,
4355 doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb);
4356
4357/* Subroutine */ int zlacrm_(integer *m, integer *n, doublecomplex *a,
4358 integer *lda, doublereal *b, integer *ldb, doublecomplex *c__,
4359 integer *ldc, doublereal *rwork);
4360
4361/* Subroutine */ int zlacrt_(integer *n, doublecomplex *cx, integer *incx,
4362 doublecomplex *cy, integer *incy, doublecomplex *c__, doublecomplex *
4363 s);
4364
4365/* Subroutine */ int zlaed0_(integer *qsiz, integer *n, doublereal *d__,
4366 doublereal *e, doublecomplex *q, integer *ldq, doublecomplex *qstore,
4367 integer *ldqs, doublereal *rwork, integer *iwork, integer *info);
4368
4369/* Subroutine */ int zlaed7_(integer *n, integer *cutpnt, integer *qsiz,
4370 integer *tlvls, integer *curlvl, integer *curpbm, doublereal *d__,
4371 doublecomplex *q, integer *ldq, doublereal *rho, integer *indxq,
4372 doublereal *qstore, integer *qptr, integer *prmptr, integer *perm,
4373 integer *givptr, integer *givcol, doublereal *givnum, doublecomplex *
4374 work, doublereal *rwork, integer *iwork, integer *info);
4375
4376/* Subroutine */ int zlaed8_(integer *k, integer *n, integer *qsiz,
4377 doublecomplex *q, integer *ldq, doublereal *d__, doublereal *rho,
4378 integer *cutpnt, doublereal *z__, doublereal *dlamda, doublecomplex *
4379 q2, integer *ldq2, doublereal *w, integer *indxp, integer *indx,
4380 integer *indxq, integer *perm, integer *givptr, integer *givcol,
4381 doublereal *givnum, integer *info);
4382
4383/* Subroutine */ int zlaein_(logical *rightv, logical *noinit, integer *n,
4384 doublecomplex *h__, integer *ldh, doublecomplex *w, doublecomplex *v,
4385 doublecomplex *b, integer *ldb, doublereal *rwork, doublereal *eps3,
4386 doublereal *smlnum, integer *info);
4387
4388/* Subroutine */ int zlaesy_(doublecomplex *a, doublecomplex *b,
4389 doublecomplex *c__, doublecomplex *rt1, doublecomplex *rt2,
4390 doublecomplex *evscal, doublecomplex *cs1, doublecomplex *sn1);
4391
4392/* Subroutine */ int zlaev2_(doublecomplex *a, doublecomplex *b,
4393 doublecomplex *c__, doublereal *rt1, doublereal *rt2, doublereal *cs1,
4394 doublecomplex *sn1);
4395
4396/* Subroutine */ int zlags2_(logical *upper, doublereal *a1, doublecomplex *
4397 a2, doublereal *a3, doublereal *b1, doublecomplex *b2, doublereal *b3,
4398 doublereal *csu, doublecomplex *snu, doublereal *csv, doublecomplex *
4399 snv, doublereal *csq, doublecomplex *snq);
4400
4401/* Subroutine */ int zlagtm_(char *trans, integer *n, integer *nrhs,
4402 doublereal *alpha, doublecomplex *dl, doublecomplex *d__,
4403 doublecomplex *du, doublecomplex *x, integer *ldx, doublereal *beta,
4404 doublecomplex *b, integer *ldb);
4405
4406/* Subroutine */ int zlahef_(char *uplo, integer *n, integer *nb, integer *kb,
4407 doublecomplex *a, integer *lda, integer *ipiv, doublecomplex *w,
4408 integer *ldw, integer *info);
4409
4410/* Subroutine */ int zlahqr_(logical *wantt, logical *wantz, integer *n,
4411 integer *ilo, integer *ihi, doublecomplex *h__, integer *ldh,
4412 doublecomplex *w, integer *iloz, integer *ihiz, doublecomplex *z__,
4413 integer *ldz, integer *info);
4414
4415/* Subroutine */ int zlahrd_(integer *n, integer *k, integer *nb,
4416 doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex *t,
4417 integer *ldt, doublecomplex *y, integer *ldy);
4418
4419/* Subroutine */ int zlaic1_(integer *job, integer *j, doublecomplex *x,
4420 doublereal *sest, doublecomplex *w, doublecomplex *gamma, doublereal *
4421 sestpr, doublecomplex *s, doublecomplex *c__);
4422
4423/* Subroutine */ int zlals0_(integer *icompq, integer *nl, integer *nr,
4424 integer *sqre, integer *nrhs, doublecomplex *b, integer *ldb,
4425 doublecomplex *bx, integer *ldbx, integer *perm, integer *givptr,
4426 integer *givcol, integer *ldgcol, doublereal *givnum, integer *ldgnum,
4427 doublereal *poles, doublereal *difl, doublereal *difr, doublereal *
4428 z__, integer *k, doublereal *c__, doublereal *s, doublereal *rwork,
4429 integer *info);
4430
4431/* Subroutine */ int zlalsa_(integer *icompq, integer *smlsiz, integer *n,
4432 integer *nrhs, doublecomplex *b, integer *ldb, doublecomplex *bx,
4433 integer *ldbx, doublereal *u, integer *ldu, doublereal *vt, integer *
4434 k, doublereal *difl, doublereal *difr, doublereal *z__, doublereal *
4435 poles, integer *givptr, integer *givcol, integer *ldgcol, integer *
4436 perm, doublereal *givnum, doublereal *c__, doublereal *s, doublereal *
4437 rwork, integer *iwork, integer *info);
4438
4439/* Subroutine */ int zlapll_(integer *n, doublecomplex *x, integer *incx,
4440 doublecomplex *y, integer *incy, doublereal *ssmin);
4441
4442/* Subroutine */ int zlapmt_(logical *forwrd, integer *m, integer *n,
4443 doublecomplex *x, integer *ldx, integer *k);
4444
4445/* Subroutine */ int zlaqgb_(integer *m, integer *n, integer *kl, integer *ku,
4446 doublecomplex *ab, integer *ldab, doublereal *r__, doublereal *c__,
4447 doublereal *rowcnd, doublereal *colcnd, doublereal *amax, char *equed);
4448
4449/* Subroutine */ int zlaqge_(integer *m, integer *n, doublecomplex *a,
4450 integer *lda, doublereal *r__, doublereal *c__, doublereal *rowcnd,
4451 doublereal *colcnd, doublereal *amax, char *equed);
4452
4453/* Subroutine */ int zlaqhb_(char *uplo, integer *n, integer *kd,
4454 doublecomplex *ab, integer *ldab, doublereal *s, doublereal *scond,
4455 doublereal *amax, char *equed);
4456
4457/* Subroutine */ int zlaqhe_(char *uplo, integer *n, doublecomplex *a,
4458 integer *lda, doublereal *s, doublereal *scond, doublereal *amax,
4459 char *equed);
4460
4461/* Subroutine */ int zlaqhp_(char *uplo, integer *n, doublecomplex *ap,
4462 doublereal *s, doublereal *scond, doublereal *amax, char *equed);
4463
4464/* Subroutine */ int zlaqp2_(integer *m, integer *n, integer *offset,
4465 doublecomplex *a, integer *lda, integer *jpvt, doublecomplex *tau,
4466 doublereal *vn1, doublereal *vn2, doublecomplex *work);
4467
4468/* Subroutine */ int zlaqps_(integer *m, integer *n, integer *offset, integer
4469 *nb, integer *kb, doublecomplex *a, integer *lda, integer *jpvt,
4470 doublecomplex *tau, doublereal *vn1, doublereal *vn2, doublecomplex *
4471 auxv, doublecomplex *f, integer *ldf);
4472
4473/* Subroutine */ int zlaqsb_(char *uplo, integer *n, integer *kd,
4474 doublecomplex *ab, integer *ldab, doublereal *s, doublereal *scond,
4475 doublereal *amax, char *equed);
4476
4477/* Subroutine */ int zlaqsp_(char *uplo, integer *n, doublecomplex *ap,
4478 doublereal *s, doublereal *scond, doublereal *amax, char *equed);
4479
4480/* Subroutine */ int zlaqsy_(char *uplo, integer *n, doublecomplex *a,
4481 integer *lda, doublereal *s, doublereal *scond, doublereal *amax,
4482 char *equed);
4483
4484/* Subroutine */ int zlar1v_(integer *n, integer *b1, integer *bn, doublereal
4485 *sigma, doublereal *d__, doublereal *l, doublereal *ld, doublereal *
4486 lld, doublereal *gersch, doublecomplex *z__, doublereal *ztz,
4487 doublereal *mingma, integer *r__, integer *isuppz, doublereal *work);
4488
4489/* Subroutine */ int zlar2v_(integer *n, doublecomplex *x, doublecomplex *y,
4490 doublecomplex *z__, integer *incx, doublereal *c__, doublecomplex *s,
4491 integer *incc);
4492
4493/* Subroutine */ int zlarcm_(integer *m, integer *n, doublereal *a, integer *
4494 lda, doublecomplex *b, integer *ldb, doublecomplex *c__, integer *ldc,
4495 doublereal *rwork);
4496
4497/* Subroutine */ int zlarf_(char *side, integer *m, integer *n, doublecomplex
4498 *v, integer *incv, doublecomplex *tau, doublecomplex *c__, integer *
4499 ldc, doublecomplex *work);
4500
4501/* Subroutine */ int zlarfb_(char *side, char *trans, char *direct, char *
4502 storev, integer *m, integer *n, integer *k, doublecomplex *v, integer
4503 *ldv, doublecomplex *t, integer *ldt, doublecomplex *c__, integer *
4504 ldc, doublecomplex *work, integer *ldwork);
4505
4506/* Subroutine */ int zlarfg_(integer *n, doublecomplex *alpha, doublecomplex *
4507 x, integer *incx, doublecomplex *tau);
4508
4509/* Subroutine */ int zlarft_(char *direct, char *storev, integer *n, integer *
4510 k, doublecomplex *v, integer *ldv, doublecomplex *tau, doublecomplex *
4511 t, integer *ldt);
4512
4513/* Subroutine */ int zlarfx_(char *side, integer *m, integer *n,
4514 doublecomplex *v, doublecomplex *tau, doublecomplex *c__, integer *
4515 ldc, doublecomplex *work);
4516
4517/* Subroutine */ int zlargv_(integer *n, doublecomplex *x, integer *incx,
4518 doublecomplex *y, integer *incy, doublereal *c__, integer *incc);
4519
4520/* Subroutine */ int zlarnv_(integer *idist, integer *iseed, integer *n,
4521 doublecomplex *x);
4522
4523/* Subroutine */ int zlarrv_(integer *n, doublereal *d__, doublereal *l,
4524 integer *isplit, integer *m, doublereal *w, integer *iblock,
4525 doublereal *gersch, doublereal *tol, doublecomplex *z__, integer *ldz,
4526 integer *isuppz, doublereal *work, integer *iwork, integer *info);
4527
4528/* Subroutine */ int zlartg_(doublecomplex *f, doublecomplex *g, doublereal *
4529 cs, doublecomplex *sn, doublecomplex *r__);
4530
4531/* Subroutine */ int zlartv_(integer *n, doublecomplex *x, integer *incx,
4532 doublecomplex *y, integer *incy, doublereal *c__, doublecomplex *s,
4533 integer *incc);
4534
4535/* Subroutine */ int zlarz_(char *side, integer *m, integer *n, integer *l,
4536 doublecomplex *v, integer *incv, doublecomplex *tau, doublecomplex *
4537 c__, integer *ldc, doublecomplex *work);
4538
4539/* Subroutine */ int zlarzb_(char *side, char *trans, char *direct, char *
4540 storev, integer *m, integer *n, integer *k, integer *l, doublecomplex
4541 *v, integer *ldv, doublecomplex *t, integer *ldt, doublecomplex *c__,
4542 integer *ldc, doublecomplex *work, integer *ldwork);
4543
4544/* Subroutine */ int zlarzt_(char *direct, char *storev, integer *n, integer *
4545 k, doublecomplex *v, integer *ldv, doublecomplex *tau, doublecomplex *
4546 t, integer *ldt);
4547
4548/* Subroutine */ int zlascl_(char *type__, integer *kl, integer *ku,
4549 doublereal *cfrom, doublereal *cto, integer *m, integer *n,
4550 doublecomplex *a, integer *lda, integer *info);
4551
4552/* Subroutine */ int zlaset_(char *uplo, integer *m, integer *n,
4553 doublecomplex *alpha, doublecomplex *beta, doublecomplex *a, integer *
4554 lda);
4555
4556/* Subroutine */ int zlasr_(char *side, char *pivot, char *direct, integer *m,
4557 integer *n, doublereal *c__, doublereal *s, doublecomplex *a,
4558 integer *lda);
4559
4560/* Subroutine */ int zlassq_(integer *n, doublecomplex *x, integer *incx,
4561 doublereal *scale, doublereal *sumsq);
4562
4563/* Subroutine */ int zlaswp_(integer *n, doublecomplex *a, integer *lda,
4564 integer *k1, integer *k2, integer *ipiv, integer *incx);
4565
4566/* Subroutine */ int zlasyf_(char *uplo, integer *n, integer *nb, integer *kb,
4567 doublecomplex *a, integer *lda, integer *ipiv, doublecomplex *w,
4568 integer *ldw, integer *info);
4569
4570/* Subroutine */ int zlatbs_(char *uplo, char *trans, char *diag, char *
4571 normin, integer *n, integer *kd, doublecomplex *ab, integer *ldab,
4572 doublecomplex *x, doublereal *scale, doublereal *cnorm, integer *info);
4573
4574/* Subroutine */ int zlatdf_(integer *ijob, integer *n, doublecomplex *z__,
4575 integer *ldz, doublecomplex *rhs, doublereal *rdsum, doublereal *
4576 rdscal, integer *ipiv, integer *jpiv);
4577
4578/* Subroutine */ int zlatps_(char *uplo, char *trans, char *diag, char *
4579 normin, integer *n, doublecomplex *ap, doublecomplex *x, doublereal *
4580 scale, doublereal *cnorm, integer *info);
4581
4582/* Subroutine */ int zlatrd_(char *uplo, integer *n, integer *nb,
4583 doublecomplex *a, integer *lda, doublereal *e, doublecomplex *tau,
4584 doublecomplex *w, integer *ldw);
4585
4586/* Subroutine */ int zlatrs_(char *uplo, char *trans, char *diag, char *
4587 normin, integer *n, doublecomplex *a, integer *lda, doublecomplex *x,
4588 doublereal *scale, doublereal *cnorm, integer *info);
4589
4590/* Subroutine */ int zlatrz_(integer *m, integer *n, integer *l,
4591 doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex *
4592 work);
4593
4594/* Subroutine */ int zlatzm_(char *side, integer *m, integer *n,
4595 doublecomplex *v, integer *incv, doublecomplex *tau, doublecomplex *
4596 c1, doublecomplex *c2, integer *ldc, doublecomplex *work);
4597
4598/* Subroutine */ int zlauu2_(char *uplo, integer *n, doublecomplex *a,
4599 integer *lda, integer *info);
4600
4601/* Subroutine */ int zlauum_(char *uplo, integer *n, doublecomplex *a,
4602 integer *lda, integer *info);
4603
4604/* Subroutine */ int zpbcon_(char *uplo, integer *n, integer *kd,
4605 doublecomplex *ab, integer *ldab, doublereal *anorm, doublereal *
4606 rcond, doublecomplex *work, doublereal *rwork, integer *info);
4607
4608/* Subroutine */ int zpbequ_(char *uplo, integer *n, integer *kd,
4609 doublecomplex *ab, integer *ldab, doublereal *s, doublereal *scond,
4610 doublereal *amax, integer *info);
4611
4612/* Subroutine */ int zpbrfs_(char *uplo, integer *n, integer *kd, integer *
4613 nrhs, doublecomplex *ab, integer *ldab, doublecomplex *afb, integer *
4614 ldafb, doublecomplex *b, integer *ldb, doublecomplex *x, integer *ldx,
4615 doublereal *ferr, doublereal *berr, doublecomplex *work, doublereal *
4616 rwork, integer *info);
4617
4618/* Subroutine */ int zpbstf_(char *uplo, integer *n, integer *kd,
4619 doublecomplex *ab, integer *ldab, integer *info);
4620
4621/* Subroutine */ int zpbsv_(char *uplo, integer *n, integer *kd, integer *
4622 nrhs, doublecomplex *ab, integer *ldab, doublecomplex *b, integer *
4623 ldb, integer *info);
4624
4625/* Subroutine */ int zpbsvx_(char *fact, char *uplo, integer *n, integer *kd,
4626 integer *nrhs, doublecomplex *ab, integer *ldab, doublecomplex *afb,
4627 integer *ldafb, char *equed, doublereal *s, doublecomplex *b, integer
4628 *ldb, doublecomplex *x, integer *ldx, doublereal *rcond, doublereal *
4629 ferr, doublereal *berr, doublecomplex *work, doublereal *rwork,
4630 integer *info);
4631
4632/* Subroutine */ int zpbtf2_(char *uplo, integer *n, integer *kd,
4633 doublecomplex *ab, integer *ldab, integer *info);
4634
4635/* Subroutine */ int zpbtrf_(char *uplo, integer *n, integer *kd,
4636 doublecomplex *ab, integer *ldab, integer *info);
4637
4638/* Subroutine */ int zpbtrs_(char *uplo, integer *n, integer *kd, integer *
4639 nrhs, doublecomplex *ab, integer *ldab, doublecomplex *b, integer *
4640 ldb, integer *info);
4641
4642/* Subroutine */ int zpocon_(char *uplo, integer *n, doublecomplex *a,
4643 integer *lda, doublereal *anorm, doublereal *rcond, doublecomplex *
4644 work, doublereal *rwork, integer *info);
4645
4646/* Subroutine */ int zpoequ_(integer *n, doublecomplex *a, integer *lda,
4647 doublereal *s, doublereal *scond, doublereal *amax, integer *info);
4648
4649/* Subroutine */ int zporfs_(char *uplo, integer *n, integer *nrhs,
4650 doublecomplex *a, integer *lda, doublecomplex *af, integer *ldaf,
4651 doublecomplex *b, integer *ldb, doublecomplex *x, integer *ldx,
4652 doublereal *ferr, doublereal *berr, doublecomplex *work, doublereal *
4653 rwork, integer *info);
4654
4655/* Subroutine */ int zposv_(char *uplo, integer *n, integer *nrhs,
4656 doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb,
4657 integer *info);
4658
4659/* Subroutine */ int zposvx_(char *fact, char *uplo, integer *n, integer *
4660 nrhs, doublecomplex *a, integer *lda, doublecomplex *af, integer *
4661 ldaf, char *equed, doublereal *s, doublecomplex *b, integer *ldb,
4662 doublecomplex *x, integer *ldx, doublereal *rcond, doublereal *ferr,
4663 doublereal *berr, doublecomplex *work, doublereal *rwork, integer *
4664 info);
4665
4666/* Subroutine */ int zpotf2_(char *uplo, integer *n, doublecomplex *a,
4667 integer *lda, integer *info);
4668
4669/* Subroutine */ int zpotrf_(char *uplo, integer *n, doublecomplex *a,
4670 integer *lda, integer *info);
4671
4672/* Subroutine */ int zpotri_(char *uplo, integer *n, doublecomplex *a,
4673 integer *lda, integer *info);
4674
4675/* Subroutine */ int zpotrs_(char *uplo, integer *n, integer *nrhs,
4676 doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb,
4677 integer *info);
4678
4679/* Subroutine */ int zppcon_(char *uplo, integer *n, doublecomplex *ap,
4680 doublereal *anorm, doublereal *rcond, doublecomplex *work, doublereal
4681 *rwork, integer *info);
4682
4683/* Subroutine */ int zppequ_(char *uplo, integer *n, doublecomplex *ap,
4684 doublereal *s, doublereal *scond, doublereal *amax, integer *info);
4685
4686/* Subroutine */ int zpprfs_(char *uplo, integer *n, integer *nrhs,
4687 doublecomplex *ap, doublecomplex *afp, doublecomplex *b, integer *ldb,
4688 doublecomplex *x, integer *ldx, doublereal *ferr, doublereal *berr,
4689 doublecomplex *work, doublereal *rwork, integer *info);
4690
4691/* Subroutine */ int zppsv_(char *uplo, integer *n, integer *nrhs,
4692 doublecomplex *ap, doublecomplex *b, integer *ldb, integer *info);
4693
4694/* Subroutine */ int zppsvx_(char *fact, char *uplo, integer *n, integer *
4695 nrhs, doublecomplex *ap, doublecomplex *afp, char *equed, doublereal *
4696 s, doublecomplex *b, integer *ldb, doublecomplex *x, integer *ldx,
4697 doublereal *rcond, doublereal *ferr, doublereal *berr, doublecomplex *
4698 work, doublereal *rwork, integer *info);
4699
4700/* Subroutine */ int zpptrf_(char *uplo, integer *n, doublecomplex *ap,
4701 integer *info);
4702
4703/* Subroutine */ int zpptri_(char *uplo, integer *n, doublecomplex *ap,
4704 integer *info);
4705
4706/* Subroutine */ int zpptrs_(char *uplo, integer *n, integer *nrhs,
4707 doublecomplex *ap, doublecomplex *b, integer *ldb, integer *info);
4708
4709/* Subroutine */ int zptcon_(integer *n, doublereal *d__, doublecomplex *e,
4710 doublereal *anorm, doublereal *rcond, doublereal *rwork, integer *
4711 info);
4712
4713/* Subroutine */ int zptrfs_(char *uplo, integer *n, integer *nrhs,
4714 doublereal *d__, doublecomplex *e, doublereal *df, doublecomplex *ef,
4715 doublecomplex *b, integer *ldb, doublecomplex *x, integer *ldx,
4716 doublereal *ferr, doublereal *berr, doublecomplex *work, doublereal *
4717 rwork, integer *info);
4718
4719/* Subroutine */ int zptsv_(integer *n, integer *nrhs, doublereal *d__,
4720 doublecomplex *e, doublecomplex *b, integer *ldb, integer *info);
4721
4722/* Subroutine */ int zptsvx_(char *fact, integer *n, integer *nrhs,
4723 doublereal *d__, doublecomplex *e, doublereal *df, doublecomplex *ef,
4724 doublecomplex *b, integer *ldb, doublecomplex *x, integer *ldx,
4725 doublereal *rcond, doublereal *ferr, doublereal *berr, doublecomplex *
4726 work, doublereal *rwork, integer *info);
4727
4728/* Subroutine */ int zpttrf_(integer *n, doublereal *d__, doublecomplex *e,
4729 integer *info);
4730
4731/* Subroutine */ int zpttrs_(char *uplo, integer *n, integer *nrhs,
4732 doublereal *d__, doublecomplex *e, doublecomplex *b, integer *ldb,
4733 integer *info);
4734
4735/* Subroutine */ int zptts2_(integer *iuplo, integer *n, integer *nrhs,
4736 doublereal *d__, doublecomplex *e, doublecomplex *b, integer *ldb);
4737
4738/* Subroutine */ int zrot_(integer *n, doublecomplex *cx, integer *incx,
4739 doublecomplex *cy, integer *incy, doublereal *c__, doublecomplex *s);
4740
4741/* Subroutine */ int zspcon_(char *uplo, integer *n, doublecomplex *ap,
4742 integer *ipiv, doublereal *anorm, doublereal *rcond, doublecomplex *
4743 work, integer *info);
4744
4745/* Subroutine */ int zspmv_(char *uplo, integer *n, doublecomplex *alpha,
4746 doublecomplex *ap, doublecomplex *x, integer *incx, doublecomplex *
4747 beta, doublecomplex *y, integer *incy);
4748
4749/* Subroutine */ int zspr_(char *uplo, integer *n, doublecomplex *alpha,
4750 doublecomplex *x, integer *incx, doublecomplex *ap);
4751
4752/* Subroutine */ int zsprfs_(char *uplo, integer *n, integer *nrhs,
4753 doublecomplex *ap, doublecomplex *afp, integer *ipiv, doublecomplex *
4754 b, integer *ldb, doublecomplex *x, integer *ldx, doublereal *ferr,
4755 doublereal *berr, doublecomplex *work, doublereal *rwork, integer *
4756 info);
4757
4758/* Subroutine */ int zspsv_(char *uplo, integer *n, integer *nrhs,
4759 doublecomplex *ap, integer *ipiv, doublecomplex *b, integer *ldb,
4760 integer *info);
4761
4762/* Subroutine */ int zspsvx_(char *fact, char *uplo, integer *n, integer *
4763 nrhs, doublecomplex *ap, doublecomplex *afp, integer *ipiv,
4764 doublecomplex *b, integer *ldb, doublecomplex *x, integer *ldx,
4765 doublereal *rcond, doublereal *ferr, doublereal *berr, doublecomplex *
4766 work, doublereal *rwork, integer *info);
4767
4768/* Subroutine */ int zsptrf_(char *uplo, integer *n, doublecomplex *ap,
4769 integer *ipiv, integer *info);
4770
4771/* Subroutine */ int zsptri_(char *uplo, integer *n, doublecomplex *ap,
4772 integer *ipiv, doublecomplex *work, integer *info);
4773
4774/* Subroutine */ int zsptrs_(char *uplo, integer *n, integer *nrhs,
4775 doublecomplex *ap, integer *ipiv, doublecomplex *b, integer *ldb,
4776 integer *info);
4777
4778/* Subroutine */ int zstedc_(char *compz, integer *n, doublereal *d__,
4779 doublereal *e, doublecomplex *z__, integer *ldz, doublecomplex *work,
4780 integer *lwork, doublereal *rwork, integer *lrwork, integer *iwork,
4781 integer *liwork, integer *info);
4782
4783/* Subroutine */ int zstein_(integer *n, doublereal *d__, doublereal *e,
4784 integer *m, doublereal *w, integer *iblock, integer *isplit,
4785 doublecomplex *z__, integer *ldz, doublereal *work, integer *iwork,
4786 integer *ifail, integer *info);
4787
4788/* Subroutine */ int zsteqr_(char *compz, integer *n, doublereal *d__,
4789 doublereal *e, doublecomplex *z__, integer *ldz, doublereal *work,
4790 integer *info);
4791
4792/* Subroutine */ int zsycon_(char *uplo, integer *n, doublecomplex *a,
4793 integer *lda, integer *ipiv, doublereal *anorm, doublereal *rcond,
4794 doublecomplex *work, integer *info);
4795
4796/* Subroutine */ int zsymv_(char *uplo, integer *n, doublecomplex *alpha,
4797 doublecomplex *a, integer *lda, doublecomplex *x, integer *incx,
4798 doublecomplex *beta, doublecomplex *y, integer *incy);
4799
4800/* Subroutine */ int zsyr_(char *uplo, integer *n, doublecomplex *alpha,
4801 doublecomplex *x, integer *incx, doublecomplex *a, integer *lda);
4802
4803/* Subroutine */ int zsyrfs_(char *uplo, integer *n, integer *nrhs,
4804 doublecomplex *a, integer *lda, doublecomplex *af, integer *ldaf,
4805 integer *ipiv, doublecomplex *b, integer *ldb, doublecomplex *x,
4806 integer *ldx, doublereal *ferr, doublereal *berr, doublecomplex *work,
4807 doublereal *rwork, integer *info);
4808
4809/* Subroutine */ int zsysv_(char *uplo, integer *n, integer *nrhs,
4810 doublecomplex *a, integer *lda, integer *ipiv, doublecomplex *b,
4811 integer *ldb, doublecomplex *work, integer *lwork, integer *info);
4812
4813/* Subroutine */ int zsysvx_(char *fact, char *uplo, integer *n, integer *
4814 nrhs, doublecomplex *a, integer *lda, doublecomplex *af, integer *
4815 ldaf, integer *ipiv, doublecomplex *b, integer *ldb, doublecomplex *x,
4816 integer *ldx, doublereal *rcond, doublereal *ferr, doublereal *berr,
4817 doublecomplex *work, integer *lwork, doublereal *rwork, integer *info);
4818
4819/* Subroutine */ int zsytf2_(char *uplo, integer *n, doublecomplex *a,
4820 integer *lda, integer *ipiv, integer *info);
4821
4822/* Subroutine */ int zsytrf_(char *uplo, integer *n, doublecomplex *a,
4823 integer *lda, integer *ipiv, doublecomplex *work, integer *lwork,
4824 integer *info);
4825
4826/* Subroutine */ int zsytri_(char *uplo, integer *n, doublecomplex *a,
4827 integer *lda, integer *ipiv, doublecomplex *work, integer *info);
4828
4829/* Subroutine */ int zsytrs_(char *uplo, integer *n, integer *nrhs,
4830 doublecomplex *a, integer *lda, integer *ipiv, doublecomplex *b,
4831 integer *ldb, integer *info);
4832
4833/* Subroutine */ int ztbcon_(char *norm, char *uplo, char *diag, integer *n,
4834 integer *kd, doublecomplex *ab, integer *ldab, doublereal *rcond,
4835 doublecomplex *work, doublereal *rwork, integer *info);
4836
4837/* Subroutine */ int ztbrfs_(char *uplo, char *trans, char *diag, integer *n,
4838 integer *kd, integer *nrhs, doublecomplex *ab, integer *ldab,
4839 doublecomplex *b, integer *ldb, doublecomplex *x, integer *ldx,
4840 doublereal *ferr, doublereal *berr, doublecomplex *work, doublereal *
4841 rwork, integer *info);
4842
4843/* Subroutine */ int ztbtrs_(char *uplo, char *trans, char *diag, integer *n,
4844 integer *kd, integer *nrhs, doublecomplex *ab, integer *ldab,
4845 doublecomplex *b, integer *ldb, integer *info);
4846
4847/* Subroutine */ int ztgevc_(char *side, char *howmny, logical *select,
4848 integer *n, doublecomplex *a, integer *lda, doublecomplex *b, integer
4849 *ldb, doublecomplex *vl, integer *ldvl, doublecomplex *vr, integer *
4850 ldvr, integer *mm, integer *m, doublecomplex *work, doublereal *rwork,
4851 integer *info);
4852
4853/* Subroutine */ int ztgex2_(logical *wantq, logical *wantz, integer *n,
4854 doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb,
4855 doublecomplex *q, integer *ldq, doublecomplex *z__, integer *ldz,
4856 integer *j1, integer *info);
4857
4858/* Subroutine */ int ztgexc_(logical *wantq, logical *wantz, integer *n,
4859 doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb,
4860 doublecomplex *q, integer *ldq, doublecomplex *z__, integer *ldz,
4861 integer *ifst, integer *ilst, integer *info);
4862
4863/* Subroutine */ int ztgsen_(integer *ijob, logical *wantq, logical *wantz,
4864 logical *select, integer *n, doublecomplex *a, integer *lda,
4865 doublecomplex *b, integer *ldb, doublecomplex *alpha, doublecomplex *
4866 beta, doublecomplex *q, integer *ldq, doublecomplex *z__, integer *
4867 ldz, integer *m, doublereal *pl, doublereal *pr, doublereal *dif,
4868 doublecomplex *work, integer *lwork, integer *iwork, integer *liwork,
4869 integer *info);
4870
4871/* Subroutine */ int ztgsja_(char *jobu, char *jobv, char *jobq, integer *m,
4872 integer *p, integer *n, integer *k, integer *l, doublecomplex *a,
4873 integer *lda, doublecomplex *b, integer *ldb, doublereal *tola,
4874 doublereal *tolb, doublereal *alpha, doublereal *beta, doublecomplex *
4875 u, integer *ldu, doublecomplex *v, integer *ldv, doublecomplex *q,
4876 integer *ldq, doublecomplex *work, integer *ncycle, integer *info);
4877
4878/* Subroutine */ int ztgsna_(char *job, char *howmny, logical *select,
4879 integer *n, doublecomplex *a, integer *lda, doublecomplex *b, integer
4880 *ldb, doublecomplex *vl, integer *ldvl, doublecomplex *vr, integer *
4881 ldvr, doublereal *s, doublereal *dif, integer *mm, integer *m,
4882 doublecomplex *work, integer *lwork, integer *iwork, integer *info);
4883
4884/* Subroutine */ int ztgsy2_(char *trans, integer *ijob, integer *m, integer *
4885 n, doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb,
4886 doublecomplex *c__, integer *ldc, doublecomplex *d__, integer *ldd,
4887 doublecomplex *e, integer *lde, doublecomplex *f, integer *ldf,
4888 doublereal *scale, doublereal *rdsum, doublereal *rdscal, integer *
4889 info);
4890
4891/* Subroutine */ int ztgsyl_(char *trans, integer *ijob, integer *m, integer *
4892 n, doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb,
4893 doublecomplex *c__, integer *ldc, doublecomplex *d__, integer *ldd,
4894 doublecomplex *e, integer *lde, doublecomplex *f, integer *ldf,
4895 doublereal *scale, doublereal *dif, doublecomplex *work, integer *
4896 lwork, integer *iwork, integer *info);
4897
4898/* Subroutine */ int ztpcon_(char *norm, char *uplo, char *diag, integer *n,
4899 doublecomplex *ap, doublereal *rcond, doublecomplex *work, doublereal
4900 *rwork, integer *info);
4901
4902/* Subroutine */ int ztprfs_(char *uplo, char *trans, char *diag, integer *n,
4903 integer *nrhs, doublecomplex *ap, doublecomplex *b, integer *ldb,
4904 doublecomplex *x, integer *ldx, doublereal *ferr, doublereal *berr,
4905 doublecomplex *work, doublereal *rwork, integer *info);
4906
4907/* Subroutine */ int ztptri_(char *uplo, char *diag, integer *n,
4908 doublecomplex *ap, integer *info);
4909
4910/* Subroutine */ int ztptrs_(char *uplo, char *trans, char *diag, integer *n,
4911 integer *nrhs, doublecomplex *ap, doublecomplex *b, integer *ldb,
4912 integer *info);
4913
4914/* Subroutine */ int ztrcon_(char *norm, char *uplo, char *diag, integer *n,
4915 doublecomplex *a, integer *lda, doublereal *rcond, doublecomplex *
4916 work, doublereal *rwork, integer *info);
4917
4918/* Subroutine */ int ztrevc_(char *side, char *howmny, logical *select,
4919 integer *n, doublecomplex *t, integer *ldt, doublecomplex *vl,
4920 integer *ldvl, doublecomplex *vr, integer *ldvr, integer *mm, integer
4921 *m, doublecomplex *work, doublereal *rwork, integer *info);
4922
4923/* Subroutine */ int ztrexc_(char *compq, integer *n, doublecomplex *t,
4924 integer *ldt, doublecomplex *q, integer *ldq, integer *ifst, integer *
4925 ilst, integer *info);
4926
4927/* Subroutine */ int ztrrfs_(char *uplo, char *trans, char *diag, integer *n,
4928 integer *nrhs, doublecomplex *a, integer *lda, doublecomplex *b,
4929 integer *ldb, doublecomplex *x, integer *ldx, doublereal *ferr,
4930 doublereal *berr, doublecomplex *work, doublereal *rwork, integer *
4931 info);
4932
4933/* Subroutine */ int ztrsen_(char *job, char *compq, logical *select, integer
4934 *n, doublecomplex *t, integer *ldt, doublecomplex *q, integer *ldq,
4935 doublecomplex *w, integer *m, doublereal *s, doublereal *sep,
4936 doublecomplex *work, integer *lwork, integer *info);
4937
4938/* Subroutine */ int ztrsna_(char *job, char *howmny, logical *select,
4939 integer *n, doublecomplex *t, integer *ldt, doublecomplex *vl,
4940 integer *ldvl, doublecomplex *vr, integer *ldvr, doublereal *s,
4941 doublereal *sep, integer *mm, integer *m, doublecomplex *work,
4942 integer *ldwork, doublereal *rwork, integer *info);
4943
4944/* Subroutine */ int ztrsyl_(char *trana, char *tranb, integer *isgn, integer
4945 *m, integer *n, doublecomplex *a, integer *lda, doublecomplex *b,
4946 integer *ldb, doublecomplex *c__, integer *ldc, doublereal *scale,
4947 integer *info);
4948
4949/* Subroutine */ int ztrti2_(char *uplo, char *diag, integer *n,
4950 doublecomplex *a, integer *lda, integer *info);
4951
4952/* Subroutine */ int ztrtri_(char *uplo, char *diag, integer *n,
4953 doublecomplex *a, integer *lda, integer *info);
4954
4955/* Subroutine */ int ztrtrs_(char *uplo, char *trans, char *diag, integer *n,
4956 integer *nrhs, doublecomplex *a, integer *lda, doublecomplex *b,
4957 integer *ldb, integer *info);
4958
4959/* Subroutine */ int ztzrqf_(integer *m, integer *n, doublecomplex *a,
4960 integer *lda, doublecomplex *tau, integer *info);
4961
4962/* Subroutine */ int ztzrzf_(integer *m, integer *n, doublecomplex *a,
4963 integer *lda, doublecomplex *tau, doublecomplex *work, integer *lwork,
4964 integer *info);
4965
4966/* Subroutine */ int zung2l_(integer *m, integer *n, integer *k,
4967 doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex *
4968 work, integer *info);
4969
4970/* Subroutine */ int zung2r_(integer *m, integer *n, integer *k,
4971 doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex *
4972 work, integer *info);
4973
4974/* Subroutine */ int zungbr_(char *vect, integer *m, integer *n, integer *k,
4975 doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex *
4976 work, integer *lwork, integer *info);
4977
4978/* Subroutine */ int zunghr_(integer *n, integer *ilo, integer *ihi,
4979 doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex *
4980 work, integer *lwork, integer *info);
4981
4982/* Subroutine */ int zungl2_(integer *m, integer *n, integer *k,
4983 doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex *
4984 work, integer *info);
4985
4986/* Subroutine */ int zunglq_(integer *m, integer *n, integer *k,
4987 doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex *
4988 work, integer *lwork, integer *info);
4989
4990/* Subroutine */ int zungql_(integer *m, integer *n, integer *k,
4991 doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex *
4992 work, integer *lwork, integer *info);
4993
4994/* Subroutine */ int zungqr_(integer *m, integer *n, integer *k,
4995 doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex *
4996 work, integer *lwork, integer *info);
4997
4998/* Subroutine */ int zungr2_(integer *m, integer *n, integer *k,
4999 doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex *
5000 work, integer *info);
5001
5002/* Subroutine */ int zungrq_(integer *m, integer *n, integer *k,
5003 doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex *
5004 work, integer *lwork, integer *info);
5005
5006/* Subroutine */ int zungtr_(char *uplo, integer *n, doublecomplex *a,
5007 integer *lda, doublecomplex *tau, doublecomplex *work, integer *lwork,
5008 integer *info);
5009
5010/* Subroutine */ int zunm2l_(char *side, char *trans, integer *m, integer *n,
5011 integer *k, doublecomplex *a, integer *lda, doublecomplex *tau,
5012 doublecomplex *c__, integer *ldc, doublecomplex *work, integer *info);
5013
5014/* Subroutine */ int zunm2r_(char *side, char *trans, integer *m, integer *n,
5015 integer *k, doublecomplex *a, integer *lda, doublecomplex *tau,
5016 doublecomplex *c__, integer *ldc, doublecomplex *work, integer *info);
5017
5018/* Subroutine */ int zunmbr_(char *vect, char *side, char *trans, integer *m,
5019 integer *n, integer *k, doublecomplex *a, integer *lda, doublecomplex
5020 *tau, doublecomplex *c__, integer *ldc, doublecomplex *work, integer *
5021 lwork, integer *info);
5022
5023/* Subroutine */ int zunmhr_(char *side, char *trans, integer *m, integer *n,
5024 integer *ilo, integer *ihi, doublecomplex *a, integer *lda,
5025 doublecomplex *tau, doublecomplex *c__, integer *ldc, doublecomplex *
5026 work, integer *lwork, integer *info);
5027
5028/* Subroutine */ int zunml2_(char *side, char *trans, integer *m, integer *n,
5029 integer *k, doublecomplex *a, integer *lda, doublecomplex *tau,
5030 doublecomplex *c__, integer *ldc, doublecomplex *work, integer *info);
5031
5032/* Subroutine */ int zunmlq_(char *side, char *trans, integer *m, integer *n,
5033 integer *k, doublecomplex *a, integer *lda, doublecomplex *tau,
5034 doublecomplex *c__, integer *ldc, doublecomplex *work, integer *lwork,
5035 integer *info);
5036
5037/* Subroutine */ int zunmql_(char *side, char *trans, integer *m, integer *n,
5038 integer *k, doublecomplex *a, integer *lda, doublecomplex *tau,
5039 doublecomplex *c__, integer *ldc, doublecomplex *work, integer *lwork,
5040 integer *info);
5041
5042/* Subroutine */ int zunmqr_(char *side, char *trans, integer *m, integer *n,
5043 integer *k, doublecomplex *a, integer *lda, doublecomplex *tau,
5044 doublecomplex *c__, integer *ldc, doublecomplex *work, integer *lwork,
5045 integer *info);
5046
5047/* Subroutine */ int zunmr2_(char *side, char *trans, integer *m, integer *n,
5048 integer *k, doublecomplex *a, integer *lda, doublecomplex *tau,
5049 doublecomplex *c__, integer *ldc, doublecomplex *work, integer *info);
5050
5051/* Subroutine */ int zunmr3_(char *side, char *trans, integer *m, integer *n,
5052 integer *k, integer *l, doublecomplex *a, integer *lda, doublecomplex
5053 *tau, doublecomplex *c__, integer *ldc, doublecomplex *work, integer *
5054 info);
5055
5056/* Subroutine */ int zunmrq_(char *side, char *trans, integer *m, integer *n,
5057 integer *k, doublecomplex *a, integer *lda, doublecomplex *tau,
5058 doublecomplex *c__, integer *ldc, doublecomplex *work, integer *lwork,
5059 integer *info);
5060
5061/* Subroutine */ int zunmrz_(char *side, char *trans, integer *m, integer *n,
5062 integer *k, integer *l, doublecomplex *a, integer *lda, doublecomplex
5063 *tau, doublecomplex *c__, integer *ldc, doublecomplex *work, integer *
5064 lwork, integer *info);
5065
5066/* Subroutine */ int zunmtr_(char *side, char *uplo, char *trans, integer *m,
5067 integer *n, doublecomplex *a, integer *lda, doublecomplex *tau,
5068 doublecomplex *c__, integer *ldc, doublecomplex *work, integer *lwork,
5069 integer *info);
5070
5071/* Subroutine */ int zupgtr_(char *uplo, integer *n, doublecomplex *ap,
5072 doublecomplex *tau, doublecomplex *q, integer *ldq, doublecomplex *
5073 work, integer *info);
5074
5075/* Subroutine */ int zupmtr_(char *side, char *uplo, char *trans, integer *m,
5076 integer *n, doublecomplex *ap, doublecomplex *tau, doublecomplex *c__,
5077 integer *ldc, doublecomplex *work, integer *info);
5078
5079#endif /* __CLAPACK_H */
diff --git a/lib/Numeric/LinearAlgebra/LAPACK/lapack-aux.c b/lib/Numeric/LinearAlgebra/LAPACK/lapack-aux.c
index 8cf73e9..1c35376 100644
--- a/lib/Numeric/LinearAlgebra/LAPACK/lapack-aux.c
+++ b/lib/Numeric/LinearAlgebra/LAPACK/lapack-aux.c
@@ -101,6 +101,11 @@ for(k=0; k<(M##r * M##c); k++) { \
101 101
102//////////////////// real svd //////////////////////////////////// 102//////////////////// real svd ////////////////////////////////////
103 103
104/* Subroutine */ int dgesvd_(char *jobu, char *jobvt, integer *m, integer *n,
105 doublereal *a, integer *lda, doublereal *s, doublereal *u, integer *
106 ldu, doublereal *vt, integer *ldvt, doublereal *work, integer *lwork,
107 integer *info);
108
104int svd_l_R(KDMAT(a),DMAT(u), DVEC(s),DMAT(v)) { 109int svd_l_R(KDMAT(a),DMAT(u), DVEC(s),DMAT(v)) {
105 integer m = ar; 110 integer m = ar;
106 integer n = ac; 111 integer n = ac;
@@ -159,6 +164,11 @@ int svd_l_R(KDMAT(a),DMAT(u), DVEC(s),DMAT(v)) {
159 164
160// (alternative version) 165// (alternative version)
161 166
167/* Subroutine */ int dgesdd_(char *jobz, integer *m, integer *n, doublereal *
168 a, integer *lda, doublereal *s, doublereal *u, integer *ldu,
169 doublereal *vt, integer *ldvt, doublereal *work, integer *lwork,
170 integer *iwork, integer *info);
171
162int svd_l_Rdd(KDMAT(a),DMAT(u), DVEC(s),DMAT(v)) { 172int svd_l_Rdd(KDMAT(a),DMAT(u), DVEC(s),DMAT(v)) {
163 integer m = ar; 173 integer m = ar;
164 integer n = ac; 174 integer n = ac;
@@ -331,6 +341,11 @@ int svd_l_Cdd(KCMAT(a),CMAT(u), DVEC(s),CMAT(v)) {
331 341
332//////////////////// general complex eigensystem //////////// 342//////////////////// general complex eigensystem ////////////
333 343
344/* Subroutine */ int zgeev_(char *jobvl, char *jobvr, integer *n,
345 doublecomplex *a, integer *lda, doublecomplex *w, doublecomplex *vl,
346 integer *ldvl, doublecomplex *vr, integer *ldvr, doublecomplex *work,
347 integer *lwork, doublereal *rwork, integer *info);
348
334int eig_l_C(KCMAT(a), CMAT(u), CVEC(s),CMAT(v)) { 349int eig_l_C(KCMAT(a), CMAT(u), CVEC(s),CMAT(v)) {
335 integer n = ar; 350 integer n = ar;
336 REQUIRES(ac==n && sn==n, BAD_SIZE); 351 REQUIRES(ac==n && sn==n, BAD_SIZE);
@@ -381,6 +396,11 @@ int eig_l_C(KCMAT(a), CMAT(u), CVEC(s),CMAT(v)) {
381 396
382//////////////////// general real eigensystem //////////// 397//////////////////// general real eigensystem ////////////
383 398
399/* Subroutine */ int dgeev_(char *jobvl, char *jobvr, integer *n, doublereal *
400 a, integer *lda, doublereal *wr, doublereal *wi, doublereal *vl,
401 integer *ldvl, doublereal *vr, integer *ldvr, doublereal *work,
402 integer *lwork, integer *info);
403
384int eig_l_R(KDMAT(a),DMAT(u), CVEC(s),DMAT(v)) { 404int eig_l_R(KDMAT(a),DMAT(u), CVEC(s),DMAT(v)) {
385 integer n = ar; 405 integer n = ar;
386 REQUIRES(ac==n && sn==n, BAD_SIZE); 406 REQUIRES(ac==n && sn==n, BAD_SIZE);
@@ -425,6 +445,9 @@ int eig_l_R(KDMAT(a),DMAT(u), CVEC(s),DMAT(v)) {
425 445
426//////////////////// symmetric real eigensystem //////////// 446//////////////////// symmetric real eigensystem ////////////
427 447
448/* Subroutine */ int dsyev_(char *jobz, char *uplo, integer *n, doublereal *a,
449 integer *lda, doublereal *w, doublereal *work, integer *lwork,
450 integer *info);
428 451
429int eig_l_S(int wantV,KDMAT(a),DVEC(s),DMAT(v)) { 452int eig_l_S(int wantV,KDMAT(a),DVEC(s),DMAT(v)) {
430 integer n = ar; 453 integer n = ar;
@@ -460,6 +483,10 @@ int eig_l_S(int wantV,KDMAT(a),DVEC(s),DMAT(v)) {
460 483
461//////////////////// hermitian complex eigensystem //////////// 484//////////////////// hermitian complex eigensystem ////////////
462 485
486/* Subroutine */ int zheev_(char *jobz, char *uplo, integer *n, doublecomplex
487 *a, integer *lda, doublereal *w, doublecomplex *work, integer *lwork,
488 doublereal *rwork, integer *info);
489
463int eig_l_H(int wantV,KCMAT(a),DVEC(s),CMAT(v)) { 490int eig_l_H(int wantV,KCMAT(a),DVEC(s),CMAT(v)) {
464 integer n = ar; 491 integer n = ar;
465 REQUIRES(ac==n && sn==n, BAD_SIZE); 492 REQUIRES(ac==n && sn==n, BAD_SIZE);
@@ -499,6 +526,9 @@ int eig_l_H(int wantV,KCMAT(a),DVEC(s),CMAT(v)) {
499 526
500//////////////////// general real linear system //////////// 527//////////////////// general real linear system ////////////
501 528
529/* Subroutine */ int dgesv_(integer *n, integer *nrhs, doublereal *a, integer
530 *lda, integer *ipiv, doublereal *b, integer *ldb, integer *info);
531
502int linearSolveR_l(KDMAT(a),KDMAT(b),DMAT(x)) { 532int linearSolveR_l(KDMAT(a),KDMAT(b),DMAT(x)) {
503 integer n = ar; 533 integer n = ar;
504 integer nhrs = bc; 534 integer nhrs = bc;
@@ -525,6 +555,10 @@ int linearSolveR_l(KDMAT(a),KDMAT(b),DMAT(x)) {
525 555
526//////////////////// general complex linear system //////////// 556//////////////////// general complex linear system ////////////
527 557
558/* Subroutine */ int zgesv_(integer *n, integer *nrhs, doublecomplex *a,
559 integer *lda, integer *ipiv, doublecomplex *b, integer *ldb, integer *
560 info);
561
528int linearSolveC_l(KCMAT(a),KCMAT(b),CMAT(x)) { 562int linearSolveC_l(KCMAT(a),KCMAT(b),CMAT(x)) {
529 integer n = ar; 563 integer n = ar;
530 integer nhrs = bc; 564 integer nhrs = bc;
@@ -551,6 +585,10 @@ int linearSolveC_l(KCMAT(a),KCMAT(b),CMAT(x)) {
551 585
552//////// symmetric positive definite real linear system using Cholesky //////////// 586//////// symmetric positive definite real linear system using Cholesky ////////////
553 587
588/* Subroutine */ int dpotrs_(char *uplo, integer *n, integer *nrhs,
589 doublereal *a, integer *lda, doublereal *b, integer *ldb, integer *
590 info);
591
554int cholSolveR_l(KDMAT(a),KDMAT(b),DMAT(x)) { 592int cholSolveR_l(KDMAT(a),KDMAT(b),DMAT(x)) {
555 integer n = ar; 593 integer n = ar;
556 integer nhrs = bc; 594 integer nhrs = bc;
@@ -569,6 +607,10 @@ int cholSolveR_l(KDMAT(a),KDMAT(b),DMAT(x)) {
569 607
570//////// Hermitian positive definite real linear system using Cholesky //////////// 608//////// Hermitian positive definite real linear system using Cholesky ////////////
571 609
610/* Subroutine */ int zpotrs_(char *uplo, integer *n, integer *nrhs,
611 doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb,
612 integer *info);
613
572int cholSolveC_l(KCMAT(a),KCMAT(b),CMAT(x)) { 614int cholSolveC_l(KCMAT(a),KCMAT(b),CMAT(x)) {
573 integer n = ar; 615 integer n = ar;
574 integer nhrs = bc; 616 integer nhrs = bc;
@@ -587,6 +629,10 @@ int cholSolveC_l(KCMAT(a),KCMAT(b),CMAT(x)) {
587 629
588//////////////////// least squares real linear system //////////// 630//////////////////// least squares real linear system ////////////
589 631
632/* Subroutine */ int dgels_(char *trans, integer *m, integer *n, integer *
633 nrhs, doublereal *a, integer *lda, doublereal *b, integer *ldb,
634 doublereal *work, integer *lwork, integer *info);
635
590int linearSolveLSR_l(KDMAT(a),KDMAT(b),DMAT(x)) { 636int linearSolveLSR_l(KDMAT(a),KDMAT(b),DMAT(x)) {
591 integer m = ar; 637 integer m = ar;
592 integer n = ac; 638 integer n = ac;
@@ -631,6 +677,10 @@ int linearSolveLSR_l(KDMAT(a),KDMAT(b),DMAT(x)) {
631 677
632//////////////////// least squares complex linear system //////////// 678//////////////////// least squares complex linear system ////////////
633 679
680/* Subroutine */ int zgels_(char *trans, integer *m, integer *n, integer *
681 nrhs, doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb,
682 doublecomplex *work, integer *lwork, integer *info);
683
634int linearSolveLSC_l(KCMAT(a),KCMAT(b),CMAT(x)) { 684int linearSolveLSC_l(KCMAT(a),KCMAT(b),CMAT(x)) {
635 integer m = ar; 685 integer m = ar;
636 integer n = ac; 686 integer n = ac;
@@ -675,6 +725,11 @@ int linearSolveLSC_l(KCMAT(a),KCMAT(b),CMAT(x)) {
675 725
676//////////////////// least squares real linear system using SVD //////////// 726//////////////////// least squares real linear system using SVD ////////////
677 727
728/* Subroutine */ int dgelss_(integer *m, integer *n, integer *nrhs,
729 doublereal *a, integer *lda, doublereal *b, integer *ldb, doublereal *
730 s, doublereal *rcond, integer *rank, doublereal *work, integer *lwork,
731 integer *info);
732
678int linearSolveSVDR_l(double rcond,KDMAT(a),KDMAT(b),DMAT(x)) { 733int linearSolveSVDR_l(double rcond,KDMAT(a),KDMAT(b),DMAT(x)) {
679 integer m = ar; 734 integer m = ar;
680 integer n = ac; 735 integer n = ac;
@@ -789,6 +844,9 @@ int linearSolveSVDC_l(double rcond, KCMAT(a),KCMAT(b),CMAT(x)) {
789 844
790//////////////////// Cholesky factorization ///////////////////////// 845//////////////////// Cholesky factorization /////////////////////////
791 846
847/* Subroutine */ int zpotrf_(char *uplo, integer *n, doublecomplex *a,
848 integer *lda, integer *info);
849
792int chol_l_H(KCMAT(a),CMAT(l)) { 850int chol_l_H(KCMAT(a),CMAT(l)) {
793 integer n = ar; 851 integer n = ar;
794 REQUIRES(n>=1 && ac == n && lr==n && lc==n,BAD_SIZE); 852 REQUIRES(n>=1 && ac == n && lr==n && lc==n,BAD_SIZE);
@@ -809,6 +867,10 @@ int chol_l_H(KCMAT(a),CMAT(l)) {
809 OK 867 OK
810} 868}
811 869
870
871/* Subroutine */ int dpotrf_(char *uplo, integer *n, doublereal *a, integer *
872 lda, integer *info);
873
812int chol_l_S(KDMAT(a),DMAT(l)) { 874int chol_l_S(KDMAT(a),DMAT(l)) {
813 integer n = ar; 875 integer n = ar;
814 REQUIRES(n>=1 && ac == n && lr==n && lc==n,BAD_SIZE); 876 REQUIRES(n>=1 && ac == n && lr==n && lc==n,BAD_SIZE);
@@ -830,6 +892,9 @@ int chol_l_S(KDMAT(a),DMAT(l)) {
830 892
831//////////////////// QR factorization ///////////////////////// 893//////////////////// QR factorization /////////////////////////
832 894
895/* Subroutine */ int dgeqr2_(integer *m, integer *n, doublereal *a, integer *
896 lda, doublereal *tau, doublereal *work, integer *info);
897
833int qr_l_R(KDMAT(a), DVEC(tau), DMAT(r)) { 898int qr_l_R(KDMAT(a), DVEC(tau), DMAT(r)) {
834 integer m = ar; 899 integer m = ar;
835 integer n = ac; 900 integer n = ac;
@@ -846,6 +911,9 @@ int qr_l_R(KDMAT(a), DVEC(tau), DMAT(r)) {
846 OK 911 OK
847} 912}
848 913
914/* Subroutine */ int zgeqr2_(integer *m, integer *n, doublecomplex *a,
915 integer *lda, doublecomplex *tau, doublecomplex *work, integer *info);
916
849int qr_l_C(KCMAT(a), CVEC(tau), CMAT(r)) { 917int qr_l_C(KCMAT(a), CVEC(tau), CMAT(r)) {
850 integer m = ar; 918 integer m = ar;
851 integer n = ac; 919 integer n = ac;
@@ -864,6 +932,10 @@ int qr_l_C(KCMAT(a), CVEC(tau), CMAT(r)) {
864 932
865//////////////////// Hessenberg factorization ///////////////////////// 933//////////////////// Hessenberg factorization /////////////////////////
866 934
935/* Subroutine */ int dgehrd_(integer *n, integer *ilo, integer *ihi,
936 doublereal *a, integer *lda, doublereal *tau, doublereal *work,
937 integer *lwork, integer *info);
938
867int hess_l_R(KDMAT(a), DVEC(tau), DMAT(r)) { 939int hess_l_R(KDMAT(a), DVEC(tau), DMAT(r)) {
868 integer m = ar; 940 integer m = ar;
869 integer n = ac; 941 integer n = ac;
@@ -882,6 +954,11 @@ int hess_l_R(KDMAT(a), DVEC(tau), DMAT(r)) {
882 OK 954 OK
883} 955}
884 956
957
958/* Subroutine */ int zgehrd_(integer *n, integer *ilo, integer *ihi,
959 doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex *
960 work, integer *lwork, integer *info);
961
885int hess_l_C(KCMAT(a), CVEC(tau), CMAT(r)) { 962int hess_l_C(KCMAT(a), CVEC(tau), CMAT(r)) {
886 integer m = ar; 963 integer m = ar;
887 integer n = ac; 964 integer n = ac;
@@ -902,6 +979,11 @@ int hess_l_C(KCMAT(a), CVEC(tau), CMAT(r)) {
902 979
903//////////////////// Schur factorization ///////////////////////// 980//////////////////// Schur factorization /////////////////////////
904 981
982/* Subroutine */ int dgees_(char *jobvs, char *sort, L_fp select, integer *n,
983 doublereal *a, integer *lda, integer *sdim, doublereal *wr,
984 doublereal *wi, doublereal *vs, integer *ldvs, doublereal *work,
985 integer *lwork, logical *bwork, integer *info);
986
905int schur_l_R(KDMAT(a), DMAT(u), DMAT(s)) { 987int schur_l_R(KDMAT(a), DMAT(u), DMAT(s)) {
906 integer m = ar; 988 integer m = ar;
907 integer n = ac; 989 integer n = ac;
@@ -936,6 +1018,12 @@ int schur_l_R(KDMAT(a), DMAT(u), DMAT(s)) {
936 OK 1018 OK
937} 1019}
938 1020
1021
1022/* Subroutine */ int zgees_(char *jobvs, char *sort, L_fp select, integer *n,
1023 doublecomplex *a, integer *lda, integer *sdim, doublecomplex *w,
1024 doublecomplex *vs, integer *ldvs, doublecomplex *work, integer *lwork,
1025 doublereal *rwork, logical *bwork, integer *info);
1026
939int schur_l_C(KCMAT(a), CMAT(u), CMAT(s)) { 1027int schur_l_C(KCMAT(a), CMAT(u), CMAT(s)) {
940 integer m = ar; 1028 integer m = ar;
941 integer n = ac; 1029 integer n = ac;
@@ -965,6 +1053,9 @@ int schur_l_C(KCMAT(a), CMAT(u), CMAT(s)) {
965 1053
966//////////////////// LU factorization ///////////////////////// 1054//////////////////// LU factorization /////////////////////////
967 1055
1056/* Subroutine */ int dgetrf_(integer *m, integer *n, doublereal *a, integer *
1057 lda, integer *ipiv, integer *info);
1058
968int lu_l_R(KDMAT(a), DVEC(ipiv), DMAT(r)) { 1059int lu_l_R(KDMAT(a), DVEC(ipiv), DMAT(r)) {
969 integer m = ar; 1060 integer m = ar;
970 integer n = ac; 1061 integer n = ac;
@@ -987,6 +1078,10 @@ int lu_l_R(KDMAT(a), DVEC(ipiv), DMAT(r)) {
987 OK 1078 OK
988} 1079}
989 1080
1081
1082/* Subroutine */ int zgetrf_(integer *m, integer *n, doublecomplex *a,
1083 integer *lda, integer *ipiv, integer *info);
1084
990int lu_l_C(KCMAT(a), DVEC(ipiv), CMAT(r)) { 1085int lu_l_C(KCMAT(a), DVEC(ipiv), CMAT(r)) {
991 integer m = ar; 1086 integer m = ar;
992 integer n = ac; 1087 integer n = ac;
@@ -1012,6 +1107,10 @@ int lu_l_C(KCMAT(a), DVEC(ipiv), CMAT(r)) {
1012 1107
1013//////////////////// LU substitution ///////////////////////// 1108//////////////////// LU substitution /////////////////////////
1014 1109
1110/* Subroutine */ int dgetrs_(char *trans, integer *n, integer *nrhs,
1111 doublereal *a, integer *lda, integer *ipiv, doublereal *b, integer *
1112 ldb, integer *info);
1113
1015int luS_l_R(KDMAT(a), KDVEC(ipiv), KDMAT(b), DMAT(x)) { 1114int luS_l_R(KDMAT(a), KDVEC(ipiv), KDMAT(b), DMAT(x)) {
1016 integer m = ar; 1115 integer m = ar;
1017 integer n = ac; 1116 integer n = ac;
@@ -1032,6 +1131,11 @@ int luS_l_R(KDMAT(a), KDVEC(ipiv), KDMAT(b), DMAT(x)) {
1032 OK 1131 OK
1033} 1132}
1034 1133
1134
1135/* Subroutine */ int zgetrs_(char *trans, integer *n, integer *nrhs,
1136 doublecomplex *a, integer *lda, integer *ipiv, doublecomplex *b,
1137 integer *ldb, integer *info);
1138
1035int luS_l_C(KCMAT(a), KDVEC(ipiv), KCMAT(b), CMAT(x)) { 1139int luS_l_C(KCMAT(a), KDVEC(ipiv), KCMAT(b), CMAT(x)) {
1036 integer m = ar; 1140 integer m = ar;
1037 integer n = ac; 1141 integer n = ac;
diff --git a/lib/Numeric/LinearAlgebra/LAPACK/lapack-aux.h b/lib/Numeric/LinearAlgebra/LAPACK/lapack-aux.h
index 9526583..a3f1899 100644
--- a/lib/Numeric/LinearAlgebra/LAPACK/lapack-aux.h
+++ b/lib/Numeric/LinearAlgebra/LAPACK/lapack-aux.h
@@ -36,10 +36,6 @@ typedef short ftnlen;
36 36
37/********************************************************/ 37/********************************************************/
38 38
39#include "clapack.h"
40
41/********************************************************/
42
43#define FVEC(A) int A##n, float*A##p 39#define FVEC(A) int A##n, float*A##p
44#define DVEC(A) int A##n, double*A##p 40#define DVEC(A) int A##n, double*A##p
45#define QVEC(A) int A##n, complex*A##p 41#define QVEC(A) int A##n, complex*A##p
@@ -62,70 +58,3 @@ typedef short ftnlen;
62#define KCMAT(A) int A##r, int A##c, const doublecomplex* A##p 58#define KCMAT(A) int A##r, int A##c, const doublecomplex* A##p
63#define KPMAT(A) int A##r, int A##c, const void* A##p, int A##s 59#define KPMAT(A) int A##r, int A##c, const void* A##p, int A##s
64 60
65/********************************************************/
66
67int multiplyF(int ta, int tb, KFMAT(a),KFMAT(b),FMAT(r));
68int multiplyR(int ta, int tb, KDMAT(a),KDMAT(b),DMAT(r));
69int multiplyC(int ta, int tb, KCMAT(a),KCMAT(b),CMAT(r));
70int multiplyQ(int ta, int tb, KQMAT(a),KQMAT(b),QMAT(r));
71
72int transF(KFMAT(x),FMAT(t));
73int transR(KDMAT(x),DMAT(t));
74int transQ(KQMAT(x),QMAT(t));
75int transC(KCMAT(x),CMAT(t));
76int transP(KPMAT(x),PMAT(t));
77
78int constantF(float * pval, FVEC(r));
79int constantR(double * pval, DVEC(r));
80int constantQ(complex* pval, QVEC(r));
81int constantC(doublecomplex* pval, CVEC(r));
82int constantP(void* pval, PVEC(r));
83
84int float2double(FVEC(x),DVEC(y));
85int double2float(DVEC(x),FVEC(y));
86
87int conjugateQ(KQVEC(x),QVEC(t));
88int conjugateC(KCVEC(x),CVEC(t));
89
90int stepF(FVEC(x),FVEC(y));
91int stepD(DVEC(x),DVEC(y));
92
93int condF(FVEC(x),FVEC(y),FVEC(lt),FVEC(eq),FVEC(gt),FVEC(r));
94int condD(DVEC(x),DVEC(y),DVEC(lt),DVEC(eq),DVEC(gt),DVEC(r));
95
96int svd_l_R(KDMAT(x),DMAT(u),DVEC(s),DMAT(v));
97int svd_l_Rdd(KDMAT(x),DMAT(u),DVEC(s),DMAT(v));
98int svd_l_C(KCMAT(a),CMAT(u),DVEC(s),CMAT(v));
99
100int eig_l_C(KCMAT(a),CMAT(u),CVEC(s),CMAT(v));
101int eig_l_R(KDMAT(a),DMAT(u),CVEC(s),DMAT(v));
102
103int eig_l_S(int,KDMAT(a),DVEC(s),DMAT(v));
104int eig_l_H(int,KCMAT(a),DVEC(s),CMAT(v));
105
106int linearSolveR_l(KDMAT(a),KDMAT(b),DMAT(x));
107int linearSolveC_l(KCMAT(a),KCMAT(b),CMAT(x));
108
109int linearSolveLSR_l(KDMAT(a),KDMAT(b),DMAT(x));
110int linearSolveLSC_l(KCMAT(a),KCMAT(b),CMAT(x));
111
112int linearSolveSVDR_l(double,KDMAT(a),KDMAT(b),DMAT(x));
113int linearSolveSVDC_l(double,KCMAT(a),KCMAT(b),CMAT(x));
114
115int chol_l_H(KCMAT(a),CMAT(r));
116int chol_l_S(KDMAT(a),DMAT(r));
117
118int qr_l_R(KDMAT(a), DVEC(tau), DMAT(r));
119int qr_l_C(KCMAT(a), CVEC(tau), CMAT(r));
120
121int hess_l_R(KDMAT(a), DVEC(tau), DMAT(r));
122int hess_l_C(KCMAT(a), CVEC(tau), CMAT(r));
123
124int schur_l_R(KDMAT(a), DMAT(u), DMAT(s));
125int schur_l_C(KCMAT(a), CMAT(u), CMAT(s));
126
127int lu_l_R(KDMAT(a), DVEC(ipiv), DMAT(r));
128int lu_l_C(KCMAT(a), DVEC(ipiv), CMAT(r));
129
130int luS_l_R(KDMAT(a), KDVEC(ipiv), KDMAT(b), DMAT(x));
131int luS_l_C(KCMAT(a), KDVEC(ipiv), KCMAT(b), CMAT(x));
diff --git a/lib/Numeric/LinearAlgebra/Util.hs b/lib/Numeric/LinearAlgebra/Util.hs
index c4e4007..39566ab 100644
--- a/lib/Numeric/LinearAlgebra/Util.hs
+++ b/lib/Numeric/LinearAlgebra/Util.hs
@@ -2,7 +2,7 @@
2----------------------------------------------------------------------------- 2-----------------------------------------------------------------------------
3{- | 3{- |
4Module : Numeric.LinearAlgebra.Util 4Module : Numeric.LinearAlgebra.Util
5Copyright : (c) Alberto Ruiz 2012 5Copyright : (c) Alberto Ruiz 2013
6License : GPL 6License : GPL
7 7
8Maintainer : Alberto Ruiz (aruiz at um dot es) 8Maintainer : Alberto Ruiz (aruiz at um dot es)
@@ -12,16 +12,24 @@ Stability : provisional
12----------------------------------------------------------------------------- 12-----------------------------------------------------------------------------
13 13
14module Numeric.LinearAlgebra.Util( 14module Numeric.LinearAlgebra.Util(
15 -- * Convenience functions for real elements 15
16 disp, 16 -- * Convenience functions
17 size, disp,
17 zeros, ones, 18 zeros, ones,
18 diagl, 19 diagl,
19 row, 20 row,
20 col, 21 col,
21 (&),(!), (#), 22 (&),(!), (¦), (#),
23 (?),(¿),
22 rand, randn, 24 rand, randn,
23 cross, 25 cross,
24 norm, 26 norm,
27 unitary,
28 mt,
29 pairwiseD2,
30 rowOuters,
31 null1,
32 null1sym,
25 -- * Convolution 33 -- * Convolution
26 -- ** 1D 34 -- ** 1D
27 corr, conv, corrMin, 35 corr, conv, corrMin,
@@ -40,7 +48,11 @@ module Numeric.LinearAlgebra.Util(
40 vtrans 48 vtrans
41) where 49) where
42 50
43import Numeric.LinearAlgebra hiding (i) 51import Numeric.Container
52import Numeric.LinearAlgebra.Algorithms hiding (i)
53import Numeric.Matrix()
54import Numeric.Vector()
55
44import System.Random(randomIO) 56import System.Random(randomIO)
45import Numeric.LinearAlgebra.Util.Convolution 57import Numeric.LinearAlgebra.Util.Convolution
46 58
@@ -92,6 +104,11 @@ infixl 3 !
92(!) :: Matrix Double -> Matrix Double -> Matrix Double 104(!) :: Matrix Double -> Matrix Double -> Matrix Double
93a ! b = fromBlocks [[a,b]] 105a ! b = fromBlocks [[a,b]]
94 106
107-- | (00A6) horizontal concatenation of real matrices
108infixl 3 ¦
109(¦) :: Matrix Double -> Matrix Double -> Matrix Double
110a ¦ b = fromBlocks [[a,b]]
111
95-- | vertical concatenation of real matrices 112-- | vertical concatenation of real matrices
96(#) :: Matrix Double -> Matrix Double -> Matrix Double 113(#) :: Matrix Double -> Matrix Double -> Matrix Double
97infixl 2 # 114infixl 2 #
@@ -105,6 +122,17 @@ row = asRow . fromList
105col :: [Double] -> Matrix Double 122col :: [Double] -> Matrix Double
106col = asColumn . fromList 123col = asColumn . fromList
107 124
125-- | extract selected rows
126infixl 9 ?
127(?) :: Element t => Matrix t -> [Int] -> Matrix t
128(?) = flip extractRows
129
130-- | (00BF) extract selected columns
131infixl 9 ¿
132(¿) :: Element t => Matrix t -> [Int] -> Matrix t
133m ¿ ks = trans . extractRows ks . trans $ m
134
135
108cross :: Vector Double -> Vector Double -> Vector Double 136cross :: Vector Double -> Vector Double -> Vector Double
109-- ^ cross product (for three-element real vectors) 137-- ^ cross product (for three-element real vectors)
110cross x y | dim x == 3 && dim y == 3 = fromList [z1,z2,z3] 138cross x y | dim x == 3 && dim y == 3 = fromList [z1,z2,z3]
@@ -120,6 +148,55 @@ norm :: Vector Double -> Double
120-- ^ 2-norm of real vector 148-- ^ 2-norm of real vector
121norm = pnorm PNorm2 149norm = pnorm PNorm2
122 150
151
152-- | Obtains a vector in the same direction with 2-norm=1
153unitary :: Vector Double -> Vector Double
154unitary v = v / scalar (norm v)
155
156-- | (rows &&& cols)
157size :: Matrix t -> (Int, Int)
158size m = (rows m, cols m)
159
160-- | trans . inv
161mt :: Matrix Double -> Matrix Double
162mt = trans . inv
163
164----------------------------------------------------------------------
165
166-- | Matrix of pairwise squared distances of row vectors
167-- (using the matrix product trick in blog.smola.org)
168pairwiseD2 :: Matrix Double -> Matrix Double -> Matrix Double
169pairwiseD2 x y | ok = x2 `outer` oy + ox `outer` y2 - 2* x <> trans y
170 | otherwise = error $ "pairwiseD2 with different number of columns: "
171 ++ show (size x) ++ ", " ++ show (size y)
172 where
173 ox = one (rows x)
174 oy = one (rows y)
175 oc = one (cols x)
176 one k = constant 1 k
177 x2 = x * x <> oc
178 y2 = y * y <> oc
179 ok = cols x == cols y
180
181--------------------------------------------------------------------------------
182
183-- | outer products of rows
184rowOuters :: Matrix Double -> Matrix Double -> Matrix Double
185rowOuters a b = a' * b'
186 where
187 a' = kronecker a (ones 1 (cols b))
188 b' = kronecker (ones 1 (cols a)) b
189
190--------------------------------------------------------------------------------
191
192-- | solution of overconstrained homogeneous linear system
193null1 :: Matrix Double -> Vector Double
194null1 = last . toColumns . snd . rightSV
195
196-- | solution of overconstrained homogeneous symmetric linear system
197null1sym :: Matrix Double -> Vector Double
198null1sym = last . toColumns . snd . eigSH'
199
123-------------------------------------------------------------------------------- 200--------------------------------------------------------------------------------
124 201
125vec :: Element t => Matrix t -> Vector t 202vec :: Element t => Matrix t -> Vector t
diff --git a/lib/Numeric/Vector.hs b/lib/Numeric/Vector.hs
index 1717e7b..3f480a0 100644
--- a/lib/Numeric/Vector.hs
+++ b/lib/Numeric/Vector.hs
@@ -25,33 +25,6 @@ import Numeric.Container
25 25
26------------------------------------------------------------------- 26-------------------------------------------------------------------
27 27
28#ifndef VECTOR
29import Foreign(Storable)
30#endif
31
32------------------------------------------------------------------
33
34#ifndef VECTOR
35
36instance (Show a, Storable a) => (Show (Vector a)) where
37 show v = (show (dim v))++" |> " ++ show (toList v)
38
39instance Container Vector a => Eq (Vector a) where
40 (==) = equal
41
42instance (Element a, Read a) => Read (Vector a) where
43 readsPrec _ s = [((d |>) . read $ listnums, rest)]
44 where (thing,rest) = breakAt ']' s
45 (dims,listnums) = breakAt '>' thing
46 d = read . init . fst . breakAt '|' $ dims
47 breakAt c l = (a++[c],tail b) where
48 (a,b) = break (==c) l
49
50#endif
51
52
53------------------------------------------------------------------
54
55adaptScalar f1 f2 f3 x y 28adaptScalar f1 f2 f3 x y
56 | dim x == 1 = f1 (x@>0) y 29 | dim x == 1 = f1 (x@>0) y
57 | dim y == 1 = f3 x (y@>0) 30 | dim y == 1 = f3 x (y@>0)