cB5      !"#$%&'() * + , - . / 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{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~            !!!!!!!!!!!!""""""""""#########################$$$$$$$$$%%%%%&&&&&&''''''''(((())))********** * * * * ****++++,,,,,,,---- -!-"-#-$-%.&.'.(.).*.+.,.-...//0/1/2/3/4/< experimental%Patrick Perry <patperry@stanford.edu>567 experimental%Patrick Perry <patperry@stanford.edu>89 experimental%Patrick Perry <patperry@stanford.edu>: experimental%Patrick Perry <patperry@stanford.edu>; experimental%Patrick Perry <patperry@stanford.edu> Multiplication side Diagonal storage "Lower or upper triangular storage Transpose type Matrix element storage order     experimental%Patrick Perry <patperry@stanford.edu>A class for scalable tensors. #Scale a tensor by the given value.  experimental%Patrick Perry <patperry@stanford.edu>8The base class for tensors (i.e. Vector, Matrix, etc.). AGet the shape of the tensor. For vectors this is the dimension. # For matrices, this will be a pair (m,n) of the number of rows  and columns. .Get the range of valid indices in the tensor.    experimental%Patrick Perry <patperry@stanford.edu>!%Class for mutable read-only tensors. "1Get the number of elements stored in the tensor. #Get a copy of the tensor. $9Get the value at the specified index, without doing any  range-checking. %4Returns a lazy list of the indices in the tensor. B Because of the laziness, this function should be used with care. &5Returns a lazy list of the elements in the tensor. B Because of the laziness, this function should be used with care. 'AReturns a lazy list of the elements-index pairs in the tensor. B Because of the laziness, this function should be used with care. (GGets the value at the specified index after checking that the argument  is in bounds. !"#$%&'(!"#$%&'(  experimental%Patrick Perry <patperry@stanford.edu>)+Class for mutable dense read-only tensors. *<Creates a new tensor with elements all initialized to zero. +;Creates a new tensor with elements all initialized to the  given value. )*+)*+  experimental%Patrick Perry <patperry@stanford.edu> ,&Class for modifiable mutable tensors. -EGet the maximum number of elements that can be stored in the tensor. ."Sets all stored elements to zero. /-Sets all stored elements to the given value. 02True if the value at a given index can be changed 1CSet the value of the element at the given index, without doing any  range checking. 2BModify the value of the element at the given index, without doing  any range checking. 31Replace each element by a function applied to it 41Set the value of the element at the given index. 54Update the value of the element at the given index. ,-./012345 ,-./012345  experimental%Patrick Perry <patperry@stanford.edu>6789:;<=>?@ABCDEFGHIJKLM6789:;<=>ABCDEFGIHJKLM?@  experimental%Patrick Perry <patperry@stanford.edu>NThe base class for elements. O8Take the complex conjugate of a value. For real values  this is equal to id. PGet the magnitude of a value. QGet the l1 norm of a value. RConvert a double to an element SCoerce an element to a double NOPQRSNOPQRS  experimental%Patrick Perry <patperry@stanford.edu>TA base class for matrices. U"The number of rows in the matrix. V%The number of columns in the matrix. W>Creates a new matrix view that conjugates and transposes the  given matrix. TUVWXYZTUVWXYZ experimental%Patrick Perry <patperry@stanford.edu>[A class for vectors. \!Get the dimension of the vector. ]?Returns a view into an existing vector that takes the complex D conjugate of every element. For real vectors, this should compile  to a no-op. [\][\] experimental%Patrick Perry <patperry@stanford.edu>^_`abcdefghijklmnopqrba`_^cdfghjkmnpqeilor experimental%Patrick Perry <patperry@stanford.edu>#conjugate all elements of a vector  Replaces y with alpha (conj x) + y stuvwxyz{|}~stuvwxyz{|}~ experimental%Patrick Perry <patperry@stanford.edu>  experimental%Patrick Perry <patperry@stanford.edu> 0 experimental%Patrick Perry <patperry@stanford.edu> NOPQRSs experimental%Patrick Perry <patperry@stanford.edu> A class for immutable tensors. 0Get the numer of elements stored in the tensor. AGet a new tensor by replacing the elements at the given indices. EGet the value at the given index, without doing any bounds-checking. Same as '()' but doesn't do any bounds-checking. 6Get the indices of the elements stored in the tensor. 'Get the elements stored in the tensor. Get the list of (index, element) pairs stored in the tensor. *Apply a function elementwise to a tensor. >Get the value at the given index. Range-checks the argument.  experimental%Patrick Perry <patperry@stanford.edu>#Class for immutable dense tensors. &Get a zero tensor of the given shape. .Get a new constant tensor of the given shape. ?Apply a function to pairs of elements of tensors that are the  same shape. 1 experimental%Patrick Perry <patperry@stanford.edu>)*+2 experimental%Patrick Perry <patperry@stanford.edu>( !"#$%&'()*+,-./0123453 experimental%Patrick Perry <patperry@stanford.edu>:^_`abcdefghijklmnopqrstuvwxyz{|}~ experimental%Patrick Perry <patperry@stanford.edu>Tag for immutable types. Tag for mutable types.  experimental%Patrick Perry <patperry@stanford.edu>A dense vector. t is a type that will usually be Imm or Mut.  n8 is a phantom type for the dimension of the vector, and e is the  element type. A DVector x stores dim x elements. Indices into  the vector are 0-based.  a pointer to the storage region Han offset (in elements, not bytes) to the first element in the vector. the length of the vector 6the stride (in elements, not bytes) between elements. 2indicates whether or not the vector is conjugated Cast the phantom length type. "fromForeignPtr fptr offset n inc c creates a vector view of a D region in memory starting at the given offset and having dimension n,  with a stride of inc , and with isConj set to c. Gets the tuple (fptr,offset,n,inc,c), where n is the dimension and  inc" is the stride of the vector, and c indicates whether or not the  vector is conjugated. subvector x o n creates a subvector view of x starting at index o  and having length n. Same as & but arguments are not range-checked. subvectorWithStride s x o n creates a subvector view of x starting  at index o, having length n and stride s. Same as & but arguments are not range-checked. ACreates a new vector of the given length. The elements will be  uninitialized. ECreates a new vector of the given dimension with the given elements. F If the list has length less than the passed-in dimenson, the tail of # the vector will be uninitialized. <listVector n es is equivalent to vector n (zip [0..(n-1)] es) , except ! that the result is undefined if  length es is less than n. CCreates a new vector with the given association list. Unspecified ' indices will get initialized to zero. Same as $ but indices are not range-checked.  newBasis n i creates a vector of length n that is all zero except for  at position i, where it equal to one.  setBasis x i sets the ith coordinate of x to 1, and all other  coordinates to 06. If the vector has been scaled, it is possible that  readVector x i will not return exactly 1. See setElem. DEvaluate a function with a pointer to the value stored at the given J index. Note that the value may need to conjugated before using it. See  . Cast the access type to Imm. Cast the access type to Mut. C !"#$%&'()*+,-./012345\] experimental%Patrick Perry <patperry@stanford.edu>#copyVector dst src replaces the elements in dst with the values from src. ) This may result in a loss of precision. Same as 5 but does not check the dimensions of the arguments. swapVectors x y replaces the elements in x with the values from y, and  replaces the elements in y with the values from x. This may result in  a loss of precision. Same as swap5 but does not check the dimensions of the arguments. ;Gets the sum of the absolute values of the vector entries. Gets the 2-norm of a vector. RGets the index and norm of the element with maximum magnitude. This is undefined  if any of the elements are NaN&. It will throw an exception if the  dimension of the vector is 0. )Computes the dot product of two vectors. >Create a new vector by taking the conjugate of a vector. The  resulting vector will have  equal to =45. DCreate a new vector by adding a value to every element in a vector. :Create a new vector by scaling every element by a value. scale'k x  is equal to newCopy' (scale k x). :Create a new vector by dividing every element by a value. !Computes the sum of two vectors. (Computes the difference of two vectors. 1Computes the elementwise product of two vectors. /Computes the elementwise ratio of two vectors. <Replace every element with its complex conjugate. See also ]. *Add a value to every element in a vector. HScale every element in the vector by the given value, and return a view ! to the scaled vector. See also . !Divide every element by a value. y += x replaces y by y + x. y -= x replaces y by y - x. y *= x replaces y by x * y, the elementwise product. y = x replaces y by y / x, the elementwise ratio. =Compute the sum of absolute values of entries in the vector.  Compute the 2-norm of a vector. FGet the index and norm of the element with absulte value. Not valid " if any of the vector entries are NaN. Raises an exception if the  vector has length 0. (Compute the dot product of two vectors. *Add a value to every element in a vector. (Scale every element by the given value. !Divide every element by a value. Sum of two vectors. Difference of vectors. Elementwise vector product. Elementwise vector ratio. ++ experimental%Patrick Perry <patperry@stanford.edu>"FThe mutable dense matrix data type. It can either store elements in G column-major order, or provide a view into another matrix. The view 2 transposes and conjugates the underlying matrix.  a pointer to the storage region Han offset (in elements, not bytes) to the first element in the matrix. !the number of rows in the matrix $the number of columns in the matrix )the leading dimension size of the matrix Aindicates whether or not the matrix is transposed and conjugated 8Coerce the phantom shape type from one type to another. fromForeignPtr f o mn l h. creates a matrix view of the data pointed to  by f starting at offset o and having shape mn and lda l. If h  is True9 the matrix is interpreted as transposed and conjugated. >Convert a dense matrix to a pointer, offset, size, lda, herm. KCreate a new matrix of the given size and initialize the given elements to @ the given values. All other elements get initialized to zero. Same as $ but do not do any bounds-checking. HCreate a new matrix of given shape, but do not initialize the elements. CCreate a new matrix with the given elements in column-major order. @Create a new matrix with the given elements in row-major order. FCreate a new matrix of the given shape with ones along the diagonal,  and zeros everywhere else. ;Set the diagonal to ones, and set everywhere else to zero. -Form a matrix from a list of column vectors. *Form a matrix from a list of row vectors. FEvaluate a function with a pointer to the raw storage for the element N at the given index. It may be necessary to conjugate or scale values before - reading or writing to or from the location. 0Get a vector view of the given row in a matrix. 6Get a list of vector views of the rows of the matrix. 9Get a list of vector views of the columns of the matrix. 3Get a vector view of the given column in a matrix.  Same as ', but does not do any bounds checking.  Same as ', but does not do any bounds checking.  diag a 0, gets a vector view of the main diagonal of a. diag a k for  k positive gets a view of the kth superdiagonal. For k negative, it  gets a view of the (-k)th subdiagonal.  Same as  ', but does not do any bounds checking.  submatrix a ij mn$ returns a view of the submatrix of a with element (0,0)  being element ij in a, and having shape mn. Same as  & but does not do any bounds checking. =Create a matrix view of a row vector. This will fail if the , vector is conjugated and the stride is not 1. BPossibly create a matrix view of a column vector. This will fail $ if the stride of the vector is not 1# and the vector is not conjugated. TTake a unary elementwise vector operation and apply it to the elements of a matrix. RTake a binary elementwise vector operation and apply it to the elements of a pair  of matrices. V !"#$%&'()*+,-./012345UVWXYZ     (      experimental%Patrick Perry <patperry@stanford.edu>$8Coerce the phantom shape type from one type to another. ^ !"#$%&'()*+,-./012345UVWXYZ !"#$%&'()*+,-./0123456789:;<=>?@ABC0! &'()*,0+.16:>?8<%3BC$-/"#4529=7;A@ experimental%Patrick Perry <patperry@stanford.edu>D copy dst src< copies the elements from the second argument to the first. Fswap a b0 exchanges the elements stored in two matrices. HBForm a new matrix by adding a value to every element in a matrix. I;Form a new matrix by multiplying every element by a value. J8Form a new matrix by dividing every element by a value. KCCreate a new matrix by taking the elementwise sum of two matrices. LJCreate a new matrix by taking the elementwise difference of two matrices. MGCreate a new matrix by taking the elementwise product of two matrices. NECreate a new matrix by taking the elementwise ratio of two matrices. O%Conjugate every element in a matrix. P4Scale every element in a matrix by the given value. Q(Scale every element by the given value. R)Divide every element by the given value. TIn-place elementwise add. UIn-place elementwise subtract. VIn-place elementwise product. WIn-place elementwise divide. Xgemv alpha a x beta y replaces y := alpha a * x + beta y. Ygemm alpha a b beta c replaces c := alpha a * b + beta c. ZBCreate a new matrix by scaling another matrix by the given value. [BForm a new matrix by adding a value to every element in a matrix. \8Form a new matrix by dividing every element by a value. ]CCreate a new matrix by taking the elementwise sum of two matrices. ^CCreate a new matrix by taking the elementwise sum of two matrices. _JCreate a new matrix by taking the elementwise difference of two matrices. `GCreate a new matrix by taking the elementwise product of two matrices. aECreate a new matrix by taking the elementwise ratio of two matrices. DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`aDF[Z\]^_`aHIJKLMNOQPRSTUVWXYEG experimental%Patrick Perry <patperry@stanford.edu>bGMinimal complete definition: (unsafeDoSApplyAdd, unsafeDoSApplyAddMat) ( or (unsafeDoSApply, unsafeDoSApplyMat) sApply to a vector tApply to a matrix uScale and apply to a vector vScale and apply to a matrix w9Apply to a vector and store the result in another vector x y := a x + beta yy y := alpha a xz y := alpha a x + beta y{9Apply to a matrix and store the result in another matrix | c := a b + beta c}CScale and apply to a matrix and store the result in another matrix ~ c := alpha a b + beta c x := a x  b := a b  x := alpha a x  b := alpha a b!bcdefghijklmnopqrstuvwxyz{|}~!bcdefghijklmnstuvwx{|yz}~opqr6 experimental%Patrick Perry <patperry@stanford.edu>| !"#$%&'()*+,-./012345UVWXYZ     DEFGHIJKLMNOPQRSTUVWZ[\bcdefghijklmnopqrstuvwxyz{|}~&      experimental%Patrick Perry <patperry@stanford.edu>ECreate a vector with the given dimension and elements. The elements G given in the association list must all have unique indices, otherwise  the result is undefined. Same as (, but does not range-check the indices. ACreate a vector of the given dimension with elements initialized  to the values from the list.  basis n i creates a vector of dimension n with zeros everywhere but  position i, where there is a one. %Convert a vector to a list. Same as elems. Convert a list to a vector. 'fromList xs = listVector (length xs) xs. ( \] experimental%Patrick Perry <patperry@stanford.edu>Apply to a vector Apply to a matrix   experimental%Patrick Perry <patperry@stanford.edu> ;Form a new matrix by multiplying every element by a value. 8Form a new matrix by dividing every element by a value. %Conjugate every element in a matrix. 4Scale every element in a matrix by the given value. )Divide every element by the given value. >gbmv alpha a x beta y replaces y := alpha a * x + beta y ?gbmm alpha a b beta c replaces c := alpha a * b + beta c. BCreate a new matrix by scaling another matrix by the given value. 8Form a new matrix by dividing every element by a value. 1bcdefghijklmnopqrstuvwxyz{|}~7 experimental%Patrick Perry <patperry@stanford.edu>f !"#$%&'()*+,-./012345UVWXYZ !"#$()*+./123489<=@ABCbcdefghijklmnopqrstuvwxyz{|}~".+1BC8<3! ()*$/4A@9=2"#8 experimental%Patrick Perry <patperry@stanford.edu>I UVWXYZ$%()*,-02367:;>?opqrstuvwxyz{|}~,0)*(6:>?3%$-7;2 experimental%Patrick Perry <patperry@stanford.edu>KCreate a new matrix of the given size and initialize the given elements to 8 the given values. All other elements get set to zero. Same as & but does not do any bounds checking. :Create a matrix of the given shape from a list of columns 7Create a matrix of the given shape from a list of rows EGet a new matrix of the given shape with ones along the diagonal and  zeroes everywhere else.  Get a matrix from a row vector. #Get a matrix from a column vector. 9 UVWXYZ     Z[\  [Z\     experimental%Patrick Perry <patperry@stanford.edu>  ! experimental%Patrick Perry <patperry@stanford.edu>@ABCDEFG " experimental%Patrick Perry <patperry@stanford.edu>HIJKLMN 9 experimental%Patrick Perry <patperry@stanford.edu>Q !"#$%&'()*+,-./012345\]# experimental%Patrick Perry <patperry@stanford.edu>Solve for a vector Solve for a vector and scale Solve for a matrix Solve for a matrix and scale $ experimental%Patrick Perry <patperry@stanford.edu>Solve for a vector Solve for a matrix Solve for a vector and scale Solve for a matrix and scale  : experimental%Patrick Perry <patperry@stanford.edu>"; experimental%Patrick Perry <patperry@stanford.edu>STUVWXYZbcdefghijklmnopqrstuvwxyz{|}~% experimental%Patrick Perry <patperry@stanford.edu> !"#$%&'()*+,-./012345UVWXYZbcdefghijklmnopqrstuvwxyz{|}~& experimental%Patrick Perry <patperry@stanford.edu> OPQRS' experimental%Patrick Perry <patperry@stanford.edu>  < experimental%Patrick Perry <patperry@stanford.edu>5bcdefghijklmnopqrstuvwxyz{|}~= experimental%Patrick Perry <patperry@stanford.edu>5bcdefghijklmnopqrstuvwxyz{|}~( experimental%Patrick Perry <patperry@stanford.edu>TUV) experimental%Patrick Perry <patperry@stanford.edu>WXY* experimental%Patrick Perry <patperry@stanford.edu>Coerce the shape type.             + experimental%Patrick Perry <patperry@stanford.edu>h bcdefghijklmnopqrstuvwxyz{|}~     , experimental%Patrick Perry <patperry@stanford.edu>.A triangular matrix and a matrix in its range .A triangular matrix and a vector in its range BA triangular matrix, and equivalent dense matrix, and a matrix in  their domain. BA triangular matrix, and equivalent dense matrix, and a vector in  their domain. 3A triangular matrix and an equivalent dense matrix Z[\]^- experimental%Patrick Perry <patperry@stanford.edu>[UVWXYZbcdefghijklmnopqrstuvwxyz{|}~ !"#$  !"#$. experimental%Patrick Perry <patperry@stanford.edu>%_&`'a(b)c*d+,-. %&'()*+,-.> experimental%Patrick Perry <patperry@stanford.edu>d bcdefghijklmnopqrstuvwxyz{|}~     / experimental%Patrick Perry <patperry@stanford.edu> /e0f1g2h3i4/01234j?@A?BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef g h i j k l m n o p q r s t u v w x y z { | } ~          !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ)*KL+,MNOPQRSTUVWXYZ>=[7;\]:<^_89`abcdefg      !"#$%hijklmnopqrstuvwxyz{|}~              !!!!!!!!!!!!""""""""""#########################$$$$$$$$$%%J%%%&&&&&&''''''''(((())))******************++++,,, , , , , -----,----..........// /!/"/#/$?@A?BDF45%&!!!!!!!!"""""""&&&&&((())),,, , , ......// /!/"/#'blas-0.5Test.QuickCheck.VectorTest.QuickCheck.MatrixTest.QuickCheck.PermutationTest.QuickCheck.Complex BLAS.TypesBLAS.Tensor.ScalableBLAS.Tensor.BaseBLAS.Tensor.ReadOnlyBLAS.Tensor.Dense.ReadOnlyBLAS.Tensor.Mutable BLAS.InternalBLAS.Elem.BaseBLAS.Matrix.Base BLAS.Vector BLAS.C.Types BLAS.C.Level1 BLAS.C.Level2 BLAS.C.Level3BLAS.Tensor.ImmutableBLAS.Tensor.Dense.Immutable BLAS.AccessData.Vector.Dense.InternalData.Vector.Dense.OperationsData.Matrix.Dense.InternalData.Matrix.Banded.InternalData.Matrix.Dense.OperationsBLAS.Matrix.ReadOnlyData.Vector.DenseBLAS.Matrix.ImmutableData.Matrix.Banded.OperationsData.Matrix.DenseTest.QuickCheck.Vector.DenseTest.QuickCheck.Matrix.DenseTest.QuickCheck.Matrix.BandedBLAS.Matrix.Solve.ReadOnlyBLAS.Matrix.Solve.ImmutableData.Matrix.DiagTest.QuickCheck.Matrix.DiagData.Matrix.Herm"Test.QuickCheck.Matrix.Herm.Banded!Test.QuickCheck.Matrix.Herm.DenseData.Matrix.TriData.Matrix.Tri.Dense Test.QuickCheck.Matrix.Tri.DenseData.Matrix.PermTest.QuickCheck.Matrix.Perm!Test.QuickCheck.Matrix.Tri.Banded BLAS.ElemBLAS.Tensor.Dense BLAS.TensorBLAS.Cghc-primGHC.BoolData.Matrix.Dense.IOData.Matrix.Banded.IOData.Matrix.BandedData.Vector.Dense.IOBLAS.Matrix.Solve BLAS.MatrixData.Matrix.Herm.BandedData.Matrix.Herm.DenseData.Matrix.Tri.BandedAssocsBasisIndex IndexPair matrixSizedTestPermutation permutation TestComplexSide RightSideLeftSideDiagNonUnitUnitUpLoLowerUpperTrans ConjTransNoTransOrderColMajorRowMajor flipOrder flipTransflipUpLoflipSideScalable*>TensorshapeboundsRTensorgetSizenewCopyunsafeReadElem getIndicesgetElems getAssocsreadElemRDTensornewZero newConstantMTensor getMaxSizesetZero setConstant canModifyElemunsafeWriteElemunsafeModifyElem modifyWith writeElem modifyElem clearArraybzeroinlinePerformIOcheckedSubvectorcheckedSubvectorWithStride checkVecVecOp checkedRow checkedCol checkedDiag diagStartdiagLencheckedSubmatrix checkMatMatOpcheckMatVecMultcheckMatMatMultcheckMatVecMultAddcheckMatMatMultAddcheckMatVecSolvcheckMatVecSolvTocheckMatMatSolvcheckMatMatSolvTo checkSquarecheckFat checkTallElemconjnormnorm1fromRealtoRealMatrixnumRowsnumColshermisSquareisFatisTallVectordim CBLASSide CBLASDiag CBLASUpLo CBLASTrans CBLASOrderrowMajorcolMajor cblasOrdernoTranstrans conjTrans cblasTransupperlower cblasUpLononUnitunit cblasDiagleftSide rightSide cblasSideBLAS1dotudotcnrm2asumiamaxscalswapcopyaxpyrotgrotacxpyBLAS2gemvgbmvtrmvtbmvtrsvtbsvhemvhbmvgerugercherher2BLAS3gemmsymmhemmtrmmtrsmsyrksyr2kherkher2kITensorsize//unsafeAt unsafeReplaceindiceselemsassocsamap!IDTensorzeroconstantazipWithImmMutIOVectorDVectorDV storageOfoffsetOflengthOfstrideOfisConj coerceVectorfromForeignPtr toForeignPtr subvectorunsafeSubvectorsubvectorWithStrideunsafeSubvectorWithStride newVector_ newListVector newVectorunsafeNewVectornewBasissetBasisunsafeWithElemPtr unsafeFreeze unsafeThaw copyVectorunsafeCopyVector swapVectorsunsafeSwapVectors getSumAbsgetNorm2getWhichMaxAbsgetDot unsafeGetDotgetConj getShifted getScaled getInvScaledgetSumgetDiff getProductgetRatiodoConjshiftByscaleBy invScaleBy unsafeAxpy+=unsafePlusEquals-=unsafeMinusEquals*=unsafeTimesEquals//=unsafeDivideEqualssumAbsnorm2 whichMaxAbs<.>shiftscaleinvScaleaddplusminustimesdivideIOMatrixDMatrixDMsize1size2ldaOfisHerm coerceMatrix newMatrixunsafeNewMatrix newMatrix_ newListMatrix listMatrix newIdentity setIdentity newColsMatrix newRowsMatrixrowrowscolscol unsafeRow unsafeColdiag unsafeDiag submatrixunsafeSubmatrix maybeFromRow maybeFromCol maybeToVectorliftVliftV2IOBandedBandedBMatrixBMfptrOflowBWupBW coerceBandedtoLists toRawMatrix fromRawMatrix bandwidthnumLowernumUpper newBanded_banded unsafeBanded newBandedunsafeNewBanded listsBandednewListsBandedunsafeWithBasePtrgetRow unsafeGetRowgetCol unsafeGetCol unsafeColView unsafeRowViewrowViewcolView copyMatrixunsafeCopyMatrix swapMatricesunsafeSwapMatricesRMatrix unsafeDoApplyunsafeDoApplyAddunsafeDoSApplyunsafeDoApplyMatunsafeDoApplyAddMatunsafeDoSApplyMatunsafeDoApply_unsafeDoApplyMat_unsafeDoSApply_unsafeDoSApplyMat_unsafeDoSApplyAddunsafeDoSApplyAddMatunsafeGetApplyunsafeGetApplyMatunsafeGetSApplyunsafeGetSApplyMatgetApply getApplyMat getSApply getSApplyMatdoApply doApplyAdddoSApply doSApplyAdd doApplyMat doApplyAddMat doSApplyMatdoSApplyAddMatdoApply_ doApplyMat_ doSApply_ doSApplyMat_vector unsafeVector listVectorbasistoListfromListIMatrix<*><**>sapply sapplyMat unsafeApplyunsafeApplyMat unsafeSApplyunsafeSApplyMatmatrix unsafeMatrixfromColsfromRowsidentityfromRowfromCol VectorTripleTriple VectorPairPair SubVector TestVectordvector rawVector conjVector subVector MultMMPairMultMM MultMVPairMultMV MatrixPairMatAt SubMatrix TestMatrixdmatrix rawMatrix hermedMatrix subMatrix BandedMMPairBandedMM BandedMVPairBandedMV ListsBandedBandedAt TestBandedbmatrix rawBanded hermedBandedRSolve unsafeDoSolveunsafeDoSolveMatunsafeDoSSolveunsafeDoSSolveMatunsafeDoSolve_unsafeDoSSolve_unsafeDoSolveMat_unsafeDoSSolveMat_unsafeGetSolveunsafeGetSSolveunsafeGetSolveMatunsafeGetSSolveMatgetSolve getSSolve getSolveMat getSSolveMatdoSolve doSolveMatdoSSolve doSSolveMatdoSolve_ doSSolve_ doSolveMat_ doSSolveMat_ISolve unsafeSolveunsafeSolveMat unsafeSSolveunsafeSSolveMat<\><\\>ssolve ssolveMatIODiag DiagMatrix fromVectortoVectorDiagSMDiagSVDiagMMDiagMVTestDiag diagMatrixHerm coerceHermmapHermfromBasetoBasehermLhermU HermBandedMM HermBandedMV HermBanded hermBanded HermMatrixMM HermMatrixMV HermMatrix hermMatrixTri coerceTrimapTrilowerFat lowerTalllowerU lowerUFat lowerUTallupperFat upperTallupperU upperUFat upperUTall TriMatrixSM TriMatrixSV TriMatrixMM TriMatrixMV TriMatrix triMatrix isTriIndexPermIPbaseOffromPermutation toPermutation coercePerm PermMMPairPermMM PermMVPairPermMV PermMBasisTestPermpmatrixrawPerm hermedPermidPerm TriBandedSM TriBandedSV TriBandedMM TriBandedMV TriBanded triBandedFalsegbmm