Skip to content
A Julia package for representing block-banded matrices and banded-block-banded matrices
Julia
Branch: master
Clone or download
dlfivefifty Move out Lazy arrays (#49)
* Update for ArrayLayouts

* Update test_triblockbanded.jl

* import mul
2
Latest commit 1c3b9d4 Nov 8, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/workflows Add CompatHelper.yml Nov 4, 2019
docs Improve docs Jun 19, 2018
examples Move out Lazy arrays (#49) Nov 8, 2019
src Move out Lazy arrays (#49) Nov 8, 2019
test Move out Lazy arrays (#49) Nov 8, 2019
.editorconfig WIP: Shared arrays and GPU arrays (#19) Oct 31, 2018
.gitignore Create .gitignore Apr 19, 2019
.travis.yml Don't test on 0.7 Aug 20, 2019
LICENSE Initial commit Dec 10, 2016
Project.toml Move out Lazy arrays (#49) Nov 8, 2019
README.md Fix a typo (#40) Jun 20, 2019
appveyor.yml Don't test on 0.7 Aug 20, 2019

README.md

BlockBandedMatrices.jl

A Julia package for representing block-block-banded matrices and banded-block-banded matrices

Travis Build status codecov

This package supports representing block-banded and banded-block-banded matrices by only storing the entries in the non-zero bands.

A BlockBandedMatrix is a subtype of BlockMatrix of BlockArrays.jl whose non-zero blocks are banded. We can construct a BlockBandedMatrix as follows:

l,u = 2,1          # block bandwidths
N = M = 4          # number of row/column blocks
cols = rows = 1:N  # block sizes

BlockBandedMatrix(Zeros(sum(rows),sum(cols)), (rows,cols), (l,u)) # creates a block-banded matrix of zeros
BlockBandedMatrix(Ones(sum(rows),sum(cols)), (rows,cols), (l,u)) # creates a block-banded matrix with ones in the non-zero entries
BlockBandedMatrix(I, (rows,cols), (l,u))                          # creates a block-banded  identity matrix

A BandedBlockBandedMatrix has the added structure that the blocks themselves are banded, and conform to the banded matrix interface of BandedMatrices.jl. We can construct a BandedBlockBandedMatrix as follows:

l,u = 2,1          # block bandwidths
λ,μ = 1,2          # sub-block bandwidths: the bandwidths of each block
N = M = 4          # number of row/column blocks
cols = rows = 1:N  # block sizes
BandedBlockBandedMatrix(Zeros(sum(rows),sum(cols)), (rows,cols), (l,u), (λ,μ)) # creates a banded-block-banded matrix of zeros
BandedBlockBandedMatrix(Ones(sum(rows),sum(cols)), (rows,cols), (l,u), (λ,μ))  # creates a banded-block-banded matrix with ones in the non-zero entries
BandedBlockBandedMatrix(I, (rows,cols), (l,u), (λ,μ)))                         # creates a banded-block-banded identity matrix
You can’t perform that action at this time.