Skip to main content

Quasi-Newton algorithm for joint-diagonalization

Travis Codecov

Summary

This Python package contains code for fast joint-diagonalization of a set of positive definite symmetric matrices. The main function is qndiag, which takes as input a set of matrices of size (p, p), stored as a (n, p, p) array, C. It outputs a (p, p) array, B, such that the matrices B @ C[i] @ B.T (python), i.e. B * C(i,:,:) * B' (matlab/octave) are as diagonal as possible.

Installation of Python package

To install the package, do:

$ pip install -U https://github.com/pierreablin/qndiag/archive/master.zip

You can also simply clone it, and then do:

$ pip install -e .

To check that everything worked, the command

$ python -c 'import qndiag'

should not return any error.

Use with Matlab or Octave

See qndiag.m and toy_example.m in the folder matlab_octave.

Cite

If you use this code please cite:

P. Ablin, J.F. Cardoso and A. Gramfort. Beyond Pham’s algorithm
for joint diagonalization. Proc. ESANN 2019.
https://www.elen.ucl.ac.be/Proceedings/esann/esannpdf/es2019-119.pdf
https://hal.archives-ouvertes.fr/hal-01936887v1
https://arxiv.org/abs/1811.11433

Release files for qndiag 0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qndiag 0.1
File Size Uploaded
qndiag-0.1.tar.gz 9.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for qndiag 0.1
File Interpreter ABI Platform
qndiag-0.1-py3-none-any.whl Python 3 none any Details

Total release size: 16.2 kB

Release files / qndiag-0.1.tar.gz

Download URL qndiag-0.1.tar.gz
Size 9.1 kB
Tags Source
SHA-256 checksum
How to use checksums
ad0c69f4f1a1e1875e91c9b71c078a79901bad7bfb32d863ea4b99e941413914
BLAKE2b-256 checksum
How to use checksums
d86ceceed3e58d495c22d12a3dc72e23cdf70a4102221220c5a2114fe21bebd6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0.post20200714 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.7

Release files / qndiag-0.1-py3-none-any.whl

Download URL qndiag-0.1-py3-none-any.whl
Size 7.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d404afbd48f39109f8f7b9a8fb8a48a0cbabeca35f49bfced7203fb753b14ee5
BLAKE2b-256 checksum
How to use checksums
42ebe764d1111ed9fd349a55433bd9a397a625d106edf9ce31b430a19b8b0ccd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0.post20200714 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.7

Release history Release notifications | RSS feed

This release

0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page