From d6c61d988bfa4255baf9cdae42db59ebee38363f Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Tue, 25 May 2021 17:10:49 +0200 Subject: Added files --- .../X1-ComputationalComplexity-checkpoint.ipynb | 394 +++++ ...mputationalComplexity-notebook-checkpoint.ipynb | 412 ++++++ .../X2-StudentsRequests-checkpoint.ipynb | 165 +++ .../X2-StudentsRequests-notebook-checkpoint.ipynb | 298 ++++ src/Lecture7/slides/X1-ComputationalComplexity.aux | 100 ++ src/Lecture7/slides/X1-ComputationalComplexity.log | 1513 ++++++++++++++++++++ src/Lecture7/slides/X1-ComputationalComplexity.nav | 81 ++ src/Lecture7/slides/X1-ComputationalComplexity.out | 0 src/Lecture7/slides/X1-ComputationalComplexity.pdf | Bin 0 -> 1769406 bytes src/Lecture7/slides/X1-ComputationalComplexity.snm | 0 src/Lecture7/slides/X1-ComputationalComplexity.tex | 608 ++++++++ src/Lecture7/slides/X1-ComputationalComplexity.toc | 0 src/Lecture7/slides/X1-ComputationalComplexity.vrb | 10 + src/Lecture7/slides/X2-StudentsRequests.aux | 67 + src/Lecture7/slides/X2-StudentsRequests.log | 1307 +++++++++++++++++ src/Lecture7/slides/X2-StudentsRequests.nav | 47 + src/Lecture7/slides/X2-StudentsRequests.out | 0 src/Lecture7/slides/X2-StudentsRequests.pdf | Bin 0 -> 271722 bytes src/Lecture7/slides/X2-StudentsRequests.snm | 0 src/Lecture7/slides/X2-StudentsRequests.tex | 309 ++++ src/Lecture7/slides/X2-StudentsRequests.toc | 0 src/Lecture7/slides/X2-StudentsRequests.vrb | 10 + src/Lecture7/slides/img/DH.svg | 181 +++ src/Lecture7/slides/img/plot1.png | Bin 0 -> 393818 bytes src/Lecture7/slides/img/plot2.png | Bin 0 -> 217408 bytes src/Lecture7/slides/img/plot3.png | Bin 0 -> 286064 bytes src/Lecture7/slides/img/plot4.png | Bin 0 -> 363125 bytes src/Lecture7/slides/img/plot5.png | Bin 0 -> 319660 bytes src/Lecture7/slides/img/unilu.jpg | Bin 0 -> 41957 bytes src/Lecture7/slides/svg-inkscape/DH_svg-tex.pdf | Bin 0 -> 29915 bytes .../slides/svg-inkscape/DH_svg-tex.pdf_tex | 58 + 31 files changed, 5560 insertions(+) create mode 100644 src/Lecture7/slides/.ipynb_checkpoints/X1-ComputationalComplexity-checkpoint.ipynb create mode 100644 src/Lecture7/slides/.ipynb_checkpoints/X1-ComputationalComplexity-notebook-checkpoint.ipynb create mode 100644 src/Lecture7/slides/.ipynb_checkpoints/X2-StudentsRequests-checkpoint.ipynb create mode 100644 src/Lecture7/slides/.ipynb_checkpoints/X2-StudentsRequests-notebook-checkpoint.ipynb create mode 100644 src/Lecture7/slides/X1-ComputationalComplexity.aux create mode 100644 src/Lecture7/slides/X1-ComputationalComplexity.log create mode 100644 src/Lecture7/slides/X1-ComputationalComplexity.nav create mode 100644 src/Lecture7/slides/X1-ComputationalComplexity.out create mode 100644 src/Lecture7/slides/X1-ComputationalComplexity.pdf create mode 100644 src/Lecture7/slides/X1-ComputationalComplexity.snm create mode 100644 src/Lecture7/slides/X1-ComputationalComplexity.tex create mode 100644 src/Lecture7/slides/X1-ComputationalComplexity.toc create mode 100644 src/Lecture7/slides/X1-ComputationalComplexity.vrb create mode 100644 src/Lecture7/slides/X2-StudentsRequests.aux create mode 100644 src/Lecture7/slides/X2-StudentsRequests.log create mode 100644 src/Lecture7/slides/X2-StudentsRequests.nav create mode 100644 src/Lecture7/slides/X2-StudentsRequests.out create mode 100644 src/Lecture7/slides/X2-StudentsRequests.pdf create mode 100644 src/Lecture7/slides/X2-StudentsRequests.snm create mode 100644 src/Lecture7/slides/X2-StudentsRequests.tex create mode 100644 src/Lecture7/slides/X2-StudentsRequests.toc create mode 100644 src/Lecture7/slides/X2-StudentsRequests.vrb create mode 100644 src/Lecture7/slides/img/DH.svg create mode 100644 src/Lecture7/slides/img/plot1.png create mode 100644 src/Lecture7/slides/img/plot2.png create mode 100644 src/Lecture7/slides/img/plot3.png create mode 100644 src/Lecture7/slides/img/plot4.png create mode 100644 src/Lecture7/slides/img/plot5.png create mode 100644 src/Lecture7/slides/img/unilu.jpg create mode 100644 src/Lecture7/slides/svg-inkscape/DH_svg-tex.pdf create mode 100644 src/Lecture7/slides/svg-inkscape/DH_svg-tex.pdf_tex (limited to 'src/Lecture7/slides') diff --git a/src/Lecture7/slides/.ipynb_checkpoints/X1-ComputationalComplexity-checkpoint.ipynb b/src/Lecture7/slides/.ipynb_checkpoints/X1-ComputationalComplexity-checkpoint.ipynb new file mode 100644 index 0000000..ab7dd49 --- /dev/null +++ b/src/Lecture7/slides/.ipynb_checkpoints/X1-ComputationalComplexity-checkpoint.ipynb @@ -0,0 +1,394 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Nested loops\n", + "\n", + "The following two functions compute sum and product of matrices, respectively.\n", + "\n", + "By counting the nested loops it is easy to see that `add()` is $O(n^2)$ while `prod()` is $O(n^3)$." + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time for add: 0.00012074300000008975\n", + "Time for prod: 0.00036587199999971176\n" + ] + } + ], + "source": [ + "from random import randint\n", + "import time\n", + "\n", + "def add(A, B):\n", + " S = [[0] * len(A) for i in range(len(A))]\n", + " for i in range(len(A)):\n", + " for j in range(len(A)):\n", + " S[i][j] = A[i][j] + B[i][j]\n", + " return S\n", + "\n", + "def prod(A, B):\n", + " S = [[0] * len(A) for i in range(len(A))]\n", + " for i in range(len(A)):\n", + " for j in range(len(A)):\n", + " for k in range(len(A)):\n", + " S[i][j] = S[i][j] + A[i][k] * B[k][j]\n", + " return S\n", + "\n", + "N = 10\n", + "A = [ [randint(0,100) for i in range(N)] for j in range(N) ]\n", + "B = [ [randint(0,100) for i in range(N)] for j in range(N) ]\n", + "\n", + "t0 = time.process_time()\n", + "add(A,B)\n", + "t1 = time.process_time()\n", + "prod(A,B)\n", + "t2 = time.process_time()\n", + "\n", + "print(\"Time for add: \", t1-t0)\n", + "print(\"Time for prod:\", t2-t1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Sorting a list, slow version\n", + "\n", + "The following code implements a slow version of the so-called *insertion sort* alogithm\n", + "\n", + "Complexity: $O(n^2)$." + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Running time: 1.1012288430000012\n" + ] + } + ], + "source": [ + "from random import randint\n", + "import time\n", + "\n", + "def correct_position(e, S):\n", + " for i in range(len(S)):\n", + " if S[i] > e:\n", + " return i\n", + " return len(S)\n", + "\n", + "def sort_list(L):\n", + " S = []\n", + " for e in L:\n", + " cp = correct_position(e, S)\n", + " S.insert(cp, e)\n", + " return S\n", + "\n", + "N = 10000\n", + "L = [randint(0,10**9) for i in range(N)]\n", + "\n", + "t0 = time.process_time()\n", + "sort_list(L)\n", + "t1 = time.process_time()\n", + "\n", + "print(\"Running time:\", t1-t0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Binary search\n", + "\n", + "The following code implements a binary search.\n", + "\n", + "Complexity: $O(\\log_2(n))$" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The correct position of e = 658230309 in L is:\n", + "... 658211821 658224379 e 658234625 658246765 ...\n", + "\n", + "Time for sorting: 0.021211020999999164\n", + "Time for searching: 7.820199999741817e-05\n" + ] + } + ], + "source": [ + "from random import randint\n", + "import time\n", + "\n", + "def binary_search(e, S, start, end):\n", + " if start == end:\n", + " return start\n", + " midpoint = (start+end) // 2\n", + " if e < S[midpoint]:\n", + " return binary_search(e, S, start, midpoint)\n", + " else:\n", + " return binary_search(e, S, midpoint+1, end)\n", + " \n", + "N = 100000\n", + "L = [randint(0,10**9) for i in range(N)]\n", + "e = randint(0,10**9)\n", + "\n", + "t0 = time.process_time()\n", + "L.sort() # Using Python's sort()\n", + "t1 = time.process_time()\n", + "i = binary_search(e, L, 0, len(L))\n", + "t2 = time.process_time()\n", + "print(\"The correct position of e =\", e, \"in L is:\")\n", + "print(\"...\", L[i-2], L[i-1], \"e\", L[i], L[i+1], \"...\")\n", + "print(\"\")\n", + "print(\"Time for sorting: \", t1-t0)\n", + "print(\"Time for searching:\", t2-t1)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Sorting a list, fast version (with binary_search)\n", + "\n", + "The following code uses the function `binary_search()` above instead of `correct_position()` in our insertion sort algorithm.\n", + "\n", + "Complexity: $O(n\\log_2(n))$" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Running time: 0.03710268399998995\n" + ] + } + ], + "source": [ + "from random import randint\n", + "import time\n", + "\n", + "def binary_search(e, S, start, end):\n", + " if start == end:\n", + " return start\n", + " midpoint = (start+end) // 2\n", + " if e < S[midpoint]:\n", + " return binary_search(e, S, start, midpoint)\n", + " else:\n", + " return binary_search(e, S, midpoint+1, end)\n", + " \n", + "def sort_list(L):\n", + " S = []\n", + " for e in L:\n", + " cp = binary_search(e, S, 0, len(S)) # Changed here\n", + " S.insert(cp, e)\n", + " return S\n", + " \n", + "N = 10000\n", + "L = [randint(0,10**9) for i in range(N)]\n", + "\n", + "t0 = time.process_time()\n", + "sort_list(L)\n", + "t1 = time.process_time()\n", + "\n", + "print(\"Running time:\", t1-t0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Fast exponentiation\n", + "\n", + "The following cell contains two functions for computing $a^n$ ($n$ non-negative integer): a slow one that runs in $O(n)$ and a fast one that runs in $O(\\log_2(n))$. We compare these two also with Python's built-in operator `**`.\n", + "\n", + "Complexity: $O(n)$ for the slow algorithm, $O(\\log_2(n))$ for the other two." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2.71828179834636\n", + "2.7182817863957984\n", + "2.7182817983473577\n", + "Time for slow_power(): 3.234879998000004\n", + "Time for fast_power(): 9.059099999575437e-05\n", + "Time for Python's **: 0.00010159500000384014\n" + ] + } + ], + "source": [ + "import time\n", + "\n", + "def slow_power(a, n):\n", + " r = 1\n", + " for i in range(n):\n", + " r = r * a\n", + " return r\n", + "\n", + "def fast_power(a, n):\n", + " if n == 0:\n", + " return 1\n", + " if n%2 == 0:\n", + " return fast_power(a*a, n//2)\n", + " else:\n", + " return a * fast_power(a, n-1)\n", + "\n", + "a = 1.00000001\n", + "n = 100000000\n", + "\n", + "t0 = time.process_time()\n", + "print(slow_power(a, n))\n", + "t1 = time.process_time()\n", + "print(fast_power(a, n))\n", + "t2 = time.process_time()\n", + "print(a**n)\n", + "t3 = time.process_time()\n", + "\n", + "print(\"Time for slow_power():\", t1-t0)\n", + "print(\"Time for fast_power():\", t2-t1)\n", + "print(\"Time for Python's **: \", t3-t2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Fast gcd\n", + "\n", + "Complexity: $O(\\log_2(n))$" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "126\n", + "Running time: 0.00017707599999994272\n" + ] + } + ], + "source": [ + "import time\n", + "\n", + "def gcd(a, b):\n", + " if b == 0:\n", + " return a\n", + " else:\n", + " return gcd(b, a%b)\n", + "\n", + "t0 = time.process_time()\n", + "print(gcd(155275387236018, 572335397352432))\n", + "t1 = time.process_time()\n", + "\n", + "print(\"Running time:\", t1-t0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Fibonacci numbers\n", + "\n", + "In the following cell there are two functions that compute the $n$-th Fibonacci number. They are almost the same, but the second one memorizes the results in a list to avoid computing them multiple times, and it is much much faster.\n", + "\n", + "Complexity: $O\\left(\\left(\\frac{1+\\sqrt 5}{2}\\right)^n\\right)\\sim O(1.6^n)$ for the slow version, $O(n)$ for the fast version." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import time\n", + "\n", + "F_memorized = [-1] * (10**6)\n", + "\n", + "def F_slow(n):\n", + " if n <= 1:\n", + " return n\n", + " else:\n", + " return F_slow(n-1) + F_slow(n-2)\n", + " \n", + "def F_fast(n):\n", + " if F_memorized[n] == -1:\n", + " if n <= 1:\n", + " F_memorized[n] = n\n", + " else:\n", + " F_memorized[n] = F_fast(n-1) + F_fast(n-2)\n", + " \n", + " return F_memorized[n]\n", + "\n", + "n = 40\n", + "\n", + "t0 = time.process_time()\n", + "print(F_slow(n))\n", + "t1 = time.process_time()\n", + "print(F_fast(n))\n", + "t2 = time.process_time()\n", + "\n", + "print(\"Time for F_slow:\", t1-t0)\n", + "print(\"Time for F_fast:\", t2-t1)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/src/Lecture7/slides/.ipynb_checkpoints/X1-ComputationalComplexity-notebook-checkpoint.ipynb b/src/Lecture7/slides/.ipynb_checkpoints/X1-ComputationalComplexity-notebook-checkpoint.ipynb new file mode 100644 index 0000000..16a6d40 --- /dev/null +++ b/src/Lecture7/slides/.ipynb_checkpoints/X1-ComputationalComplexity-notebook-checkpoint.ipynb @@ -0,0 +1,412 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Nested loops\n", + "\n", + "The following two functions compute sum and product of matrices, respectively.\n", + "\n", + "By counting the nested loops it is easy to see that `add()` is $O(n^2)$ while `prod()` is $O(n^3)$." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time for add: 0.005766554000000035\n", + "Time for prod: 1.3871021639999999\n" + ] + } + ], + "source": [ + "from random import randint\n", + "import time\n", + "\n", + "def add(A, B):\n", + " S = [[0] * len(A) for i in range(len(A))]\n", + " for i in range(len(A)):\n", + " for j in range(len(A)):\n", + " S[i][j] = A[i][j] + B[i][j]\n", + " return S\n", + "\n", + "def prod(A, B):\n", + " S = [[0] * len(A) for i in range(len(A))]\n", + " for i in range(len(A)):\n", + " for j in range(len(A)):\n", + " for k in range(len(A)):\n", + " S[i][j] = S[i][j] + A[i][k] * B[k][j]\n", + " return S\n", + "\n", + "N = 200\n", + "A = [ [randint(0,100) for i in range(N)] for j in range(N) ]\n", + "B = [ [randint(0,100) for i in range(N)] for j in range(N) ]\n", + "\n", + "t0 = time.process_time()\n", + "add(A,B)\n", + "t1 = time.process_time()\n", + "prod(A,B)\n", + "t2 = time.process_time()\n", + "\n", + "print(\"Time for add: \", t1-t0)\n", + "print(\"Time for prod:\", t2-t1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Sorting a list, slow version\n", + "\n", + "The following code implements a slow version of the so-called *insertion sort* alogithm\n", + "\n", + "Complexity: $O(n^2)$." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Running time: 1.1191449070000001\n" + ] + } + ], + "source": [ + "from random import randint\n", + "import time\n", + "\n", + "def correct_position(e, S):\n", + " for i in range(len(S)):\n", + " if S[i] > e:\n", + " return i\n", + " return len(S)\n", + "\n", + "def sort_list(L):\n", + " S = []\n", + " for e in L:\n", + " cp = correct_position(e, S)\n", + " S.insert(cp, e)\n", + " return S\n", + "\n", + "N = 10000\n", + "L = [randint(0,10**9) for i in range(N)]\n", + "\n", + "t0 = time.process_time()\n", + "sort_list(L)\n", + "t1 = time.process_time()\n", + "\n", + "print(\"Running time:\", t1-t0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Binary search\n", + "\n", + "The following code implements a binary search.\n", + "\n", + "Complexity: $O(\\log_2(n))$" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The correct position of e = 216197744 in L is:\n", + "... 216196218 216197540 e 216198673 216198962 ...\n", + "\n", + "Time for sorting: 0.26413054400000036\n", + "Time for searching: 9.616099999965044e-05\n" + ] + } + ], + "source": [ + "from random import randint\n", + "import time\n", + "\n", + "def binary_search(e, S, start, end):\n", + " if start == end:\n", + " return start\n", + " midpoint = (start+end) // 2\n", + " if e < S[midpoint]:\n", + " return binary_search(e, S, start, midpoint)\n", + " else:\n", + " return binary_search(e, S, midpoint+1, end)\n", + " \n", + "N = 1000000\n", + "L = [randint(0,10**9) for i in range(N)]\n", + "e = randint(0,10**9)\n", + "\n", + "t0 = time.process_time()\n", + "L.sort() # Using Python's sort()\n", + "t1 = time.process_time()\n", + "i = binary_search(e, L, 0, len(L))\n", + "t2 = time.process_time()\n", + "print(\"The correct position of e =\", e, \"in L is:\")\n", + "print(\"...\", L[i-2], L[i-1], \"e\", L[i], L[i+1], \"...\")\n", + "print(\"\")\n", + "print(\"Time for sorting: \", t1-t0)\n", + "print(\"Time for searching:\", t2-t1)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Sorting a list, fast version (with binary_search)\n", + "\n", + "The following code uses the function `binary_search()` above instead of `correct_position()` in our insertion sort algorithm.\n", + "\n", + "Complexity: $O(n\\log_2(n))$" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Running time: 0.03710268399998995\n" + ] + } + ], + "source": [ + "from random import randint\n", + "import time\n", + "\n", + "def binary_search(e, S, start, end):\n", + " if start == end:\n", + " return start\n", + " midpoint = (start+end) // 2\n", + " if e < S[midpoint]:\n", + " return binary_search(e, S, start, midpoint)\n", + " else:\n", + " return binary_search(e, S, midpoint+1, end)\n", + " \n", + "def sort_list(L):\n", + " S = []\n", + " for e in L:\n", + " cp = binary_search(e, S, 0, len(S)) # Changed here\n", + " S.insert(cp, e)\n", + " return S\n", + " \n", + "N = 10000\n", + "L = [randint(0,10**9) for i in range(N)]\n", + "\n", + "t0 = time.process_time()\n", + "sort_list(L)\n", + "t1 = time.process_time()\n", + "\n", + "print(\"Running time:\", t1-t0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Fast exponentiation\n", + "\n", + "The following cell contains two functions for computing $a^n$ ($n$ non-negative integer): a slow one that runs in $O(n)$ and a fast one that runs in $O(\\log_2(n))$. We compare these two also with Python's built-in operator `**`.\n", + "\n", + "Complexity: $O(n)$ for the slow algorithm, $O(\\log_2(n))$ for the other two." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2.71828179834636\n", + "2.7182817863957984\n", + "2.7182817983473577\n", + "Time for slow_power(): 3.234879998000004\n", + "Time for fast_power(): 9.059099999575437e-05\n", + "Time for Python's **: 0.00010159500000384014\n" + ] + } + ], + "source": [ + "import time\n", + "\n", + "def slow_power(a, n):\n", + " r = 1\n", + " for i in range(n):\n", + " r = r * a\n", + " return r\n", + "\n", + "def fast_power(a, n):\n", + " if n == 0:\n", + " return 1\n", + " if n%2 == 0:\n", + " return fast_power(a*a, n//2)\n", + " else:\n", + " return a * fast_power(a, n-1)\n", + "\n", + "a = 1.00000001\n", + "n = 100000000\n", + "\n", + "t0 = time.process_time()\n", + "print(slow_power(a, n))\n", + "t1 = time.process_time()\n", + "print(fast_power(a, n))\n", + "t2 = time.process_time()\n", + "print(a**n)\n", + "t3 = time.process_time()\n", + "\n", + "print(\"Time for slow_power():\", t1-t0)\n", + "print(\"Time for fast_power():\", t2-t1)\n", + "print(\"Time for Python's **: \", t3-t2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Fast gcd\n", + "\n", + "Complexity: $O(\\log_2(n))$" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "126\n", + "Running time: 0.00017707599999994272\n" + ] + } + ], + "source": [ + "import time\n", + "\n", + "def gcd(a, b):\n", + " if b == 0:\n", + " return a\n", + " else:\n", + " return gcd(b, a%b)\n", + "\n", + "t0 = time.process_time()\n", + "print(gcd(155275387236018, 572335397352432))\n", + "t1 = time.process_time()\n", + "\n", + "print(\"Running time:\", t1-t0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Fibonacci numbers\n", + "\n", + "In the following cell there are two functions that compute the $n$-th Fibonacci number. They are almost the same, but the second one memorizes the results in a list to avoid computing them multiple times, and it is much much faster.\n", + "\n", + "Complexity: $O\\left(\\left(\\frac{1+\\sqrt 5}{2}\\right)^n\\right)\\sim O(1.6^n)$ for the slow version, $O(n)$ for the fast version." + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "9227465\n", + "9227465\n", + "Time for F_slow: 2.3301570169999906\n", + "Time for F_fast: 8.848800000293977e-05\n" + ] + } + ], + "source": [ + "import time\n", + "\n", + "F_memorized = [-1] * (10**6)\n", + "\n", + "def F_slow(n):\n", + " if n <= 1:\n", + " return n\n", + " else:\n", + " return F_slow(n-1) + F_slow(n-2)\n", + " \n", + "def F_fast(n):\n", + " if F_memorized[n] == -1:\n", + " if n <= 1:\n", + " F_memorized[n] = n\n", + " else:\n", + " F_memorized[n] = F_fast(n-1) + F_fast(n-2)\n", + " \n", + " return F_memorized[n]\n", + "\n", + "n = 35\n", + "\n", + "t0 = time.process_time()\n", + "print(F_slow(n))\n", + "t1 = time.process_time()\n", + "print(F_fast(n))\n", + "t2 = time.process_time()\n", + "\n", + "print(\"Time for F_slow:\", t1-t0)\n", + "print(\"Time for F_fast:\", t2-t1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/src/Lecture7/slides/.ipynb_checkpoints/X2-StudentsRequests-checkpoint.ipynb b/src/Lecture7/slides/.ipynb_checkpoints/X2-StudentsRequests-checkpoint.ipynb new file mode 100644 index 0000000..a35bb8d --- /dev/null +++ b/src/Lecture7/slides/.ipynb_checkpoints/X2-StudentsRequests-checkpoint.ipynb @@ -0,0 +1,165 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Diffie-Hellman key exchange\n", + "\n", + "The following is a simple implementation of the classic [Diffie-Hellman key exchange](https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange) cryptographic protocol." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Public key: p = 20747 and g = 13428 \n", + "\n", + "[[ Alice's secret key: a = 12403 ]]\n", + "[[ Bob's secret key: b = 17642 ]] \n", + "\n", + "Alice sends h1 = 14710 to Bob\n", + "Bob sends h2 = 10680 to Alice \n", + "\n", + "Alice computed 10455 using h2 and her secret a\n", + "Bob computed 10455 using h1 and his secret b\n" + ] + } + ], + "source": [ + "# Public information:\n", + "p = Primes()[10^3 + randint(1,10000)] # random prime\n", + "g = randint(2, p-1) # random integer\n", + "\n", + "print(\"Public key: p =\", p, \"and g =\", g, \"\\n\")\n", + "\n", + "a = randint(2, p-1) # Only Alice knows this\n", + "b = randint(2, p-1) # Only Bob knows this\n", + "\n", + "print(\"[[ Alice's secret key: a =\", a, \"]]\")\n", + "print(\"[[ Bob's secret key: b =\", b, \"]]\", \"\\n\")\n", + "\n", + "h1 = (g^a) % p # Alice sends this to Bob\n", + "h2 = (g^b) % p # Bob sends this to Alice\n", + "\n", + "print(\"Alice sends h1 =\", h1, \"to Bob\")\n", + "print(\"Bob sends h2 =\", h2, \"to Alice\", \"\\n\")\n", + "\n", + "secret_a = (h2^a) % p # Alice can compute this because she knows a\n", + "secret_b = (h1^b) % p # Bob can compute this because he knows b\n", + "\n", + "print(\"Alice computed\", secret_a, \"using h2 and her secret a\")\n", + "print(\"Bob computed\", secret_b, \"using h1 and his secret b\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## General Diffie-Hellman\n", + "\n", + "The following code is an implementation of a generic Diffie-Hellman key exchange protocol that uses a group $G$ instead of $(\\mathbb Z/p \\mathbb Z)^\\times$." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Public key:\n", + "G = Additive abelian group isomorphic to Z/171 embedded in Abelian group of points on Elliptic Curve defined by y^2 = x^3 + x + 156 over Finite Field of size 157 \n", + "g = (155 : 60 : 1) \n", + "\n", + "[[ Alice's secret key: a = 141 ]]\n", + "[[ Bob's secret key: b = 158 ]] \n", + "\n", + "Alice sends h1 = (29 : 125 : 1) to Bob\n", + "Bob sends h2 = (60 : 59 : 1) to Alice \n", + "\n", + "Alice computed (109 : 94 : 1) using h2 and her secret a\n", + "Bob computed (109 : 94 : 1) using h1 and his secret b\n" + ] + } + ], + "source": [ + "def genericDH(G):\n", + " if G.cardinality() == 1:\n", + " print(\"Group is trivial, can't do anything\")\n", + " return\n", + " g = G.random_element()\n", + " while g == G.identity(): # Make sure g is not trivial\n", + " g = G.random_element()\n", + " \n", + " print(\"Public key:\\nG =\", G, \"\\ng =\", g, \"\\n\")\n", + " \n", + " a = randint(2, G.exponent()-1) # Only Alice knows this\n", + " b = randint(2, G.exponent()-1) # Only Bob knows this\n", + "\n", + " print(\"[[ Alice's secret key: a =\", a, \"]]\")\n", + " print(\"[[ Bob's secret key: b =\", b, \"]]\", \"\\n\")\n", + " \n", + " # \"Ternary operator\", I did not explain this\n", + " # https://docs.python.org/3/reference/expressions.html#conditional-expressions\n", + " h1 = g^a if G.is_multiplicative() else a*g # Alice sends this to Bob\n", + " h2 = g^b if G.is_multiplicative() else b*g # Bob sends this to Alice\n", + "\n", + " print(\"Alice sends h1 =\", h1, \"to Bob\")\n", + " print(\"Bob sends h2 =\", h2, \"to Alice\", \"\\n\")\n", + " \n", + " secret_a = h2^a if G.is_multiplicative() else a*h2 # Alice can compute this because she knows a\n", + " secret_b = h1^b if G.is_multiplicative() else b*h1 # Bob can compute this because he knows b\n", + "\n", + " print(\"Alice computed\", secret_a, \"using h2 and her secret a\")\n", + " print(\"Bob computed\", secret_b, \"using h1 and his secret b\")\n", + " \n", + "E = EllipticCurve(GF(157), [1,-1])\n", + "G = E.abelian_group()\n", + "genericDH(G)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Numerical methods for PDEs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "SageMath 9.0", + "language": "sage", + "name": "sagemath" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/src/Lecture7/slides/.ipynb_checkpoints/X2-StudentsRequests-notebook-checkpoint.ipynb b/src/Lecture7/slides/.ipynb_checkpoints/X2-StudentsRequests-notebook-checkpoint.ipynb new file mode 100644 index 0000000..ccd6a21 --- /dev/null +++ b/src/Lecture7/slides/.ipynb_checkpoints/X2-StudentsRequests-notebook-checkpoint.ipynb @@ -0,0 +1,298 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Diffie-Hellman key exchange\n", + "\n", + "The following is a simple implementation of the classic [Diffie-Hellman key exchange](https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange) cryptographic protocol." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Public key: p = 75521 and g = 58258 \n", + "\n", + "[[ Alice's secret key: a = 22794 ]]\n", + "[[ Bob's secret key: b = 69773 ]] \n", + "\n", + "Alice sends h1 = 31067 to Bob\n", + "Bob sends h2 = 54398 to Alice \n", + "\n", + "Alice computed 30031 using h2 and her secret a\n", + "Bob computed 30031 using h1 and his secret b\n" + ] + } + ], + "source": [ + "# Public information:\n", + "p = Primes()[10^3 + randint(1,10000)] # random prime\n", + "g = randint(2, p-1) # random integer\n", + "\n", + "print(\"Public key: p =\", p, \"and g =\", g, \"\\n\")\n", + "\n", + "a = randint(2, p-1) # Only Alice knows this\n", + "b = randint(2, p-1) # Only Bob knows this\n", + "\n", + "print(\"[[ Alice's secret key: a =\", a, \"]]\")\n", + "print(\"[[ Bob's secret key: b =\", b, \"]]\", \"\\n\")\n", + "\n", + "h1 = (g^a) % p # Alice sends this to Bob\n", + "h2 = (g^b) % p # Bob sends this to Alice\n", + "\n", + "print(\"Alice sends h1 =\", h1, \"to Bob\")\n", + "print(\"Bob sends h2 =\", h2, \"to Alice\", \"\\n\")\n", + "\n", + "secret_a = (h2^a) % p # Alice can compute this because she knows a\n", + "secret_b = (h1^b) % p # Bob can compute this because he knows b\n", + "\n", + "print(\"Alice computed\", secret_a, \"using h2 and her secret a\")\n", + "print(\"Bob computed\", secret_b, \"using h1 and his secret b\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## General Diffie-Hellman\n", + "\n", + "The following code is an implementation of a generic Diffie-Hellman key exchange protocol that uses a group $G$ instead of $(\\mathbb Z/p \\mathbb Z)^\\times$." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Public key:\n", + "G = Additive abelian group isomorphic to Z/171 embedded in Abelian group of points on Elliptic Curve defined by y^2 = x^3 + x + 156 over Finite Field of size 157 \n", + "g = (53 : 90 : 1) \n", + "\n", + "[[ Alice's secret key: a = 145 ]]\n", + "[[ Bob's secret key: b = 65 ]] \n", + "\n", + "Alice sends h1 = (150 : 80 : 1) to Bob\n", + "Bob sends h2 = (4 : 58 : 1) to Alice \n", + "\n", + "Alice computed (28 : 28 : 1) using h2 and her secret a\n", + "Bob computed (28 : 28 : 1) using h1 and his secret b\n" + ] + } + ], + "source": [ + "def genericDH(G):\n", + " if G.cardinality() == 1:\n", + " print(\"Group is trivial, can't do anything\")\n", + " return\n", + " g = G.random_element()\n", + " while g == G.identity(): # Make sure g is not trivial\n", + " g = G.random_element()\n", + " \n", + " print(\"Public key:\\nG =\", G, \"\\ng =\", g, \"\\n\")\n", + " \n", + " a = randint(2, G.exponent()-1) # Only Alice knows this\n", + " b = randint(2, G.exponent()-1) # Only Bob knows this\n", + "\n", + " print(\"[[ Alice's secret key: a =\", a, \"]]\")\n", + " print(\"[[ Bob's secret key: b =\", b, \"]]\", \"\\n\")\n", + " \n", + " # \"Ternary operator\", I did not explain this\n", + " # https://docs.python.org/3/reference/expressions.html#conditional-expressions\n", + " h1 = g^a if G.is_multiplicative() else a*g # Alice sends this to Bob\n", + " h2 = g^b if G.is_multiplicative() else b*g # Bob sends this to Alice\n", + "\n", + " print(\"Alice sends h1 =\", h1, \"to Bob\")\n", + " print(\"Bob sends h2 =\", h2, \"to Alice\", \"\\n\")\n", + " \n", + " secret_a = h2^a if G.is_multiplicative() else a*h2 # Alice can compute this because she knows a\n", + " secret_b = h1^b if G.is_multiplicative() else b*h1 # Bob can compute this because he knows b\n", + "\n", + " print(\"Alice computed\", secret_a, \"using h2 and her secret a\")\n", + " print(\"Bob computed\", secret_b, \"using h1 and his secret b\")\n", + " \n", + "E = EllipticCurve(GF(157), [1,-1])\n", + "G = E.abelian_group()\n", + "genericDH(G)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Numerical methods for differential equations\n", + "\n", + "## Euler's method (ODE)\n", + "\n", + "In sage you can use [`ode_solver()`](https://doc.sagemath.org/html/en/reference/calculus/sage/calculus/ode.html) to solve any ordinary differential equation by hand, but Euler's method is very simple to implement by hand:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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uuhxAvxEjxOASJWXJ3XrJq1dK61aJVWt6nZFoYutOgAAPG7UKGn2bOmLLwhNRWGrDgAAD1u4UHriCWnoUOmKK9yuJvSxVQf4ia06AJFm3z6pZUupdm1pzhzuovMHK04AAHiQ41gTeHq69M47hCZ/0eMEAIAH/fvf0pQp0uTJUt26blcTPlhxAgDAY1atskGXAwZIN9zgdjXhhR4nwE/0OAGIBFlZUps2UunS0rffSrGxblcUXtiqA4qQnJys5ORk+Xw+t0sBgLN2333S1q3S0qWEpjPBihPgJ1acAIS7t9+WeveW3nhDuvNOt6sJT/Q4AQDgAT/8IN1zjwWnfv3criZ8seIE+IkVJwDhKjNTattWKlHC+prOOcftisIXPU4AAEQwx5H697e+piVLCE1ni+AEAEAEGzfOepvefVdq0sTtasIfPU4AAESoZcvsLroBA6Rbb3W7mshAjxPgJ3qcAISTffuk1q2lypWlBQukmBi3K4oMbNUBABBhHMfGDezbJ331FaEpkNiqA4qQnJyspk2bKikpye1SAMAvL74oTZ8uvfWWlJjodjWRha06wE9s1QEIB3PnSl26SA8+KI0c6XY1kYfgBPiJ4AQg1G3fbn1NzZtLn38ulaQhJ+DYqgMAIAJkZ0s33mjnz733HqGpuPCyAgAQAe69V/r+e7uDrmpVt6uJXKw4wROGDRumqKioYx7x8fFulwUAATF+vD1efVVq08btaiIbK07wjGbNmunLL7888nZ0dLSL1QBAYHz7rTRokPSXv9gIAhQvghM8o2TJkqwyAYgoqanW19S6tTR6tNvVeANbdfCMjRs3qmbNmkpMTNStt96qn3766ZSfn52drfT09GMeABAqDh+WbrlF8vmkDz+USpd2uyJvIDjBEy666CK99dZb+vzzzzV+/HilpKTo4osv1p49e076NSNGjFBcXNyRR0JCQhArBoBTe+ghaeFC6YMPpJo13a7GO5jjBE/KyspS/fr19fDDD2vIkCGFfk52drays7OPvJ2enq6EhATmOAFw3ZtvSv36SWPHWn8TgoceJ3jSOeeco/PPP18bN2486efExMQohgOeAISYRYuke+6R/vhHaeBAt6vxHrbq4EnZ2dlat26datSo4XYpAOC37dul66+X2raVXnlFiopyuyLvITjBEx588EHNnTtXW7Zs0bfffqubbrpJ6enp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\n", + "text/plain": [ + "Graphics object consisting of 2 graphics primitives" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "var('y')\n", + "\n", + "def euler_desolve(f, x0, y0, x1):\n", + " n = 5\n", + " h = (x1-x0)/n\n", + " S = []\n", + " Y = [y0]\n", + " for i in range(n+1):\n", + " S.append(x0 + i*h)\n", + " Y.append(N( Y[i] + h*f(S[i], Y[i]) ))\n", + " return S, Y\n", + "\n", + "f(x,y) = y\n", + "x0 = -1\n", + "x1 = 2\n", + "y0 = e^(-1)\n", + "\n", + "S, Y = euler_desolve(f, x0, y0, x1)\n", + "plot(e^x, -1, 2) + line([(S[i], Y[i]) for i in range(len(S))], color='red', marker='o', markersize=2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Sage also has an `eulers_method()` function \"for pedagogical purposes only\":" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " x y h*f(x,y)\n", + " -1 0.367879441171442 0.0367879441171442\n", + "-0.900000000000000 0.404667385288587 0.0404667385288587\n", + "-0.800000000000000 0.445134123817445 0.0445134123817445\n", + "-0.700000000000000 0.489647536199190 0.0489647536199190\n", + "-0.600000000000000 0.538612289819109 0.0538612289819109\n", + "-0.500000000000000 0.592473518801020 0.0592473518801020\n", + "-0.400000000000000 0.651720870681122 0.0651720870681122\n", + "-0.300000000000000 0.716892957749234 0.0716892957749234\n", + "-0.200000000000000 0.788582253524157 0.0788582253524157\n", + "-0.100000000000000 0.867440478876573 0.0867440478876573\n", + "-1.38777878078145e-16 0.954184526764230 0.0954184526764230\n", + "0.0999999999999999 1.04960297944065 0.104960297944065\n", + "0.200000000000000 1.15456327738472 0.115456327738472\n", + "0.300000000000000 1.27001960512319 0.127001960512319\n", + "0.400000000000000 1.39702156563551 0.139702156563551\n", + "0.500000000000000 1.53672372219906 0.153672372219906\n", + "0.600000000000000 1.69039609441897 0.169039609441897\n", + "0.700000000000000 1.85943570386086 0.185943570386086\n", + "0.800000000000000 2.04537927424695 0.204537927424695\n", + "0.900000000000000 2.24991720167165 0.224991720167165\n", + "1.00000000000000 2.47490892183881 0.247490892183881\n", + "1.10000000000000 2.72239981402269 0.272239981402269\n", + "1.20000000000000 2.99463979542496 0.299463979542496\n", + "1.30000000000000 3.29410377496746 0.329410377496746\n", + "1.40000000000000 3.62351415246420 0.362351415246420\n", + "1.50000000000000 3.98586556771062 0.398586556771062\n", + "1.60000000000000 4.38445212448168 0.438445212448168\n", + "1.70000000000000 4.82289733692985 0.482289733692985\n", + "1.80000000000000 5.30518707062284 0.530518707062284\n", + "1.90000000000000 5.83570577768512 0.583570577768512\n", + "2.00000000000000 6.41927635545363 0.641927635545363\n" + ] + } + ], + "source": [ + "# Usage: eulers_method(f, x0, y0, h, x1)\n", + "eulers_method(f, -1, N(e^(-1)), 0.1, 2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Solving the heat equation with a finite difference method" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def heat_fdm(u0j, u1j, ui0):\n", + " m, n = len(u0j)-1, len(ui0)-1\n", + " k, h = 1/m, 1/n\n", + " \n", + " u = [[0] * (m+1) for i in range(n+1)]\n", + " for j in range(m+1):\n", + " u[0][j] = u0j[j]\n", + " for j in range(m+1):\n", + " u[n][j] = u1j[j]\n", + " for i in range(n+1):\n", + " u[i][0] = ui0[i]\n", + " \n", + " for j in range(0,m):\n", + " for i in range(1,n):\n", + " u[i][j+1] = (k/(h*h)) * (u[i+1][j] - 2*u[i][j] + u[i-1][j]) + u[i][j]\n", + " \n", + " return u\n", + "\n", + "n, m = 20, 20\n", + "u0j = [10 - (j/m)*10 for j in range(m+1)] # One extreme goes from hot to cold\n", + "u1j = [(j/m)*10 for j in range(m+1)] # The other does the opposite\n", + "ui0 = [10 - (i/m)*10 for i in range(0,n+1)]\n", + "\n", + "u = heat_fdm(u0j, u1j, ui0)\n", + "for t in range(m+1):\n", + " show(line([(i/n, u[i][t]) for i in range(n+1)], ymin=-1, ymax =12))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "SageMath 9.0", + "language": "sage", + "name": "sagemath" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/src/Lecture7/slides/X1-ComputationalComplexity.aux b/src/Lecture7/slides/X1-ComputationalComplexity.aux new file mode 100644 index 0000000..b0463b4 --- /dev/null +++ b/src/Lecture7/slides/X1-ComputationalComplexity.aux @@ -0,0 +1,100 @@ +\relax +\providecommand\hyper@newdestlabel[2]{} +\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} +\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined +\global\let\oldcontentsline\contentsline +\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} +\global\let\oldnewlabel\newlabel +\gdef\newlabel#1#2{\newlabelxx{#1}#2} +\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} +\AtEndDocument{\ifx\hyper@anchor\@undefined +\let\contentsline\oldcontentsline +\let\newlabel\oldnewlabel +\fi} +\fi} +\global\let\hyper@last\relax +\gdef\HyperFirstAtBeginDocument#1{#1} +\providecommand\HyField@AuxAddToFields[1]{} +\providecommand\HyField@AuxAddToCoFields[2]{} +\providecommand \oddpage@label [2]{} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{1}{1/1}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {1}{1}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{2}{2/2}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {2}{2}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{3}{3/3}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {3}{3}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{4}{4/4}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {4}{4}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{5}{5/5}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {5}{5}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{6}{6/6}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {6}{6}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{7}{7/7}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {7}{7}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{8}{8/8}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {8}{8}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{9}{9/9}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {9}{9}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{10}{10/10}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {10}{10}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{11}{11/11}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {11}{11}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{12}{12/12}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {12}{12}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{13}{13/13}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {13}{13}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{14}{14/14}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {14}{14}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{15}{15/15}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {15}{15}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{16}{16/16}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {16}{16}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{17}{17/17}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {17}{17}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{18}{18/18}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {18}{18}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{19}{19/19}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {19}{19}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{20}{20/20}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {20}{20}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{21}{21/21}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {21}{21}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{22}{22/22}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {22}{22}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{23}{23/26}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {23}{26}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{24}{27/30}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {27}{30}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{25}{31/31}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {31}{31}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{26}{32/32}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {32}{32}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{27}{33/33}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {33}{33}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{28}{34/34}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {34}{34}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{29}{35/35}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {35}{35}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{30}{36/36}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {36}{36}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{31}{37/37}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {37}{37}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{32}{38/38}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {38}{38}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{33}{39/39}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {39}{39}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{34}{40/40}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {40}{40}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{35}{41/41}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {41}{41}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{36}{42/42}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {42}{42}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{37}{43/43}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {43}{43}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{38}{44/44}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {44}{44}}} +\@writefile{nav}{\headcommand {\beamer@partpages {1}{44}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {1}{44}}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {1}{44}}} +\@writefile{nav}{\headcommand {\beamer@documentpages {44}}} +\@writefile{nav}{\headcommand {\gdef \inserttotalframenumber {38}}} diff --git a/src/Lecture7/slides/X1-ComputationalComplexity.log b/src/Lecture7/slides/X1-ComputationalComplexity.log new file mode 100644 index 0000000..03238ae --- /dev/null +++ b/src/Lecture7/slides/X1-ComputationalComplexity.log @@ -0,0 +1,1513 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdflatex 2021.5.20) 25 MAY 2021 16:23 +entering extended mode + \write18 enabled. + %&-line parsing enabled. +**X1-ComputationalComplexity.tex +(./X1-ComputationalComplexity.tex +LaTeX2e <2020-02-02> patch level 2 +L3 programming layer <2020-02-14> +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamer.cls +Document Class: beamer 2019/09/29 v3.57 A class for typesetting presentations +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasemodes.sty +(/usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty +Package: etoolbox 2019/09/21 v2.5h e-TeX tools for LaTeX (JAW) +\etb@tempcnta=\count167 +) +\beamer@tempbox=\box45 +\beamer@tempcount=\count168 +\c@beamerpauses=\count169 + +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasedecode.sty +\beamer@slideinframe=\count170 +\beamer@minimum=\count171 +\beamer@decode@box=\box46 +) +\beamer@commentbox=\box47 +\beamer@modecount=\count172 +) +(/usr/share/texlive/texmf-dist/tex/generic/iftex/ifpdf.sty +Package: ifpdf 2019/10/25 v3.4 ifpdf legacy package. Use iftex instead. + +(/usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty +Package: iftex 2019/11/07 v1.0c TeX engine tests +)) +\headdp=\dimen134 +\footheight=\dimen135 +\sidebarheight=\dimen136 +\beamer@tempdim=\dimen137 +\beamer@finalheight=\dimen138 +\beamer@animht=\dimen139 +\beamer@animdp=\dimen140 +\beamer@animwd=\dimen141 +\beamer@leftmargin=\dimen142 +\beamer@rightmargin=\dimen143 +\beamer@leftsidebar=\dimen144 +\beamer@rightsidebar=\dimen145 +\beamer@boxsize=\dimen146 +\beamer@vboxoffset=\dimen147 +\beamer@descdefault=\dimen148 +\beamer@descriptionwidth=\dimen149 +\beamer@lastskip=\skip47 +\beamer@areabox=\box48 +\beamer@animcurrent=\box49 +\beamer@animshowbox=\box50 +\beamer@sectionbox=\box51 +\beamer@logobox=\box52 +\beamer@linebox=\box53 +\beamer@sectioncount=\count173 +\beamer@subsubsectionmax=\count174 +\beamer@subsectionmax=\count175 +\beamer@sectionmax=\count176 +\beamer@totalheads=\count177 +\beamer@headcounter=\count178 +\beamer@partstartpage=\count179 +\beamer@sectionstartpage=\count180 +\beamer@subsectionstartpage=\count181 +\beamer@animationtempa=\count182 +\beamer@animationtempb=\count183 +\beamer@xpos=\count184 +\beamer@ypos=\count185 +\beamer@ypos@offset=\count186 +\beamer@showpartnumber=\count187 +\beamer@currentsubsection=\count188 +\beamer@coveringdepth=\count189 +\beamer@sectionadjust=\count190 +\beamer@tocsectionnumber=\count191 + +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaseoptions.sty +(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks14 +)) +\beamer@paperwidth=\skip48 +\beamer@paperheight=\skip49 + +(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2020/01/02 v5.9 Page Geometry + +(/usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty +Package: ifvtex 2019/10/25 v1.7 ifvtex legacy package. Use iftex instead. +) +\Gm@cnth=\count192 +\Gm@cntv=\count193 +\c@Gm@tempcnt=\count194 +\Gm@bindingoffset=\dimen150 +\Gm@wd@mp=\dimen151 +\Gm@odd@mp=\dimen152 +\Gm@even@mp=\dimen153 +\Gm@layoutwidth=\dimen154 +\Gm@layoutheight=\dimen155 +\Gm@layouthoffset=\dimen156 +\Gm@layoutvoffset=\dimen157 +\Gm@dimlist=\toks15 +) +(/usr/share/texlive/texmf-dist/tex/latex/base/size11.clo +File: size11.clo 2019/12/20 v1.4l Standard LaTeX file (size option) +) +(/usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2019/11/30 v1.2a Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2019/11/30 v1.4a Standard LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2016/01/03 v1.10 sin cos tan (DPC) +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: pdftex.def on input line 105. + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex +)) +\Gin@req@height=\dimen158 +\Gin@req@width=\dimen159 +) +(/usr/share/texlive/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +(/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex +\pgfutil@everybye=\toks16 +\pgfutil@tempdima=\dimen160 +\pgfutil@tempdimb=\dimen161 + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.t +ex)) (/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def +\pgfutil@abb=\box54 +(/usr/share/texlive/texmf-dist/tex/latex/ms/everyshi.sty +Package: everyshi 2001/05/15 v3.00 EveryShipout Package (MS) +)) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +(/usr/share/texlive/texmf-dist/tex/generic/pgf/pgf.revision.tex) +Package: pgfrcs 2020/01/08 v3.1.5b (3.1.5b) +)) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +Package: pgfsys 2020/01/08 v3.1.5b (3.1.5b) + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +\pgfkeys@pathtoks=\toks17 +\pgfkeys@temptoks=\toks18 + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.t +ex +\pgfkeys@tmptoks=\toks19 +)) +\pgf@x=\dimen162 +\pgf@y=\dimen163 +\pgf@xa=\dimen164 +\pgf@ya=\dimen165 +\pgf@xb=\dimen166 +\pgf@yb=\dimen167 +\pgf@xc=\dimen168 +\pgf@yc=\dimen169 +\pgf@xd=\dimen170 +\pgf@yd=\dimen171 +\w@pgf@writea=\write3 +\r@pgf@reada=\read2 +\c@pgf@counta=\count195 +\c@pgf@countb=\count196 +\c@pgf@countc=\count197 +\c@pgf@countd=\count198 +\t@pgf@toka=\toks20 +\t@pgf@tokb=\toks21 +\t@pgf@tokc=\toks22 +\pgf@sys@id@count=\count199 + (/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg +File: pgf.cfg 2020/01/08 v3.1.5b (3.1.5b) +) +Driver file for pgf: pgfsys-pdftex.def + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def +File: pgfsys-pdftex.def 2020/01/08 v3.1.5b (3.1.5b) + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.de +f +File: pgfsys-common-pdf.def 2020/01/08 v3.1.5b (3.1.5b) +))) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code. +tex +File: pgfsyssoftpath.code.tex 2020/01/08 v3.1.5b (3.1.5b) +\pgfsyssoftpath@smallbuffer@items=\count266 +\pgfsyssoftpath@bigbuffer@items=\count267 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code. +tex +File: pgfsysprotocol.code.tex 2020/01/08 v3.1.5b (3.1.5b) +)) (/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: pdftex.def on input line 225. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352. +Package xcolor Info: Model `RGB' extended on input line 1364. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371. +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +Package: pgfcore 2020/01/08 v3.1.5b (3.1.5b) + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex +\pgfmath@dimen=\dimen172 +\pgfmath@count=\count268 +\pgfmath@box=\box55 +\pgfmath@toks=\toks23 +\pgfmath@stack@operand=\toks24 +\pgfmath@stack@operation=\toks25 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code +.tex) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonomet +ric.code.tex) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.cod +e.tex) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison +.code.tex) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code. +tex) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code +.tex) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code. +tex) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerari +thmetics.code.tex))) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex +\c@pgfmathroundto@lastzeros=\count269 +)) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfint.code.tex) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.te +x +File: pgfcorepoints.code.tex 2020/01/08 v3.1.5b (3.1.5b) +\pgf@picminx=\dimen173 +\pgf@picmaxx=\dimen174 +\pgf@picminy=\dimen175 +\pgf@picmaxy=\dimen176 +\pgf@pathminx=\dimen177 +\pgf@pathmaxx=\dimen178 +\pgf@pathminy=\dimen179 +\pgf@pathmaxy=\dimen180 +\pgf@xx=\dimen181 +\pgf@xy=\dimen182 +\pgf@yx=\dimen183 +\pgf@yy=\dimen184 +\pgf@zx=\dimen185 +\pgf@zy=\dimen186 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct. +code.tex +File: pgfcorepathconstruct.code.tex 2020/01/08 v3.1.5b (3.1.5b) +\pgf@path@lastx=\dimen187 +\pgf@path@lasty=\dimen188 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code +.tex +File: pgfcorepathusage.code.tex 2020/01/08 v3.1.5b (3.1.5b) +\pgf@shorten@end@additional=\dimen189 +\pgf@shorten@start@additional=\dimen190 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.te +x +File: pgfcorescopes.code.tex 2020/01/08 v3.1.5b (3.1.5b) +\pgfpic=\box56 +\pgf@hbox=\box57 +\pgf@layerbox@main=\box58 +\pgf@picture@serial@count=\count270 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.c +ode.tex +File: pgfcoregraphicstate.code.tex 2020/01/08 v3.1.5b (3.1.5b) +\pgflinewidth=\dimen191 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformation +s.code.tex +File: pgfcoretransformations.code.tex 2020/01/08 v3.1.5b (3.1.5b) +\pgf@pt@x=\dimen192 +\pgf@pt@y=\dimen193 +\pgf@pt@temp=\dimen194 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex +File: pgfcorequick.code.tex 2020/01/08 v3.1.5b (3.1.5b) +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.t +ex +File: pgfcoreobjects.code.tex 2020/01/08 v3.1.5b (3.1.5b) +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing +.code.tex +File: pgfcorepathprocessing.code.tex 2020/01/08 v3.1.5b (3.1.5b) +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.te +x +File: pgfcorearrows.code.tex 2020/01/08 v3.1.5b (3.1.5b) +\pgfarrowsep=\dimen195 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex +File: pgfcoreshade.code.tex 2020/01/08 v3.1.5b (3.1.5b) +\pgf@max=\dimen196 +\pgf@sys@shading@range@num=\count271 +\pgf@shadingcount=\count272 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex +File: pgfcoreimage.code.tex 2020/01/08 v3.1.5b (3.1.5b) + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code. +tex +File: pgfcoreexternal.code.tex 2020/01/08 v3.1.5b (3.1.5b) +\pgfexternal@startupbox=\box59 +)) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.te +x +File: pgfcorelayers.code.tex 2020/01/08 v3.1.5b (3.1.5b) +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.c +ode.tex +File: pgfcoretransparency.code.tex 2020/01/08 v3.1.5b (3.1.5b) +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code. +tex +File: pgfcorepatterns.code.tex 2020/01/08 v3.1.5b (3.1.5b) +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex +File: pgfcorerdf.code.tex 2020/01/08 v3.1.5b (3.1.5b) +))) (/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/xxcolor.sty +Package: xxcolor 2003/10/24 ver 0.1 +\XC@nummixins=\count273 +\XC@countmixins=\count274 +) +(/usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty +Package: atbegshi 2019/12/05 v1.19 At begin shipout hook (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty +Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +Package: ltxcmds 2019/12/15 v1.24 LaTeX kernel commands for general use (HO) +)) +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2020/01/14 v7.00d Hypertext links for LaTeX + +(/usr/share/texlive/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty +Package: pdftexcmds 2019/11/24 v0.31 Utility functions of pdfTeX for LuaTeX (HO +) +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +) +(/usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +Package: kvsetkeys 2019/12/15 v1.18 Key value parser (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +Package: kvdefinekeys 2019-12-19 v1.6 Define keys (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty +Package: pdfescape 2019/12/09 v1.15 Implements pdfTeX's escape features (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty +Package: hycolor 2020-01-27 v1.10 Color options for hyperref/bookmark (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +Package: letltxmacro 2019/12/03 v1.6 Let assignment for LaTeX macros (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty +Package: auxhook 2019-12-17 v1.6 Hooks for auxiliary files (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty +Package: kvoptions 2019/11/29 v3.13 Key value format for package options (HO) +) +\@linkdim=\dimen197 +\Hy@linkcounter=\count275 +\Hy@pagecounter=\count276 + +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2020/01/14 v7.00d Hyperref: PDFDocEncoding definition (HO) +Now handling font encoding PD1 ... +... no UTF-8 mapping file for font encoding PD1 +) +(/usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty +Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty +Package: etexcmds 2019/12/15 v1.7 Avoid name clashes with e-TeX commands (HO) +) +\Hy@SavedSpaceFactor=\count277 +\pdfmajorversion=\count278 +Package hyperref Info: Option `bookmarks' set `true' on input line 4421. +Package hyperref Info: Option `bookmarksopen' set `true' on input line 4421. +Package hyperref Info: Option `implicit' set `false' on input line 4421. +Package hyperref Info: Hyper figures OFF on input line 4547. +Package hyperref Info: Link nesting OFF on input line 4552. +Package hyperref Info: Hyper index ON on input line 4555. +Package hyperref Info: Plain pages OFF on input line 4562. +Package hyperref Info: Backreferencing OFF on input line 4567. +Package hyperref Info: Implicit mode OFF; no redefinition of LaTeX internals. +Package hyperref Info: Bookmarks ON on input line 4800. +\c@Hy@tempcnt=\count279 + +(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip16 +Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. +) +LaTeX Info: Redefining \url on input line 5159. +\XeTeXLinkMargin=\dimen198 + +(/usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty +Package: bitset 2019/12/09 v1.3 Handle bit-vector datatype (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +Package: bigintcalc 2019/12/15 v1.5 Expandable calculations on big integers (HO +) +)) +\Fld@menulength=\count280 +\Field@Width=\dimen199 +\Fld@charsize=\dimen256 +Package hyperref Info: Hyper figures OFF on input line 6430. +Package hyperref Info: Link nesting OFF on input line 6435. +Package hyperref Info: Hyper index ON on input line 6438. +Package hyperref Info: backreferencing OFF on input line 6445. +Package hyperref Info: Link coloring OFF on input line 6450. +Package hyperref Info: Link coloring with OCG OFF on input line 6455. +Package hyperref Info: PDF/A mode OFF on input line 6460. +LaTeX Info: Redefining \ref on input line 6500. +LaTeX Info: Redefining \pageref on input line 6504. +\Hy@abspage=\count281 + + +Package hyperref Message: Stopped early. + +) +Package hyperref Info: Driver (autodetected): hpdftex. + (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def +File: hpdftex.def 2020/01/14 v7.00d Hyperref driver for pdfTeX + +(/usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty +Package: atveryend 2019-12-11 v1.11 Hooks at the very end of document (HO) +) +\Fld@listcount=\count282 +\c@bookmark@seq@number=\count283 + +(/usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +Package: rerunfilecheck 2019/12/05 v1.9 Rerun checks for auxiliary files (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +Package: uniquecounter 2019/12/15 v1.4 Provide unlimited unique counter (HO) +) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 +86. +)) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaserequires.sty +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasecompatibility.sty) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasefont.sty +(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty +Package: amssymb 2013/01/14 v3.01 AMS font symbols + +(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty +Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support +\@emptytoks=\toks26 +\symAMSa=\mathgroup4 +\symAMSb=\mathgroup5 +LaTeX Font Info: Redeclaring math symbol \hbar on input line 98. +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 106. +)) +(/usr/share/texlive/texmf-dist/tex/latex/sansmathaccent/sansmathaccent.sty +Package: sansmathaccent 2020/01/31 + +(/usr/share/texlive/texmf-dist/tex/latex/koma-script/scrlfile.sty +Package: scrlfile 2020/01/24 v3.29 KOMA-Script package (loading files) +))) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasetranslator.sty +(/usr/share/texlive/texmf-dist/tex/latex/translator/translator.sty +Package: translator 2019-05-31 v1.12a Easy translation of strings in LaTeX +)) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasemisc.sty) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasetwoscreens.sty) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaseoverlay.sty +\beamer@argscount=\count284 +\beamer@lastskipcover=\skip50 +\beamer@trivlistdepth=\count285 +) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasetitle.sty) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasesection.sty +\c@lecture=\count286 +\c@part=\count287 +\c@section=\count288 +\c@subsection=\count289 +\c@subsubsection=\count290 +) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaseframe.sty +\beamer@framebox=\box60 +\beamer@frametitlebox=\box61 +\beamer@zoombox=\box62 +\beamer@zoomcount=\count291 +\beamer@zoomframecount=\count292 +\beamer@frametextheight=\dimen257 +\c@subsectionslide=\count293 +\beamer@frametopskip=\skip51 +\beamer@framebottomskip=\skip52 +\beamer@frametopskipautobreak=\skip53 +\beamer@framebottomskipautobreak=\skip54 +\beamer@envbody=\toks27 +\framewidth=\dimen258 +\c@framenumber=\count294 +) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaseverbatim.sty +\beamer@verbatimfileout=\write4 +) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaseframesize.sty +\beamer@splitbox=\box63 +\beamer@autobreakcount=\count295 +\beamer@autobreaklastheight=\dimen259 +\beamer@frametitletoks=\toks28 +\beamer@framesubtitletoks=\toks29 +) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaseframecomponents.sty +\beamer@footins=\box64 +) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasecolor.sty) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasenotes.sty +\beamer@frameboxcopy=\box65 +) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasetoc.sty) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasetemplates.sty +\beamer@sbttoks=\toks30 + +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaseauxtemplates.sty +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaseboxes.sty +\bmb@box=\box66 +\bmb@colorbox=\box67 +\bmb@boxshadow=\box68 +\bmb@boxshadowball=\box69 +\bmb@boxshadowballlarge=\box70 +\bmb@temp=\dimen260 +\bmb@dima=\dimen261 +\bmb@dimb=\dimen262 +\bmb@prevheight=\dimen263 +) +\beamer@blockheadheight=\dimen264 +)) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaselocalstructure.sty +(/usr/share/texlive/texmf-dist/tex/latex/tools/enumerate.sty +Package: enumerate 2015/07/23 v3.00 enumerate extensions (DPC) +\@enLab=\toks31 +) +\c@figure=\count296 +\c@table=\count297 +\abovecaptionskip=\skip55 +\belowcaptionskip=\skip56 +) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasenavigation.sty +\beamer@section@min@dim=\dimen265 +) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasetheorems.sty +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2020/01/20 v2.17e AMS math features +\@mathmargin=\skip57 + +For additional information on amsmath, use the `?' option. +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2000/06/29 v2.01 AMS text + +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 generic functions +\@emptytoks=\toks32 +\ex@=\dimen266 +)) +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d Bold Symbols +\pmbraise@=\dimen267 +) +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 2016/03/08 v2.02 operator names +) +\inf@bad=\count298 +LaTeX Info: Redefining \frac on input line 227. +\uproot@=\count299 +\leftroot@=\count300 +LaTeX Info: Redefining \overline on input line 389. +\classnum@=\count301 +\DOTSCASE@=\count302 +LaTeX Info: Redefining \ldots on input line 486. +LaTeX Info: Redefining \dots on input line 489. +LaTeX Info: Redefining \cdots on input line 610. +\Mathstrutbox@=\box71 +\strutbox@=\box72 +\big@size=\dimen268 +LaTeX Font Info: Redeclaring font encoding OML on input line 733. +LaTeX Font Info: Redeclaring font encoding OMS on input line 734. +\macc@depth=\count303 +\c@MaxMatrixCols=\count304 +\dotsspace@=\muskip17 +\c@parentequation=\count305 +\dspbrk@lvl=\count306 +\tag@help=\toks33 +\row@=\count307 +\column@=\count308 +\maxfields@=\count309 +\andhelp@=\toks34 +\eqnshift@=\dimen269 +\alignsep@=\dimen270 +\tagshift@=\dimen271 +\tagwidth@=\dimen272 +\totwidth@=\dimen273 +\lineht@=\dimen274 +\@envbody=\toks35 +\multlinegap=\skip58 +\multlinetaggap=\skip59 +\mathdisplay@stack=\toks36 +LaTeX Info: Redefining \[ on input line 2859. +LaTeX Info: Redefining \] on input line 2860. +) +(/usr/share/texlive/texmf-dist/tex/latex/amscls/amsthm.sty +Package: amsthm 2017/10/31 v2.20.4 +\thm@style=\toks37 +\thm@bodyfont=\toks38 +\thm@headfont=\toks39 +\thm@notefont=\toks40 +\thm@headpunct=\toks41 +\thm@preskip=\skip60 +\thm@postskip=\skip61 +\thm@headsep=\skip62 +\dth@everypar=\toks42 +) +\c@theorem=\count310 +) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasethemes.sty)) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerthemedefault.sty +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerfontthemedefault.sty) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamercolorthemedefault.sty) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerinnerthemedefault.sty +\beamer@dima=\dimen275 +\beamer@dimb=\dimen276 +) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerouterthemedefault.sty))) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerthemeMadrid.sty +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamercolorthemewhale.sty) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamercolorthemeorchid.sty) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerinnerthemerounded.sty) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerouterthemeinfolines.sty)) +(/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty +Package: inputenc 2018/08/11 v1.3c Input encoding file +\inpenc@prehook=\toks43 +\inpenc@posthook=\toks44 +) +(/usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty +\lst@mode=\count311 +\lst@gtempboxa=\box73 +\lst@token=\toks45 +\lst@length=\count312 +\lst@currlwidth=\dimen277 +\lst@column=\count313 +\lst@pos=\count314 +\lst@lostspace=\dimen278 +\lst@width=\dimen279 +\lst@newlines=\count315 +\lst@lineno=\count316 +\lst@maxwidth=\dimen280 + +(/usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty +File: lstmisc.sty 2019/09/10 1.8c (Carsten Heinz) +\c@lstnumber=\count317 +\lst@skipnumbers=\count318 +\lst@framebox=\box74 +) +(/usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg +File: listings.cfg 2019/09/10 1.8c listings configuration +)) +Package: listings 2019/09/10 1.8c (Carsten Heinz) + +(/usr/share/texlive/texmf-dist/tex/latex/mathtools/mathtools.sty +Package: mathtools 2020/01/17 v1.23 mathematical typesetting tools + +(/usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty +Package: calc 2017/05/25 v4.3 Infix arithmetic (KKT,FJ) +\calc@Acount=\count319 +\calc@Bcount=\count320 +\calc@Adimen=\dimen281 +\calc@Bdimen=\dimen282 +\calc@Askip=\skip63 +\calc@Bskip=\skip64 +LaTeX Info: Redefining \setlength on input line 80. +LaTeX Info: Redefining \addtolength on input line 81. +\calc@Ccount=\count321 +\calc@Cskip=\skip65 +) +(/usr/share/texlive/texmf-dist/tex/latex/mathtools/mhsetup.sty +Package: mhsetup 2017/03/31 v1.3 programming setup (MH) +) +LaTeX Info: Thecontrolsequence`\('isalreadyrobust on input line 129. +LaTeX Info: Thecontrolsequence`\)'isalreadyrobust on input line 129. +LaTeX Info: Thecontrolsequence`\['isalreadyrobust on input line 129. +LaTeX Info: Thecontrolsequence`\]'isalreadyrobust on input line 129. +\g_MT_multlinerow_int=\count322 +\l_MT_multwidth_dim=\dimen283 +\origjot=\skip66 +\l_MT_shortvdotswithinadjustabove_dim=\dimen284 +\l_MT_shortvdotswithinadjustbelow_dim=\dimen285 +\l_MT_above_intertext_sep=\dimen286 +\l_MT_below_intertext_sep=\dimen287 +\l_MT_above_shortintertext_sep=\dimen288 +\l_MT_below_shortintertext_sep=\dimen289 +) +(/usr/share/texlive/texmf-dist/tex/latex/tikz-cd/tikz-cd.sty +Package: tikz-cd 2018/11/19 v0.9f Commutative diagrams with TikZ + +(/usr/share/texlive/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +(/usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +Package: pgf 2020/01/08 v3.1.5b (3.1.5b) + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex +File: pgfmoduleshapes.code.tex 2020/01/08 v3.1.5b (3.1.5b) +\pgfnodeparttextbox=\box75 +) (/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex +File: pgfmoduleplot.code.tex 2020/01/08 v3.1.5b (3.1.5b) +) +(/usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65 +.sty +Package: pgfcomp-version-0-65 2020/01/08 v3.1.5b (3.1.5b) +\pgf@nodesepstart=\dimen290 +\pgf@nodesepend=\dimen291 +) +(/usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18 +.sty +Package: pgfcomp-version-1-18 2020/01/08 v3.1.5b (3.1.5b) +)) (/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +(/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty +(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex)) +(/usr/share/texlive/texmf-dist/tex/latex/pgf/math/pgfmath.sty +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex)) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +Package: pgffor 2020/01/08 v3.1.5b (3.1.5b) + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex) +\pgffor@iter=\dimen292 +\pgffor@skip=\dimen293 +\pgffor@stack=\toks46 +\pgffor@toks=\toks47 +)) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex +Package: tikz 2020/01/08 v3.1.5b (3.1.5b) + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers +.code.tex +File: pgflibraryplothandlers.code.tex 2020/01/08 v3.1.5b (3.1.5b) +\pgf@plot@mark@count=\count323 +\pgfplotmarksize=\dimen294 +) +\tikz@lastx=\dimen295 +\tikz@lasty=\dimen296 +\tikz@lastxsaved=\dimen297 +\tikz@lastysaved=\dimen298 +\tikz@lastmovetox=\dimen299 +\tikz@lastmovetoy=\dimen300 +\tikzleveldistance=\dimen301 +\tikzsiblingdistance=\dimen302 +\tikz@figbox=\box76 +\tikz@figbox@bg=\box77 +\tikz@tempbox=\box78 +\tikz@tempbox@bg=\box79 +\tikztreelevel=\count324 +\tikznumberofchildren=\count325 +\tikznumberofcurrentchild=\count326 +\tikz@fig@count=\count327 + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex +File: pgfmodulematrix.code.tex 2020/01/08 v3.1.5b (3.1.5b) +\pgfmatrixcurrentrow=\count328 +\pgfmatrixcurrentcolumn=\count329 +\pgf@matrix@numberofcolumns=\count330 +) +\tikz@expandcount=\count331 + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tik +zlibrarytopaths.code.tex +File: tikzlibrarytopaths.code.tex 2020/01/08 v3.1.5b (3.1.5b) +))) +(/usr/share/texlive/texmf-dist/tex/generic/tikz-cd/tikzlibrarycd.code.tex +(/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tik +zlibrarymatrix.code.tex +File: tikzlibrarymatrix.code.tex 2020/01/08 v3.1.5b (3.1.5b) +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tik +zlibraryquotes.code.tex +File: tikzlibraryquotes.code.tex 2020/01/08 v3.1.5b (3.1.5b) +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.meta. +code.tex +File: pgflibraryarrows.meta.code.tex 2020/01/08 v3.1.5b (3.1.5b) +\pgfarrowinset=\dimen303 +\pgfarrowlength=\dimen304 +\pgfarrowwidth=\dimen305 +\pgfarrowlinewidth=\dimen306 +))) (/usr/share/texlive/texmf-dist/tex/latex/adjustbox/adjustbox.sty +Package: adjustbox 2019/01/04 v1.2 Adjusting TeX boxes (trim, clip, ...) + +(/usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty +Package: xkeyval 2014/12/03 v2.7a package option processing (HA) + +(/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex +(/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex +\XKV@toks=\toks48 +\XKV@tempa@toks=\toks49 +) +\XKV@depth=\count332 +File: xkeyval.tex 2014/12/03 v2.7a key=value parser (HA) +)) +(/usr/share/texlive/texmf-dist/tex/latex/adjustbox/adjcalc.sty +Package: adjcalc 2012/05/16 v1.1 Provides advanced setlength with multiple back +-ends (calc, etex, pgfmath) +) +(/usr/share/texlive/texmf-dist/tex/latex/adjustbox/trimclip.sty +Package: trimclip 2018/04/08 v1.1 Trim and clip general TeX material + +(/usr/share/texlive/texmf-dist/tex/latex/collectbox/collectbox.sty +Package: collectbox 2012/05/17 v0.4b Collect macro arguments as boxes +\collectedbox=\box80 +) +\tc@llx=\dimen307 +\tc@lly=\dimen308 +\tc@urx=\dimen309 +\tc@ury=\dimen310 +Package trimclip Info: Using driver 'tc-pdftex.def'. + +(/usr/share/texlive/texmf-dist/tex/latex/adjustbox/tc-pdftex.def +File: tc-pdftex.def 2019/01/04 v2.2 Clipping driver for pdftex +)) +\adjbox@Width=\dimen311 +\adjbox@Height=\dimen312 +\adjbox@Depth=\dimen313 +\adjbox@Totalheight=\dimen314 +\adjbox@pwidth=\dimen315 +\adjbox@pheight=\dimen316 +\adjbox@pdepth=\dimen317 +\adjbox@ptotalheight=\dimen318 + +(/usr/share/texlive/texmf-dist/tex/latex/ifoddpage/ifoddpage.sty +Package: ifoddpage 2016/04/23 v1.1 Conditionals for odd/even page detection +\c@checkoddpage=\count333 +) +(/usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty +Package: varwidth 2009/03/30 ver 0.92; Variable-width minipages +\@vwid@box=\box81 +\sift@deathcycles=\count334 +\@vwid@loff=\dimen319 +\@vwid@roff=\dimen320 +)) +(/usr/share/texlive/texmf-dist/tex/latex/listings/lstlang1.sty +File: lstlang1.sty 2019/09/10 1.8c listings language file +) +(/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def +File: l3backend-pdfmode.def 2020-02-03 L3 backend support: PDF mode +\l__kernel_color_stack_int=\count335 +\l__pdf_internal_box=\box82 +) +(./X1-ComputationalComplexity.aux) +\openout1 = `X1-ComputationalComplexity.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 32. +LaTeX Font Info: ... okay on input line 32. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 32. +LaTeX Font Info: ... okay on input line 32. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 32. +LaTeX Font Info: ... okay on input line 32. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 32. +LaTeX Font Info: ... okay on input line 32. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 32. +LaTeX Font Info: ... okay on input line 32. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 32. +LaTeX Font Info: ... okay on input line 32. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 32. +LaTeX Font Info: ... okay on input line 32. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 32. +LaTeX Font Info: ... okay on input line 32. + +*geometry* driver: auto-detecting +*geometry* detected driver: pdftex +*geometry* verbose mode - [ preamble ] result: +* driver: pdftex +* paper: custom +* layout: +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* modes: includehead includefoot +* h-part:(L,W,R)=(10.95003pt, 342.2953pt, 10.95003pt) +* v-part:(T,H,B)=(0.0pt, 273.14662pt, 0.0pt) +* \paperwidth=364.19536pt +* \paperheight=273.14662pt +* \textwidth=342.2953pt +* \textheight=244.6939pt +* \oddsidemargin=-61.31996pt +* \evensidemargin=-61.31996pt +* \topmargin=-72.26999pt +* \headheight=14.22636pt +* \headsep=0.0pt +* \topskip=11.0pt +* \footskip=14.22636pt +* \marginparwidth=4.0pt +* \marginparsep=10.0pt +* \columnsep=10.0pt +* \skip\footins=10.0pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count336 +\scratchdimen=\dimen321 +\scratchbox=\box83 +\nofMPsegments=\count337 +\nofMParguments=\count338 +\everyMPshowfont=\toks50 +\MPscratchCnt=\count339 +\MPscratchDim=\dimen322 +\MPnumerator=\count340 +\makeMPintoPDFobject=\count341 +\everyMPtoPDFconversion=\toks51 +) (/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf +Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 +85. + +(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +ABD: EveryShipout initializing macros +\AtBeginShipoutBox=\box84 +Package hyperref Info: Link coloring OFF on input line 32. + +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty +Package: nameref 2019/09/16 v2.46 Cross-referencing by name of section + +(/usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty +Package: refcount 2019/12/15 v3.6 Data extraction from label references (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +Package: gettitlestring 2019/12/15 v1.6 Cleanup title references (HO) +) +\c@section@level=\count342 +) +LaTeX Info: Redefining \ref on input line 32. +LaTeX Info: Redefining \pageref on input line 32. +LaTeX Info: Redefining \nameref on input line 32. + +(./X1-ComputationalComplexity.out) (./X1-ComputationalComplexity.out) +\@outlinefile=\write5 +\openout5 = `X1-ComputationalComplexity.out'. + +LaTeX Font Info: Overwriting symbol font `operators' in version `normal' +(Font) OT1/cmr/m/n --> OT1/cmss/m/n on input line 32. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/cmss/b/n on input line 32. +\symnumbers=\mathgroup6 +\sympureletters=\mathgroup7 +LaTeX Font Info: Overwriting math alphabet `\mathrm' in version `normal' +(Font) OT1/cmss/m/n --> OT1/cmr/m/n on input line 32. +LaTeX Font Info: Redeclaring math alphabet \mathbf on input line 32. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' +(Font) OT1/cmr/bx/n --> OT1/cmss/b/n on input line 32. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/cmss/b/n on input line 32. +LaTeX Font Info: Redeclaring math alphabet \mathsf on input line 32. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal' +(Font) OT1/cmss/m/n --> OT1/cmss/m/n on input line 32. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) OT1/cmss/bx/n --> OT1/cmss/m/n on input line 32. +LaTeX Font Info: Redeclaring math alphabet \mathit on input line 32. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' +(Font) OT1/cmr/m/it --> OT1/cmss/m/it on input line 32. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/cmr/bx/it --> OT1/cmss/m/it on input line 32. +LaTeX Font Info: Redeclaring math alphabet \mathtt on input line 32. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal' +(Font) OT1/cmtt/m/n --> OT1/cmtt/m/n on input line 32. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) OT1/cmtt/m/n --> OT1/cmtt/m/n on input line 32. +LaTeX Font Info: Overwriting symbol font `numbers' in version `bold' +(Font) OT1/cmss/m/n --> OT1/cmss/b/n on input line 32. +LaTeX Font Info: Overwriting symbol font `pureletters' in version `bold' +(Font) OT1/cmss/m/it --> OT1/cmss/b/it on input line 32. +LaTeX Font Info: Overwriting math alphabet `\mathrm' in version `bold' +(Font) OT1/cmss/b/n --> OT1/cmr/b/n on input line 32. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' +(Font) OT1/cmss/b/n --> OT1/cmss/b/n on input line 32. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) OT1/cmss/m/n --> OT1/cmss/b/n on input line 32. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/cmss/m/it --> OT1/cmss/b/it on input line 32. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) OT1/cmtt/m/n --> OT1/cmtt/b/n on input line 32. +LaTeX Font Info: Redeclaring symbol font `pureletters' on input line 32. +LaTeX Font Info: Overwriting symbol font `pureletters' in version `normal' +(Font) OT1/cmss/m/it --> OT1/mathkerncmss/m/sl on input line 3 +2. +LaTeX Font Info: Overwriting symbol font `pureletters' in version `bold' +(Font) OT1/cmss/b/it --> OT1/mathkerncmss/m/sl on input line 3 +2. +LaTeX Font Info: Overwriting symbol font `pureletters' in version `bold' +(Font) OT1/mathkerncmss/m/sl --> OT1/mathkerncmss/bx/sl on inp +ut line 32. + +(/usr/share/texlive/texmf-dist/tex/latex/translator/translator-basic-dictionary +-English.dict +Dictionary: translator-basic-dictionary, Language: English +) +(/usr/share/texlive/texmf-dist/tex/latex/translator/translator-bibliography-dic +tionary-English.dict +Dictionary: translator-bibliography-dictionary, Language: English +) +(/usr/share/texlive/texmf-dist/tex/latex/translator/translator-environment-dict +ionary-English.dict +Dictionary: translator-environment-dictionary, Language: English +) +(/usr/share/texlive/texmf-dist/tex/latex/translator/translator-months-dictionar +y-English.dict +Dictionary: translator-months-dictionary, Language: English +) +(/usr/share/texlive/texmf-dist/tex/latex/translator/translator-numbers-dictiona +ry-English.dict +Dictionary: translator-numbers-dictionary, Language: English +) +(/usr/share/texlive/texmf-dist/tex/latex/translator/translator-theorem-dictiona +ry-English.dict +Dictionary: translator-theorem-dictionary, Language: English +) +\c@lstlisting=\count343 + (./X1-ComputationalComplexity.nav) + +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 36. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [1 + +{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map} <./img/unilu.jpg>] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 51. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [2 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 64. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [3 + +] +LaTeX Font Info: Trying to load font information for U+msa on input line 80. + + +(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd +File: umsa.fd 2013/01/14 v3.01 AMS symbols A +) +LaTeX Font Info: Trying to load font information for U+msb on input line 80. + + +(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd +File: umsb.fd 2013/01/14 v3.01 AMS symbols B +) +LaTeX Font Info: Trying to load font information for OT1+mathkerncmss on inp +ut line 80. + +(/usr/share/texlive/texmf-dist/tex/latex/sansmathaccent/ot1mathkerncmss.fd +File: ot1mathkerncmss.fd 2020/01/31 Fontinst v1.933 font definitions for OT1/ma +thkerncmss. +) +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 80. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + +[4 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 89. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [5 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 111. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [6 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 131. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [7 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 143. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [8 + +] + +File: img/plot1.png Graphic file (type png) + +Package pdftex.def Info: img/plot1.png used on input line 147. +(pdftex.def) Requested size: 298.42245pt x 196.5875pt. +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 147. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [9 + + <./img/plot1.png>] + +File: img/plot2.png Graphic file (type png) + +Package pdftex.def Info: img/plot2.png used on input line 151. +(pdftex.def) Requested size: 297.30951pt x 196.5875pt. +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 151. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [10 + + <./img/plot2.png>] + +File: img/plot3.png Graphic file (type png) + +Package pdftex.def Info: img/plot3.png used on input line 155. +(pdftex.def) Requested size: 297.66365pt x 196.5875pt. +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 155. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [11 + + <./img/plot3.png>] + +File: img/plot4.png Graphic file (type png) + +Package pdftex.def Info: img/plot4.png used on input line 159. +(pdftex.def) Requested size: 297.4107pt x 196.5875pt. +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 159. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [12 + + <./img/plot4.png>] + +File: img/plot5.png Graphic file (type png) + +Package pdftex.def Info: img/plot5.png used on input line 163. +(pdftex.def) Requested size: 297.25893pt x 196.5875pt. +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 163. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [13 + + <./img/plot5.png>] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 186. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [14 + +] +\openout4 = `X1-ComputationalComplexity.vrb'. + + +(./X1-ComputationalComplexity.vrb +LaTeX Font Info: Trying to load font information for TS1+cmss on input line +5. + +(/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmss.fd +File: ts1cmss.fd 2019/12/16 v2.5j Standard LaTeX font definitions +)) [15 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 224. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [16 + +] +\openout4 = `X1-ComputationalComplexity.vrb'. + + +(./X1-ComputationalComplexity.vrb +LaTeX Font Info: Trying to load font information for OML+cmss on input line +5. +LaTeX Font Info: No file OMLcmss.fd. on input line 5. + + +LaTeX Font Warning: Font shape `OML/cmss/m/n' undefined +(Font) using `OML/cmm/m/it' instead +(Font) for symbol `textgreater' on input line 5. + +) +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 241. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [17 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 260. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [18 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 269. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [19 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 277. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [20 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 291. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [21 + +] +\openout4 = `X1-ComputationalComplexity.vrb'. + + (./X1-ComputationalComplexity.vrb) +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 305. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [22 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 363. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [23 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 363. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + +[24 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 363. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [25 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 363. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [26 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 419. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [27 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 419. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [28 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 419. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [29 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 419. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [30 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 427. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [31 + +] +\openout4 = `X1-ComputationalComplexity.vrb'. + + (./X1-ComputationalComplexity.vrb) +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 443. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + +[32 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 456. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [33 + +] +\openout4 = `X1-ComputationalComplexity.vrb'. + + (./X1-ComputationalComplexity.vrb + +LaTeX Font Warning: Font shape `OML/cmss/m/it' undefined +(Font) using `OML/cmm/m/it' instead +(Font) for symbol `textgreater' on input line 3. + +) +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 469. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [34 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 478. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [35 + +] +\openout4 = `X1-ComputationalComplexity.vrb'. + + (./X1-ComputationalComplexity.vrb) +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 507. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [36 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 516. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [37 + +] +\openout4 = `X1-ComputationalComplexity.vrb'. + + +(./X1-ComputationalComplexity.vrb) +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 538. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [38 + +] +\openout4 = `X1-ComputationalComplexity.vrb'. + + (./X1-ComputationalComplexity.vrb) +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 551. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + +[39 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 560. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [40 + +] +\openout4 = `X1-ComputationalComplexity.vrb'. + + (./X1-ComputationalComplexity.vrb) +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 577. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [41 + +] +\openout4 = `X1-ComputationalComplexity.vrb'. + + +(./X1-ComputationalComplexity.vrb) +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 589. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [42 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 597. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [43 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 606. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [44 + +] +\tf@nav=\write6 +\openout6 = `X1-ComputationalComplexity.nav'. + +\tf@toc=\write7 +\openout7 = `X1-ComputationalComplexity.toc'. + +\tf@snm=\write8 +\openout8 = `X1-ComputationalComplexity.snm'. + +Package atveryend Info: Empty hook `BeforeClearDocument' on input line 608. +Package atveryend Info: Empty hook `AfterLastShipout' on input line 608. + +(./X1-ComputationalComplexity.aux) +Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 608. +Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 608. +Package rerunfilecheck Info: File `X1-ComputationalComplexity.out' has not chan +ged. +(rerunfilecheck) Checksum: D41D8CD98F00B204E9800998ECF8427E;0. + + +LaTeX Font Warning: Some font shapes were not available, defaults substituted. + + ) +Here is how much of TeX's memory you used: + 25931 strings out of 481239 + 509927 string characters out of 5920377 + 935890 words of memory out of 5000000 + 40483 multiletter control sequences out of 15000+600000 + 549107 words of font info for 85 fonts, out of 8000000 for 9000 + 1141 hyphenation exceptions out of 8191 + 58i,31n,89p,810b,1569s stack positions out of 5000i,500n,10000p,200000b,80000s + +Output written on X1-ComputationalComplexity.pdf (44 pages, 1769406 bytes). +PDF statistics: + 1306 PDF objects out of 1440 (max. 8388607) + 1204 compressed objects within 13 object streams + 89 named destinations out of 1000 (max. 500000) + 121 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/src/Lecture7/slides/X1-ComputationalComplexity.nav b/src/Lecture7/slides/X1-ComputationalComplexity.nav new file mode 100644 index 0000000..d21fe16 --- /dev/null +++ b/src/Lecture7/slides/X1-ComputationalComplexity.nav @@ -0,0 +1,81 @@ +\headcommand {\slideentry {0}{0}{1}{1/1}{}{0}} +\headcommand {\beamer@framepages {1}{1}} +\headcommand {\slideentry {0}{0}{2}{2/2}{}{0}} +\headcommand {\beamer@framepages {2}{2}} +\headcommand {\slideentry {0}{0}{3}{3/3}{}{0}} +\headcommand {\beamer@framepages {3}{3}} +\headcommand {\slideentry {0}{0}{4}{4/4}{}{0}} +\headcommand {\beamer@framepages {4}{4}} +\headcommand {\slideentry {0}{0}{5}{5/5}{}{0}} +\headcommand {\beamer@framepages {5}{5}} +\headcommand {\slideentry {0}{0}{6}{6/6}{}{0}} +\headcommand {\beamer@framepages {6}{6}} +\headcommand {\slideentry {0}{0}{7}{7/7}{}{0}} +\headcommand {\beamer@framepages {7}{7}} +\headcommand {\slideentry {0}{0}{8}{8/8}{}{0}} +\headcommand {\beamer@framepages {8}{8}} +\headcommand {\slideentry {0}{0}{9}{9/9}{}{0}} +\headcommand {\beamer@framepages {9}{9}} +\headcommand {\slideentry {0}{0}{10}{10/10}{}{0}} +\headcommand {\beamer@framepages {10}{10}} +\headcommand {\slideentry {0}{0}{11}{11/11}{}{0}} +\headcommand {\beamer@framepages {11}{11}} +\headcommand {\slideentry {0}{0}{12}{12/12}{}{0}} +\headcommand {\beamer@framepages {12}{12}} +\headcommand {\slideentry {0}{0}{13}{13/13}{}{0}} +\headcommand {\beamer@framepages {13}{13}} +\headcommand {\slideentry {0}{0}{14}{14/14}{}{0}} +\headcommand {\beamer@framepages {14}{14}} +\headcommand {\slideentry {0}{0}{15}{15/15}{}{0}} +\headcommand {\beamer@framepages {15}{15}} +\headcommand {\slideentry {0}{0}{16}{16/16}{}{0}} +\headcommand {\beamer@framepages {16}{16}} +\headcommand {\slideentry {0}{0}{17}{17/17}{}{0}} +\headcommand {\beamer@framepages {17}{17}} +\headcommand {\slideentry {0}{0}{18}{18/18}{}{0}} +\headcommand {\beamer@framepages {18}{18}} +\headcommand {\slideentry {0}{0}{19}{19/19}{}{0}} +\headcommand {\beamer@framepages {19}{19}} +\headcommand {\slideentry {0}{0}{20}{20/20}{}{0}} +\headcommand {\beamer@framepages {20}{20}} +\headcommand {\slideentry {0}{0}{21}{21/21}{}{0}} +\headcommand {\beamer@framepages {21}{21}} +\headcommand {\slideentry {0}{0}{22}{22/22}{}{0}} +\headcommand {\beamer@framepages {22}{22}} +\headcommand {\slideentry {0}{0}{23}{23/26}{}{0}} +\headcommand {\beamer@framepages {23}{26}} +\headcommand {\slideentry {0}{0}{24}{27/30}{}{0}} +\headcommand {\beamer@framepages {27}{30}} +\headcommand {\slideentry {0}{0}{25}{31/31}{}{0}} +\headcommand {\beamer@framepages {31}{31}} +\headcommand {\slideentry {0}{0}{26}{32/32}{}{0}} +\headcommand {\beamer@framepages {32}{32}} +\headcommand {\slideentry {0}{0}{27}{33/33}{}{0}} +\headcommand {\beamer@framepages {33}{33}} +\headcommand {\slideentry {0}{0}{28}{34/34}{}{0}} +\headcommand {\beamer@framepages {34}{34}} +\headcommand {\slideentry {0}{0}{29}{35/35}{}{0}} +\headcommand {\beamer@framepages {35}{35}} +\headcommand {\slideentry {0}{0}{30}{36/36}{}{0}} +\headcommand {\beamer@framepages {36}{36}} +\headcommand {\slideentry {0}{0}{31}{37/37}{}{0}} +\headcommand {\beamer@framepages {37}{37}} +\headcommand {\slideentry {0}{0}{32}{38/38}{}{0}} +\headcommand {\beamer@framepages {38}{38}} +\headcommand {\slideentry {0}{0}{33}{39/39}{}{0}} +\headcommand {\beamer@framepages {39}{39}} +\headcommand {\slideentry {0}{0}{34}{40/40}{}{0}} +\headcommand {\beamer@framepages {40}{40}} +\headcommand {\slideentry {0}{0}{35}{41/41}{}{0}} +\headcommand {\beamer@framepages {41}{41}} +\headcommand {\slideentry {0}{0}{36}{42/42}{}{0}} +\headcommand {\beamer@framepages {42}{42}} +\headcommand {\slideentry {0}{0}{37}{43/43}{}{0}} +\headcommand {\beamer@framepages {43}{43}} +\headcommand {\slideentry {0}{0}{38}{44/44}{}{0}} +\headcommand {\beamer@framepages {44}{44}} +\headcommand {\beamer@partpages {1}{44}} +\headcommand {\beamer@subsectionpages {1}{44}} +\headcommand {\beamer@sectionpages {1}{44}} +\headcommand {\beamer@documentpages {44}} +\headcommand {\gdef \inserttotalframenumber {38}} diff --git a/src/Lecture7/slides/X1-ComputationalComplexity.out b/src/Lecture7/slides/X1-ComputationalComplexity.out new file mode 100644 index 0000000..e69de29 diff --git a/src/Lecture7/slides/X1-ComputationalComplexity.pdf b/src/Lecture7/slides/X1-ComputationalComplexity.pdf new file mode 100644 index 0000000..fe67ff6 Binary files /dev/null and b/src/Lecture7/slides/X1-ComputationalComplexity.pdf differ diff --git a/src/Lecture7/slides/X1-ComputationalComplexity.snm b/src/Lecture7/slides/X1-ComputationalComplexity.snm new file mode 100644 index 0000000..e69de29 diff --git a/src/Lecture7/slides/X1-ComputationalComplexity.tex b/src/Lecture7/slides/X1-ComputationalComplexity.tex new file mode 100644 index 0000000..c7e1602 --- /dev/null +++ b/src/Lecture7/slides/X1-ComputationalComplexity.tex @@ -0,0 +1,608 @@ +\documentclass[11pt]{beamer} +\usetheme{Madrid} +\usepackage[utf8]{inputenc} +\usepackage{amsmath} + +\usepackage{color} +\usepackage{listings} +\usepackage{mathtools} +\usepackage{tikz-cd} +\usepackage{adjustbox} + +\definecolor{myblue}{rgb}{0,0,0.5} +\lstset{ + language=Python, + tabsize=4, + basicstyle=\footnotesize, + keywordstyle=\bf\color{myblue}, + commentstyle=\it\color{gray}, + numbers=left, + numbersep=3pt, + numberstyle=\tiny\color{gray}, +} + +\author[\texttt{sebastiano.tronto@uni.lu}]{Sebastiano Tronto} +\title[Computational Complexity]% +{Why is my code slow?} +\logo{\includegraphics[scale=0.1]{img/unilu.jpg}} +%\institute{University of Luxembourg} + +\date{2021-05-21} + +\begin{document} + +\begin{frame} + \titlepage +\end{frame} + +\begin{frame}{Computational Complexity} + \begin{itemize} + \item \textbf{Goal:} + estimate the running {\color{blue}time} of a program + \item \textbf{How:} + count the {\color{blue}basic steps} that an + {\color{blue}algorithm} takes to complete + \item \textbf{Why}: + find the \emph{bottleneck} of your program, make it faster + \end{itemize} + + \vspace{0.5cm} + Our analysis should not depend on the hardware +\end{frame} + +\begin{frame}{Algorithm} + \begin{definition} + \emph{An algorithm is a sequence of {\color{blue}steps} needed to + solve a {\color{blue}class of problems}. } + \end{definition} + + \begin{definition}[alternative] + \emph{An algorithm is a sequence of steps that takes + an input satisfying certain conditions and produces an output + satisfying other conditions.} + \end{definition} +\end{frame} + +\begin{frame}{Sorting a list} + \begin{block}{Class of problems} + Sort a list $L$ of numbers in increasing order. + \end{block} + + \begin{block}{Algorithm} + \begin{enumerate} + \item Let $S$ be an empty list. + \item Take an element from $L$ an insert it in $S$ in its correct + position. + \item Repeat step $2$ until $L$ is empty. + \item Return $S$. + \end{enumerate} + \end{block} +\end{frame} + +\begin{frame}{Sorting a list} +\begin{itemize} + \item It solves a \emph{class} of problems: works for any list + \item The specific steps to sort the list $[3,7,1]$ are not an algorithm + \item Input conditions: must be a list of numbers + \item Output conditions: same numbers in increasing order +\end{itemize} +\end{frame} + +\begin{frame}{How to write an algorithm} + \begin{itemize} + \item \textbf{Human language}: + \begin{itemize} + \item Easy to understand + \item Not precise + \end{itemize} + + \vspace{0.3cm} + \item \textbf{Computer code}: + \begin{itemize} + \item Can be executed by computers + \item Precise + \item From very low level (machine code) to high level + (Python, \dots) + \end{itemize} + \end{itemize} + + %\vspace{0.5cm} + %To what \emph{level of detail}? +\end{frame} + +\begin{frame}{Basic steps} + \begin{itemize} + %\item Strictly speaking, only CPU instructions are \emph{basic} + %\item In practice:%, we consider basic: + % \begin{itemize} + \item Arithmetic operations $+,-,*,//,\%$ + \item Relational operations $==, !=, >, <,\dots$ + \item Memory access (read/write variable) + % \end{itemize} + \end{itemize} + + \vspace{0.5cm} + \textbf{Warning:} + Depends on data type (integer, floating point, string,\dots) + %\begin{itemize} + % \item Depends on data type (integer, floating point, string,\dots) + % \item There are non-basic instructions such as \texttt{sort()} + %\end{itemize} +\end{frame} + +\begin{frame}{Running time} + \begin{itemize} + \item Depends on computer power, programming language, compiler\dots + %\item Not all basic steps are equal + \item ``Big O'' notation: an algorithm runs in time $O(f(n))$ if, when + run with input of size $n$, it takes about $c\cdot f(n)$ steps + \item Algorithm A is \emph{asymptotically faster} than algorithm B if + it is faster \textbf{for $n$ large enough} + \item Rule of thumb: $10^7\sim10^9$ basic steps per second + \end{itemize} +\end{frame} + +\begin{frame}{Asymptotical analysis vs constant factors} + \includegraphics[scale=0.7]{img/plot1.png} +\end{frame} + +\begin{frame}{Asymptotical analysis vs constant factors} + \includegraphics[scale=0.7]{img/plot2.png} +\end{frame} + +\begin{frame}{Asymptotical analysis vs constant factors} + \includegraphics[scale=0.7]{img/plot3.png} +\end{frame} + +\begin{frame}{Asymptotical analysis vs constant factors} + \includegraphics[scale=0.7]{img/plot4.png} +\end{frame} + +\begin{frame}{Asymptotical analysis vs constant factors} + \includegraphics[scale=0.7]{img/plot5.png} +\end{frame} + +%\begin{frame}{title} +%graphs here, uncomment +%\end{frame} + +\begin{frame}{Basic complexity analysis} + + Easy things to do: + + \vspace{0.3cm} + \begin{itemize} + \item Check documentation for ``non-basic steps'' + \begin{itemize} + \item Example: check Sage's \href{https://doc.sagemath.org/html/en/reference/rings\_standard/sage/rings/integer.html\#sage.rings.integer.Integer.is\_prime}{\texttt{is\_prime()}} (redirects to PARI \href{https://pari.math.u-bordeaux.fr/dochtml/html/Arithmetic\_functions.html\#se:isprime}{\texttt{isprime()}}) + \end{itemize} + + \vspace{0.3cm} + \item Count nested loops + \begin{itemize} + \item How many times is a step repeated? + \end{itemize} + \end{itemize} +\end{frame} + +{\setbeamertemplate{logo}{} +\begin{frame}[fragile]{Nested loops - matrix sum and product} +\begin{lstlisting} +def add(A, B): + n = len(A) + S = [[0] * n for i in range(n)] + for i in range(0, n): + for j in range(0, n): + S[i][j] = A[i][j] + B[i][j] + return S +\end{lstlisting} + +\vspace{0.5cm} +\begin{lstlisting} +def prod(A, B): + n = len(A) + S = [[0] * n for i in range(n)] + for i in range(0, n): + for j in range(0, n): + for k in range(0, n): + S[i][j] = S[i][j] + A[i][k]*B[k][j] + return S +\end{lstlisting} +\end{frame} +} + +\begin{frame}{Nested loops - matrix sum and product} + \begin{itemize} + \item \texttt{add} is $O(n^2)$ (two loops) + \item \texttt{prod} is $O(n^3)$ (three loops) + \end{itemize} + + \vspace{0.3cm} + \textbf{Fun fact:} there are faster algorithms for matrix multiplication, + for example \href{https://en.wikipedia.org/wiki/Strassen_algorithm}% + {Strassen's algorithm}. +\end{frame} + +\begin{frame}[fragile]{Sorting a list} +\begin{lstlisting} +def correct_position(e, S): + for i in range(0, len(S)): + if S[i] > e: + return i + return len(S) + +def sort_list(L): + S = [] + for e in L: + cp = correct_position(e, S) + S.insert(cp, e) + return S +\end{lstlisting} +\end{frame} + +\begin{frame}{Sorting a list} + \begin{itemize} + \item Complexity of \texttt{correct\_position()}: + \begin{itemize} + %\item best case $O(1)$ + \item worst case $O($\texttt{len(S)}$)$ + \item average $O($\texttt{len(S)}$)$ + \end{itemize} + + \vspace{0.3cm} + \item Complexity of \texttt{sort\_list} (here $n=$\texttt{len(L)}): + \begin{align*} + %\sum_{i=0}^{n-1} O(1) = O(n) && \text{best case}\\ + \sum_{i=0}^{n-1} O(i) = O(n^2)% && \text{average/worst} + \end{align*} + (it calls \texttt{correct\_position()} $n$ times). + \end{itemize} +\end{frame} + +\begin{frame}{Sorting a list} + \begin{itemize} + \item For which lists does the ``best case'' happen? + \item For which lists does the ``worst case'' happen? + \item How large can $n$ be for \texttt{sort\_list()} to run + in under a second? + \end{itemize} +\end{frame} + +\begin{frame}{Sorting a list} + How to improve our code? + \begin{itemize} + \item Improve \texttt{correct\_position()} + \item Take advantage of the fact that $S$ is always sorted + \end{itemize} +\end{frame} + +\begin{frame}{Binary search} + \begin{block}{Algorithm} + \textbf{Input:} a \emph{sorted} list $S$ and a value $e$. + \begin{enumerate} + \item If the list is empty, you have found the position of $e$ + \item Otherwise, compare $e$ to the middle element $m$ of $S$ + \begin{itemize} + \item If $e{ + \underbrace{ + \overset{{\color{blue} + \substack{\mathclap{\texttt{start}=0}\\\downarrow}}}{-2} + \quad 0\quad 1\quad 3\quad + \overset{\substack{\mathclap{\texttt{midpoint}=4}\\\downarrow}}{5} + \quad 6\quad 7\quad 9\quad 12 + }\quad + \overset{{\color{red} + \substack{\mathclap{\texttt{end}=9}\\\downarrow}}}{\phantom{0}} + } + \only<2>{ + \underbrace{ + \overset{{\color{blue} + \substack{\mathclap{\texttt{start}=0}\\\downarrow}}}{-2} + \quad 0\quad + \overset{\substack{\mathclap{\texttt{midpoint}=2}\\\\\downarrow}}% + {1} + \quad 3 + }\quad + \overset{{\color{red} + \substack{\mathclap{\texttt{end}=4}\\\downarrow}}}{5} + \quad 6\quad 7\quad 9\quad 12\quad \phantom{0} + } + \only<3>{ + -2\quad 0\quad 1\quad + \underbrace{ + \overset{ + \substack{ + \mathclap{ + {\color{blue}\texttt{start}}=\texttt{midpoint}=3}\\\\ + {\color{blue}\downarrow} + } + }{3} + } \quad + \overset{{\color{red} + \substack{\mathclap{\texttt{end}=4}\\\downarrow}}}{5} + \quad 6\quad 7\quad 9\quad 12\quad \phantom{0} + } + \only<4>{ + -2\quad 0\quad 1\quad + \overset{ + \substack{ + \mathclap{ + {\color{blue}\texttt{start}}= + {\color{red}\texttt{end}}=3}\\\downarrow}}{3} + \quad 5 \quad 6\quad 7\quad 9\quad 12\quad \phantom{0} + } + \end{align*} + \only<1>{{\color{blue}$e<5$}$\implies$ check left half} + \only<2>{{\color{red}$e>1$}$\implies$ check right half} + \only<3>{{\color{blue}$e<3$}$\implies$ check left half} + \only<4>{\texttt{start}=\texttt{end}, done} +\end{frame} + +\begin{frame}{Binary search - example 2} + Searching for \texttt{e}$=11$: + \begin{align*} + \only<1>{ + \underbrace{ + \overset{{\color{blue} + \substack{\mathclap{\texttt{start}=0}\\\downarrow}}}{-2} + \quad 0\quad 1\quad 3\quad + \overset{\substack{\mathclap{\texttt{midpoint}=4}\\\downarrow}}{5} + \quad 6\quad 7\quad 9\quad 12 + }\quad + \overset{{\color{red} + \substack{\mathclap{\texttt{end}=9}\\\downarrow}}}{\phantom{0}} + } + \only<2>{ + -2 \quad 0\quad 1 \quad 3 \quad 5 \quad + \underbrace{ + \overset{{\color{blue} + \substack{\mathclap{\texttt{start}=5}\\\downarrow}}}{6} + \quad 7 \quad + \overset{\substack{\mathclap{\texttt{midpoint}=7}\\\\\downarrow}}% + {9} + \quad 12 + }\quad + \overset{{\color{red} + \substack{\mathclap{\texttt{end}=9}\\\downarrow}}}{\phantom{0}} + } + \only<3>{ + -2\quad 0\quad 1\quad 3\quad 5\quad 6\quad 7\quad 9\quad + \underbrace{ + \overset{ + \substack{ + \mathclap{ + {\color{blue}\texttt{start}}=\texttt{midpoint}=8}\\\\ + {\color{blue}\downarrow} + } + }{12} + } \quad + \overset{{\color{red} + \substack{\mathclap{\texttt{end}=9}\\\downarrow}}}{\phantom{0}} + } + \only<4>{ + -2\quad 0\quad 1\quad 3\quad 5\quad 6\quad 7\quad 9\quad + \overset{ + \substack{ + \mathclap{ + {\color{blue}\texttt{start}}= + {\color{red}\texttt{end}}=8}\\\downarrow}}{12} + } + \end{align*} + \only<1>{{\color{red}$e>5$}$\implies$ check right half} + \only<2>{{\color{red}$e>9$}$\implies$ check right half} + \only<3>{{\color{blue}$e<11$}$\implies$ check left half} + \only<4>{\texttt{start}=\texttt{end}, done} +\end{frame} + +\begin{frame}{Binary search} + \begin{itemize} + \item Works only if the list is sorted + \item Complexity $O(\log_2(n))$: at every step we cut the list in half + \item Recursive, \emph{divide et impera} + \end{itemize} +\end{frame} + +\begin{frame}[fragile]{Sorting a list - binary search version} +\begin{lstlisting} +def sort_list(L): + S = [] + for e in L: + cp = binary_search(e, S, 0, len(S)) # This changed + S.insert(cp, e) + return S +\end{lstlisting} + \vspace{0.3cm} + \begin{itemize} + \item Complexity: \[\sum_{i=0}^{n-1} O(\log_2(i)) = O(n\log_2(n))\]\\ + (it calls \texttt{binary\_search} $n$ times). + \end{itemize} +\end{frame} + +\begin{frame}{Fast exponentiation} + \begin{block}{Algorithm / formula} + \begin{align*} + a^n= + \begin{cases} + 1 & \text{if }n=0,\\ + (a\cdot a)^{\frac n2} & \text{if $n$ is even},\\ + a\cdot a^{n-1} & \text{if $n$ is odd.} + \end{cases} + \end{align*} + \end{block} +\end{frame} + +\begin{frame}[fragile]{Fast exponentiation} +\begin{lstlisting} +# Compute a^n (n>=0 integer) +def power(a, n): + if n == 0: + return 1 + if n % 2 == 0: # n is even + return power(a*a, n//2) + else: # n is odd + return a*power(a, n-1) +\end{lstlisting} +\end{frame} + +\begin{frame}{Fast exponentiation} + + \begin{itemize} + \item Complexity: $O(\log_2(n))$ (after $2$ steps, $n$ is halved) + \item Python's operator $**$ does something similar + \item Naive algorithm (one loop): $O(n)$ + \end{itemize} +\end{frame} + + +\begin{frame}[fragile]{Fast $\gcd$} + \begin{block}{Algorithm / formula} + \begin{align*} + \gcd(a,b) = + \begin{cases} + a & \text{if }b=0,\\ + \gcd(b,a\bmod b) & \text{otherwise.} + \end{cases} + \end{align*} + \end{block} + +\begin{columns} +\column{0.5\textwidth} +\begin{lstlisting} +def gcd(a, b): + if b == 0: + return a + else: + return gcd(b, a%b) +\end{lstlisting} + +\column{0.5\textwidth} +\begin{itemize} + \item After $2$ steps, $a$ is halved $\implies$ complexity $O(\log_2(a))$ +\end{itemize} +\end{columns} +\end{frame} + +\begin{frame}{Recursion} + \begin{itemize} + \item These examples use \emph{recursion} + (a function that calls itself) + \item If it calls itself more than once, it is slow + (\emph{exponential} complexity!) + \end{itemize} +\end{frame} + +\begin{frame}[fragile]{Fibonacci numbers} + + \begin{block}{Algorithm / formula} + \begin{align*} + F(n) = + \begin{cases} + n & \text{if }n\leq1,\\ + F(n-1)+F(n-2) & \text{otherwise.} + \end{cases} + \end{align*} + \end{block} + +\vspace{0.5cm} +\begin{lstlisting} +def F(n): + if n <= 1: + return n + else: + return F(n-1) + F(n-2) +\end{lstlisting} +\end{frame} + +\begin{frame}[fragile]{Fibonacci} + \begin{adjustbox}{scale={0.85}{0.9},center} + \begin{tikzcd}[column sep=1mm] + & & & & & & & & F(5) \ar[drrr] \ar[dlll]\\ + & & & & & F(4)\ar[dll]\ar[dr] & & & & & & F(3) \ar[dl] \ar[dr]\\ + & & & F(3) \ar[dl]\ar[dr] & & & F(2) \ar[dr]\ar[dl] + & & & & F(2) \ar[dl]\ar[dr] & & F(1) \\ + & & F(2) \ar[dl]\ar[dr] & & F(1) & F(1) & & F(0) & & F(1) & & F(0)\\ + & F(1) & & F(0) + \end{tikzcd} + \end{adjustbox} +\end{frame} + +\begin{frame}{Fibonacci} + \begin{itemize} + \item Complexity: almost $O(2^n)$ (actually $O(\varphi^n)$ + with $\varphi=\frac{1+\sqrt 5}{2}\sim 1.6$) + \item But some values are computed many times! + \item Optimization: memorize previously computed values + \end{itemize} +\end{frame} + +\begin{frame}[fragile]{Fibonacci with memorization} +\begin{lstlisting} +# List with memorized values, N is the largest possible +N = 10**6 +F_memorized = [-1] * N + +def F(n): + if F_memorized[n] == -1: + if n <= 1: + F_memorized[n] = n + else: + F_memorized[n] = F(n-1) + F(n-2) + + return F_memorized[n] +\end{lstlisting} +\end{frame} + +\begin{frame}[fragile]{Fibonacci with memorization} + \begin{adjustbox}{scale={0.85}{0.9},center} + \begin{tikzcd}[column sep=1mm] + & & & & & & & & F(5) \ar[drrr] \ar[dlll]\\ + & & & & & F(4)\ar[dll]\ar[dr] & & & & & & {\color{blue}F(3)}\\ + & & & F(3) \ar[dl]\ar[dr] & & & {\color{blue}F(2)}\\ + & & F(2) \ar[dl]\ar[dr] & & {\color{blue}F(1)} \\ + & F(1) & & F(0) + \end{tikzcd} + \end{adjustbox} +\end{frame} + +\begin{frame}{Fibonacci with memorization} + \begin{itemize} + \item Complexity: $O(n)$, huge improvement! + \item Further improvement (but still $O(n)$): dynamic programming + \item Pay attention to memory usage + \end{itemize} +\end{frame} + +\begin{frame}{References} + \begin{itemize} + \item Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and + Clifford Stein - + \href{https://en.wikipedia.org/wiki/Introduction\_to\_Algorithms}% + {\emph{Introductions to Algorithms}} + \end{itemize} +\end{frame} + +\end{document} diff --git a/src/Lecture7/slides/X1-ComputationalComplexity.toc b/src/Lecture7/slides/X1-ComputationalComplexity.toc new file mode 100644 index 0000000..e69de29 diff --git a/src/Lecture7/slides/X1-ComputationalComplexity.vrb b/src/Lecture7/slides/X1-ComputationalComplexity.vrb new file mode 100644 index 0000000..57dfae6 --- /dev/null +++ b/src/Lecture7/slides/X1-ComputationalComplexity.vrb @@ -0,0 +1,10 @@ +\frametitle{Fibonacci with memorization} +\begin{adjustbox}{scale={0.85}{0.9},center} + \begin{tikzcd}[column sep=1mm] + & & & & & & & & F(5) \ar[drrr] \ar[dlll]\\ + & & & & & F(4)\ar[dll]\ar[dr] & & & & & & {\color{blue}F(3)}\\ + & & & F(3) \ar[dl]\ar[dr] & & & {\color{blue}F(2)}\\ + & & F(2) \ar[dl]\ar[dr] & & {\color{blue}F(1)} \\ + & F(1) & & F(0) + \end{tikzcd} + \end{adjustbox} diff --git a/src/Lecture7/slides/X2-StudentsRequests.aux b/src/Lecture7/slides/X2-StudentsRequests.aux new file mode 100644 index 0000000..65a5da5 --- /dev/null +++ b/src/Lecture7/slides/X2-StudentsRequests.aux @@ -0,0 +1,67 @@ +\relax +\providecommand\hyper@newdestlabel[2]{} +\providecommand{\transparent@use}[1]{} +\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} +\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined +\global\let\oldcontentsline\contentsline +\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} +\global\let\oldnewlabel\newlabel +\gdef\newlabel#1#2{\newlabelxx{#1}#2} +\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} +\AtEndDocument{\ifx\hyper@anchor\@undefined +\let\contentsline\oldcontentsline +\let\newlabel\oldnewlabel +\fi} +\fi} +\global\let\hyper@last\relax +\gdef\HyperFirstAtBeginDocument#1{#1} +\providecommand\HyField@AuxAddToFields[1]{} +\providecommand\HyField@AuxAddToCoFields[2]{} +\providecommand \oddpage@label [2]{} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{1}{1/1}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {1}{1}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{2}{2/2}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {2}{2}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{3}{3/3}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {3}{3}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{4}{4/4}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {4}{4}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{5}{5/5}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {5}{5}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{6}{6/6}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {6}{6}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{7}{7/7}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {7}{7}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{8}{8/8}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {8}{8}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{9}{9/9}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {9}{9}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{10}{10/10}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {10}{10}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{11}{11/11}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {11}{11}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{12}{12/12}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {12}{12}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{13}{13/13}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {13}{13}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{14}{14/14}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {14}{14}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{15}{15/15}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {15}{15}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{16}{16/16}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {16}{16}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{17}{17/17}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {17}{17}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{18}{18/18}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {18}{18}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{19}{19/19}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {19}{19}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{20}{20/20}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {20}{20}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{21}{21/21}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {21}{21}}} +\@writefile{nav}{\headcommand {\beamer@partpages {1}{21}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {1}{21}}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {1}{21}}} +\@writefile{nav}{\headcommand {\beamer@documentpages {21}}} +\@writefile{nav}{\headcommand {\gdef \inserttotalframenumber {21}}} diff --git a/src/Lecture7/slides/X2-StudentsRequests.log b/src/Lecture7/slides/X2-StudentsRequests.log new file mode 100644 index 0000000..3af479e --- /dev/null +++ b/src/Lecture7/slides/X2-StudentsRequests.log @@ -0,0 +1,1307 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdflatex 2021.5.20) 25 MAY 2021 16:22 +entering extended mode + \write18 enabled. + %&-line parsing enabled. +**X2-StudentsRequests.tex +(./X2-StudentsRequests.tex +LaTeX2e <2020-02-02> patch level 2 +L3 programming layer <2020-02-14> +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamer.cls +Document Class: beamer 2019/09/29 v3.57 A class for typesetting presentations +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasemodes.sty +(/usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty +Package: etoolbox 2019/09/21 v2.5h e-TeX tools for LaTeX (JAW) +\etb@tempcnta=\count167 +) +\beamer@tempbox=\box45 +\beamer@tempcount=\count168 +\c@beamerpauses=\count169 + +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasedecode.sty +\beamer@slideinframe=\count170 +\beamer@minimum=\count171 +\beamer@decode@box=\box46 +) +\beamer@commentbox=\box47 +\beamer@modecount=\count172 +) +(/usr/share/texlive/texmf-dist/tex/generic/iftex/ifpdf.sty +Package: ifpdf 2019/10/25 v3.4 ifpdf legacy package. Use iftex instead. + +(/usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty +Package: iftex 2019/11/07 v1.0c TeX engine tests +)) +\headdp=\dimen134 +\footheight=\dimen135 +\sidebarheight=\dimen136 +\beamer@tempdim=\dimen137 +\beamer@finalheight=\dimen138 +\beamer@animht=\dimen139 +\beamer@animdp=\dimen140 +\beamer@animwd=\dimen141 +\beamer@leftmargin=\dimen142 +\beamer@rightmargin=\dimen143 +\beamer@leftsidebar=\dimen144 +\beamer@rightsidebar=\dimen145 +\beamer@boxsize=\dimen146 +\beamer@vboxoffset=\dimen147 +\beamer@descdefault=\dimen148 +\beamer@descriptionwidth=\dimen149 +\beamer@lastskip=\skip47 +\beamer@areabox=\box48 +\beamer@animcurrent=\box49 +\beamer@animshowbox=\box50 +\beamer@sectionbox=\box51 +\beamer@logobox=\box52 +\beamer@linebox=\box53 +\beamer@sectioncount=\count173 +\beamer@subsubsectionmax=\count174 +\beamer@subsectionmax=\count175 +\beamer@sectionmax=\count176 +\beamer@totalheads=\count177 +\beamer@headcounter=\count178 +\beamer@partstartpage=\count179 +\beamer@sectionstartpage=\count180 +\beamer@subsectionstartpage=\count181 +\beamer@animationtempa=\count182 +\beamer@animationtempb=\count183 +\beamer@xpos=\count184 +\beamer@ypos=\count185 +\beamer@ypos@offset=\count186 +\beamer@showpartnumber=\count187 +\beamer@currentsubsection=\count188 +\beamer@coveringdepth=\count189 +\beamer@sectionadjust=\count190 +\beamer@tocsectionnumber=\count191 + +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaseoptions.sty +(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks14 +)) +\beamer@paperwidth=\skip48 +\beamer@paperheight=\skip49 + +(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2020/01/02 v5.9 Page Geometry + +(/usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty +Package: ifvtex 2019/10/25 v1.7 ifvtex legacy package. Use iftex instead. +) +\Gm@cnth=\count192 +\Gm@cntv=\count193 +\c@Gm@tempcnt=\count194 +\Gm@bindingoffset=\dimen150 +\Gm@wd@mp=\dimen151 +\Gm@odd@mp=\dimen152 +\Gm@even@mp=\dimen153 +\Gm@layoutwidth=\dimen154 +\Gm@layoutheight=\dimen155 +\Gm@layouthoffset=\dimen156 +\Gm@layoutvoffset=\dimen157 +\Gm@dimlist=\toks15 +) +(/usr/share/texlive/texmf-dist/tex/latex/base/size11.clo +File: size11.clo 2019/12/20 v1.4l Standard LaTeX file (size option) +) +(/usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2019/11/30 v1.2a Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2019/11/30 v1.4a Standard LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2016/01/03 v1.10 sin cos tan (DPC) +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: pdftex.def on input line 105. + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex +)) +\Gin@req@height=\dimen158 +\Gin@req@width=\dimen159 +) +(/usr/share/texlive/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +(/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex +\pgfutil@everybye=\toks16 +\pgfutil@tempdima=\dimen160 +\pgfutil@tempdimb=\dimen161 + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.t +ex)) (/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def +\pgfutil@abb=\box54 +(/usr/share/texlive/texmf-dist/tex/latex/ms/everyshi.sty +Package: everyshi 2001/05/15 v3.00 EveryShipout Package (MS) +)) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +(/usr/share/texlive/texmf-dist/tex/generic/pgf/pgf.revision.tex) +Package: pgfrcs 2020/01/08 v3.1.5b (3.1.5b) +)) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +Package: pgfsys 2020/01/08 v3.1.5b (3.1.5b) + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +\pgfkeys@pathtoks=\toks17 +\pgfkeys@temptoks=\toks18 + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.t +ex +\pgfkeys@tmptoks=\toks19 +)) +\pgf@x=\dimen162 +\pgf@y=\dimen163 +\pgf@xa=\dimen164 +\pgf@ya=\dimen165 +\pgf@xb=\dimen166 +\pgf@yb=\dimen167 +\pgf@xc=\dimen168 +\pgf@yc=\dimen169 +\pgf@xd=\dimen170 +\pgf@yd=\dimen171 +\w@pgf@writea=\write3 +\r@pgf@reada=\read2 +\c@pgf@counta=\count195 +\c@pgf@countb=\count196 +\c@pgf@countc=\count197 +\c@pgf@countd=\count198 +\t@pgf@toka=\toks20 +\t@pgf@tokb=\toks21 +\t@pgf@tokc=\toks22 +\pgf@sys@id@count=\count199 + (/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg +File: pgf.cfg 2020/01/08 v3.1.5b (3.1.5b) +) +Driver file for pgf: pgfsys-pdftex.def + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def +File: pgfsys-pdftex.def 2020/01/08 v3.1.5b (3.1.5b) + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.de +f +File: pgfsys-common-pdf.def 2020/01/08 v3.1.5b (3.1.5b) +))) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code. +tex +File: pgfsyssoftpath.code.tex 2020/01/08 v3.1.5b (3.1.5b) +\pgfsyssoftpath@smallbuffer@items=\count266 +\pgfsyssoftpath@bigbuffer@items=\count267 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code. +tex +File: pgfsysprotocol.code.tex 2020/01/08 v3.1.5b (3.1.5b) +)) (/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: pdftex.def on input line 225. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352. +Package xcolor Info: Model `RGB' extended on input line 1364. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371. +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +Package: pgfcore 2020/01/08 v3.1.5b (3.1.5b) + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex +\pgfmath@dimen=\dimen172 +\pgfmath@count=\count268 +\pgfmath@box=\box55 +\pgfmath@toks=\toks23 +\pgfmath@stack@operand=\toks24 +\pgfmath@stack@operation=\toks25 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code +.tex) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonomet +ric.code.tex) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.cod +e.tex) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison +.code.tex) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code. +tex) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code +.tex) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code. +tex) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerari +thmetics.code.tex))) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex +\c@pgfmathroundto@lastzeros=\count269 +)) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfint.code.tex) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.te +x +File: pgfcorepoints.code.tex 2020/01/08 v3.1.5b (3.1.5b) +\pgf@picminx=\dimen173 +\pgf@picmaxx=\dimen174 +\pgf@picminy=\dimen175 +\pgf@picmaxy=\dimen176 +\pgf@pathminx=\dimen177 +\pgf@pathmaxx=\dimen178 +\pgf@pathminy=\dimen179 +\pgf@pathmaxy=\dimen180 +\pgf@xx=\dimen181 +\pgf@xy=\dimen182 +\pgf@yx=\dimen183 +\pgf@yy=\dimen184 +\pgf@zx=\dimen185 +\pgf@zy=\dimen186 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct. +code.tex +File: pgfcorepathconstruct.code.tex 2020/01/08 v3.1.5b (3.1.5b) +\pgf@path@lastx=\dimen187 +\pgf@path@lasty=\dimen188 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code +.tex +File: pgfcorepathusage.code.tex 2020/01/08 v3.1.5b (3.1.5b) +\pgf@shorten@end@additional=\dimen189 +\pgf@shorten@start@additional=\dimen190 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.te +x +File: pgfcorescopes.code.tex 2020/01/08 v3.1.5b (3.1.5b) +\pgfpic=\box56 +\pgf@hbox=\box57 +\pgf@layerbox@main=\box58 +\pgf@picture@serial@count=\count270 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.c +ode.tex +File: pgfcoregraphicstate.code.tex 2020/01/08 v3.1.5b (3.1.5b) +\pgflinewidth=\dimen191 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformation +s.code.tex +File: pgfcoretransformations.code.tex 2020/01/08 v3.1.5b (3.1.5b) +\pgf@pt@x=\dimen192 +\pgf@pt@y=\dimen193 +\pgf@pt@temp=\dimen194 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex +File: pgfcorequick.code.tex 2020/01/08 v3.1.5b (3.1.5b) +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.t +ex +File: pgfcoreobjects.code.tex 2020/01/08 v3.1.5b (3.1.5b) +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing +.code.tex +File: pgfcorepathprocessing.code.tex 2020/01/08 v3.1.5b (3.1.5b) +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.te +x +File: pgfcorearrows.code.tex 2020/01/08 v3.1.5b (3.1.5b) +\pgfarrowsep=\dimen195 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex +File: pgfcoreshade.code.tex 2020/01/08 v3.1.5b (3.1.5b) +\pgf@max=\dimen196 +\pgf@sys@shading@range@num=\count271 +\pgf@shadingcount=\count272 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex +File: pgfcoreimage.code.tex 2020/01/08 v3.1.5b (3.1.5b) + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code. +tex +File: pgfcoreexternal.code.tex 2020/01/08 v3.1.5b (3.1.5b) +\pgfexternal@startupbox=\box59 +)) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.te +x +File: pgfcorelayers.code.tex 2020/01/08 v3.1.5b (3.1.5b) +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.c +ode.tex +File: pgfcoretransparency.code.tex 2020/01/08 v3.1.5b (3.1.5b) +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code. +tex +File: pgfcorepatterns.code.tex 2020/01/08 v3.1.5b (3.1.5b) +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex +File: pgfcorerdf.code.tex 2020/01/08 v3.1.5b (3.1.5b) +))) (/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/xxcolor.sty +Package: xxcolor 2003/10/24 ver 0.1 +\XC@nummixins=\count273 +\XC@countmixins=\count274 +) +(/usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty +Package: atbegshi 2019/12/05 v1.19 At begin shipout hook (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty +Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +Package: ltxcmds 2019/12/15 v1.24 LaTeX kernel commands for general use (HO) +)) +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2020/01/14 v7.00d Hypertext links for LaTeX + +(/usr/share/texlive/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty +Package: pdftexcmds 2019/11/24 v0.31 Utility functions of pdfTeX for LuaTeX (HO +) +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +) +(/usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +Package: kvsetkeys 2019/12/15 v1.18 Key value parser (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +Package: kvdefinekeys 2019-12-19 v1.6 Define keys (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty +Package: pdfescape 2019/12/09 v1.15 Implements pdfTeX's escape features (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty +Package: hycolor 2020-01-27 v1.10 Color options for hyperref/bookmark (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +Package: letltxmacro 2019/12/03 v1.6 Let assignment for LaTeX macros (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty +Package: auxhook 2019-12-17 v1.6 Hooks for auxiliary files (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty +Package: kvoptions 2019/11/29 v3.13 Key value format for package options (HO) +) +\@linkdim=\dimen197 +\Hy@linkcounter=\count275 +\Hy@pagecounter=\count276 + +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2020/01/14 v7.00d Hyperref: PDFDocEncoding definition (HO) +Now handling font encoding PD1 ... +... no UTF-8 mapping file for font encoding PD1 +) +(/usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty +Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty +Package: etexcmds 2019/12/15 v1.7 Avoid name clashes with e-TeX commands (HO) +) +\Hy@SavedSpaceFactor=\count277 +\pdfmajorversion=\count278 +Package hyperref Info: Option `bookmarks' set `true' on input line 4421. +Package hyperref Info: Option `bookmarksopen' set `true' on input line 4421. +Package hyperref Info: Option `implicit' set `false' on input line 4421. +Package hyperref Info: Hyper figures OFF on input line 4547. +Package hyperref Info: Link nesting OFF on input line 4552. +Package hyperref Info: Hyper index ON on input line 4555. +Package hyperref Info: Plain pages OFF on input line 4562. +Package hyperref Info: Backreferencing OFF on input line 4567. +Package hyperref Info: Implicit mode OFF; no redefinition of LaTeX internals. +Package hyperref Info: Bookmarks ON on input line 4800. +\c@Hy@tempcnt=\count279 + +(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip16 +Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. +) +LaTeX Info: Redefining \url on input line 5159. +\XeTeXLinkMargin=\dimen198 + +(/usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty +Package: bitset 2019/12/09 v1.3 Handle bit-vector datatype (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +Package: bigintcalc 2019/12/15 v1.5 Expandable calculations on big integers (HO +) +)) +\Fld@menulength=\count280 +\Field@Width=\dimen199 +\Fld@charsize=\dimen256 +Package hyperref Info: Hyper figures OFF on input line 6430. +Package hyperref Info: Link nesting OFF on input line 6435. +Package hyperref Info: Hyper index ON on input line 6438. +Package hyperref Info: backreferencing OFF on input line 6445. +Package hyperref Info: Link coloring OFF on input line 6450. +Package hyperref Info: Link coloring with OCG OFF on input line 6455. +Package hyperref Info: PDF/A mode OFF on input line 6460. +LaTeX Info: Redefining \ref on input line 6500. +LaTeX Info: Redefining \pageref on input line 6504. +\Hy@abspage=\count281 + + +Package hyperref Message: Stopped early. + +) +Package hyperref Info: Driver (autodetected): hpdftex. + (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def +File: hpdftex.def 2020/01/14 v7.00d Hyperref driver for pdfTeX + +(/usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty +Package: atveryend 2019-12-11 v1.11 Hooks at the very end of document (HO) +) +\Fld@listcount=\count282 +\c@bookmark@seq@number=\count283 + +(/usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +Package: rerunfilecheck 2019/12/05 v1.9 Rerun checks for auxiliary files (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +Package: uniquecounter 2019/12/15 v1.4 Provide unlimited unique counter (HO) +) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 +86. +)) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaserequires.sty +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasecompatibility.sty) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasefont.sty +(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty +Package: amssymb 2013/01/14 v3.01 AMS font symbols + +(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty +Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support +\@emptytoks=\toks26 +\symAMSa=\mathgroup4 +\symAMSb=\mathgroup5 +LaTeX Font Info: Redeclaring math symbol \hbar on input line 98. +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 106. +)) +(/usr/share/texlive/texmf-dist/tex/latex/sansmathaccent/sansmathaccent.sty +Package: sansmathaccent 2020/01/31 + +(/usr/share/texlive/texmf-dist/tex/latex/koma-script/scrlfile.sty +Package: scrlfile 2020/01/24 v3.29 KOMA-Script package (loading files) +))) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasetranslator.sty +(/usr/share/texlive/texmf-dist/tex/latex/translator/translator.sty +Package: translator 2019-05-31 v1.12a Easy translation of strings in LaTeX +)) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasemisc.sty) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasetwoscreens.sty) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaseoverlay.sty +\beamer@argscount=\count284 +\beamer@lastskipcover=\skip50 +\beamer@trivlistdepth=\count285 +) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasetitle.sty) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasesection.sty +\c@lecture=\count286 +\c@part=\count287 +\c@section=\count288 +\c@subsection=\count289 +\c@subsubsection=\count290 +) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaseframe.sty +\beamer@framebox=\box60 +\beamer@frametitlebox=\box61 +\beamer@zoombox=\box62 +\beamer@zoomcount=\count291 +\beamer@zoomframecount=\count292 +\beamer@frametextheight=\dimen257 +\c@subsectionslide=\count293 +\beamer@frametopskip=\skip51 +\beamer@framebottomskip=\skip52 +\beamer@frametopskipautobreak=\skip53 +\beamer@framebottomskipautobreak=\skip54 +\beamer@envbody=\toks27 +\framewidth=\dimen258 +\c@framenumber=\count294 +) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaseverbatim.sty +\beamer@verbatimfileout=\write4 +) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaseframesize.sty +\beamer@splitbox=\box63 +\beamer@autobreakcount=\count295 +\beamer@autobreaklastheight=\dimen259 +\beamer@frametitletoks=\toks28 +\beamer@framesubtitletoks=\toks29 +) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaseframecomponents.sty +\beamer@footins=\box64 +) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasecolor.sty) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasenotes.sty +\beamer@frameboxcopy=\box65 +) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasetoc.sty) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasetemplates.sty +\beamer@sbttoks=\toks30 + +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaseauxtemplates.sty +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaseboxes.sty +\bmb@box=\box66 +\bmb@colorbox=\box67 +\bmb@boxshadow=\box68 +\bmb@boxshadowball=\box69 +\bmb@boxshadowballlarge=\box70 +\bmb@temp=\dimen260 +\bmb@dima=\dimen261 +\bmb@dimb=\dimen262 +\bmb@prevheight=\dimen263 +) +\beamer@blockheadheight=\dimen264 +)) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaselocalstructure.sty +(/usr/share/texlive/texmf-dist/tex/latex/tools/enumerate.sty +Package: enumerate 2015/07/23 v3.00 enumerate extensions (DPC) +\@enLab=\toks31 +) +\c@figure=\count296 +\c@table=\count297 +\abovecaptionskip=\skip55 +\belowcaptionskip=\skip56 +) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasenavigation.sty +\beamer@section@min@dim=\dimen265 +) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasetheorems.sty +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2020/01/20 v2.17e AMS math features +\@mathmargin=\skip57 + +For additional information on amsmath, use the `?' option. +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2000/06/29 v2.01 AMS text + +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 generic functions +\@emptytoks=\toks32 +\ex@=\dimen266 +)) +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d Bold Symbols +\pmbraise@=\dimen267 +) +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 2016/03/08 v2.02 operator names +) +\inf@bad=\count298 +LaTeX Info: Redefining \frac on input line 227. +\uproot@=\count299 +\leftroot@=\count300 +LaTeX Info: Redefining \overline on input line 389. +\classnum@=\count301 +\DOTSCASE@=\count302 +LaTeX Info: Redefining \ldots on input line 486. +LaTeX Info: Redefining \dots on input line 489. +LaTeX Info: Redefining \cdots on input line 610. +\Mathstrutbox@=\box71 +\strutbox@=\box72 +\big@size=\dimen268 +LaTeX Font Info: Redeclaring font encoding OML on input line 733. +LaTeX Font Info: Redeclaring font encoding OMS on input line 734. +\macc@depth=\count303 +\c@MaxMatrixCols=\count304 +\dotsspace@=\muskip17 +\c@parentequation=\count305 +\dspbrk@lvl=\count306 +\tag@help=\toks33 +\row@=\count307 +\column@=\count308 +\maxfields@=\count309 +\andhelp@=\toks34 +\eqnshift@=\dimen269 +\alignsep@=\dimen270 +\tagshift@=\dimen271 +\tagwidth@=\dimen272 +\totwidth@=\dimen273 +\lineht@=\dimen274 +\@envbody=\toks35 +\multlinegap=\skip58 +\multlinetaggap=\skip59 +\mathdisplay@stack=\toks36 +LaTeX Info: Redefining \[ on input line 2859. +LaTeX Info: Redefining \] on input line 2860. +) +(/usr/share/texlive/texmf-dist/tex/latex/amscls/amsthm.sty +Package: amsthm 2017/10/31 v2.20.4 +\thm@style=\toks37 +\thm@bodyfont=\toks38 +\thm@headfont=\toks39 +\thm@notefont=\toks40 +\thm@headpunct=\toks41 +\thm@preskip=\skip60 +\thm@postskip=\skip61 +\thm@headsep=\skip62 +\dth@everypar=\toks42 +) +\c@theorem=\count310 +) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasethemes.sty)) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerthemedefault.sty +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerfontthemedefault.sty) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamercolorthemedefault.sty) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerinnerthemedefault.sty +\beamer@dima=\dimen275 +\beamer@dimb=\dimen276 +) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerouterthemedefault.sty))) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerthemeMadrid.sty +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamercolorthemewhale.sty) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamercolorthemeorchid.sty) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerinnerthemerounded.sty) +(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerouterthemeinfolines.sty)) +(/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty +Package: inputenc 2018/08/11 v1.3c Input encoding file +\inpenc@prehook=\toks43 +\inpenc@posthook=\toks44 +) +(/usr/share/texlive/texmf-dist/tex/latex/svg/svg.sty +Package: svg 2020/01/13 v2.02e (include SVG pictures) + +(/usr/share/texlive/texmf-dist/tex/latex/koma-script/scrbase.sty +Package: scrbase 2020/01/24 v3.29 KOMA-Script package (KOMA-Script-independent +basics and keyval usage) +) +(/usr/share/texlive/texmf-dist/tex/latex/tools/shellesc.sty +Package: shellesc 2019/11/08 v1.0c unified shell escape interface for LaTeX +Package shellesc Info: Unrestricted shell escape enabled on input line 75. +) +(/usr/share/texlive/texmf-dist/tex/latex/trimspaces/trimspaces.sty +Package: trimspaces 2009/09/17 v1.1 Trim spaces around a token list +) +\svg@box=\box73 +\c@svg@param@lastpage=\count311 +\c@svg@param@currpage=\count312 + +(/usr/share/texlive/texmf-dist/tex/latex/ifplatform/ifplatform.sty +Package: ifplatform 2017/10/13 v0.4a Testing for the operating system + +(/usr/share/texlive/texmf-dist/tex/generic/catchfile/catchfile.sty +Package: catchfile 2019/12/09 v1.8 Catch the contents of a file (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/iftex/ifluatex.sty +Package: ifluatex 2019/10/25 v1.5 ifluatex legacy package. Use iftex instead. +) +runsystem(uname -s > "X2-StudentsRequests.w18")...executed. + + +(./X2-StudentsRequests.w18) +runsystem(rm -- "X2-StudentsRequests.w18")...executed. + +)) +(/usr/share/texlive/texmf-dist/tex/latex/transparent/transparent.sty +Package: transparent 2019/11/29 v1.4 Transparency via pdfTeX's color stack (HO) + +) +(/usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty +\lst@mode=\count313 +\lst@gtempboxa=\box74 +\lst@token=\toks45 +\lst@length=\count314 +\lst@currlwidth=\dimen277 +\lst@column=\count315 +\lst@pos=\count316 +\lst@lostspace=\dimen278 +\lst@width=\dimen279 +\lst@newlines=\count317 +\lst@lineno=\count318 +\lst@maxwidth=\dimen280 + +(/usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty +File: lstmisc.sty 2019/09/10 1.8c (Carsten Heinz) +\c@lstnumber=\count319 +\lst@skipnumbers=\count320 +\lst@framebox=\box75 +) +(/usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg +File: listings.cfg 2019/09/10 1.8c listings configuration +)) +Package: listings 2019/09/10 1.8c (Carsten Heinz) + +(/usr/share/texlive/texmf-dist/tex/latex/mathtools/mathtools.sty +Package: mathtools 2020/01/17 v1.23 mathematical typesetting tools + +(/usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty +Package: calc 2017/05/25 v4.3 Infix arithmetic (KKT,FJ) +\calc@Acount=\count321 +\calc@Bcount=\count322 +\calc@Adimen=\dimen281 +\calc@Bdimen=\dimen282 +\calc@Askip=\skip63 +\calc@Bskip=\skip64 +LaTeX Info: Redefining \setlength on input line 80. +LaTeX Info: Redefining \addtolength on input line 81. +\calc@Ccount=\count323 +\calc@Cskip=\skip65 +) +(/usr/share/texlive/texmf-dist/tex/latex/mathtools/mhsetup.sty +Package: mhsetup 2017/03/31 v1.3 programming setup (MH) +) +LaTeX Info: Thecontrolsequence`\('isalreadyrobust on input line 129. +LaTeX Info: Thecontrolsequence`\)'isalreadyrobust on input line 129. +LaTeX Info: Thecontrolsequence`\['isalreadyrobust on input line 129. +LaTeX Info: Thecontrolsequence`\]'isalreadyrobust on input line 129. +\g_MT_multlinerow_int=\count324 +\l_MT_multwidth_dim=\dimen283 +\origjot=\skip66 +\l_MT_shortvdotswithinadjustabove_dim=\dimen284 +\l_MT_shortvdotswithinadjustbelow_dim=\dimen285 +\l_MT_above_intertext_sep=\dimen286 +\l_MT_below_intertext_sep=\dimen287 +\l_MT_above_shortintertext_sep=\dimen288 +\l_MT_below_shortintertext_sep=\dimen289 +) +(/usr/share/texlive/texmf-dist/tex/latex/tikz-cd/tikz-cd.sty +Package: tikz-cd 2018/11/19 v0.9f Commutative diagrams with TikZ + +(/usr/share/texlive/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +(/usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +Package: pgf 2020/01/08 v3.1.5b (3.1.5b) + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex +File: pgfmoduleshapes.code.tex 2020/01/08 v3.1.5b (3.1.5b) +\pgfnodeparttextbox=\box76 +) (/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex +File: pgfmoduleplot.code.tex 2020/01/08 v3.1.5b (3.1.5b) +) +(/usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65 +.sty +Package: pgfcomp-version-0-65 2020/01/08 v3.1.5b (3.1.5b) +\pgf@nodesepstart=\dimen290 +\pgf@nodesepend=\dimen291 +) +(/usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18 +.sty +Package: pgfcomp-version-1-18 2020/01/08 v3.1.5b (3.1.5b) +)) (/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +(/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty +(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex)) +(/usr/share/texlive/texmf-dist/tex/latex/pgf/math/pgfmath.sty +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex)) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +Package: pgffor 2020/01/08 v3.1.5b (3.1.5b) + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex) +\pgffor@iter=\dimen292 +\pgffor@skip=\dimen293 +\pgffor@stack=\toks46 +\pgffor@toks=\toks47 +)) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex +Package: tikz 2020/01/08 v3.1.5b (3.1.5b) + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers +.code.tex +File: pgflibraryplothandlers.code.tex 2020/01/08 v3.1.5b (3.1.5b) +\pgf@plot@mark@count=\count325 +\pgfplotmarksize=\dimen294 +) +\tikz@lastx=\dimen295 +\tikz@lasty=\dimen296 +\tikz@lastxsaved=\dimen297 +\tikz@lastysaved=\dimen298 +\tikz@lastmovetox=\dimen299 +\tikz@lastmovetoy=\dimen300 +\tikzleveldistance=\dimen301 +\tikzsiblingdistance=\dimen302 +\tikz@figbox=\box77 +\tikz@figbox@bg=\box78 +\tikz@tempbox=\box79 +\tikz@tempbox@bg=\box80 +\tikztreelevel=\count326 +\tikznumberofchildren=\count327 +\tikznumberofcurrentchild=\count328 +\tikz@fig@count=\count329 + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex +File: pgfmodulematrix.code.tex 2020/01/08 v3.1.5b (3.1.5b) +\pgfmatrixcurrentrow=\count330 +\pgfmatrixcurrentcolumn=\count331 +\pgf@matrix@numberofcolumns=\count332 +) +\tikz@expandcount=\count333 + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tik +zlibrarytopaths.code.tex +File: tikzlibrarytopaths.code.tex 2020/01/08 v3.1.5b (3.1.5b) +))) +(/usr/share/texlive/texmf-dist/tex/generic/tikz-cd/tikzlibrarycd.code.tex +(/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tik +zlibrarymatrix.code.tex +File: tikzlibrarymatrix.code.tex 2020/01/08 v3.1.5b (3.1.5b) +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tik +zlibraryquotes.code.tex +File: tikzlibraryquotes.code.tex 2020/01/08 v3.1.5b (3.1.5b) +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.meta. +code.tex +File: pgflibraryarrows.meta.code.tex 2020/01/08 v3.1.5b (3.1.5b) +\pgfarrowinset=\dimen303 +\pgfarrowlength=\dimen304 +\pgfarrowwidth=\dimen305 +\pgfarrowlinewidth=\dimen306 +))) (/usr/share/texlive/texmf-dist/tex/latex/adjustbox/adjustbox.sty +Package: adjustbox 2019/01/04 v1.2 Adjusting TeX boxes (trim, clip, ...) + +(/usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty +Package: xkeyval 2014/12/03 v2.7a package option processing (HA) + +(/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex +(/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex +\XKV@toks=\toks48 +\XKV@tempa@toks=\toks49 +) +\XKV@depth=\count334 +File: xkeyval.tex 2014/12/03 v2.7a key=value parser (HA) +)) +(/usr/share/texlive/texmf-dist/tex/latex/adjustbox/adjcalc.sty +Package: adjcalc 2012/05/16 v1.1 Provides advanced setlength with multiple back +-ends (calc, etex, pgfmath) +) +(/usr/share/texlive/texmf-dist/tex/latex/adjustbox/trimclip.sty +Package: trimclip 2018/04/08 v1.1 Trim and clip general TeX material + +(/usr/share/texlive/texmf-dist/tex/latex/collectbox/collectbox.sty +Package: collectbox 2012/05/17 v0.4b Collect macro arguments as boxes +\collectedbox=\box81 +) +\tc@llx=\dimen307 +\tc@lly=\dimen308 +\tc@urx=\dimen309 +\tc@ury=\dimen310 +Package trimclip Info: Using driver 'tc-pdftex.def'. + +(/usr/share/texlive/texmf-dist/tex/latex/adjustbox/tc-pdftex.def +File: tc-pdftex.def 2019/01/04 v2.2 Clipping driver for pdftex +)) +\adjbox@Width=\dimen311 +\adjbox@Height=\dimen312 +\adjbox@Depth=\dimen313 +\adjbox@Totalheight=\dimen314 +\adjbox@pwidth=\dimen315 +\adjbox@pheight=\dimen316 +\adjbox@pdepth=\dimen317 +\adjbox@ptotalheight=\dimen318 + +(/usr/share/texlive/texmf-dist/tex/latex/ifoddpage/ifoddpage.sty +Package: ifoddpage 2016/04/23 v1.1 Conditionals for odd/even page detection +\c@checkoddpage=\count335 +) +(/usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty +Package: varwidth 2009/03/30 ver 0.92; Variable-width minipages +\@vwid@box=\box82 +\sift@deathcycles=\count336 +\@vwid@loff=\dimen319 +\@vwid@roff=\dimen320 +)) +(/usr/share/texlive/texmf-dist/tex/latex/listings/lstlang1.sty +File: lstlang1.sty 2019/09/10 1.8c listings language file +) +(/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def +File: l3backend-pdfmode.def 2020-02-03 L3 backend support: PDF mode +\l__kernel_color_stack_int=\count337 +\l__pdf_internal_box=\box83 +) +(./X2-StudentsRequests.aux) +\openout1 = `X2-StudentsRequests.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 33. +LaTeX Font Info: ... okay on input line 33. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 33. +LaTeX Font Info: ... okay on input line 33. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 33. +LaTeX Font Info: ... okay on input line 33. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 33. +LaTeX Font Info: ... okay on input line 33. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 33. +LaTeX Font Info: ... okay on input line 33. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 33. +LaTeX Font Info: ... okay on input line 33. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 33. +LaTeX Font Info: ... okay on input line 33. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 33. +LaTeX Font Info: ... okay on input line 33. + +*geometry* driver: auto-detecting +*geometry* detected driver: pdftex +*geometry* verbose mode - [ preamble ] result: +* driver: pdftex +* paper: custom +* layout: +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* modes: includehead includefoot +* h-part:(L,W,R)=(10.95003pt, 342.2953pt, 10.95003pt) +* v-part:(T,H,B)=(0.0pt, 273.14662pt, 0.0pt) +* \paperwidth=364.19536pt +* \paperheight=273.14662pt +* \textwidth=342.2953pt +* \textheight=244.6939pt +* \oddsidemargin=-61.31996pt +* \evensidemargin=-61.31996pt +* \topmargin=-72.26999pt +* \headheight=14.22636pt +* \headsep=0.0pt +* \topskip=11.0pt +* \footskip=14.22636pt +* \marginparwidth=4.0pt +* \marginparsep=10.0pt +* \columnsep=10.0pt +* \skip\footins=10.0pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count338 +\scratchdimen=\dimen321 +\scratchbox=\box84 +\nofMPsegments=\count339 +\nofMParguments=\count340 +\everyMPshowfont=\toks50 +\MPscratchCnt=\count341 +\MPscratchDim=\dimen322 +\MPnumerator=\count342 +\makeMPintoPDFobject=\count343 +\everyMPtoPDFconversion=\toks51 +) (/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf +Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 +85. + +(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +ABD: EveryShipout initializing macros +\AtBeginShipoutBox=\box85 +Package hyperref Info: Link coloring OFF on input line 33. + +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty +Package: nameref 2019/09/16 v2.46 Cross-referencing by name of section + +(/usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty +Package: refcount 2019/12/15 v3.6 Data extraction from label references (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +Package: gettitlestring 2019/12/15 v1.6 Cleanup title references (HO) +) +\c@section@level=\count344 +) +LaTeX Info: Redefining \ref on input line 33. +LaTeX Info: Redefining \pageref on input line 33. +LaTeX Info: Redefining \nameref on input line 33. + +(./X2-StudentsRequests.out) (./X2-StudentsRequests.out) +\@outlinefile=\write5 +\openout5 = `X2-StudentsRequests.out'. + +LaTeX Font Info: Overwriting symbol font `operators' in version `normal' +(Font) OT1/cmr/m/n --> OT1/cmss/m/n on input line 33. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/cmss/b/n on input line 33. +\symnumbers=\mathgroup6 +\sympureletters=\mathgroup7 +LaTeX Font Info: Overwriting math alphabet `\mathrm' in version `normal' +(Font) OT1/cmss/m/n --> OT1/cmr/m/n on input line 33. +LaTeX Font Info: Redeclaring math alphabet \mathbf on input line 33. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' +(Font) OT1/cmr/bx/n --> OT1/cmss/b/n on input line 33. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/cmss/b/n on input line 33. +LaTeX Font Info: Redeclaring math alphabet \mathsf on input line 33. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal' +(Font) OT1/cmss/m/n --> OT1/cmss/m/n on input line 33. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) OT1/cmss/bx/n --> OT1/cmss/m/n on input line 33. +LaTeX Font Info: Redeclaring math alphabet \mathit on input line 33. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' +(Font) OT1/cmr/m/it --> OT1/cmss/m/it on input line 33. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/cmr/bx/it --> OT1/cmss/m/it on input line 33. +LaTeX Font Info: Redeclaring math alphabet \mathtt on input line 33. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal' +(Font) OT1/cmtt/m/n --> OT1/cmtt/m/n on input line 33. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) OT1/cmtt/m/n --> OT1/cmtt/m/n on input line 33. +LaTeX Font Info: Overwriting symbol font `numbers' in version `bold' +(Font) OT1/cmss/m/n --> OT1/cmss/b/n on input line 33. +LaTeX Font Info: Overwriting symbol font `pureletters' in version `bold' +(Font) OT1/cmss/m/it --> OT1/cmss/b/it on input line 33. +LaTeX Font Info: Overwriting math alphabet `\mathrm' in version `bold' +(Font) OT1/cmss/b/n --> OT1/cmr/b/n on input line 33. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' +(Font) OT1/cmss/b/n --> OT1/cmss/b/n on input line 33. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) OT1/cmss/m/n --> OT1/cmss/b/n on input line 33. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/cmss/m/it --> OT1/cmss/b/it on input line 33. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) OT1/cmtt/m/n --> OT1/cmtt/b/n on input line 33. +LaTeX Font Info: Redeclaring symbol font `pureletters' on input line 33. +LaTeX Font Info: Overwriting symbol font `pureletters' in version `normal' +(Font) OT1/cmss/m/it --> OT1/mathkerncmss/m/sl on input line 3 +3. +LaTeX Font Info: Overwriting symbol font `pureletters' in version `bold' +(Font) OT1/cmss/b/it --> OT1/mathkerncmss/m/sl on input line 3 +3. +LaTeX Font Info: Overwriting symbol font `pureletters' in version `bold' +(Font) OT1/mathkerncmss/m/sl --> OT1/mathkerncmss/bx/sl on inp +ut line 33. + +(/usr/share/texlive/texmf-dist/tex/latex/translator/translator-basic-dictionary +-English.dict +Dictionary: translator-basic-dictionary, Language: English +) +(/usr/share/texlive/texmf-dist/tex/latex/translator/translator-bibliography-dic +tionary-English.dict +Dictionary: translator-bibliography-dictionary, Language: English +) +(/usr/share/texlive/texmf-dist/tex/latex/translator/translator-environment-dict +ionary-English.dict +Dictionary: translator-environment-dictionary, Language: English +) +(/usr/share/texlive/texmf-dist/tex/latex/translator/translator-months-dictionar +y-English.dict +Dictionary: translator-months-dictionary, Language: English +) +(/usr/share/texlive/texmf-dist/tex/latex/translator/translator-numbers-dictiona +ry-English.dict +Dictionary: translator-numbers-dictionary, Language: English +) +(/usr/share/texlive/texmf-dist/tex/latex/translator/translator-theorem-dictiona +ry-English.dict +Dictionary: translator-theorem-dictionary, Language: English +) +\c@lstlisting=\count345 + (./X2-StudentsRequests.nav) + +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 37. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [1 + +{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map} <./img/unilu.jpg>] [2 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 53. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [3 + +] +LaTeX Font Info: Trying to load font information for U+msa on input line 76. + + +(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd +File: umsa.fd 2013/01/14 v3.01 AMS symbols A +) +LaTeX Font Info: Trying to load font information for U+msb on input line 76. + + +(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd +File: umsb.fd 2013/01/14 v3.01 AMS symbols B +) +LaTeX Font Info: Trying to load font information for OT1+mathkerncmss on inp +ut line 76. + +(/usr/share/texlive/texmf-dist/tex/latex/sansmathaccent/ot1mathkerncmss.fd +File: ot1mathkerncmss.fd 2020/01/31 Fontinst v1.933 font definitions for OT1/ma +thkerncmss. +) +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 76. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + +[4 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 85. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [5 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 95. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [6 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 105. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [7 + +] +Package svg Info: Last page of `./svg-inkscape/DH_svg-tex.pdf' is 1 on input li +ne 109. + (./svg-inkscape/DH_svg-tex.pdf_tex +<./svg-inkscape/DH_svg-tex.pdf, id=228, page=1, 321.11218pt x 481.97127pt> +File: ./svg-inkscape/DH_svg-tex.pdf Graphic file (type pdf) + +Package pdftex.def Info: ./svg-inkscape/DH_svg-tex.pdf , page1 used on input li +ne 56. +(pdftex.def) Requested size: 144.49948pt x 216.88507pt. +) +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 109. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [8 + + <./svg-inkscape/DH_svg-tex.pdf>] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 120. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [9 + +] [10 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 133. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [11 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 152. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [12 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 165. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [13 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 185. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [14 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 193. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [15 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 211. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [16 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 232. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [17 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 254. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [18 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 266. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [19 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 297. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [20 + +] +File: img/unilu.jpg Graphic file (type jpg) + +Package pdftex.def Info: img/unilu.jpg used on input line 307. +(pdftex.def) Requested size: 64.5198pt x 57.81938pt. + [21 + +] +\tf@nav=\write6 +\openout6 = `X2-StudentsRequests.nav'. + +\tf@toc=\write7 +\openout7 = `X2-StudentsRequests.toc'. + +\tf@snm=\write8 +\openout8 = `X2-StudentsRequests.snm'. + +Package atveryend Info: Empty hook `BeforeClearDocument' on input line 309. +Package atveryend Info: Empty hook `AfterLastShipout' on input line 309. + +(./X2-StudentsRequests.aux) +Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 309. +Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 309. +Package rerunfilecheck Info: File `X2-StudentsRequests.out' has not changed. +(rerunfilecheck) Checksum: D41D8CD98F00B204E9800998ECF8427E;0. + ) +Here is how much of TeX's memory you used: + 25732 strings out of 481239 + 509817 string characters out of 5920377 + 960739 words of memory out of 5000000 + 40331 multiletter control sequences out of 15000+600000 + 545963 words of font info for 73 fonts, out of 8000000 for 9000 + 1141 hyphenation exceptions out of 8191 + 58i,21n,89p,803b,926s stack positions out of 5000i,500n,10000p,200000b,80000s + +Output written on X2-StudentsRequests.pdf (21 pages, 271722 bytes). +PDF statistics: + 687 PDF objects out of 1000 (max. 8388607) + 621 compressed objects within 7 object streams + 43 named destinations out of 1000 (max. 500000) + 106 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/src/Lecture7/slides/X2-StudentsRequests.nav b/src/Lecture7/slides/X2-StudentsRequests.nav new file mode 100644 index 0000000..b90e3f7 --- /dev/null +++ b/src/Lecture7/slides/X2-StudentsRequests.nav @@ -0,0 +1,47 @@ +\headcommand {\slideentry {0}{0}{1}{1/1}{}{0}} +\headcommand {\beamer@framepages {1}{1}} +\headcommand {\slideentry {0}{0}{2}{2/2}{}{0}} +\headcommand {\beamer@framepages {2}{2}} +\headcommand {\slideentry {0}{0}{3}{3/3}{}{0}} +\headcommand {\beamer@framepages {3}{3}} +\headcommand {\slideentry {0}{0}{4}{4/4}{}{0}} +\headcommand {\beamer@framepages {4}{4}} +\headcommand {\slideentry {0}{0}{5}{5/5}{}{0}} +\headcommand {\beamer@framepages {5}{5}} +\headcommand {\slideentry {0}{0}{6}{6/6}{}{0}} +\headcommand {\beamer@framepages {6}{6}} +\headcommand {\slideentry {0}{0}{7}{7/7}{}{0}} +\headcommand {\beamer@framepages {7}{7}} +\headcommand {\slideentry {0}{0}{8}{8/8}{}{0}} +\headcommand {\beamer@framepages {8}{8}} +\headcommand {\slideentry {0}{0}{9}{9/9}{}{0}} +\headcommand {\beamer@framepages {9}{9}} +\headcommand {\slideentry {0}{0}{10}{10/10}{}{0}} +\headcommand {\beamer@framepages {10}{10}} +\headcommand {\slideentry {0}{0}{11}{11/11}{}{0}} +\headcommand {\beamer@framepages {11}{11}} +\headcommand {\slideentry {0}{0}{12}{12/12}{}{0}} +\headcommand {\beamer@framepages {12}{12}} +\headcommand {\slideentry {0}{0}{13}{13/13}{}{0}} +\headcommand {\beamer@framepages {13}{13}} +\headcommand {\slideentry {0}{0}{14}{14/14}{}{0}} +\headcommand {\beamer@framepages {14}{14}} +\headcommand {\slideentry {0}{0}{15}{15/15}{}{0}} +\headcommand {\beamer@framepages {15}{15}} +\headcommand {\slideentry {0}{0}{16}{16/16}{}{0}} +\headcommand {\beamer@framepages {16}{16}} +\headcommand {\slideentry {0}{0}{17}{17/17}{}{0}} +\headcommand {\beamer@framepages {17}{17}} +\headcommand {\slideentry {0}{0}{18}{18/18}{}{0}} +\headcommand {\beamer@framepages {18}{18}} +\headcommand {\slideentry {0}{0}{19}{19/19}{}{0}} +\headcommand {\beamer@framepages {19}{19}} +\headcommand {\slideentry {0}{0}{20}{20/20}{}{0}} +\headcommand {\beamer@framepages {20}{20}} +\headcommand {\slideentry {0}{0}{21}{21/21}{}{0}} +\headcommand {\beamer@framepages {21}{21}} +\headcommand {\beamer@partpages {1}{21}} +\headcommand {\beamer@subsectionpages {1}{21}} +\headcommand {\beamer@sectionpages {1}{21}} +\headcommand {\beamer@documentpages {21}} +\headcommand {\gdef \inserttotalframenumber {21}} diff --git a/src/Lecture7/slides/X2-StudentsRequests.out b/src/Lecture7/slides/X2-StudentsRequests.out new file mode 100644 index 0000000..e69de29 diff --git a/src/Lecture7/slides/X2-StudentsRequests.pdf b/src/Lecture7/slides/X2-StudentsRequests.pdf new file mode 100644 index 0000000..8b5793e Binary files /dev/null and b/src/Lecture7/slides/X2-StudentsRequests.pdf differ diff --git a/src/Lecture7/slides/X2-StudentsRequests.snm b/src/Lecture7/slides/X2-StudentsRequests.snm new file mode 100644 index 0000000..e69de29 diff --git a/src/Lecture7/slides/X2-StudentsRequests.tex b/src/Lecture7/slides/X2-StudentsRequests.tex new file mode 100644 index 0000000..787e7fb --- /dev/null +++ b/src/Lecture7/slides/X2-StudentsRequests.tex @@ -0,0 +1,309 @@ +\documentclass[11pt]{beamer} +\usetheme{Madrid} +\usepackage[utf8]{inputenc} +\usepackage{amsmath} + +\usepackage{svg} +\usepackage{color} +\usepackage{listings} +\usepackage{mathtools} +\usepackage{tikz-cd} +\usepackage{adjustbox} + +\definecolor{myblue}{rgb}{0,0,0.5} +\lstset{ + language=Python, + tabsize=4, + basicstyle=\footnotesize, + keywordstyle=\bf\color{myblue}, + commentstyle=\it\color{gray}, + numbers=left, + numbersep=3pt, + numberstyle=\tiny\color{gray}, +} + +\author[\texttt{sebastiano.tronto@uni.lu}]{Sebastiano Tronto} +\title[Students requests]% +{Students requests} +\logo{\includegraphics[scale=0.1]{img/unilu.jpg}} +%\institute{University of Luxembourg} + +\date{2021-05-21} + +\begin{document} + +\begin{frame} + \titlepage +\end{frame} + +\begin{frame}[plain] + \begin{center} {\Huge More cryptography} \end{center} +\end{frame} + +\begin{frame}{Cryptography} + What we have seen: + + \vspace{0.3cm} + \begin{itemize} + \item \textbf{RSA:} + sending messages using a private key / public key pair + \item \textbf{Flip-a-coin:} + cryptographic ``proof'' that the opponent is not cheating + \end{itemize} +\end{frame} + +\begin{frame}{Cryptography} + \begin{itemize} + \item Rely on integer factorization being hard + + \vspace{0.3cm} + \textbf{Example:} the best-known factorization algorithm + (\href{https://en.wikipedia.org/wiki/General\_number\_field\_sieve}% + {\emph{General number field sieve}}) has complexity + \begin{align*} + \sim O\left( + e^{\sqrt[3]{\frac{64}{9}\log_2n\cdot(\log_2\log_2n)^2}} + \right) + \end{align*} + + Factoring a number with $300$ digits: + \begin{itemize} + \item Your laptop: $10^{13}$ billion years + \item Best supercomputer: $13$ billion years + (age of the universe) + \end{itemize} + \end{itemize} +\end{frame} + +\begin{frame}{Symmetric and asymmetric cryptography} + \begin{itemize} + \item Our examples are \emph{asymmetric}: different public/private keys + \item Safe against eavesdroppers + \item Symmetric protocols can be faster and simpler, but you need + a secure way to exchange a key + \end{itemize} +\end{frame} + +\begin{frame}{Diffie-Hellman key exchange} + \begin{itemize} + \item Generate a ``password'' without communicating it directly + \item It can then be used for symmetric cryptography + \item Based on a different hard problem: + \href{https://en.wikipedia.org/wiki/Discrete\_logarithm}% + {\emph{discrete logarithm}} + \end{itemize} +\end{frame} + +\begin{frame}{Diffie-Hellman key exchange} + \begin{itemize} + \item Alice and Bob agree on a prime number $p$ and an integer $g$ + \item Alice picks an integer $a$ and sends $(g^a\bmod p)$ to Bob + \item Bob picks an integer $b$ and sends $(g^b\bmod p)$ to Alice + \item Alice can compute $(g^b)^a\bmod p$ and Bob can compute + $(g^a)^b\bmod p$. This is their shared secret (key). + \end{itemize} +\end{frame} + +\begin{frame}{Diffie-Hellman with colors (from Wikipedia)} + \begin{center}\includesvg[scale=0.45]{img/DH}\end{center} +\end{frame} + +\begin{frame}{Diffie-Hellman key exchange} + \begin{itemize} + \item Knowing $h$ and $a$, it is hard to find $g$ such that + $g^a \bmod p =h$ (discrete logarithm problem) + \item Very simple, many variants + \item Any group can be used, e.g. Elliptic Curves (see +\href{https://en.wikipedia.org/wiki/Elliptic-curve_Diffie\%E2\%80\%93Hellman}% + {Wikipedia: elliptic-curve Diffie-Hellman}) + \end{itemize} +\end{frame} + + +\begin{frame}[plain] + \begin{center} {\Huge Numerical methods for PDEs} \end{center} +\end{frame} + +\begin{frame}{Solving partial differential equations} + \begin{itemize} + \item Very, very hard + \item Very important in practical applications (physics and such) + \item Approximations are necessary, might as well use numerical methods + \end{itemize} +\end{frame} + +\begin{frame}{Numerical methods for ODEs} + \begin{block}{Problem} + Given $f(x,y)$, $x_0$ and $y_0$, find an approximation + for $y(x)$ such that + \begin{align*} + \begin{cases} + y'(x) = f(x, y(x))\\ + y(x_0) =y_0 + \end{cases} + \end{align*} + \end{block} + + \begin{block}{Approximation} + We can describe $y(x)$ in an interval $[x_0,x_1]$ by giving the + (approximate) values $y(s_0)$, \dots, $y(s_n)$ for many + values of $s_i\in [x_0, x_1]$. + \end{block} +\end{frame} + +\begin{frame}{Euler's method} + \begin{block}{Idea} + For $h$ small + \begin{align*} + y'(x)\approx\frac{y(x+h)-y(x)}{h} + \end{align*} + which implies + \begin{align*} + y(x+h) \approx y(x) + h\cdot f(x, y(x)) + \end{align*} + \end{block} +\end{frame} + +\begin{frame}{Euler's method} + \begin{block}{Algorithm} + \textbf{Input:} the data $f(x,y)$, $x_0$, $y_0$ and $x_1$ describing + the problem and the desired range for the solution. + + \vspace{0.3cm} + \textbf{Output:} $x_0=s_0 < s_1 < \dots < s_n=x_1$ and + $y_0, \dots, y_n$ such that $y_i\approx y(s_i)$. + + \vspace{0.3cm} + \begin{enumerate} + \item Choose a value $n$ and let + $h=\frac{x_1-x_0}{n}$ and $s_i=x_0+ih$ + \item For $i=0,\dots, n-1$ compute + $y_{i+1}=y_i+h\cdot f(s_i, y_i)$ + \item Return $s_0, \dots, s_n$ and $y_0, \dots, y_n$ + \end{enumerate} + \end{block} +\end{frame} + +\begin{frame}{Euler's method} + \begin{itemize} + \item Very simple and fast + \item Generalization for higher-order equations: Runge-Kutta methods + \item A similar idea works for some PDEs + \end{itemize} +\end{frame} + +\begin{frame}{The heat equation (PDE)} + \begin{align*} + \frac{\partial u}{\partial t} = \frac{\partial^2 u}{\partial x_1^2} + + \frac{\partial^2 u}{\partial x_2^2} + \cdots + + \frac{\partial^2 u}{\partial x_n^2} + \end{align*} + + Where + \[u(x_1,x_2,\dots,x_n,t): \mathbb R^n\times \mathbb R_+\to \mathbb R\] + describes the quantity of heat at the point $(x_1,\dots x_n)$ at time $t$. + + \vspace{0.3cm} It appears also outside thermodynamics: mathematical finance + (\href{https://en.wikipedia.org/wiki/Black\%E2\%80\%93Scholes\_equation}% + {Black-Scholes equation}), quantum mechanics + (\href{https://en.wikipedia.org/wiki/Schr\%C3\%B6dinger\_equation}% + {Schrödinger equation}), image analysis\dots +\end{frame} + +\begin{frame}{A simple case ($n=1$, in $[0,1]^2$)} + \begin{block}{Problem} + Given $u_0(t)$, $u_1(t)$ and $u^0(x)$, find an approximation + for $u(x,t)$ such that + \begin{align*} + \begin{cases} + \frac{\partial u}{\partial t} = + \frac{\partial^2 u}{\partial x^2} \\ + u(0,t) = u_{(0)}(t) \quad \text{(boundary condition)}\\ + u(1,t) = u_{(1)}(t) \quad \text{(boundary condition)}\\ + u(x,0) = u^0(x) \quad \text{(initial condition)} + \end{cases} + \end{align*} + \end{block} + + \begin{block}{Approximation} + Values $u_i^j\approx u(s_i, r^j)$ for + $(s_i,r^j)\in [0,1]\times [0,1]$ + \end{block} +\end{frame} + +\begin{frame}{Idea} + For $k$ small: + \begin{align*} + \frac{\partial u(x,t)}{\partial t} \approx \frac{u(x,t+k)-u(x,t)}{k}\\ + \end{align*} + For $h$ small (left limit + right limit): + \begin{align*} + \frac{\partial^2 u(x,t)}{\partial x^2} &\approx + \frac{\partial}{\partial x}\left( + \frac{u(x,t) - u(x-h,t)}{h} + \right)\\ + &\approx \frac1h\left( + \frac{\partial u(x,t)}{\partial x} - + \frac{\partial u(x-h,t)}{\partial x} + \right)\\ + &\approx \frac1h\left( + \frac{u(x+h,t) - u(x,t)}{h} - \frac{u(x,t)-u(x-h,t)}{h} + \right)\\ + &\approx \frac{u(x+h,t)-2u(x,t)+u(x-h,t)}{h^2} + \end{align*} +\end{frame} + +\begin{frame}{Idea} + From the equation + \begin{align*} + \frac{u_i^{j+1}-u_i^j}{k}= \frac{u_{i+1}^j-2u_{i}^j+u_{i-1}^j}{h^2} + \end{align*} + we find the formula + \begin{align*} + u_i^{j+1} = \frac{k}{h^2}\left(u_{i+1}^j - 2u_i^j + u_{i-1}^j\right) + + u_i^j + \end{align*} +\end{frame} + +\begin{frame}{Finite difference method for the heat equation} + \begin{block}{Algorithm} + \textbf{Input:} $u_{(0)}^j$, $u_{(1)}^j$ (boundary) + and $u_i^0$ (initial). + + \vspace{0.3cm} + \textbf{Output:} values $u_i^j$ approximating a solution. + + \vspace{0.3cm} + \begin{enumerate} + \item Let $m=\operatorname{len}(u_0)-1$, + $n=\operatorname{len}(u^0)-1$ and $k=1/m$, $h=1/n$ + %\begin{align*} + % \begin{array}{cccc} + % k=\frac{t_1-t_0}{m}, & h=\frac{x_1-x_0}{n}, & + % r^j = t_0 +jk, & s_i = x_0+ih + % \end{array} + %\end{align*} + \item For $j=0,\dots, m-1$ do the following: + \begin{itemize} + \item For $i=1,\dots, n-1$ compute + \begin{align*} + u_i^{j+1} = \frac{k}{h^2}\left(u_{i+1}^j - + 2u_i^j + u_{i-1}^j\right) + u_i^j + \end{align*} + \end{itemize} + \item Return the $u_i^j$ + \end{enumerate} + \end{block} +\end{frame} + +\begin{frame}{Other PDEs} + \begin{itemize} + \item In general, there is no generic method + \item You might need to write specific code for your equation + \item Some packages exists + (e.g. \href{https://wiki.octave.org/Fem-fenics}{fem-fenics} for + \href{https://www.gnu.org/software/octave/index}{Gnu Octave}) + \end{itemize} +\end{frame} + +\end{document} diff --git a/src/Lecture7/slides/X2-StudentsRequests.toc b/src/Lecture7/slides/X2-StudentsRequests.toc new file mode 100644 index 0000000..e69de29 diff --git a/src/Lecture7/slides/X2-StudentsRequests.vrb b/src/Lecture7/slides/X2-StudentsRequests.vrb new file mode 100644 index 0000000..57dfae6 --- /dev/null +++ b/src/Lecture7/slides/X2-StudentsRequests.vrb @@ -0,0 +1,10 @@ +\frametitle{Fibonacci with memorization} +\begin{adjustbox}{scale={0.85}{0.9},center} + \begin{tikzcd}[column sep=1mm] + & & & & & & & & F(5) \ar[drrr] \ar[dlll]\\ + & & & & & F(4)\ar[dll]\ar[dr] & & & & & & {\color{blue}F(3)}\\ + & & & F(3) \ar[dl]\ar[dr] & & & {\color{blue}F(2)}\\ + & & F(2) \ar[dl]\ar[dr] & & {\color{blue}F(1)} \\ + & F(1) & & F(0) + \end{tikzcd} + \end{adjustbox} diff --git a/src/Lecture7/slides/img/DH.svg b/src/Lecture7/slides/img/DH.svg new file mode 100644 index 0000000..1ea0408 --- /dev/null +++ b/src/Lecture7/slides/img/DH.svg @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Lecture7/slides/img/plot1.png b/src/Lecture7/slides/img/plot1.png new file mode 100644 index 0000000..15798bb Binary files /dev/null and b/src/Lecture7/slides/img/plot1.png differ diff --git a/src/Lecture7/slides/img/plot2.png b/src/Lecture7/slides/img/plot2.png new file mode 100644 index 0000000..9ca9bae Binary files /dev/null and b/src/Lecture7/slides/img/plot2.png differ diff --git a/src/Lecture7/slides/img/plot3.png b/src/Lecture7/slides/img/plot3.png new file mode 100644 index 0000000..0c27f8a Binary files /dev/null and b/src/Lecture7/slides/img/plot3.png differ diff --git a/src/Lecture7/slides/img/plot4.png b/src/Lecture7/slides/img/plot4.png new file mode 100644 index 0000000..48bad2e Binary files /dev/null and b/src/Lecture7/slides/img/plot4.png differ diff --git a/src/Lecture7/slides/img/plot5.png b/src/Lecture7/slides/img/plot5.png new file mode 100644 index 0000000..e8cfacd Binary files /dev/null and b/src/Lecture7/slides/img/plot5.png differ diff --git a/src/Lecture7/slides/img/unilu.jpg b/src/Lecture7/slides/img/unilu.jpg new file mode 100644 index 0000000..5265563 Binary files /dev/null and b/src/Lecture7/slides/img/unilu.jpg differ diff --git a/src/Lecture7/slides/svg-inkscape/DH_svg-tex.pdf b/src/Lecture7/slides/svg-inkscape/DH_svg-tex.pdf new file mode 100644 index 0000000..c5c0f10 Binary files /dev/null and b/src/Lecture7/slides/svg-inkscape/DH_svg-tex.pdf differ diff --git a/src/Lecture7/slides/svg-inkscape/DH_svg-tex.pdf_tex b/src/Lecture7/slides/svg-inkscape/DH_svg-tex.pdf_tex new file mode 100644 index 0000000..3964967 --- /dev/null +++ b/src/Lecture7/slides/svg-inkscape/DH_svg-tex.pdf_tex @@ -0,0 +1,58 @@ +%% Creator: Inkscape inkscape 0.92.5, www.inkscape.org +%% PDF/EPS/PS + LaTeX output extension by Johan Engelen, 2010 +%% Accompanies image file 'DH_svg-tex.pdf' (pdf, eps, ps) +%% +%% To include the image in your LaTeX document, write +%% \input{.pdf_tex} +%% instead of +%% \includegraphics{.pdf} +%% To scale the image, write +%% \def\svgwidth{} +%% \input{.pdf_tex} +%% instead of +%% \includegraphics[width=]{.pdf} +%% +%% Images with a different path to the parent latex file can +%% be accessed with the `import' package (which may need to be +%% installed) using +%% \usepackage{import} +%% in the preamble, and then including the image with +%% \import{}{.pdf_tex} +%% Alternatively, one can specify +%% \graphicspath{{/}} +%% +%% For more information, please see info/svg-inkscape on CTAN: +%% http://tug.ctan.org/tex-archive/info/svg-inkscape +%% +\begingroup% + \makeatletter% + \providecommand\color[2][]{% + \errmessage{(Inkscape) Color is used for the text in Inkscape, but the package 'color.sty' is not loaded}% + \renewcommand\color[2][]{}% + }% + \providecommand\transparent[1]{% + \errmessage{(Inkscape) Transparency is used (non-zero) for the text in Inkscape, but the package 'transparent.sty' is not loaded}% + \renewcommand\transparent[1]{}% + }% + \providecommand\rotatebox[2]{#2}% + \newcommand*\fsize{\dimexpr\f@size pt\relax}% + \newcommand*\lineheight[1]{\fontsize{\fsize}{#1\fsize}\selectfont}% + \ifx\svgwidth\undefined% + \setlength{\unitlength}{319.9125bp}% + \ifx\svgscale\undefined% + \relax% + \else% + \setlength{\unitlength}{\unitlength * \real{\svgscale}}% + \fi% + \else% + \setlength{\unitlength}{\svgwidth}% + \fi% + \global\let\svgwidth\undefined% + \global\let\svgscale\undefined% + \makeatother% + \begin{picture}(1,1.50094365)% + \lineheight{1}% + \setlength\tabcolsep{0pt}% + \put(0,0){\includegraphics[width=\unitlength,page=1]{DH_svg-tex.pdf}}% + \end{picture}% +\endgroup% -- cgit v1.3