Skip to content

Commit

Permalink
Add citation information to matfree's Arnoldi and Lanczos iterations (#…
Browse files Browse the repository at this point in the history
…197)

* Move citation information to the top of the README

* Add the bibtex entry to Lanczos and Arnoldi implementations

* Move bidiagonalisation to the bottom of the file so that Arnoldi and Lanczos are next to each other

* Mention that bidiagonalisation is not differentiable

* Put a date on the deprecation policy
  • Loading branch information
pnkraemer authored May 28, 2024
1 parent 272312c commit c9ac24d
Show file tree
Hide file tree
Showing 4 changed files with 222 additions and 146 deletions.
28 changes: 25 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,15 @@
[![image](https://img.shields.io/pypi/l/matfree.svg)](https://pypi.python.org/pypi/matfree)
[![image](https://img.shields.io/pypi/pyversions/matfree.svg)](https://pypi.python.org/pypi/matfree)

Randomised and deterministic matrix-free methods for trace estimation, matrix functions, and/or matrix factorisations.
Randomised and deterministic matrix-free methods for trace estimation, functions of matrices, and/or matrix factorisations.
Builds on [JAX](https://jax.readthedocs.io/en/latest/).


- ⚡ Stochastic **trace estimation** including batching, control variates, and uncertainty quantification
- ⚡ A stand-alone implementation of **stochastic Lanczos quadrature**
- ⚡ A stand-alone implementation of **stochastic Lanczos quadrature** for traces of functions of matrices
- ⚡ Matrix-decomposition algorithms for **large sparse eigenvalue problems**: tridiagonalisation, bidiagonalisation, Hessenberg factorisation via Lanczos and Arnoldi iterations
- ⚡ Polynomial methods for approximating **functions of large matrices**
- ⚡ Chebyshev, Lanczos, and Arnoldi-based methods for approximating **functions of large matrices**
-**Gradients of functions of large matrices** (like in [this paper](https://arxiv.org/abs/2405.17277)) via differentiable Lanczos and Arnoldi iterations
- ⚡ Partial Cholesky **preconditioners** with and without pivoting

and many other things.
Expand Down Expand Up @@ -102,6 +103,27 @@ These tutorials include, among other things:
[_Let us know_](https://github.com/pnkraemer/matfree/issues) what you use matfree for!


**Citation**

Thank you for using Matfree!
If you are using Matfree's differentiable Lanczos or Arnoldi iterations, then you
are using the algorithms from [this paper](https://arxiv.org/abs/2405.17277).
We would appreciate if you cited it as follows:

```bibtex
@article{kraemer2024gradients,
title={Gradients of functions of large matrices},
author={Kr\"amer, Nicholas and Moreno-Mu\~noz, Pablo and Roy, Hrittik and Hauberg S\o{}ren},
journal={arXiv preprint arXiv:2405.17277},
year={2024}
}
```

Some of Matfree's docstrings contain additional bibliographic information.
For example, the functions in `matfree.bounds` link to bibtex entries for the articles associated with each bound.
Go check out the [API documentation](https://pnkraemer.github.io/matfree/).


## Use Matfree's continuous integration


Expand Down
2 changes: 1 addition & 1 deletion matfree/bounds.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ def baigolub96_logdet_spd(bound_spectrum, /, nrows, trace, norm_frobenius_square
??? note "BibTex for Bai and Golub (1996)"
```tex
```bibtex
@article{bai1996bounds,
title={Bounds for the trace of the inverse and the
determinant of symmetric positive definite matrices},
Expand Down
Loading

0 comments on commit c9ac24d

Please sign in to comment.