diff --git a/docs/assets/images/check-list-icon.png b/docs/assets/images/check-list-icon.png new file mode 100644 index 00000000..dd5c8477 Binary files /dev/null and b/docs/assets/images/check-list-icon.png differ diff --git a/docs/assets/images/conference-room-icon.png b/docs/assets/images/conference-room-icon.png new file mode 100644 index 00000000..1ccb4fb6 Binary files /dev/null and b/docs/assets/images/conference-room-icon.png differ diff --git a/docs/assets/images/group-discussion-icon.png b/docs/assets/images/group-discussion-icon.png new file mode 100644 index 00000000..76cf41bd Binary files /dev/null and b/docs/assets/images/group-discussion-icon.png differ diff --git a/docs/assets/images/install-software-download-icon.png b/docs/assets/images/install-software-download-icon.png new file mode 100644 index 00000000..375715dd Binary files /dev/null and b/docs/assets/images/install-software-download-icon.png differ diff --git a/docs/assets/images/open-book-icon.png b/docs/assets/images/open-book-icon.png new file mode 100644 index 00000000..53a689d5 Binary files /dev/null and b/docs/assets/images/open-book-icon.png differ diff --git a/docs/assets/images/repair-fix-repairing-icon.png b/docs/assets/images/repair-fix-repairing-icon.png new file mode 100644 index 00000000..e180e0f1 Binary files /dev/null and b/docs/assets/images/repair-fix-repairing-icon.png differ diff --git a/docs/changelog.md b/docs/changelog.md index 4563c367..e8971f0d 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,140 +1,138 @@ -Changelog -========= +# Changelog -.. currentmodule:: sparse 0.15.1 / 2024-01-10 ------------------- -* Fix regression where with XArray by supporting all API functions via the Array API standard. (:pr:`622` thanks :ghuser:`hameerabbasi`) +* Fix regression where with XArray by supporting all API functions via the Array API standard. (PR [#622](https://github.com/pydata/sparse/pull/622) thanks [@hameerabbasi](https://github.com/hameerabbasi)) 0.15.0 / 2024-01-09 ------------------- -* Fix regression where :obj:`DeprecationWarning`s were being fired unexpectedly. (:pr:`581` thanks :ghuser:`hameerabbasi`) -* Extended :obj:`sparse.einsum` support (:pr:`579` thanks :ghuser:`HadrienNU`) -* General code clean-up (:pr:`586` thanks :ghuser:`MHRasmy`, :pr:`598` thanks :ghuser:`jamestwebber`) -* Bug fixes with respect to NumPy compatibility (:pr:`598` thanks :ghuser:`hameerabbasi`, :pr:`609` thanks :ghuser:`Illviljan`, :pr:`620` thanks :ghuser:`mtsokol`) -* Bug fixes with respect to GCXS (:pr:`611` thanks :ghuser:`EuGig`, :pr:`601` thanks :ghuser:`jamestwebber`) -* `Array API standard `_ support (:pr:`612`, :pr:`613`, :pr:`614`, :pr:`615`, :pr:`619`, :pr:`620` thanks :ghuser:`mtsokol`) -* ``matrepr`` support for display of sparse data (:pr:`605`, :pr:`606` thanks :ghuser:`alugowski`). -* Larger code clean-up with Ruff formatter and linter (:pr:`617`, :pr:`621` thanks :ghuser:`hameerabbasi`) -* Packaging and maintenance (:pr:`616`, :commit:`b5954e68d3d6e35a62f7401d1d4fb84ea04414dd`, :commit:`dda93d3ea9521881c721c3ba875c769c9c5a79d4` thanks :ghuser:`hameerabbasi`) +* Fix regression where [`DeprecationWarning`][]s were being fired unexpectedly. (PR [#581](https://github.com/pydata/sparse/pull/581) thanks [@hameerabbasi](https://github.com/hameerabbasi)) +* Extended [`sparse.einsum`][] support (PR [#579](https://github.com/pydata/sparse/pull/579) thanks [@HadrienNU](https://github.com/HadrienNU)) +* General code clean-up (PR [#586](https://github.com/pydata/sparse/pull/586) thanks [@MHRasmy](https://github.com/MHRasmy), PR [#598](https://github.com/pydata/sparse/pull/598) thanks [@jamestwebber](https://github.com/jamestwebber)) +* Bug fixes with respect to NumPy compatibility (PR [#598](https://github.com/pydata/sparse/pull/598) thanks [@hameerabbasi](https://github.com/hameerabbasi), PR [#609](https://github.com/pydata/sparse/pull/609) thanks [@Illviljan](https://github.com/Illviljan), PR [#620](https://github.com/pydata/sparse/pull/620) thanks [@mtsokol](https://github.com/mtsokol)) +* Bug fixes with respect to GCXS (PR [#611](https://github.com/pydata/sparse/pull/611) thanks [@EuGig](https://github.com/EuGig), PR [#601](https://github.com/pydata/sparse/pull/601) thanks [@jamestwebber](https://github.com/jamestwebber)) +* `Array API standard `_ support (PR [#612](https://github.com/pydata/sparse/pull/612), PR [#613](https://github.com/pydata/sparse/pull/613), PR [#614](https://github.com/pydata/sparse/pull/614), PR [#615](https://github.com/pydata/sparse/pull/615), PR [#619](https://github.com/pydata/sparse/pull/619), PR [#620](https://github.com/pydata/sparse/pull/620) thanks [@mtsokol](https://github.com/mtsokol)) +* ``matrepr`` support for display of sparse data (PR [#605](https://github.com/pydata/sparse/pull/605), PR [#606](https://github.com/pydata/sparse/pull/606) thanks [@alugowski](https://github.com/alugowski)). +* Larger code clean-up with Ruff formatter and linter (PR [#617](https://github.com/pydata/sparse/pull/617), PR [#621](https://github.com/pydata/sparse/pull/621) thanks [@hameerabbasi](https://github.com/hameerabbasi)) +* Packaging and maintenance (PR [#616](https://github.com/pydata/sparse/pull/616), :commit:`b5954e68d3d6e35a62f7401d1d4fb84ea04414dd`, :commit:`dda93d3ea9521881c721c3ba875c769c9c5a79d4` thanks [@hameerabbasi](https://github.com/hameerabbasi)) 0.14.0 / 2023-02-24 ------------------- -* :obj:`sparse.einsum` support (:pr:`564` thanks - :ghuser:`jcmgray`) -* Some bug-fixes (:pr:`524`, :pr:`527`, :pr:`555` thanks :ghuser:`hameerabbasi`, :pr:`569`, thanks :ghuser:`jamestwebber`, :pr:`534`, thanks :ghuser:`sarveshbhatnagar`) -* Some performance improvements (:pr:`570`, thanks :ghuser:`jamestwebber`, :pr:`540`, thanks :ghuser:`smldub`). +* [`sparse.einsum`][] support (PR [#564](https://github.com/pydata/sparse/pull/564) thanks + [@jcmgray](https://github.com/jcmgray)) +* Some bug-fixes (PR [#524](https://github.com/pydata/sparse/pull/524), PR [#527](https://github.com/pydata/sparse/pull/527), PR [#555](https://github.com/pydata/sparse/pull/555) thanks [@hameerabbasi](https://github.com/hameerabbasi), PR [#569](https://github.com/pydata/sparse/pull/569), thanks [@jamestwebber](https://github.com/jamestwebber), PR [#534](https://github.com/pydata/sparse/pull/534), thanks [@sarveshbhatnagar](https://github.com/sarveshbhatnagar)) +* Some performance improvements (PR [#570](https://github.com/pydata/sparse/pull/570), thanks [@jamestwebber](https://github.com/jamestwebber), PR [#540](https://github.com/pydata/sparse/pull/540), thanks [@smldub](https://github.com/smldub)). * Miscellaneous maintenance fixes. 0.13.0 / 2021-08-28 ------------------- -* GCXS improvements and changes. (:pr:`448`, :pr:`450`, :pr:`455`, thanks - :ghuser:`sayandip18`). -* Maintainence fixes (:pr:`462`, :pr:`466`, :commit:`1ccb85da581be65a0345b399e00fd3c325700d95`, +* [`sparse.GCXS`][] improvements and changes. (PR [#448](https://github.com/pydata/sparse/pull/448), PR [#450](https://github.com/pydata/sparse/pull/450), PR [#455](https://github.com/pydata/sparse/pull/455), thanks + [@sayandip18](https://github.com/sayandip18)). +* Maintainence fixes (PR [#462](https://github.com/pydata/sparse/pull/462), PR [#466](https://github.com/pydata/sparse/pull/466), :commit:`1ccb85da581be65a0345b399e00fd3c325700d95`, :commit:`5547b4e92dc8d61492e9dc10ba00175c1a6637fa` :commit:`00c0e5514de2aab8b9a0be16b5da470b091d9eb9`, :commit:`fcd3020dd08c7022a44f709173fe23969d3e8f7c`, - thanks :ghuser:`hameerabbasi`) -* :obj:`sparse.DOK.from_scipy_sparse` method (:pr:`464`, :issue:`463`, thanks - :ghuser:`hameerabbasi`). -* Black re-formatting (:pr:`471`, :pr:`484`, thanks :ghuser:`GenevieveBuckley`, :ghuser:`sayandip18`) -* Add :obj:`sparse.pad` (:pr:`474`, :issue:`438`, thanks :ghuser:`H4R5H1T-007`) + thanks [@hameerabbasi](https://github.com/hameerabbasi)) +* [`sparse.DOK.from_scipy_sparse`][] method (PR [#464](https://github.com/pydata/sparse/pull/464), Issue [#463](https://github.com/pydata/sparse/issues/463), thanks + [@hameerabbasi](https://github.com/hameerabbasi)). +* Black re-formatting (PR [#471](https://github.com/pydata/sparse/pull/471), PR [#484](https://github.com/pydata/sparse/pull/484), thanks [@GenevieveBuckley](https://github.com/GenevieveBuckley), [@sayandip18](https://github.com/sayandip18)) +* Add [`sparse.pad`][] (PR [#474](https://github.com/pydata/sparse/pull/474), Issue [#438](https://github.com/pydata/sparse/issues/438), thanks [@H4R5H1T-007](https://github.com/H4R5H1T-007)) * Switch to GitHub Actions (:compare:`5547b4e92dc8d61492e9dc10ba00175c1a6637fa..a332f22c96a96e5ab9b4384342df67e8f3966f85`) -* Fix a number of bugs in format conversion. (:pr:`504`, :issue:`503`, thanks - :ghuser:`hameerabbasi`) -* Fix bug in :obj:`sparse.matmul` for higher-dimensional arrays. (:pr:`508`, - :issue:`506`, thanks :ghuser:`sayandip18`). -* Fix scalar conversion to COO (:issue:`510`, :pr:`511`, thanks :ghuser:`hameerabbasi`) -* Fix OOB memory accesses (:issue:`515`, :commit:`1e24a7e29786e888dee4c02153309986ae4b5dde` - thanks :ghuser:`hameerabbasi`) -* Fixes element-wise ops with scalar COO array. (:issue:`505`, :commit:`5211441ec685233657ab7156f99eb67e660cee86`, - thanks :ghuser:`hameerabbasi`) -* Fix scalar broadcast_to with ``nnz==0``. (:issue:`513`, :commit:`bfabaa0805e811884e79c4bdbfd14316986d65e4`, - thanks :ghuser:`hameerabbasi`) -* Add order parameter to ``{zero, ones, full}[_like]``. (:issue:`514`, :commit:`37de1d0141c4375962ecdf18337c2dd0f667b60c`, - thanks :ghuser:`hameerabbasi`) -* Fix tensordot typing bugs. (:issue:`493`, :issue:`499`, :commit:`37de1d0141c4375962ecdf18337c2dd0f667b60c`, - thanks :ghuser:`hameerabbasi`). +* Fix a number of bugs in format conversion. (PR [#504](https://github.com/pydata/sparse/pull/504), Issue [#503](https://github.com/pydata/sparse/issues/503), thanks + [@hameerabbasi](https://github.com/hameerabbasi)) +* Fix bug in [`sparse.matmul`][] for higher-dimensional arrays. (PR [#508](https://github.com/pydata/sparse/pull/508), + Issue [#506](https://github.com/pydata/sparse/issues/506), thanks [@sayandip18](https://github.com/sayandip18)). +* Fix scalar conversion to COO (Issue [#510](https://github.com/pydata/sparse/issues/510), PR [#511](https://github.com/pydata/sparse/pull/511), thanks [@hameerabbasi](https://github.com/hameerabbasi)) +* Fix OOB memory accesses (Issue [#515](https://github.com/pydata/sparse/issues/515), :commit:`1e24a7e29786e888dee4c02153309986ae4b5dde` + thanks [@hameerabbasi](https://github.com/hameerabbasi)) +* Fixes element-wise ops with scalar COO array. (Issue [#505](https://github.com/pydata/sparse/issues/505), :commit:`5211441ec685233657ab7156f99eb67e660cee86`, + thanks [@hameerabbasi](https://github.com/hameerabbasi)) +* Fix scalar broadcast_to with ``nnz==0``. (Issue [#513](https://github.com/pydata/sparse/issues/513), :commit:`bfabaa0805e811884e79c4bdbfd14316986d65e4`, + thanks [@hameerabbasi](https://github.com/hameerabbasi)) +* Add order parameter to ``{zero, ones, full}[_like]``. (Issue [#514](https://github.com/pydata/sparse/issues/514), :commit:`37de1d0141c4375962ecdf18337c2dd0f667b60c`, + thanks [@hameerabbasi](https://github.com/hameerabbasi)) +* Fix tensordot typing bugs. (Issue [#493](https://github.com/pydata/sparse/issues/493), Issue [#499](https://github.com/pydata/sparse/issues/499), :commit:`37de1d0141c4375962ecdf18337c2dd0f667b60c`, + thanks [@hameerabbasi](https://github.com/hameerabbasi)). 0.12.0 / 2021-03-19 ------------------- There are a number of large changes in this release. For example, we have implemented the -:obj:`GCXS` type, and its specializations :obj:`CSR` and :obj:`CSC`. We plan on gradually improving +[`sparse.GCXS`][] type, and its specializations `CSR` and `CSC`. We plan on gradually improving the performance of these. -* A number of :obj:`GCXS` fixes and additions (:pr:`409`, :pr:`407`, :pr:`414`, - :pr:`417`, :pr:`419` thanks :ghuser:`daletovar`) -* Ability to change the index dtype for better storage characteristics. (:pr:`441`, - thanks :ghuser:`daletovar`) -* Some work on :obj:`DOK` arrays to bring them closer to the other formats (:pr:`435`, - :pr:`437`, :pr:`439`, :pr:`440`, thanks :ghuser:`DragaDoncila`) -* :obj:`CSR` and :obj:`CSC` specializations of :obj:`GCXS` (:pr:`442`, thanks :ghuser:`ivirshup`) +* A number of [`sparse.GCXS`][] fixes and additions (PR [#409](https://github.com/pydata/sparse/pull/409), PR [#407](https://github.com/pydata/sparse/pull/407), PR [#414](https://github.com/pydata/sparse/pull/414), + PR [#417](https://github.com/pydata/sparse/pull/417), PR [#419](https://github.com/pydata/sparse/pull/419) thanks [@daletovar](https://github.com/daletovar)) +* Ability to change the index dtype for better storage characteristics. (PR [#441](https://github.com/pydata/sparse/pull/441), + thanks [@daletovar](https://github.com/daletovar)) +* Some work on [`sparse.DOK`][] arrays to bring them closer to the other formats (PR [#435](https://github.com/pydata/sparse/pull/435), + PR [#437](https://github.com/pydata/sparse/pull/437), PR [#439](https://github.com/pydata/sparse/pull/439), PR [#440](https://github.com/pydata/sparse/pull/440), thanks [@DragaDoncila](https://github.com/DragaDoncila)) +* `CSR` and `CSC` specializations of [`sparse.GCXS`][] (PR [#442](https://github.com/pydata/sparse/pull/442), thanks [@ivirshup](https://github.com/ivirshup)) For now, this is experimental undocumented API, and subject to change. -* Fix a number of bugs (:pr:`407`, :issue:`406`) -* Add ``nnz`` parameter to :obj:`sparse.random` (:pr:`410`, thanks :ghuser:`emilmelnikov`) +* Fix a number of bugs (PR [#407](https://github.com/pydata/sparse/pull/407), Issue [#406](https://github.com/pydata/sparse/issues/406)) +* Add `nnz` parameter to [`sparse.random`][] (PR [#410](https://github.com/pydata/sparse/pull/410), thanks [@emilmelnikov](https://github.com/emilmelnikov)) 0.11.2 / 2020-09-04 ------------------- -* Fix :obj:`TypingError` on :obj:`sparse.dot` with complex dtypes. (:issue:`403`, :pr:`404`) +* Fix `TypingError` on [`sparse.dot`][] with complex dtypes. (Issue [#403](https://github.com/pydata/sparse/issues/403), PR [#404](https://github.com/pydata/sparse/pull/404)) 0.11.1 / 2020-08-31 ------------------- -* Fix :obj:`ValueError` on :obj:`sparse.dot` with extremely small values. (:issue:`398`, :pr:`399`) +* Fix [`ValueError`][] on [`sparse.dot`][] with extremely small values. (Issue [#398](https://github.com/pydata/sparse/issues/398), PR [#399](https://github.com/pydata/sparse/pull/399)) 0.11.0 / 2020-08-18 ------------------- -* Improve the performance of :obj:`sparse.dot`. (:issue:`331`, :pr:`389`, thanks :ghuser:`daletovar`) -* Added the :obj:`COO.swapaxes` method. (:pr:`344`, thanks :ghuser:`lueckem`) -* Added multi-axis 1-D indexing support. (:pr:`343`, thanks :ghuser:`mikeymezher`) -* Fix :obj:`outer` for arrays that weren't one-dimensional. (:issue:`346`, :pr:`347`) -* Add ``casting`` kwarg to :obj:`COO.astype`. (:issue:`391`, :pr:`392`) -* Fix for :obj:`COO` constructor accepting invalid inputs. (:issue:`385`, :pr:`386`) +* Improve the performance of [`sparse.dot`][]. (Issue [#331](https://github.com/pydata/sparse/issues/331), PR [#389](https://github.com/pydata/sparse/pull/389), thanks [@daletovar](https://github.com/daletovar)) +* Added the [`sparse.COO.swapaxes`][] method. (PR [#344](https://github.com/pydata/sparse/pull/344), thanks [@lueckem](https://github.com/lueckem)) +* Added multi-axis 1-D indexing support. (PR [#343](https://github.com/pydata/sparse/pull/343), thanks [@mikeymezher](https://github.com/mikeymezher)) +* Fix `outer` for arrays that weren't one-dimensional. (Issue [#346](https://github.com/pydata/sparse/issues/346), PR [#347](https://github.com/pydata/sparse/pull/347)) +* Add `casting` kwarg to [`sparse.COO.astype`][]. (Issue [#391](https://github.com/pydata/sparse/issues/391), PR [#392](https://github.com/pydata/sparse/pull/392)) +* Fix for [`sparse.COO`][] constructor accepting invalid inputs. (Issue [#385](https://github.com/pydata/sparse/issues/385), PR [#386](https://github.com/pydata/sparse/pull/386)) 0.10.0 / 2020-05-13 ------------------- * Fixed a bug where converting an empty DOK array to COO leads - to an incorrect dtype. (:issue:`314`, :pr:`315`) -* Change code formatter to black. (:pr:`284`) -* Add :obj:`COO.flatten` and :obj:`sparse.outer`. (:issue:`316`, :pr:`317`). + to an incorrect dtype. (Issue [#314](https://github.com/pydata/sparse/issues/314), PR [#315](https://github.com/pydata/sparse/pull/315)) +* Change code formatter to black. (PR [#284](https://github.com/pydata/sparse/pull/284)) +* Add [`sparse.COO.flatten`] and `outer`. (Issue [#316](https://github.com/pydata/sparse/issues/316), PR [#317](https://github.com/pydata/sparse/pull/317)). * Remove broadcasting restriction between sparse arrays and dense arrays. - (:issue:`306`, :pr:`318`) -* Implement deterministic dask tokenization. (:issue:`300`, :pr:`320`, thanks - :ghuser:`danielballan`) -* Improve testing around densification (:pr:`321`, thanks - :ghuser:`danielballan`) -* Simplify Numba extension. (:pr:`324`, thanks :ghuser:`eric-wieser`). -* Respect ``copy=False`` in ``astype`` (:pr:`328`, thanks :ghuser:`eric-wieser`). -* Replace linear_loc with ravel_multi_index, which is 3x faster. (:pr:`330`, - thanks :ghuser:`eric-wieser`). -* Add error msg to tensordot operation when ``ndim==0`` (:issue:`332`, - :pr:`333`, thanks :ghuser:`guilhermeleobas`). + (Issue [#306](https://github.com/pydata/sparse/issues/306), PR [#318](https://github.com/pydata/sparse/pull/318)) +* Implement deterministic dask tokenization. (Issue [#300](https://github.com/pydata/sparse/issues/300), PR [#320](https://github.com/pydata/sparse/pull/320), thanks + [@danielballan](https://github.com/danielballan)) +* Improve testing around densification (PR [#321](https://github.com/pydata/sparse/pull/321), thanks + [@danielballan](https://github.com/danielballan)) +* Simplify Numba extension. (PR [#324](https://github.com/pydata/sparse/pull/324), thanks [@eric-wieser](https://github.com/eric-wieser)). +* Respect ``copy=False`` in ``astype`` (PR [#328](https://github.com/pydata/sparse/pull/328), thanks [@eric-wieser](https://github.com/eric-wieser)). +* Replace linear_loc with ravel_multi_index, which is 3x faster. (PR [#330](https://github.com/pydata/sparse/pull/330), + thanks [@eric-wieser](https://github.com/eric-wieser)). +* Add error msg to tensordot operation when ``ndim==0`` (Issue [#332](https://github.com/pydata/sparse/issues/332), + PR [#333](https://github.com/pydata/sparse/pull/333), thanks [@guilhermeleobas](https://github.com/guilhermeleobas)). * Maintainence fixes for Sphinx 3.0 and Numba 0.49, and dropping support for - Python 3.5. (:pr:`337`). -* Fixed signature for :obj:`numpy.clip`. + Python 3.5. (PR [#337](https://github.com/pydata/sparse/pull/337)). +* Fixed signature for [numpy.clip][]. 0.9.1 / 2020-01-23 ------------------ * Fixed a bug where indexing with an empty list could lead - to issues. (:issue:`281`, :pr:`282`) -* Change code formatter to black. (:pr:`284`) -* Add the :obj:`diagonal` and :obj:`diagonalize` functions. - (:issue:`288`, :pr:`289`, thanks :ghuser:`pettni`) -* Add HTML repr for notebooks. (:pr:`283`, thanks :ghuser:`daletovar`) -* Avoid making copy of ``coords`` when making a new :obj:`COO` + to issues. (Issue [#281](https://github.com/pydata/sparse/issues/281), PR [#282](https://github.com/pydata/sparse/pull/282)) +* Change code formatter to black. (PR [#284](https://github.com/pydata/sparse/pull/284)) +* Add the [`sparse.diagonal`][] and [`sparse.diagonalize`][] functions. + (Issue [#288](https://github.com/pydata/sparse/issues/288), PR [#289](https://github.com/pydata/sparse/pull/289), thanks [@pettni](https://github.com/pettni)) +* Add HTML repr for notebooks. (PR [#283](https://github.com/pydata/sparse/pull/283), thanks [@daletovar](https://github.com/daletovar)) +* Avoid making copy of ``coords`` when making a new [`sparse.COO`][] array. -* Add stack and concatenate for GCXS. (:issue:`301`, :pr:`303`, thanks - :ghuser:`daletovar`). +* Add stack and concatenate for GCXS. (Issue [#301](https://github.com/pydata/sparse/issues/301), PR [#303](https://github.com/pydata/sparse/pull/303), thanks + [@daletovar](https://github.com/daletovar)). * Fix issue where functions dispatching to an attribute access wouldn't - work with ``__array_function__``. (:issue:`308`, :pr:`309`). -* Add partial support for constructing and mirroring :obj:`COO` objects to + work with ``__array_function__``. (Issue [#308](https://github.com/pydata/sparse/issues/308), PR [#309](https://github.com/pydata/sparse/pull/309)). +* Add partial support for constructing and mirroring [`sparse.COO`][] objects to Numba. 0.8.0 / 2019-08-26 @@ -146,29 +144,29 @@ and Windows are officially tested. It also includes bug fixes. It also adds in-progress, not yet public support for the GCXS format, which is a generalisation of CSR/CSC. (huge thanks to -:ghuser:`daletovar`) +[@daletovar](https://github.com/daletovar)) * Fixed a bug where an array with size == 1 and nnz == 0 - could not be broadcast. (:issue:`242`, :pr:`243`) -* Add ``std`` and ``var``. (:pr:`244`) + could not be broadcast. (Issue [#242](https://github.com/pydata/sparse/issues/242), PR [#243](https://github.com/pydata/sparse/pull/243)) +* Add ``std`` and ``var``. (PR [#244](https://github.com/pydata/sparse/pull/244)) * Move to Azure Pipelines with CI for Windows, macOS and - Linux. (:pr:`245`, :pr:`246`, :pr:`247`, :pr:`248`) + Linux. (PR [#245](https://github.com/pydata/sparse/pull/245), PR [#246](https://github.com/pydata/sparse/pull/246), PR [#247](https://github.com/pydata/sparse/pull/247), PR [#248](https://github.com/pydata/sparse/pull/248)) * Add ``resize``, and change ``reshape`` so it raises a ``ValueError`` on shapes that don't correspond to the - same size. (:issue:`241`, :issue:`250`, :pr:`256` - thanks, :ghuser:`daletovar`) -* Add ``isposinf`` and ``isneginf``. (:issue:`252`, :pr:`253`) -* Fix ``tensordot`` when nnz = 0. (:issue:`255`, :pr:`256`) + same size. (Issue [#241](https://github.com/pydata/sparse/issues/241), Issue [#250](https://github.com/pydata/sparse/issues/250), PR [#256](https://github.com/pydata/sparse/pull/256) + thanks, [@daletovar](https://github.com/daletovar)) +* Add ``isposinf`` and ``isneginf``. (Issue [#252](https://github.com/pydata/sparse/issues/252), PR [#253](https://github.com/pydata/sparse/pull/253)) +* Fix ``tensordot`` when nnz = 0. (Issue [#255](https://github.com/pydata/sparse/issues/255), PR [#256](https://github.com/pydata/sparse/pull/256)) * Modifications to ``__array_function__`` to allow for sparse - XArrays. (:pr:`261`, thanks :ghuser:`nvictus`) -* Add not-yet-public support for GCXS. (:pr:`258`, thanks :ghuser:`daletovar`) -* Improvements to ``__array_function__``. (:pr:`267`, :pr:`272`, thanks - :ghuser:`crusaderky`) -* Convert all Numba lists to typed lists. (:pr:`264`) -* Why write code when it exists elsewhere? (:pr:`277`) -* Fix some element-wise operations with scalars. (:pr:`278`) + XArrays. (PR [#261](https://github.com/pydata/sparse/pull/261), thanks [@nvictus](https://github.com/nvictus)) +* Add not-yet-public support for GCXS. (PR [#258](https://github.com/pydata/sparse/pull/258), thanks [@daletovar](https://github.com/daletovar)) +* Improvements to ``__array_function__``. (PR [#267](https://github.com/pydata/sparse/pull/267), PR [#272](https://github.com/pydata/sparse/pull/272), thanks + [@crusaderky](https://github.com/crusaderky)) +* Convert all Numba lists to typed lists. (PR [#264](https://github.com/pydata/sparse/pull/264)) +* Why write code when it exists elsewhere? (PR [#277](https://github.com/pydata/sparse/pull/277)) +* Fix some element-wise operations with scalars. (PR [#278](https://github.com/pydata/sparse/pull/278)) * Private modules should be private, and tests should be in the package. - (:pr:`280`) + (PR [#280](https://github.com/pydata/sparse/pull/280)) 0.7.0 / 2019-03-14 @@ -187,20 +185,20 @@ This was mainly a contributor-driven release. The full list of changes can be found below: -* Fixed a bug where going between :obj:`sparse.DOK` and - :obj:`sparse.COO` caused fill-values to be lost. - (:issue:`225`, :pr:`226`). +* Fixed a bug where going between [`sparse.DOK`][] and + [`sparse.COO`][] caused fill-values to be lost. + (Issue [#225](https://github.com/pydata/sparse/issues/225), PR [#226](https://github.com/pydata/sparse/pull/226)). * Fixed warning for a matrix that was incorrectly considered - too dense. (:issue:`228`, :pr:`229`) + too dense. (Issue [#228](https://github.com/pydata/sparse/issues/228), PR [#229](https://github.com/pydata/sparse/pull/229)) * Fixed some warnings in Python 3.7, the fix was needed. - in preparation for Python 3.8. (:pr:`233`, thanks :ghuser:`nils-werner`) -* Drop support for Python 2.7 (:issue:`234`, :pr:`235`, thanks - :ghuser:`hugovk`) -* Clearer error messages (:issue:`230`, :issue:`231`, :pr:`232`) -* Restructure requirements.txt files. (:pr:`236`) -* Support fill-value in reductions in specific cases. (:issue:`237`, :pr:`238`) -* Add ``__array_function__`` support. (:pr:`239`, thanks, :ghuser:`pentschev`) -* Cleaner code! (:pr:`240`) + in preparation for Python 3.8. (PR [#233](https://github.com/pydata/sparse/pull/233), thanks [@nils-werner](https://github.com/nils-werner)) +* Drop support for Python 2.7 (Issue [#234](https://github.com/pydata/sparse/issues/234), PR [#235](https://github.com/pydata/sparse/pull/235), thanks + [@hugovk](https://github.com/hugovk)) +* Clearer error messages (Issue [#230](https://github.com/pydata/sparse/issues/230), Issue [#231](https://github.com/pydata/sparse/issues/231), PR [#232](https://github.com/pydata/sparse/pull/232)) +* Restructure requirements.txt files. (PR [#236](https://github.com/pydata/sparse/pull/236)) +* Support fill-value in reductions in specific cases. (Issue [#237](https://github.com/pydata/sparse/issues/237), PR [#238](https://github.com/pydata/sparse/pull/238)) +* Add ``__array_function__`` support. (PR [#239](https://github.com/pydata/sparse/pull/239), thanks, [@pentschev](https://github.com/pentschev)) +* Cleaner code! (PR [#240](https://github.com/pydata/sparse/pull/240)) 0.6.0 / 2018-12-19 ------------------ @@ -215,102 +213,102 @@ an attempt is made to automatically densify an array. To densify, use the explic ``.todense()`` method. * Fixed a bug where ``np.matrix`` could sometimes fail to - convert to a ``COO``. (:issue:`199`, :pr:`200`). -* Make sure that ``sparse @ sparse`` returns a sparse array. (:issue:`201`, :pr:`203`) + convert to a ``COO``. (Issue [#199](https://github.com/pydata/sparse/issues/199), PR [#200](https://github.com/pydata/sparse/pull/200)). +* Make sure that ``sparse @ sparse`` returns a sparse array. (Issue [#201](https://github.com/pydata/sparse/issues/201), PR [#203](https://github.com/pydata/sparse/pull/203)) * Bring ``operator.matmul`` behaviour in line with NumPy for ``ndim > 2``. - (:issue:`202`, :pr:`204`, :pr:`217`) -* Make sure ``dtype`` is preserved with the ``out`` kwarg. (:issue:`205`, :pr:`206`) -* Fix integer overflow in ``reduce`` on Windows. (:issue:`207`, :pr:`208`) -* Disallow auto-densification. (:issue:`218`, :pr:`220`) + (Issue [#202](https://github.com/pydata/sparse/issues/202), PR [#204](https://github.com/pydata/sparse/pull/204), PR [#217](https://github.com/pydata/sparse/pull/217)) +* Make sure ``dtype`` is preserved with the ``out`` kwarg. (Issue [#205](https://github.com/pydata/sparse/issues/205), PR [#206](https://github.com/pydata/sparse/pull/206)) +* Fix integer overflow in ``reduce`` on Windows. (Issue [#207](https://github.com/pydata/sparse/issues/207), PR [#208](https://github.com/pydata/sparse/pull/208)) +* Disallow auto-densification. (Issue [#218](https://github.com/pydata/sparse/issues/218), PR [#220](https://github.com/pydata/sparse/pull/220)) * Add auto-densification configuration, and a configurable warning for checking - if the array is too dense. (:pr:`210`, :pr:`213`) -* Add pruning of fill-values to COO constructor. (:pr:`221`) + if the array is too dense. (PR [#210](https://github.com/pydata/sparse/pull/210), PR [#213](https://github.com/pydata/sparse/pull/213)) +* Add pruning of fill-values to COO constructor. (PR [#221](https://github.com/pydata/sparse/pull/221)) 0.5.0 / 2018-10-12 ------------------ -* Added :code:`COO.real`, :code:`COO.imag`, and :code:`COO.conj` (:pr:`196`). -* Added :code:`sparse.kron` function (:pr:`194`, :pr:`195`). -* Added :code:`order` parameter to :code:`COO.reshape` to make it work with - :code:`np.reshape` (:pr:`193`). -* Added :code:`COO.mean` and :code:`sparse.nanmean` (:pr:`190`). -* Added :code:`sparse.full` and :code:`sparse.full_like` (:pr:`189`). -* Added :code:`COO.clip` method (:pr:`185`). -* Added :code:`COO.copy` method, and changed pickle of :code:`COO` to not - include its cache (:pr:`184`). -* Added :code:`sparse.eye`, :code:`sparse.zeros`, :code:`sparse.zeros_like`, - :code:`sparse.ones`, and :code:`sparse.ones_like` (:pr:`183`). +* Added `COO.real`, `COO.imag`, and `COO.conj` (PR [#196](https://github.com/pydata/sparse/pull/196)). +* Added `sparse.kron` function (PR [#194](https://github.com/pydata/sparse/pull/194), PR [#195](https://github.com/pydata/sparse/pull/195)). +* Added `order` parameter to `COO.reshape` to make it work with + `np.reshape` (PR [#193](https://github.com/pydata/sparse/pull/193)). +* Added `COO.mean` and `sparse.nanmean` (PR [#190](https://github.com/pydata/sparse/pull/190)). +* Added `sparse.full` and `sparse.full_like` (PR [#189](https://github.com/pydata/sparse/pull/189)). +* Added `COO.clip` method (PR [#185](https://github.com/pydata/sparse/pull/185)). +* Added `COO.copy` method, and changed pickle of `COO` to not + include its cache (PR [#184](https://github.com/pydata/sparse/pull/184)). +* Added `sparse.eye`, `sparse.zeros`, `sparse.zeros_like`, + `sparse.ones`, and `sparse.ones_like` (PR [#183](https://github.com/pydata/sparse/pull/183)). 0.4.1 / 2018-09-12 ------------------ -* Allow mixed :code:`ndarray`-:code:`COO` operations if the result is sparse - (:issue:`124`, via :pr:`182`). +* Allow mixed `ndarray`-`COO` operations if the result is sparse + (Issue [#124](https://github.com/pydata/sparse/issues/124), via PR [#182](https://github.com/pydata/sparse/pull/182)). * Allow specifying a fill-value when converting from NumPy arrays - (:issue:`179`, via :pr:`180`). -* Added :code:`COO.any` and :code:`COO.all` methods (:pr:`175`). -* Indexing for :code:`COO` now accepts a single one-dimensional array index - (:pr:`172`). -* The fill-value can now be something other than zero or :code:`False` - (:pr:`165`). -* Added a :code:`sparse.roll` function (:pr:`160`). + (Issue [#179](https://github.com/pydata/sparse/issues/179), via PR [#180](https://github.com/pydata/sparse/pull/180)). +* Added `COO.any` and `COO.all` methods (PR [#175](https://github.com/pydata/sparse/pull/175)). +* Indexing for `COO` now accepts a single one-dimensional array index + (PR [#172](https://github.com/pydata/sparse/pull/172)). +* The fill-value can now be something other than zero or `False` + (PR [#165](https://github.com/pydata/sparse/pull/165)). +* Added a `sparse.roll` function (PR [#160](https://github.com/pydata/sparse/pull/160)). * Numba code now releases the GIL. This leads to better multi-threaded - performance in Dask (:pr:`159`). -* A number of bugs occurred, so to resolve them, :code:`COO.coords.dtype` is - always :code:`np.int64`. :code:`COO`, therefore, uses more memory than - before (:pr:`158`). -* Add support for saving and loading :code:`COO` files from disk (:issue:`153`, - via :pr:`154`). -* Support :code:`COO.nonzero` and :code:`np.argwhere` (:issue:`145`, via - :pr:`148`). -* Allow faux in-place operations (:issue:`80`, via :pr:`146`). -* :code:`COO` is now always canonical (:pr:`141`). -* Improve indexing performance (:pr:`128`). -* Improve element-wise performance (:pr:`127`). -* Reductions now support a negative axis (:issue:`117`, via :pr:`118`). -* Match behaviour of :code:`ufunc.reduce` from NumPy (:issue:`107`, via - :pr:`108`). + performance in Dask (PR [#159](https://github.com/pydata/sparse/pull/159)). +* A number of bugs occurred, so to resolve them, `COO.coords.dtype` is + always `np.int64`. `COO`, therefore, uses more memory than + before (PR [#158](https://github.com/pydata/sparse/pull/158)). +* Add support for saving and loading `COO` files from disk (Issue [#153](https://github.com/pydata/sparse/issues/153), + via PR [#154](https://github.com/pydata/sparse/pull/154)). +* Support `COO.nonzero` and `np.argwhere` (Issue [#145](https://github.com/pydata/sparse/issues/145), via + PR [#148](https://github.com/pydata/sparse/pull/148)). +* Allow faux in-place operations (Issue [#80](https://github.com/pydata/sparse/issues/80), via PR [#146](https://github.com/pydata/sparse/pull/146)). +* `COO` is now always canonical (PR [#141](https://github.com/pydata/sparse/pull/141)). +* Improve indexing performance (PR [#128](https://github.com/pydata/sparse/pull/128)). +* Improve element-wise performance (PR [#127](https://github.com/pydata/sparse/pull/127)). +* Reductions now support a negative axis (Issue [#117](https://github.com/pydata/sparse/issues/117), via PR [#118](https://github.com/pydata/sparse/pull/118)). +* Match behaviour of `ufunc.reduce` from NumPy (Issue [#107](https://github.com/pydata/sparse/issues/107), via + PR [#108](https://github.com/pydata/sparse/pull/108)). 0.3.1 / 2018-04-12 ------------------ -* Fix packaging error (:pr:`138`). +* Fix packaging error (PR [#138](https://github.com/pydata/sparse/pull/138)). 0.3.0 / 2018-02-22 ------------------ -* Add NaN-skipping aggregations (:pr:`102`). -* Add equivalent to :code:`np.where` (:pr:`102`). -* N-input universal functions now work (:pr:`98`). -* Make :code:`dot` more consistent with NumPy (:pr:`96`). -* Create a base class :code:`SparseArray` (:pr:`92`). -* Minimum NumPy version is now 1.13 (:pr:`90`). -* Fix a bug where setting a :code:`DOK` element to zero did nothing - (:issue:`93`, via :pr:`94`). +* Add NaN-skipping aggregations (PR [#102](https://github.com/pydata/sparse/pull/102)). +* Add equivalent to `np.where` (PR [#102](https://github.com/pydata/sparse/pull/102)). +* N-input universal functions now work (PR [#98](https://github.com/pydata/sparse/pull/98)). +* Make `dot` more consistent with NumPy (PR [#96](https://github.com/pydata/sparse/pull/96)). +* Create a base class `SparseArray` (PR [#92](https://github.com/pydata/sparse/pull/92)). +* Minimum NumPy version is now 1.13 (PR [#90](https://github.com/pydata/sparse/pull/90)). +* Fix a bug where setting a `DOK` element to zero did nothing + (Issue [#93](https://github.com/pydata/sparse/issues/93), via PR [#94](https://github.com/pydata/sparse/pull/94)). 0.2.0 / 2018-01-25 ------------------ -* Support faster :code:`np.array(COO)` (:pr:`87`). -* Add :code:`DOK` type (:pr:`85`). -* Fix sum for large arrays (:issue:`82`, via :pr:`83`). -* Support :code:`.size` and :code:`.density` (:pr:`69`). -* Documentation added for the package (:pr:`43`). -* Minimum required SciPy version is now 0.19 (:pr:`70`). -* :code:`len(COO)` now works (:pr:`68`). -* :code:`scalar op COO` now works for all operators (:pr:`67`). -* Validate axes for :code:`.transpose()` (:pr:`61`). -* Extend indexing support (:pr:`57`). -* Add :code:`random` function for generating random sparse arrays (:pr:`41`). -* :code:`COO(COO)` now copies the original object (:pr:`55`). -* NumPy universal functions and reductions now work on :code:`COO` arrays - (:pr:`49`). -* Fix concatenate and stack for large arrays (:issue:`32`, via :pr:`51`). -* Fix :code:`nnz` for scalars (:issue:`47`, via :pr:`48`). -* Support more operators and remove all special cases (:pr:`46`). -* Add support for :code:`triu` and :code:`tril` (:pr:`40`). -* Add support for Ellipsis (:code:`...`) and :code:`None` when indexing - (:pr:`37`). -* Add support for bitwise bindary operations like :code:`&` and :code:`|` - (:pr:`38`). -* Support broadcasting in element-wise operations (:pr:`35`). +* Support faster `np.array(COO)` (PR [#87](https://github.com/pydata/sparse/pull/87)). +* Add `DOK` type (PR [#85](https://github.com/pydata/sparse/pull/85)). +* Fix sum for large arrays (Issue [#82](https://github.com/pydata/sparse/issues/82), via PR [#83](https://github.com/pydata/sparse/pull/83)). +* Support `.size` and `.density` (PR [#69](https://github.com/pydata/sparse/pull/69)). +* Documentation added for the package (PR [#43](https://github.com/pydata/sparse/pull/43)). +* Minimum required SciPy version is now 0.19 (PR [#70](https://github.com/pydata/sparse/pull/70)). +* `len(COO)` now works (PR [#68](https://github.com/pydata/sparse/pull/68)). +* `scalar op COO` now works for all operators (PR [#67](https://github.com/pydata/sparse/pull/67)). +* Validate axes for `.transpose()` (PR [#61](https://github.com/pydata/sparse/pull/61)). +* Extend indexing support (PR [#57](https://github.com/pydata/sparse/pull/57)). +* Add `random` function for generating random sparse arrays (PR [#41](https://github.com/pydata/sparse/pull/41)). +* `COO(COO)` now copies the original object (PR [#55](https://github.com/pydata/sparse/pull/55)). +* NumPy universal functions and reductions now work on `COO` arrays + (PR [#49](https://github.com/pydata/sparse/pull/49)). +* Fix concatenate and stack for large arrays (Issue [#32](https://github.com/pydata/sparse/issues/32), via PR [#51](https://github.com/pydata/sparse/pull/51)). +* Fix `nnz` for scalars (Issue [#47](https://github.com/pydata/sparse/issues/47), via PR [#48](https://github.com/pydata/sparse/pull/48)). +* Support more operators and remove all special cases (PR [#46](https://github.com/pydata/sparse/pull/46)). +* Add support for `triu` and `tril` (PR [#40](https://github.com/pydata/sparse/pull/40)). +* Add support for Ellipsis (`...`) and `None` when indexing + (PR [#37](https://github.com/pydata/sparse/pull/37)). +* Add support for bitwise bindary operations like `&` and `|` + (PR [#38](https://github.com/pydata/sparse/pull/38)). +* Support broadcasting in element-wise operations (PR [#35](https://github.com/pydata/sparse/pull/35)). diff --git a/docs/completed-tasks.md b/docs/completed-tasks.md new file mode 100644 index 00000000..2bb45630 --- /dev/null +++ b/docs/completed-tasks.md @@ -0,0 +1 @@ +[Completed tasks](roadmap.md#completed-tasks) diff --git a/docs/css/mkdocstrings.css b/docs/css/mkdocstrings.css index 7a100aa1..6718accd 100644 --- a/docs/css/mkdocstrings.css +++ b/docs/css/mkdocstrings.css @@ -1,3 +1,15 @@ -.md-tabs__link { - font-weight: bold; + :root { + --md-primary-fg-color: #c96c08; + --md-primary-fg-color--light: #94f2f7; + --md-primary-fg-color--dark: #335365; + } + + .md-tabs__item { + font-weight: bolder; + } + + .grid { + font-weight: bolder; + font-size: 160%; + font-family: Georgia, serif; } diff --git a/docs/examples/sparse_finch.ipynb b/docs/examples/sparse_finch.ipynb new file mode 100644 index 00000000..bef0cca4 --- /dev/null +++ b/docs/examples/sparse_finch.ipynb @@ -0,0 +1,365 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Finch backend for `sparse`\n", + "\n", + "\n", + " \"Open\n", + " to download and run." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# pip install 'sparse[finch]==0.16.0a9' scipy\n", + "# export SPARSE_BACKEND=Finch\n", + "\n", + "# let's make sure we're using Finch backend\n", + "import os\n", + "\n", + "os.environ[\"SPARSE_BACKEND\"] = \"Finch\"\n", + "CI_MODE = os.getenv(\"CI_MODE\", default=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import importlib\n", + "import time\n", + "\n", + "import sparse\n", + "\n", + "import matplotlib.pyplot as plt\n", + "\n", + "import numpy as np\n", + "import scipy.sparse as sps\n", + "import scipy.sparse.linalg as splin\n", + "\n", + "assert sparse.BackendType.Finch == sparse.BACKEND" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tns = sparse.asarray(np.zeros((10, 10))) # offers a no-copy constructor for NumPy as scipy.sparse inputs\n", + "\n", + "s1 = sparse.random((100, 10), density=0.01) # creates random COO tensor\n", + "s2 = sparse.random((100, 100, 10), density=0.01)\n", + "s2 = sparse.asarray(s2, format=\"csf\") # can be used to rewrite tensor to a new format\n", + "\n", + "result = sparse.tensordot(s1, s2, axes=([0, 1], [0, 2]))\n", + "\n", + "total = sparse.sum(result * result)\n", + "print(total)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Example: least squares - closed form" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "y = sparse.random((100, 1), density=0.08)\n", + "X = sparse.random((100, 5), density=0.08)\n", + "X = sparse.asarray(X, format=\"csc\")\n", + "X_lazy = sparse.lazy(X)\n", + "\n", + "X_X = sparse.compute(sparse.permute_dims(X_lazy, (1, 0)) @ X_lazy, verbose=True)\n", + "\n", + "X_X = sparse.asarray(X_X, format=\"csc\") # move back from dense to CSC format\n", + "\n", + "inverted = splin.inv(X_X) # dispatching to scipy.sparse.sparray\n", + "\n", + "b_hat = (inverted @ sparse.permute_dims(X, (1, 0))) @ y\n", + "\n", + "print(b_hat.todense())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Benchmark plots" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ITERS = 3\n", + "rng = np.random.default_rng(0)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "plt.style.use(\"seaborn-v0_8\")\n", + "plt.rcParams[\"figure.dpi\"] = 400\n", + "plt.rcParams[\"figure.figsize\"] = [8, 4]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def benchmark(func, info, args) -> float:\n", + " start = time.time()\n", + " for _ in range(ITERS):\n", + " func(*args)\n", + " elapsed = time.time() - start\n", + " return elapsed / ITERS" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(\"MTTKRP Example:\\n\")\n", + "\n", + "os.environ[sparse._ENV_VAR_NAME] = \"Numba\"\n", + "importlib.reload(sparse)\n", + "\n", + "configs = [\n", + " {\"I_\": 100, \"J_\": 25, \"K_\": 10, \"L_\": 10, \"DENSITY\": 0.001},\n", + " {\"I_\": 100, \"J_\": 25, \"K_\": 100, \"L_\": 10, \"DENSITY\": 0.001},\n", + " {\"I_\": 100, \"J_\": 25, \"K_\": 100, \"L_\": 100, \"DENSITY\": 0.001},\n", + " {\"I_\": 1000, \"J_\": 25, \"K_\": 100, \"L_\": 100, \"DENSITY\": 0.001},\n", + " {\"I_\": 1000, \"J_\": 25, \"K_\": 1000, \"L_\": 100, \"DENSITY\": 0.001},\n", + " {\"I_\": 1000, \"J_\": 25, \"K_\": 1000, \"L_\": 1000, \"DENSITY\": 0.001},\n", + "]\n", + "nonzeros = [10000, 100_000, 1_000_000, 10_000_000, 100_000_000, 1_000_000_000]\n", + "\n", + "if CI_MODE:\n", + " configs = configs[:1]\n", + " nonzeros = nonzeros[:1]\n", + "\n", + "finch_times = []\n", + "numba_times = []\n", + "\n", + "for config in configs:\n", + " B_sps = sparse.random((config[\"I_\"], config[\"K_\"], config[\"L_\"]), density=config[\"DENSITY\"], random_state=rng) * 10\n", + " D_sps = rng.random((config[\"L_\"], config[\"J_\"])) * 10\n", + " C_sps = rng.random((config[\"K_\"], config[\"J_\"])) * 10\n", + "\n", + " # ======= Finch =======\n", + " os.environ[sparse._ENV_VAR_NAME] = \"Finch\"\n", + " importlib.reload(sparse)\n", + "\n", + " B = sparse.asarray(B_sps.todense(), format=\"csf\")\n", + " D = sparse.asarray(np.array(D_sps, order=\"F\"))\n", + " C = sparse.asarray(np.array(C_sps, order=\"F\"))\n", + "\n", + " @sparse.compiled\n", + " def mttkrp_finch(B, D, C):\n", + " return sparse.sum(B[:, :, :, None] * D[None, None, :, :] * C[None, :, None, :], axis=(1, 2))\n", + "\n", + " # Compile\n", + " result_finch = mttkrp_finch(B, D, C)\n", + " # Benchmark\n", + " time_finch = benchmark(mttkrp_finch, info=\"Finch\", args=[B, D, C])\n", + "\n", + " # ======= Numba =======\n", + " os.environ[sparse._ENV_VAR_NAME] = \"Numba\"\n", + " importlib.reload(sparse)\n", + "\n", + " B = sparse.asarray(B_sps, format=\"gcxs\")\n", + " D = D_sps\n", + " C = C_sps\n", + "\n", + " def mttkrp_numba(B, D, C):\n", + " return sparse.sum(B[:, :, :, None] * D[None, None, :, :] * C[None, :, None, :], axis=(1, 2))\n", + "\n", + " # Compile\n", + " result_numba = mttkrp_numba(B, D, C)\n", + " # Benchmark\n", + " time_numba = benchmark(mttkrp_numba, info=\"Numba\", args=[B, D, C])\n", + "\n", + " np.testing.assert_allclose(result_finch.todense(), result_numba.todense())\n", + " finch_times.append(time_finch)\n", + " numba_times.append(time_numba)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(nrows=1, ncols=1)\n", + "\n", + "ax.plot(nonzeros, finch_times, \"o-\", label=\"Finch\")\n", + "ax.plot(nonzeros, numba_times, \"o-\", label=\"Numba\")\n", + "ax.grid(True)\n", + "ax.set_xlabel(\"no. of elements\")\n", + "ax.set_ylabel(\"time (sec)\")\n", + "ax.set_title(\"MTTKRP\")\n", + "ax.set_xscale(\"log\")\n", + "ax.set_yscale(\"log\")\n", + "ax.legend(loc=\"best\", numpoints=1)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(\"SDDMM Example:\\n\")\n", + "\n", + "configs = [\n", + " {\"LEN\": 10, \"DENSITY\": 0.1},\n", + " {\"LEN\": 50, \"DENSITY\": 0.05},\n", + " {\"LEN\": 100, \"DENSITY\": 0.01},\n", + " {\"LEN\": 500, \"DENSITY\": 0.005},\n", + " {\"LEN\": 1000, \"DENSITY\": 0.001},\n", + " {\"LEN\": 5000, \"DENSITY\": 0.00005},\n", + " {\"LEN\": 10000, \"DENSITY\": 0.00001},\n", + "]\n", + "size_n = [10, 50, 100, 500, 1000, 5000, 10000]\n", + "\n", + "if CI_MODE:\n", + " configs = configs[:1]\n", + " size_n = size_n[:1]\n", + "\n", + "finch_times = []\n", + "numba_times = []\n", + "scipy_times = []\n", + "\n", + "for config in configs:\n", + " LEN = config[\"LEN\"]\n", + " DENSITY = config[\"DENSITY\"]\n", + "\n", + " a_sps = rng.random((LEN, LEN)) * 10\n", + " b_sps = rng.random((LEN, LEN)) * 10\n", + " s_sps = sps.random(LEN, LEN, format=\"coo\", density=DENSITY, random_state=rng) * 10\n", + " s_sps.sum_duplicates()\n", + "\n", + " # ======= Finch =======\n", + " os.environ[sparse._ENV_VAR_NAME] = \"Finch\"\n", + " importlib.reload(sparse)\n", + "\n", + " s = sparse.asarray(s_sps)\n", + " a = sparse.asarray(np.array(a_sps, order=\"F\"))\n", + " b = sparse.asarray(np.array(b_sps, order=\"C\"))\n", + "\n", + " @sparse.compiled\n", + " def sddmm_finch(s, a, b):\n", + " return sparse.sum(\n", + " s[:, :, None] * (a[:, None, :] * sparse.permute_dims(b, (1, 0))[None, :, :]),\n", + " axis=-1,\n", + " )\n", + "\n", + " # Compile\n", + " result_finch = sddmm_finch(s, a, b)\n", + " # Benchmark\n", + " time_finch = benchmark(sddmm_finch, info=\"Finch\", args=[s, a, b])\n", + "\n", + " # ======= Numba =======\n", + " os.environ[sparse._ENV_VAR_NAME] = \"Numba\"\n", + " importlib.reload(sparse)\n", + "\n", + " s = sparse.asarray(s_sps)\n", + " a = a_sps\n", + " b = b_sps\n", + "\n", + " def sddmm_numba(s, a, b):\n", + " return s * (a @ b)\n", + "\n", + " # Compile\n", + " result_numba = sddmm_numba(s, a, b)\n", + " # Benchmark\n", + " time_numba = benchmark(sddmm_numba, info=\"Numba\", args=[s, a, b])\n", + "\n", + " # ======= SciPy =======\n", + " def sddmm_scipy(s, a, b):\n", + " return s.multiply(a @ b)\n", + "\n", + " s = s_sps.asformat(\"csr\")\n", + " a = a_sps\n", + " b = b_sps\n", + "\n", + " result_scipy = sddmm_scipy(s, a, b)\n", + " # Benchmark\n", + " time_scipy = benchmark(sddmm_scipy, info=\"SciPy\", args=[s, a, b])\n", + "\n", + " finch_times.append(time_finch)\n", + " numba_times.append(time_numba)\n", + " scipy_times.append(time_scipy)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(nrows=1, ncols=1)\n", + "\n", + "ax.plot(size_n, finch_times, \"o-\", label=\"Finch\")\n", + "ax.plot(size_n, numba_times, \"o-\", label=\"Numba\")\n", + "ax.plot(size_n, scipy_times, \"o-\", label=\"SciPy\")\n", + "\n", + "ax.grid(True)\n", + "ax.set_xlabel(\"size N\")\n", + "ax.set_ylabel(\"time (sec)\")\n", + "ax.set_title(\"SDDMM\")\n", + "ax.set_xscale(\"log\")\n", + "# ax.set_yscale('log')\n", + "ax.legend(loc=\"best\", numpoints=1)\n", + "\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "sparse-dev", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.2" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/generated/sparse.COO.T.rst b/docs/generated/sparse.COO.T.rst deleted file mode 100644 index 142d0e04..00000000 --- a/docs/generated/sparse.COO.T.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.T -====== - -.. currentmodule:: sparse - -.. autoattribute:: COO.T diff --git a/docs/generated/sparse.COO.all.rst b/docs/generated/sparse.COO.all.rst deleted file mode 100644 index 8945c25b..00000000 --- a/docs/generated/sparse.COO.all.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO.all -======= - -.. currentmodule:: sparse - -.. automethod:: COO.all diff --git a/docs/generated/sparse.COO.any.rst b/docs/generated/sparse.COO.any.rst deleted file mode 100644 index 164f6ca5..00000000 --- a/docs/generated/sparse.COO.any.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO.any -======= - -.. currentmodule:: sparse - -.. automethod:: COO.any diff --git a/docs/generated/sparse.COO.asformat.rst b/docs/generated/sparse.COO.asformat.rst deleted file mode 100644 index 6bdf3cb1..00000000 --- a/docs/generated/sparse.COO.asformat.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO.asformat -============ - -.. currentmodule:: sparse - -.. automethod:: COO.asformat diff --git a/docs/generated/sparse.COO.astype.rst b/docs/generated/sparse.COO.astype.rst deleted file mode 100644 index 1fd4ba26..00000000 --- a/docs/generated/sparse.COO.astype.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.astype -=========== - -.. currentmodule:: sparse - -.. automethod:: COO.astype diff --git a/docs/generated/sparse.COO.broadcast_to.rst b/docs/generated/sparse.COO.broadcast_to.rst deleted file mode 100644 index ae902f68..00000000 --- a/docs/generated/sparse.COO.broadcast_to.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.broadcast\_to -================== - -.. currentmodule:: sparse - -.. automethod:: COO.broadcast_to diff --git a/docs/generated/sparse.COO.clip.rst b/docs/generated/sparse.COO.clip.rst deleted file mode 100644 index a04b58fd..00000000 --- a/docs/generated/sparse.COO.clip.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.clip -========= - -.. currentmodule:: sparse - -.. automethod:: COO.clip diff --git a/docs/generated/sparse.COO.conj.rst b/docs/generated/sparse.COO.conj.rst deleted file mode 100644 index 4e611469..00000000 --- a/docs/generated/sparse.COO.conj.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.conj -========= - -.. currentmodule:: sparse - -.. automethod:: COO.conj diff --git a/docs/generated/sparse.COO.copy.rst b/docs/generated/sparse.COO.copy.rst deleted file mode 100644 index 0e69661b..00000000 --- a/docs/generated/sparse.COO.copy.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.copy -========= - -.. currentmodule:: sparse - -.. automethod:: COO.copy diff --git a/docs/generated/sparse.COO.density.rst b/docs/generated/sparse.COO.density.rst deleted file mode 100644 index ddf932e5..00000000 --- a/docs/generated/sparse.COO.density.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.density -============ - -.. currentmodule:: sparse - -.. autoattribute:: COO.density diff --git a/docs/generated/sparse.COO.dot.rst b/docs/generated/sparse.COO.dot.rst deleted file mode 100644 index 32390902..00000000 --- a/docs/generated/sparse.COO.dot.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.dot -======== - -.. currentmodule:: sparse - -.. automethod:: COO.dot diff --git a/docs/generated/sparse.COO.dtype.rst b/docs/generated/sparse.COO.dtype.rst deleted file mode 100644 index 08357850..00000000 --- a/docs/generated/sparse.COO.dtype.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.dtype -========== - -.. currentmodule:: sparse - -.. autoattribute:: COO.dtype diff --git a/docs/generated/sparse.COO.enable_caching.rst b/docs/generated/sparse.COO.enable_caching.rst deleted file mode 100644 index 16fea202..00000000 --- a/docs/generated/sparse.COO.enable_caching.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.enable\_caching -==================== - -.. currentmodule:: sparse - -.. automethod:: COO.enable_caching diff --git a/docs/generated/sparse.COO.flatten.rst b/docs/generated/sparse.COO.flatten.rst deleted file mode 100644 index 71489312..00000000 --- a/docs/generated/sparse.COO.flatten.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO.flatten -=========== - -.. currentmodule:: sparse - -.. automethod:: COO.flatten diff --git a/docs/generated/sparse.COO.from_iter.rst b/docs/generated/sparse.COO.from_iter.rst deleted file mode 100644 index d7719fa6..00000000 --- a/docs/generated/sparse.COO.from_iter.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO.from\_iter -============== - -.. currentmodule:: sparse - -.. automethod:: COO.from_iter diff --git a/docs/generated/sparse.COO.from_numpy.rst b/docs/generated/sparse.COO.from_numpy.rst deleted file mode 100644 index 1154f27b..00000000 --- a/docs/generated/sparse.COO.from_numpy.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.from\_numpy -================ - -.. currentmodule:: sparse - -.. automethod:: COO.from_numpy diff --git a/docs/generated/sparse.COO.from_scipy_sparse.rst b/docs/generated/sparse.COO.from_scipy_sparse.rst deleted file mode 100644 index 6e6c9529..00000000 --- a/docs/generated/sparse.COO.from_scipy_sparse.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.from\_scipy\_sparse -======================== - -.. currentmodule:: sparse - -.. automethod:: COO.from_scipy_sparse diff --git a/docs/generated/sparse.COO.imag.rst b/docs/generated/sparse.COO.imag.rst deleted file mode 100644 index 0eb05458..00000000 --- a/docs/generated/sparse.COO.imag.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.imag -========= - -.. currentmodule:: sparse - -.. autoattribute:: COO.imag diff --git a/docs/generated/sparse.COO.linear_loc.rst b/docs/generated/sparse.COO.linear_loc.rst deleted file mode 100644 index c3d47f91..00000000 --- a/docs/generated/sparse.COO.linear_loc.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.linear\_loc -================ - -.. currentmodule:: sparse - -.. automethod:: COO.linear_loc diff --git a/docs/generated/sparse.COO.max.rst b/docs/generated/sparse.COO.max.rst deleted file mode 100644 index 68b7efc8..00000000 --- a/docs/generated/sparse.COO.max.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.max -======== - -.. currentmodule:: sparse - -.. automethod:: COO.max diff --git a/docs/generated/sparse.COO.maybe_densify.rst b/docs/generated/sparse.COO.maybe_densify.rst deleted file mode 100644 index 750a9ce2..00000000 --- a/docs/generated/sparse.COO.maybe_densify.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.maybe\_densify -=================== - -.. currentmodule:: sparse - -.. automethod:: COO.maybe_densify diff --git a/docs/generated/sparse.COO.mean.rst b/docs/generated/sparse.COO.mean.rst deleted file mode 100644 index a699eeb3..00000000 --- a/docs/generated/sparse.COO.mean.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.mean -========= - -.. currentmodule:: sparse - -.. automethod:: COO.mean diff --git a/docs/generated/sparse.COO.min.rst b/docs/generated/sparse.COO.min.rst deleted file mode 100644 index 347c89c2..00000000 --- a/docs/generated/sparse.COO.min.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.min -======== - -.. currentmodule:: sparse - -.. automethod:: COO.min diff --git a/docs/generated/sparse.COO.nbytes.rst b/docs/generated/sparse.COO.nbytes.rst deleted file mode 100644 index eeab47b9..00000000 --- a/docs/generated/sparse.COO.nbytes.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.nbytes -=========== - -.. currentmodule:: sparse - -.. autoattribute:: COO.nbytes diff --git a/docs/generated/sparse.COO.ndim.rst b/docs/generated/sparse.COO.ndim.rst deleted file mode 100644 index bee60d52..00000000 --- a/docs/generated/sparse.COO.ndim.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.ndim -========= - -.. currentmodule:: sparse - -.. autoattribute:: COO.ndim diff --git a/docs/generated/sparse.COO.nnz.rst b/docs/generated/sparse.COO.nnz.rst deleted file mode 100644 index b0b0ce39..00000000 --- a/docs/generated/sparse.COO.nnz.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.nnz -======== - -.. currentmodule:: sparse - -.. autoattribute:: COO.nnz diff --git a/docs/generated/sparse.COO.nonzero.rst b/docs/generated/sparse.COO.nonzero.rst deleted file mode 100644 index 384319b5..00000000 --- a/docs/generated/sparse.COO.nonzero.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO.nonzero -=========== - -.. currentmodule:: sparse - -.. automethod:: COO.nonzero diff --git a/docs/generated/sparse.COO.prod.rst b/docs/generated/sparse.COO.prod.rst deleted file mode 100644 index d97531ff..00000000 --- a/docs/generated/sparse.COO.prod.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.prod -========= - -.. currentmodule:: sparse - -.. automethod:: COO.prod diff --git a/docs/generated/sparse.COO.real.rst b/docs/generated/sparse.COO.real.rst deleted file mode 100644 index 1fc52917..00000000 --- a/docs/generated/sparse.COO.real.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.real -========= - -.. currentmodule:: sparse - -.. autoattribute:: COO.real diff --git a/docs/generated/sparse.COO.reduce.rst b/docs/generated/sparse.COO.reduce.rst deleted file mode 100644 index 24eacf7f..00000000 --- a/docs/generated/sparse.COO.reduce.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.reduce -=========== - -.. currentmodule:: sparse - -.. automethod:: COO.reduce diff --git a/docs/generated/sparse.COO.reshape.rst b/docs/generated/sparse.COO.reshape.rst deleted file mode 100644 index b973c09b..00000000 --- a/docs/generated/sparse.COO.reshape.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.reshape -============ - -.. currentmodule:: sparse - -.. automethod:: COO.reshape diff --git a/docs/generated/sparse.COO.resize.rst b/docs/generated/sparse.COO.resize.rst deleted file mode 100644 index 9893b6b1..00000000 --- a/docs/generated/sparse.COO.resize.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO.resize -========== - -.. currentmodule:: sparse - -.. automethod:: COO.resize diff --git a/docs/generated/sparse.COO.round.rst b/docs/generated/sparse.COO.round.rst deleted file mode 100644 index 3ad2ccbc..00000000 --- a/docs/generated/sparse.COO.round.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.round -========== - -.. currentmodule:: sparse - -.. automethod:: COO.round diff --git a/docs/generated/sparse.COO.rst b/docs/generated/sparse.COO.rst deleted file mode 100644 index 605df66b..00000000 --- a/docs/generated/sparse.COO.rst +++ /dev/null @@ -1,88 +0,0 @@ -COO -=== - -.. currentmodule:: sparse - -.. autoclass:: COO - - .. note:: :obj:`COO` objects also support :ref:`operators ` - and :ref:`indexing ` - - .. rubric:: Attributes - .. autosummary:: - :toctree: - - COO.T - COO.dtype - COO.nbytes - COO.ndim - COO.nnz - COO.size - COO.density - COO.imag - COO.real - - .. rubric:: :doc:`Constructing COO objects <../construct>` - .. autosummary:: - :toctree: - - COO.from_iter - COO.from_numpy - COO.from_scipy_sparse - - .. rubric:: :ref:`Element-wise operations ` - .. autosummary:: - :toctree: - - COO.astype - COO.conj - COO.clip - COO.round - - .. rubric:: :ref:`Reductions ` - .. autosummary:: - :toctree: - - COO.reduce - - COO.sum - COO.prod - COO.min - COO.max - COO.any - COO.all - COO.mean - COO.std - COO.var - - .. rubric:: :ref:`Converting to other formats ` - .. autosummary:: - :toctree: - - COO.asformat - COO.todense - COO.maybe_densify - COO.to_scipy_sparse - COO.tocsc - COO.tocsr - - .. rubric:: :ref:`Other operations ` - .. autosummary:: - :toctree: - - COO.copy - COO.dot - COO.flatten - COO.reshape - COO.resize - COO.transpose - COO.swapaxes - COO.nonzero - - .. rubric:: Utility functions - .. autosummary:: - :toctree: - - COO.broadcast_to - COO.enable_caching - COO.linear_loc diff --git a/docs/generated/sparse.COO.size.rst b/docs/generated/sparse.COO.size.rst deleted file mode 100644 index d5e34b4a..00000000 --- a/docs/generated/sparse.COO.size.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.size -========= - -.. currentmodule:: sparse - -.. autoattribute:: COO.size diff --git a/docs/generated/sparse.COO.std.rst b/docs/generated/sparse.COO.std.rst deleted file mode 100644 index b46007ba..00000000 --- a/docs/generated/sparse.COO.std.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO.std -======= - -.. currentmodule:: sparse - -.. automethod:: COO.std diff --git a/docs/generated/sparse.COO.sum.rst b/docs/generated/sparse.COO.sum.rst deleted file mode 100644 index 9d6c8961..00000000 --- a/docs/generated/sparse.COO.sum.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.sum -======== - -.. currentmodule:: sparse - -.. automethod:: COO.sum diff --git a/docs/generated/sparse.COO.swapaxes.rst b/docs/generated/sparse.COO.swapaxes.rst deleted file mode 100644 index 9ab9adae..00000000 --- a/docs/generated/sparse.COO.swapaxes.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO.swapaxes -============ - -.. currentmodule:: sparse - -.. automethod:: COO.swapaxes diff --git a/docs/generated/sparse.COO.to_scipy_sparse.rst b/docs/generated/sparse.COO.to_scipy_sparse.rst deleted file mode 100644 index 184feaa6..00000000 --- a/docs/generated/sparse.COO.to_scipy_sparse.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.to\_scipy\_sparse -====================== - -.. currentmodule:: sparse - -.. automethod:: COO.to_scipy_sparse diff --git a/docs/generated/sparse.COO.tocsc.rst b/docs/generated/sparse.COO.tocsc.rst deleted file mode 100644 index fb9f2c81..00000000 --- a/docs/generated/sparse.COO.tocsc.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.tocsc -========== - -.. currentmodule:: sparse - -.. automethod:: COO.tocsc diff --git a/docs/generated/sparse.COO.tocsr.rst b/docs/generated/sparse.COO.tocsr.rst deleted file mode 100644 index a9d16ad0..00000000 --- a/docs/generated/sparse.COO.tocsr.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.tocsr -========== - -.. currentmodule:: sparse - -.. automethod:: COO.tocsr diff --git a/docs/generated/sparse.COO.todense.rst b/docs/generated/sparse.COO.todense.rst deleted file mode 100644 index 18e2e521..00000000 --- a/docs/generated/sparse.COO.todense.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.todense -============ - -.. currentmodule:: sparse - -.. automethod:: COO.todense diff --git a/docs/generated/sparse.COO.transpose.rst b/docs/generated/sparse.COO.transpose.rst deleted file mode 100644 index 4f5ace98..00000000 --- a/docs/generated/sparse.COO.transpose.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO\.transpose -============== - -.. currentmodule:: sparse - -.. automethod:: COO.transpose diff --git a/docs/generated/sparse.COO.var.rst b/docs/generated/sparse.COO.var.rst deleted file mode 100644 index 91312536..00000000 --- a/docs/generated/sparse.COO.var.rst +++ /dev/null @@ -1,6 +0,0 @@ -COO.var -======= - -.. currentmodule:: sparse - -.. automethod:: COO.var diff --git a/docs/generated/sparse.DOK.asformat.rst b/docs/generated/sparse.DOK.asformat.rst deleted file mode 100644 index e995d020..00000000 --- a/docs/generated/sparse.DOK.asformat.rst +++ /dev/null @@ -1,6 +0,0 @@ -DOK.asformat -============ - -.. currentmodule:: sparse - -.. automethod:: DOK.asformat diff --git a/docs/generated/sparse.DOK.density.rst b/docs/generated/sparse.DOK.density.rst deleted file mode 100644 index 47693f1d..00000000 --- a/docs/generated/sparse.DOK.density.rst +++ /dev/null @@ -1,6 +0,0 @@ -DOK\.density -============ - -.. currentmodule:: sparse - -.. autoattribute:: DOK.density diff --git a/docs/generated/sparse.DOK.from_coo.rst b/docs/generated/sparse.DOK.from_coo.rst deleted file mode 100644 index 184fb629..00000000 --- a/docs/generated/sparse.DOK.from_coo.rst +++ /dev/null @@ -1,6 +0,0 @@ -DOK\.from\_coo -============== - -.. currentmodule:: sparse - -.. automethod:: DOK.from_coo diff --git a/docs/generated/sparse.DOK.from_numpy.rst b/docs/generated/sparse.DOK.from_numpy.rst deleted file mode 100644 index eaea4553..00000000 --- a/docs/generated/sparse.DOK.from_numpy.rst +++ /dev/null @@ -1,6 +0,0 @@ -DOK\.from\_numpy -================ - -.. currentmodule:: sparse - -.. automethod:: DOK.from_numpy diff --git a/docs/generated/sparse.DOK.from_scipy_sparse.rst b/docs/generated/sparse.DOK.from_scipy_sparse.rst deleted file mode 100644 index 7b2289f0..00000000 --- a/docs/generated/sparse.DOK.from_scipy_sparse.rst +++ /dev/null @@ -1,6 +0,0 @@ -DOK.from\_scipy\_sparse -======================= - -.. currentmodule:: sparse - -.. automethod:: DOK.from_scipy_sparse diff --git a/docs/generated/sparse.DOK.ndim.rst b/docs/generated/sparse.DOK.ndim.rst deleted file mode 100644 index 8b15612b..00000000 --- a/docs/generated/sparse.DOK.ndim.rst +++ /dev/null @@ -1,6 +0,0 @@ -DOK\.ndim -========= - -.. currentmodule:: sparse - -.. autoattribute:: DOK.ndim diff --git a/docs/generated/sparse.DOK.nnz.rst b/docs/generated/sparse.DOK.nnz.rst deleted file mode 100644 index 9aa77d3e..00000000 --- a/docs/generated/sparse.DOK.nnz.rst +++ /dev/null @@ -1,6 +0,0 @@ -DOK\.nnz -======== - -.. currentmodule:: sparse - -.. autoattribute:: DOK.nnz diff --git a/docs/generated/sparse.DOK.rst b/docs/generated/sparse.DOK.rst deleted file mode 100644 index e4f7ee9b..00000000 --- a/docs/generated/sparse.DOK.rst +++ /dev/null @@ -1,44 +0,0 @@ -DOK -=== - -.. currentmodule:: sparse - -.. autoclass:: DOK - - - - .. rubric:: Attributes - .. autosummary:: - :toctree: - - DOK.density - - DOK.ndim - - DOK.nnz - - DOK.size - - - - - - - - - - .. rubric:: Methods - .. autosummary:: - :toctree: - - DOK.asformat - - DOK.from_coo - - DOK.from_numpy - - DOK.from_scipy_sparse - - DOK.to_coo - - DOK.todense diff --git a/docs/generated/sparse.DOK.size.rst b/docs/generated/sparse.DOK.size.rst deleted file mode 100644 index 3ba87ef2..00000000 --- a/docs/generated/sparse.DOK.size.rst +++ /dev/null @@ -1,6 +0,0 @@ -DOK\.size -========= - -.. currentmodule:: sparse - -.. autoattribute:: DOK.size diff --git a/docs/generated/sparse.DOK.to_coo.rst b/docs/generated/sparse.DOK.to_coo.rst deleted file mode 100644 index 1982ae53..00000000 --- a/docs/generated/sparse.DOK.to_coo.rst +++ /dev/null @@ -1,6 +0,0 @@ -DOK\.to\_coo -============ - -.. currentmodule:: sparse - -.. automethod:: DOK.to_coo diff --git a/docs/generated/sparse.DOK.todense.rst b/docs/generated/sparse.DOK.todense.rst deleted file mode 100644 index c4b4fe62..00000000 --- a/docs/generated/sparse.DOK.todense.rst +++ /dev/null @@ -1,6 +0,0 @@ -DOK\.todense -============ - -.. currentmodule:: sparse - -.. automethod:: DOK.todense diff --git a/docs/generated/sparse.GCXS.T.rst b/docs/generated/sparse.GCXS.T.rst deleted file mode 100644 index 3d384a4d..00000000 --- a/docs/generated/sparse.GCXS.T.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.T -====== - -.. currentmodule:: sparse - -.. autoproperty:: GCXS.T diff --git a/docs/generated/sparse.GCXS.__init__.rst b/docs/generated/sparse.GCXS.__init__.rst deleted file mode 100644 index eebcebbb..00000000 --- a/docs/generated/sparse.GCXS.__init__.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.\_\_init\_\_ -================= - -.. currentmodule:: sparse - -.. automethod:: GCXS.__init__ diff --git a/docs/generated/sparse.GCXS.all.rst b/docs/generated/sparse.GCXS.all.rst deleted file mode 100644 index 95ea5152..00000000 --- a/docs/generated/sparse.GCXS.all.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.all -======== - -.. currentmodule:: sparse - -.. automethod:: GCXS.all diff --git a/docs/generated/sparse.GCXS.amax.rst b/docs/generated/sparse.GCXS.amax.rst deleted file mode 100644 index 8834211d..00000000 --- a/docs/generated/sparse.GCXS.amax.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.amax -========= - -.. currentmodule:: sparse - -.. automethod:: GCXS.amax diff --git a/docs/generated/sparse.GCXS.amin.rst b/docs/generated/sparse.GCXS.amin.rst deleted file mode 100644 index 21272af8..00000000 --- a/docs/generated/sparse.GCXS.amin.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.amin -========= - -.. currentmodule:: sparse - -.. automethod:: GCXS.amin diff --git a/docs/generated/sparse.GCXS.any.rst b/docs/generated/sparse.GCXS.any.rst deleted file mode 100644 index cb063e9c..00000000 --- a/docs/generated/sparse.GCXS.any.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.any -======== - -.. currentmodule:: sparse - -.. automethod:: GCXS.any diff --git a/docs/generated/sparse.GCXS.asformat.rst b/docs/generated/sparse.GCXS.asformat.rst deleted file mode 100644 index 9759e21b..00000000 --- a/docs/generated/sparse.GCXS.asformat.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.asformat -============= - -.. currentmodule:: sparse - -.. automethod:: GCXS.asformat diff --git a/docs/generated/sparse.GCXS.astype.rst b/docs/generated/sparse.GCXS.astype.rst deleted file mode 100644 index 5fb75299..00000000 --- a/docs/generated/sparse.GCXS.astype.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.astype -=========== - -.. currentmodule:: sparse - -.. automethod:: GCXS.astype diff --git a/docs/generated/sparse.GCXS.change_compressed_axes.rst b/docs/generated/sparse.GCXS.change_compressed_axes.rst deleted file mode 100644 index 3dc8c140..00000000 --- a/docs/generated/sparse.GCXS.change_compressed_axes.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.change\_compressed\_axes -============================= - -.. currentmodule:: sparse - -.. automethod:: GCXS.change_compressed_axes diff --git a/docs/generated/sparse.GCXS.clip.rst b/docs/generated/sparse.GCXS.clip.rst deleted file mode 100644 index c5cd2331..00000000 --- a/docs/generated/sparse.GCXS.clip.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.clip -========= - -.. currentmodule:: sparse - -.. automethod:: GCXS.clip diff --git a/docs/generated/sparse.GCXS.compressed_axes.rst b/docs/generated/sparse.GCXS.compressed_axes.rst deleted file mode 100644 index e0fa6830..00000000 --- a/docs/generated/sparse.GCXS.compressed_axes.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.compressed\_axes -===================== - -.. currentmodule:: sparse - -.. autoproperty:: GCXS.compressed_axes diff --git a/docs/generated/sparse.GCXS.conj.rst b/docs/generated/sparse.GCXS.conj.rst deleted file mode 100644 index de50f6b6..00000000 --- a/docs/generated/sparse.GCXS.conj.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.conj -========= - -.. currentmodule:: sparse - -.. automethod:: GCXS.conj diff --git a/docs/generated/sparse.GCXS.copy.rst b/docs/generated/sparse.GCXS.copy.rst deleted file mode 100644 index 0b7452cd..00000000 --- a/docs/generated/sparse.GCXS.copy.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.copy -========= - -.. currentmodule:: sparse - -.. automethod:: GCXS.copy diff --git a/docs/generated/sparse.GCXS.density.rst b/docs/generated/sparse.GCXS.density.rst deleted file mode 100644 index 343e040a..00000000 --- a/docs/generated/sparse.GCXS.density.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.density -============ - -.. currentmodule:: sparse - -.. autoproperty:: GCXS.density diff --git a/docs/generated/sparse.GCXS.dot.rst b/docs/generated/sparse.GCXS.dot.rst deleted file mode 100644 index 510c86b7..00000000 --- a/docs/generated/sparse.GCXS.dot.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.dot -======== - -.. currentmodule:: sparse - -.. automethod:: GCXS.dot diff --git a/docs/generated/sparse.GCXS.dtype.rst b/docs/generated/sparse.GCXS.dtype.rst deleted file mode 100644 index 8924b457..00000000 --- a/docs/generated/sparse.GCXS.dtype.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.dtype -========== - -.. currentmodule:: sparse - -.. autoproperty:: GCXS.dtype diff --git a/docs/generated/sparse.GCXS.flatten.rst b/docs/generated/sparse.GCXS.flatten.rst deleted file mode 100644 index c2e78550..00000000 --- a/docs/generated/sparse.GCXS.flatten.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.flatten -============ - -.. currentmodule:: sparse - -.. automethod:: GCXS.flatten diff --git a/docs/generated/sparse.GCXS.from_coo.rst b/docs/generated/sparse.GCXS.from_coo.rst deleted file mode 100644 index 7c3c51ed..00000000 --- a/docs/generated/sparse.GCXS.from_coo.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.from\_coo -============== - -.. currentmodule:: sparse - -.. automethod:: GCXS.from_coo diff --git a/docs/generated/sparse.GCXS.from_iter.rst b/docs/generated/sparse.GCXS.from_iter.rst deleted file mode 100644 index 961b5d24..00000000 --- a/docs/generated/sparse.GCXS.from_iter.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.from\_iter -=============== - -.. currentmodule:: sparse - -.. automethod:: GCXS.from_iter diff --git a/docs/generated/sparse.GCXS.from_numpy.rst b/docs/generated/sparse.GCXS.from_numpy.rst deleted file mode 100644 index 917f22de..00000000 --- a/docs/generated/sparse.GCXS.from_numpy.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.from\_numpy -================ - -.. currentmodule:: sparse - -.. automethod:: GCXS.from_numpy diff --git a/docs/generated/sparse.GCXS.from_scipy_sparse.rst b/docs/generated/sparse.GCXS.from_scipy_sparse.rst deleted file mode 100644 index 5ac8c796..00000000 --- a/docs/generated/sparse.GCXS.from_scipy_sparse.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.from\_scipy\_sparse -======================== - -.. currentmodule:: sparse - -.. automethod:: GCXS.from_scipy_sparse diff --git a/docs/generated/sparse.GCXS.imag.rst b/docs/generated/sparse.GCXS.imag.rst deleted file mode 100644 index 33389447..00000000 --- a/docs/generated/sparse.GCXS.imag.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.imag -========= - -.. currentmodule:: sparse - -.. autoproperty:: GCXS.imag diff --git a/docs/generated/sparse.GCXS.max.rst b/docs/generated/sparse.GCXS.max.rst deleted file mode 100644 index fb7c2331..00000000 --- a/docs/generated/sparse.GCXS.max.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.max -======== - -.. currentmodule:: sparse - -.. automethod:: GCXS.max diff --git a/docs/generated/sparse.GCXS.maybe_densify.rst b/docs/generated/sparse.GCXS.maybe_densify.rst deleted file mode 100644 index a9b054cd..00000000 --- a/docs/generated/sparse.GCXS.maybe_densify.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.maybe\_densify -=================== - -.. currentmodule:: sparse - -.. automethod:: GCXS.maybe_densify diff --git a/docs/generated/sparse.GCXS.mean.rst b/docs/generated/sparse.GCXS.mean.rst deleted file mode 100644 index a437f91d..00000000 --- a/docs/generated/sparse.GCXS.mean.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.mean -========= - -.. currentmodule:: sparse - -.. automethod:: GCXS.mean diff --git a/docs/generated/sparse.GCXS.min.rst b/docs/generated/sparse.GCXS.min.rst deleted file mode 100644 index d4bcc19d..00000000 --- a/docs/generated/sparse.GCXS.min.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.min -======== - -.. currentmodule:: sparse - -.. automethod:: GCXS.min diff --git a/docs/generated/sparse.GCXS.nbytes.rst b/docs/generated/sparse.GCXS.nbytes.rst deleted file mode 100644 index d1ce097a..00000000 --- a/docs/generated/sparse.GCXS.nbytes.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.nbytes -=========== - -.. currentmodule:: sparse - -.. autoproperty:: GCXS.nbytes diff --git a/docs/generated/sparse.GCXS.ndim.rst b/docs/generated/sparse.GCXS.ndim.rst deleted file mode 100644 index 74fd47ff..00000000 --- a/docs/generated/sparse.GCXS.ndim.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.ndim -========= - -.. currentmodule:: sparse - -.. autoproperty:: GCXS.ndim diff --git a/docs/generated/sparse.GCXS.nnz.rst b/docs/generated/sparse.GCXS.nnz.rst deleted file mode 100644 index 43a30ca9..00000000 --- a/docs/generated/sparse.GCXS.nnz.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.nnz -======== - -.. currentmodule:: sparse - -.. autoproperty:: GCXS.nnz diff --git a/docs/generated/sparse.GCXS.prod.rst b/docs/generated/sparse.GCXS.prod.rst deleted file mode 100644 index 6fec63e8..00000000 --- a/docs/generated/sparse.GCXS.prod.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.prod -========= - -.. currentmodule:: sparse - -.. automethod:: GCXS.prod diff --git a/docs/generated/sparse.GCXS.real.rst b/docs/generated/sparse.GCXS.real.rst deleted file mode 100644 index b17ad9de..00000000 --- a/docs/generated/sparse.GCXS.real.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.real -========= - -.. currentmodule:: sparse - -.. autoproperty:: GCXS.real diff --git a/docs/generated/sparse.GCXS.reduce.rst b/docs/generated/sparse.GCXS.reduce.rst deleted file mode 100644 index 834f3726..00000000 --- a/docs/generated/sparse.GCXS.reduce.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.reduce -=========== - -.. currentmodule:: sparse - -.. automethod:: GCXS.reduce diff --git a/docs/generated/sparse.GCXS.reshape.rst b/docs/generated/sparse.GCXS.reshape.rst deleted file mode 100644 index fcf390f6..00000000 --- a/docs/generated/sparse.GCXS.reshape.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.reshape -============ - -.. currentmodule:: sparse - -.. automethod:: GCXS.reshape diff --git a/docs/generated/sparse.GCXS.round.rst b/docs/generated/sparse.GCXS.round.rst deleted file mode 100644 index 98553081..00000000 --- a/docs/generated/sparse.GCXS.round.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.round -========== - -.. currentmodule:: sparse - -.. automethod:: GCXS.round diff --git a/docs/generated/sparse.GCXS.round_.rst b/docs/generated/sparse.GCXS.round_.rst deleted file mode 100644 index 329d12d1..00000000 --- a/docs/generated/sparse.GCXS.round_.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.round\_ -============ - -.. currentmodule:: sparse - -.. automethod:: GCXS.round_ diff --git a/docs/generated/sparse.GCXS.rst b/docs/generated/sparse.GCXS.rst deleted file mode 100644 index 65bddb30..00000000 --- a/docs/generated/sparse.GCXS.rst +++ /dev/null @@ -1,109 +0,0 @@ -GCXS -==== - -.. currentmodule:: sparse - -.. autoclass:: GCXS - - - - .. rubric:: Attributes - .. autosummary:: - :toctree: - - GCXS.T - - GCXS.compressed_axes - - GCXS.density - - GCXS.dtype - - GCXS.imag - - GCXS.nbytes - - GCXS.ndim - - GCXS.nnz - - GCXS.real - - GCXS.size - - - - - - - .. rubric:: Methods - .. autosummary:: - :toctree: - - GCXS.__init__ - - GCXS.all - - GCXS.amax - - GCXS.amin - - GCXS.any - - GCXS.asformat - - GCXS.astype - - GCXS.change_compressed_axes - - GCXS.clip - - GCXS.conj - - GCXS.copy - - GCXS.dot - - GCXS.flatten - - GCXS.from_coo - - GCXS.from_iter - - GCXS.from_numpy - - GCXS.from_scipy_sparse - - GCXS.max - - GCXS.maybe_densify - - GCXS.mean - - GCXS.min - - GCXS.prod - - GCXS.reduce - - GCXS.reshape - - GCXS.round - - GCXS.round_ - - GCXS.std - - GCXS.sum - - GCXS.to_scipy_sparse - - GCXS.tocoo - - GCXS.todense - - GCXS.todok - - GCXS.transpose - - GCXS.var diff --git a/docs/generated/sparse.GCXS.size.rst b/docs/generated/sparse.GCXS.size.rst deleted file mode 100644 index 9860a44c..00000000 --- a/docs/generated/sparse.GCXS.size.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.size -========= - -.. currentmodule:: sparse - -.. autoproperty:: GCXS.size diff --git a/docs/generated/sparse.GCXS.std.rst b/docs/generated/sparse.GCXS.std.rst deleted file mode 100644 index 3a9151ce..00000000 --- a/docs/generated/sparse.GCXS.std.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.std -======== - -.. currentmodule:: sparse - -.. automethod:: GCXS.std diff --git a/docs/generated/sparse.GCXS.sum.rst b/docs/generated/sparse.GCXS.sum.rst deleted file mode 100644 index baa52fee..00000000 --- a/docs/generated/sparse.GCXS.sum.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.sum -======== - -.. currentmodule:: sparse - -.. automethod:: GCXS.sum diff --git a/docs/generated/sparse.GCXS.to_scipy_sparse.rst b/docs/generated/sparse.GCXS.to_scipy_sparse.rst deleted file mode 100644 index 71c31b97..00000000 --- a/docs/generated/sparse.GCXS.to_scipy_sparse.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.to\_scipy\_sparse -====================== - -.. currentmodule:: sparse - -.. automethod:: GCXS.to_scipy_sparse diff --git a/docs/generated/sparse.GCXS.tocoo.rst b/docs/generated/sparse.GCXS.tocoo.rst deleted file mode 100644 index 17a89fb5..00000000 --- a/docs/generated/sparse.GCXS.tocoo.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.tocoo -========== - -.. currentmodule:: sparse - -.. automethod:: GCXS.tocoo diff --git a/docs/generated/sparse.GCXS.todense.rst b/docs/generated/sparse.GCXS.todense.rst deleted file mode 100644 index f18cba79..00000000 --- a/docs/generated/sparse.GCXS.todense.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.todense -============ - -.. currentmodule:: sparse - -.. automethod:: GCXS.todense diff --git a/docs/generated/sparse.GCXS.todok.rst b/docs/generated/sparse.GCXS.todok.rst deleted file mode 100644 index a3e9265c..00000000 --- a/docs/generated/sparse.GCXS.todok.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.todok -========== - -.. currentmodule:: sparse - -.. automethod:: GCXS.todok diff --git a/docs/generated/sparse.GCXS.transpose.rst b/docs/generated/sparse.GCXS.transpose.rst deleted file mode 100644 index 11580e0a..00000000 --- a/docs/generated/sparse.GCXS.transpose.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.transpose -============== - -.. currentmodule:: sparse - -.. automethod:: GCXS.transpose diff --git a/docs/generated/sparse.GCXS.var.rst b/docs/generated/sparse.GCXS.var.rst deleted file mode 100644 index 51846349..00000000 --- a/docs/generated/sparse.GCXS.var.rst +++ /dev/null @@ -1,6 +0,0 @@ -GCXS.var -======== - -.. currentmodule:: sparse - -.. automethod:: GCXS.var diff --git a/docs/generated/sparse.SparseArray.asformat.rst b/docs/generated/sparse.SparseArray.asformat.rst deleted file mode 100644 index 7c88fdc6..00000000 --- a/docs/generated/sparse.SparseArray.asformat.rst +++ /dev/null @@ -1,6 +0,0 @@ -SparseArray.asformat -==================== - -.. currentmodule:: sparse - -.. automethod:: SparseArray.asformat diff --git a/docs/generated/sparse.SparseArray.density.rst b/docs/generated/sparse.SparseArray.density.rst deleted file mode 100644 index d83f4c57..00000000 --- a/docs/generated/sparse.SparseArray.density.rst +++ /dev/null @@ -1,6 +0,0 @@ -SparseArray\.density -==================== - -.. currentmodule:: sparse - -.. autoattribute:: SparseArray.density diff --git a/docs/generated/sparse.SparseArray.ndim.rst b/docs/generated/sparse.SparseArray.ndim.rst deleted file mode 100644 index 4bddbc11..00000000 --- a/docs/generated/sparse.SparseArray.ndim.rst +++ /dev/null @@ -1,6 +0,0 @@ -SparseArray\.ndim -================= - -.. currentmodule:: sparse - -.. autoattribute:: SparseArray.ndim diff --git a/docs/generated/sparse.SparseArray.nnz.rst b/docs/generated/sparse.SparseArray.nnz.rst deleted file mode 100644 index 370fdafd..00000000 --- a/docs/generated/sparse.SparseArray.nnz.rst +++ /dev/null @@ -1,6 +0,0 @@ -SparseArray\.nnz -================ - -.. currentmodule:: sparse - -.. autoattribute:: SparseArray.nnz diff --git a/docs/generated/sparse.SparseArray.rst b/docs/generated/sparse.SparseArray.rst deleted file mode 100644 index c2b44242..00000000 --- a/docs/generated/sparse.SparseArray.rst +++ /dev/null @@ -1,22 +0,0 @@ -SparseArray -=========== - -.. currentmodule:: sparse - -.. autoclass:: SparseArray - - .. rubric:: Attributes - .. autosummary:: - :toctree: - - SparseArray.density - SparseArray.ndim - SparseArray.nnz - SparseArray.size - - .. rubric:: Methods - .. autosummary:: - :toctree: - - SparseArray.asformat - SparseArray.todense diff --git a/docs/generated/sparse.SparseArray.size.rst b/docs/generated/sparse.SparseArray.size.rst deleted file mode 100644 index dab6f298..00000000 --- a/docs/generated/sparse.SparseArray.size.rst +++ /dev/null @@ -1,6 +0,0 @@ -SparseArray\.size -================= - -.. currentmodule:: sparse - -.. autoattribute:: SparseArray.size diff --git a/docs/generated/sparse.SparseArray.todense.rst b/docs/generated/sparse.SparseArray.todense.rst deleted file mode 100644 index fb910571..00000000 --- a/docs/generated/sparse.SparseArray.todense.rst +++ /dev/null @@ -1,6 +0,0 @@ -SparseArray.todense -=================== - -.. currentmodule:: sparse - -.. automethod:: SparseArray.todense diff --git a/docs/generated/sparse.abs.rst b/docs/generated/sparse.abs.rst deleted file mode 100644 index aac8866d..00000000 --- a/docs/generated/sparse.abs.rst +++ /dev/null @@ -1,6 +0,0 @@ -abs -=== - -.. currentmodule:: sparse - -.. autofunction:: abs diff --git a/docs/generated/sparse.all.rst b/docs/generated/sparse.all.rst deleted file mode 100644 index 7f64e912..00000000 --- a/docs/generated/sparse.all.rst +++ /dev/null @@ -1,6 +0,0 @@ -all -=== - -.. currentmodule:: sparse - -.. autofunction:: all diff --git a/docs/generated/sparse.any.rst b/docs/generated/sparse.any.rst deleted file mode 100644 index ae978188..00000000 --- a/docs/generated/sparse.any.rst +++ /dev/null @@ -1,6 +0,0 @@ -any -=== - -.. currentmodule:: sparse - -.. autofunction:: any diff --git a/docs/generated/sparse.argmax.rst b/docs/generated/sparse.argmax.rst deleted file mode 100644 index 49cd8381..00000000 --- a/docs/generated/sparse.argmax.rst +++ /dev/null @@ -1,6 +0,0 @@ -argmax -====== - -.. currentmodule:: sparse - -.. autofunction:: argmax diff --git a/docs/generated/sparse.argmin.rst b/docs/generated/sparse.argmin.rst deleted file mode 100644 index 55ab0c88..00000000 --- a/docs/generated/sparse.argmin.rst +++ /dev/null @@ -1,6 +0,0 @@ -argmin -====== - -.. currentmodule:: sparse - -.. autofunction:: argmin diff --git a/docs/generated/sparse.argwhere.rst b/docs/generated/sparse.argwhere.rst deleted file mode 100644 index d6e32484..00000000 --- a/docs/generated/sparse.argwhere.rst +++ /dev/null @@ -1,6 +0,0 @@ -argwhere -======== - -.. currentmodule:: sparse - -.. autofunction:: argwhere diff --git a/docs/generated/sparse.asCOO.rst b/docs/generated/sparse.asCOO.rst deleted file mode 100644 index 087103d2..00000000 --- a/docs/generated/sparse.asCOO.rst +++ /dev/null @@ -1,6 +0,0 @@ -asCOO -===== - -.. currentmodule:: sparse - -.. autofunction:: asCOO diff --git a/docs/generated/sparse.as_coo.rst b/docs/generated/sparse.as_coo.rst deleted file mode 100644 index 9772d91b..00000000 --- a/docs/generated/sparse.as_coo.rst +++ /dev/null @@ -1,6 +0,0 @@ -as\_coo -======= - -.. currentmodule:: sparse - -.. autofunction:: as_coo diff --git a/docs/generated/sparse.asarray.rst b/docs/generated/sparse.asarray.rst deleted file mode 100644 index 21da9354..00000000 --- a/docs/generated/sparse.asarray.rst +++ /dev/null @@ -1,6 +0,0 @@ -asarray -======= - -.. currentmodule:: sparse - -.. autofunction:: asarray diff --git a/docs/generated/sparse.asnumpy.rst b/docs/generated/sparse.asnumpy.rst deleted file mode 100644 index 8a9f3042..00000000 --- a/docs/generated/sparse.asnumpy.rst +++ /dev/null @@ -1,6 +0,0 @@ -asnumpy -======= - -.. currentmodule:: sparse - -.. autofunction:: asnumpy diff --git a/docs/generated/sparse.astype.rst b/docs/generated/sparse.astype.rst deleted file mode 100644 index 3e272244..00000000 --- a/docs/generated/sparse.astype.rst +++ /dev/null @@ -1,6 +0,0 @@ -astype -====== - -.. currentmodule:: sparse - -.. autofunction:: astype diff --git a/docs/generated/sparse.broadcast_arrays.rst b/docs/generated/sparse.broadcast_arrays.rst deleted file mode 100644 index 0bc6ffe6..00000000 --- a/docs/generated/sparse.broadcast_arrays.rst +++ /dev/null @@ -1,6 +0,0 @@ -broadcast\_arrays -================= - -.. currentmodule:: sparse - -.. autofunction:: broadcast_arrays diff --git a/docs/generated/sparse.broadcast_to.rst b/docs/generated/sparse.broadcast_to.rst deleted file mode 100644 index 1dd3b94c..00000000 --- a/docs/generated/sparse.broadcast_to.rst +++ /dev/null @@ -1,6 +0,0 @@ -broadcast\_to -============= - -.. currentmodule:: sparse - -.. autofunction:: broadcast_to diff --git a/docs/generated/sparse.clip.rst b/docs/generated/sparse.clip.rst deleted file mode 100644 index b47d0759..00000000 --- a/docs/generated/sparse.clip.rst +++ /dev/null @@ -1,6 +0,0 @@ -clip -==== - -.. currentmodule:: sparse - -.. autofunction:: clip diff --git a/docs/generated/sparse.concat.rst b/docs/generated/sparse.concat.rst deleted file mode 100644 index 54d2a6dc..00000000 --- a/docs/generated/sparse.concat.rst +++ /dev/null @@ -1,6 +0,0 @@ -concat -====== - -.. currentmodule:: sparse - -.. autofunction:: concat diff --git a/docs/generated/sparse.concatenate.rst b/docs/generated/sparse.concatenate.rst deleted file mode 100644 index ac525ef5..00000000 --- a/docs/generated/sparse.concatenate.rst +++ /dev/null @@ -1,6 +0,0 @@ -concatenate -=========== - -.. currentmodule:: sparse - -.. autofunction:: concatenate diff --git a/docs/generated/sparse.diagonal.rst b/docs/generated/sparse.diagonal.rst deleted file mode 100644 index ca154195..00000000 --- a/docs/generated/sparse.diagonal.rst +++ /dev/null @@ -1,6 +0,0 @@ -diagonal -============= - -.. currentmodule:: sparse - -.. autofunction:: diagonal diff --git a/docs/generated/sparse.diagonalize.rst b/docs/generated/sparse.diagonalize.rst deleted file mode 100644 index fcfc9cf1..00000000 --- a/docs/generated/sparse.diagonalize.rst +++ /dev/null @@ -1,6 +0,0 @@ -diagonalize -=========== - -.. currentmodule:: sparse - -.. autofunction:: diagonalize diff --git a/docs/generated/sparse.dot.rst b/docs/generated/sparse.dot.rst deleted file mode 100644 index ba058914..00000000 --- a/docs/generated/sparse.dot.rst +++ /dev/null @@ -1,6 +0,0 @@ -dot -=== - -.. currentmodule:: sparse - -.. autofunction:: dot diff --git a/docs/generated/sparse.einsum.rst b/docs/generated/sparse.einsum.rst deleted file mode 100644 index e8006649..00000000 --- a/docs/generated/sparse.einsum.rst +++ /dev/null @@ -1,6 +0,0 @@ -einsum -====== - -.. currentmodule:: sparse - -.. autofunction:: einsum diff --git a/docs/generated/sparse.elemwise.rst b/docs/generated/sparse.elemwise.rst deleted file mode 100644 index 970ae49e..00000000 --- a/docs/generated/sparse.elemwise.rst +++ /dev/null @@ -1,6 +0,0 @@ -elemwise -======== - -.. currentmodule:: sparse - -.. autofunction:: elemwise diff --git a/docs/generated/sparse.empty.rst b/docs/generated/sparse.empty.rst deleted file mode 100644 index 390fadf4..00000000 --- a/docs/generated/sparse.empty.rst +++ /dev/null @@ -1,6 +0,0 @@ -empty -===== - -.. currentmodule:: sparse - -.. autofunction:: empty diff --git a/docs/generated/sparse.empty_like.rst b/docs/generated/sparse.empty_like.rst deleted file mode 100644 index 8c768058..00000000 --- a/docs/generated/sparse.empty_like.rst +++ /dev/null @@ -1,6 +0,0 @@ -empty\_like -=========== - -.. currentmodule:: sparse - -.. autofunction:: empty_like diff --git a/docs/generated/sparse.equal.rst b/docs/generated/sparse.equal.rst deleted file mode 100644 index 8609cfb5..00000000 --- a/docs/generated/sparse.equal.rst +++ /dev/null @@ -1,6 +0,0 @@ -equal -===== - -.. currentmodule:: sparse - -.. autofunction:: equal diff --git a/docs/generated/sparse.expand_dims.rst b/docs/generated/sparse.expand_dims.rst deleted file mode 100644 index 7f918642..00000000 --- a/docs/generated/sparse.expand_dims.rst +++ /dev/null @@ -1,6 +0,0 @@ -expand\_dims -============ - -.. currentmodule:: sparse - -.. autofunction:: expand_dims diff --git a/docs/generated/sparse.eye.rst b/docs/generated/sparse.eye.rst deleted file mode 100644 index 46db6c99..00000000 --- a/docs/generated/sparse.eye.rst +++ /dev/null @@ -1,6 +0,0 @@ -eye -=== - -.. currentmodule:: sparse - -.. autofunction:: eye diff --git a/docs/generated/sparse.flip.rst b/docs/generated/sparse.flip.rst deleted file mode 100644 index 9c83383e..00000000 --- a/docs/generated/sparse.flip.rst +++ /dev/null @@ -1,6 +0,0 @@ -flip -==== - -.. currentmodule:: sparse - -.. autofunction:: flip diff --git a/docs/generated/sparse.full.rst b/docs/generated/sparse.full.rst deleted file mode 100644 index ae55bcff..00000000 --- a/docs/generated/sparse.full.rst +++ /dev/null @@ -1,6 +0,0 @@ -full -==== - -.. currentmodule:: sparse - -.. autofunction:: full diff --git a/docs/generated/sparse.full_like.rst b/docs/generated/sparse.full_like.rst deleted file mode 100644 index 788e4ec4..00000000 --- a/docs/generated/sparse.full_like.rst +++ /dev/null @@ -1,6 +0,0 @@ -full_like -========= - -.. currentmodule:: sparse - -.. autofunction:: full_like diff --git a/docs/generated/sparse.isinf.rst b/docs/generated/sparse.isinf.rst deleted file mode 100644 index a7b6f512..00000000 --- a/docs/generated/sparse.isinf.rst +++ /dev/null @@ -1,6 +0,0 @@ -isinf -===== - -.. currentmodule:: sparse - -.. autofunction:: isinf diff --git a/docs/generated/sparse.isnan.rst b/docs/generated/sparse.isnan.rst deleted file mode 100644 index 256286aa..00000000 --- a/docs/generated/sparse.isnan.rst +++ /dev/null @@ -1,6 +0,0 @@ -isnan -===== - -.. currentmodule:: sparse - -.. autofunction:: isnan diff --git a/docs/generated/sparse.isneginf.rst b/docs/generated/sparse.isneginf.rst deleted file mode 100644 index 5961e87d..00000000 --- a/docs/generated/sparse.isneginf.rst +++ /dev/null @@ -1,6 +0,0 @@ -isneginf -======== - -.. currentmodule:: sparse - -.. autofunction:: isneginf diff --git a/docs/generated/sparse.isposinf.rst b/docs/generated/sparse.isposinf.rst deleted file mode 100644 index 2497ec5b..00000000 --- a/docs/generated/sparse.isposinf.rst +++ /dev/null @@ -1,6 +0,0 @@ -isposinf -======== - -.. currentmodule:: sparse - -.. autofunction:: isposinf diff --git a/docs/generated/sparse.kron.rst b/docs/generated/sparse.kron.rst deleted file mode 100644 index 85771083..00000000 --- a/docs/generated/sparse.kron.rst +++ /dev/null @@ -1,6 +0,0 @@ -kron -==== - -.. currentmodule:: sparse - -.. autofunction:: kron diff --git a/docs/generated/sparse.load_npz.rst b/docs/generated/sparse.load_npz.rst deleted file mode 100644 index 0b829750..00000000 --- a/docs/generated/sparse.load_npz.rst +++ /dev/null @@ -1,6 +0,0 @@ -load\_npz -========= - -.. currentmodule:: sparse - -.. autofunction:: load_npz diff --git a/docs/generated/sparse.matmul.rst b/docs/generated/sparse.matmul.rst deleted file mode 100644 index 2985296a..00000000 --- a/docs/generated/sparse.matmul.rst +++ /dev/null @@ -1,6 +0,0 @@ -matmul -====== - -.. currentmodule:: sparse - -.. autofunction:: matmul diff --git a/docs/generated/sparse.matrix_transpose.rst b/docs/generated/sparse.matrix_transpose.rst deleted file mode 100644 index 755521dd..00000000 --- a/docs/generated/sparse.matrix_transpose.rst +++ /dev/null @@ -1,6 +0,0 @@ -matrix\_transpose -================= - -.. currentmodule:: sparse - -.. autofunction:: matrix_transpose diff --git a/docs/generated/sparse.max.rst b/docs/generated/sparse.max.rst deleted file mode 100644 index 6007fb8e..00000000 --- a/docs/generated/sparse.max.rst +++ /dev/null @@ -1,6 +0,0 @@ -max -=== - -.. currentmodule:: sparse - -.. autofunction:: max diff --git a/docs/generated/sparse.mean.rst b/docs/generated/sparse.mean.rst deleted file mode 100644 index 41405ca8..00000000 --- a/docs/generated/sparse.mean.rst +++ /dev/null @@ -1,6 +0,0 @@ -mean -==== - -.. currentmodule:: sparse - -.. autofunction:: mean diff --git a/docs/generated/sparse.min.rst b/docs/generated/sparse.min.rst deleted file mode 100644 index 98cc8dd5..00000000 --- a/docs/generated/sparse.min.rst +++ /dev/null @@ -1,6 +0,0 @@ -min -=== - -.. currentmodule:: sparse - -.. autofunction:: min diff --git a/docs/generated/sparse.moveaxis.rst b/docs/generated/sparse.moveaxis.rst deleted file mode 100644 index 8d8f85a1..00000000 --- a/docs/generated/sparse.moveaxis.rst +++ /dev/null @@ -1,6 +0,0 @@ -moveaxis -======== - -.. currentmodule:: sparse - -.. autofunction:: moveaxis diff --git a/docs/generated/sparse.nanmax.rst b/docs/generated/sparse.nanmax.rst deleted file mode 100644 index 7209a3ab..00000000 --- a/docs/generated/sparse.nanmax.rst +++ /dev/null @@ -1,6 +0,0 @@ -nanmax -====== - -.. currentmodule:: sparse - -.. autofunction:: nanmax diff --git a/docs/generated/sparse.nanmean.rst b/docs/generated/sparse.nanmean.rst deleted file mode 100644 index 22aa3da8..00000000 --- a/docs/generated/sparse.nanmean.rst +++ /dev/null @@ -1,6 +0,0 @@ -nanmean -======= - -.. currentmodule:: sparse - -.. autofunction:: nanmean diff --git a/docs/generated/sparse.nanmin.rst b/docs/generated/sparse.nanmin.rst deleted file mode 100644 index 741705c3..00000000 --- a/docs/generated/sparse.nanmin.rst +++ /dev/null @@ -1,6 +0,0 @@ -nanmin -====== - -.. currentmodule:: sparse - -.. autofunction:: nanmin diff --git a/docs/generated/sparse.nanprod.rst b/docs/generated/sparse.nanprod.rst deleted file mode 100644 index 96142b07..00000000 --- a/docs/generated/sparse.nanprod.rst +++ /dev/null @@ -1,6 +0,0 @@ -nanprod -======= - -.. currentmodule:: sparse - -.. autofunction:: nanprod diff --git a/docs/generated/sparse.nanreduce.rst b/docs/generated/sparse.nanreduce.rst deleted file mode 100644 index fd710e9a..00000000 --- a/docs/generated/sparse.nanreduce.rst +++ /dev/null @@ -1,6 +0,0 @@ -nanreduce -========= - -.. currentmodule:: sparse - -.. autofunction:: nanreduce diff --git a/docs/generated/sparse.nansum.rst b/docs/generated/sparse.nansum.rst deleted file mode 100644 index 064faa9c..00000000 --- a/docs/generated/sparse.nansum.rst +++ /dev/null @@ -1,6 +0,0 @@ -nansum -====== - -.. currentmodule:: sparse - -.. autofunction:: nansum diff --git a/docs/generated/sparse.nonzero.rst b/docs/generated/sparse.nonzero.rst deleted file mode 100644 index a9717e3d..00000000 --- a/docs/generated/sparse.nonzero.rst +++ /dev/null @@ -1,6 +0,0 @@ -nonzero -======= - -.. currentmodule:: sparse - -.. autofunction:: nonzero diff --git a/docs/generated/sparse.ones.rst b/docs/generated/sparse.ones.rst deleted file mode 100644 index b57e7845..00000000 --- a/docs/generated/sparse.ones.rst +++ /dev/null @@ -1,6 +0,0 @@ -ones -==== - -.. currentmodule:: sparse - -.. autofunction:: ones diff --git a/docs/generated/sparse.ones_like.rst b/docs/generated/sparse.ones_like.rst deleted file mode 100644 index 7e1cb0bd..00000000 --- a/docs/generated/sparse.ones_like.rst +++ /dev/null @@ -1,6 +0,0 @@ -ones_like -========= - -.. currentmodule:: sparse - -.. autofunction:: ones_like diff --git a/docs/generated/sparse.outer.rst b/docs/generated/sparse.outer.rst deleted file mode 100644 index 216d706a..00000000 --- a/docs/generated/sparse.outer.rst +++ /dev/null @@ -1,6 +0,0 @@ -outer -===== - -.. currentmodule:: sparse - -.. autofunction:: outer diff --git a/docs/generated/sparse.pad.rst b/docs/generated/sparse.pad.rst deleted file mode 100644 index bc898704..00000000 --- a/docs/generated/sparse.pad.rst +++ /dev/null @@ -1,6 +0,0 @@ -pad -=== - -.. currentmodule:: sparse - -.. autofunction:: pad diff --git a/docs/generated/sparse.permute_dims.rst b/docs/generated/sparse.permute_dims.rst deleted file mode 100644 index cb1eefb4..00000000 --- a/docs/generated/sparse.permute_dims.rst +++ /dev/null @@ -1,6 +0,0 @@ -permute\_dims -============= - -.. currentmodule:: sparse - -.. autofunction:: permute_dims diff --git a/docs/generated/sparse.prod.rst b/docs/generated/sparse.prod.rst deleted file mode 100644 index d562dc69..00000000 --- a/docs/generated/sparse.prod.rst +++ /dev/null @@ -1,6 +0,0 @@ -prod -==== - -.. currentmodule:: sparse - -.. autofunction:: prod diff --git a/docs/generated/sparse.random.rst b/docs/generated/sparse.random.rst deleted file mode 100644 index 7b53d1f6..00000000 --- a/docs/generated/sparse.random.rst +++ /dev/null @@ -1,6 +0,0 @@ -random -====== - -.. currentmodule:: sparse - -.. autofunction:: random diff --git a/docs/generated/sparse.reshape.rst b/docs/generated/sparse.reshape.rst deleted file mode 100644 index 8426bda1..00000000 --- a/docs/generated/sparse.reshape.rst +++ /dev/null @@ -1,6 +0,0 @@ -reshape -======= - -.. currentmodule:: sparse - -.. autofunction:: reshape diff --git a/docs/generated/sparse.result_type.rst b/docs/generated/sparse.result_type.rst deleted file mode 100644 index b7dcbf4f..00000000 --- a/docs/generated/sparse.result_type.rst +++ /dev/null @@ -1,6 +0,0 @@ -result_type -=========== - -.. currentmodule:: sparse - -.. autofunction:: result_type diff --git a/docs/generated/sparse.roll.rst b/docs/generated/sparse.roll.rst deleted file mode 100644 index 86374c17..00000000 --- a/docs/generated/sparse.roll.rst +++ /dev/null @@ -1,6 +0,0 @@ -roll -==== - -.. currentmodule:: sparse - -.. autofunction:: roll diff --git a/docs/generated/sparse.round.rst b/docs/generated/sparse.round.rst deleted file mode 100644 index 17f4e39b..00000000 --- a/docs/generated/sparse.round.rst +++ /dev/null @@ -1,6 +0,0 @@ -round -===== - -.. currentmodule:: sparse - -.. autofunction:: round diff --git a/docs/generated/sparse.rst b/docs/generated/sparse.rst deleted file mode 100644 index 9592cc24..00000000 --- a/docs/generated/sparse.rst +++ /dev/null @@ -1,177 +0,0 @@ -API -=== - -.. rubric:: Description -.. automodule:: sparse -.. currentmodule:: sparse - - -.. rubric:: Classes -.. autosummary:: - :toctree: - - COO - - DOK - - GCXS - - SparseArray - -.. rubric:: Functions -.. autosummary:: - :toctree: - - abs - - all - - any - - argmax - - argmin - - argwhere - - asCOO - - as_coo - - asarray - - asnumpy - - astype - - broadcast_arrays - - broadcast_to - - clip - - concat - - concatenate - - diagonal - - diagonalize - - dot - - einsum - - elemwise - - empty - - empty_like - - equal - - expand_dims - - eye - - flip - - full - - full_like - - isinf - - isnan - - isneginf - - isposinf - - kron - - load_npz - - matmul - - matrix_transpose - - max - - mean - - min - - moveaxis - - moveaxis - - nanmax - - nanmean - - nanmin - - nanprod - - nanreduce - - nansum - - nonzero - - ones - - ones_like - - outer - - pad - - permute_dims - - prod - - random - - reshape - - result_type - - roll - - round - - save_npz - - sort - - squeeze - - stack - - std - - sum - - take - - tensordot - - tril - - triu - - unique_counts - - unique_values - - var - - vecdot - - where - - zeros - - zeros_like diff --git a/docs/generated/sparse.save_npz.rst b/docs/generated/sparse.save_npz.rst deleted file mode 100644 index 9117386b..00000000 --- a/docs/generated/sparse.save_npz.rst +++ /dev/null @@ -1,6 +0,0 @@ -save\_npz -========= - -.. currentmodule:: sparse - -.. autofunction:: save_npz diff --git a/docs/generated/sparse.sort.rst b/docs/generated/sparse.sort.rst deleted file mode 100644 index cf1e71a0..00000000 --- a/docs/generated/sparse.sort.rst +++ /dev/null @@ -1,6 +0,0 @@ -sort -==== - -.. currentmodule:: sparse - -.. autofunction:: sort diff --git a/docs/generated/sparse.squeeze.rst b/docs/generated/sparse.squeeze.rst deleted file mode 100644 index 92ebf2e5..00000000 --- a/docs/generated/sparse.squeeze.rst +++ /dev/null @@ -1,6 +0,0 @@ -squeeze -======= - -.. currentmodule:: sparse - -.. autofunction:: squeeze diff --git a/docs/generated/sparse.stack.rst b/docs/generated/sparse.stack.rst deleted file mode 100644 index b924785c..00000000 --- a/docs/generated/sparse.stack.rst +++ /dev/null @@ -1,6 +0,0 @@ -stack -===== - -.. currentmodule:: sparse - -.. autofunction:: stack diff --git a/docs/generated/sparse.std.rst b/docs/generated/sparse.std.rst deleted file mode 100644 index edeb4124..00000000 --- a/docs/generated/sparse.std.rst +++ /dev/null @@ -1,6 +0,0 @@ -std -=== - -.. currentmodule:: sparse - -.. autofunction:: std diff --git a/docs/generated/sparse.sum.rst b/docs/generated/sparse.sum.rst deleted file mode 100644 index 71b5154c..00000000 --- a/docs/generated/sparse.sum.rst +++ /dev/null @@ -1,6 +0,0 @@ -sum -=== - -.. currentmodule:: sparse - -.. autofunction:: sum diff --git a/docs/generated/sparse.take.rst b/docs/generated/sparse.take.rst deleted file mode 100644 index 42f5ac85..00000000 --- a/docs/generated/sparse.take.rst +++ /dev/null @@ -1,6 +0,0 @@ -take -==== - -.. currentmodule:: sparse - -.. autofunction:: take diff --git a/docs/generated/sparse.tensordot.rst b/docs/generated/sparse.tensordot.rst deleted file mode 100644 index 252d1868..00000000 --- a/docs/generated/sparse.tensordot.rst +++ /dev/null @@ -1,6 +0,0 @@ -tensordot -========= - -.. currentmodule:: sparse - -.. autofunction:: tensordot diff --git a/docs/generated/sparse.tril.rst b/docs/generated/sparse.tril.rst deleted file mode 100644 index 4fef3b9d..00000000 --- a/docs/generated/sparse.tril.rst +++ /dev/null @@ -1,6 +0,0 @@ -tril -==== - -.. currentmodule:: sparse - -.. autofunction:: tril diff --git a/docs/generated/sparse.triu.rst b/docs/generated/sparse.triu.rst deleted file mode 100644 index 283e633f..00000000 --- a/docs/generated/sparse.triu.rst +++ /dev/null @@ -1,6 +0,0 @@ -triu -==== - -.. currentmodule:: sparse - -.. autofunction:: triu diff --git a/docs/generated/sparse.unique_counts.rst b/docs/generated/sparse.unique_counts.rst deleted file mode 100644 index 621cbfe9..00000000 --- a/docs/generated/sparse.unique_counts.rst +++ /dev/null @@ -1,6 +0,0 @@ -unique\_counts -============== - -.. currentmodule:: sparse - -.. autofunction:: unique_counts diff --git a/docs/generated/sparse.unique_values.rst b/docs/generated/sparse.unique_values.rst deleted file mode 100644 index 415c55bf..00000000 --- a/docs/generated/sparse.unique_values.rst +++ /dev/null @@ -1,6 +0,0 @@ -unique\_values -============== - -.. currentmodule:: sparse - -.. autofunction:: unique_values diff --git a/docs/generated/sparse.var.rst b/docs/generated/sparse.var.rst deleted file mode 100644 index f8badb51..00000000 --- a/docs/generated/sparse.var.rst +++ /dev/null @@ -1,6 +0,0 @@ -var -=== - -.. currentmodule:: sparse - -.. autofunction:: var diff --git a/docs/generated/sparse.vecdot.rst b/docs/generated/sparse.vecdot.rst deleted file mode 100644 index 995d8108..00000000 --- a/docs/generated/sparse.vecdot.rst +++ /dev/null @@ -1,6 +0,0 @@ -vecdot -====== - -.. currentmodule:: sparse - -.. autofunction:: vecdot diff --git a/docs/generated/sparse.where.rst b/docs/generated/sparse.where.rst deleted file mode 100644 index 2d3f2595..00000000 --- a/docs/generated/sparse.where.rst +++ /dev/null @@ -1,6 +0,0 @@ -where -===== - -.. currentmodule:: sparse - -.. autofunction:: where diff --git a/docs/generated/sparse.zeros.rst b/docs/generated/sparse.zeros.rst deleted file mode 100644 index c5e6a622..00000000 --- a/docs/generated/sparse.zeros.rst +++ /dev/null @@ -1,6 +0,0 @@ -zeros -===== - -.. currentmodule:: sparse - -.. autofunction:: zeros diff --git a/docs/generated/sparse.zeros_like.rst b/docs/generated/sparse.zeros_like.rst deleted file mode 100644 index 57ef9c2d..00000000 --- a/docs/generated/sparse.zeros_like.rst +++ /dev/null @@ -1,6 +0,0 @@ -zeros_like -========== - -.. currentmodule:: sparse - -.. autofunction:: zeros_like diff --git a/docs/how-to-guides.md b/docs/how-to-guides.md new file mode 100644 index 00000000..3347c537 --- /dev/null +++ b/docs/how-to-guides.md @@ -0,0 +1 @@ +# How to guides diff --git a/docs/index.md b/docs/index.md index fcead3ce..f77853fb 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,97 +1,45 @@ -# Sparse +--- +hide: + - navigation + - toc +--- -This implements sparse arrays of arbitrary dimension on top of +# Sparse +This project implements sparse arrays of arbitrary dimension on top of [numpy][] and [`scipy.sparse`][]. It generalizes the [`scipy.sparse.coo_matrix`][] and [`scipy.sparse.dok_matrix`][] layouts, but extends beyond just rows and columns to an arbitrary number of dimensions. +
+
+![Sparse](./assets/images/logo.png){width=20%, align=left} +
-Additionally, this project maintains compatibility with the -[`numpy.ndarray`][] interface rather than the -[`numpy.matrix`][] interface used in -[`scipy.sparse`][] - -These differences make this project useful in certain situations where -scipy.sparse matrices are not well suited, but it should not be -considered a full replacement. The data structures in pydata/sparse -complement and can be used in conjunction with the fast linear algebra -routines inside [`scipy.sparse`][]. A format conversion or copy may be -required. - -## Motivation - -Sparse arrays, or arrays that are mostly empty or filled with zeros, are -common in many scientific applications. To save space we often avoid -storing these arrays in traditional dense formats, and instead choose -different data structures. Our choice of data structure can -significantly affect our storage and computational costs when working -with these arrays. - -## Design - -The main data structure in this library follows the [Coordinate List -(COO)](https://en.wikipedia.org/wiki/Sparse_matrix#Coordinate_list_(COO)) -layout for sparse matrices, but extends it to multiple dimensions. - -The COO layout, which stores the row index, column index, and value of -every element: - - -| row | col | data | -|-----|-----|------| -| 0 | 0 | 10 | -| 0 | 2 | 13 | -| 1 | 3 | 9 | -| 3 | 8 | 21 | - -It is straightforward to extend the COO layout to an arbitrary number of -dimensions: - + ![Sparse](./assets/images/conference-room-icon.png){width=10%, align=left} + Introduction + { .card } -| dim1 | dim2 | dim3 | \... | data | -|------|------|------|------|------| -| 0 | 0 | 0 | . | 10 | -| 0 | 0 | 3 | . | 13 | -| 0 | 2 | 2 | . | 9 | -| 3 | 1 | 4 | . | 21 | + ![Sparse](./assets/images/install-software-download-icon.png){width=10%, align=left} + Install + { .card } -This makes it easy to *store* a multidimensional sparse array, but we -still need to reimplement all of the array operations like transpose, -reshape, slicing, tensordot, reductions, etc., which can be challenging -in general. + ![Sparse](./assets/images/open-book-icon.png){width=10%, align=left} + Tutorials + { .card } -This library also includes several other data structures. Similar to -COO, the [Dictionary of Keys -(DOK)](https://en.wikipedia.org/wiki/Sparse_matrix#Dictionary_of_keys_(DOK)) -format for sparse matrices generalizes well to an arbitrary number of -dimensions. DOK is well-suited for writing and mutating. Most other -operations are not supported for DOK. A common workflow may involve -writing an array with DOK and then converting to another format for -other operations. + ![Sparse](./assets/images/check-list-icon.png){width=10%, align=left} + How-to guides + { .card } -The [Compressed Sparse Row/Column -(CSR/CSC)](https://en.wikipedia.org/wiki/Sparse_matrix#Compressed_sparse_column_(CSC_or_CCS)) -formats are widely used in scientific computing are now supported by -pydata/sparse. The CSR/CSC formats excel at compression and mathematical -operations. While these formats are restricted to two dimensions, -pydata/sparse supports the GCXS sparse array format, based on [GCRS/GCCS -from](https://ieeexplore.ieee.org/abstract/document/7237032/similar#similar) -which generalizes CSR/CSC to n-dimensional arrays. Like their -two-dimensional CSR/CSC counterparts, GCXS arrays compress well. Whereas -the storage cost of COO depends heavily on the number of dimensions of -the array, the number of dimensions only minimally affects the storage -cost of GCXS arrays, which results in favorable compression ratios -across many use cases. + ![Sparse](./assets/images/repair-fix-repairing-icon.png){width=10%, align=left} + API + { .card } -Together these formats cover a wide array of applications of sparsity. -Additionally, with each format complying with the -[`numpy.ndarray`][] interface and following -the appropriate dispatching protocols, pydata/sparse arrays can interact -with other array libraries and seamlessly take part in -pydata-ecosystem-based workflows. -## LICENSE + ![Sparse](./assets/images/group-discussion-icon.png){width=10%, align=left} + Contributing + { .card } -This library is licensed under BSD-3. +
diff --git a/docs/introduction.md b/docs/introduction.md new file mode 100644 index 00000000..fcead3ce --- /dev/null +++ b/docs/introduction.md @@ -0,0 +1,97 @@ +# Sparse + +This implements sparse arrays of arbitrary dimension on top of +[numpy][] and +[`scipy.sparse`][]. It generalizes the +[`scipy.sparse.coo_matrix`][] and +[`scipy.sparse.dok_matrix`][] layouts, but +extends beyond just rows and columns to an arbitrary number of +dimensions. + +Additionally, this project maintains compatibility with the +[`numpy.ndarray`][] interface rather than the +[`numpy.matrix`][] interface used in +[`scipy.sparse`][] + +These differences make this project useful in certain situations where +scipy.sparse matrices are not well suited, but it should not be +considered a full replacement. The data structures in pydata/sparse +complement and can be used in conjunction with the fast linear algebra +routines inside [`scipy.sparse`][]. A format conversion or copy may be +required. + +## Motivation + +Sparse arrays, or arrays that are mostly empty or filled with zeros, are +common in many scientific applications. To save space we often avoid +storing these arrays in traditional dense formats, and instead choose +different data structures. Our choice of data structure can +significantly affect our storage and computational costs when working +with these arrays. + +## Design + +The main data structure in this library follows the [Coordinate List +(COO)](https://en.wikipedia.org/wiki/Sparse_matrix#Coordinate_list_(COO)) +layout for sparse matrices, but extends it to multiple dimensions. + +The COO layout, which stores the row index, column index, and value of +every element: + + +| row | col | data | +|-----|-----|------| +| 0 | 0 | 10 | +| 0 | 2 | 13 | +| 1 | 3 | 9 | +| 3 | 8 | 21 | + +It is straightforward to extend the COO layout to an arbitrary number of +dimensions: + + +| dim1 | dim2 | dim3 | \... | data | +|------|------|------|------|------| +| 0 | 0 | 0 | . | 10 | +| 0 | 0 | 3 | . | 13 | +| 0 | 2 | 2 | . | 9 | +| 3 | 1 | 4 | . | 21 | + +This makes it easy to *store* a multidimensional sparse array, but we +still need to reimplement all of the array operations like transpose, +reshape, slicing, tensordot, reductions, etc., which can be challenging +in general. + +This library also includes several other data structures. Similar to +COO, the [Dictionary of Keys +(DOK)](https://en.wikipedia.org/wiki/Sparse_matrix#Dictionary_of_keys_(DOK)) +format for sparse matrices generalizes well to an arbitrary number of +dimensions. DOK is well-suited for writing and mutating. Most other +operations are not supported for DOK. A common workflow may involve +writing an array with DOK and then converting to another format for +other operations. + +The [Compressed Sparse Row/Column +(CSR/CSC)](https://en.wikipedia.org/wiki/Sparse_matrix#Compressed_sparse_column_(CSC_or_CCS)) +formats are widely used in scientific computing are now supported by +pydata/sparse. The CSR/CSC formats excel at compression and mathematical +operations. While these formats are restricted to two dimensions, +pydata/sparse supports the GCXS sparse array format, based on [GCRS/GCCS +from](https://ieeexplore.ieee.org/abstract/document/7237032/similar#similar) +which generalizes CSR/CSC to n-dimensional arrays. Like their +two-dimensional CSR/CSC counterparts, GCXS arrays compress well. Whereas +the storage cost of COO depends heavily on the number of dimensions of +the array, the number of dimensions only minimally affects the storage +cost of GCXS arrays, which results in favorable compression ratios +across many use cases. + +Together these formats cover a wide array of applications of sparsity. +Additionally, with each format complying with the +[`numpy.ndarray`][] interface and following +the appropriate dispatching protocols, pydata/sparse arrays can interact +with other array libraries and seamlessly take part in +pydata-ecosystem-based workflows. + +## LICENSE + +This library is licensed under BSD-3. diff --git a/mkdocs.yml b/mkdocs.yml index 83b9052a..62c60ac1 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,20 +1,26 @@ site_name: sparse repo_url: https://github.com/pydata/sparse.git edit_uri: edit/main/docs/ +#use_directory_urls: false theme: name: material palette: - primary: black + primary: custom + accent: cyan font: false #avoid Google Fonts to adhere to data privacy regulations logo: assets/images/logo.png favicon: assets/images/logo.svg features: + - navigation.tabs + - navigation.tabs.sticky - navigation.tracking - navigation.instant - navigation.instant.progress - navigation.prune - navigation.footer - navigation.indexes + - navigation.expand + - navigation.top # adds a back-to-top button when user scrolls up - content.code.copy markdown_extensions: @@ -27,7 +33,8 @@ markdown_extensions: toc_depth: 2 - pymdownx.arithmatex: # To display math content with KaTex generic: true - - attr_list # To be able to link to a header on another page + - attr_list # To be able to link to a header on another page, use grids + - md_in_html # Used for grids extra_javascript: - javascripts/katex.js @@ -39,39 +46,54 @@ extra_css: - css/mkdocstrings.css plugins: -- search -- section-index -- autorefs -- gen-files: - scripts: - - scripts/gen_ref_pages.py -- literate-nav -- mkdocstrings: - handlers: - python: - import: - - https://numpy.org/doc/stable/objects.inv - - https://docs.python.org/3/objects.inv - - https://docs.scipy.org/doc/scipy/objects.inv - options: - inherited_members: yes - show_root_members_full_path: false - show_if_no_docstring: true - members_order: source - docstring_style: numpy - show_source: true - filters: ["!^_"] + - search + - section-index + - autorefs + - gen-files: + scripts: + - scripts/gen_ref_pages.py + - literate-nav + - mkdocstrings: + handlers: + python: + import: + - https://numpy.org/doc/stable/objects.inv + - https://docs.python.org/3/objects.inv + - https://docs.scipy.org/doc/scipy/objects.inv + options: + inherited_members: yes + show_root_members_full_path: false + show_if_no_docstring: true + members_order: source + docstring_style: numpy + show_source: true + filters: ["!^_"] + group_by_category: true + show_category_heading: true + + - mkdocs-jupyter: + include_source: True nav: -- index.md -- install.md -- quickstart.md -- construct.md -- operations.md -- API: - - api/* -- roadmap.md -# - completed-tasks.md -- contributing.md -- changelog.md -- conduct.md + - Home: + - index.md + - Introduction: + - introduction.md + - Install: + - install.md + - Tutorials: #examples/sparse_finch.ipynb + - examples.md + - examples/sparse_finch.ipynb + - How to guides: + - how-to-guides.md + - quickstart.md + - construct.md + - operations.md + - API: + - api/* + - Contributing: + - contributing.md + - roadmap.md + - completed-tasks.md + - changelog.md + - conduct.md diff --git a/pyproject.toml b/pyproject.toml index 5630509a..4e83392f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,6 +34,7 @@ docs = [ "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-section-index", + "mkdocs-jupyter", "scipy", ] tests = [ diff --git a/sparse/numba_backend/_coo/core.py b/sparse/numba_backend/_coo/core.py index 91105a1e..0a5baefc 100644 --- a/sparse/numba_backend/_coo/core.py +++ b/sparse/numba_backend/_coo/core.py @@ -486,7 +486,7 @@ def from_iter(cls, x, shape=None, fill_value=None, dtype=None): Examples -------- - You can convert items of the format ``[`sparse.COO`][]. + You can convert items of the format [`sparse.COO`][]. Here, the first part represents the coordinate and the second part represents the value. >>> x = [((0, 0), 1), ((1, 1), 1)] @@ -511,7 +511,7 @@ def from_iter(cls, x, shape=None, fill_value=None, dtype=None): array([[1, 0], [0, 1]]) - You can also pass in a [collections.abc.Iterator][] object. + You can also pass in a [`collections.abc.Iterator`][] object. >>> x = [((0, 0), 1), ((1, 1), 1)].__iter__() >>> s = COO.from_iter(x)