Professional Documents
Culture Documents
Ddis Slides 1
Ddis Slides 1
Ddis Slides 1
Nicolas Chevaugeon
Introduction
Matrix Storage
Matrix Multiplication
Section 1
Introduction
2 / 85
Introduction
Matrix Storage
Matrix Multiplication
Efficiency,
Accuracy.
Parallelism.
Sparcity of system
Direct/Iterative Solvers
3 / 85
Introduction
Matrix Storage
Matrix Multiplication
Layout
introduction, motivation
matrix storage
matrix properties
I
I
iterative solver
preconditioners
4 / 85
Introduction
Matrix Storage
Matrix Multiplication
Recommended books
5 / 85
Introduction
Matrix Storage
Matrix Multiplication
Introduction
Most numerical method for pde : transform the pde into a set of
discrete non linear equation which are the linearised to be solved
iteratively.
6 / 85
Introduction
Matrix Storage
Matrix Multiplication
Memory size
size
1000
10000
20000
40000
size2
1.e6
1.e8
4.e8
16.e8
memory usage
7.6 Mb
762.94 Mb
3. Gb
12. Gb
7 / 85
Introduction
Matrix Storage
Matrix Multiplication
8 / 85
Introduction
Matrix Storage
Matrix Multiplication
For Many problem it is not clear what method is best between direct
or iteratives solver.
I
Direct methods are robust. But can need (very) large memory,
and may take to long for some application
9 / 85
Introduction
Matrix Storage
Matrix Multiplication
Accuracy required.
10 / 85
Introduction
Matrix Storage
Matrix Multiplication
Section 2
Matrix Storage
11 / 85
Introduction
Matrix Storage
Matrix Multiplication
Storing a Matrix seems like something simple ... Its just an array with
two dimension !
12 / 85
Introduction
Matrix Storage
Matrix Multiplication
Storing a Matrix seems like something simple ... Its just an array with
two dimension !
Well, in fact all that can really be stored in computer are data in
memory address. A system can reserve contiguous memory
address, to mimic a 1 dimensional array.
So how to store a 2d array in what is basically a 1d array ?
12 / 85
Introduction
Matrix Storage
Matrix Multiplication
Storing a Matrix seems like something simple ... Its just an array with
two dimension !
Well, in fact all that can really be stored in computer are data in
memory address. A system can reserve contiguous memory
address, to mimic a 1 dimensional array.
So how to store a 2d array in what is basically a 1d array ?
What if storing all the entry of a matrix is not practicable and or
consume to much space ?
12 / 85
Introduction
Matrix Storage
Matrix Multiplication
Storing a Matrix seems like something simple ... Its just an array with
two dimension !
Well, in fact all that can really be stored in computer are data in
memory address. A system can reserve contiguous memory
address, to mimic a 1 dimensional array.
So how to store a 2d array in what is basically a 1d array ?
What if storing all the entry of a matrix is not practicable and or
consume to much space ?
Most matrix comming from numerical methods such as finite element,
finite difference or finte volume are very sparse. Which means that
the majority of the terms are equal to zero. Why store them then ?
12 / 85
Introduction
Matrix Storage
Matrix Multiplication
Storing a Matrix seems like something simple ... Its just an array with
two dimension !
Well, in fact all that can really be stored in computer are data in
memory address. A system can reserve contiguous memory
address, to mimic a 1 dimensional array.
So how to store a 2d array in what is basically a 1d array ?
What if storing all the entry of a matrix is not practicable and or
consume to much space ?
Most matrix comming from numerical methods such as finite element,
finite difference or finte volume are very sparse. Which means that
the majority of the terms are equal to zero. Why store them then ?
These simple observations leads to a variety of matrix storage
scheme that any numericists need to know of : They affect the way
simple operation like Matrix vector product must be written efficiently,
how to design a solver, etc ...
12 / 85
Introduction
Matrix Storage
Matrix Multiplication
outline
Symetric storage
Band storage
Skyline storage
Coordinate Storage
13 / 85
Introduction
Matrix Storage
Matrix Multiplication
a1,1
a2,1
A= .
..
a1,2
a2,2
a1,n
a2,n
..
.
an,1
an,2
an,n
can be strored in an array val in the full storage format by row. This is
called the row major format.
k
val
1
a1,1
2
a1,2
n
a1,n
n+1
a2,1
2n
a2,n
(n 1) n + 1
an,1
nn
an,n
14 / 85
Introduction
Matrix Storage
Matrix Multiplication
We thus have :
I
ai,j = val[(i 1) n + j]
We are using here the so called fortran convention, where array index
start at 1. In c indexing typically start at 0. be carefull when using
a library ... Which convention is used ??
15 / 85
Introduction
Matrix Storage
Matrix Multiplication
The matrix A can be strored in an array val in the full storage format
by column. This is called the column major format.
k
val
1
a1,1
2
a2,1
n
an,1
n+1
a1,2
ai,j = val[(i + (j 1) n]
val[k] = a((k1)%n+1),((k1)/n)+1
2n
an,2
(n 1) n + 1
a1,n
nn
an,n
16 / 85
Introduction
Matrix Storage
Matrix Multiplication
row major or column major format are widely used, in particular for
dense linear algebra. Blas and lapack libraries in particular expect a
column major format. Of course this format can also be used to store
rectangular matrix. The storage space used is typicallyNotion of
Leading direction ...
17 / 85
Introduction
Matrix Storage
Matrix Multiplication
triangular storage
1
a1,1
2
a1,2
3
a1,3
4
a2,2
5
a2,3
6
a3,3
18 / 85
Introduction
Matrix Storage
Matrix Multiplication
19 / 85
Introduction
Matrix Storage
Matrix Multiplication
2159
4.6 e6 doubles
2.4e6 doubles
9.5 e6 doubles
4.7 e6 doubles
20 / 85
Introduction
Matrix Storage
Matrix Multiplication
renumbering
After renumbering using reverse cutHill McKee :
bandwidth
Full storage
Full storage sym
Band storage
Sym Band storage
178
4.6 e6 doubles
2.4e6 doubles
7.8 e5 doubles
3.9 e5 doubles
21 / 85
Introduction
Matrix Storage
Matrix Multiplication
band storage
Band storage depends on two value : the number of non-zero lower
subdiagonal kl and the number of superdiagonal ku.
the bandwith is ku + kl + 1
Example of a 5x5 matrix, with ku = 1 and kl = 2
a1,1
a2,1
A=
a3,1
0
0
a1,2
a2,2
a3,2
a4,2
0
Band storage :
k
val
k
val
11
a2,1
0
a2,3
a3,3
a4,3
a5,3
m
5
2
a1,2
12
a3,2
0
0
a3,4
a4,4
a5,4
0
0
a4,5
a5,5
n ku kl
5 1
2
3
4
a2,3 a3,4
13
14
a4,3 a5,4
5
a4,5
15
6
a1,1
16
a3,1
7
a2,2
17
a4,2
8
a3,3
18
a5,3
9
a4,4
19
10
a5,5
20
22 / 85
Introduction
Matrix Storage
Matrix Multiplication
band storage
23 / 85
Introduction
Matrix Storage
Matrix Multiplication
skyline storage
24 / 85
Introduction
Matrix Storage
Matrix Multiplication
skyline storage
Example:
a1,1
0
A=
a1,3
0
0
0
a2,2
0
a2,4
0
a1,3
0
a3,3
a3,4
0
k
1
2
val
a1,1
a2,2
j
1 2
col ptr(j) 1 2
0
a2,4
a3,4
a4,4
a4,5
0
0
a4,5
a5,5
3
4 5
a1,3 0 a3,3
3 4 5 6
3 6 9 11
6
a2,4
7
a3,4
8
a4,4
9
a4,5
10
a5,5
25 / 85
Introduction
Matrix Storage
Matrix Multiplication
26 / 85
Introduction
Matrix Storage
Matrix Multiplication
Coordinate Storage
The simplest approach to store sparse matrix.
the values of the non-zero elements are stored with their coordinate,
in 3 separates arrays : val, row idx, col idx. The order usally do not
matter.
a1,1
0
A=
0
a4,1
0
k
val(k)
row index(k)
col idx(k)
a1,2
a2,2
0
0
a5,2
1
a41
4
1
0
a2,3
a3,3
0
0
2
a35
3
5
a1,4
a2,4
0
a4,4
0
3
a33
3
3
4
a52
5
2
0
0
a3,5
a4,5
a5,5
5
a11
1
1
6
a23
2
3
7
a55
5
5
8
a24
2
4
9
a12
1
2
10
a44
4
4
11
a14
1
4
12
a45
4
5
13
a22
2
2
27 / 85
Introduction
Matrix Storage
Matrix Multiplication
a
0
A=
0
g
j
0
0
e
h
0
b
c
0
0
k
0
d
f
0
0
0
0
i
0
This matrix as 11 non zero term (number of non zero, nnz = 11).
We store the entry row by row in the val array of dimension nnz
The array col index of nnz integer store the column index of the
corresponding entry.
28 / 85
Introduction
Matrix Storage
Matrix Multiplication
a
0
A=
0
g
j
0
0
e
h
0
b
c
0
0
k
k
val(k)
col index(k)
0
d
f
0
0
0
0
i
0
1
a
1
2
b
3
3
c
3
4
d
4
5
e
2
6
f
5
7
g
1
8
h
2
9
i
5
10
j
1
11
k
3
28 / 85
Introduction
Matrix Storage
Matrix Multiplication
a
0
A=
0
g
j
0
0
e
h
0
b
c
0
0
k
0
d
f
0
0
0
0
i
0
k
1 2
3 4
5 6 7 8 9 10 11
val(k)
a b
c d
e f
g h i
j
k
col index(k) 1 3
3 4
2 5 1 2 5 1
3
The Array row ptr(i) is a array of integer of size n + 1 (where n is the
number of line of the matrix) that contain the index of the start of line
(i) in array val, for all entry but the last that contain nnz+1
28 / 85
Introduction
Matrix Storage
Matrix Multiplication
a
0
A=
0
g
j
0
0
e
h
0
b
c
0
0
k
0
d
f
0
0
0
0
i
0
k
1 2
3 4
5 6
val(k)
a b
c d
e f
col index(k) 1 3
3 4
2 5
i
1 2 3 4 5
6
row ptr(i) 1 3 5 7 10 12
7
g
1
8
h
2
9
i
5
10
j
1
11
k
3
28 / 85
Introduction
Matrix Storage
Matrix Multiplication
29 / 85
Introduction
Matrix Storage
Matrix Multiplication
29 / 85
Introduction
Matrix Storage
Matrix Multiplication
29 / 85
Introduction
Matrix Storage
Matrix Multiplication
29 / 85
Introduction
Matrix Storage
Matrix Multiplication
29 / 85
Introduction
Matrix Storage
Matrix Multiplication
30 / 85
Introduction
Matrix Storage
Matrix Multiplication
Section 3
Matrix Multiplication
31 / 85
Introduction
Matrix Storage
Matrix Multiplication
A Rm,p
B Rp,n
C Rm,n
C = AB
32 / 85
Introduction
Matrix Storage
Matrix Multiplication
A Rm,p
B Rp,n
C Rm,n
C = AB
matrix multiplication algorithm :
for i = 1 to m do
for j = 1 to n do
for k = 1 to p do
C(i,j) = A(i,k)*B(k,j) +C(i,j)
end
end
end
32 / 85
Introduction
Matrix Storage
Matrix Multiplication
A Rm,p
B Rp,n
C Rm,n
C = AB
one variant, reordering the loop :
for j = 1 to n do
for i = 1 to m do
for k = 1 to p do
C(i,j) = A(i,k)*B(k,j) +C(i,j)
end
end
end
32 / 85
Introduction
Matrix Storage
Matrix Multiplication
jik
ikj
jki
kij
kji
33 / 85
Introduction
Matrix Storage
Matrix Multiplication
jik
ikj
jki
kij
kji
http://math.nist.gov/MatrixMarket/
Matrix size : 1806X 1806.
number of floating point operations : 18063 2 = 11, 8e9.
Note that the number of operations is the same whatever the
algorithm.
33 / 85
Introduction
Matrix Storage
Matrix Multiplication
jik
ikj
jki
kij
kji
http://math.nist.gov/MatrixMarket/
Matrix size : 1806X 1806.
number of floating point operations : 18063 2 = 11, 8e9.
Note that the number of operations is the same whatever the
algorithm.
algorithm ijk
jik
ikj
jki
kij
kji
time (s)
19.79 28.47 50.63 9.82 53.57 25.23
33 / 85
Introduction
Matrix Storage
Matrix Multiplication
Cache effect
What changed from one version to another is the time it take to
access and modify the data.
34 / 85
Introduction
Matrix Storage
Matrix Multiplication
Cache effect
What changed from one version to another is the time it take to
access and modify the data.
When something has to be computed, it has to be moved from the
main memory to the register, up and down the memory hierachy.
34 / 85
Introduction
Matrix Storage
Matrix Multiplication
Cache effect
What changed from one version to another is the time it take to
access and modify the data.
When something has to be computed, it has to be moved from the
main memory to the register, up and down the memory hierachy.
The running time of the loops are dominated by the memory access
to the array, usually not by the operation them-self.
34 / 85
Introduction
Matrix Storage
Matrix Multiplication
Cache effect
35 / 85
Introduction
Matrix Storage
Matrix Multiplication
Cache effect
35 / 85
Introduction
Matrix Storage
Matrix Multiplication
Cache effect
If for the next instruction, every data are already in the cache,
nothing need to be fetch it goes much faster.
35 / 85
Introduction
Matrix Storage
Matrix Multiplication
Cache effect
If for the next instruction, every data are already in the cache,
nothing need to be fetch it goes much faster.
35 / 85
Introduction
Matrix Storage
Matrix Multiplication
..
36 / 85
Introduction
Matrix Storage
Matrix Multiplication
..
36 / 85
Introduction
Matrix Storage
Matrix Multiplication
..
Introduction
Matrix Storage
Matrix Multiplication
This interface is mostly defined in fortran but can be called from any
language. The interface was first published in 1979, And is used
since as a building block in higher level math programming languages
and libraries (matlab; numpy, lapack ...).
BLAS subroutines are a standard API (Application programming
interface.)
37 / 85
Introduction
Matrix Storage
Matrix Multiplication
38 / 85
Introduction
Matrix Storage
Matrix Multiplication
38 / 85
Introduction
Matrix Storage
Matrix Multiplication
38 / 85
Introduction
Matrix Storage
Matrix Multiplication
38 / 85
Introduction
Matrix Storage
Matrix Multiplication
...
38 / 85
Introduction
Matrix Storage
Matrix Multiplication
ACML : part of the AMD Core MATH Library : AMD Athlon and
opteron
39 / 85
Introduction
Matrix Storage
Matrix Multiplication
ACML : part of the AMD Core MATH Library : AMD Athlon and
opteron
39 / 85
Introduction
Matrix Storage
Matrix Multiplication
ACML : part of the AMD Core MATH Library : AMD Athlon and
opteron
39 / 85
Introduction
Matrix Storage
Matrix Multiplication
ACML : part of the AMD Core MATH Library : AMD Athlon and
opteron
39 / 85
Introduction
Matrix Storage
Matrix Multiplication
ACML : part of the AMD Core MATH Library : AMD Athlon and
opteron
...
39 / 85
Introduction
Matrix Storage
Matrix Multiplication
40 / 85
Introduction
Matrix Storage
Matrix Multiplication
BLAS overview
Each routine follow the following name convention : first letter is either
s or d, for single or double precision version of the routine.
BLAS is divided in 3 Level.
41 / 85
Introduction
Matrix Storage
Matrix Multiplication
BLAS overview
xAXPY add x to y
41 / 85
Introduction
Matrix Storage
Matrix Multiplication
BLAS overview
Level 2 : Matrix Vector operation
I
...
41 / 85
Introduction
Matrix Storage
Matrix Multiplication
BLAS overview
I
I
41 / 85
Introduction
Matrix Storage
Matrix Multiplication
BLAS function are very flexible, while behing compatible with most
language. This flexibility come at the price of the number of argument
to be pass to each subroutine.
For example AXPY that perform the operation y = x + y need 6
arguments :
xAXPY(N, ALPHA, X, INCX, Y, INCY)
xGEMM That perform the operation C = AB + C needs 13
arguments :
xGEMM(TRANSA, TRANSB, M, N, K, ALPHA, A, LDA,
B, LDB, BETA, C, LDC)
42 / 85
Introduction
Matrix Storage
Matrix Multiplication
back to mesurement
43 / 85
Introduction
Matrix Storage
Matrix Multiplication
Blas Benchmark
44 / 85
Introduction
Matrix Storage
Matrix Multiplication
Blas Benchmark
Introduction
Matrix Storage
Matrix Multiplication
k =1
45 / 85
Introduction
Matrix Storage
Matrix Multiplication
First Compute all the shape functions at each Gauss point and Put
the result in the matrix N.
Note that this matrix is the same for all the element of the same type
when using iso parametric element and the same integration rule for
all the element. Therefor it can be computed once and for all at the
begining of the programme
N1 (x1 )
Nn (x1 )
N1 (x2 )
Nn (x2 )
N=
..
..
.
.
N1 (xngauss ) Nn (xngauss )
46 / 85
Introduction
Matrix Storage
Matrix Multiplication
47 / 85
Introduction
Matrix Storage
Matrix Multiplication
Sparse BLAS ??
48 / 85
Introduction
Matrix Storage
Matrix Multiplication
Section 4
Basic Linear Algebra and Matrix properties
49 / 85
Introduction
Matrix Storage
Matrix Multiplication
A set of n vectors
{a1 , , an } in Rm
is linearly independent if
n
P
j aj = 0 implies j = 0 j
j=1
I
I
I
span {a1 , , an } =
n
X
j=1
j aj : j R
50 / 85
Introduction
Matrix Storage
Matrix Multiplication
the range :
ran(A = {y Rm : y = Ax for some x Rn )}
51 / 85
Introduction
Matrix Storage
Matrix Multiplication
let the aj be the columns of A. (A = a1 , , an ). Then we have :
ran(A) = span {a1 , , an }
The rank of a matrix A is defined by rank(A) = dim(ran(A))
It can be shown that rankA = rankAT .
A Matrix A Rm,n is rank deficient if rank(A) < min(m, n).
If A Rm,n , then dim(null(A)) + rank(A) = n
52 / 85
Introduction
Matrix Storage
Matrix Multiplication
Matrix transpose
(1)
and we have:
Aij = ATji
53 / 85
Introduction
Matrix Storage
Matrix Multiplication
Symetric matrix
A matrix S is symetric if ST = S
54 / 85
Introduction
Matrix Storage
Matrix Multiplication
ji
A matrix AH is the conjugate transpose of A if (AH )ij = a
Hermitian (selfadjoint) matrix : AH = A
55 / 85
Introduction
Matrix Storage
Matrix Multiplication
determinant
n
X
(1)j+1 det(A1,j )
j=1
56 / 85
Introduction
Matrix Storage
Matrix Multiplication
determinant
57 / 85
Introduction
Matrix Storage
Matrix Multiplication
Identity Matrix
(2)
ij = 0 if i 6= j
(3)
58 / 85
Introduction
Matrix Storage
Matrix Multiplication
Inverse matrix
59 / 85
Introduction
Matrix Storage
Matrix Multiplication
Positive Matrix
60 / 85
Introduction
Matrix Storage
Matrix Multiplication
Positive Matrix
60 / 85
Introduction
Matrix Storage
Matrix Multiplication
A matrix P is orthogonal if P1 = PT
A matrix Q is unitary if Q1 = QH
61 / 85
Introduction
Matrix Storage
Matrix Multiplication
Diagonal matrix
d1
ii =
(4)
d1
ij
(5)
62 / 85
Introduction
Matrix Storage
Matrix Multiplication
triangular matrix
(6)
(7)
63 / 85
Introduction
Matrix Storage
Matrix Multiplication
64 / 85
Introduction
Matrix Storage
Matrix Multiplication
k=1
m
Q
Ukk
k=1
65 / 85
Introduction
Matrix Storage
Matrix Multiplication
and
V = [v1 , , vn ] Rn,n
such that
UT AV = diag(1 , , p )
p = min{m, n}
where 1 2 p 0
The i are called the singular values.
The ui are the Left singular vector.
The vi are the Right singular vector.
66 / 85
Introduction
Matrix Storage
Matrix Multiplication
lets define r as :
1 r > r +1 = = p = 0
r is the number of the last non-zero singular value. We the have :
rank(A) = r
null(A) = span{vr +1 , , vn }
ran(A) = span{u1 , , ur }
67 / 85
Introduction
Matrix Storage
Matrix Multiplication
67 / 85
Introduction
Matrix Storage
Matrix Multiplication
vector norm
f (x) 0
x Rn
f (x) = 0
x=0
f (x + y) f (x) + f (y)
(x), (y ) Rn
68 / 85
Introduction
Matrix Storage
Matrix Multiplication
vector norm
p1
i=0
69 / 85
Introduction
Matrix Storage
Matrix Multiplication
vector norm
Notation : a norm i noted ||x||. The p-norm is defined by :
n
X
1
||x||p = (
|xi |p ) p
p1
i=0
1, 2, norms
||x||1
n
X
|xi |
i=0
||x||2
v
u n
p
uX
= t(
xi2 ) = (xT x)
Eulidian norm
i=0
||x||
= max |xi |
1in
69 / 85
Introduction
Matrix Storage
Matrix Multiplication
70 / 85
Introduction
Matrix Storage
Matrix Multiplication
matrix norm
f (A) 0
A Rm,n
f (A) = 0
A=0
f (A + B) f (A) + f (B)
(A), (B) Rm,n
71 / 85
Introduction
Matrix Storage
Matrix Multiplication
matrix norm
p-norm :
||A||p = sup
x6=0
||Ax||p
||x||p
72 / 85
Introduction
Matrix Storage
Matrix Multiplication
matrix norm
73 / 85
Introduction
Matrix Storage
Matrix Multiplication
matrix norm
73 / 85
Introduction
Matrix Storage
Matrix Multiplication
matrix norm
73 / 85
Introduction
Matrix Storage
Matrix Multiplication
||A||1 = max
1jn
||A|| = max
1im
m
X
i=1
n
X
|aij |
|aij |
j=1
Introduction
Matrix Storage
Matrix Multiplication
The 2-norm is not as easy to compute. It can be shown that the the
2-norm of A is its largest singular value 1 . (equal to the largest
eigen value of AT A). In most case approximations can be used since
we have, for instance :
1
||A|| ||A||2 m||A||
n
1
||A||1 ||A||2 n||A||1
m
75 / 85
Introduction
Matrix Storage
Matrix Multiplication
||A||2F = 12 + + p2
p = min{m, n}
||A||2 = 1
min
x6=0
||A||2
= n
||x||2
76 / 85
Introduction
Matrix Storage
Matrix Multiplication
Fx() + (A + B)x()
=f
=0 = A1 (f Fx)
x()
77 / 85
Introduction
Matrix Storage
Matrix Multiplication
x() = x + x(0)
+ O(2 )
Now we can put bounds to the effect of the perturbation on x:
||x(0)||
||x() x||
+ O(2 )
||x||
||x||
||f||
||||A1 ||(
+ ||F||) + O(2 )
||x||
We have Ax = b, therefore
1
||x||
||A||
||b||
and :
||F||
||f||
||x() x||
1
||A||||A || ||
+ ||
+ O(2 )
||x||
||A||
||b||
78 / 85
Introduction
Matrix Storage
Matrix Multiplication
79 / 85
Introduction
Matrix Storage
Matrix Multiplication
79 / 85
Introduction
Matrix Storage
Matrix Multiplication
79 / 85
Introduction
Matrix Storage
Matrix Multiplication
In 2-norm, we have :
2 (A) = ||A||||A1 || =
1
n
In p-norm, we have:
||A||p
1
=
min
p (A) A+A singular ||A||p
The reciproque of p (A) is therefore the minimimum distance
between A and a singular matrix. The highest p (A), the closest is A
to a singular matrix.
When (A) is large, A is said to be ill-conditionned.
If (A) is small, A is well-conditionned.
In p-norm, the smallest is 1.
80 / 85
Introduction
Matrix Storage
Matrix Multiplication
81 / 85
Introduction
Matrix Storage
Matrix Multiplication
81 / 85
Introduction
Matrix Storage
Matrix Multiplication
i=1
81 / 85
Introduction
Matrix Storage
Matrix Multiplication
i=1
81 / 85
Introduction
Matrix Storage
Matrix Multiplication
82 / 85
Introduction
Matrix Storage
Matrix Multiplication
83 / 85
Introduction
Matrix Storage
Matrix Multiplication
AT A is of course symmetric.
AT A is positive definite, since xT AT Ax = (Ax)T (Ax), which is the
square of the eulidian norm of (Ax).
Therefore AT A has positive real eigenvalue.
Has any matrix, A has a singular value decomposition :
A = Udiag(1 , , n )VT And we have
AT A = Vdiag(1 , , n )UT Udiag(1 , , n )VT
= Vdiag(12 , , n2 )VT
84 / 85
Introduction
Matrix Storage
Matrix Multiplication
85 / 85