CS 401
Integer Multiplication / Matrix Multiplication
Xiaorui Sun
1
CS 401 Integer Multiplication / Matrix Multiplication Xiaorui Sun - - PowerPoint PPT Presentation
CS 401 Integer Multiplication / Matrix Multiplication Xiaorui Sun 1 Integer Multiplication Integer Arithmetic 1 1 1 1 1 1 0 1 Add: Given two ! -bit integers 1 1 0 1 0 1 0 1 " and # , compute " + # . Add + 0 1 1 1
Xiaorui Sun
1
3 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Add
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 *
Multiply
&(!) bit operations. &(!)) bit operations.
' ) ⋅ !*#, + !,#* + !,#,
We only need 3 values !*#*, !,#,, !*#, + !,#* Can we find all 3 by only 3 multiplication?
$ & ⋅ !(+* + !*+( + !*+*
Add two !/2 bit integers. Multiply three !/2-bit integers. Add, subtract, and shift !/2-bit integers to obtain result.
* + ⋅ )-1. + ).1- + ).1.
A B 02 − 5 − 6
! " = 4 O 1 if " = 1 3!("/2) + O(") if " > 1
This gives Θ !%.'(… time algorithm Still open problem.
10
11
ú ú ú ú û ù ê ê ê ê ë é
ú ú ú û ù ê ê ê ê ë é
44 43 42 41 34 33 32 31 24 23 22 21 14 13 12 11 44 43 42 41 34 33 32 31 24 23 22 21 14 13 12 11
b b b b b b b b b b b b b b b b a a a a a a a a a a a a a a a a
ú ú ú ú û ù ê ê ê ê ë é + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + =
44 44 34 43 24 42 14 41 42 44 32 43 22 42 12 41 41 44 31 43 21 42 11 41 44 34 34 33 24 32 14 31 42 34 32 33 22 32 12 31 41 34 31 33 21 32 11 31 44 24 34 23 24 22 14 21 42 24 32 23 22 22 12 21 41 24 31 23 21 22 11 21 44 14 34 13 24 12 14 11 42 14 32 13 22 12 12 11 41 14 31 13 21 12 11 11
b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a ! ! ! !
12
ú ú ú ú û ù ê ê ê ê ë é
ú ú ú û ù ê ê ê ê ë é
44 43 42 41 34 33 32 31 24 23 22 21 14 13 12 11 44 43 42 41 34 33 32 31 24 23 22 21 14 13 12 11
b b b b b b b b b b b b b b b b a a a a a a a a a a a a a a a a
ú ú ú ú û ù ê ê ê ê ë é + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + =
44 44 34 43 24 42 14 41 42 44 32 43 22 42 12 41 41 44 31 43 21 42 11 41 44 34 34 33 24 32 14 31 42 34 32 33 22 32 12 31 41 34 31 33 21 32 11 31 44 24 34 23 24 22 14 21 42 24 32 23 22 22 12 21 41 24 31 23 21 22 11 21 44 14 34 13 24 12 14 11 42 14 32 13 22 12 12 11 41 14 31 13 21 12 11 11
b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a ! ! ! !
13
ú ú ú ú û ù ê ê ê ê ë é
ú ú ú û ù ê ê ê ê ë é
44 43 42 41 34 33 32 31 24 23 22 21 14 13 12 11 44 43 42 41 34 33 32 31 24 23 22 21 14 13 12 11
b b b b b b b b b b b b b b b b a a a a a a a a a a a a a a a a
ú ú ú ú û ù ê ê ê ê ë é + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + =
44 44 34 43 24 42 14 41 42 44 32 43 22 42 12 41 41 44 31 43 21 42 11 41 44 34 34 33 24 32 14 31 42 34 32 33 22 32 12 31 41 34 31 33 21 32 11 31 44 24 34 23 24 22 14 21 42 24 32 23 22 22 12 21 41 24 31 23 21 22 11 21 44 14 34 13 24 12 14 11 42 14 32 13 22 12 12 11 41 14 31 13 21 12 11 11
b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a ! ! ! !
14
15
16
Useful when (~500. I am curious how large ( need? One of the most important open problem: Solve matrix multiplication in O((-log= > () time
each sub-problem is at most a constant fraction of the size of the original problem
n n/2 n/2 n/4
18
+ , + Θ(")) for all