Skip to content
A Julia package for representing banded matrices
Julia
Branch: master
Clone or download
dlfivefifty WIP Move out LazyArray code (#146)
* Move out code

* Move out MatrixFactorizations

* Tests pass!

* expose calls

* Fix banded_qr ambiguities
2
Latest commit 023af6d 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 Add a performance tip (#123) Aug 13, 2019
examples start CuArrays example Oct 2, 2018
src WIP Move out LazyArray code (#146) Nov 8, 2019
test WIP Move out LazyArray code (#146) Nov 8, 2019
.gitignore Use bandeddata in construction if possible (#112) Oct 2, 2019
.travis.yml Support Julia v1.3 (#126) Aug 22, 2019
LICENSE Feat bandedeigen (#101) Apr 12, 2019
Project.toml WIP Move out LazyArray code (#146) Nov 8, 2019
README.md
appveyor.yml Support Julia v1.3 (#126) Aug 22, 2019

README.md

BandedMatrices.jl

A Julia package for representing banded matrices

Build Status Build status

codecov

This package supports representing banded matrices by only the entries on the bands.

One can create banded matrices of type BandedMatrix as follows:

BandedMatrix(Zeros(m,n), (l,u))    # creates a banded matrix of zeros, with l sub-diagonals and u super-diagonals
brand(m,n,l,u)     # creates a random banded matrix, with l sub-diagonals and u super-diagonals
BandedMatrix(Ones(m,n), (l,u))     # creates a banded matrix of ones, with l sub-diagonals and u super-diagonals
BandedMatrix(Eye(n), (l,u))        # creates a banded  n x n identity matrix, with l sub-diagonals and u super-diagonals
BandedMatrix(-1=> 1:5, 2=>1:3)     # creates a 5 x 5 banded matrix version of diagm(-1=> 1:5, 2=>1:3)
BandedMatrix((-1=> 1:5, 2=>1:3), (n,m))     # creates an n x m banded matrix with 1 sub-diagonals and u super-diagonals with the specified diagonals
BandedMatrix((-1=> 1:5, 2=>1:3), (n,m), (l,u))     # creates an n x m banded matrix with l sub-diagonals and u super-diagonals with the specified diagonals

For more examples, see the documentation.

Specialized algebra routines are overriden, include * and \:

A = brand(10000,10000,4,3)  # creates a 10000 x 10000 matrix with 4 sub-diagonals
                            # and 3 super-diagonals
b = randn(10000)
A*b  #   Calls optimized matrix*vector routine
A*A  #   Calls optimized matrix*matrix routine
A\b  #   Calls optimized matrix\vector routine
You can’t perform that action at this time.