From fa843c87eec9fa738f33cfb0db5844ca1350cddc Mon Sep 17 00:00:00 2001 From: Julian T Date: Wed, 11 Mar 2020 11:16:44 +0100 Subject: Added stuff for hpp and embedded --- sem4/embedded/m4/krnl-opgaver.md | 39 ++++++ sem4/hpp/m3a/Opgaver.ipynb | 269 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 308 insertions(+) create mode 100644 sem4/embedded/m4/krnl-opgaver.md create mode 100644 sem4/hpp/m3a/Opgaver.ipynb diff --git a/sem4/embedded/m4/krnl-opgaver.md b/sem4/embedded/m4/krnl-opgaver.md new file mode 100644 index 0000000..7475a8a --- /dev/null +++ b/sem4/embedded/m4/krnl-opgaver.md @@ -0,0 +1,39 @@ +# Opgaver + +> Find 4 functioner til task, semafor, queue og message. + +# Task + +`k_crt_task` creates a new task and places it in the ready queue. + +`k_set_prio` sets the priority of running task. + +`k_sleep` put the task to sleep for some time. + +`ki_task_shift` brugt internt til at skrift task. + +# Semafor + +`k_crt_sem` initialises a new semafor. + +`k_mut_ceil_set` is called before k\_start. +And can be used to leverage priorities when other task i waiting. **I THINK**. + +`k_set_sem_timer` setup a timer to trigger a semophore periodicly. + +`k_signal` signal a semophore. + +`k_wait` wait on a semophore. + +# Queue + +`k_crt_send_Q` create a new message queue. + +# Message + +`k_send` send a message to recieving task. + +`k_receive` wait for a message froms other task. + +Også funktioner til brug i interrupt, de har bare `ki_bla_bla` istedet. + diff --git a/sem4/hpp/m3a/Opgaver.ipynb b/sem4/hpp/m3a/Opgaver.ipynb new file mode 100644 index 0000000..fa7f330 --- /dev/null +++ b/sem4/hpp/m3a/Opgaver.ipynb @@ -0,0 +1,269 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Opgave 1" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "from matplotlib import pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def disc(a, b, c):\n", + " return np.sqrt(b**2 - 4 * a * c)\n", + "\n", + "def method1(a, b, c):\n", + " d = disc(a, b, c)\n", + " return ((-b + d) / (2 * a), (-b - d) / (2 * a))\n", + "\n", + "def method2(a, b, c):\n", + " d = disc(a, b, c)\n", + " return ((2 * c) / (-b + d), (2 * c) / (-b - d))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Del A" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Først med 16 bit" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(-1.0000000113532657, -99864379.95238094)\n", + "(-99864379.81859411, -1.0000000100135806)\n" + ] + } + ], + "source": [ + "a = np.float16(10**(-5))\n", + "b = np.float16(10**3)\n", + "c = np.float16(10**3)\n", + "\n", + "print(method1(a, b, c))\n", + "print(method2(a, b, c))" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(-1.000000011368684, -100000001.52621254)\n", + "(-100000001.38934413, -1.00000001)\n" + ] + } + ], + "source": [ + "a = np.float32(10**(-5))\n", + "b = np.float32(10**3)\n", + "c = np.float32(10**3)\n", + "\n", + "print(method1(a, b, c))\n", + "print(method2(a, b, c))" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(-1.0000000088439265, -99999998.99999999)\n", + "(-99999999.11560737, -1.0000000100000002)\n" + ] + } + ], + "source": [ + "a = np.float64(10**(-5))\n", + "b = np.float64(10**3)\n", + "c = np.float64(10**3)\n", + "\n", + "print(method1(a, b, c))\n", + "print(method2(a, b, c))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Resultatet i wolfram alpha er \n", + "\n", + "```\n", + "x1 = -1.00000001000000020000000500000014\n", + "x2 = -9.99999989999999899999997999999949 × 10^7\n", + "```\n", + "\n", + "64 bit ser ud til at passe ret godt. \n", + "\n", + "De andre nær så godt.\n", + "Sjovt at 16 og 32 bit næsten er de samme.\n", + "\n", + "Ser desuden ud til at de to metoder ikke er ens.\n", + "TODO forklar dette." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Del B" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "def kappa(f, x0, x_delta):\n", + " intm = ( np.abs(f(x0 + x_delta) - f(x0)) ) / (np.abs( f(x0) ))\n", + " return intm * ( np.abs(x0) / np.abs(x_delta) )" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "def fgen(a, b, c):\n", + " return lambda x: a * x**2 + b*x + c" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + ">" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "f = fgen(10**(-5), 10**3, 10**3)\n", + "\n", + "x_delta = 10^(-5)\n", + "xhat0 = -1\n", + "d0s = (10**1, 10**0, 10**(-1), 10**(-2), 10**(-3), 10**(-4))\n", + "\n", + "def subplot(axs, d0):\n", + " axs.set_title(f\"d0: {d0}\")\n", + " x0 = np.linspace(xhat0 - d0, xhat0 + d0, 1000, True)\n", + " \n", + " axs.plot(x0, kappa(f, x0, x_delta))\n", + "\n", + "fig = plt.figure(1, (10, 10))\n", + "axs = fig.subplots(3, 2)\n", + "\n", + "subplot(axs[0, 0], d0s[0])\n", + "subplot(axs[0, 1], d0s[1])\n", + "subplot(axs[1, 0], d0s[2])\n", + "subplot(axs[1, 1], d0s[3])\n", + "subplot(axs[2, 0], d0s[4])\n", + "subplot(axs[2, 1], d0s[5])\n", + " \n", + "fig.show" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Det ser ud til at jo mindre et område man snakker om jo mere ændre funktionen sig.\n", + "Indtil 0.0001.\n", + "\n", + "Så det kan måske være at funktionen ændrer sig medet hurtigt og periodisk ved -1." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Del 2" + ] + }, + { + "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.1" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} -- cgit v1.2.3