Matfree

Latest version: v0.1.1

Safety actively analyzes 681775 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 4

0.1.1

This release mainly contains improvements to the documentation, including two new tutorials and a few upgrades to the docstrings.

<!-- Release notes generated using configuration in .github/release.yml at main -->


What's Changed
Improvements to the Documentation
* Correct typos and some minor stylistic issues in the README by pnkraemer in https://github.com/pnkraemer/matfree/pull/214
* Write a docstring for tridiag_sym by pnkraemer in https://github.com/pnkraemer/matfree/pull/215
* Enable docstring-tests and write some missing docstrings by pnkraemer in https://github.com/pnkraemer/matfree/pull/216
* Autoformat the example scripts in all docstrings by pnkraemer in https://github.com/pnkraemer/matfree/pull/217
* Implement a tutorial for matrix functions by pnkraemer in https://github.com/pnkraemer/matfree/pull/218
* Configure automatically generated release notes to organize how PRs are displayed by pnkraemer in https://github.com/pnkraemer/matfree/pull/219
* Mention the PR labels (and some other items) in the contribution guide by pnkraemer in https://github.com/pnkraemer/matfree/pull/220


**Full Changelog**: https://github.com/pnkraemer/matfree/compare/v0.1.0...v0.1.1

0.1.0

_This release marks that Matfree is no longer considered experimental._ The API has somewhat converged. Nonetheless, Matfree remains a research project: Anything may change anytime. But from now on, we follow semantic versioning a little more rigorously (Matfree's API policy is discussed in the documentation).

This release is not compatible with previous releases. The difference is that some of the matrix decompositions' output signatures have changed. Some matrix function codes now expect full algorithms to be passed as arguments, not parameters for arguments. The friction with previous codes should be relatively small. Consult the tutorials on how to use the new API.



What's Changed
* Make all decompositions have similar output types by pnkraemer in https://github.com/pnkraemer/matfree/pull/207
* Make integrand_funm_tridiag_sym expect algorithms as inputs so the user can choose (e.g.) a reorthogonalisation mode by pnkraemer in https://github.com/pnkraemer/matfree/pull/210
* Implement dense_funm_product_svd to generalise the code for matrix-functions via bidiagonalisation by pnkraemer in https://github.com/pnkraemer/matfree/pull/211
* Make integrand_funm_product_* expect algorithms as inputs (not algorithm parameters) by pnkraemer in https://github.com/pnkraemer/matfree/pull/212
* Update Matfree's version policy description because v0.1.0 is next by pnkraemer in https://github.com/pnkraemer/matfree/pull/213


**Full Changelog**: https://github.com/pnkraemer/matfree/compare/v0.0.19...v0.1.0

0.0.19

What's Changed
* Autoupdate the pre-commit hook by pnkraemer in https://github.com/pnkraemer/matfree/pull/205
* Implement funm_arnoldi to enable functions of non-structured matrices by pnkraemer in https://github.com/pnkraemer/matfree/pull/206


**Full Changelog**: https://github.com/pnkraemer/matfree/compare/v0.0.18...v0.0.19

0.0.18

What's Changed
* Fix a typo in the bibtex entries by pnkraemer in https://github.com/pnkraemer/matfree/pull/200
* Implement matrix functions by combining matrix decompositions with dense matrix functions by pnkraemer in https://github.com/pnkraemer/matfree/pull/201
* Improve the consistency of bidiag() and tridiag_sym() by pnkraemer in https://github.com/pnkraemer/matfree/pull/202
* Move matvec to estimation instead of algorithm-construction to avoid future code duplication by pnkraemer in https://github.com/pnkraemer/matfree/pull/203
* Add a 'materialize' option to tridiag() and bidiag() to simplify downstream applications by pnkraemer in https://github.com/pnkraemer/matfree/pull/204


**Full Changelog**: https://github.com/pnkraemer/matfree/compare/v0.0.17...v0.0.18

0.0.17

This release is a slightly bigger deal than the previous ones because it contains the algorithms from the (just published!)

> Gradients of functions of large matrices. Nicholas Krämer, Pablo Moreno-Munoz, Hrittik Roy, Søren Hauberg. Preprint on arXiv:2405.17277. 2024.

[Here is a link to the preprint](https://arxiv.org/abs/2405.17277).

To be precise, with release v0.0.17, Matfree will provide efficient gradients of Lanczos and Arnoldi iterations, which makes much of matrix-free linear algebra reverse-mode differentiable! To access this code, continue using `matfree.tridiag_sym` and `matfree.hessenberg`, and ensure that `custom_vjp` is set to `True`.

Other changes include a new Hessenberg-factorisation via the Arnoldi iteration, some information regarding citations and Matfree's API policy, removing matfree.pinv, and moving `matfree.decomp.svd_approx` to `matfree.eig.svd_partial`. The full changelog is below.

What's Changed
* Implement decomp.hessenberg() via the Arnoldi decomposition by pnkraemer in https://github.com/pnkraemer/matfree/pull/192
* Implement differentiable Lanczos and Arnoldi iterations by pnkraemer in https://github.com/pnkraemer/matfree/pull/193
* Add citation information to matfree's Arnoldi and Lanczos iterations by pnkraemer in https://github.com/pnkraemer/matfree/pull/197
* Remove matfree.pinv and implement matfree.eig by pnkraemer in https://github.com/pnkraemer/matfree/pull/198
* Explain Matfree's API policy by pnkraemer in https://github.com/pnkraemer/matfree/pull/199


**Full Changelog**: https://github.com/pnkraemer/matfree/compare/v0.0.16...v0.0.17

0.0.16

This release reorganises the API without adding/removing functionality.
Stochastic trace estimation is available through `stochtrace.py` instead of `hutchinson.py` (the functionality remains the same).
Matrix-function functionality has been moved to dedicated modules `funm.py` and `stochtrace_funm.py` and `polynomial.py` as well as `lanczos.funm_vector_product` have been moved there. All functionality remains.
Matrix-free matrix decompositions (Lanczos, bidiagonalisation, ...) are now in `decomp.py` instead of `lanczos.py` (which has been removed).

Some functions and variables have been renamed.


This change breaks existing code. To learn how to update to this new look, consult the API documentation under https://pnkraemer.github.io/matfree/ and the changelogs below.

What's Changed
* Deprecate matfree.pinv by pnkraemer in https://github.com/pnkraemer/matfree/pull/186
* Show the source-code in the documentation by pnkraemer in https://github.com/pnkraemer/matfree/pull/187
* Create dedicated `funm` and `funm_trace` modules for functions of matrices by pnkraemer in https://github.com/pnkraemer/matfree/pull/188
* Rename misnamed functions by pnkraemer in https://github.com/pnkraemer/matfree/pull/189
* Rename hutchinson.py to stochtrace.py by pnkraemer in https://github.com/pnkraemer/matfree/pull/190
* Rename lanczos.py to decomp.py by pnkraemer in https://github.com/pnkraemer/matfree/pull/191


**Full Changelog**: https://github.com/pnkraemer/matfree/compare/v0.0.15...v0.0.16

Page 1 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.