var searchIndex = {}; searchIndex["sprs"] = {"doc":"# sprs","items":[[0,"sparse","sprs","",null,null],[0,"csmat","sprs::sparse","",null,null],[3,"OuterIterator","sprs::sparse::csmat","Iterator on the matrix' outer dimension\nImplemented over an iterator on the indptr array",null,null],[3,"OuterIteratorPerm","","Iterator on the matrix' outer dimension, permuted\nImplemented over an iterator on the indptr array",null,null],[3,"CsMat","","Compressed matrix in the CSR or CSC format.",null,null],[4,"CompressedStorage","","Describe the storage of a CsMat",null,null],[13,"CSR","","Compressed row storage",0,null],[13,"CSC","","Compressed column storage",0,null],[6,"CsMatOwned","","",null,null],[6,"CsMatView","","",null,null],[6,"CsMatVecView","","",null,null],[11,"fmt","","",0,null],[11,"eq","","",0,null],[11,"clone","","",0,null],[11,"other_storage","","Get the other storage, ie return CSC if we were CSR, and vice versa",0,null],[11,"next","","",1,null],[11,"size_hint","","",1,null],[11,"next","","",2,null],[11,"size_hint","","",2,null],[11,"next_back","","",1,null],[11,"len","","",1,null],[11,"fmt","","",3,null],[11,"eq","","",3,null],[11,"ne","","",3,null],[11,"new_vecview_raw","","Create a borrowed row or column CsMat matrix from raw data,\nwithout checking their validity",3,null],[11,"new_borrowed","","Create a borrowed CsMat matrix from sliced data,\nchecking their validity",3,null],[11,"new_raw","","Create a borrowed CsMat matrix from raw data,\nwithout checking their validity",3,null],[11,"empty","","Create an empty CsMat for building purposes",3,{"inputs":[{"name":"compressedstorage"},{"name":"usize"}],"output":{"name":"csmatowned"}}],[11,"zero","","Create a new CsMat representing the zero matrix.\nHence it has no non-zero elements.",3,{"inputs":[{"name":"usize"},{"name":"usize"}],"output":{"name":"csmatowned"}}],[11,"reserve_outer_dim","","Reserve the storage for the given additional number of nonzero data",3,null],[11,"reserve_nnz","","Reserve the storage for the given additional number of nonzero data",3,null],[11,"reserve_outer_dim_exact","","Reserve the storage for the given number of nonzero data",3,null],[11,"reserve_nnz_exact","","Reserve the storage for the given number of nonzero data",3,null],[11,"new_owned","","Create an owned CsMat matrix from moved data,\nchecking their validity",3,{"inputs":[{"name":"compressedstorage"},{"name":"usize"},{"name":"usize"},{"name":"vec"},{"name":"vec"},{"name":"vec"}],"output":{"name":"result"}}],[11,"append_outer","","Append an outer dim to an existing matrix, compressing it in the process",3,null],[11,"append_outer_csvec","","Append an outer dim to an existing matrix, provided by a sparse vector",3,null],[11,"eye","","Identity matrix",3,{"inputs":[{"name":"compressedstorage"},{"name":"usize"}],"output":{"name":"csmatowned"}}],[11,"outer_iterator","","Return an outer iterator for the matrix",3,null],[11,"outer_iterator_perm","","Return an outer iterator over P*A, as well as the proper permutation\nfor iterating over the inner dimension of P*A*P^T\nUnstable",3,null],[11,"storage","","The underlying storage of this matrix",3,null],[11,"rows","","The number of rows of this matrix",3,null],[11,"cols","","The number of cols of this matrix",3,null],[11,"nb_nonzero","","The number of non-zero elements this matrix stores.\nThis is often relevant for the complexity of most sparse matrix\nalgorithms, which are often linear in the number of non-zeros.",3,null],[11,"outer_dims","","Number of outer dimensions, that ie equal to self.rows() for a CSR\nmatrix, and equal to self.cols() for a CSC matrix",3,null],[11,"inner_dims","","Number of inner dimensions, that ie equal to self.cols() for a CSR\nmatrix, and equal to self.rows() for a CSC matrix",3,null],[11,"at","","Access the element located at row i and column j.\nWill return None if there is no non-zero element at this location.",3,null],[11,"outer_view","","Get a view into the i-th outer dimension (eg i-th row for a CSR matrix)",3,null],[11,"indptr","","The array of offsets in the indices() and data() slices.\nThe elements of the slice at outer dimension i\nare available between the elements indptr[i] and indptr[i+1]\nin the indices() and data() slices.",3,null],[11,"indices","","The inner dimension location for each non-zero value. See\nthe documentation of indptr() for more explanations.",3,null],[11,"data","","The non-zero values. See the documentation of indptr()\nfor more explanations.",3,null],[11,"is_csc","","Test whether the matrix is in CSC storage",3,null],[11,"is_csr","","Test whether the matrix is in CSR storage",3,null],[11,"transpose_mut","","Transpose a matrix in place\nNo allocation required (this is simply a storage order change)",3,null],[11,"transpose_into","","Transpose a matrix in place\nNo allocation required (this is simply a storage order change)",3,null],[11,"transpose_view","","Transposed view of this matrix\nNo allocation required (this is simply a storage order change)",3,null],[11,"to_owned","","Get an owned version of this matrix. If the matrix was already\nowned, this will make a deep copy.",3,null],[11,"at_outer_inner","","Access an element given its outer_ind and inner_ind.\nWill return None if there is no non-zero element at this location.",3,null],[11,"check_compressed_structure","","Check the structure of CsMat components\nThis will ensure that:\n- indptr is of length outer_dim() + 1\n- indices and data have the same length, nnz == indptr[outer_dims()]\n- indptr is sorted\n- indices is sorted for each outer slice\n- indices are lower than inner_dims()",3,null],[11,"borrowed","","Return a view into the current matrix",3,null],[11,"to_other_storage","","Create a matrix mathematically equal to this one, but with the\nopposed storage (a CSC matrix will be converted to CSR, and vice versa)",3,null],[11,"to_csc","","Create a new CSC matrix equivalent to this one.\nA new matrix will be created even if this matrix was already CSC.",3,null],[11,"to_csr","","Create a new CSR matrix equivalent to this one.\nA new matrix will be created even if this matrix was already CSR.",3,null],[11,"data_mut","","Mutable access to the non zero values",3,null],[11,"scale","","Sparse matrix self-multiplication by a scalar",3,null],[0,"vec","sprs::sparse","",null,null],[3,"CsVec","sprs::sparse::vec","A sparse vector, storing the indices of its non-zero data.\nThe indices should be sorted.",null,null],[3,"VectorIterator","","An iterator over the non-zero elements of a sparse vector",null,null],[3,"VectorIteratorPerm","","",null,null],[3,"NnzOrZip","","An iterator over the non zeros of either of two vector iterators, ordered,\nsuch that the sum of the vectors may be computed",null,null],[4,"NnzEither","","",null,null],[13,"Both","","",4,null],[13,"Left","","",4,null],[13,"Right","","",4,null],[6,"CsVecView","","",null,null],[6,"CsVecOwned","","",null,null],[11,"fmt","","",5,null],[11,"eq","","",5,null],[11,"ne","","",5,null],[11,"next","","",6,null],[11,"size_hint","","",6,null],[11,"next","","",7,null],[11,"size_hint","","",7,null],[11,"nnz_zip","","Iterate over the matching non-zero elements of both vectors\nUseful for vector dot product.",6,null],[11,"nnz_or_zip","","Iterate over non-zero elements of eiither of two vectors.\nThis is useful for implementing eg addition of vectors.",6,null],[11,"fmt","","",4,null],[11,"eq","","",4,null],[11,"ne","","",4,null],[11,"next","","",8,null],[11,"size_hint","","",8,null],[11,"new_borrowed","","Create a borrowed CsVec over slice data.",5,null],[11,"new_raw","","Create a borrowed CsVec over slice data without checking the structure\nThis is unsafe because algorithms are free to assume\nthat properties guaranteed by check_structure are enforced.\nFor instance, non out-of-bounds indices can be relied upon to\nperform unchecked slice access.",5,null],[11,"new_owned","","Create an owning CsVec from vector data.",5,{"inputs":[{"name":"usize"},{"name":"vec"},{"name":"vec"}],"output":{"name":"result"}}],[11,"empty","","Create an empty CsVec, which can be used for incremental construction",5,{"inputs":[{"name":"usize"}],"output":{"name":"csvec"}}],[11,"append","","Append an element to the sparse vector. Used for incremental\nbuilding of the CsVec. The append should preserve the structure\nof the vector, ie the newly added index should be strictly greater\nthan the last element of indices.",5,null],[11,"reserve","","Reserve `size` additional non-zero values.",5,null],[11,"reserve_exact","","Reserve exactly `exact_size` non-zero values.",5,null],[11,"clear","","Clear the underlying storage",5,null],[11,"borrowed","","Get a view of this vector.",5,null],[11,"iter","","Iterate over the non zero values.",5,null],[11,"indices","","The underlying indices.",5,null],[11,"data","","The underlying non zero values.",5,null],[11,"dim","","The dimension of this vector.",5,null],[11,"nnz","","The non zero count of this vector.",5,null],[11,"check_structure","","Check the sparse structure, namely that:\n- indices is sorted\n- indices are lower than dims()",5,null],[11,"to_owned","","Allocate a new vector equal to this one.",5,null],[11,"row_view","","View this vector as a matrix with only one row.",5,null],[11,"col_view","","View this vector as a matrix with only one column.",5,null],[11,"dot","","Vector dot product",5,null],[0,"permutation","sprs::sparse","",null,null],[4,"Permutation","sprs::sparse::permutation","",null,null],[13,"Identity","","",9,null],[13,"FinitePerm","","",9,null],[12,"perm","sprs::sparse::permutation::Permutation","",9,null],[12,"perm_inv","","",9,null],[11,"new","sprs::sparse::permutation","",9,{"inputs":[{"name":"vec"}],"output":{"name":"permutation"}}],[11,"identity","","",9,{"inputs":[],"output":{"name":"permutation"}}],[11,"inv","","",9,null],[11,"borrowed","","",9,null],[11,"owned_clone","","",9,null],[11,"at","","",9,null],[11,"at_inv","","",9,null],[0,"prod","sprs::sparse","",null,null],[5,"mul_acc_mat_vec_csc","sprs::sparse::prod","Multiply a sparse CSC matrix with a dense vector and accumulate the result\ninto another dense vector",null,null],[5,"mul_acc_mat_vec_csr","","Multiply a sparse CSR matrix with a dense vector and accumulate the result\ninto another dense vector",null,null],[5,"csr_mul_csr","","Perform a matrix multiplication for matrices sharing the same storage order.",null,null],[5,"csc_mul_csc","","Perform a matrix multiplication for matrices sharing the same storage order.",null,null],[5,"workspace_csr","","Allocate the appropriate workspace for a CSR-CSR product",null,{"inputs":[{"name":"mat1"},{"name":"mat2"}],"output":{"name":"vec"}}],[5,"workspace_csc","","Allocate the appropriate workspace for a CSC-CSC product",null,{"inputs":[{"name":"mat1"},{"name":"mat2"}],"output":{"name":"vec"}}],[5,"csr_mul_csr_impl","","Actual implementation of CSR-CSR multiplication\nAll other matrix products are implemented in terms of this one.",null,null],[5,"csr_mul_csvec","","CSR-vector multiplication",null,{"inputs":[{"name":"csmatview"},{"name":"csvecview"}],"output":{"name":"result"}}],[0,"binop","sprs::sparse","",null,null],[5,"add_mat_same_storage","sprs::sparse::binop","Sparse matrix addition, with matrices sharing the same storage type",null,{"inputs":[{"name":"mat1"},{"name":"mat2"}],"output":{"name":"result"}}],[5,"sub_mat_same_storage","","Sparse matrix subtraction, with same storage type",null,{"inputs":[{"name":"mat1"},{"name":"mat2"}],"output":{"name":"result"}}],[5,"mul_mat_same_storage","","Sparse matrix scalar multiplication, with same storage type",null,{"inputs":[{"name":"mat1"},{"name":"mat2"}],"output":{"name":"result"}}],[5,"scalar_mul_mat","","Sparse matrix multiplication by a scalar",null,{"inputs":[{"name":"mat"},{"name":"n"}],"output":{"name":"csmatowned"}}],[5,"scalar_mul_mat_raw","","Sparse matrix multiplication by a scalar, raw version",null,null],[5,"csmat_binop_same_storage_raw","","Raw implementation of scalar binary operation for compressed sparse matrices\nsharing the same storage. The output arrays are assumed to be preallocated",null,null],[5,"csvec_binop","","Binary operations for CsVec",null,{"inputs":[{"name":"csvecview"},{"name":"csvecview"},{"name":"f"}],"output":{"name":"result"}}],[0,"construct","sprs::sparse","High level construction of sparse matrices by stacking, by block, ...",null,null],[5,"same_storage_fast_stack","sprs::sparse::construct","Stack the given matrices into a new one, using the most efficient stacking\ndirection (ie vertical stack for CSR matrices, horizontal stack for CSC)",null,{"inputs":[{"name":"matarray"}],"output":{"name":"result"}}],[5,"vstack","","Construct a sparse matrix by vertically stacking other matrices",null,{"inputs":[{"name":"matarray"}],"output":{"name":"result"}}],[5,"hstack","","Construct a sparse matrix by horizontally stacking other matrices",null,{"inputs":[{"name":"matarray"}],"output":{"name":"result"}}],[5,"bmat","","Specify a sparse matrix by constructing it from blocks of other matrices",null,{"inputs":[{"name":"outerarray"}],"output":{"name":"result"}}],[0,"linalg","sprs::sparse","",null,null],[0,"cholesky","sprs::sparse::linalg","",null,null],[4,"SymmetryCheck","sprs::sparse::linalg::cholesky","",null,null],[13,"CheckSymmetry","","",10,null],[13,"DontCheckSymmetry","","",10,null],[5,"ldl_symbolic","","Perform a symbolic LDLt decomposition of a symmetric sparse matrix",null,null],[5,"ldl_numeric","","",null,null],[5,"ldl_lsolve","","",null,null],[5,"ldl_ltsolve","","",null,null],[5,"ldl_dsolve","","",null,null],[0,"symmetric","sprs::sparse","",null,null],[5,"is_symmetric","sprs::sparse::symmetric","",null,{"inputs":[{"name":"csmat"}],"output":{"name":"bool"}}],[0,"compressed","sprs::sparse","",null,null],[8,"SpMatView","sprs::sparse::compressed","The SpMatView trait describes data that can be seen as a view\ninto a CsMat",null,null],[10,"borrowed","","Return a view into the current matrix",11,null],[10,"transpose_view","","Return a view into the current matrix",11,null],[11,"borrowed","sprs::sparse::csmat","",3,null],[11,"transpose_view","","",3,null],[0,"errors","sprs","Error type for sprs",null,null],[4,"SprsError","sprs::errors","",null,null],[13,"IncompatibleDimensions","","",12,null],[13,"BadWorkspaceDimensions","","",12,null],[13,"IncompatibleStorages","","",12,null],[13,"BadStorageType","","",12,null],[13,"EmptyStackingList","","",12,null],[13,"NotImplemented","","",12,null],[13,"EmptyBmatRow","","",12,null],[13,"EmptyBmatCol","","",12,null],[13,"NonSortedIndices","","",12,null],[13,"OutOfBoundsIndex","","",12,null],[13,"BadIndptrLength","","",12,null],[13,"DataIndicesMismatch","","",12,null],[13,"BadNnzCount","","",12,null],[13,"OutOfBoundsIndptr","","",12,null],[13,"UnsortedIndptr","","",12,null],[11,"fmt","","",12,null],[11,"eq","","",12,null],[11,"description","","",12,null],[11,"fmt","","",12,null]],"paths":[[4,"CompressedStorage"],[3,"OuterIterator"],[3,"OuterIteratorPerm"],[3,"CsMat"],[4,"NnzEither"],[3,"CsVec"],[3,"VectorIterator"],[3,"VectorIteratorPerm"],[3,"NnzOrZip"],[4,"Permutation"],[4,"SymmetryCheck"],[8,"SpMatView"],[4,"SprsError"]]}; initSearch(searchIndex);