@@ -3,8 +3,8 @@ A Julia package for representing block-block-banded matrices and banded-block-ba
3
3
4
4
[ ![ Build Status] ( https://travis-ci.org/JuliaMatrices/BlockBandedMatrices.jl.svg?branch=master )] ( https://travis-ci.org/JuliaMatrices/BlockBandedMatrices.jl )
5
5
6
- <!-- [](https://JuliaMatrices.github.io/BlockBandedMatrices.jl/stable)
7
- [](https://JuliaMatrices.github.io/BlockBandedMatrices.jl/latest) -->
6
+ <!-- [](https://JuliaMatrices.github.io/BlockBandedMatrices.jl/stable)-->
7
+ [ ![ ] ( https://img.shields.io/badge/docs-latest-blue.svg )] ( https://JuliaMatrices.github.io/BlockBandedMatrices.jl/latest )
8
8
9
9
10
10
@@ -36,57 +36,3 @@ BandedBlockBandedMatrix(Zeros(sum(rows),sum(cols)), (rows,cols), (l,u), (λ,μ))
36
36
BandedBlockBandedMatrix (Ones (sum (rows),sum (cols)), (rows,cols), (l,u), (λ,μ)) # creates a banded-block-banded matrix with ones in the non-zero entries
37
37
BandedBlockBandedMatrix (I, (rows,cols), (l,u), (λ,μ))) # creates a banded-block-banded identity matrix
38
38
```
39
-
40
-
41
- ## Implementation
42
-
43
- A ` BlockBandedMatrix ` stores the entries in a single vector, ordered by columns.
44
- For example, if ` A ` is a ` BlockBandedMatrix ` with block-bandwidths ` (A.l,A.u) == (1,0) `
45
- and the block sizes ` fill(2, N) ` where ` N = 3 ` is the number
46
- of row and column blocks, then ` A ` has zero structure
47
- ``` julia
48
- [ a_11 a_12
49
- a_21 a_22
50
- a_31 a_32 a_33 a_34
51
- a_41 a_42 a_43 a_44
52
- a_53 a_54
53
- a_63 a_64 ]
54
- ```
55
- and is stored in memory via ` A.data ` as a single vector by columns, containing:
56
- ```
57
- [a_11,a_21,a_31,a_41,a_12,a_22,a_32,a_42,a_33,a_43,a_53,a_63,a_34,a_44,a_54,a_64]
58
- ```
59
- The reasoning behind this storage scheme as that each block still satisfies
60
- the strided matrix interface, but we can also use BLAS and LAPACK to, for example,
61
- upper-triangularize a block column all at once.
62
-
63
-
64
- A ` BandedBlockBandedMatrix ` stores the entries as a ` PseudoBlockMatrix ` ,
65
- with the number of row blocks equal to ` A.l + A.u + 1 ` , and the row
66
- block sizes are all ` A.μ + A.λ + 1 ` . The column block sizes of the storage is
67
- the same as the the column block sizes of the ` BandedBlockBandedMatrix ` . This
68
- is a block-wise version of the storage of ` BandedMatrix ` .
69
-
70
- For example, if ` A ` is a ` BandedBlockBandedMatrix ` with block-bandwidths ` (A.l,A.u) == (1,0) `
71
- and subblock-bandwidths ` (A.λ, A.μ) == (1,0) ` , and the block sizes ` fill(2, N) ` where ` N = 3 ` is the number
72
- of row and column blocks, then ` A ` has zero structure
73
- ``` julia
74
- [ a_11
75
- a_21 a_22
76
- a_31 a_33
77
- a_41 a_42 a_43 a_44
78
- a_53
79
- a_63 a_64 ]
80
- ```
81
- and is stored in memory via ` A.data ` as a ` PseudoBlockMatrix ` , which has block sizes
82
- 2 x 2, containing entries:
83
- ```
84
- [a_11 a_22 a_33 a_44;
85
- a_21 X a_43 X ;
86
- a_31 a_42 a_53 a_64;
87
- a_41 X a_63 X ]
88
- ```
89
- where ` X ` is an entry that is not used.
90
-
91
- The reasoning behind this storage scheme as that each block still satisfies
92
- the banded matrix interface.
0 commit comments