úÎgİEÿ€      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹Œ‘ ’ “ ” • – — ˜ ™ š › œ Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍ Î Ï Ğ Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü İ Ş ß à á â ã ä å æ ç è é ê ë ì í î ï ğ ñ ò óôõö÷øùúûüışÿ      !"#$% & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ `abcdefghijklmnopqrstuvwxyz{|}~ portable (uses FFI) provisionalAlberto Ruiz <aruiz@um.es>"€‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ ¡"€‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ ¡"€‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ ¡portable (uses FFI) provisionalAlberto Ruiz <aruiz@um.es>¢description of GSL error codes £clear the fpu ¤splitEvery 3 [1..9] == [[1,2,3],[4,5,6],[7,8,9]]¥1obtains the common value of a property of a list ¦common value with " adaptable" 1 §Formatting tool postfix function application (flip ($)) ¨specialized fromIntegral ©Aerror codes for the auxiliary functions required by the wrappers check the error code ª&Error capture and conversion to Maybe ¤¥¦§¨ ª ¤¥¦§¨ ªportable (uses FFI) provisionalAlberto Ruiz <aruiz@um.es>!«¬­® FOne-dimensional array of objects stored in a contiguous memory block. ¯°offset of first element ±number of elements ²$foreign pointer to the memory block (Same convention as in Roman Leshchinskiy's vector package. Number of elements creates a Vector from a list: > fromList [2,3,5,7] 4 |> [2.0,3.0,5.0,7.0]³'extracts the Vector elements to a list > toList (linspace 5 (1,10)) [1.0,3.25,5.5,7.75,10.0]An alternative to $ with explicit dimension. The input F list is explicitly truncated if it is too long, so it may safely 1 be used, for instance, with infinite lists. >This is the format used in the instances for Show (Vector a). ´1access to Vector elements without range checking µ/access to Vector elements with range checking. 5takes a number of consecutive elements from a Vector  > subVector 2 3 (fromList [1..10]) 3 |> [3.0,4.0,5.0]index of the starting element number of elements to extract source result Reads a vector position: > fromList [0..9] @> 7 7.02creates a new Vector by joining a list of Vectors > join [fromList [1..5], constant 1 3] %8 |> [1.0,2.0,3.0,4.0,5.0,1.0,1.0,1.0]3Extract consecutive subvectors of the given sizes.  > takesV [3,4] (linspace 10 (1,10)) [3 |> [1.0,2.0,3.0],4 |> [4.0,5.0,6.0,7.0]]¶Ztransforms a complex vector into a real vector with alternating real and imaginary parts ·Ytransforms a real vector into a complex vector with alternating real and imaginary parts ¸map on Vectors zipWith for Vectors ULoads a vector from an ASCII file (the number of elements must be known in advance). TSaves the elements of a vector, with a given format (%f, %e, %g), to an ASCII file. !ULoads a vector from a binary file (the number of elements must be known in advance). "1Saves the elements of a vector to a binary file.  ¹´ºµ¶·¸ !" ´µ¶·¸ !"portable (uses FFI) provisionalAlberto Ruiz <aruiz@um.es>/»¼½¾¿#Auxiliary class. À(r0,c0) starting position  (rt,ct) dimensions of submatrix ÁÂÃ$@Matrix representation suitable for GSL and LAPACK computations. ÄÅÆÇÈÉ%&'()*+Matrix transpose. ,-./*Creates a vector by concatenation of rows > flatten (ident 3) )9 |> [1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0]0the inverse of Data.Packed.Matrix.fromLists 1(Create a matrix from a list of vectors. + All vectors must have the same dimension, 6 or dimension 1, which is are automatically expanded. 23extracts the rows of a matrix as a list of vectors 34Creates a matrix from a list of vectors, as columns 47Creates a list of vectors from the columns of a matrix 5Reads a matrix position. 67›Creates a matrix from a vector by grouping the elements in rows with the desired number of columns. (GNU-Octave groups by columns. To do it you can define reshapeF r = trans . reshape r (where r is the desired number of rows.) > reshape 4 ( [1..12]) (3><4)  [ 1.0, 2.0, 3.0, 4.0  , 5.0, 6.0, 7.0, 8.0  , 9.0, 10.0, 11.0, 12.0 ]8Bapplication of a vector function on the flattened matrix elements 9Dapplication of a vector function on the flattened matrices elements ÊËÌÍ:$Extracts a submatrix from a matrix. (r0,c0) starting position  (rt,ct) dimensions of submatrix  input matrix result Î2obtains the complex conjugate of a complex vector ÏDcreates a complex vector from vectors with real and imaginary parts Ğthe inverse of  toComplex ;"Saves a matrix as 2D ASCII table. format (%f, %g, %e) '#ÀÁÂ$ÄÅÆÇÈÉ%&'()*+,-./012345Ñ67Ò89:ÎÏĞ;%#ÀÁÂÀÁÂ$ÆÄÇÈÉÇÈÅÄÅÆÇÈÉ%'&&'()*+,-./0123456789:ÎÏĞ;portable (uses FFI) provisionalAlberto Ruiz <aruiz@um.es>:ÓÔÕÖרÙÚ<=>normal distribution with mean zero and standard deviation one >uniform distribution in [0,1) ?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefVobtains different functions of a vector: norm1, norm2, max, min, posmax, posmin, etc. g(map of real vectors with given function h+map of complex vectors with given function i(map of real vectors with given function j+map of complex vectors with given function k&elementwise operation on real vectors l)elementwise operation on complex vectors m‡Obtains a vector of pseudorandom elements from the the mt19937 generator in GSL, with a given seed. Use randomIO to get a random seed. seed  distribution  vector size 2<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm2?EDCBA@fTedcba`_^]\[ZYXWVUghMSRQPONijFLKJIHGkl<>=m2<>==>?EDCBA@@ABCDEFLKJIHGGHIJKLMSRQPONNOPQRSTedcba`_^]\[ZYXWVUUVWXYZ[\]^_`abcdefghijklmportable provisionalAlberto Ruiz <aruiz@um.es>y€‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ ¡¤¥¦§¨ ª ¹´ºµ¶·¸ !"#ÀÁÂ$ÄÅÆÇÈÉ%&'()*+,-./012345Ñ67Ò89:ÎÏĞ;portable provisionalAlberto Ruiz <aruiz@um.es>"nÛoÜİŞpqrstuvwxyz{|ßà}~€‚ƒ„…†‡ˆ‰nopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰o|pwryzuvn‰}…†‡‚ƒ{stqxˆ€~„nopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰uses ffi provisional!Alberto Ruiz (aruiz at um dot es)áVconversion of Haskell functions into function pointers that can be used in the C side âã'type: 0 central, 1 forward, 2 backward initial step size  function $point where the derivative is taken result and error Š'Adaptive central difference algorithm, gsl_deriv_central. For example: " > let deriv = derivCentral 0.01  > deriv sin (pi/4) ,(0.7071067812000676,1.0600063101654055e-10)  > cos (pi/4) 0.7071067811865476 initial step size  function $point where the derivative is taken result and absolute error ‹'Adaptive forward difference algorithm, gsl_deriv_forwardÿX. The function is evaluated only at points greater than x, and never at x itself. The derivative is returned in result and an estimate of its absolute error is returned in abserr. This function should be used if f(x) has a discontinuity at x, or is undefined for values less than x. A backward derivative can be obtained using a negative step. initial step size  function $point where the derivative is taken result and absolute error Œ(Adaptive backward difference algorithm, gsl_deriv_backward. initial step size  function $point where the derivative is taken result and absolute error Š‹ŒŠ‹ŒŠ‹Œuses ffi provisional!Alberto Ruiz (aruiz at um dot es)äåæVconversion of Haskell functions into function pointers that can be used in the C side Numerical integration using gsl_integration_qags9 (adaptive integration with singularities). For example: >% let quad = integrateQAGS 1E-9 1000 ># let f a x = x**(-0.5) * log (a*x) > quad (f 1) 0 1 *(-3.999999999999974,4.871658632055187e-13)precision (e.g. 1E-9) (size of auxiliary workspace (e.g. 1000) 0function to be integrated on the interval (a,b) a b $result of the integration and error Numerical integration using gsl_integration_qngA (useful for fast integration of smooth functions). For example: > let quad = integrateQNG 1E-6 > quad (\x -> 4/(1+x*x)) 0 1 )(3.141592653589793,3.487868498008632e-14)precision (e.g. 1E-9) 0function to be integrated on the interval (a,b) a b $result of the integration and error uses ffi provisional!Alberto Ruiz (aruiz at um dot es)çFast 1D Fourier transform of a   (è é) using gsl_fft_complex_forward6. It uses the same scaling conventions as GNU Octave. > fft ( [1,2,3,4]) Dvector (4) [10.0 :+ 0.0,(-2.0) :+ 2.0,(-2.0) :+ 0.0,(-2.0) :+ (-2.0)]The inverse of , using gsl_fft_complex_inverse.  uses ffi provisional!Alberto Ruiz (aruiz at um dot es)ê‘0Solution of general polynomial equations, using gsl_poly_complex_solve. For example, ( the three solutions of x^3 + 8 = 0 > polySolve [8,0,0,1] [(-1.9999999999999998) :+ 0.0,  1.0 :+ 1.732050807568877,  1.0 :+ (-1.732050807568877)]@The example in the GSL manual: To find the roots of x^5 -1 = 0: > polySolve [-1, 0, 0, 0, 0, 1] .[(-0.8090169943749475) :+ 0.5877852522924731, 0(-0.8090169943749475) :+ (-0.5877852522924731), +0.30901699437494734 :+ 0.9510565162951536, .0.30901699437494734 :+ (-0.9510565162951536),  1.0 :+ 0.0]ë‘‘‘ìíîïğVconversion of Haskell functions into function pointers that can be used in the C side ñòó ìíîïğñòóôõìíîïğñòó uses ffi provisional!Alberto Ruiz (aruiz at um dot es)ö’Stepping functions “M=2 implicit Gear method. ”M=1 implicit Gear method. •]Implicit Bulirsch-Stoer method of Bader and Deuflhard. This algorithm requires the Jacobian. –3Implicit 4th order Runge-Kutta at Gaussian points. —3Implicit 2nd order Runge-Kutta at Gaussian points. ˜2Embedded Runge-Kutta Prince-Dormand (8,9) method. ™.Embedded Runge-Kutta Cash-Karp (4, 5) method. š_Embedded Runge-Kutta-Fehlberg (4, 5) method. This method is a good general-purpose integrator. ›Š4th order (classical) Runge-Kutta. The error estimate is obtained by halving the step-size. For more efficient estimate of the error, use š. œ$Embedded Runge-Kutta (2, 3) method.  A version of Q with reasonable default parameters and system of equations defined using lists.  xdot(t,x) initial conditions desired solution times  solution 9Evolution of the system with adaptive step-size control. initial step size (absolute tolerance for the state vector (relative tolerance for the state vector  xdot(t,x) optional jacobian initial conditions desired solution times  solution ’“”•–—˜™š›œ ’œ›š™˜—–•”“ ’ œ›š™˜—–•”““”•–—˜™š›œportable provisionalAlberto Ruiz <aruiz@um.es> %&'*,-.66. %'&*,- portable provisionalAlberto Ruiz <aruiz@um.es>Ÿ4Creates a real vector containing a range of values: > linspace 5 (-3,7) 5 |> [-3.0,-0.5,2.0,4.5,7.0]/Logarithmic spacing can be defined as follows: )logspace n (a,b) = 10 ** linspace n (a,b) ¡¢£¤:creates a vector with a given number of equal components: > constant 2 7 !7 |> [2.0,2.0,2.0,2.0,2.0,2.0,2.0]¥Hcreates a Vector of the specified length using the supplied function to 2 to map the index to the value at that index. > buildVector 4 fromIntegral 4 |> [0.0,1.0,2.0,3.0]¦5Show a vector using a function for showing matrices. disp = putStr . vecdisp (dispf 2)  > disp (Ÿ 10 (0,1)) A10 |> 0.00 0.11 0.22 0.33 0.44 0.56 0.67 0.78 0.89 1.00   !"Ÿ ¡¢£¤¥¦ ¥¤Ÿ¦ ¡¢£ !"Ÿ ¡¢£¤¥¦portable provisionalAlberto Ruiz <aruiz@um.es>*§conversion utilities ¨©ª«¬­÷2creates a matrix from a vertical list of matrices ø4creates a matrix from a horizontal list of matrices ®CCreates a matrix from blocks given as a list of lists of matrices.  Single row/:column components are automatically expanded to match the %corresponding common row and column: > let disp = putStr . dispf 2 >. let vector xs = fromList xs :: Vector Double > let diagl = diag . vector > let rowm = asRow . vector  >+ disp $ fromBlocks [[ident 5, 7, rowm[10,20]], [3, diagl[1,2,3], 0]]  8x10 1 0 0 0 0 7 7 7 10 20 0 1 0 0 0 7 7 7 10 20 0 0 1 0 0 7 7 7 10 20 0 0 0 1 0 7 7 7 10 20 0 0 0 0 1 7 7 7 10 20 3 3 3 3 3 1 0 0 0 0 3 3 3 3 3 0 2 0 0 0 3 3 3 3 3 0 0 3 0 0¯Reverse rows °Reverse columns ±/Creates a square matrix with a given diagonal. ²&creates a rectangular diagonal matrix /> diagRect (constant 5 3) 3 4 :: Matrix Double (3><4)  [ 5.0, 0.0, 0.0, 0.0  , 0.0, 5.0, 0.0, 0.0  , 0.0, 0.0, 5.0, 0.0 ]³0extracts the diagonal from a rectangular matrix ´/creates the identity matrix of given dimension µ An easy way to create a matrix: > (2><3)[1..6] (2><3)  [ 1.0, 2.0, 3.0  , 4.0, 5.0, 6.0 ]GThis is the format produced by the instances of Show (Matrix a), which can also be used for input. 7The input list is explicitly truncated, so that it can Csafely be used with lists that are too long (like infinite lists).  Example: > (2>|<3)[1..] (2><3)  [ 1.0, 2.0, 3.0  , 4.0, 5.0, 6.0 ]¶9Creates a matrix with the first n rows of another matrix ·4Creates a copy of a matrix without the first n rows ¸<Creates a matrix with the first n columns of another matrix ¹7Creates a copy of a matrix without the first n columns º Creates a $, from a list of lists (considered as rows). > fromLists [[1,2],[3,4],[5,6]] (3><2)  [ 1.0, 2.0  , 3.0, 4.0  , 5.0, 6.0 ]»%creates a 1-row matrix from a vector ¼(creates a 1-column matrix from a vector ½Fcreates a Matrix of the specified size using the supplied function to  to map the row(column position to the value at that rowcolumn position. > buildMatrix 3 4 ( *(r,c) -> fromIntegral r * fromIntegral c) (3><4)  [ 0.0, 0.0, 0.0, 0.0, 0.0  , 0.0, 1.0, 2.0, 3.0, 4.0  , 0.0, 2.0, 4.0, 6.0, 8.0]¾¿ZCreates a string from a matrix given a separator and a function to show each entry. Using Gthis function the user can easily define any desired display function: import Text.Printf(printf)disp = putStr . format " " (printf "%.2f")ÀShow a matrix with " autoscaling"' and a given number of decimal places. disp = putStr . disps 2  > disp $ 120 * (3><4) [1..] 3x4 E3  0.12 0.24 0.36 0.48  0.60 0.72 0.84 0.96  1.08 1.20 1.32 1.44 Á5Show a matrix with a given number of decimal places. disp = putStr . dispf 3  > disp (1/ 3 + ident 4) 4x4 1.333 0.333 0.333 0.333 0.333 1.333 0.333 0.333 0.333 0.333 1.333 0.333 0.333 0.333 0.333 1.333 Â,Tool to display matrices with latex syntax. type of braces: "matrix", "bmatrix", "pmatrix", etc. AFormatted matrix, with elements separated by spaces and newlines ù=Pretty print a complex number with at most n decimal digits. Ã=Pretty print a complex matrix with at most n decimal digits. Ä<reads a matrix from a string containing a table of numbers. Å=obtains the number of rows and columns in an ASCII data file  (provisionally using unix's wc). Æ;Loads a matrix from an ASCII file formatted as a 2D table. Ç]Loads a matrix from an ASCII file (the number of rows and columns must be known in advance). ÈUrearranges the rows of a matrix according to the order given in a list of integers. ÉLcreates matrix by repetition of a matrix a given number of rows and columns (> repmat (ident 2) 2 3 :: Matrix Double (4><6)  [ 1.0, 0.0, 1.0, 0.0, 1.0, 0.0  , 0.0, 1.0, 0.0, 1.0, 0.0, 1.0  , 1.0, 0.0, 1.0, 0.0, 1.0, 0.0  , 0.0, 1.0, 0.0, 1.0, 0.0, 1.0 ]Ê A version of 9m which automatically adapt matrices with a single row or column to match the dimensions of the other matrix. úËKPartition a matrix into blocks with the given numbers of rows and columns. / The remaining rows and columns are discarded. ÌQFully partition a matrix into blocks of the same size. If the dimensions are not ? a multiple of the given size the last blocks will be smaller. 7#$()+/012345789:;§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌ7#§¨©ª«¬­$()µ+7/º0½5»¼1234®ËÌɯ°:¶·¸¹È´±²³89ÊÁÀÿÆ;ÇÅľ&§¨©ª«¬­¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌ uses ffi provisional!Alberto Ruiz (aruiz at um dot es)ûüÍÎÏĞÑÒÓÔÕÙ!Minimization without derivatives .desired precision of the solution (size test) %maximum number of iterations allowed  sizes of the initial search box function to minimize starting point &solution vector and optimization path Ú2Minimization without derivatives (vector version) .desired precision of the solution (size test) %maximum number of iterations allowed  sizes of the initial search box function to minimize starting point &solution vector and optimization path ÛMinimization with derivatives. 2desired precision of the solution (gradient test) %maximum number of iterations allowed size of the first trial step (tol (precise meaning depends on method) function to minimize  gradient starting point &solution vector and optimization path Ü/Minimization with derivatives (vector version) 2desired precision of the solution (gradient test) %maximum number of iterations allowed size of the first trial step (tol (precise meaning depends on method) function to minimize  gradient starting point &solution vector and optimization path ÍÎÏĞÑÒÓÔÕÖרÙÚÛÜÙÚÓÕÔÛÜÍÒÑĞÏÎÖר ÍÒÑĞÏÎÎÏĞÑÒÓÕÔÔÕÙÚÛÜ uses ffi provisional!Alberto Ruiz (aruiz at um dot es)ışİŞßàáâãäåæçNNonlinear multidimensional root finding using algorithms that do not require 8 any derivative information to be supplied by the user. @ Any derivatives needed are approximated by finite differences. maximum residual %maximum number of iterations allowed function to minimize starting point &solution vector and optimization path èUNonlinear multidimensional root finding using both the function and its derivatives. maximum residual %maximum number of iterations allowed function to minimize  Jacobian starting point &solution vector and optimization path İŞßàáâãäåæçè çâæåäãèİáàߪ İáàߪŞßàáâæåäããäåæçèuses ffi provisional!Alberto Ruiz (aruiz at um dot es) é$Basic element-by-element functions. ê)create a structure with a single element ëì7scale the element by element reciprocal of the object: scaleRecip 2 (fromList [5,i]#) == 2 |> [0.4 :+ 0.0,0.0 :+ (-2.0)]íîïğ"element by element multiplication ñelement by element division ò éêëìíîïğñò é êëìíîïğñòêëìíîïğñòportable provisional!Alberto Ruiz (aruiz at um dot es)portable (uses FFI) provisional!Alberto Ruiz (aruiz at um dot es)Sÿ     óMatrix product based on BLAS's dgemm. ôMatrix product based on BLAS's zgemm. õ&Full SVD of a real matrix using LAPACK's dgesvd. ö&Full SVD of a real matrix using LAPACK's dgesdd. ÷)Full SVD of a complex matrix using LAPACK's zgesvd. ø)Full SVD of a complex matrix using LAPACK's zgesdd. ù'Thin SVD of a real matrix, using LAPACK's dgesvd with jobu == jobvt == 'S'. ú*Thin SVD of a complex matrix, using LAPACK's zgesvd with jobu == jobvt == 'S'. û'Thin SVD of a real matrix, using LAPACK's dgesdd with jobz == 'S'. ü*Thin SVD of a complex matrix, using LAPACK's zgesdd with jobz == 'S'. ı.Singular values of a real matrix, using LAPACK's dgesvd with jobu == jobvt == 'N'. ş1Singular values of a complex matrix, using LAPACK's zgesvd with jobu == jobvt == 'N'. ÿ.Singular values of a real matrix, using LAPACK's dgesdd with jobz == 'N'. 1Singular values of a complex matrix, using LAPACK's zgesdd with jobz == 'N'. MSingular values and all right singular vectors of a real matrix, using LAPACK's dgesvd with jobu == 'N' and jobvt == 'A'. PSingular values and all right singular vectors of a complex matrix, using LAPACK's zgesvd with jobu == 'N' and jobvt == 'A'. LSingular values and all left singular vectors of a real matrix, using LAPACK's dgesvd with jobu == 'A' and jobvt == 'N'. OSingular values and all left singular vectors of a complex matrix, using LAPACK's zgesvd with jobu == 'A' and jobvt == 'N'. LEigenvalues and right eigenvectors of a general complex matrix, using LAPACK's zgeev. H The eigenvectors are the columns of v. The eigenvalues are not sorted. 5Eigenvalues of a general complex matrix, using LAPACK's zgeev with jobz == 'N'. ! The eigenvalues are not sorted. IEigenvalues and right eigenvectors of a general real matrix, using LAPACK's dgeev. H The eigenvectors are the columns of v. The eigenvalues are not sorted. 2Eigenvalues of a general real matrix, using LAPACK's dgeev with jobz == 'N'. ! The eigenvalues are not sorted.  KEigenvalues and right eigenvectors of a symmetric real matrix, using LAPACK's dsyev. ( The eigenvectors are the columns of v. 5 The eigenvalues are sorted in descending order (use   for ascending order).    in ascending order  NEigenvalues and right eigenvectors of a hermitian complex matrix, using LAPACK's zheev. ( The eigenvectors are the columns of v. 5 The eigenvalues are sorted in descending order (use   for ascending order).    in ascending order  4Eigenvalues of a symmetric real matrix, using LAPACK's dsyev with jobz == 'N'. 1 The eigenvalues are sorted in descending order. 7Eigenvalues of a hermitian complex matrix, using LAPACK's zheev with jobz == 'N'. 1 The eigenvalues are sorted in descending order. ƒSolve a real linear system (for square coefficient matrix and several right-hand sides) using the LU decomposition, based on LAPACK's dgesv6. For underconstrained or overconstrained systems use  or  . See also #. †Solve a complex linear system (for square coefficient matrix and several right-hand sides) using the LU decomposition, based on LAPACK's zgesv6. For underconstrained or overconstrained systems use  or  . See also $. wSolves a symmetric positive definite system of linear equations using a precomputed Cholesky factorization obtained by . wSolves a Hermitian positive definite system of linear equations using a precomputed Cholesky factorization obtained by . Least squared error solution of an overconstrained real linear system, or the minimum norm solution of an underconstrained system, using LAPACK's dgels!. For rank-deficient systems use . ’Least squared error solution of an overconstrained complex linear system, or the minimum norm solution of an underconstrained system, using LAPACK's zgels!. For rank-deficient systems use . hMinimum norm solution of a general real linear least squares problem Ax=B using the SVD, based on LAPACK's dgelss6. Admits rank-deficient systems but it is slower than ¾. The effective rank of A is determined by treating as zero those singular valures which are less than rcond times the largest singular value. If rcond == Nothing machine precision is used. rcond coefficient matrix right hand sides (as columns) solution vectors (as columns) kMinimum norm solution of a general complex linear least squares problem Ax=B using the SVD, based on LAPACK's zgelss6. Admits rank-deficient systems but it is slower than ¾. The effective rank of A is determined by treating as zero those singular valures which are less than rcond times the largest singular value. If rcond == Nothing machine precision is used. rcond coefficient matrix right hand sides (as columns) solution vectors (as columns) TCholesky factorization of a complex Hermitian positive definite matrix, using LAPACK's zpotrf. QCholesky factorization of a real symmetric positive definite matrix, using LAPACK's dpotrf. TCholesky factorization of a complex Hermitian positive definite matrix, using LAPACK's zpotrf (  version). QCholesky factorization of a real symmetric positive definite matrix, using LAPACK's dpotrf (  version). /QR factorization of a real matrix, using LAPACK's dgeqr2. 2QR factorization of a complex matrix, using LAPACK's zgeqr2. >Hessenberg factorization of a square real matrix, using LAPACK's dgehrd. AHessenberg factorization of a square complex matrix, using LAPACK's zgehrd. 9Schur factorization of a square real matrix, using LAPACK's dgees.  <Schur factorization of a square complex matrix, using LAPACK's zgees. !7LU factorization of a general real matrix, using LAPACK's dgetrf. ":LU factorization of a general complex matrix, using LAPACK's zgetrf. #@Solve a real linear system from a precomputed LU decomposition (!), using LAPACK's dgetrs. $@Solve a real linear system from a precomputed LU decomposition ("), using LAPACK's zgetrs. 2óôõö÷øùúûüışÿ      !"#$2óô#$ıÿşõö÷øùûúü     !" 2óôõö÷øùúûüışÿ      !"#$ uses ffi provisional!Alberto Ruiz (aruiz at um dot es)S%Objects which have a p-norm. / Using it you can define convenient shortcuts: norm2 x = pnorm PNorm2 x!frobenius m = norm2 . flatten $ m&'()*+\Auxiliary typeclass used to define generic computations for both real and complex matrices. !"#$%&'()*+,-./01234,#Full singular value decomposition. - A version of , which returns only the min (rows m) (cols m) singular vectors of m. If (u,s,v) = thinSVD m then m == u < > diag s < > trans v. .Singular values only. / A version of ,H which returns an appropriate diagonal matrix with the singular values. If (u,d,v) = fullSVD m then m == u <> d < > trans v. 0 Similar to -U, returning only the nonzero singular values and the corresponding singular vectors. 10Singular values and all right singular vectors. 20Singular values and all right singular vectors. 5RObtains the LU decomposition of a matrix in a compact data structure suitable for 6. 6mSolution of a linear system (for several right hand sides) from the precomputed LU factorization obtained by 5. 7£Solve a linear system (for square coefficient matrix and several right-hand sides) using the LU decomposition. For underconstrained or overconstrained systems use : or 9.  It is similar to 6 . 5, but  linearSolve1 raises an error if called on a singular system. 8vSolve a symmetric or Hermitian positive definite linear system using a precomputed Cholesky decomposition obtained by I. 9ˆMinimum norm solution of a general linear least squares problem Ax=B using the SVD. Admits rank-deficient systems but it is slower than :g. The effective rank of A is determined by treating as zero those singular valures which are less than O# times the largest singular value. :Least squared error solution of an overconstrained linear system, or the minimum norm solution of an underconstrained system. For rank-deficient systems use 9. ;9Eigenvalues and eigenvectors of a general square matrix. If  (s,v) = eig m then m < > v == v <> diag s <(Eigenvalues of a general square matrix. = Similar to ?l without checking that the input matrix is hermitian or symmetric. It works with the upper triangular part. > Similar to @l without checking that the input matrix is hermitian or symmetric. It works with the upper triangular part. ?NEigenvalues and Eigenvectors of a complex hermitian or real symmetric matrix. If (s,v) = eigSH m then m == v < > diag s < > ctrans v @=Eigenvalues of a complex hermitian or real symmetric matrix. AQR factorization. If  (q,r) = qr m then m == q <> r0, where q is unitary and r is upper triangular. BRQ factorization. If  (r,q) = rq m then m == r <> q0, where q is unitary and r is upper triangular. CHessenberg factorization. If (p,h) = hess m then m == p <> h < > ctrans p, where p is unitary V and h is in upper Hessenberg form (it has zero entries below the first subdiagonal). DSchur factorization. If (u,s) = schur m then m == u <> s < > ctrans u, where u is unitary \ and s is a Shur matrix. A complex Schur matrix is upper triangular. A real Schur matrix is ! upper triangular in 2x2 blocks. "GAnything that the Jordan decomposition can do, the Schur decomposition  can do better!" (Van Loan) EGeneric conjugate transpose. FMatrix product. G Similar to HV, but instead of an error (e.g., caused by a matrix not positive definite) it returns 5. H Similar to Im, without checking that the input matrix is hermitian or symmetric. It works with the upper triangular part. IMCholesky factorization of a positive definite hermitian or symmetric matrix. If  c = chol m then c is upper triangular and m == ctrans c <> c. J Determinant of a square matrix. K/Explicit LU factorization of a general matrix. If (l,u,p,s) = lu m then m == p <> l <> u, where l is lower triangular, ] u is upper triangular, p is a permutation matrix and s is the signature of the permutation. LInverse of a square matrix. M#Pseudoinverse of a general matrix. 65Numeric rank of a matrix from the SVD decomposition. numeric zero (e.g. 1*O) input matrix m sv of m  rank of m N3Numeric rank of a matrix from its singular values. numeric zero (e.g. 1*O)  maximum dimension of the matrix singular values  rank of m O#The machine precision of a Double: eps = 2.22044604925031e-16! (the value used by GNU-Octave). PThe imaginary unit: i = 0.0 :+ 1.0 789:;Q6The nullspace of a matrix from its SVD decomposition. Left "numeric" zero (eg. 1*O),  or Right " theoretical" matrix rank. input matrix m 1 of m /list of unitary vectors spanning the nullspace R$The nullspace of a matrix. See also Q. relative tolerance in O units (e.g., use 3 to get 3*O)  input matrix /list of unitary vectors spanning the nullspace SRThe nullspace of a matrix, assumed to be one-dimensional, with machine precision. UVWXZReciprocal of the 2-norm condition number of a matrix, computed from the singular values. Y0Number of linearly independent rows or columns. ZDGeneric matrix functions for diagonalizable matrices. For instance: logm = matFunc log<[NMatrix exponential. It uses a direct translation of Algorithm 11.3.1 in Golub & Van Loan, + based on a scaled Pade approximation. \[Matrix square root. Currently it uses a simple iterative algorithm described in Wikipedia. jIt only works with invertible matrices that have a real solution. For diagonalizable matrices you can try  matFunc sqrt. m = (2><2) [4,9  ,0,4] :: Matrix Double>sqrtm m (2><2)  [ 2.0, 2.25  , 0.0, 2.0 ]]Euclidean inner product. ^Outer product of two vectors. >  [1,2,3] `outer`  [5,2,3] (3><3)  [ 5.0, 2.0, 3.0  , 10.0, 4.0, 6.0  , 15.0, 6.0, 9.0 ]_#Kronecker product of two matrices. m1=(2><3)  [ 1.0, 2.0, 0.0  , 0.0, -1.0, 3.0 ] m2=(4><3)  [ 1.0, 2.0, 3.0  , 4.0, 5.0, 6.0  , 7.0, 8.0, 9.0  , 10.0, 11.0, 12.0 ]> kronecker m1 m2 (8><9) ; [ 1.0, 2.0, 3.0, 2.0, 4.0, 6.0, 0.0, 0.0, 0.0 ; , 4.0, 5.0, 6.0, 8.0, 10.0, 12.0, 0.0, 0.0, 0.0 ; , 7.0, 8.0, 9.0, 14.0, 16.0, 18.0, 0.0, 0.0, 0.0 ; , 10.0, 11.0, 12.0, 20.0, 22.0, 24.0, 0.0, 0.0, 0.0 ; , 0.0, 0.0, 0.0, -1.0, -2.0, -3.0, 3.0, 6.0, 9.0 ; , 0.0, 0.0, 0.0, -4.0, -5.0, -6.0, 12.0, 15.0, 18.0 ; , 0.0, 0.0, 0.0, -7.0, -8.0, -9.0, 21.0, 24.0, 27.0 ; , 0.0, 0.0, 0.0, -10.0, -11.0, -12.0, 30.0, 33.0, 36.0 ]Eéêëìíîïğñò%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_E+F]^_768:9LMJYX,/-0.21;?=<@>ABIHGCDK5[\ZRSQ%&'*)(EOPéêëìíîïğñòUVWTN348%&&'*)(()*+,-./01256789:;<=>?@ABCDEFGHIJKLMNOPQRSUVWXYZ[\]^_portable provisional!Alberto Ruiz (aruiz at um dot es)=>?@`:Matrix-matrix, matrix-vector, and vector-matrix products. a Dot product: u <.> v = dot u v d:least squares solution of a linear system, similar to the \ operator of Matlab/"Octave (based on linearSolveSVD). `abcdef`adbcef`ad provisionalAlberto Ruiz <aruiz@um.es>gIObtains a matrix whose rows are pseudorandom samples from a multivariate  Gaussian distribution. seed number of rows  mean vector covariance matrix result hIObtains a matrix whose rows are pseudorandom samples from a multivariate  uniform distribution. seed number of rows ranges for each column result iCCompute mean vector and covariance matrix of the rows of a matrix. <=>mghi<>=mghighiuses ffi provisional!Alberto Ruiz (aruiz at um dot es)bABCDEFGHIè  !"#$()+/012345789:;<=>mŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌghiuses ffi provisional!Alberto Ruiz (aruiz at um dot es)®ABCDEFGHIè  !"#$()+/012345789:;<=>mŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌéêëìíîïğñò%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiportable provisional!Alberto Ruiz (aruiz at um dot es)JKLMNOPQRSTUVWXYZ[\ JKLMNOPQRSTUVWXY]^_`abcdefghijklJKLMMNOOPQQRSSTUUVWWXYY portable provisional!Alberto Ruiz (aruiz at um dot es)mnopq.mnprqstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›mnnpquses ffi provisional!Alberto Ruiz (aruiz at um dot es) œjkÿThis is an unscaled version of the lmder algorithm. The elements of the diagonal scaling matrix D are set to 1. This algorithm may be useful in circumstances where the scaled version of lmder converges too slowly, or the function is already scaled appropriately. lÿInterface to gsl_multifit_fdfsolver_lmsder. This is a robust and efficient version of the Levenberg-Marquardt algorithm as implemented in the scaled lmder routine in minpack. Minpack was written by Jorge J. More, Burton S. Garbow and Kenneth E. Hillstrom. m2Nonlinear multidimensional least-squares fitting. absolute tolerance relative tolerance %maximum number of iterations allowed function to be minimized  Jacobian starting point &solution vector and optimization path nHigher level interface to m l . The optimization function and ] Jacobian are automatically built from a model f vs x = y and its derivatives, and a list of ( instances (x, (y,sigma)) to be fitted. absolute tolerance relative tolerance %maximum number of iterations allowed (model, derivatives)  instances starting point ((solution, error) and optimization path oHigher level interface to m k . The optimization function and ] Jacobian are automatically built from a model f vs x = y and its derivatives, and a list of  instances (x,y) to be fitted. absolute tolerance relative tolerance %maximum number of iterations allowed (model, derivatives)  instances starting point solution and optimization path DModel-to-residual for association pairs with sigma, to be used with o. Associated derivative for . Ÿ9Model-to-residual for association pairs, to be used with o. It is equivalent  to  with all sigmas = 1.  Associated derivative for Ÿ. jklmnomjlknojlkklmnouses -fffi and -fglasgow-exts provisional!Alberto Ruiz (aruiz at um dot es)pVThis action removes the GSL default error handler (which aborts the program), so that N GSL errors can be handled by Haskell (using Control.Exception) and ghci doesn' t abort. BABCDEFGHI芋Œ‘’“”•–—˜™š›œÍÎÏĞÑÒÓÔÕÖרÙÚÛÜİŞßàáâãäåæçèjklmnopppportable provisional!Alberto Ruiz (aruiz at um dot es)¡¢r9All tests must pass with a maximum dimension of about 20 A (some tests may fail with bigger sizes due to precision loss). maximum dimension sPerformance measurements. qrsqrsrsuses gnuplot and ImageMagick provisional!Alberto Ruiz (aruiz at um dot es) £6Loads a real matrix from a formatted ASCII text file "fromFile :: FilePath -> IO Matrix CfromFile filename = readFile filename >>= return . readMatrix read 3Saves a real matrix to a formatted ascii text file tlFrom vectors x and y, it generates a pair of matrices to be used as x and y arguments for matrix functions. uv4Draws a 3D surface representation of a real matrix.  > mesh (hilb 20) NIn certain versions you can interactively rotate the graphic using the mouse. wxmDraws the surface represented by the function f in the desired ranges and number of points, internally using v.  > let f x y = cos (x + y) " > splot f (0,pi) (0,2*pi) 50 y-plots several vectors against the first one zTDraws a list of functions over a desired range and with a desired number of points + > plot [sin, cos, sin.(3*)] (0,2*pi) 1000 {SDraws a parametric curve. For instance, to draw a spiral we can do something like: > > parametricPlot (\t->(t * sin t, t * cos t)) (0,10*pi) 1000 |"writes a matrix to pgm image file }Qimshow shows a representation of a matrix as a gray level image using ImageMagick' s display. ~ tuvwxyz{|}~ yz{xvwt|}u~ tuvwxyz{|}~¤!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ ¡¢£¤¥¦§¨©ª«¬­®¯°± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖרÙÚÛÜİŞßàáâãä§åæçèéêëì í î ï ğ ñ ò ó ô õ ö ÷ ø ù ú û ü ı ş ÿ               !"#$%&'()*+,-./0123456789:;<=>?@ABCD E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ €‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖרÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿÿ           !"#$%&'()*+,-./0123456789:;<=>?@AB C D E F G H I J K L M N O P Q R S T U VAW X Y Z [ \ ] ^_`akbcdefghijklmmnnooppqqrrsstuvwxyz{|}~€‚ƒ„…† ‡ ˆ t ‰ Š ‹ Œ     ‘ ’ “ ” • – — ˜ ™ š › œ   Ÿ   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ ° ± ² ³ ´µ¶·¸¹tº»¼hmatrix-0.9.3.0Data.Packed.DevelopmentData.Packed.VectorData.Packed.MatrixNumeric.GSL.VectorData.Packed.STNumeric.GSL.DifferentiationNumeric.GSL.IntegrationNumeric.GSL.FourierNumeric.GSL.PolynomialsNumeric.GSL.ODENumeric.GSL.MinimizationNumeric.GSL.Root Numeric.LinearAlgebra.AlgorithmsNumeric.LinearAlgebra.LAPACKNumeric.LinearAlgebra.InterfaceData.Packed.RandomNumeric.GSL.Fitting Numeric.GSLNumeric.LinearAlgebra.Tests Graphics.PlotData.Packed.Internal.SignaturesData.Packed.Internal.CommonData.Packed.Internal.VectorData.Packed.Internal.MatrixData.Packed.InternalNumeric.GSL.InternalNumeric.LinearAlgebra.LinearNumeric.LinearAlgebra.Instances Data.PackedNumeric.LinearAlgebra%Numeric.LinearAlgebra.Tests.Instances&Numeric.LinearAlgebra.Tests.PropertiesAdapt//app1app2app3app4app5app6app7app8app9app10checkVectorunsafeToForeignPtrunsafeFromForeignPtrdimvec createVectorfromListtoList|> subVector@>jointakesV mapVector zipVector foldVectorfoldLoop foldVectorG fscanfVector fprintfVector freadVector fwriteVectorElementMatrix MatrixOrder ColumnMajorRowMajorrowscolsorderOftranscmatfmatmatflattentoListsfromRowstoRows fromColumns toColumns@@> createMatrixreshape liftMatrix liftMatrix2 subMatrix saveMatrixRandDistGaussianUniformFunCodeSMinMinIdxMaxMaxIdxAbsSumNorm2 FunCodeVVATan2PowDivMulSubAdd FunCodeSVPowVSPowSVNegate AddConstantRecipScaleFunCodeVSqrtSignLogExpATanhACoshASinhTanhCoshSinhATanACosASinAbsTanCosSin toScalarR vectorMapR vectorMapC vectorMapValR vectorMapValC vectorZipR vectorZipC randomVectorSTMatrixSTVector thawVectorunsafeThawVector runSTVectorunsafeReadVectorunsafeWriteVector modifyVector liftSTVector freezeVectorunsafeFreezeVector readVector writeVectornewUndefinedVector newVector thawMatrixunsafeThawMatrix runSTMatrixunsafeReadMatrixunsafeWriteMatrix modifyMatrix liftSTMatrixunsafeFreezeMatrix freezeMatrix readMatrix writeMatrixnewUndefinedMatrix newMatrix derivCentral derivForward derivBackward integrateQAGS integrateQNGfftifft polySolve ODEMethodGear2Gear1BSimpRK4impRK2impRK8pdRKckRKf45RK4RK2odeSolve odeSolveVlinspace vectorMax vectorMinvectorMaxIndexvectorMinIndexconstant buildVectorvecdisp Container toComplex fromComplexcompconjrealcomplex fromBlocksflipudfliprldiagdiagRecttakeDiagident><takeRowsdropRows takeColumns dropColumns fromListsasRowasColumn buildMatrix fromArray2Dformatdispsdispf latexFormatdispcffileDimensions loadMatrixfromFile extractRowsrepmatliftMatrix2AutotoBlocks toBlocksEveryMinimizeMethodDSteepestDescent VectorBFGS2 VectorBFGS ConjugatePR ConjugateFRMinimizeMethod NMSimplex2 NMSimplexminimizeNMSimplexminimizeConjugateGradientminimizeVectorBFGS2minimize minimizeV minimizeD minimizeVD RootMethodJGNewtonNewtonHybridJHybridsJ RootMethodBroydenDNewtonHybridHybridsrootrootJLinearscalarscale scaleRecip addConstantaddsubmuldivideequal multiplyR multiplyCsvdRsvdRdsvdCsvdCdthinSVDRthinSVDC thinSVDRd thinSVDCdsvRsvCsvRdsvCdrightSVRrightSVCleftSVRleftSVCeigCeigOnlyCeigReigOnlyReigSeigS'eigHeigH'eigOnlySeigOnlyH linearSolveR linearSolveC cholSolveR cholSolveClinearSolveLSRlinearSolveLSClinearSolveSVDRlinearSolveSVDCcholHcholSmbCholHmbCholSqrRqrChessRhessCschurRschurCluRluClusRlusCNormedpnormNormTypePNorm2PNorm1InfinityFieldsvdthinSVDsingularValuesfullSVD compactSVDrightSVleftSVfulleconomyluPackedluSolve linearSolve cholSolvelinearSolveSVD linearSolveLSeig eigenvalueseigSH'eigenvaluesSH'eigSH eigenvaluesSHqrrqhessschurctransmultiplymbCholSHcholSHcholdetluinvpinvranksvepsi nullspaceSVD nullspacePrec nullVectorpinvTol haussholderunpackQR unpackHessrcondrankmatFuncexpmsqrtmdotouter kronecker<><.>.**/<\><|><->gaussianSample uniformSamplemeanCov FittingMethodLevenbergMarquardtLevenbergMarquardtScaled nlFittingfitModelScaledfitModelsetErrorHandlerOffqCheckrunTests runBenchmarksmeshdomgnuplotXmeshmesh'splotmplotplotparametricPlot matrixToPGMimshow gnuplotpdf gnuplotWinTMMCVMTMCVMTCVMTVCVTCMCVTCVCVCVTCVCVTCVTCMCMCMTCMCMVCMTCMVCMTVCMTCMCM TCMCMCVCMTMCMCVCMTCMCVCMTCVCMTCMTMMVMTMVMTMMVTMVTVVMTVMTMMMTMVMMTVMMTMMTMTVVVTVVTVPCPD gsl_strerrorfinit splitEverycommon compatdimtablefi errorCodembCatchgsl_vector_fwritegsl_vector_freadgsl_vector_fprintfgsl_vector_fscanfVioffidimfptrinlinePerformIOat'atasReal asComplex cloneVector unsafeWithsafematrix_fprintf cconstantC cconstantRctransCctransR subMatrixD transdata constantDMtMFfdatMCirowsicolscdatcompat transdata' constantR constantCconjV toComplexV fromComplexVmatrixFromVector singletonc_random_vector c_vectorZipC c_vectorZipRc_vectorMapValCc_vectorMapValR c_vectorMapC c_vectorMapR c_toScalarRioReadVioWriteVioReadMioWriteMmkfunc_derivderivGenc_integrate_qngc_integrate_qagsc_fftbase Data.ComplexComplexghc-prim GHC.TypesDouble c_polySolve polySolve'mkDoubleVecMatfun mkVecMatfunmkDoubleVecVecfun mkVecVecfunmkVecfunivaux_vTovaux_vTomcreateV createMIOode_cjoinVert joinHoriz showComplexcompat' c_minimizeD c_minimizec_rootjc_rootzgetrsdgetrszgetrfdgetrfzgeesdgeeszgehrddgehrdzgeqr2dgeqr2dpotrfzpotrfzgelssdgelsszgelsdgelszpotrsdpotrszgesvdgesvzheevdsyevzgeevdgeevzgesdddgesddzgesvddgesvdzgemmcdgemmcTQTWeigRaux Data.MaybeMaybesvd'thinSVD'sv' luPacked'luSolve' linearSolve' cholSolve'linearSolveSVD'linearSolveLS'eig'eigSH''eigOnly eigOnlySHcholSH' mbCholSH'qr'hess'schur'ctrans' multiply'NothingrankSVDmXmmXvvXmnorm2norm1golubepsJoinablejoinHjoinVphase magnitudepolarcismkPolar conjugateimagPartrealPart:+CMRM ConsistentPosDefSqWCWCHerRotSqtrivialshrinkListElementwise shrinkPairrMcMrHercHerrRotcRotrSqcSqrWCcWCrSqWCcSqWCrPosDefcPosDefrConsistcConsistAprox:~dist~:|~|squareunitary hermitianwellCondpositiveDefinite upperTriangupperHessenbergzerosonesluPropinvProppinvPropdetProp nullspacePropsvdProp1 svdProp1a svdProp1bsvdProp2svdProp3svdProp4 svdProp5a svdProp5b svdProp6a svdProp6bsvdProp7eigProp eigSHPropeigProp2 eigSHProp2qrProprqProphessProp schurProp1 schurProp2cholProp expmDiagProp multProp1 multProp2linearSolveProplinearSolveProp2subPropc_nlfitresMsresDsresMresDrottoFile'