Skip to content

Commit 1fae8ae

Browse files
author
Sushmit Roy
committed
SR: Adding changes to Matrix Multiplication
1 parent 70245c7 commit 1fae8ae

File tree

6 files changed

+103
-23
lines changed

6 files changed

+103
-23
lines changed

.DS_Store

0 Bytes
Binary file not shown.

.idea/workspace.xml

Lines changed: 39 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.ipynb_checkpoints/Python3_chapter4-checkpoint.ipynb

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@
1212
"output_type": "stream",
1313
"text": [
1414
"b'\\x16\\r\\r\\n'\n",
15-
"3.5.1 |Continuum Analytics, Inc.| (default, Dec 7 2015, 11:24:55) \n",
15+
"3.5.1 |Anaconda 2.4.1 (x86_64)| (default, Dec 7 2015, 11:24:55) \n",
1616
"[GCC 4.2.1 (Apple Inc. build 5577)]\n",
1717
"b'\\x16\\r\\r\\n'\n",
18-
"3.5.1 |Continuum Analytics, Inc.| (default, Dec 7 2015, 11:24:55) \n",
18+
"3.5.1 |Anaconda 2.4.1 (x86_64)| (default, Dec 7 2015, 11:24:55) \n",
1919
"[GCC 4.2.1 (Apple Inc. build 5577)]\n",
2020
"b'\\x16\\r\\r\\n'\n"
2121
]
@@ -54,7 +54,7 @@
5454
"name": "stdout",
5555
"output_type": "stream",
5656
"text": [
57-
"{'#', '@', '?'}\n",
57+
"{'@', '#', '?'}\n",
5858
"2\n",
5959
"\n",
6060
" # ? @\n",
@@ -180,7 +180,7 @@
180180
" gnome hoop putty shooter slinky\n",
181181
"--------------------------------\n",
182182
" 240 55 133 90 150\n",
183-
"4.596345395924539e-25\n"
183+
"1.1071820576957945e-25\n"
184184
]
185185
}
186186
],
@@ -261,7 +261,7 @@
261261
},
262262
{
263263
"cell_type": "code",
264-
"execution_count": 12,
264+
"execution_count": 7,
265265
"metadata": {
266266
"collapsed": false
267267
},
@@ -291,13 +291,13 @@
291291
" 5 | 2\n",
292292
"\n",
293293
"False\n",
294-
"('b', 'B')\n",
295-
"('a', 'B')\n",
296294
"('b', 'A')\n",
295+
"('a', 'B')\n",
296+
"('b', 'B')\n",
297297
"0\n",
298298
"True\n",
299299
"True\n",
300-
"({'b', 'a'}, {'A', 'B'})\n",
300+
"({'a', 'b'}, {'A', 'B'})\n",
301301
"Addition starts\n",
302302
"True\n",
303303
"True\n",
@@ -317,6 +317,16 @@
317317
"True\n",
318318
"True\n"
319319
]
320+
},
321+
{
322+
"data": {
323+
"text/plain": [
324+
"True"
325+
]
326+
},
327+
"execution_count": 7,
328+
"metadata": {},
329+
"output_type": "execute_result"
320330
}
321331
],
322332
"source": [
@@ -396,7 +406,18 @@
396406
"print(v2*M2 == Vec({0, 2, 4, 6, 7},{}))\n",
397407
"v3 = Vec({'a','b'},{'a':1,'b':1})\n",
398408
"M3 = Mat(({'a', 'b'}, {0, 1}), {('a', 1): 1, ('b', 1): 1, ('a', 0): 1, ('b', 0): 1})\n",
399-
"print(v3*M3 == Vec({0, 1},{0: 2, 1: 2}))\n"
409+
"print(v3*M3 == Vec({0, 1},{0: 2, 1: 2}))\n",
410+
"B=Mat(({'a','b','c'}, {5,6}), {})\n",
411+
"B.D[1]\n",
412+
"v1.f\n",
413+
"v4 = Vec({'a','b'},{'a':1,'b':1})\n",
414+
"\n",
415+
"{key1[0]: M3[key1] for key1 in M3.f if key1[1] == 0}\n",
416+
"A = Mat(({0,1,2}, {0,1,2}), {(1,1):4, (0,0):0, (1,2):1, (1,0):5, (0,1):3, (0,2):2})\n",
417+
"B = Mat(({0,1,2}, {0,1,2}), {(1,0):5, (2,1):3, (1,1):2, (2,0):0, (0,0):1, (0,1):4})\n",
418+
"\n",
419+
"#A * B == Mat(({0,1,2}, {0,1,2}), {(0,0):15, (0,1):12, (1,0):25, (1,1):31})\n",
420+
"A * B"
400421
]
401422
}
402423
],

Python3_chapter4.ipynb

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
"name": "stdout",
5555
"output_type": "stream",
5656
"text": [
57-
"{'@', '#', '?'}\n",
57+
"{'?', '#', '@'}\n",
5858
"2\n",
5959
"\n",
6060
" # ? @\n",
@@ -180,7 +180,7 @@
180180
" gnome hoop putty shooter slinky\n",
181181
"--------------------------------\n",
182182
" 240 55 133 90 150\n",
183-
"1.262177448353619e-25\n"
183+
"9.956055712613346e-26\n"
184184
]
185185
}
186186
],
@@ -261,7 +261,7 @@
261261
},
262262
{
263263
"cell_type": "code",
264-
"execution_count": 7,
264+
"execution_count": 6,
265265
"metadata": {
266266
"collapsed": false
267267
},
@@ -292,8 +292,8 @@
292292
"\n",
293293
"False\n",
294294
"('b', 'A')\n",
295-
"('a', 'B')\n",
296295
"('b', 'B')\n",
296+
"('a', 'B')\n",
297297
"0\n",
298298
"True\n",
299299
"True\n",
@@ -317,6 +317,16 @@
317317
"True\n",
318318
"True\n"
319319
]
320+
},
321+
{
322+
"data": {
323+
"text/plain": [
324+
"Mat(({0, 1, 2}, {0, 1, 2}), {(0, 1): 12, (1, 0): 25, (0, 0): 15, (1, 1): 31})"
325+
]
326+
},
327+
"execution_count": 6,
328+
"metadata": {},
329+
"output_type": "execute_result"
320330
}
321331
],
322332
"source": [
@@ -396,7 +406,18 @@
396406
"print(v2*M2 == Vec({0, 2, 4, 6, 7},{}))\n",
397407
"v3 = Vec({'a','b'},{'a':1,'b':1})\n",
398408
"M3 = Mat(({'a', 'b'}, {0, 1}), {('a', 1): 1, ('b', 1): 1, ('a', 0): 1, ('b', 0): 1})\n",
399-
"print(v3*M3 == Vec({0, 1},{0: 2, 1: 2}))\n"
409+
"print(v3*M3 == Vec({0, 1},{0: 2, 1: 2}))\n",
410+
"B=Mat(({'a','b','c'}, {5,6}), {})\n",
411+
"B.D[1]\n",
412+
"v1.f\n",
413+
"v4 = Vec({'a','b'},{'a':1,'b':1})\n",
414+
"\n",
415+
"{key1[0]: M3[key1] for key1 in M3.f if key1[1] == 0}\n",
416+
"A = Mat(({0,1,2}, {0,1,2}), {(1,1):4, (0,0):0, (1,2):1, (1,0):5, (0,1):3, (0,2):2})\n",
417+
"B = Mat(({0,1,2}, {0,1,2}), {(1,0):5, (2,1):3, (1,1):2, (2,0):0, (0,0):1, (0,1):4})\n",
418+
"\n",
419+
"#A * B == Mat(({0,1,2}, {0,1,2}), {(0,0):15, (0,1):12, (1,0):25, (1,1):31})\n",
420+
"A * B"
400421
]
401422
}
402423
],

__pycache__/mat.cpython-35.pyc

810 Bytes
Binary file not shown.

mat.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -246,8 +246,14 @@ def matrix_matrix_mul(A, B):
246246
True
247247
"""
248248
assert A.D[1] == B.D[0]
249-
mat_mul =
250-
pass
249+
mat_mul = Mat((A.D[0], B.D[1]), {})
250+
for k in B.D[1]:
251+
vec_col = Vec(B.D[0], {key1[0]: B[key1] for key1 in B.f if key1[1] == k})
252+
for j in vec_col.D:
253+
if sum([A[key1]*vec_col[key1[1]] for key1 in A.f if key1[0] == j]) != 0: # if condition for sparsity
254+
mat_mul[j, k] = sum([A[key1]*vec_col[key1[1]] for key1 in A.f if key1[0] == j])
255+
256+
return mat_mul
251257

252258
################################################################################
253259

0 commit comments

Comments
 (0)