úÎSCMdh      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg Safe-Inferred! hijk    hijk Safe-Inferred<Must be call first when calling Eigen from multiple threads 2Sets the max number of threads reserved for Eigen None !"#$%&'()*+l,-.m/012345678 !"#$%&'()*+,-./012345678 !"#$%&'()*+,-./012356478 !"#$%&'()*+l,-.m/012345678None!9rconstant Matrix class to be used in pure computations, uses the same column major memory layout as Eigen MatrixXd >empty 0x0 matrix ?4matrix where all coeffs are filled with given value @matrix where all coeff are 0 Amatrix where all coeff are 1 B6square matrix with 1 on main diagonal and 0 elsewhere Cnumber of rows for the matrix D!number of columns for the matrix E+matrix coefficient at specific row and col F'list of coefficients for the given col G'list of coefficients for the given row HWextract rectangular block from matrix defined by startRow startCol blockRows blockCols I*the maximum of all coefficients of matrix J*the minimum of all coefficients of matrix Ktop n rows of matrix Lbottom n rows of matrix Mleft n columns of matrix Nright n columns of matrix OUconstruct matrix from a list of rows, column count is detected as maximum row length P&converts matrix to a list of its rows Qýfor vectors, the l2 norm, and for matrices the Frobenius norm. In both cases, it consists in the square root of the sum of the square of all the matrix entries. For vectors, this is also equals to the square root of the dot product of this with itself. Rßfor vectors, the squared l2 norm, and for matrices the Frobenius norm. In both cases, it consists in the sum of the square of all the matrix entries. For vectors, this is also equals to the dot product of this with itself. Sthe determinant of the matrix Tinverse of the matrix iFor small fixed sizes up to 4x4, this method uses cofactors. In the general case, this method uses class  PartialPivLU Uadjoint of the matrix Vtranspose of the matrix W*nomalize the matrix by deviding it on its Q X$create a snapshot of mutable matrix Y"create mutable copy of the matrix ZTapply mutable operation to the mutable copy of the matrix and snapshot of this copy [Oapply foreign operation to the mutable copy of the matrix and operation result nIonly the following functions are defined for Num instance: (*), (+), (-) opretty prints the matrix &9:;<=>?@ABCDEFGHIJKLMNpOPQRSTUVWXYZ[no#9:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[#9:;<=OP>@AB?DCEJIFGHKLMNQRSTUVWXYZ["9:;<=>?@ABCDEFGHIJKLMNpOPQRSTUVWXYZ[noNone \  MDecomposition Requirements on the matrix Speed Accuracy  FPartialPivLU Invertible ++ + HFullPivLU None - +++ FHouseholderQR None ++ + GColPivHouseholderQR None + ++ HFullPivHouseholderQR None - +++ FLLT Positive definite +++ + GLDLT Positive or negative semidefinite +++ ++ HJacobiSVD None - +++  eThe best way to do least squares solving for square matrices is with a SVD decomposition (JacobiSVD) ]<Two-sided Jacobi SVD decomposition of a rectangular matrix. ^9Robust Cholesky decomposition of a matrix with pivoting. _4Standard Cholesky decomposition (LL^T) of a matrix. `LHouseholder rank-revealing QR decomposition of a matrix with full pivoting. aNHouseholder rank-revealing QR decomposition of a matrix with column-pivoting. b*Householder QR decomposition of a matrix. c5LU decomposition of a matrix with complete pivoting. d4LU decomposition of a matrix with partial pivoting. e x = solve d a b finds a solution x of ax = b equation using decomposition d f e = relativeError x a b computes norm (ax - b) / norm b where norm is L2 norm g )(coeffs, error) = linearRegression points% computes multiple linear regression #y = a1 x1 + a2 x2 + ... + an xn + b using a decomposition  point format is  [y, x1..xn]  coeffs format is  [b, a1..an]  error is calculated using f   import Data.Eigen.LA "main = print $ linearRegression [  [-4.32, 3.02, 6.89],  [-3.79, 2.01, 5.39],  [-4.01, 2.41, 6.01],  [-3.86, 2.09, 5.55],  [-4.10, 2.58, 6.32]] produces the following output  > ([-2.3466569233817127,-0.2534897541434826,-0.1749653335680988],1.8905965120153139e-3) \]^_`abcdqrefg \]^_`abcdefg \dcba`_^]efg\dcba`_^]qrefgs      !"#$%%&'()*+,-./0123456789:;<=>>?@ABCDEF()GHIJKLMNOPQR89<4567STU=VWXYZ[\]^_`abcdefghifjkl eigen-1.0.0Data.Eigen.InternalData.Eigen.ParallelData.Eigen.Matrix.MutableData.Eigen.Matrix Data.Eigen.LACastcast C_MatrixXd c_determinant c_hypotNorm c_blueNorm c_squaredNormc_norm c_normalize c_adjoint c_inverse c_transposec_mulc_subc_addc_resizec_copyc_colsc_rowsc_datac_setc_getc_clone c_destroyc_createc_setNbThreadsc_initParallel c_freeStringcall initParallel setNbThreadsMMatrixmm_fpnewrowscolscopycloneresizegetsetsetRowsetColaddsubmulinverseadjoint transpose normalizenorm squaredNormblueNorm hypotNorm determinantwithMatrixm_rowsm_colsm_valsemptyconstantzeroonesidentitycoeffcolrowblockmaxCoeffminCoefftopRows bottomRowsleftCols rightColsfromListtoListfreezethawmodify Decomposition JacobiSVDLDLTLLTFullPivHouseholderQRColPivHouseholderQR HouseholderQR FullPivLU PartialPivLUsolve relativeErrorlinearRegression $fCastIntCInt $fCastCIntInt$fCastDoubleCDouble$fCastCDoubleDoublebinopinpop $fNumMatrix $fShowMatrixc_relativeErrorc_solve