6      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy z{|}~             !"#$%&'()*+,-./0123456789:;<=>?@ABCD E F G H I J K L M N O P Q R S T U V W XYZ[\]^_` a b c d efghijklmnopqrstuvwxyz{|}~4 Safe-Infered Safe-Infered   None Safe-Infered             Safe-Inferedl !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab cdefghijklmnopqb !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab cdefgF !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab cdefghijklmnopq Safe-Infered!"#$% !"#$% !"#$%!"#$%NoneNQStore the upper triangular half of a real symmetric or complex Hermitian matrix. &'()*+,-./0123456789rstuvwxy:z{;<|=}>?@A~BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn&'()*+,-./0123456789rstuvwxy:z{;<|=}>?@A~BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn&'()*+.-,/0123456789rstuvwxy:z{;<|=}>?@A~BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_a`bcdefghijklmnNoneopqrstuvwxyz{|}~opqrstuvwxyz{|}~oqprtsuwvxyz{|}~None1Make a temporary copy only for complex matrices. In ColumnMajor: -Copy a m-by-n-matrix with lda>=m and ldb>=m. +Copy a m-by-n-matrix to ColumnMajor order. -     -     '      None  singleton = constant () !However, singleton does not need  constraint. < dot x y = Matrix.toScalar (singleRow x <#> singleColumn y) ! inner x y = dot (conjugate x) y MSum of the absolute values of real numbers or components of complex numbers. %For real numbers it is equivalent to . :Euclidean norm of a vector or Frobenius norm of a matrix. 3Computes (almost) the infinity norm of the vector. .For complex numbers every element is replaced 3by the sum of the absolute component values first. LReturns the index and value of the element with the maximal absolute value. OCaution: It actually returns the value of the element, not its absolute value! LReturns the index and value of the element with the maximal absolute value. NThe function does not strictly compare the absolute value of a complex number 0but the sum of the absolute complex components. OCaution: It actually returns the value of the element, not its absolute value! T !"#$%&'()*+,-./0123456789:;<00? !"#$%&'()*+,-./0123456789:;<None=>?=>?=>?None @ABCDEFGH @ABCDEFGH@ABCDEFGHNoneIJKLMNIIJKLMNNoneIf (q,r) = schur a, then a = q <\> r \<> adjoint q, where q is unitary (orthogonal) and r0 is a right-upper triangular matrix for complex a 8and a 1x1-or-2x2-block upper triangular matrix for real a. With takeDiagonal r you get all eigenvalues of a if a is complex )and the real parts of the eigenvalues if a is real. 0Complex conjugated eigenvalues of a real matrix a .are encoded as 2x2 blocks along the diagonal. OPQRSTUVWXYZ[\]^_`abcdefghij^dOPQRSTUVWXYZ[\]^_`abcdefghijNoneklmnklmnklmn None6opqrstuvwxyz{|}~/orqpstuvwxyz{|}~ None< denotes a range starting at zero and has a certain length.  None""!None"None  toSquare (stack a b c)   =   toSquare a ||| b  ===  adjoint b ||| toSquare c  It holds order (stack a b c) = order b. CThe function is most efficient when the order of all blocks match. A^H * A A^H + A A^H + A .uvw&#None$NoneadaptOrder x y contains the data of y with the layout of x. (For upper triangular matrices it holds:   toSquare (stack a b c)   =   toSquare a ||| b  ===  constant 0 ||| toSquare c 6For the other triangular flavors it holds accordingly  It holds order (stack a b c) = order b. CThe function is most efficient when the order of all blocks match. Include symmetric matrices. <However, symmetric matrices do not preserve unit diagonals. I     6;     C     %None . solve a b == solveDecomposed (decompose a) b / solve (covariance u) b == solveDecomposed u b Cholesky decomposition  None&None     'None !"#$% &'()*+,  -./0 !"#$%&'()*+,-./0 !"#$% &'()*+,  -./0(None#123456789 :!"#$%&;'()*uvw123456789:;123456789 :!"#$%&;'()*)None<IThis class allows to multiply two matrices of arbitrary special features 3and returns the most special matrix type possible. $At the first glance, this is handy. .At the second glance, this has some problems. 0First of all, we may refine the types in future Oand then multiplication may return a different, more special type than before. 9Second, if you write code with polymorphic matrix types, then =% may leave you with constraints like $ExtentPriv.Multiply vert vert ~ vert. HThat constraint is always fulfilled but the compiler cannot infer that. Because of these problems +you may instead consider using specialised C functions -from the various modules for production use. Btw. > and @ are much less problematic, 7because the input and output are always dense vectors. C;Multiply two matrices with the same dimension constraints. E.g. you can multiply General and General matrices, or y and y matrices. 1It may seem to be overly strict in this respect, 2but that design supports type inference the best. 7You can lift the restrictions by generalizing operands with *+, ,-, ,. or ,/. +;Multiply two matrices with the same dimension constraints. E.g. you can multiply General and General matrices, or y and y matrices. 1It may seem to be overly strict in this respect, 2but that design supports type inference the best. 7You can lift the restrictions by generalizing operands with *+, ,-, ,. or ,/. >,-./01234<5=>?@AB6C+789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`,-./01234<5=>?@AB6C+789:;7,-./01234<5=>?@AB6C+789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`0NoneMconjugate transpose DEFGHIJKLMNOPQabRSTUVWcyDEFGHIJKLMNOPQRSTUVWDEFGHIJKLMNOPQabRSTUVWc1Nonedefghijklmnopqrln defghijklmnopqrNoneY#For symmetric eigenvalue problems,  eigensystem and schur coincide. XYuvwXYuwvXYXY2Nonestuvwxyz{|}~{} stuvwxyz{|}~None[#For symmetric eigenvalue problems,  eigensystem and schur coincide. Z[uvw123456789:;Z[1uwv2345678:9;Z[Z[3None] . solve a b == solveDecomposed (decompose a) b / solve (covariance u) b == solveDecomposed u b ^Cholesky decomposition \]^_\]^_\]^_None\]^_\]^_4None5None`ab`ab`ab Noned (vr,d,vl) = eigensystem aCounterintuitively, vr! contains the right eigenvectors and vl, contains the left eigenvectors as columns. *The idea is to provide a decomposition of a. If a is diagonalizable, then vr and vl# are almost inverse to each other. More precisely,  adjoint vl <#> vr is a diagonal matrix. EThis is because all eigenvectors are normalized to Euclidean norm 1. ?With the following scaling, the decomposition becomes perfect:  ? let scal = Array.map recip $ takeDiagonal $ adjoint vl <#> vr 9 a == vr <#> diagonal d <#> diagonal scal <#> adjoint vl If a, is non-diagonalizable then some columns of vr and vl are left zero &and the above property does not hold. cdyDEFGHIJKLMNOPQRSTUVW`abcdyDFEGHIJKLMNOPQRSTUVW`abcdcd6NoneefefefNonegh !"#$%&'()*+,-./0efgh! "#$%&)*0./'(+,-ghefgh7Nones  #HH.minimumNorm (HH.fromMatrix a) b ==  Ortho.minimumNorm (adjoint a) b "ijklmnopqrstuvwxyz{|!ijklmnopqrstuvwxyz{|ijklmnopqrstuvwxyz{|Noneopqrstuvwijklmnopqrstuvwxyz{|mlkjinopqrsuwvrtsoqptyxuzvw{|8None~+The pivot array must be at most as long as  Shape.size sh. }~}~}~None opq}~ }oqp~NoneLowerUpper.fromMatrix a (computes the LU decomposition of matrix a with row pivotisation. You can reconstruct a from lu depending on wether a is tall or wide. ? LU.multiplyP False lu $ LU.extractL lu <#> LU.tallExtractU lu ? LU.multiplyP False lu $ LU.wideExtractL lu <#> LU.extractU lu  Caution: LU.determinant . LU.fromMatrix" will fail for singular matrices. wideMultiplyL transposed lu a multiplies the square part of lu ,containing the lower triangular matrix with a. 3 wideMultiplyL False lu a == wideExtractL lu <#> a D wideMultiplyL True lu a == wideExtractL (Tri.transposeUp lu) <#> a tallMultiplyU transposed lu a multiplies the square part of lu ,containing the upper triangular matrix with a. 3 tallMultiplyU False lu a == tallExtractU lu <#> a F tallMultiplyU True lu a == tallExtractU (Tri.transposeDown lu) <#> a %opqrstuvwuwvrtsoqp9None  :None,There is no solver for indefinite matrices. AThus the instance will fail for indefinite but solvable systems.  None (vr,d,vlAdj) = eigensystem aCounterintuitively, vr, contains the right eigenvectors as columns and vlAdj4 contains the left conjugated eigenvectors as rows. *The idea is to provide a decomposition of a. If a is diagonalizable, then vr and vlAdj "are almost inverse to each other. More precisely, vlAdj <#> vr is a diagonal matrix. 5This is because the eigenvectors are not normalized. ?With the following scaling, the decomposition becomes perfect:  : let scal = Array.map recip $ takeDiagonal $ vlAdj <#> vr 4 a == vr <#> diagonal d <#> diagonal scal <#> vlAdj If a is non-diagonalizable then some columns of vr and corresponding rows of vlAdj are left zero &and the above property does not hold. =;     =;     None W&'()*+,-./0123456789:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnWZYXW[\]^cd_a`behgfVRSTUNOPQHIJKLMA@?>=ik:jBCFGDE456783210/+.-,mn9l<&'()* None conjugate transpose  Problem:  adjoint a  # a is always square, @but how to convince the type checker to choose the Square type?  Anser: Use +Hermitian.toSquare $ Hermitian.covariance a instead. &Square matrices will be classified as {. FThe number of rows must be maintained by the height mapping function. HThe number of columns must be maintained by the width mapping function. =Take a left-top aligned square or as much as possible of it. OThe advantange of this function is that it maintains the matrix size relation, /e.g. Square remains Square, Tall remains Tall. =Drop the same number of top-most rows and left-most columns. OThe advantange of this function is that it maintains the matrix size relation, /e.g. Square remains Square, Tall remains Tall. adaptOrder x y contains the data of y with the layout of x.  F tensorProduct order x y = singleColumn order x <#> singleRow order y  > outer order x y = tensorProduct order x (Vector.conjugate y) A^xz{|}~<=>?@ABC^}|{zx~CB<=>?@A?NoneIf x = leastSquares a b then x minimizes Vector.norm2 (multiply a x sub b). Precondition: a must have full rank and height a >= width a.  The vector x with x = minimumNorm a b is the vector with minimal Vector.norm2 x that satisfies multiply a x == b. Precondition: a must have full rank and  height a < = width a. If 1(rank,x) = leastSquaresMinimumNormRCond rcond a b then x is the vector with minimum Vector.norm2 x that minimizes Vector.norm2 (a#>x sub b). Matrix a can have any rank Lbut you must specify the reciprocal condition of the rank-truncated matrix. Gramian determinant - Gworks also for non-square matrices, but is sensitive to transposition. E determinantAbsolute a = sqrt (Herm.determinant (Herm.covariance a)) For an m-by-n-matrix a with m>=n ,this function computes an m-by-(m-n)-matrix b  such that Matrix.multiply (adjoint b) a is a zero matrix. =The function does not try to compensate a rank deficiency of a.  That is, a|||b has full rank if and only if a has full rank. 0For full-rank matrices you might also call this kernel or  nullspace. None+  !;<=>?@ABCDEFGHIJKLMNOPQRSTUV>?WXYZ[\./]]^_`abcdefghijjklmnopqrstuvwxyyzz{{|}~*U*-./>?        L N I J X      {""""""""""U"""""""""###$$$$$$u$r$$$X$$$$$$$$$$$ $ $ $ $ $$$$$$$$$$$$$$$$$$$$$$$U$$$%%%%%'u'''*''j'' ''''X'''''''!'"'+(](((((#($(((()%)&)')()))*))0+0Z0+0,0-0.000X000/0001000200U0345453333555 4 566>?7*77776777778797:7;7<7=7>7?7@7A7B7C8D8E8F88G8X88H8I*J7KLMNOPQRSTHUV999W9:X::Y::Z+45[\]^_`abcV-.defghijklmnopqrstuvwxyz{|}~9:88**V%QI*RSTV./Z[\deXWV      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSSTUUVWWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz    { { |    } } ~                          deuu %*;Gto                                                        Q Q  ) )                      !!U!!!!""""""Q"Q"""""""""""" " " " " """"##$%$%$$$$$$$$$$$$$$$$$ $!$"$#%&$&$&%&&&&&&&&'&(&)&*&+&,'-'.'/'0'1'2'3'4(5(5(6(7(((((8(u((9(:( (;(0(1(<((=( (>(?(@).)A)A)B)C)D)E)F)G)!)H)I))J)K)L)m)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)q0r0s0t1u1u1v1w1111x1111y1z1{1|2}2}2~22222x2222y2223444444N4A4+4O4B4!4P4C456767777V77v77777778888D888888J}99999999::::::::yo lapack-0.2.3Numeric.LAPACK.Matrix.Shape.BoxNumeric.LAPACK.ScalarNumeric.LAPACK.Matrix.ExtentNumeric.LAPACK.Matrix.Shape Numeric.LAPACK.Matrix.Triangular%Numeric.LAPACK.Orthogonal.HouseholderNumeric.LAPACK.Matrix.HermitianNumeric.LAPACK.MatrixNumeric.LAPACK.Matrix.SquareNumeric.LAPACK.VectorNumeric.LAPACK.FormatNumeric.LAPACK.ShapeStatic/Numeric.LAPACK.Matrix.HermitianPositiveDefiniteNumeric.LAPACK.Matrix.Banded%Numeric.LAPACK.Matrix.BandedHermitian5Numeric.LAPACK.Matrix.BandedHermitianPositiveDefiniteNumeric.LAPACK.Permutation Numeric.LAPACK.Linear.LowerUpperNumeric.LAPACK.OrthogonalNumeric.LAPACK.Singular!Numeric.LAPACK.Matrix.Extent.KindNumeric.LAPACK.Wrapper$Numeric.LAPACK.Matrix.Extent.Private#Numeric.LAPACK.Matrix.Shape.PrivateNumeric.LAPACK.Matrix.PrivateNumeric.LAPACK.PrivateNumeric.LAPACK.Matrix.Basic'Numeric.LAPACK.Matrix.Hermitian.PrivateNumeric.LAPACK.Matrix.Indexed"Numeric.LAPACK.Matrix.Square.EigenNumeric.LAPACK.Linear.Private(Numeric.LAPACK.Matrix.Triangular.Private'Numeric.LAPACK.Matrix.Symmetric.Private%Numeric.LAPACK.Matrix.Hermitian.Basic&Numeric.LAPACK.Matrix.Hermitian.Linear&Numeric.LAPACK.Matrix.Triangular.Basic6Numeric.LAPACK.Matrix.HermitianPositiveDefinite.Linear&Numeric.LAPACK.Matrix.Triangular.Eigen"Numeric.LAPACK.Matrix.Banded.Basic+Numeric.LAPACK.Matrix.BandedHermitian.BasicNumeric.LAPACK.Matrix.MultiplySquaretoFullMatrixfromFullgeneralizeTallgeneralizeWide"Numeric.LAPACK.Matrix.Square.Basic%Numeric.LAPACK.Matrix.Hermitian.Eigen+Numeric.LAPACK.Matrix.BandedHermitian.Eigen MultiplyLeft<# MultiplyRight#>size fromGeneral fromScalartoScalar identityFromidentityFromWidthidentityFromHeighttracepower eigenvalues eigensystem Householder fromMatrixdeterminantAbsolute leastSquares minimumNormextractQ tallExtractQ tallMultiplyQtallMultiplyQAdjoint multiplyQextractR tallExtractR tallMultiplyR tallSolveR Permutation fromPivotstoPivotsnumberFromSigntoMatrixapply LowerUpperextractP multiplyPextractL wideExtractL wideMultiplyL wideSolveLextractU tallExtractU tallMultiplyU tallSolveUmultiplyFullRight caseTallWideinverseGenericInverseSolve solveVector SplitGeneral splitGeneral splitFromFulllowerTriangularupperTriangular symmetric hermitianbandedFromFullbandedHermitian mapHeightmapWidthfromRowsNonEmpty fromRowArrayfromRowsfromColumnsNonEmptyfromColumnArray fromColumnstoRows toColumns toRowArray toColumnArraytakeRow takeColumn takeTopRowstakeBottomRowstakeLeftColumnstakeRightColumnstakeRowsdropRows takeColumns dropColumns takeEqually dropEquallyswapRows swapColumns reverseRowsreverseColumns takeRowArraytakeColumnArray fromRowMajor toRowMajorflatten|||===rowSums columnSumsscaleRowsComplexscaleColumnsComplex scaleRowsRealscaleColumnsReal tensorProductleastSquaresMinimumNormRCondpseudoInverseRCond householder complementvalues valuesTall valuesWide decomposeWide decomposeTall wideHeight wideWidth tallHeight tallWidth generalHeight generalWidth $fShowSquare $fEqSquareFlipgetFlipToReal getToRealFromReal getFromReal norm1ComplexabsoluteSquaredRealabsoluteSquaredComplexUnifygetUnifyMultiplyTagLawgetMultiplyTagLawTagFactFusegetFuseGeneralTallWide switchTagGTWAdaptgetAdaptWidengetWidenEqualgetEqual Transpose getTransposeAccessor getAccessor GenToWide getGenToWide GenToTall getGenToTallGenWide getGenWideGenTall getGenTall GenSquare getGenSquare CaseTallWidegetCaseTallWide Dimensions extentDir extentDim switchTagPair genSquare genToTall genToWidesquareFromGeneralshowsPrecSquare showsPrecAnywidenreduceWideHeightreduceConsistentmultiplyTagLaw heightFact widthFact unifyLeft unifyRight$fGeneralTallWideBigBig$fGeneralTallWideBigSmall$fGeneralTallWideSmallBig $fShowExtent $fEqExtent$fCBig$fCSmall $fNFDataSmall $fNFDataBig$fNFDataExtentConst2 getConst2UpLoSymC switchUpLoSymUpLoSym DiagUpLoCswitchDiagUpLoUpLoC switchUpLo switchContentFilledEmpty splitLower splitOrder splitExtenttransposeFromOrderswapOnRowMajorsideSwapFromOrder fullIndicesfullIndexFromOffset fullMapExtent splitHeight splitWidthsplitMapExtentcaseTallWideSplit splitPart uploFromOrder caseTriDiagcharFromTriDiagloweruppertriangularTranspose autoContent uploOrder getConstAs caseContentcaseLoUpcaseDiagUpLoSymgetContentConst2 caseUpLoSymtriangleRootDoubletriangleExtenttriangleIndicestriangleOffsettriangleUncheckedOffsettriangleSizeOffsettriangleUncheckedSizeOffsettriangleIndexFromOffset bandedHeight bandedWidthbandedMapExtent bandedBreadthnumOffDiagonals natFromProxybandedTranspose outsideOffset bandedOffsetbandedIndicesRowMajorbandedIndexFromOffsetbandedHermitianIndexFromOffset$fInvIndexedBandedHermitian$fIndexedBandedHermitian$fCBandedHermitian$fNFDataBandedHermitian$fBoxBandedHermitian$fInvIndexedBanded$fIndexedBanded $fCBanded$fNFDataBanded $fBoxBanded$fInvIndexedTriangular$fIndexedTriangular $fCTriangular$fNFDataTriangular$fUpLoSymCFilledFilled$fUpLoSymCFilledEmpty$fUpLoSymCEmptyFilled$fDiagUpLoCFilledEmpty$fDiagUpLoCEmptyFilled$fDiagUpLoCEmptyEmpty$fUpLoCFilledEmpty$fUpLoCEmptyFilled$fContentFilled$fContentEmpty$fTriDiagNonUnit $fTriDiagUnit$fBoxTriangular$fInvIndexedHermitian$fIndexedHermitian $fCHermitian$fNFDataHermitian$fBoxHermitian$fInvIndexedSplit$fIndexedSplit$fCSplit $fNFDataSplit$fNFDataTriangle$fNFDataReflector $fBoxSplit$fInvIndexedFull $fIndexedFull$fCFull $fNFDataFull $fBoxFull $fNFDataOrder argGeneral argSquaretransposeOrder flipInversionconjugateToTemp copySubMatrixcopyToColumnMajorLACGVgetLACGVSumrunSum CopyToTemp runCopyToTempfill copyBlock copyToTempcomplexConjugateToTemp copyConjugatecopyCondConjugatecondConjugateToTempcopyCondConjugateToTempcopySubTrapezoidcopyTransposedcopyToSubColumnMajor pointerSeqcreateHigherArraysumReal sumComplexlacgvgemvgbmv initializeMVmultiplyMatrixwithAutoWorkspaceInfowithAutoWorkspacewithInfoargMsg errorCodeMsgrankMsg definiteMsgeigenMsgpokeCIntpeekCInt ceilingSizenetlib-ffi-0.1.1Numeric.Netlib.ClassFloating ToComplex getToComplex Conjugate getConjugate ScaleReal getScaleReal ArgMaximum runArgMaximumNormgetNormDotrunDotsplitdotReal dotComplexcsum1asumnrm2absMax vectorArgs peekElemOff1_scalescaleRealComplexcomplexConjugate complexToPartisComplexInFunctor forceRowMajor DeterminantgetDeterminant TakeDiagonalrunTakeDiagonal runDiagonal checkedZero Decompose getDecomposeGEESgetGEESGEES_SchurgetSchurSchur_Values getValuesValues_ valuesAuxschurAuxgeesgeesReal geesComplex decomposeRealeigenvectorsToComplexdecomposeComplexcreateArrayPairsolverwithDeterminantInfo diagonalMsg SeparatorBarSpaceFormatTriangulargetFormatTriangulartrim formatVector formatFullformatHouseholderformatHermitianformatSymmetriccomplementTriangleformatTriangularpadUpperTrianglepadLowerTrianglesliceformatSeparateTriangle formatBandedformatBandedHermitianshiftRow splitRows formatAlignedalignSeparatedviewLAllformatSeparatorattachSeparatorsprintfFloatingprintfFloatingMaybe printfComplexprintfComplexAux$fFormatArrayBandedHermitian$fFormatArrayBanded$fFormatArrayTriangular$fFormatArrayHermitian$fFormatArraySplit$fFormatArrayFull$fFormatArrayOneBased$fFormatArrayZeroBased $fFormatArray $fFormat(,,) $fFormat(,) $fFormat[]$fFormatComplex$fFormatDouble $fFormatFloat $fFormatInt$fInvIndexedZeroBased$fIndexedZeroBased $fCZeroBasedPowergetPowergetMapgetMultiplyRight FlexDiagonaldiagonalPointersdiagonalPointerPairscolumnMajorPointersrowMajorPointers forPointerscopyTriangleToTemp unpackToTempunpackpackpackRect _unpackZero unpackZero fillTriangle copyTriangleA copyTriangleC copyRectanglecaseTriDiagArraymultiplyDiagonal fromBandedblockDiagonalPointers _addAdjointHERKgetHERKHERK_HPRgetHPRHPR_SumRank1 getSumRank1 SumRank1_ diagonalAuxtakeDiagonalAux fromUpperPartwithConjBufferouterAux sumRank1Auxhpr _toSquare covarianceAuxherk_packdeterminantAuxpeekBlockDeterminant getMultiplyMapDiag getMapDiagSPMVgetSPMV forceOrderMapuncheckedRelaxNonUnitDiagonalstackAuxmultiplyVectorTriangularspmvsquareDiagonalsquareTriangularsquareSymmetricmultiplyTriangularmultiplyFullTriangular autoUploOrderTREVCgetTREVCTREVC_decomposeTriangularunpackZeroRowMajorunpackRowMajortrevc trevcReal trevcComplex fromListGenmultiplyColumnMajormultiplyColumnRowMajormultiplyFullColumnMajormultiplyFullRowMajortoFullColumnMajorwithRightBoundcopyUpperTrapezoidHBRgetHBRHBR_ StaticVectortoBandedColumnMajortoBandedRowMajormultiplyFullSpecialmultiplyFullGenerictakeStrictLowerhbrsyrherMultiplyTriangularConformgetMultiplyTriangularConformComposedTriangularMultipliedDiagMultipliedPartMultipliedTriangularMultiplyTriangular MultipliedmultiplyVectorUnchecked unifyFactorsmultiplyTriangularToSquaremultiplyTriangularConform($fMultiplyBandedHermitianBandedHermitian$fMultiplyBandedHermitianBanded$fMultiplyBandedBandedHermitian$fMultiplyBandedHermitianFull$fMultiplyFullBandedHermitian$fMultiplyBandedBanded$fMultiplyBandedFull$fMultiplyFullBanded,$fMultiplyTriangularFilledFilledFilledFilled+$fMultiplyTriangularFilledFilledFilledEmpty+$fMultiplyTriangularFilledFilledEmptyFilled*$fMultiplyTriangularFilledFilledEmptyEmpty*$fMultiplyTriangularEmptyFilledFilledEmpty*$fMultiplyTriangularFilledEmptyEmptyFilled*$fMultiplyTriangularFilledEmptyFilledEmpty*$fMultiplyTriangularEmptyFilledEmptyFilled+$fMultiplyTriangularFilledEmptyFilledFilled+$fMultiplyTriangularEmptyFilledFilledFilled*$fMultiplyTriangularEmptyEmptyFilledFilled($fMultiplyTriangularEmptyEmptyEmptyEmpty$fMultiplyTriangularTriangular$fMultiplyTriangularFull$fMultiplyFullTriangular$fMultiplyHermitianHermitian$fMultiplyHermitianFull$fMultiplyFullHermitian$fMultiplyFullFull$fMultiplyLeftBandedHermitian$fMultiplyRightBandedHermitian$fMultiplyLeftBanded$fMultiplyRightBanded$fMultiplyLeftTriangular$fMultiplyRightTriangular$fMultiplyLeftHermitian$fMultiplyRightHermitian$fMultiplyLeftFull$fMultiplyRightFull identityOrder_identityOrdermultiplyCommutativeUncheckedHPEVgetHPEVHPEV_ Decompose_ decomposeAuxhpevspevReal hpevComplexHBEVgetHBEVHBEV_hbevsbevReal hbevComplex determinantRoddPermutationdropEvenextractTrianglesolveTriangular_solvesolveColumnMajortau_split_extent_addRows extractQAuxtransposeFromInversioninvChar asFuncTypeOf inverseChar$fFormatHouseholderSignPositiveNegativeswapElem transposeIOpeek1poke1$fFormatPermutationMultiplyFullRightgetMultiplyFullRightToMatrix getToMatrix_pivot tallToMatrix wideToMatrixtallMultiplyFullRightwideMultiplyFullRight _toRowMajor$fFormatLowerUppersolveSymmetricinverseDiagonalinverseTriangularinverseSymmetricdeterminantTriangulardeterminantSymmetric$fSolveBandedHermitian $fSolveBanded$fInverseTriangular$fSolveTriangular$fInverseHermitian$fSolveHermitian $fInverseFull $fSolveFull ScaleRowsRealgetScaleRowsReal withSizeCheckgatherpickConsecutive pickScattered chopRowBlockschopColumnBlocks tensorProdGELSYgetGELSYGELSY_ transposeAleastSquaresMinimumNormIOgelsy gelsyReal gelsyComplexPseudoInverseExtentgetPseudoInverseExtentPseudoInverseRCondgetPseudoInverseRCondGELSSgetGELSSGELSS_GESVDgetGESVDGESVD_ valuesGendeterminantAbsoluteAux decomposeThingesvd gesvdReal gesvdComplexgelss gelssReal gelssComplexpseudoInverseRCondAuxpseudoInverseRCondWidepseudoInverseRCondTall recipSigma