5.4.1 Format and Storage
A simple structure for the block partition is introduced considering the index set
I = {1,· · · ,n}, where n = 2p with p ∈ N0 and Ip indicates the dependence of I
on p. The matrix format Hp can be constructed recursively with respect to p. For
p=0, the matrix M∈CI×I is defined byH
0(r)as the set of 1×1 full representation matrices. For p >0, it is assumed that the format of the matrix Hp−1 ∈CIp−1×Ip−1 is known. A matrix M ∈CIp×Ip can be represented by blocks matrices as follows
M= M11 M12 M21 M22 , M11,M22∈ Hp−1, M12,M21 ∈ Rp−1(r), (5.4.1)
whereRp−1(r):=Rp−1(r,Ip−1)is the set of rank-rmatrices. The set ofHpis formed
by the set of matrices defines in (5.4.1). This indicates that the local rank r should be selected in such a way that a reasonable accuracy can be reachable. For instance, with r = 1 and usingRp−1 is the representation ofRp−1(1), the recursive structure of the formatHp can be denoted by
Hp = Hp−1 Rp−1 Rp−1 Hp−1 . (5.4.2)
The block partition for p = 0, 1, 2, 3 are showed in the figure 5.4.1. Let τ,σ ⊂ I be nonempty index subsets and let M ∈ CI×I be any matrix. The matrix block
corresponding to the blockb= τ×σis described as M|b := (Mαβ)α∈τ,β∈σ∈Cτ×β.
Figure 5.4.1: Block partitions. Image after Hackbusch [2015].
An important quality to be established using the format Hp is the number of blocks. Let Nbl(p) be the number of blocks in Hp(r). Setting Nbl(0) = 1 and using
the recursion (5.4.2) can be proved that Nbl(p) = 2+2Nbl(p−1) for p > 0. The recursive equation is solved by
Nbl =3n−2.
Hackbusch [2016, page 447] shows that using recursive arguments and the require- ment that all matrix blocks M|bof M∈ H1 areR1matrices, the storage cost is
Sp= n+2nlog2n.
5.4H-Matrices 61
[Hackbusch, 2015, chapter 3]. The structural form and the cost of the operations are briefly described:
(a) Matrix-Vector Multiplication. For n = 2p, let M ∈ H
p and x ∈ CIp. For p ≥ 1,
matrix M is taken as in (5.4.1) and x is discomposed as x =
x1
x2
with x1,x2 ∈
CIp−1. The productMxrequires the following computations: y
11:= M11x1,y12:=
M12x2, y21 := M21x1, y22 := M22x2, and the sums y11+y12 and y21+y12. The total cost of the operation is NMV =4nlog2n−n+2.
(b) Matrix addition. Let A,B ∈ Hp be matrices that use the block structure (5.4.2), the structure of the sum is:
A+B= Hp−1 Rp−1 Rp−1 Hp−1 + Hp−1 Rp−1 Rp−1 Hp−1 = Hp−1+Hp−1 Rp−1+Rp−1 Rp−1+Rp−1 Hp−1+Hp−1 ,
where the required operation is 17nlog2n+39n−38.
(c) Matrix-matrix multiplication. There can be three kinds of matrix-matrix prod- ucts. However, one is only showed. For n= 2p, and A,B∈ Hp, the product A.B
has the following form:
Hp−1 Rp−1 Rp−1 Hp−1 · Hp−1 Rp−1 Rp−1 Hp−1 = Hp−1· Hp−1+Rp−1· Rp−1 Hp−1· Rp−1+Rp−1· Hp−1 Rp−1· Hp−1+Hp−1· Rp−1 Rp−1· Rp−1+Hp−1· Rp−1 .
The total number of operations for the combination of the different matrix prod- ucts is given by NH·H(p) = 25 2 np 2+39 2 np−31n+31, NH·R(p) =NR·H(p) =4nlog2n−n+2, NR·R =3n−1.
(d) Matrix inversion. Let M ∈ Hp be a matrix, the approximation of its inversion
is defined as an inversion mapping inv : Dp ⊂ Hp −→ Hp recursively. Theinv
of M for p = 0 is given by inv(M) := M−1 where this is the exact inverse of the 1×1-matrix M. The inverse of M defined onDp−1 ⊂ Hp−1, using the block structure in (5.4.2) is as follows: M−1= M−111+M11−1M12S−1M21M−111 −M−111M12S−1 −S−1M 21M−111 S−1 , (5.4.3)
where S:= M22−M21M11−1M12 which is the Schur complement. The expression (5.4.3) and the algorithm that are used to compute the inverse, require M11to be
62 Hierarchical Matrices
regular. The approximate inverse of a matrix M from Hp requires the following
amount of operations: Ninv(p) = 25 2 nlog 2 2n+ 55 2 nlog2n−69n+70.
In real applications the cluster must be admissible (see definition below), this is not the case for the model format. One has to generalize the definition ofH-Matrices.
Definition 5.4.1(Hierarchical Matrix). Let I be an index set, T(I×I)is a block cluster tree, and P is a partition as in (5.2.8). Furthermore, a local rank distribution function is given by
r :P→N0. (5.4.4)
Then, the setH(r,P) ⊂ CI×I of hierarchical matrices is formed by all matrices M ∈ CI×I
with rank(M|b)≤r(b)for all b∈ P+.
It is important to note that M|b ∈ Rr(b) (in (5.3.2)) is required for all blocks
b∈ P+, i.e., the factors A
bandBb should be explicitly available in order to have the
representation M|b = Ab·BbH. The matrix blocks M|bassociated to the small blocks
b∈P−are implemented as matrices such that M|b∈ F(b).
Remark 5.4.2. (a) For the function in (5.4.4), the common choice is a constant r ∈ N0. Then, one says that the hierarchical matrix has the local rank r.
(b) For the adaptive choice of the local ranks can be used a variable rank r(b).
The local rank is used to approximate the admissible block in T(I ×I) up to a predefined accuracy ε ≥ 0. This is ensured by the admissibility condition. In principles, the rank r should be chosen such that the error (5.3.7) is bounded by an accuracyε>0 which is fixed.
5.4.2 Matrix-Vector Multiplication
LetP⊂T(I×I)be a partition. LetM∈ H(r,P),x∈CI, andy∈CI be a matrix, and
vectors, respectively. The matrix-vector product is established by the additive form
y := y+Mx which is carried out using a recursively procedure. The recursion is applied to any blockb= τ×σ ∈ T(I×I). The vectory may be initialised asy := 0 and calling the procedureMVMproduces the form and its description is as follows:
procedureMVM(y,M,x,b);
ifb=τ×σ∈ Ptheny|τ :=y|τ+M|b·x|σ else for allb0 ∈ S(b)doMVM(y,M,x,b0);
If b ∈ P−, then M|b is represented as a full matrix and the product M|b·x|σ in the second line of MVM is the standard matrix-vector multiplication. If b ∈ P+,
5.4H-Matrices 63
The matrix-Vector multiplication of hierarchical matrices requires one multiplica- tion and one addition per matrix entry. The number of arithmetical operations NMV
can be bounded by the storage costSH(r,P)≤ NMV ≤ 2SH(r,P). This result comes
from Lemma 7.17 in [Hackbusch, 2016, page 189]
5.4.3 Matrix-Matrix Multiplication
The matrix-matrix product of hierarchical matrices requires addition, and combina- tion of addition and multiplication of low rank matrices.
Definition 5.4.3 (H-matrices addition). Let r,r1,r2 : P → N0 be the local ranks. Let
M1 ∈ H(r1,P) and M2 ∈ H(r2,P) be matrices with the same partition P. Then the
formatted matrix addition⊕ris defined by
⊕r:H(r1,P)× H(r2,P)→ H(r,P)
with M1⊕rM2 := TrH←r1+r2(M1+M2).
The operation of additionM|b:= M1|bLrM2|bfor any blockb∈T(I×I)is carried
out by the following procedure
procedureAdd(M,M1,M2,b,r); {M|b:=M1|b⊕rM2|b}
{output :M ∈ H(r1,P),
input : M1 ∈ H(r1,P),M2∈ H(r2,P),b∈T(I×I,P),r ∈N0}
ifb∈/ Pthen for all b0 ∈ST(I×I)(b)doAdd(M,M1,M2,b0,r)
else {b∈ Pholds. r1,r2are the local ranks of M1,M2}
ifb∈ P+then
M|b:=TrR(b)←r
1(b)+r2(b)(M1|b+M1|b)
elseM|b := M1|b+M1|b; {addition of full matrices, sinceb∈P−}
The result of calling the procedure Add(M,M1,M2,I×I,r) is M := M1⊕rM2. If
r ≥r1+r2,TrR(b)←r1(b)+r2(b)is the identity, and the blockwise addition is exact.
For the combination of the arithmetical operation of rank matrices, letb=τ×ρ∈
Pbe the block contained in the matrixM. LetM0 ∈Cτ×σandM00∈Cσ×ρbe matrices
for some ρ ∈ T(I). Then the operation M|τ×ρ ← M|τ×ρ⊕r(M0|τ×σrM00|σ×ρ) is
64 Hierarchical Matrices to rankr. procedure MMR(M,M0,M00,τ,σ,ρ); begin ifτ×σ∈ P0 orσ×ρ∈ P00 then beginZ:= M0|τ×σM 00| σ×ρ;
ifτ×ρ⊂b∈P+thenZ:= TrR(Z) {for a suitableb∈T}
end else {theelsecase corresponds toτ×σ ∈/P0 andσ×ρ∈/P00}
beginZ|τ×ρ:=0; for allτ0 ∈S(τ),σ0 ∈ S(σ),ρ0 ∈ S(ρ) doMMR(Z,M0,M00,τ0,σ0,ρ0) {recursion} end; ifτ×ρ∈P−1thenM|τ×ρ := M|τ×ρ+ZelseM|τ×ρ := T R r (M|τ×ρ+Z) end;
Ifb∈ P+, the operation result is approximated byTrT,pairw(M|τ×ρ+M0|τ×σM00|σ×ρ)∈
R(r,τ,ρ). If b ∈ P−, the result is computed exactly and is represented as a full matrix.
For the multiplication of H-matrices, one considers M = M0M00 with M0,M00 ∈
CI×I. Let T(I×I)be the cluster tree which is the block structure of M0 and M00. The
multiplication algorithm is based on using the substructure hierarchical matrices defined as follows: M := M0M00 = M110 M120 M210 M220 M1100 M1200 M2100 M2200 = M11 M12 M21 M22 , (5.4.5a) where Mij = Mi01·M100j+M0i2·M002j fori,j=1, 2 (5.4.5b) with M∈ H(r,P), M0 ∈ H(r0,P0), andM00 ∈ H(r00,P00).
The multiplication can be computed recursively by performing the products of submatrices M0 and M00, which are represented by four submatrices (5.4.5). Taking the submatrix products as ˆM = Mˆ0Mˆ00, if one of the submatrix ˆM0 or ˆM00 does not have a hierarchical structure but belongs to R or F, the product can be evaluated. On the other hand, if the submatrices contain hierarchical structures, they have to be divided recursively until one of the following criterion applies:
1a) ˆM00 = M00|b forb∈ P+, i.e., ˆM00 = ∑a
ibiH ∈ Rr(b). The product is reduced to r
matrix-vector multiplication ˆM0ai.
1b) ˆM00 = M00|b for b ∈ P−, i.e., ˆM00 ∈ F. The same procedure is applied as in 1a) where the columns of ˆM00 are the vectorsai.