Skip to content

Instantly share code, notes, and snippets.

@lgarrison
Last active February 22, 2024 23:31
Show Gist options
  • Save lgarrison/5e86646ef0b32a554af4ddc9b324055a to your computer and use it in GitHub Desktop.
Save lgarrison/5e86646ef0b32a554af4ddc9b324055a to your computer and use it in GitHub Desktop.
finufft condition number with small inputs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# finufft condition number with small inputs\n",
"\n",
"Is finufft reaching its condition number limit? Let's consider the 1D type-1 NUFFT with large number of uniform points.\n",
"\n",
"What we're doing below is the classic condition number test: how much does the output change from a small perturbation in the inputs? If we've reached the mathematical limit of the problem, then it doesn't matter what precision we do the calculation in for a fixed perturbation in the inputs.\n",
"\n",
"But what we see below is that the output perturbation gets smaller in 64-bit precision, **even though we are using the same perturbation size as the 32-bit inputs (about 1e-7)**. But this only seems to happen for small absolute amplitudes of the inputs (e.g. `df=1e-4`), such that they don't fill the phase curve. This could be caused by any number of things internal to finufft, such as the inputs being added to a quantity of size unity. The size of the effect is about 1-2 orders of magnitude for this configuration.\n",
"\n",
"If the amplitude of the inputs is larger, then one sees no difference when going to 64-bit. This probably makes the test unrealistic—most inputs will fill the phase curve—but it explains some of the odd behavior when testing Lomb-Scargle periodogram implementations.\n",
"\n",
"(Note that we're actually using the same inputs to the float64 calculations as float32, just upcast. And since float64 can represent all normal float32 values, this conversion is lossless.)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import finufft\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"# specify the problem\n",
"N = 3000 # NU points\n",
"M = 100_000 # Uniform points\n",
"dtype = np.float32\n",
"df = 1e-4\n",
"\n",
"# generate the data\n",
"rng = np.random.default_rng(123)\n",
"x = rng.random(N, dtype=dtype) * 2 * np.pi\n",
"c = rng.standard_normal(N, dtype=dtype) + 1j * rng.standard_normal(N, dtype=dtype)\n",
"\n",
"# Generate the \"jittered\" NU points,\n",
"# which are (fractionally) offset from the original points by eps.\n",
"# One can also use an additive offset if preferred; the results are the same.\n",
"xjitter = np.nextafter(x, 2 * x, dtype=dtype)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def measure_condition(func):\n",
" '''Compute the fractional change in the function due to jittering the input points.'''\n",
" base = func(x)\n",
" jitter = func(xjitter)\n",
" dtype = np.float32 if base.dtype == np.complex64 else np.float64\n",
" base = base.view(dtype=dtype)\n",
" jitter = jitter.view(dtype=dtype)\n",
" return np.abs((base - jitter) / base)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"condition32 = measure_condition(\n",
" lambda x: finufft.nufft1d1(x * df, c, M, eps=1e-5)\n",
")\n",
"\n",
"condition64 = measure_condition(\n",
" lambda x: finufft.nufft1d1((x * df).astype(np.float64), c.astype(np.complex128), M, eps=1e-13)\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def plot_err(errs, labels):\n",
" fig, ax = plt.subplots()\n",
" ax: plt.Axes\n",
" for e,ell in zip(errs, labels):\n",
" bins = np.logspace(-8, 1)\n",
" bins = np.insert(bins, 0, 0)\n",
" ax.hist(e, bins=bins, label=ell, histtype='step')\n",
" ax.legend(loc='upper right')\n",
" ax.set_xscale('log')\n",
" ax.set_yscale('log')\n",
" ax.set_xlabel('Fractional Error')\n",
" ax.set_ylabel('Count')\n",
" ax.tick_params(right=True, top=True)\n",
"\n",
" fig, ax = plt.subplots()\n",
" for e,ell in zip(errs, labels):\n",
" ax.scatter(np.arange(len(e)/2).repeat(2), e, label=ell, s=1.)\n",
" ax.legend(loc='upper right')\n",
" ax.set_xlabel('Mode index')\n",
" ax.set_ylabel('Fractional Error')\n",
" ax.set_yscale('log')"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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+qgkaf369brqqqtkMpk0bdo0/fKXv3T6rP7eB8BzhB8Abtu8ebNMJpP27NmjDRs2SJLCw8P185//XH/961+1efNmvfHGG/rBD37geE99fb2++MUvKjMzU3v37tUf//hHLViwQDabTevWrdPcuXNVUlKi06dP6/Tp00pPT+/1uXV1dbrjjjv09a9/XX/5y19UWVmphx56SJs2bXIat2bNGuXk5OjPf/6z7r33Xt1zzz06evSo4/XRo0dr06ZNOnz4sNatW6dnnnlGP/vZz7z+fWpoaNBLL72krVu3qr6+3vF8ZWWlbr31Vv3lL3/RXXfdpW3btum+++7T8uXLdejQIX3nO9/R0qVLtXPnTqfjXf4+AEPk77byAAJHcXGxPSIiwh4bG+v4d9ttt9ntdrt93rx59muvvXbAY2zZssWelJTkePxv//Zv9htuuKHf8fPmzbPfd999Ts/t3LnTLsne0tJit9vt9m984xv2G2+80WnMihUr7JmZmY7HkydPtn/rW99yPO7u7raPGzfOvn79+n4/+/HHH7fPnj3b8XjVqlX2rKysfscfP37cLskeHR3t9D2KjY11OkZkZKS9ubnZ6b2S7GVlZU7PXX/99faSkhKn526//Xb7TTfd5PJ9AIaGOT8AnBQUFGj9+vWOx7GxsY7/P3v27F7ja2pqtHr1ah05ckRWq1UXL17UZ599po6ODsXExKi+vl633377kGp6//339dWvftXpuRtuuEFVVVWy2WyKiIiQJM2aNcvxelhYmFJTU9Xc3Ox4rrq6Wj//+c/1v//7v2pra9PFixcVFxc36Hqqq6s1ffr0fl+fPHlyn/OkcnJyen1dd999d6+va926dS7fB2BouO0FwElsbKymTJni+Dd+/Hin1/7ZiRMndPPNN2vWrFl66aWXVFdXJ4vFIqlnoq8kRUdH+6z2yycCh4WFqbu7W5K0d+9effOb39RNN92k3//+9/rzn/+sBx980FHnYKSnpzt9j6ZMmeL0+uXfp4GeH4in7wPQN8IPAI/V1dWpu7tba9as0XXXXaepU6fq1KlTTmNmzZql2trafo9hMplks9lcfs706dO1Z88ep+f27NmjqVOnOq76DOTtt9/W5MmT9eCDDyonJ0dXX321PvjgA7feO1z6+7oyMzP9VBFgDNz2AuCxKVOm6MKFC3ryySe1YMECp4nQl1RUVOiaa67Rvffeq+9+97symUzauXOnbr/9diUnJysjI0N/+tOfdOLECY0aNUpjxozp9TnLly9Xbm6ufvzjH2vx4sXau3evfvGLX+i//uu/3K716quv1ocffqgXXnhBubm5euWVV7Rt2zaPvu6PP/5YZ86ccXouISHBsbLLXStWrNAdd9yha6+9VoWFhfrd736nrVu3qqamxqO6ALiHKz8APJaVlaW1a9fqpz/9qWbOnKlf/epXWr16tdOYqVOn6vXXX9fBgweVl5enuXPn6re//a1GjOj52+v+++9XRESEMjMzNXbsWH344Ye9Pudzn/ucfvOb3+iFF17QzJkztXLlSj3yyCNasmSJ27Xecsst+v73v6/S0lJlZ2fr7bff1kMPPeTR111YWKjx48c7/du+ffugj7Nw4UKtW7dOTzzxhGbMmKGnnnpKGzduVH5+vkd1AXBPmN1ut/u7CAAAAF/hyg8AADAUwg8AADAUwg8AADAUwg8AADAUwg8AADAUwg8AADAUwg8AADAUwg8AADAUwg8AADAUwg8AADAUwg8AADAUwg8AADCU/wfiVV1hOBvz6QAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkwAAAGwCAYAAABb3Do8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB3YUlEQVR4nO3deXwU9f0/8NfmDkISDiEEEsIlyhluEGxR0iKmIF6lKhapxUpFUIoVauWoINT6RTwo1P5EtIKitiIWldYoIsghgXAIokBACoRDTAIBcu38/tjssrM7u3N9Zmc2eT0fj31Msjs789nZnc+853O6JEmSQEREREQhxdidACIiIiKnY8BEREREpIIBExEREZEKBkxEREREKhgwEREREalgwERERESkggETERERkYo4uxMQrdxuN44fP45GjRrB5XLZnRwiIiLSQJIknDt3DhkZGYiJ0V5uxIDJoOPHjyMzM9PuZBAREZEBR48eRevWrTWvz4DJoEaNGgHwHPCUlBSbU0NERERalJWVITMz03cd14oBk0HeariUlBQGTERERFFGb3MaNvomIiIiUsGAiYiIiEgFAyYiIiIiFWzDREREFGE1NTWoqqqyOxl1Unx8PGJjY4VvlwETERFRhEiShOLiYpSUlNidlDotLS0N6enpQsdJZMBEREQUId5gqXnz5mjQoAEHPhZMkiRcuHABp06dAgC0bNlS2LYZMBEREUVATU2NL1hq2rSp3cmps5KTkwEAp06dQvPmzYVVz7HRNxERUQR42yw1aNDA5pTUfd5jLLKdGAMmIiKiCGI1nPWsOMYMmIiIiIhUMGAiIiIiUsGAiYiIiCJu2bJlSEtLC7vOrFmzkJOTE5H0qGHARERERGEtXrwY3bt39004P3DgQHz44YcAgLNnz+Khhx5Cp06dkJycjKysLEyaNAmlpaWm9zt16lTk5+f7/r/33nsxatQo09s1ol4PK3DLLbdg3bp1GDp0KN555x27k0NERORIrVu3xh9mPom09Cw0bhCP1e+8gZtvvhk7duyAJEk4fvw4nnnmGXTu3BlHjhzBAw88gOPHj5u+tjZs2BANGzYU9CnMqdclTJMnT8Zrr71mdzKIiIgcbcSIEci59npktGmL1PQszJ07Fw0bNsTmzZvRtWtX/POf/8SIESPQvn173HDDDZg7dy7ef/99VFdXq2571apV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2fMtWrTA119/rXk7ubm52LlzJ8rLy9G6dWu8/fbbGDhwoOpr/hITE5GYmGjuAxGRePVxdHMiijhHB0yifPzxx4ZeI6pXorVqy4lToxBRnePoKrlmzZohNjYWJ0+elD1/8uRJpKen25QqojqKVVtERCE5OmBKSEhA7969kZ+f73vO7XYjPz9fsdqMiExgzzQiopBsr5I7f/48Dhw44Pu/qKgIhYWFaNKkCbKysjBlyhSMHTsWffr0Qb9+/bBw4UKUl5f7es0RkSCs2iIiCsn2gGnbtm24/vrrff9PmTIFADB27FgsW7YMo0ePxunTpzFjxgwUFxcjJycHH330UVBDcCIiIiKruCRJkuxORDQqKytDamoqSktLkZKSYndyiEikWal+f5falw4iEs7o9dvRbZiIiIiInIABExEREZEKBkxEREREKhgwEREREalgwERERESkggETERERkQoGTEREgVIz5UsiqvcYMBERBSr9n3xJRPUeAyYioiBSwJKI6jsGTEREREQqGDAREQViGyYiCsCAiYgoENswEVEABkxEREHYhomI5BgwEREFYpUcEQVgwEREFKjsuHxJRPUeAyYiokAtu8uXRFTvMWAiIgr0w2H5kojqPQZMRESB2OabiAIwYCIiCtQkW74konqPARMRUaATu+RLIqr3GDAREQXqcgvgivUsiYjAgImIiIhIFQMmIqJAX70LSDWeJRERGDAREQVjlRwRBXBJksSOswaUlZUhNTUVpaWlSElJsTs5REREpIHR6zdLmIiIAn35MvBsV8+SiAgMmIiIgn30GFB61LMkIgIDJiKiYDVV8iUR1XsMmIiIiIhUMGAiIgqUmilfElG9x4CJiChQ2XH5kojqPQZMRESBOA4TEQVgwEREFKjNtUBKhmdJRAQGTEREwf7zR8+wAv/5o90pISKHYMBERBSo6oJ8SUT1HgMmIqJA8Q3kSyKq9xgwEREF+ukcz5ACP51jd0qIyCHi7E4AEZHj9L3P8yAiqsUSJiIiIiIVDJiIiIiIVDBgIiIiIlLBgImIiIhIBQMmIiIiIhUMmIiIiIhUMGAiIiIiUlEvAqZbbrkFjRs3xu233674+oULF9CmTRtMnTo1wikjIiKiaFAvAqbJkyfjtddeC/n63LlzMWDAgAimiIiIiKJJvQiYhgwZgkaNGim+9u233+Lrr7/G8OHDI5wqIiIiiha2B0zr16/HiBEjkJGRAZfLhVWrVgWts2jRImRnZyMpKQn9+/fH1q1bhe1/6tSpmDdvnrDtERERUd1je8BUXl6OHj16YNGiRYqvr1y5ElOmTMHMmTOxfft29OjRA8OGDcOpU6d86+Tk5KBr165Bj+PHj4fd93vvvYerrroKV111lWo6KyoqUFZWJnsQERFR/WD75LvDhw8PWx22YMECjB8/HuPGjQMALFmyBGvWrMHSpUsxbdo0AEBhYaGhfW/evBlvvvkm3n77bZw/fx5VVVVISUnBjBkzgtadN28eZs+ebWg/REREFN1sL2EKp7KyEgUFBcjNzfU9FxMTg9zcXGzatMn09ufNm4ejR4/i8OHDeOaZZzB+/HjFYAkApk+fjtLSUt/j6NGjpvdPRERE0cH2EqZwzpw5g5qaGrRo0UL2fIsWLfD1119r3k5ubi527tyJ8vJytG7dGm+//TYGDhyoKy2JiYlITEzU9R4iIiKqGxwdMIny8ccfq65z7733Wp8QIiIiikqOrpJr1qwZYmNjcfLkSdnzJ0+eRHp6uk2pIqI678uXgWe7epZERHB4wJSQkIDevXsjPz/f95zb7UZ+fr7uKjUiIs02PAuUHvUsiYjggCq58+fP48CBA77/i4qKUFhYiCZNmiArKwtTpkzB2LFj0adPH/Tr1w8LFy5EeXm5r9ccEZFwgx/xBEuDH7E7JUTkEC5JkiQ7E7Bu3Tpcf/31Qc+PHTsWy5YtAwC8+OKL+Mtf/oLi4mLk5OTg+eefR//+/SOcUrmysjKkpqaitLQUKSkptqaFiIiItDF6/bY9YIpWDJiIiIiij9Hrt6PbMBERERE5AQMmIiIiIhUMmIiIiIhUMGAiIiIiUsGAiYiIiEgFAyYiIiIiFQyYiIiIiFQwYCIiIiJSwYCJiIiISAUDJiIiIiIVDJiIiIiIVDBgIiIiIlLBgImIiIhIBQMmIiIiIhUMmIiIiIhUMGAiIiIiUsGAiYiIiEgFAyYiIiIiFQyYiIiIiFQwYCIiIiJSwYCJiIiISAUDJiIiIiIVDJiIiIiIVDBgIiIiIlLBgImIKNCXLwPPdvUsiYjAgImIKNiGZ4HSo54lEREYMBERBcvsD7hiPUsiIjBgIiIKdnQLINV4lkREYMBERBRs8CNAaqZnSUQEIM7uBBAROU7f+zwPIqJaLGEiIiIiUsGAiYiIiEgFAyYiIiIiFQyYiIiIiFQwYCIiIiJSwYCJiIiISAUDJiIiIiIVDJiIiIiIVDBgIiIiIlLBgImIiIhIBQMmIiIiIhUMmIiIiIhUMGAiIiIiUhFndwKilSRJAICysjKbU0JERERaea/b3uu4VgyYDDp37hwAIDMz0+aUEBERkV7nzp1Damqq5vVdkt4QiwAAbrcbx48fR6NGjeByuYRtt6ysDJmZmTh69ChSUlKEbZeC8VhHBo9zZPA4RwaPc2RYeZwlScK5c+eQkZGBmBjtLZNYwmRQTEwMWrdubdn2U1JSeDJGCI91ZPA4RwaPc2TwOEeGVcdZT8mSFxt9ExEREalgwERERESkggGTwyQmJmLmzJlITEy0Oyl1Ho91ZPA4RwaPc2TwOEeGE48zG30TERERqWAJExEREZEKBkxEREREKhgwEREREalgwERERESkggGTwyxatAjZ2dlISkpC//79sXXrVruT5Bjz5s1D37590ahRIzRv3hyjRo3C/v37ZetcunQJDz74IJo2bYqGDRvitttuw8mTJ2XrfPfdd8jLy0ODBg3QvHlzPProo6iurpats27dOvTq1QuJiYno0KEDli1bFpSe+vJdzZ8/Hy6XCw8//LDvOR5nMY4dO4YxY8agadOmSE5ORrdu3bBt2zbf65IkYcaMGWjZsiWSk5ORm5uLb7/9VraNs2fP4u6770ZKSgrS0tJw33334fz587J1du3aheuuuw5JSUnIzMzE008/HZSWt99+G1dffTWSkpLQrVs3fPDBB9Z86AirqanBE088gbZt2yI5ORnt27fHk08+KZtHjMfZmPXr12PEiBHIyMiAy+XCqlWrZK876bhqSYsqiRzjzTfflBISEqSlS5dKX331lTR+/HgpLS1NOnnypN1Jc4Rhw4ZJr7zyirRnzx6psLBQuummm6SsrCzp/PnzvnUeeOABKTMzU8rPz5e2bdsmDRgwQLr22mt9r1dXV0tdu3aVcnNzpR07dkgffPCB1KxZM2n69Om+dQ4dOiQ1aNBAmjJlirR3717phRdekGJjY6WPPvrIt059+a62bt0qZWdnS927d5cmT57se57H2byzZ89Kbdq0ke69915py5Yt0qFDh6S1a9dKBw4c8K0zf/58KTU1VVq1apW0c+dOaeTIkVLbtm2lixcv+ta58cYbpR49ekibN2+WPv/8c6lDhw7SnXfe6Xu9tLRUatGihXT33XdLe/bskd544w0pOTlZ+tvf/uZbZ+PGjVJsbKz09NNPS3v37pX++Mc/SvHx8dLu3bsjczAsNHfuXKlp06bSv//9b6moqEh6++23pYYNG0rPPfecbx0eZ2M++OAD6fHHH5f+9a9/SQCkd999V/a6k46rlrSoYcDkIP369ZMefPBB3/81NTVSRkaGNG/ePBtT5VynTp2SAEifffaZJEmSVFJSIsXHx0tvv/22b519+/ZJAKRNmzZJkuQ5wWNiYqTi4mLfOosXL5ZSUlKkiooKSZIk6fe//73UpUsX2b5Gjx4tDRs2zPd/ffiuzp07J3Xs2FH673//K/34xz/2BUw8zmI89thj0uDBg0O+7na7pfT0dOkvf/mL77mSkhIpMTFReuONNyRJkqS9e/dKAKQvv/zSt86HH34ouVwu6dixY5IkSdJf//pXqXHjxr7j7t13p06dfP///Oc/l/Ly8mT779+/v/Sb3/zG3Id0gLy8POlXv/qV7Llbb71VuvvuuyVJ4nEWJTBgctJx1ZIWLVgl5xCVlZUoKChAbm6u77mYmBjk5uZi06ZNNqbMuUpLSwEATZo0AQAUFBSgqqpKdgyvvvpqZGVl+Y7hpk2b0K1bN7Ro0cK3zrBhw1BWVoavvvrKt47/NrzreLdRX76rBx98EHl5eUHHgsdZjNWrV6NPnz6444470Lx5c/Ts2RN///vffa8XFRWhuLhY9vlTU1PRv39/2XFOS0tDnz59fOvk5uYiJiYGW7Zs8a3zox/9CAkJCb51hg0bhv379+OHH37wrRPuu4hm1157LfLz8/HNN98AAHbu3IkNGzZg+PDhAHicreKk46olLVowYHKIM2fOoKamRnaBAYAWLVqguLjYplQ5l9vtxsMPP4xBgwaha9euAIDi4mIkJCQgLS1Ntq7/MSwuLlY8xt7Xwq1TVlaGixcv1ovv6s0338T27dsxb968oNd4nMU4dOgQFi9ejI4dO2Lt2rWYMGECJk2ahFdffRXA5eMU7vMXFxejefPmstfj4uLQpEkTId9FXTjO06ZNwy9+8QtcffXViI+PR8+ePfHwww/j7rvvBsDjbBUnHVctadEiTvOaRA7y4IMPYs+ePdiwYYPdSalzjh49ismTJ+O///0vkpKS7E5OneV2u9GnTx889dRTAICePXtiz549WLJkCcaOHWtz6uqOt956C8uXL8eKFSvQpUsXFBYW4uGHH0ZGRgaPM+nCEiaHaNasGWJjY4N6Gp08eRLp6ek2pcqZJk6ciH//+9/49NNP0bp1a9/z6enpqKysRElJiWx9/2OYnp6ueIy9r4VbJyUlBcnJyXX+uyooKMCpU6fQq1cvxMXFIS4uDp999hmef/55xMXFoUWLFjzOArRs2RKdO3eWPXfNNdfgu+++A3D5OIX7/Onp6Th16pTs9erqapw9e1bId1EXjvOjjz7qK2Xq1q0b7rnnHjzyyCO+0lMeZ2s46bhqSYsWDJgcIiEhAb1790Z+fr7vObfbjfz8fAwcONDGlDmHJEmYOHEi3n33XXzyySdo27at7PXevXsjPj5edgz379+P7777zncMBw4ciN27d8tO0v/+979ISUnxXbwGDhwo24Z3He826vp3NXToUOzevRuFhYW+R58+fXD33Xf7/uZxNm/QoEFBw2J88803aNOmDQCgbdu2SE9Pl33+srIybNmyRXacS0pKUFBQ4Fvnk08+gdvtRv/+/X3rrF+/HlVVVb51/vvf/6JTp05o3Lixb51w30U0u3DhAmJi5Je62NhYuN1uADzOVnHScdWSFk00Nw8ny7355ptSYmKitGzZMmnv3r3S/fffL6Wlpcl6GtVnEyZMkFJTU6V169ZJJ06c8D0uXLjgW+eBBx6QsrKypE8++UTatm2bNHDgQGngwIG+173d3X/6059KhYWF0kcffSRdeeWVit3dH330UWnfvn3SokWLFLu716fvyr+XnCTxOIuwdetWKS4uTpo7d6707bffSsuXL5caNGggvf7667515s+fL6WlpUnvvfeetGvXLunmm29W7Jbds2dPacuWLdKGDRukjh07yrpll5SUSC1atJDuueceac+ePdKbb74pNWjQIKhbdlxcnPTMM89I+/btk2bOnBnV3d39jR07VmrVqpVvWIF//etfUrNmzaTf//73vnV4nI05d+6ctGPHDmnHjh0SAGnBggXSjh07pCNHjkiS5KzjqiUtahgwOcwLL7wgZWVlSQkJCVK/fv2kzZs3250kxwCg+HjllVd861y8eFH67W9/KzVu3Fhq0KCBdMstt0gnTpyQbefw4cPS8OHDpeTkZKlZs2bS7373O6mqqkq2zqeffirl5ORICQkJUrt27WT78KpP31VgwMTj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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_err([condition32, condition64], ['32-bit', '64-bit'])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "venv",
"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.10.13"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment