Structured matrices
Project description
Structured Matrices
Structured matrices
Requirements and Installation
See the instructions here. Then simply
pip install backends-matrix
Example
>>> import lab as B
>>> from matrix import Diagonal
>>> d = Diagonal(B.ones(3))
>>> d
<diagonal matrix: shape=3x3, data type=float64,
diag=[1. 1. 1.]>
>>> 2 * d
<diagonal matrix: shape=3x3, data type=float64
diag=[2. 2. 2.]>
>>> 2 * d + 1
<Woodbury matrix: shape=3x3, dtype=int64
diag=<diagonal matrix: shape=3x3, dtype=float64
diag=[2. 2. 2.]>
lr=<low-rank matrix: shape=3x3, dtype=int64, rank=1
left=[[1]
[1]
[1]]
middle=<diagonal matrix: shape=1x1, dtype=int64
diag=[1]>>>
>>> B.inv(2 * d + 1)
<Woodbury matrix: shape=3x3, dtype=float64
diag=<diagonal matrix: shape=3x3, dtype=float64
diag=[0.5 0.5 0.5]>
lr=<low-rank matrix: shape=3x3, dtype=float64, rank=1
left=<dense matrix: shape=3x1, dtype=float64
mat=[[0.5]
[0.5]
[0.5]]>
middle=<dense matrix: shape=1x1, dtype=float64
mat=[[-0.4]]>
right=<dense matrix: shape=3x1, dtype=float64
mat=[[0.5]
[0.5]
[0.5]]>>>
>>> B.inv(B.inv(2 * d + 1))
<Woodbury matrix: shape=3x3, dtype=float64
diag=<diagonal matrix: shape=3x3, dtype=float64
diag=[2. 2. 2.]>
lr=<low-rank matrix: shape=3x3, dtype=float64, rank=1
left=<dense matrix: shape=3x1, dtype=float64
mat=[[1.]
[1.]
[1.]]>
middle=<dense matrix: shape=1x1, dtype=float64
mat=[[1.]]>
right=<dense matrix: shape=3x1, dtype=float64
mat=[[1.]
[1.]
[1.]]>>>
>>> B.inv(B.inv(2 * d + 1)) + 3
<Woodbury matrix: shape=3x3, dtype=float64
diag=<diagonal matrix: shape=3x3, dtype=float64
diag=[2. 2. 2.]>
lr=<low-rank matrix: shape=3x3, dtype=float64, rank=1
left=[[1.]
[1.]
[1.]]
middle=[[4.]]
right=[[1.]
[1.]
[1.]]>>
>>> B.kron(d, 2 * d)
<Kronecker product: shape=9x9, dtype=float64
left=<diagonal matrix: shape=3x3, dtype=float64
diag=[1. 1. 1.]>
right=<diagonal matrix: shape=3x3, dtype=float64
diag=[2. 2. 2.]>>
>>> B.inv(B.kron(d, 2 * d))
<Kronecker product: shape=9x9, dtype=float64
left=<diagonal matrix: shape=3x3, dtype=float64
diag=[1. 1. 1.]>
right=<diagonal matrix: shape=3x3, dtype=float64
diag=[0.5 0.5 0.5]>>
Matrix Types
All matrix types are subclasses of AbstractMatrix.
The following base types are provided:
Zero
Dense
Diagonal
Constant
LowerTriangular
UpperTriangular
The following composite types are provided:
LowRank
Woodbury
Kronecker
Functions
The following functions are added to LAB.
They can be accessed with B.<function> where import lab as B.
dense(a)
fill_diag(a, diag_len)
block(*rows)
block_diag(*blocks)
matmul_diag(a, b, tr_a=False, tr_b=False)
pd_inv(a)
schur(a)
pd_schur(a)
iqf(a, b, c)
iqf_diag(a, b, c)
ratio(a, c)
root(a)
sample(a, num=1)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
backends-matrix-1.0.3.tar.gz
(37.6 kB
view details)
File details
Details for the file backends-matrix-1.0.3.tar.gz.
File metadata
- Download URL: backends-matrix-1.0.3.tar.gz
- Upload date:
- Size: 37.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.6.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
90d32f3d32506ef0200eed8fde0608571f0b5836c7b9bddc219ef494b8f669d2
|
|
| MD5 |
9522192821cfeaa63f8f407c7325c60c
|
|
| BLAKE2b-256 |
fe445b6acedf060867b3977878de41610eb7103957b15e237f37f6fa4cb1e08b
|