|  | 
| 54 | 54 |      "name": "stdout", | 
| 55 | 55 |      "output_type": "stream", | 
| 56 | 56 |      "text": [ | 
| 57 |  | -      "{'@', '#', '?'}\n", | 
|  | 57 | +      "{'@', '?', '#'}\n", | 
| 58 | 58 |       "2\n", | 
| 59 | 59 |       "\n", | 
| 60 | 60 |       "        #  ?  @\n", | 
|  | 
| 180 | 180 |       " gnome hoop putty shooter slinky\n", | 
| 181 | 181 |       "--------------------------------\n", | 
| 182 | 182 |       "   240   55   133      90    150\n", | 
| 183 |  | -      "1.1071820576957945e-25\n" | 
|  | 183 | +      "4.8568588212647255e-25\n" | 
| 184 | 184 |      ] | 
| 185 | 185 |     } | 
| 186 | 186 |    ], | 
|  | 
| 230 | 230 |       " 6  |  one   0   0   0\n", | 
| 231 | 231 |       "\n", | 
| 232 | 232 |       "\n", | 
| 233 |  | -      "       0 1   2 3   4   5   6\n", | 
| 234 |  | -      "     -----------------------\n", | 
| 235 |  | -      " 0  |  0 0   0 0   0   0 one\n", | 
| 236 |  | -      " 1  |  0 0   0 0   0 one   0\n", | 
| 237 |  | -      " 2  |  0 0   0 0 one   0   0\n", | 
| 238 |  | -      " 3  |  0 0 one 0   0   0   0\n", | 
|  | 233 | +      "         0\n", | 
|  | 234 | +      "     -----\n", | 
|  | 235 | +      " 0  |  one\n", | 
|  | 236 | +      " 1  |    0\n", | 
|  | 237 | +      " 2  |    0\n", | 
|  | 238 | +      " 3  |  one\n", | 
|  | 239 | +      "\n", | 
|  | 240 | +      "\n", | 
|  | 241 | +      "         0\n", | 
|  | 242 | +      "     -----\n", | 
|  | 243 | +      " 0  |    0\n", | 
|  | 244 | +      " 1  |    0\n", | 
|  | 245 | +      " 2  |  one\n", | 
|  | 246 | +      " 3  |  one\n", | 
|  | 247 | +      " 4  |    0\n", | 
|  | 248 | +      " 5  |    0\n", | 
|  | 249 | +      " 6  |  one\n", | 
|  | 250 | +      "\n", | 
|  | 251 | +      "\n", | 
|  | 252 | +      "         0\n", | 
|  | 253 | +      "     -----\n", | 
|  | 254 | +      " 0  |  one\n", | 
|  | 255 | +      " 1  |    0\n", | 
|  | 256 | +      " 2  |    0\n", | 
|  | 257 | +      " 3  |  one\n", | 
| 239 | 258 |       "\n" | 
| 240 | 259 |      ] | 
| 241 | 260 |     } | 
|  | 
| 245 | 264 |     "# Task 4.14.1 \n", | 
| 246 | 265 |     "G = listlist2mat([[one,zero,one,one],\n", | 
| 247 | 266 |     "                  [one,one,zero,one],[zero,zero,zero,one],\n", | 
| 248 |  | -    "                  [one,one,one,zero],[zero,zero,one,zero],[zero,one,zero,zero],[one,zero,zero,zero]])\n", | 
| 249 |  | -    "\n", | 
| 250 |  | -    "print(G)\n", | 
| 251 |  | -    "\n", | 
| 252 |  | -    "# Task 4.14.3\n", | 
| 253 |  | -    "\n", | 
|  | 267 | +    "                  [one,one,one,zero],[zero,zero,one,zero],\n", | 
|  | 268 | +    "                  [zero,one,zero,zero],[one,zero,zero,zero]])\n", | 
|  | 269 | +    "c1 = listlist2mat([[one],[zero],[zero],[one]])\n", | 
|  | 270 | +    "c = listlist2mat([[one,zero,zero,one]])\n", | 
|  | 271 | +    "res = G*c1\n", | 
|  | 272 | +    "#Task 4.14.3\n", | 
| 254 | 273 |     "R = listlist2mat([[zero,zero,zero,zero,zero,zero,one],\n", | 
| 255 | 274 |     "                 [zero,zero,zero,zero,zero,one,zero],\n", | 
| 256 | 275 |     "                 [zero,zero,zero,zero,one,zero,zero],\n", | 
| 257 | 276 |     "                 [zero,zero,one,zero,zero,zero,zero]])\n", | 
| 258 |  | -    "\n", | 
| 259 |  | -    "print(R)" | 
|  | 277 | +    "print(G)\n", | 
|  | 278 | +    "print(c1)\n", | 
|  | 279 | +    "print(G*c1)\n", | 
|  | 280 | +    "print(R * res)\n" | 
| 260 | 281 |    ] | 
| 261 | 282 |   }, | 
| 262 | 283 |   { | 
| 263 | 284 |    "cell_type": "code", | 
| 264 |  | -   "execution_count": 7, | 
|  | 285 | +   "execution_count": 6, | 
| 265 | 286 |    "metadata": { | 
| 266 | 287 |     "collapsed": false | 
| 267 | 288 |    }, | 
|  | 
| 291 | 312 |       " 5  |  2\n", | 
| 292 | 313 |       "\n", | 
| 293 | 314 |       "False\n", | 
| 294 |  | -      "('b', 'A')\n", | 
| 295 | 315 |       "('a', 'B')\n", | 
| 296 | 316 |       "('b', 'B')\n", | 
|  | 317 | +      "('b', 'A')\n", | 
| 297 | 318 |       "0\n", | 
| 298 | 319 |       "True\n", | 
| 299 | 320 |       "True\n", | 
| 300 |  | -      "({'a', 'b'}, {'A', 'B'})\n", | 
|  | 321 | +      "({'a', 'b'}, {'B', 'A'})\n", | 
| 301 | 322 |       "Addition starts\n", | 
| 302 | 323 |       "True\n", | 
| 303 | 324 |       "True\n", | 
|  | 
| 315 | 336 |       "True\n", | 
| 316 | 337 |       "True\n", | 
| 317 | 338 |       "True\n", | 
| 318 |  | -      "True\n" | 
|  | 339 | +      "True\n", | 
|  | 340 | +      "testing for mat * mat\n", | 
|  | 341 | +      "True\n", | 
|  | 342 | +      "\n", | 
|  | 343 | +      "        0  1 2\n", | 
|  | 344 | +      "     ---------\n", | 
|  | 345 | +      " 0  |  15 12 0\n", | 
|  | 346 | +      " 1  |  25 31 0\n", | 
|  | 347 | +      " 2  |   0  0 0\n", | 
|  | 348 | +      "\n", | 
|  | 349 | +      "\n", | 
|  | 350 | +      "       a  b\n", | 
|  | 351 | +      "     ------\n", | 
|  | 352 | +      " 0  |  4 -3\n", | 
|  | 353 | +      " 1  |  1  0\n", | 
|  | 354 | +      " 2  |  1 -2\n", | 
|  | 355 | +      "\n", | 
|  | 356 | +      "\n", | 
|  | 357 | +      "       x  y\n", | 
|  | 358 | +      "     ------\n", | 
|  | 359 | +      " a  |  3 -2\n", | 
|  | 360 | +      " b  |  4 -1\n", | 
|  | 361 | +      "\n", | 
|  | 362 | +      "\n", | 
|  | 363 | +      "        x  y\n", | 
|  | 364 | +      "     -------\n", | 
|  | 365 | +      " 0  |   0 -5\n", | 
|  | 366 | +      " 1  |   3 -2\n", | 
|  | 367 | +      " 2  |  -5  0\n", | 
|  | 368 | +      "\n", | 
|  | 369 | +      "True\n", | 
|  | 370 | +      "\n", | 
|  | 371 | +      "       (1, 1) (2, 2)\n", | 
|  | 372 | +      "     ---------------\n", | 
|  | 373 | +      " 0  |       0      0\n", | 
|  | 374 | +      " 1  |       0      0\n", | 
|  | 375 | +      "\n", | 
|  | 376 | +      "True\n", | 
|  | 377 | +      "\n", | 
|  | 378 | +      "       c  d\n", | 
|  | 379 | +      "     ------\n", | 
|  | 380 | +      " a  |  0  5\n", | 
|  | 381 | +      " b  |  0 15\n", | 
|  | 382 | +      "\n", | 
|  | 383 | +      "True\n", | 
|  | 384 | +      "True\n", | 
|  | 385 | +      "\n", | 
|  | 386 | +      "       A B\n", | 
|  | 387 | +      "     -----\n", | 
|  | 388 | +      " a  |  1 2\n", | 
|  | 389 | +      " b  |  3 4\n", | 
|  | 390 | +      "\n", | 
|  | 391 | +      "\n", | 
|  | 392 | +      "       c d\n", | 
|  | 393 | +      "     -----\n", | 
|  | 394 | +      " A  |  0 5\n", | 
|  | 395 | +      " B  |  0 0\n", | 
|  | 396 | +      "\n" | 
| 319 | 397 |      ] | 
| 320 |  | -    }, | 
| 321 |  | -    { | 
| 322 |  | -     "data": { | 
| 323 |  | -      "text/plain": [ | 
| 324 |  | -       "True" | 
| 325 |  | -      ] | 
| 326 |  | -     }, | 
| 327 |  | -     "execution_count": 7, | 
| 328 |  | -     "metadata": {}, | 
| 329 |  | -     "output_type": "execute_result" | 
| 330 | 398 |     } | 
| 331 | 399 |    ], | 
| 332 | 400 |    "source": [ | 
|  | 
| 412 | 480 |     "v1.f\n", | 
| 413 | 481 |     "v4 = Vec({'a','b'},{'a':1,'b':1})\n", | 
| 414 | 482 |     "\n", | 
| 415 |  | -    "{key1[0]: M3[key1] for key1 in M3.f if key1[1] == 0}\n", | 
|  | 483 | +    "#{key1[0]: M3[key1] for key1 in M3.f if key1[1] == 0}\n", | 
|  | 484 | +    "print('testing for mat * mat')\n", | 
| 416 | 485 |     "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 | 486 |     "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 | 487 |     "\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" | 
|  | 488 | +    "print(A * B == Mat(({0,1,2}, {0,1,2}), {(0,0):15, (0,1):12, (1,0):25, (1,1):31}))\n", | 
|  | 489 | +    "#print(A * B)\n", | 
|  | 490 | +    "C = Mat(({0,1,2}, {'a','b'}), {(0,'a'):4, (0,'b'):-3, (1,'a'):1, (2,'a'):1, (2,'b'):-2})\n", | 
|  | 491 | +    "D = Mat(({'a','b'}, {'x','y'}), {('a','x'):3, ('a','y'):-2, ('b','x'):4, ('b','y'):-1})\n", | 
|  | 492 | +    "#print(C)\n", | 
|  | 493 | +    "#print(D)\n", | 
|  | 494 | +    "#print(C*D)\n", | 
|  | 495 | +    "print(C*D == Mat(({0,1,2}, {'x','y'}), {(0,'y'):-5, (1,'x'):3, (1,'y'):-2, (2,'x'):-5}))\n", | 
|  | 496 | +    "M = Mat(({0, 1}, {'a', 'c', 'b'}), {})\n", | 
|  | 497 | +    "N = Mat(({'a', 'c', 'b'}, {(1, 1), (2, 2)}), {})\n", | 
|  | 498 | +    "#print(M * N)\n", | 
|  | 499 | +    "print(M*N == Mat(({0,1}, {(1,1), (2,2)}), {}))\n", | 
|  | 500 | +    "E = Mat(({'a','b'},{'A','B'}), {('a','A'):1,('a','B'):2,('b','A'):3,('b','B'):4})\n", | 
|  | 501 | +    "F = Mat(({'A','B'},{'c','d'}),{('A','d'):5})\n", | 
|  | 502 | +    "\n", | 
|  | 503 | +    "#print(E * F)\n", | 
|  | 504 | +    "print(E*F == Mat(({'a', 'b'}, {'d', 'c'}), {('b', 'd'): 15, ('a', 'd'): 5}))\n", | 
|  | 505 | +    "print(F.transpose()*E.transpose() == \n", | 
|  | 506 | +    "      Mat(({'d', 'c'}, {'a', 'b'}), {('d', 'b'): 15, ('d', 'a'): 5}))\n", | 
|  | 507 | +    "\n", | 
|  | 508 | +    "#print(Mat(({0,1,2}, {'x','y'}), {(0,'y'):-5, (1,'x'):3, (1,'y'):-2, (2,'x'):-5}))\n", | 
|  | 509 | +    "#print(E)\n", | 
|  | 510 | +    "#print(F)\n", | 
|  | 511 | +    "\n" | 
|  | 512 | +   ] | 
|  | 513 | +  }, | 
|  | 514 | +  { | 
|  | 515 | +   "cell_type": "code", | 
|  | 516 | +   "execution_count": 7, | 
|  | 517 | +   "metadata": { | 
|  | 518 | +    "collapsed": false | 
|  | 519 | +   }, | 
|  | 520 | +   "outputs": [ | 
|  | 521 | +    { | 
|  | 522 | +     "name": "stdout", | 
|  | 523 | +     "output_type": "stream", | 
|  | 524 | +     "text": [ | 
|  | 525 | +      "0\n", | 
|  | 526 | +      "0\n", | 
|  | 527 | +      "5\n", | 
|  | 528 | +      "15\n", | 
|  | 529 | +      "\n", | 
|  | 530 | +      "       c  d\n", | 
|  | 531 | +      "     ------\n", | 
|  | 532 | +      " a  |  0  5\n", | 
|  | 533 | +      " b  |  0 15\n", | 
|  | 534 | +      "\n" | 
|  | 535 | +     ] | 
|  | 536 | +    } | 
|  | 537 | +   ], | 
|  | 538 | +   "source": [ | 
|  | 539 | +    "E = Mat(({'a','b'},{'A','B'}), {('a','A'):1,('a','B'):2,('b','A'):3,('b','B'):4})\n", | 
|  | 540 | +    "F = Mat(({'A','B'},{'c','d'}),{('A','d'):5})\n", | 
|  | 541 | +    "mat_mul = Mat((E.D[0], F.D[1]), {})\n", | 
|  | 542 | +    "for k in F.D[1]:\n", | 
|  | 543 | +    "        vec_col = Vec(F.D[0], {key1[0]: F[key1] for key1 in F.f if key1[1] == k})\n", | 
|  | 544 | +    "        # print(vec_col)\n", | 
|  | 545 | +    "        for j in E.D[0]:\n", | 
|  | 546 | +    "            mat_mul[j, k] = sum([E[key1]*vec_col[key1[1]] for key1 in E.f if key1[0] == j])\n", | 
|  | 547 | +    "            print(mat_mul[j,k])\n", | 
|  | 548 | +    "    \n", | 
|  | 549 | +    "print(mat_mul)\n", | 
|  | 550 | +    "#print(E,F)\n" | 
| 421 | 551 |    ] | 
| 422 | 552 |   } | 
| 423 | 553 |  ], | 
|  | 
0 commit comments