Skip to content

Instantly share code, notes, and snippets.

@m-wells
Last active April 8, 2019 20:42
Show Gist options
  • Save m-wells/2e068baf7c27fcc305294edc10faea70 to your computer and use it in GitHub Desktop.
Save m-wells/2e068baf7c27fcc305294edc10faea70 to your computer and use it in GitHub Desktop.
Strange trig precision differences
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"using PyPlot"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"sin_d (generic function with 1 method)"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function sin_d(x)\n",
" return sind(rad2deg(x))\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sin(π) = 1.2246467991473532e-16\n",
"sinpi(1) = 0.0\n",
"sin_d(π) = 0.0\n"
]
}
],
"source": [
"@show sin(π)\n",
"@show sinpi(1)\n",
"@show sin_d(π)\n",
";"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sin(2π) = -2.4492935982947064e-16\n",
"sinpi(2) = 0.0\n",
"sin_d(2π) = 0.0\n"
]
}
],
"source": [
"@show sin(2π)\n",
"@show sinpi(2)\n",
"@show sin_d(2π)\n",
";"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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aXNrne4cdf311+uKK65IeZ8ePXro4MGDkqR+/fo13F5YWKjTTjstpwtG031/7rnnHr3xxhsqLCxs9LvKykpNnDhRTzzxhJ/NNCbd9ydq7969GjFihIYOHapFixb53Do7lZaWqlWrVk2yQzU1NU2ySPnqhhtu0Isvvqg1a9bo1FNPNd0ca2zatEk1NTUaNGhQw23Hjh3TmjVrNG/ePNXX16tVq1YGW2hWeXl5o2uUJPXt21fPPfecoRZljsDIAqWlpSotLfW836BBg1RYWKjt27fr/PPPlyQdPXpUu3btUvfu3f1upjHpvj8PPfSQ7rnnnoaf9+7dq0suuURLly7V4MGD/WyiUem+P9KX02hHjBjRkG0sKMjPpHGbNm00aNAgrVq1SmPHjm24fdWqVbrssssMtsy8cDisG264QcuWLdPrr7+unj17mm6SVS666CL98Y9/bHTbNddcoz59+ujWW2/N66BIkoYNG9ZkeYe//OUvTl2jCIwcUlxcrClTpuiuu+5S165d1b17dz3wwAOSpPHjxxtunXndunVr9PNJJ50kSerVqxffePVloDh8+HB169ZNP/nJT/Txxx83/K5z584GW2bG1KlTNWnSJFVWVjZkz3bv3p2XNVexrrvuOj399NN64YUXVFRU1JBVKykp0Yknnmi4deYVFRU1qbf6yle+oo4dO1KHJemWW27Reeedp9mzZ+tf//Vf9eabb2rRokVOZacJjBzzwAMP6IQTTtCkSZN0+PBhDR48WK+99prat29vummw3MqVK/X+++/r/fffbxIohvNwL+kJEybok08+0axZs7Rv3z71799fK1ascOqbrR+itSDDhw9vdPvjjz+uq6++OvgGwSnnnHOOli1bpunTp2vWrFnq2bOn5syZo4kTJ5puWtpC4Xw8IwIAACSQnwUGAAAACRAYAQAARBAYAQAARBAYAQAARBAYAQAARBAYAQAARBAYAQAARBAYAQAARBAYAQAARBAYAQAARBAYAQAARBAYAcgrH3/8sTp37qzZs2c33PaHP/xBbdq00cqVKw22DIAN2EQWQN5ZsWKFxowZo3Xr1qlPnz6qqKjQpZdeqjlz5phuGgDDCIwA5KXrrrtOr7zyis455xxt3bpVGzZsUNu2bU03C4BhBEYA8tLhw4fVv39/7dmzRxs3btSZZ55pukkALECNEYC89MEHH2jv3r06fvy4PvzwQ9PNAWAJMkYA8s6RI0d07rnn6uyzz1afPn304IMP6o9//KPKyspMNw2AYQRGAPLOf/7nf+pXv/qVtm7dqpNOOkkjRoxQUVGRfvOb35huGgDDGEoDkFdef/11zZkzR0899ZSKi4tVUFCgp556Sr///e+1YMEC080DYBgZIwAAgAgyRgAAABEERgAAABEERgAAABEERgAAABEERgAAABEERgAAABEERgAAABEERgAAABEERgAAABEERgAAABEERgAAABEERgAAABH/D+bW9gi6K7hlAAAAAElFTkSuQmCC",
"text/plain": [
"Figure(PyObject <Figure size 640x480 with 1 Axes>)"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"PyObject Text(24.140625000000007, 0.5, 'sin_d - sin')"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x = range(-2,2, length=100000)\n",
"ydiff = sin_d.(x*π) - sin.(x*π)\n",
"plot(x*π,ydiff,linestyle=\"None\",marker=\",\")\n",
"xlabel(\"x\")\n",
"ylabel(\"sin_d - sin\")"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkYAAAHACAYAAABH3Kc0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzt3XmYVNWZx/Ffg9hAbJqlQ9NgA62CiKA0INDi0kQlImMEfBgcDSqPoiSKIOMESFzABVwiMGhQ0UQEXHiUQU3AEaICCWBksUFRkUWEAJ0WFRocpjFQ84fVPdVFLbeq6957TtX38zw8Wre20/fec+9b55z3nKxAIBAQAAAAVM/vAgAAAJiCwAgAACCIwAgAACCIwAgAACCIwAgAACCIwAgAACCIwAgAACCIwAgAACCIwAgAACCIwAgAACCIwCgBK1eu1JVXXqnWrVsrKytLr7/+uu/fd+ONNyorK6vWvz59+rhaLgAA0hWBUQK+++47nXvuuXryySeN+r7LL79c+/btq/m3ZMkST8oHAEC6OcnvAthkwIABGjBgQNTnjx49qrvvvlsvvviiDhw4oC5duuiRRx5RaWmpK99XLTs7W61atUrqOwAAwP+jxSiFRowYoVWrVumVV17Rpk2bNHToUF1++eXaunWrq9+7fPlytWzZUh07dtTIkSNVUVHh6vcBAJCusgKBQMDvQtgoKytLixYt0qBBgyRJ27dvV4cOHfT3v/9drVu3rnndpZdeql69emnKlCkp/b5qCxYs0CmnnKJ27drpiy++0D333KN//vOfWr9+vbKzs+v0nQAAZBq60lJkw4YNCgQC6tixY63tVVVVatGihSRp586dKioqivk5t912W0JjmIYNG1bz/126dFHPnj3Vrl07LV68WEOGDEngLwAAAARGKXL8+HHVr19f69evV/369Ws9d8opp0iS2rRpo08//TTm5zRr1qxO5SgoKFC7du1c774DACAdERilSHFxsY4dO6aKigpdeOGFEV/ToEEDderUydVyfP3119q9e7cKCgpc/R4AANIRgVECDh8+rG3bttU8/uKLL1RWVqbmzZurY8eOuu6663T99dfr8ccfV3Fxsfbv3693331XXbt21RVXXJHS72vbtq0OHz6sSZMm6eqrr1ZBQYF27typX//618rLy9PgwYNT8jcD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6JCWLFlSs23AgAFq2rSpMYOvI+GGawayYexHVpr9YmXqJlpHOYb+iHZPczuQzah0/aefflolJSWaPXu2nn32WW3evFnt2rXT9ddfrzZt2tQESatXr9ZFF12khx56SFdddZXeeOMN3X333cal65MNY5dIWU0sEZJeaHkwm5PuUI4fMiIwkn6Y4PHRRx/Vvn371KVLF02fPl0XXXSRJKm0tFTt27fXnDlzal7/2muv6e6779aOHTtqJngcMmSI4+9jrTREwnxTgP9oXUcsGRMYec2LwChV2WdcEJxL5Ro/qcQxdMaLdcxYK81dqa6DrJXmvUT2tx+T4BIYuYQJHhEqVl95+DYA7og06DocddBsXlwzXQ2M3nzzTccf+LOf/czxa21AVxoi4UIM+I96aDe373+uTvA4aNCgWo+zsrJqTe4YOi/QsWPHHH85fhDthGA2Xn85XXag+nW2TF4G2CSV9ZA66A/bJjJOuCvtz3/+s8aPH68pU6aopKREWVlZWr16te6++25NmTJFl112mVtl9YWXi8hKVFzTsVYa4C/qoP28ut95NsaoS5cuevrpp3XBBRfU2v6Xv/xFt9xyiz799NNEPs54rJWGSAhkATOETq3ANAsI5dlaadu3b1dubu4J23Nzc7Vz585EPw5BpjUlwhmny0vYzOa/ya2bpBuZUEge693Zx+SZyhNuMbrooovUoEEDzZ8/XwUFBZJ+WKx1+PDhOnr0aMRV7m1GVhpCOR3vAMA91EP7WZ+VFmrbtm0aPHiwtmzZorZt20qSdu3apY4dO+r111/XGWeckVjJDUdXGgAA9vGsK+2MM87Qpk2btGzZMn322WcKBALq3LmzLr300pir1iMyfvmYK9FBnmTDAKnHmoX2s+0+59oEj127dtWSJUusX5meFiOEcjqmyKRKDqQb2260qM2rCXGNm/k6JydHGzdu1GmnnebGx3uGwAjREBAB/mPWebu5OQDbs640uKeuTcZcEJxLdfO800kenXwWkAncyh5j3Unv1GVfp1VWmlO0GDnHLx57RJrCPtK6TRxDwD10paUPE1uMCIziYK00REI3GuA/6qH93Jwsl8DIJV4vCRIJFd0fTtc+49cr4J5o9SveGpOJvAfu86NnhMDIJUzwiFDRjld1czBLhQDu48eI/by49xkXGL300ku66qqr9KMf/ciNj/cMWWmIhIAW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99139fjjj2vt2rX6yU9+oqqqqqjvmTp1qnJzc2v+FRYWelhiAADgJ18Do0mTJp0wODr837p165L+/GHDhmngwIHq0qWLrrzySr311lv6/PPPtXhx9DmAJk6cqIMHD9b82717d9LfDwAA7OLrGKPbb79d11xzTczXtG/fPmXfV1BQoHbt2mnr1q1RX5Odna3s7OyUfScAALCHr4FRXl6e8vLyPPu+r7/+Wrt371ZBQYFn3wkAACJrP2Gxdj48sOa/JrBmjNGuXbtUVlamXbt26dixYyorK1NZWZkOHz5c85pOnTpp0aJFkqTDhw/rrrvu0po1a7Rz504tX75cV155pfLy8jR48GC//gwAABBUHQyZEhRJFqXr33vvvXrhhRdqHhcXF0uS3nvvPZWWlkqStmzZooMHD0qS6tevr48++khz587VgQMHVFBQoH79+mnBggXKycnxvPzJqF4PzaQTBgCAdMZaaXGwVhoAAPZhrTQAAIA6IjACAAAIIjACAAAIIjACAAAIIjACAAAIIjACAAAIIjACAAAIIjACAAAIIjACAAAIIjACAAAIIjACAAAIIjACAAAIIjACAAAIIjACAAAIIjACAAAIOsnvApguEAhIkiorK30uCQAAcKr6vl19H3eKwCiOQ4cOSZIKCwt9LgkAAEjUoUOHlJub6/j1WYFEQ6kMc/z4ce3du1c5OTnKysrypQyVlZUqLCzU7t271aRJE1/KYDL2T3Tsm9jYP7Gxf2Jj/0Rnwr4JBAI6dOiQWrdurXr1nI8cosUojnr16unUU0/1uxiSpCZNmlD5YmD/RMe+iY39Exv7Jzb2T3R+75tEWoqqMfgaAAAgiMAIAAAgqP6kSZMm+V0IxFe/fn2VlpbqpJPo/YyE/RMd+yY29k9s7J/Y2D/R2bpvGHwNAAAQRFcaAABAEIERAABAEIERAABAEIGRhRYvXqzevXurUaNGysvL05AhQ/wuknGqqqrUrVs3ZWVlqayszO/iGGHnzp266aabVFRUpEaNGun000/Xfffdp6NHj/pdNN/MmjVLRUVFatiwoXr06KG//OUvfhfJCFOnTtV5552nnJwctWzZUoMGDdKWLVv8LpaRpk6dqqysLI0dO9bvohhjz549+vnPf64WLVqocePG6tatm9avX+93sRwjMLLMwoULNXz4cI0YMUIbN27UqlWrdO211/pdLOP86le/UuvWrf0uhlE+++wzHT9+XM8884w2b96s6dOn6+mnn9avf/1rv4vmiwULFmjs2LH6zW9+ow8//FAXXnihBgwYoF27dvldNN+tWLFCt912m95//30tW7ZM//znP9W/f3999913fhfNKGvXrtXs2bN1zjnn+F0UY3z77bfq27evGjRooLfeekuffPKJHn/8cTVt2tTvojkXgDW+//77QJs2bQLPPfec30Ux2pIlSwKdOnUKbN68OSAp8OGHH/pdJGM9+uijgaKiIr+L4YtevXoFRo0aVWtbp06dAhMmTPCpROaqqKgISAqsWLHC76IY49ChQ4EOHToEli1bFrj44osDY8aM8btIRhg/fnzgggsu8LsYdUKLkUU2bNigPXv2qF69eiouLlZBQYEGDBigzZs3+100Y/zjH//QyJEjNW/ePDVu3Njv4hjv4MGDat68ud/F8NzRo0e1fv169e/fv9b2/v37a/Xq1T6VylwHDx6UpIw8V6K57bbbNHDgQF166aV+F8Uob775pnr27KmhQ4eqZcuWKi4u1rPPPut3sRJCYGSRHTt2SJImTZqku+++W3/605/UrFkzXXzxxfrmm298Lp3/AoGAbrzxRo0aNUo9e/b0uzjG2759u5544gmNGjXK76J4bv/+/Tp27Jjy8/Nrbc/Pz1d5eblPpTJTIBDQuHHjdMEFF6hLly5+F8cIr7zyijZs2KCpU6f6XRTj7NixQ0899ZQ6dOigt99+W6NGjdIdd9yhuXPn+l00xwiMDDBp0iRlZWXF/Ldu3TodP35ckvSb3/xGV199tXr06KHnn39eWVlZevXVV33+K9zjdP888cQTqqys1MSJE/0usqec7p9Qe/fu1eWXX66hQ4fq5ptv9qnk/svKyqr1OBAInLAt091+++3atGmTXn75Zb+LYoTdu3drzJgxmj9/vho2bOh3cYxz/Phxde/eXVOmTFFxcbFuvfVWjRw5Uk899ZTfRXPMrnm609Ttt9+ua665JuZr2rdvr0OHDkmSOnfuXLM9Oztbp512WloPGHW6fx588EG9//77ys7OrvVcz549dd111+mFF15ws5i+cbp/qu3du1f9+vVTSUmJZs+e7XLpzJSXl6f69euf0DpUUVFxQitSJhs9erTefPNNrVy5UqeeeqrfxTHC+vXrVVFRoR49etRsO3bsmFauXKknn3xSVVVVql+/vo8l9FdBQUGte5QknXXWWVq4cKFPJUocgZEB8vLylJeXF/d1PXr0UHZ2trZs2aILLrhAkvT9999r586dateundvF9I3T/TNz5kw9+OCDNY/37t2rn/70p1qwYIF69+7tZhF95XT/SD+k0fbr16+mtbFevcxsND755JPVo0cPLVu2TIMHD67ZvmzZMl111VU+lswMgUBAo0eP1qJFi7R8+XIVFRX5XSRjXHLJJfroo49qbRsxYoQ6deqk8ePHZ3RQJEl9+/Y9YWqHzz//3Kp7FIGRRZo0aaJRo0bpvvvuU2Fhodq1a6fHHntMkjR06FCfS+e/tm3b1np8yimnSJJOP/10fu3qh0CxtLRUbdu21W9/+1t99dVXNc+1atXKx5L5Y9y4cRo+fLh69uxZ03q2a9eujBxzFe62227TSy+9pDfeeEM5OTk1LWu5ublq1KiRz6XzV05OzgljrX70ox+pRYsWjMGSdOedd+r888/XlClT9K//+q/64IMPNHv2bKtapwmMLPPYY4/ppJNO0vDhw3XkyBH17t1b7777rpo1a+Z30WC4pUuXatu2bdq2bdsJgWIgA9eSHjZsmL7++mvdf//92rdvn7p06aIlS5ZY9cvWLdXjQUpLS2ttf/7553XjjTd6XyBY47zzztOiRYs0ceJE3X///SoqKtKMGTN03XXX+V00x7ICmXhFBAAAiCAzBxgAAABEQGAEAAAQRGAEAAAQRGAEAAAQRGAEAAAQRGAEAAAQRGAEAAAQRGAEAAAQRGAEAAAQRGAEAAAQRGAEAAAQRGAEIKN89dVXatWqlaZMmVKz7W9/+5tOPvlkLV261MeSATABi8gCyDhLlizRoEGDtHr1anXq1EnFxcUaOHCgZsyY4XfRAPiMwAhARrrtttv05z//Weedd542btyotWvXqmHDhn4XC4DPCIwAZKQjR46oS5cu2r17t9atW6dzzjnH7yIBMABjjABkpB07dmjv3r06fvy4vvzyS7+LA8AQtBgByDhHjx5Vr1691K1bN3Xq1EnTpk3TRx99pPz8fL+LBsBnBEYAMs5//Md/6LXXXtPGjRt1yimnqF+/fsrJydGf/vQnv4sGwGd0pQHIKMuXL9eMGTM0b948NWnSRPXq1dO8efP017/+VU899ZTfxQPgM1qMAAAAgmgxAgAACCIwAgAACCIwAgAACCIwAgAACCIwAgAACCIwAgAACCIwAgAACCIwAgAACCIwAgAACCIwAgAACCIwAgAACCIwAgAACPo/EmIbPW920+4AAAAASUVORK5CYII=",
"text/plain": [
"Figure(PyObject <Figure size 640x480 with 1 Axes>)"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"PyObject Text(24.140625000000007, 0.5, 'sin_d - sinpi')"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ydiff = sin_d.(x*π) - sinpi.(x)\n",
"plot(x*π,ydiff,linestyle=\"None\",marker=\",\")\n",
"xlabel(\"x\")\n",
"ylabel(\"sin_d - sinpi\")"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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gn0JQoTKbg/u+8nznnbsQyD8artCi3poPtP3UdDB069+9atwlAM+kDAePdiPQGR5BlHUQXsycbLhgIKn8vJyV3dWeXm533XDMWzV0IXyR0PjEZhQV9RQVn72YWCC/b7r+70G+n7sv8CFuh5SByOrvt+3yVcqB5TzFBcXp5KSEiUlJSk2Ntbr3E5Op1MxMTE6e/ZsWApqMhLG4Q25aoD1SBi3N1snjG/atEl9+/bVBRdcoE2bNvldd8CAAQG/ebQgYRxVvDXU7D8gsugFtL9ItZvc285C9DzBF856AeuQMB4dwpn7G7Hgaf369WrevLn69esnSXr88cf15JNPqnPnznr88cfVqlWr4EoeBcIdPEmBTcaIyCMfzf7qcobLQdkc1EH7C2ay4VCLWPB01VVX6eGHH9b111+vTz75RD179tQ999yjt99+W506ddLy5cuDLnwwFi1apHnz5qmkpERXXnmlFixYoP79+/tc/8UXX9S0adP01Vdf6bLLLtODDz6oYcOGuZ53Op2aOXOmli5dqmPHjikjI0OPP/64rrzyyoDLFO7bs1ShYtsLw3WAtaiD9mdqzlNssG+0b98+de7cWdL5wOQXv/iF5syZo0WLFun1118PdnNBWb16tSZNmqT7779fO3fuVP/+/ZWdna3i4mKv62/dulUjR45UTk6Odu3apZycHP3yl7/UBx984Fpn7ty5mj9/vhYuXKgdO3YoJSVFP/vZz3TixImwfpZAVf1gqPD2wx3dAWtRB+3P1H0WdM/TRRddpPfee0+dO3dWv379NHr0aI0bN0779+9X586dderUqXCVVRkZGerevbsWL17sWtapUycNHTpU+fn5NdYfOXKkysvLqwV1Q4YMUatWrfT888/L6XSqdevWmjRpkiZPnixJqqioUHJysh5++GHdddddAZWLhHFUIVHV/vzlqdETbA/+hlXZh/ZgesJ40JNk9uvXT3l5eerbt6+2b9+u1atXS5L++c9/6pJLLgl2cwGrrKxUYWGhpkyZUm15VlaWtmzZ4vU1W7du1d13311t2XXXXeeaJX3fvn0qLS1VVlaW63mHw6EBAwZoy5YtAQdPkUAltwdfB1pvz8NMnhMrkvRvP75mGOfiG/uorS21WtDB08KFC/Wb3/xGL7zwghYvXqw2bdpIkl5//XUNGTIk5AWscuTIEZ09e1bJycnVlicn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AAAEgWE7AACAIBA8AQAABIHgCQAAIAgET1HqtddeU0ZGhpo2barExEQNHz7c6iIZpaKiQl27dlVMTIyKioqsLo4R9u/frzvuuEPt27dX06ZNddlll2n69OmqrKy0umiWWbRokdq3b68mTZqoR48eevfdd60ukhHy8/N17bXXKj4+XklJSRo6dKj27t1rdbGMlJ+fr5iYGE2aNMnqohjlm2++0W233aaLL75YzZo1U9euXVVYWGh1sQJG8BSFXnzxReXk5Oj222/Xrl279P7772vUqFFWF8so9957r1q3bm11MYzy+eef69y5c1qyZIl2796tRx99VE888YTuu+8+q4tmidWrV2vSpEm6//77tXPnTvXv31/Z2dkqLi62umiW27Rpk8aPH69t27apoKBAP/zwg7KysvT9999bXTSj7NixQ0uXLtXVV19tdVGMcuzYMfXt21eNGjXS66+/rs8++0yPPPKIWrZsaXXRAudEVDlz5oyzTZs2zr/+9a9WF8VY69atc3bs2NG5e/dupyTnzp07rS6SsebOnets37691cWwRK9evZy5ubnVlnXs2NE5ZcoUi0pkrsOHDzslOTdt2mR1UYxx4sQJZ4cOHZwFBQXOAQMGOH/3u99ZXSRjTJ482dmvXz+ri1Ev9DxFmY8++kjffPONYmNj1a1bN6Wmpio7O1u7d++2umhGOHTokMaOHatnnnlGzZo1s7o4xisrK9NFF11kdTEirrKyUoWFhcrKyqq2PCsrS1u2bLGoVOYqKyuTpAb5W/Fl/PjxuuGGG/TTn/7U6qIYZ+3aterZs6dGjBihpKQkdevWTU8++aTVxQoKwVOU+de//iVJmjFjhh544AG9+uqratWqlQYMGKDvvvvO4tJZy+l0asyYMcrNzVXPnj2tLo7xvvrqKz322GPKzc21uigRd+TIEZ09e1bJycnVlicnJ6u0tNSiUpnJ6XQqLy9P/fr1U5cuXawujhFWrVqljz76SPn5+VYXxUj/+te/tHjxYnXo0EFvvPGGcnNzNXHiRK1cudLqogWM4MkmZsyYoZiYGL9/H374oc6dOydJuv/++3XzzTerR48eWr58uWJiYvT3v//d4k8RHoF+N4899pjKy8s1depUq4scUYF+P+4OHjyoIUOGaMSIEbrzzjstKrn1YmJiqj12Op01ljV0EyZM0Mcff6znn3/e6qIY4cCBA/rd736n//3f/1WTJk2sLo6Rzp07p+7du2vOnDnq1q2b7rrrLo0dO1aLFy+2umgBs9d86A3YhAkTdMstt/hdp127djpx4oQkqXPnzq7lDodDl156adQmugb63fzxj3/Utm3b5HA4qj3Xs2dP3XrrrXr66afDWUzLBPr9VDl48KAGDRqkzMxMLV26NMylM1NiYqLi4uJq9DIdPny4Rm9UQ/bb3/5Wa9eu1ebNm3XJJZdYXRwjFBYW6vDhw+rRo4dr2dmzZ7V582YtXLhQFRUViouLs7CE1ktNTa12jJKkTp066cUXX7SoRMEjeLKJxMREJSYm1rpejx495HA4tHfvXvXr10+SdObMGe3fv1/p6enhLqYlAv1u/vKXv+iPf/yj6/HBgwd13XXXafXq1crIyAhnES0V6Pcjnb98eNCgQa4ey9jYhtk53bhxY/Xo0UMFBQUaNiiLM1wAAAM4SURBVGyYa3lBQYFuuukmC0tmBqfTqd/+9rdas2aNNm7cqPbt21tdJGMMHjxYn3zySbVlt99+uzp27KjJkyc3+MBJkvr27Vtjaot//vOftjpGETxFmRYtWig3N1fTp09XWlqa0tPTNW/ePEnSiBEjLC6dtdq2bVvtcfPmzSVJl112GWfNOh9MDhw4UG3bttWf/vQnffvtt67nUlJSLCyZNfLy8pSTk6OePXu6euGKi4sbZA6Yp/Hjx+u5557TP/7xD8XHx7t66BISEtS0aVOLS2et+Pj4GrlfF154oS6++GJywv6/u+++W3369NGcOXP0y1/+Utu3b9fSpUtt1dNN8BSF5s2bpwsuuEA5OTk6ffq0MjIy9Pbbb6tVq1ZWFw0G27Bhg7788kt9+eWXNYJJZwO8f/jIkSN19OhRzZo1SyUlJerSpYvWrVtnq7PjcKnKTRk4cGC15cuXL9eYMWMiXyDYyrXXXqs1a9Zo6tSpmjVrltq3b68FCxbo1ltvtbpoAYtxNsRWEQAAoI4aZkIDAABAHRE8AQAABIHgCQAAIAgETwAAAEEgeAIAAAgCwRMAAEAQCJ4AAACCQPAEAAAQBIInAACAIBA8AQAABIHgCQAAIAgETwDg4dtvv1VKSormzJnjWvbBBx+ocePG2rBhg4UlA2ACbgwMAF6sW7dOQ4cO1ZYtW9SxY0d169ZNN9xwgxYsWGB10QBYjOAJAHwYP3683nzzTV177bXatWuXduzYoSZNmlhdLAAWI3gCAB9Onz6tLl266MCBA/rwww919dVXW10kAAYg5wkAfPjXv/6lgwcP6ty5c/r666+tLg4AQ9DzBABeVFZWqlevXuratas6duyo+fPn65NPPlFycrLVRQNgMYInAPDif/7nf/TCCy9o165dat68uQYNGqT4+Hi9+uqrVhcNgMUYtgMADxs3btSCBQv0zDPPqEWLFoqNjdUzzzyj9957T4sXL7a6eAAsRs8TAABAEOh5AgAACALBEwAAQBAIngAAAIJA8AQAABAEgicAAIAgEDwBAAAEgeAJAAAgCARPAAAAQSB4AgAACALBEwAAQBAIngAAAIJA8AQAABCE/wfApbIBCtA05gAAAABJRU5ErkJggg==",
"text/plain": [
"Figure(PyObject <Figure size 640x480 with 1 Axes>)"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"PyObject Text(24.0, 0.5, 'sin - sinpi')"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ydiff = sin.(x*π) - sinpi.(x)\n",
"plot(x*π,ydiff,linestyle=\"None\",marker=\",\")\n",
"xlabel(\"x\")\n",
"ylabel(\"sin - sinpi\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Julia 1.1.0",
"language": "julia",
"name": "julia-1.1"
},
"language_info": {
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "1.1.0"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment