diff --git a/docs/demos/performance.py b/docs/demos/plotting.py similarity index 50% rename from docs/demos/performance.py rename to docs/demos/plotting.py index ed51fd731..3ab809412 100644 --- a/docs/demos/performance.py +++ b/docs/demos/plotting.py @@ -1,12 +1,10 @@ import numpy as np import matplotlib.pyplot as plt -# %matplotlib inline data_performance = { 'read_parquet': ((0.804, 2.939, 6.235, 20.91), (0.51, 1.662, 3.151, 8.555)), -'read_csv': ((5.526, 5.806, 7.008, 10.46), - (19.732, 10.466, 6.277, 6.947)), +'read_csv': ((19.732, 10.466, 6.277, 6.947)), 'describe': ((0.823, 1.713, 3.324, 7.103), (0.704, 1.396, 2.89, 6.485)), 'v_counts': ((0.867, 1.777, 3.447, 6.799), @@ -14,17 +12,17 @@ } plot_params = { - 'read_parquet':(('1m', '2m', '4m', '8m'), 'Data size'), - 'read_csv':(('1 node', '2 nodes', '4 nodes', '8 nodes'), 'Number of processes'), - 'describe':(('1m', '2m', '4m', '8m'), 'Data size'), - 'v_counts':(('1m', '2m', '4m', '8m'), 'Data size'), + 'read_parquet':(('1m', '2m', '4m', '8m'), 'Data size', 'Performance: Pandas vs SDC', True, 'upper left'), + 'read_csv':(('1 node', '2 nodes', '4 nodes', '8 nodes'), 'Number of processes', 'SDC Scalability', False, 'upper right'), + 'describe':(('1m', '2m', '4m', '8m'), 'Data size', 'Performance: Pandas vs SDC', True, 'upper left'), + 'v_counts':(('1m', '2m', '4m', '8m'), 'Data size', 'Data size', 'Performance: Pandas vs SDC', True, 'upper left'), } class Plotter: def __init__(self, func_id='read_parquet'): self.func_id = func_id - self.x_labels, self.x_title = plot_params[self.func_id] + self.x_labels, self.x_title, self.title, self.is_compared, self.label_position = plot_params[self.func_id] self.ngroups = len(self.x_labels) def autolabel(self, rects, ax): @@ -39,30 +37,37 @@ def autolabel(self, rects, ax): def plot_performance(self): plt.figure(figsize = (16, 8)) - - means_pandas, means_sdc = data_performance[self.func_id] # create plot index = np.arange(self.ngroups) bar_width = 0.35 opacity = 0.8 - rects1 = plt.bar(index, means_pandas, bar_width, - alpha=opacity, - label='Pandas') + plt.xlabel(self.x_title, fontsize=16) + plt.ylabel('Time, s', fontsize=16) + plt.title(self.title, fontsize=18) + + plt.tick_params(labelsize=12) - rects2 = plt.bar(index + bar_width, means_sdc, bar_width, + if self.is_compared: + data_pandas, data_sdc = data_performance[self.func_id] + rects_pandas = plt.bar(index + bar_width, data_pandas, bar_width, + alpha=opacity, + label='Pandas') + + plt.xticks(index + bar_width, self.x_labels) + else: + data_sdc = data_performance[self.func_id] + plt.xticks(index, self.x_labels) + + rects_sdc = plt.bar(index, data_sdc, bar_width, alpha=opacity, label='SDC') - plt.xlabel(self.x_title, fontsize=16) - plt.ylabel('Time, s', fontsize=16) - plt.title('Performance: Pandas vs SDC', fontsize=18) - plt.xticks(index + bar_width, self.x_labels) - plt.tick_params(labelsize=12) - plt.legend(fontsize=16,loc="upper left") + if self.is_compared: + self.autolabel(rects_pandas, plt) - self.autolabel(rects1, plt) - self.autolabel(rects2, plt) + plt.legend(fontsize=16, loc=self.label_position) + self.autolabel(rects_sdc, plt) plt.tight_layout() plt.show() diff --git a/docs/demos/sdc_demo.ipynb b/docs/demos/sdc_demo.ipynb index d0ff61300..a3c1f6b3e 100644 --- a/docs/demos/sdc_demo.ipynb +++ b/docs/demos/sdc_demo.ipynb @@ -63,7 +63,6 @@ "metadata": {}, "outputs": [], "source": [ - "import hpat # Original module name\n", "import numba\n", "\n", "import pandas as pd\n", @@ -89,7 +88,7 @@ "metadata": {}, "outputs": [], "source": [ - "@hpat.jit\n", + "@numba.jit\n", "def read_from_parquet():\n", " filename = 'cycling_dataset.pq'\n", " df = pd.read_parquet(filename)\n", @@ -255,7 +254,7 @@ "outputs": [ { "data": { - "image/png": "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tFu8eDGdOnVa7/g2bdpw33338eCDD9K9e3d+8IMfMGzYMHr06NEk9UvNzcekS5IkSZKaVUqJM844g3nz5vHQQw/Rpk0bAAYMGMC4ceOq2i1btozXXnuNAQMG1NjPwIEDeeKJJ6o+H3DAAZxyyimNW3wLdvQNTzXr+Sedd9AmH3vrrbdy2mmnVX0uKyujb9++fP3rX+ecc86hdeumizMigu9+97uMGjWqyc65KRzBI0mSJElqVueeey7Tp09n0qRJdOjQoWr7F7/4RV566SUmTJjAihUruOqqqxg4cOB6CyxX+sc//sGKFStYvnw51113HXPnzuXUU0+t2r9y5UpWrFgBZI9NX7FiRY1r96jluPvuu3nmmWeYMGEC++67L+eddx5XXXVVc5fVIhnwSJIkSZKazezZs/n5z3/O3//+d7p3705ZWRllZWXccccdlJeXM2HCBC677DK23XZbnn32We66666qY8eMGcPnPve5qs+33347O+64I9tvvz2PPfYYjzzyCO3atavav+uuu9KhQwfefvttjjrqKDp06MDs2bOb9Hq1cfbaay/2339/Bg8ezC9+8QsGDRrEj3/84+Yuq0Uy4JEkSZIkNZtevXqRUmLFihUsXbq06nXiiScCcMQRRzBjxgw++OADHn/8cXr37l117KWXXsrkyZOrPl977bUsWrSIpUuXMnnyZPr167fOud544w1SSuu8SvtTy7fPPvuwZMkS3nnnHe666y4OP/xwysvLKSsrY++9915nSl+liODyyy/n+uuvp0+fPnTq1IlDDz10vaexffjhh1x++eXsuOOObL311gwaNKjGJ7a9+uqrDB8+nD59+tChQwf69u3Lueeey6JFi9Zp9/zzz3PkkUey3XbbsfXWW9O3b19GjBjRsDekhGvwSJIkSZKkQnj99ddp1aoVZWVlzJo1i+OPP56LL76Yrbbair/85S+ceeaZfPDBB5xzzjnrHDd+/Hh23XVXfvKTn7Bq1SouuugijjnmGGbMmFG1ns+oUaMYM2YM3/zmNxk8eDBTpkzhC1/4wno1zJkzhx49evDjH/+YbbfdllmzZjFmzBiGDh3KM888A8DSpUs56qij2Hfffbn11lvp1KkTb7zxBn/9618b7d4Y8EiSJEmSpBbpww8/ZM2aNSxZsoTf/e53TJw4kaOPPpqtt96aSy+9tKrd2rVrGTRoEHPnzuXmm29eL+Bp06YNDzzwQNUC3gBf/vKXee655zjggANYtGgRP/rRjzjrrLO47rrrABg8eDCtWrXi4osvXqevQw45hEMOOaTq8wEHHEC/fv04+OCDefHFF9l7772ZMWMGixYt4n//938ZOHBgVdvSNaEamlO0JEmSJElSi9S/f3/atGlD165dGTFiBCeeeCJjx44F4JVXXuGEE07gE5/4BG3atKFNmzb88pe/5OWXX16vnyOPPHKdcGePPfYA4M033wTgn//8J8uWLWPYsGHrHPfVr351vb5WrVrFmDFj6N+/Px06dKBNmzYcfPDBAFXn3nnnndlmm204++yzGT9+PG+99VYD3I26GfBIkiRJkqQW6d577+X5559nxowZLFu2jNtuu42uXbuydOlSjjzySKZOncr3vvc9nnzySZ5//nlOP/10Vq5cuV4/Xbt2Xedz5eLblU9Vmzt3LgA77LDDOu2qfwa45JJLGDVqFCeddBIPPvggzz33HBMnTlynvy5duvDnP/+ZnXbaiREjRtCzZ0923313JkyYsJl3pHZO0ZIkSZIkcfQNTzV3CVucSecd1NwltHi77777eotlAzzzzDPMnj2bJ598koMO+ug+rlmzZpPOs+OOOwIwb948BgwYULV93rx567W96667OPnkk7n88surti1dunS9dnvttRcTJkxgzZo1TJkyhWuuuYZhw4YxdepUdt99902qsy6O4JEkSZIkSYWyfPlygHWmXS1atIj7779/k/obOHAgHTt25He/+9062++6664az116XoBf//rXtfbdunVr9t9/f0aPHs3atWuZPn36JtW4IY7gkSRJkiRJhXLAAQfQuXNnvvGNb3DllVeybNkyrr76arp168b777+/0f1ts802/Nd//Rf/8z//Q6dOnRg8eDDPP/88v/rVr9ZrO2TIEMaNG8cee+xBv379mDhx4npPx3rggQe45ZZbOPbYY+nTpw/Lli3j+uuvp1OnTnzmM5/Z5OuuiwGPJEmSJEkfQx/nKWDl5eXce++9/Pd//zfHH388O+20ExdccAELFy7kyiuv3KQ+R40aRUqJX/7yl9x4443st99+TJo0aZ0pWwA33HADKSUuu+wyAIYOHcqdd97JvvvuW9Vm5513pkOHDowePZq5c+fSqVMn9tlnHx555BF69Oix6Rdeh0gpNUrHLVVFRUWa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\n", + "image/png": "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DjfffPM6AU+rVq24//77qxbhAvjSl77Es88+y4EHHsjChQv58Y9/zFlnncV1110HwKBBg2jRogUXX3zxWn0deuihHHrooVXvDzzwQPr27cshhxzCCy+8wD777MPMmTNZuHAhP/jBDxgwYEBV29J5nZIkSZIkbc2corUV6devH61ataJLly6MGDGCE088kbFjxwLwyiuvcMIJJ/CJT3yCVq1a0apVK371q1/x0ksvrdPPUUcdtVa4s+eeewLw5ptvAvDPf/6TpUuXMmzYsLWO+8pXvrJOXytXrmTMmDH069ePdu3a0apVKw455BCAqnPvsssubLvttpx99tlMmDCBt956qx7uhiRJkiRJWw4Dnq3IPffcw3PPPcfMmTNZunQpt956K126dGHJkiUcddRRTJs2je9973s88cQTPPfcc5x++umsWLFinX66dOmy1vvKBbQqV0afM2cOADvuuONa7aq/B7jkkksYNWoUJ510Eg888ADPPvsskyZNWqu/zp078+c//5mdd96ZESNG0KNHD/bYYw8mTpy4mXdEkiRJkqQtg1O0tiJ77LHHOgteATz99NPMnj2bJ554goMPPrhq++rVqzfpPDvttBMAc+fOpX///lXb586du07bO++8k5NPPpnLL7+8atuSJUvWabf33nszceJEVq9ezdSpU7nmmmsYNmwY06ZNY4899tikOiVJkiSpKR1zw5NNXcJWZ/J5B2+4UUE5gkcsW7YMYK1pVwsXLuS+++7bpP4GDBhAhw4d+P3vf7/W9tJH65Weu/S8AL/5zW9q7btly5YccMABjB49mjVr1jBjxoxNqlGSJEmSpC2JI3jEgQceSKdOnfj617/OlVdeydKlS7n66qvp2rUrH3zwwUb3t+222/Lf//3ffPe736Vjx44MGjSI5557jl//+tfrtB08eDDjx49nzz33pG/fvkyaNGmdp2Pdf//93HLLLQwdOpTevXuzdOlSrr/+ejp27MinP/3pTb5uSZIkSZK2FAY8dbQlD+MqLy/nnnvu4X/+5384/vjj2XnnnbngggtYsGABV1555Sb1OWrUKFJK/OpXv+LGG29k//33Z/LkyWtN2QK44YYbSClx2WWXATBkyBDuuOMO9ttvv6o2u+yyC+3atWP06NHMmTOHjh07su+++/Lwww/TvXv3Tb9wSZIkSZK2EJFSauoaGlVFRUWa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KSsrY86cOcybN4+//vWvTJgwoa59W/uivPjii9xwww08+eSTfPLJJxxyyCF897vfbappqpkqKiqib9++LF68mClTpuz0+SeccAJt2rShVatWXHTRRZx88sk8/fTTjVCpJEnZYcAjSVIGtW7dmptvvpmuXbuyxx57cPbZZ3PIIYc0uGHtU089xciRI9lvv/1o3749I0eO5L777qtr79WrV90qivr7omw894ILLqBXr160bNmSMWPGMGPGDFdLaJeoqqraJf+WIoKU0i6oSJKk7DLgkSSpGVi6dCnz5s3bZBPbjVJKm/zxm1Ji8eLFrFy5su7Y1vZFaehcqHmMtbQzli1bxrRp06ioqKC6uprp06fzyCOP0L9//y36ppSorKxk/fr1AFRWVrJu3ToAPv30U6ZPn05lZSVVVVU8/PDDzJgxgzPOOKPu/HXr1lFZWQnUPDa9srLSJ1jZFAAAFxFJREFUAEiS1OwZ8EiSlHEbNmxg8ODBXHTRRRx++OFbtA8YMIDbb7+d5cuX8+GHH/LTn/4UgM8++6yuz9b2RRk4cCC/+tWveP3111m7di233HILEbHJudKOiAimTJlCaWkp7dq1Y9SoUUyaNInzzjuP8vJycrkc5eXlACxatIji4uK6wLK4uJgePXoANf/eR48eTfv27SkpKeGOO+7giSeeqGuHmqdwFRcXs2TJEs444wyKi4tZtGhR009akqQm5GPSJUnKsM8//5yhQ4fSsmVLJk+e3GCfG2+8kU8//ZRjjjmGVq1acemllzJr1iwOOOCATfpt3Bdl6tSpTJkyhZEjR3Laaacxbtw4zj//fFauXMnVV19NmzZtKC0tbYrpqRlp3749L774YoNtnTt3pqKiou5z165dt7ripn379rzyyivb/K6G9qKSJKm5cwWPJEkZlVLikksuYenSpTz++OPsueeeDfYrLi5m8uTJLFmyhAULFrD//vvTu3dvioqKGuy/+b4oV155JX//+99ZtmwZ559/PlVVVRxxxBGNMidJkiR9MQY8kiRl1OWXX86bb77JU089RXFx8Vb7LVmyhPfff5+UEi+//DLjx49n3LhxwPb3RamsrGTOnDmklCgvL2f48OH88Ic/pF27dk0yR0mSJO0YAx5JkjJo0aJF3H333cyePZuDDjqIXC5HLpfj4Ycf3mI/k/nz5/PVr36V1q1bc9FFFzFx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efPmsWHDBh588EHOPPPMHR7n0UcfpWXLlgwcOLARZyRJkiRJaiwt8l2ApIZVVFSwzz77bHJsn332YfXq1Vv07dChA1/72tfo0aMHRUVFHHzwwfzxj3/coXEqKiq44YYb+P3vf99IM5EkSZIkNTZX8EgFKpfLsWrVqk2OrVq1ijZt2mzRd9y4cbzyyiu89957VFZWMnbsWPr3789nn3223XHGjh3L0KFDOeSQQxpvMpIkSZKkRmXAIxWo7t27U1VVxd///ve6Y6+99hq9evXaou9rr73Gt7/9bUpLS2nRogXDhg1jxYoVvPHGG9sd5/nnn+enP/0pBx10EAcddBDvvfceF154IbfeemvjT1KSJEmStEsY8OhL2dHHbz/wwAMUFRWRy+XqXi+88EJd++TJk+nTpw+tWrVi2LBhTVN8gWvdujWDBg3ipptuYs2aNfz5z3/mySef3OTpWBsdd9xxPProoyxdupTPP/+chx56iA0bNtCtW7ftjvP8888zZ84cZs+ezezZs+nYsSN33303V155ZVNPWZIkSZL0BbkHj76U+o/fnj17NmeddRZHH310g6tMTjrpJF566aUGx+nYsSOjR49m+vTprF27trHLzoy77rqL73//+xxwwAHsv//+TJkyhV69elFeXs5XvvIV3njjDTp37sy1117LsmXLOOaYY1izZg3dunXj8ccfZ999993mOAD777//Jt9ZVFREu3btyOVyTT5fSZIkSdIXY8CjL2zj47fnzJmzxeO3J06cuFNjDRo0CICysjIWL17cGOVm0n777ccTTzyxxfHOnTtTUVFR93mvvfbizjvv5M4779ypcRqycOHCL1SrJEmSJCl/vEVLX9jOPMYbYNasWZSUlNC9e3fGjx9PVVVVU5UqSZIkSVKz5goefWE78xjvU045hTlz5tClSxfmzp3Lt7/9bVq0aMH111/fVOVKkiRJktRsuYJHX9jOPMb70EMP5ZBDDmGPPfbgyCOP5KabbuKxxx5rqlIlSZIkSWrWDHj0he3MY7w3FxGklBqzPEmSJEmSdhsGPPrCduYx3s888wxLly4F4K233mL8+PGcd955de1VVVVUVlZSXV1NdXU1lZWV7tEjSZIkSdIOcg8efSk7+hjv559/nmHDhlFRUcGBBx7IkCFDuOGGG+rGmTBhAuPGjav7PHXqVMaOHcvNN9+ch1lt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\n", "text/plain": [ "
" ] @@ -267,7 +266,7 @@ } ], "source": [ - "from performance import Plotter\n", + "from plotting import Plotter\n", "\n", "pl = Plotter()\n", "pl.plot_performance()" @@ -275,11 +274,11 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ - "@hpat.jit\n", + "@numba.jit\n", "def read_from_csv():\n", " filename = 'cycling_dataset_2.csv'\n", " # Currrently we need to provide column names and their types\n", @@ -301,7 +300,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -417,7 +416,7 @@ "4 -97.732724 0 " ] }, - "execution_count": 3, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -445,12 +444,12 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 3, "metadata": {}, "outputs": [ { "data": { - "image/png": "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ltR43vvvv88TTzzBscceu8qxTz/9lAULFjBu3Dh22GGHas8fNWoUK1eu5Ec/+lGd3IckSZIkqX409Bo8zYEPgF2BDsAFwJ0R0TMiugCTCmWdgSnAH2to6xrgC2Bj4Ejg2ojoX499lxrNHnvswcUXX8whhxxCjx496NmzJ6WlpXTr1q3G8yZOnMjgwYPp1atXtcfbtWvHKaecwjHHHMNHH31U6di4ceOYOHEiDz300Dpv0ydJkiRJahgNOkUrpbQYGFVU9GBEvAN8C9gQmJpSugsgIkYBH0dE35TStOJ2IqIdcAiwTUqpDPhnRPwJOBo4t95vRGoEp512GqeddhoAb775JqNHj2abbbap8ZyJEydy7rk1/yexcuVKlixZwocffshGG20EwPjx4xk7diz/+Mc/1hgiSZIkSWqaDrj6n416/QfOGLzO5950002VZhKUlJTQu3dvfvzjH3PKKac06JpDEcFFF13EqFGjGuya66JRd9GKiI2BrYCpQH/g5fJjhTDorUJ5VVsBK1JKbxaVvbyaulJuLF++nKVLl7JixQpWrFjB0qVLK8peffVVUkq8//77nHTSSZx55pl06tRptW3961//4sMPP6zYPavc5MmTefHFF1mxYgULFy7k7LPPplOnTvTr1w+AW2+9lfPOO4/JkyfTu3fver1fSZIkSarJXXfdxdNPP80999zDjjvuyBlnnLHaNUS/7hot4ImIFsCtwITCCJ0SYEGVaguA0mpOX5u6RMRJETElIqbMnTt3/Tou1aPRo0fTpk0bxo4dyy233EKbNm0YPXo0S5cu5YgjjqCkpIQdd9yR73znO1x66aUV540ZM4b99tuvUlsTJkxg2LBhlJZW/s/i008/5fDDD6dDhw5sscUWzJgxg7/85S+0bt0agJEjR/LJJ58waNAgSkpKKCkp4ZRTTqn/m5ckSZKkKrbffnt22mkn9t57b373u9+x22678dvf/raxu9UkNUrAExEbADeTraFzeqG4DGhfpWp7oLoN4NemLimlG1JKA1NKA7t27brO/Zbq26hRoyp2zCp/jRo1io4dO/LKK6+wePFi/v3vf3PZZZfRrFmzivPOO+88/vznP1dq6/rrr+fmm29e5RrDhw9n2rRplJWVMXfuXB5++GEGDBhQcfydd95h2bJllJWVVbyuu+66+rtpSZIkSaqlQYMGsWjRIj766CPuuOMOdt99d7p27UpJSQk77LADEyZMWOWciGDkyJFcddVV9OrVi9LSUnbddVemTp1aqd6KFSsYOXIkm266KW3btmW33XZbpQ7AjBkzOProo+nVqxdt2rShd+/enHrqqcyfP79Sveeee4699tqLDTfckLZt29K7d29GjBhRtw+kSINvkx7Znl+/J1scef+U0rLCoanAsUX12gFbFMqrehNoHhFbppSmF8q2W01dSZIkSZL0FfDOO+/QrFkzSkpKePvttzn00EM599xz2WCDDfjHP/7BiSeeyGeffbbKLIRbbrmFrbfemiuvvJIvvviCn/70pxx44IFMmzatYj2fUaNGMWbMGM4++2z23ntvpkyZwve///1V+jBr1iy6devGb3/7Wzp16sTbb7/NmDFj2H///Xn66acBKCsrY5999mHHHXfkpptuorS0lHfffZd//etf9fZsGjzgAa4F+gF7ppQ+Kyq/F7g8Ig4BHgIuBF6pusAyZOvzRMQk4JKIOBHYHjgQ2Lneey9JkiRJkhrEihUrWL58OYsWLeLOO+9k0qRJHHDAAbRt25bzzjuvot7KlSvZbbfdmD17Ntdee+0qAU+LFi148MEHadGiRUXZ8OHDefbZZ9l5552ZP38+v/nNbzjppJP41a9+BcDee+9Ns2bNVtm4ZsiQIQwZMqTi/c4770yfPn3YZZddePHFF9lhhx2YNm0a8+fP57//+78rzZg47rjj6vLxVNKgU7QiogdwMlkg8++IKCu8jkwpzSXbGesXwHzg28APi849LyKK56CMANoAHwG3A6emlBzBI0mSJEnSV0Tfvn1p0aIFnTt3ZsSIERx55JGMHz8egOnTp3P44Yez+eab06JFC1q0aMGNN97IG2+8sUo7e+21V6VwZ9tttwXg/fffB+D//u//WLx4MYcddlil8374wx9S1RdffMGYMWPo27cvbdq0oUWLFuyyyy4AFdfecsst6dixIyeffDK33HILH3zwQR08jZo19Dbp7wFRw/FHgb6rOTamyvt5wEF12kFJkiRJktRk3HvvvXTr1o3S0lJ69OhRsTlMWVkZe+21F23btmXs2LFsscUWtGzZkmuvvbYiACrWuXPnSu9btWoFwNKlSwGYPXs2ABtvvHGlelXfA/z85z/n6quv5sILL2TnnXemtLSUmTNnMmzYsIr2OnTowN///ncuvfRSRowYwaJFi+jfvz8XX3wxhxxyyHo+leo1xhQtKV+u37Wxe/D1c/ITjd0DSZIkSU3ANttsQ58+fVYpf/rpp3nvvfd48sknGTx4cEX58uXL1+k6m266KQBz5syhf//+FeVz5sxZpe4dd9zBMcccw8iRIyvKysrKVqm3/fbbc88997B8+XKmTJnCZZddxmGHHcbLL7/MNttss079rEmjbZMuSZIkSZK0LpYsWQJQadrV/Pnzuf/++9epvQEDBtCuXTvuvPPOSuV33HFHtdcuvi7AH/7wh9W23bx5c3baaScuvfRSVq5cyeuvv75OfVwTR/BIkiRJkqRc2XnnnWnfvj2nnXYaF198MYsXL2b06NF06dKFBQsWrHV7HTt25Cc/+Qm/+MUvKC0tZe+99+a5557j97///Sp19913XyZMmMC2225Lnz59mDRp0iq7Yz344IPccMMNHHTQQfTq1YvFixdz1VVXUVpayne+8511vu+aGPBIkiRJkvQV9MAZg9dcKae6du3Kvffey3/9139x6KGHstlmm3HmmWcyb948Lr744nVqc9SoUaSUuPHGGxk3bhzf/va3eeCBBypN2QK4+uqrSSlx/vnnA7D//vtz++23s+OOO1bU2XLLLWnTpg2XXnops2fPprS0lEGDBjF58mS6deu27jdeg0gp1UvDTdXAgQPTlClTGrsbyhPX4Gl4rsEjSZIk1drrr79Ov379GrsbqiNr+jwj4vmU0sCq5a7BI0mSJEmSlHMGPJIkSZIkSTlnwCNJkiRJkpRzBjySJEmSJEk5Z8AjSZIkSZKUcwY8kiRJkiRJOWfAI0mSJEmSlHMGPJIkSZIkSTlnwCNJkiRJkpRzBjySJEmSJEk517yxOyBJkiRJkurB9bs27vVPfmKdT73vvvu44oormDZtGosWLWKjjTZihx124JRTTmHfffcF4PHHH2fo0KEV57Ru3ZoNN9yQAQMGMGzYMI455hhatmy5StuLFy/mqquu4q677mL69OksW7aMHj16sNdee3HWWWfRp0+fde53YzLgkSRJkiRJTcZVV13FmWeeyfHHH89Pf/pT2rVrx1tvvcVDDz3E3/72t4qAp7j+oEGDWLZsGbNmzWLy5MmcdtppjBs3jsmTJ9O1a9eKurNnz2bPPfdk1qxZnH766QwePJiWLVvy2muvMX78eJ566ilefPHFhr7lOmHAI0mSJEmSmoxf/epXHHTQQfz+97+vKNt999358Y9/zMqVK1ep369fP3baaaeK9z/4wQ844YQTGDp0KMcffzwPPPBAxbGjjz6a2bNn8+yzz7LllltWlA8dOpQRI0Zw//3319Nd1T/X4JEkSZIkSU3GvHnz2GSTTao9tsEGtYsxvvOd73Dqqafy4IMP8tZbbwHw7LPP8thjj3HeeedVCnfKRQQHHXTQune8kRnwSJIkSZKkJmPHHXdkwoQJXH755bz55pvr3M7+++8PwFNPPQXAo48+CsD3v//99e9kE2TAI0mSJEmSmozrrruOPn36cM4557D11lvTpUsXDj/8cB555JG1aqd79+5Atu4OwAcffABAjx496rbDTYQBjyRJkiRJajK22morXnzxRZ544gnOP/98tt9+e+6991722WcfRo8eXet2UkpANvXq68CAR5IkSZIkNSnNmjVjyJAhjB49mkcffZS3336bbbfdlosvvpj58+fXqo3yETubbropAN/4xjcAeO+99+qn043MgEeSJEmSJDVpm222GSeeeCLLly9n+vTptTrnoYceAuC73/0uAHvuuSdApV21vkoMeCRJkiRJUpNRPvKmqmnTpgGsdoetYk8//TTXX389Bx10EL179wayxZv32GMPxowZw4wZM6o9L8/bpDdv7A5IkiRJkiSV22abbRg6dCgHH3wwvXr1YuHChTz88MNcd911HHbYYRWLJ5d7/fXXKSkpYfny5cyePZtHHnmEm2++mW9+85v87ne/q1T35ptvZs8992TQoEGcccYZDB48mJYtWzJt2jTGjx/PsmXLOPDAAxvyduuMAY8kSZIkSV9FJz/R2D1YJ7/85S95+OGHufDCC5kzZw7NmjVjq622YuzYsZx11lmr1P/P//xPAFq1asWGG27IdtttxzXXXMPRRx9Ny5YtK9XddNNNeeaZZ7jqqqu46667+PWvf83y5cvp2bMn++67L2eeeWaD3GN9iPJVpb8uBg4cmKZMmdLY3VCeXL9rY/fg6yenv4gkSZKkxvD666/Tr1+/xu6G6siaPs+IeD6lNLBquWvwSJIkSZIk5ZwBjyRJkiRJUs4Z8EiSJEmSJOWcAY8kSZIkSVLOGfBIkiRJkpRzX7cNlL6q1udzNOCRJEmSJCnHWrRowWeffdbY3VAd+Oyzz2jVqtU6nWvAI0mSJElSjm20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COD+iPhBPfRNkiRJkiRJtVDbgGcg8FjR+1OAMSmlDYFrgLPrumOSJEmSJEmqndoGPJ2BOQARsQ2wCTChcOw+YOu675okSZIkSZJqo7YBzydAt8LPuwOzUkrTC+9brEU7kiRJkiRJqmPNa1nvUWBURHQB/ots1E65vsB7dd0xSZIkSZIk1U5tR96cA3wAXAa8BVxcdOxI4J913C9JkiRJkiTVUq1G8KSU5gB7rebwnsDSOuuRJEmSJEmS1kptp2itVkppYV10RJIkSZIkSevGxZElSZIkSZJyzoBHkqScGDduHAMHDqRVq1Ycd9xxlY499thj9O3bl7Zt2zJ06FDee2/N+x9Mnz6d1q1bc9RRR1UqX7JkCSNGjKBLly506NCBIUOGVDr+wgsvMGTIEEpKSth444258sor1/veJElfb03ld5yUZwY8kiTlxGabbcbIkSM5/vjjK5V//PHHDBs2jEsvvZR58+YxcOBAfvCDH6yxvdNOO41BgwatUn7SSScxb948Xn/9debNm8dvfvObStfad999Ofnkk/nkk0+YMWMGe++99/rfnCTpa60p/I6T8m691+CRJEkNY9iwYQBMmTKFmTNnVpRPmjSJ/v37M3z4cABGjRpFly5dmDZtGn379q22rTvuuIOOHTuy8847M2PGjIryN954gz/96U/MnDmT9u3bA/Ctb32r4vgVV1zBPvvsw5FHHglAq1at6NevX93eqCTpa6cp/I6T8s4RPJIk5dzUqVPZbrvtKt63a9eOLbbYgqlTp1Zbf+HChVx44YX8+te/XuXYM888Q48ePbjooovo0qUL2267Lffcc0/F8f/93/+lc+fO7Lzzzmy00UYccMABvP/++3V/U5Ik0bC/46S8W++AJyKOiQjHZkuS1EjKysro0KFDpbIOHTqwaNGiautfcMEFnHDCCXzjG99Y5djMmTN59dVX6dChA7NmzWLcuHEce+yxvP766xXHJ0yYwJVXXsn7779Pr169OPzww+v+piRJomF/x0l5VxdTtG4CUkRMBX6RUvpjHbQpSZJqqaSkhIULF1YqW7hwIaWlpavUfemll3j00Ud58cUXq22rTZs2tGjRgpEjR9K8eXN23XVXhg4dyiOPPEK/fv1o06YNBx98cMW6BuX/L+iCBQtW+R/gkiStr4b8HSflXV0EPEOBdsBg4HTAgEeSpAbUv39/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LUnSLvOxj32Mdu3a0apVK0aNGsUnP/lJHnzwwW3aXXXVVTz11FO88sorbNq0iQkTJvDpT3+ajRs3Ul5ezptvvrlV+zfffJN27doB0KZNG1q2bMmVV17Jvvvuy/HHH8+nPvUpfv3rXzfJOUqSJEmlyIBHO6Sxd8i58847KSsrq2lXXl7OY489BsDbb7/NueeeS+/evWnXrh1HHXUUDz300FbHe4ccac8QEaSUttn+9NNP8+Uvf5mePXvSokULRo8ezRtvvMGiRYvo168fW7Zs4cUXX9yq/cCBAwH4yEc+0mT1S5IkSUVhwKMd1pg75AB84hOfqGlXVVVVsw7Hli1bOOigg5g9ezbr1q1j0qRJfOlLX2Lp0qU1x3qHHKl41q5dy8MPP8ymTZvYsmULd911F3PmzOGkk07apu3gwYO59957qays5L333mP69Ols3ryZQw89lLZt23LGGWcwfvx4NmzYwLx587jvvvtq7rI1bNgwevXqxTXXXMOWLVuYN28ejz32WL3vI0mSJO0tXINHTa5t27ZMnDix5vVpp51Gnz59+MMf/sDBBx9cc4ecFStWsP/++wN4hxypADZv3syVV17J888/T1lZGYcffjizZs3isMMOY/ny5QwYMIBFixbRq1cvLrnkEl577TWOPPJINmzYwKGHHsrMmTM54IADAJgyZQpf//rX6dq1K506deKWW26pGcHTsmVL7rvvPr7xjW9w7bXX0rt3b6ZNm8bhhx/enKcvSZIkNSsDHu2wxtwhB2DBggV07tyZjh07cs4553DZZZfRosW2f+QqKytZvHhxzT/evEOOVExdunThqaeeqndfr169qKqqqnndunVrbr75Zm6++eZ623fs2JFZs2Zt970GDhzIE0888cEKliRJkvYgTtHSDrnuuut4+eWXWblyJWPGjOH000/npZde2qbdsGHDeOaZZ3jttdeYOXMmP//5z/nhD3+4TbvNmzczYsQIRo0aVfO/79V3yGnfvj2rVq3ipptuYtSoUTz33HO7/fwkSZIkSSoiAx7tkMbeIadv37706dOHffbZhyOOOILx48czY8aMrdq89957nHPOOey7777cdNNNNdu9Q44kSZIkSTvGKVr6QLZ3h5z3a5dS4txzz6WyspIHH3yQli1b1uzzDjmSJEmSJO0YR/Co0XbkDjkPPfQQlZWVADz//PNMmjSJ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\n", + "image/png": "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tddeO+uvv37WWGONZbqGgAcAAABYrCeffDLTp0/P+PHjs+WWW2b06NGpqpEu6xmjtZa5c+fmkUceyfTp0zNx4sRlCnm8osVSOeecczJ58uSsscYaefe7371Q3z/90z9l2223zbhx47LXXnvl3nvvXex1xo0bt9Bn1KhROeaYY5Ikt956ayZPnpzx48dn/Pjxee1rX5tbb711wdxPfepT2XHHHbP22mtnq622yqc+9akV8qwAAAAks2bNyvjx4zNhwoSsvvrqwp1hVlVZffXVM2HChIwfPz6zZs1apusIeFgqm2yySY4//vi85z3vWaj96quvzrHHHpvvfe97mTVrVrbaaqsceOCBi73OnDlzFnzuv//+jB07NgcccMCCe1x00UWZNWtWHnzwwbzlLW/JO9/5zgVzW2uZOnVq/vjHP+aHP/xhzjnnnFx44YUr5oEBAACe5WbPnp111llnpMt4VlhnnXUye/bsZZrrFS2Wyn777ZckmTZtWmbMmLGg/dJLL80BBxyQHXbYIUlywgknZNNNN83dd9+dbbbZZtBrXnTRRdloo42y++67J0nWW2+9rLfeekl6wpxRo0blrrvuWjD+Yx/72ILfX/CCF+Stb31rrrvuuoVCIAAAAIbHvHnzMnr06JEu41lh9OjRy7zHkYCHYdFaS2ttoe9JcvPNNy8x4JkyZUoOPfTQRZb5rbfeepkzZ06efvrpnHrqqYu977XXXpv3ve99y/kEAAAALI7XslaO5fk7r9RXtKpqjar6alXdU1Wzq+rGqtq7T/9rqur2qnqsqn5aVVsMcq31q+o7VfVo7/XetXKegoG84Q1vyLe+9a385je/yeOPP55TTz01VZXHHnts0HnTp0/P1VdfncMOO2yRvj/96U95+OGHc84552SnnXYacP7JJ5+cp59+OocffviwPAcAAAB00creg2e1JP+d5JVJ1k1yQpJvVdWWVTUhySW9besnmZbkXwe51heS/G+S5yY5KMkXq2qHFVg7g3jNa16TU045Jfvvv3+22GKLbLnllll77bWz2WabDTpv6tSp2W233bLVVlsN2L/WWmvl/e9/fw499NA88MADC/Wdc845mTp1an7wgx8s8zFyAAAA8EywUl/Raq09muTkPk3/r6p+l2TnJBskuaW19u0kqaqTkzxYVdu31m7ve52qWivJ/kl2bK3NSfKzqvp+kkOSfGKFPwgDOuqoo3LUUUclSe64446cfvrp2XHHHQedM3Xq1HziE4P/kz399NN57LHH8oc//CEbbbRRkuT888/PmWeemWuuuWaJIRIAAAArxpvP/tmI3v/SY3Zb5rnf/e5384//+I+5/fbbM3v27Gy00UbZaaed8v73vz977bVXkuSqq67KnnvuuWDOmDFjssEGG+RFL3pR9ttvvxx66KFZffXVF7n2o48+mrPOOivf/va3c+edd2bu3LnZYost8pd/+Zf5yEc+km233XaZ616cET1Fq6qem2S7JLck2SHJr+f39YZBd/e297ddknmttTv6tP16MWMZRk899VSeeOKJzJs3L/PmzcsTTzyxoO3mm29Oay3Tp0/PkUcemQ9/+MMZP378Yq/185//PH/4wx8WnJ4135VXXpkbb7wx8+bNyyOPPJKPfvSjGT9+fCZNmpQk+eY3v5ljjz02V155ZbbeeusV+rwAAAA885x11lnZd9998/znPz9f/epX84Mf/CDHH398kuQnP/nJgON/8Ytf5IorrshnPvOZbLLJJjnqqKOy6667ZubMmQuNve+++7Lrrrvm//7f/5s3vvGNueiii3L55ZfnQx/6UH7xi18s8r+Bh8uIbbJcVaOTfDPJlNba7VU1LsnMfsMeTrL2ANPH9fYNZWyq6sgkRybJxIkTl6fsZ73TTz89p5xyyoLv3/jGN3LSSSflIx/5SN71rnfl7rvvztprr53DDz88p5122oJxZ5xxRq699tpcfvnlC9qmTJmS/fbbL2uvvfA/25/+9Kccc8wxmTFjRsaOHZtddtklP/zhDzNmzJgkyfHHH5+HHnoou+yyy4I5Bx98cL70pS+tqMcGAADgGeTTn/509tlnn3z1q19d0PbqV786733ve/P0008vMn7SpEl52ctetuD7O97xjhxxxBHZc8898573vCeXXnrpgr5DDjkk9913X375y1/m+c9//oL2PffcMx/84Afzve99b4U804gEPFX1nCRfT88eOkf3Ns9Jsk6/oeskGegA+KUZm9baeUnOS5LJkye3gcYwNCeffHJOPvnkAft+85vfLHbescceu0jbl7/85QHHHnDAAYMmmr/73e8GLxIAAAAGMWvWrDzvec8bsO85zxnay05/8Rd/kQ984AP53Oc+l7vvvjvbbLNNfvnLX+bHP/5xPvWpTy0U7sxXVdlnn32Wq/bFWemvaFXPmV9fTc/myPu31ub2dt2S5MV9xq2VZJve9v7uSLJaVfX9a714MWMBAAAAFth1110zZcqUfOpTn8odd9yx5AmL8YY3vCFJct111yVJfvSjHyVJ3vKWtyx/kUtpJPbg+WKSSUne3Fp7vE/7d5LsWFX7V9WYJCcm+U3/DZaTBfvzXJLk1Kpaq6pekeSt6VkVBAAAALBYX/rSl7LtttvmYx/7WF7wghdkwoQJOfDAA3PFFVcs1XXmbwNz3333JUn++7//O0myxRZbDG/BQ7BSA56q2iLJ+5K8JMn/VNWc3s9BrbWZ6TkZ6++T/DHJnyd5Z5+5x1bV5X0u98EkY5M8kORfknygtWYFDwAAADCo7bbbLjfeeGOuvvrqHHfccXnJS16S73znO3n961+f008/fcjXaa1nF5iel5VG1so+Jv2eJIt96tbaj5Jsv5i+M/p9n5Vkxby4BgAAADyjjRo1KnvssUf22GOPJMm9996bvfbaK6ecckqOOuqoQU+Fnm/+ip2NN944SbL55psnSe65555st912K6jygY3YKVosuzef/bORLoEBXHrMbiNdAgAAAMtok002yV/91V/lwx/+cO68887suuuuS5zzgx/8IEnyile8Ikny2te+Nscdd1wuvfTS/M3f/M0Krbe/kdiDBwAAAGDEzF9509/tt/dsA7y4E7b6+sUvfpEvf/nL2WeffbL11lsn6dm8+TWveU3OOOOM3HXXXQPOe0Ydkw4AAAAwUnbcccfsueee2XfffbPVVlvlkUceyWWXXZYvfelLefvb375g8+T5brvttowbNy5PPfVU7rvvvlxxxRX5+te/nhe+8IX5yle+stDYr3/963nta1+bXXbZJcccc0x22223rL766rn99ttz/vnnZ+7cuXnrW9867M8k4AEAAACWSVe3qviHf/iHXHbZZTnxxBNz//33Z9SoUdluu+1y5pln5iMf+cgi4z/0oQ8lSdZYY41ssMEGefGLX5wvfOELOeSQQ7L66qsvNHbjjTfO9ddfn7POOivf/va385nPfCZPPfVUttxyy+y111758Ic/vEKeqebv+PxsMXny5DZt2rSRLmO52INn1dTV/2ADAAAYzG233ZZJkyaNdBnPGkv6e1fVr1prk/u324MHAAAAoOMEPAAAAAAdJ+ABAAAA6DgBDwAAAEDHCXgA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YQAAAAAMzVADnvWT3J8kVbVjkuclmdLb990kLxj+0gAAAAAYiqEGPA8l2az391cnube1dmfv99FLcR0AAAAAhtlqQxz3oyQnV9WEJH+TnlU7822f5J7hLgwAAACAoRnqypuPJfnvJJ9McneSU/r0HZTkZ8NcFwAAAABDNKQVPK21+5P85WK6X5vkiWGrCAAAAIClMtRXtBartfbIcBQCAAAAwLKxOTIAAABAxwl4AOisc845J5MnT84aa6yRd7/73Qv1/fjHP87222+fNddcM3vuuWfuuWfJ5wHceeedGTNmTA4++OCF2h977LF88EV8I8UAACAASURBVIMfzIQJE7Luuutmjz32WKj/hhtuyB577JFx48bluc99bj7/+c8v97MBAMDSEPAA0FmbbLJJjj/++LznPe9ZqP3BBx/Mfvvtl9NOOy2zZs3K5MmT8453vGOJ1zvqqKOyyy67LNJ+5JFHZtasWbntttsya9asfPazn13oXnvttVfe97735aGHHspdd92V173udcv/cAAAsBSWew8eABgp++23X5Jk2rRpmTFjxoL2Sy65JDvssEMOOOCAJMnJJ5+cCRMm5Pbbb8/2228/4LUuvPDCrLfeenn5y1+eu+66a0H7b3/723z/+9/PjBkzss466yRJdt555wX9//iP/5jXv/71Oeigg5Ika6yxRiZNmjS8DwoAAEtgBQ8Azzi33HJLXvziFy/4vtZaa2WbbbbJLbfcMuD4Rx55JCeeeGI+85nPLNJ3/fXXZ4sttshJJ52UCRMm5M/+7M9y8cUXL+j/93//96y//vp5+ctfno022ihvfvObM3369OF/KAAAGMRyBzxVdWhVWYsOwCpjzpw5WXfddRdqW3fddTN79uwBx59wwgk54ogjsvnmmy/SN2PGjNx8881Zd911c++99+acc87JYYcdlttuu21B/5QpU/L5z38+06dPz1ZbbZUDDzxw+B8KAAAGMRyvaH0tSauqW5L8fWvtX4fhmgCwzMaNG5dHHnlkobZHHnkka6+99iJjb7rppvzoRz/KjTfeOOC1xo4dm9GjR+f444/Paqutlle+8pXZc889c8UVV2TSpEkZO3Zs9t133wV798xf6fPwww8vEjIBAMCKMhwBz55J1kqyW5Kjkwh4ABhRO+ywQ6ZMmbLg+6OPPpq77747O+ywwyJjr7rqqvz+97/P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AAAAQMcJeAAAAAA6TsADAAAA0HECHgAAAICOE/AAAAAAdJyABwAAAKDjBDwAAAAAHSfgAQAAAOi4VSrgqao5/T7zqursxYx9d29/3/GvWsklAwAAAIy41Ua6gL5aa+Pm/15VayW5P8m3B5nyi9babiu8MAAAAIBV2Cq1gqeftyV5IMm1I10IAAAAdNmFF16YSZMmZa211so222yTa69d9H9qP/nkk/nrv/7rbLLJJhk/fnw++MEPZu7cuYuMu/POOzNmzJgcfPDBC9q++c1vZty4cQs+a665Zqoqv/rVr1boc/H/W5UDnsOSTG2ttUHG7FRVD1bVHVV1QlUNuCKpqo6sqmlVNW3mzJkrploAAABYBV155ZX5+Mc/ngsuuCCzZ8/ONddck6233nqRcWeeeWamTZuWm2++OXfccUduuOGGnH766YuMO+qoo7LLLrss1HbQQQdlzpw5Cz7nnntutt5667z0pS9dYc/FwlbJgKeqJiZ5ZZIpgwy7JsmOSTZKsn+SA5P83UADW2vntdYmt9Ymb7jhhsNdLgAAAKyyTjrppJx44ol52cteluc85znZdNNNs+mmmy4y7tJLL82HPvShrL/++tlwww3zoQ99KOeff/5CYy688MKst956ec1rXjPoPadMmZJDDz00VTWsz8LirZIBT5JDk/ystfa7xQ1orf1Xa+13rbWnW2v/meTU9LzWBQAAACSZN29epk2blpkzZ2bbbbfNZpttlqOPPjqPP/74ImNba+n7Ek1rLTNmzMjDDz+cJHnkkUdy4okn5jOf+cyg97znnntyzTXX5NBDDx3eh2FQq3LAM9jqnYG0JKJBAAAA6HX//fdn7ty5ueiii3Lttdfmpptuyo033jjgq1d77713Pv/5z2fmzJn5n//5n5x11llJksceeyxJcsIJJ+SII47I5ptvPug9p06dmt133z1bbbXV8D8Qi7XKBTxV9fIkm2bw07NSVXtX1XN7f98+yQlJvrfiKwQAAIBuGDt2bJLkmGOOycYbb5wJEybkox/9aC677LJFxh533HHZaaed8pKXvCQvf/nLs88++2T06NHZaKONctNNN+VHP/pR/vqv/3qJ95w6dWoOO+ywYX8WBrdKHZPe67Akl7TWZvdt7N2X59YkL2ytTU/ymiRfq6px6TlO/RtJzljZxQIAAMCqavz48dlss82GtBfO2LFjc8455+Scc85Jkpx33nnZeeedM2rUqFx11VX5/e9/n4kTJyZJ5syZk3nz5uXWW2/NDTfcsOAa1113Xe6999687W12UFnZVrmAp7X2vsW0T08yrs/3v03ytyurLgAAAOiiww8/PGeffXb22muvjB49Op/73Ofypje9aZFxf/jDH1JV2XjjjXP99dfntNNOy1e/+tUkyZFHHpl3vvOdC8Z++tOfzu9///t88YtfXOgaU6ZMyf7775+11157xT4Ui1jlAh4AAABg+Jxwwgl58MEHs91222XMmDF5+9vfnuOOOy7Tp0/PC1/4wtx6662ZOHFi7r777hx66KF54IEHsvnmm+fMM8/M6173uiTJmmuumTXXXHPBNceNG5cxY8ak70nVTzzxRL71rW/l4osvXunPSFJ9d8h+Npg8eXKbNm3aSJexXN589s9GugQGcOkxu410CbDS+c+jVZf/TAIAeGaqql+11ib3b1/lNlkGAAAAYOkIeAAAAAA6TsADAAAA0HECHgAAAICOE/AAAAAAdJxj0gEAAGAYOWl01fVMPmnUCh4AAACAjhPwAADACnLhhRdm0qRJWWuttbLNNtvk2muvXWTMlClTsvPOO2edddbJZpttlo997GN56qmnFvSPGzduoc+oUaNyzDHHJEm++c1vLtS35pprpqryq1/9aqU9IwCrBgEPAACsAFdeeWU+/vGP54ILLsjs2bNzzTXXZOutt15k3GOPPZbPfe5zefDBB3P99dfnxz/+cT796U8v6J8zZ86Cz/3335+xY8fmgAMOSJIcdNBBC/Wfe+652XrrrfPSl750pT0nAKsGe/AAAMAKcNJJJ+XEE0/My172siTJpptuOuC4D3zgAwt+33TTTXPQQQflpz/96YBjL7roomy00UbZfffdB+yfMmVKDj300FTVclYPQNdYwQMAAMNs3rx5mTZtWmbOnJltt902m222WY4++ug8/vjjS5x7zTXXZIcddhiwb7AA55577sk111yTQw89dLnrB6B7BDwAADDM7r///sydOzcXXXRRrr322tx000258cYbc/rppw8674ILLsi0adPyt3/7t4v0TZ8+PVdffXUOO+ywAedOnTo1u+++e7baaqtheQYAukXAAwAAw2zs2LFJkmOOOSYbb7xxJkyYkI9+9KO57LLLFjvnu9/9bj7xiU/k8ssvz4QJExbpnzp1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\n", "text/plain": [ "
" ] @@ -462,7 +461,7 @@ } ], "source": [ - "from performance import Plotter\n", + "from plotting import Plotter\n", "\n", "pl = Plotter('read_csv')\n", "pl.plot_performance()" @@ -481,7 +480,7 @@ "metadata": {}, "outputs": [], "source": [ - "@hpat.jit\n", + "@numba.jit\n", "def data_describe(df):\n", " # Drop not numerical values from dataframe\n", " df = df[['altitude', 'cadence', 'cadence', 'distance', 'hr', 'latitude', 'longitude', 'power', 'speed']]\n", @@ -491,12 +490,12 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [ { "data": { - "image/png": "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/UB/0G9SEVOz+gefIwAAvLlMnDgxH/7wh5fot8D999+fAQMGZJNNNlm4beutt85NN920SLvVVlsts2bNyvz58/Ov//qvb7hmWB71m4AHAACAZpkyZUpuuummV5x+9VpmzZqVYcOGLbJt2LBhiy378Mwzz2T27NmZOHFi1l9//SWuF5ZnAh4AAAD6xI9+9KOMHTs2o0ePXqLjOzo6MnPmzEW2zZw5M0OHDl2s7SqrrJIjjjgiI0aMyH333Ze11lpric4Jy6t+HfC898zf9On5rzl67BIfe8EFF+TQQw9d+L6joyMbbrhh/vEf/zFHHHFEr645VErJF7/4xZx44om9dk4AAKD/+9GPfpTPfvazS3z8Jptsknnz5uWBBx7IxhtvnCS5++67s8UWW3Tbfv78+Xn++efzpz/9ScBDv9MvnqLVn1122WW59dZbc8UVV2T77bfP0Ucfbc4oAADQeL/97W/zpz/96RWfnrVArTVz5szJSy+9lKT1FOUXX3wxSWtUzn777ZcvfOELmT17dm655ZZcffXVGT9+fJLkhhtuyJ133pmXX345M2fOzKc+9amsvvrq2XzzzZftxUEfEPAs57bZZpu8/e1vz+67757vfe972WmnnXL66af3dVkAAABvyMSJE7PffvstNp1qypQp6ejoyJQpU5Ikjz76aIYMGbJwVM6QIUOy6aabLmx/9tln54UXXshaa62VAw44IOecc87Cts8880wOOOCADBs2LH/1V3+VBx98MP/n//yfrLTSSr10ldB7BDwNs9122+W5557Lk08+mUsvvTS77LJLRowYkY6Ojmy77baZOHHiYseUUnLCCSfkjDPOyOjRozN06NC8+93vzj333LNIu5dffjknnHBCRo4cmZVXXjk77bTTYm2S5MEHH8z48eMzevToDBkyJBtuuGGOPPLIPP3004u0u/3227PbbrtlzTXXzMorr5wNN9wwEyZMWLo3BAAAaKRzzz03F1544WLb11tvvcyaNSvrrbdekmSDDTZIrXWR1yOPPLKw/RprrJGf/exnmT17dqZMmZIPfehDC/d94AMfyOTJkzNr1qxMnz491113Xbbaaqtlfm3QF/r1Gjz90R//+McMGDAgHR0defjhh/P+978/n/3sZ7PCCivkP//zP/ORj3wkL7zwQo444ohFjrvooouy6aab5tvf/nZeeumlfPrTn84+++yTyZMnL1zP58QTT8ypp56aT33qU9l9990zadKkvO9971ushieeeCKjRo3K6aefntVXXz0PP/xwTj311Oy111659dZbk7RWs99jjz2y/fbb54ILLsjQoUPzyCOP5Le//e2yv0kAAADwJiPgWc69/PLLmTdvXp577rn89Kc/zZVXXpn3vve9WXnllXPcccctbDd//vzstNNOmTp1as4555zFAp5Bgwbl2muvzaBBgxZu+8AHPpDbbrstO+ywQ55++ul861vfykc/+tF8/etfT5LsvvvuGTBgwGKLnr3rXe/Ku971roXvd9hhh2y00UbZcccdc+edd2bbbbfN5MmT8/TTT+drX/vaIgn5IYccsjRvDwAAABBTtJZ7m222WQYNGpQ11lgjEyZMyIEHHpjzzz8/SfLAAw/kgAMOyDrrrJNBgwZl0KBB+f73v58//OEPi/Wz2267LRLuvO1tb0uShfNa/+d//iezZ8/OuHHjFjlu//33X6yvl156Kaeeemo222yzDBkyJIMGDcqOO+6YJAvPvfHGG2e11VbLxz72sVx00UV57LHHlsLdAAAAALoj4FnOXXXVVbn99tszefLkzJ49Oz/60Y+yxhprZNasWdltt91y99135ytf+Upuvvnm3H777TnssMMWrijf2RprrLHI+xVXXDFJawX6JJk6dWqS5C1vecsi7bq+T5LPfe5zOfHEE3PQQQfl5z//eW677bZceeWVi/Q3bNiw/PrXv85b3/rWTJgwIeutt1623HLLXHHFFW/wjgAAAABdmaK1nNtyyy2z0UYbLbb91ltvzaOPPpqbb745Y8eOXbh93rx5S3SekSNHJkmmTZu2cMX5Be+7uvTSS/PhD384J5xwwsJts2bNWqzdNttskyuuuCLz5s3LpEmT8uUvfznjxo3L3XffnS233HKJ6gQAAJaO9575m74u4U3pmqPHvnYjWAJG8DTU888/nySLTLt6+umnc/XVVy9Rf1tttVVWWWWV/PSnP11k+6WXXtrtuTufN0l++MMfvmLfAwcOzNvf/vacfPLJmT9/fu67774lqhEAAADonhE8DbXDDjtk1VVXzcc//vGcdNJJmT17dk455ZQMHz48zz777Ovub7XVVss//dM/5Utf+lKGDh2a3XffPbfffnt+8IMfLNZ2zz33zMSJE/O2t70tG220Ua688srFno517bXX5rzzzsu+++6b0aNHZ/bs2TnjjDMydOjQvOMd71ji6wYAAAAW168Dnv489G3EiBG56qqr8s///M95//vfn7e+9a355Cc/mRkzZuSkk05aoj5PPPHE1Frz/e9/P2eddVb+9m//Ntdcc80iU7aS5Mwzz0ytNccff3ySZK+99soll1yS7bfffmGbjTfeOEOGDMnJJ5+cqVOnZujQodluu+1yww03ZNSoUUt+4QAAAMBiSq21905WSteFWoYkObvWevSrHTdmzJg6adKkV9x/3333ZfPNN18KFbI88HkCAMCyZw2evtGfByLQO0opd9Rax3Td3qsjeGqtHZ0KWiXJtCSX9WYNAAAAAP1NXy6y/P4kTya5uQ9rAAAAAGi8vgx4Dk7yo/oKc8RKKR8tpUwqpUyaPn16L5cGAAAA0Bx9EvCUUtZL8u4kE1+pTa31vFrrmFrrmBEjRvRecQAAAAAN01cjeD6c5De11j/20fkBAAAA+o2+DHhecfQOAAAAAD3X6wFPKWWHJOvE07MAAAAAloq+GMFzcJIra63P9cG5AQAAAPqdgb19wlrrx3r7nAAAAAD9WV8+Jh0AAACApaDXR/D0qnPf3bfn/9hNS3zoz372s3zzm9/M5MmT89xzz2WttdbKtttumyOOOCJ77rlnkuQ//uM/svPOOy88ZqWVVsqaa66ZrbbaKvvtt18+/OEPZ/DgwYv1PXv27Jxxxhm57LLL8sADD2Tu3LlZf/31s9tuu+WYY47JRhtttMR1AwAAAL2vfwc8DXXGGWfkk5/8ZA477LB8+tOfziqrrJKHHnooP//5z/OrX/1qYcDTuf12222XuXPn5oknnsgNN9yQj3/84znrrLNyww03ZMSIEQvbTp06NbvuumueeOKJHHXUURk7dmwGDx6ce++9N+eff35uueWW3Hnnnb19yQAAAMAbIOBZDn3961/Pvvvumx/84AcLt+2yyy75x3/8x8yfP3+x9ptvvnne/va3L3z/wQ9+MIcffnh23nnnHHbYYbnmmmsW7hs/fnymTp2a2267LRtvvPHC7TvvvHMmTJiQq6++ehldFQAAALCsWINnOTRjxoysvfba3e5bYYWefWTveMc7cuSRR+baa6/NQw89lCS57bbb8stf/jLHHXfcIuHOAqWU7LvvvkteOAAAANAnBDzLoe233z4TJ07Maaedlvvvv3+J+9lrr72SJLfcckuS5MYbb0ySvO9973vjRQIAAADLDQHPcui73/1uNtpoo3zmM5/JpptumuHDh+eAAw7I9ddf/7r6WW+99ZK01t1JksceeyxJsv766y/dggEAAIA+JeBZDm2yySa58847c9NNN+X444/PNttsk6uuuip77LFHTjnllB73U2tN0pp6BQAAAPRfAp7l1IABA/Kud70rp5xySm688cY8/PDDedvb3paTTjopTz/9dI/6WDBiZ+TIkUmSddddN0ny6KOPLpuiAQAAgD4h4GmIt771rfnIRz6SefPm5YEHHujRMT//+c+TJO985zuTJLvuumuSLPJULQAAAKD5BDzLoQUjb7qaPHlykrziE7Y6u/XWW3Puuedm3333zYYbbpiktXjze97znpx66ql58MEHuz3OY9IBAACgeQb2dQEsbsstt8zOO++cf/iHf8jo0aMzc+bMXHfddfnud7+bcePGLVw8eYH77rsvHR0dmTdvXqZOnZrrr78+F154Yf76r/863/ve9xZpe+GFF2bXXXfNdtttl6OPPjpjx47N4MGDM3ny5Jx//vmZO3du9tlnn968XAAAAOAN6t8Bz8du6usKlshXv/rVXHfddfnCF76QadOmZcCAAdlkk03yla98Jcccc8xi7T/xiU8kSVZcccWsueaa2XrrrfOd73wn48ePz+DBgxdpO3LkyPzud7/LGWeckcsuuyzf+MY3Mm/evGywwQbZc88988lPfrJXrhEAAABYesqCJy0tz8aMGVMnTZr0ivvvu+++bL755r1YEcuSzxMAAJa99575m74u4U3pmqPH9nUJufTSS3PSSSdlypQpWXvttXPBBRdkxx13fMX2u+yyS379619n7ty5GTiwNU7kkUceyYQJE3LrrbdmxRVXzPvf//6cfvrpGThwYB555JGMHj06q6yyysI+jj322Hz+859f5tf2ZlBKuaPWOqbr9v49ggcAAABY6IYbbsixxx6bn/zkJ9l+++0zderUV21/8cUXZ968eYttnzBhQtZaa61MnTo1zzzzTHbbbbecffbZC2eYJMkzzzyzMBBi2bPIMgAAALxJfPGLX8wXvvCFvP3tb88KK6yQddZZJ+uss063bZ999tmcdNJJ+drXvrbYvj/+8Y8ZN25cVlpppay99trZc889c8899yzr8nkVAh4AAAB4E3j55ZczadKkTJ8+PRtttFFGjRqVo446Ki+88EK37Y877rgceeSR3T7J+ZOf/GQuvfTSPP/88/nTn/6UX/ziF9lzzz0XabP++utn1KhROfTQQ/PUU08tk2viLwQ8AAAA8CYwbdq0zJ07N5dffnluvvnm3HXXXbnzzjtzyimnLNZ20qRJueWWW3L00Ud329e73/3u3HPPPVl11VUzatSojBkzJvvuu2+SZPjw4bn99tvz6KOP5o477shzzz2XAw88cJleG/0o4GnCYtG8Np8jAADAsjFkyJAkydFHH52RI0dm+PDh+dSnPpXrrrtukXbz58/PhAkT8k7aQK4AACAASURBVO1vf7vbNXTmz5+fPfbYI/vtt19mz56dp556Kk8//XSOPfbYJElHR0fGjBmTgQMH5i1veUvOOuusXH/99Zk5c+ayv8g3sX4R8AwaNOgVh5TRLC+88EJWXHHFvi4DAACg31l99dUzatSolFJetd3MmTMzadKkfPCDH8zaa6+d7bbbLkkyatSo3HzzzZkxY0Yee+yxHHXUUVlxxRWz5ppr5tBDD10sKFpgwfn8H/rLVr8IeNZaa6386U9/yvPPP+8L00C11sydOzczZszI448/njXXXLOvSwIAAOiXDj300Jx55pl58skn8/TTT+f000/P3nvvvUibYcOG5Yknnshdd92Vu+66a2Fwc8cdd+Rv//ZvM3z48IwePTrnnHNO5s2bl2eeeSYTJ07M1ltvnST53e9+lz/84Q+ZP39+/vznP+cTn/hEdtpppwwbNqzXr/fNpF88r2zVVVdNkjzxxBOZO3duH1fDkhg4cGBWWmmlrLfeellppZX6uhwAAIB+6fOf/3yeeuqpbLLJJllppZUybty4HH/88ZkyZUr++q//Ovfee2/WW2+9RRZWnjNnTpLkLW95y8IpW1deeWWOOeaYfPWrX82AAQOy884751vf+laS5OGHH85xxx2XJ598Mquuump22223XHLJJb1/sW8ypQkjXsaMGVMnTZrU12UAAAD0G+898zd9XcKb0jVHj+3rEmi4UsodtdYxXbf3iylaAAAAAG9mAh4AAACAhhPwAAAAADScgAcAAACg4frFU7QAAACgEc59d19X8Ob1sZv6uoJlyggeAAAAgIYT8AAAAAA0nIAHAAAAoOEEPAAAAAANJ+ABAAAAaDgBDwAAAEDDCXgAAAAAGk7AAwAA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n83DDz+cefPm5YQTTkiSzJs3L+uuu25uuummPPvsszn55JMzbty4PPLII4v08dBDD+Xyyy/PyJEje+PSAGC519OAZ/RrvDZcJtUBANAYW2yxRVZcccUkSSklpZQ89NBDi7Vbd911M3z48IXvBwwYkAcffDBJssoqq+TEE0/MBhtskBVWWCF77713Ro8evVhQdNRRR+WrX/1qBg8evAyvCACao0dP0aq1PrqsCwEAoPkmTJiQCy64IC+88EK23Xbb7LXXXt22+81vfpO///u/z8yZM7Pyyivnqquu6rbdtGnTcv/992eLLbZYuO2yyy7L4MGDX7FvAHgz6ukIHgAAeE1nn312nnvuudx8883Zb7/9Fo7o6Wrs2LF59tln8/jjj+fTn/50Nthgg8XazJ07NwceeGAOPvjgbLbZZkmSWbNm5bjjjsvpp5++LC8DABrnFQOeUsrDpZSt23//sf3+lV6Lj70FAOBNacCAARk7dmwef/zxnHPOOa/adp111smee+6Z/ffff5Ht8+fPz/jx4zN48OCcddZZC7d/8YtfzPjx4zN69OhlUjsANNWrTdG6KcnMTn/XZV8OAAD9xbx587pdg+e12tVac/jhh2fatGm57rrrMmjQoIX7fvnLX+bxxx/P2WefnSSZPn16xo0bl2OPPTbHHnvs0r8IAGiIVwx4aq2Hdvr7kF6pBgCARnryySfzq1/9KnvvvXeGDBmSG2+8MZdcckl+/OMfL9b24osvzo477ph11103U6ZMyfHHH5/3vOc9C/cfeeSRue+++3LjjTdmyJAhixz7y1/+MnPnzl34frvttss3v/nN/N3f/d2yuzgAaIAeTdECAIBXU0rJOeeck1GjRmX11VfPv/zLv+T000/PPvvskylTpqSjoyNTpkxJktx7773ZYYcd0tHRkXe+853ZdNNN873vfS9J8uijj+bcc8/NXXfdlbXXXjsdHR3p6OjIxRdfnCRZc801s/baay98DRgwIKuvvno6Ojr67NoBYHlQau1+5lUpZX6St9dab+vdkhY3ZsyYOmnSpL4uAwAAoN9475m/6esS3pSuGXx8X5fw5vWxm/q6gqWilHJHrXVM1+2eogUAAADQcK8V8FhYGQAAAGA592pP0UqSk0opT/Wgn1prPXhpFAQAAADA6/NaAc82SV7sQT9G+gAAAAD0kdcKePZdHhZZBgDgtVkwtW9cc/TYvi4BACyyDAAAANB0Ah4AAACAhhPwAAAAADTcK67BU2sV/gAAAAA0gBAHAAAAoOEEPAAAAAANJ+ABAAAAaDgBDwAAAEDDCXgAAAAAGk7AAwAAANBwAh4AAACAhhPwAAAAADScgAcAAACg4QQ8AAAAAA0n4AEAgH7ixRdfzOGHH571118/Q4cOzbbbbptf/OIX3batteaEE07IOuusk2HDhmWnnXbKPffcs3D/fffdl1122SXDhg3LRhttlKuuuqq3LgOAJSDgAQCAfmLevHlZd911c9NNN+XZZ5/NySefnHHjxuWRRx5ZrO1ll12W888/PzfffHNmzJiRd7zjHRk/fvzCfvbZZ5/svffemTFjRs4777wcdNBBuf/++3v5igDoKQEPAAD0E6usskpOPPHEbLDBBllhhRWy9957Z/To0bnjjjsWa/vHP/4xY8eOzYYbbpgBAwbkoIMOyr333pskmTx5cp544on80z/9UwYMGJBddtkl73znO3PhhRf29iUB0EO9HvCUUi4qpUwtpcwspdxfSvlIb9cAAABvBtOmTcv999+fLbbYYrF9+++/fx588MHcf//9mTt3biZOnJg999wzSWv6Vle11vz+979f5jUDsGT6YgTPl5NsUGtdNcn7kpxSSvlffVAHAAD0W3Pnzs2BBx6Ygw8+OJttttli+0eOHJkdd9wxm266aYYMGZLLLrss3/rWt5Ikm222WdZaa62cdtppmTt3bq6//vrcdNNNef7553v7MgDooV4PeGqt99RaX1zwtv36q96uAwAA+qv58+dn/PjxGTx4cM4666xu25x00km5/fbb89hjj2XOnDn54he/mF122SXPP/98Bg0alJ/97Gf5+c9/nrXXXjvf+MY3Mm7cuIwaNaqXrwSAnuqTNXhKKWeXUp5PMjnJ1CTX9UUdAADQ39Rac/jhh2fatGm54oorMmjQoG7b3X333fngBz+YUaNGZeDAgTnkkEPy9NNPL1yHZ6uttspNN92UP//5z/n3f//3PPzww9l+++1781IAeB36JOCptU5IMjTJjkmuTPJi1zallI+WUiaVUiZNnz69t0sEAIBGOvLII3PfffflmmuuyZAhQ16x3XbbbZfLLrss06ZNy/z583PhhRdm7ty52WijjZIk//3f/505c+bk+eefz9e//vVMnTo1hxxySC9dBQCv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eU36sFLKyCRtSdpKKSNLKYKmXWjSpEnp6urKz372s962hx9+eLNHq15q/7M/+7O85jWvybBhwzJ9+vT89re/7d2Hp9aas846K8uWLcu8efOy++67v+x1N2zYkNWrV+fpp5/e+ZMCAAAAerViD54ZSdYk+askp/f8PqMFdQwZo0ePztSpU/PpT386q1atyn333Zfbbrut9+1Yfb3lLW/JzTffnGXLlmXDhg2ZO3du1q1bl9e97nVJknPPPTeLFi3K7bffnlGjRm107l133ZUHH3ww69evz4oVK3LhhRdm7NixOfTQQ/tlngAAADBUteI16ZfUWssmn0v6u46h5uqrr86aNWsyfvz4nHbaabnmmmty2GGHpbOzM+3t7ens7EySXHTRRTn88MNzxBFHZMyYMbnyyiszb968jBkzJk8++WSuu+66PPTQQ9l7773T3t6e9vb23HjjjUm699457bTT0tHRkde+9rVZsmRJ7rjjjowcObKVU2+55cuX533ve19Gjx6dCRMm5Kabbtpiv3POOaf3v2l7e3tGjBix0WN02zvOpZdemlJKvve97+2S+QAAADDweDRqiNhzzz1z6623btZ+wAEHZOXKlb3fR44cmauuuipXXXXVZn0nTJiQWuvLXuPkk0/OySefvHMKHkTOO++8DB8+PMuWLctDDz2Ud77znTn88MM3e0Tu2muvzbXXXtv7ffr06dltt912aJzHH388t9xyS/bZZ59dPzEAAAAGjAH7mnQYDFatWpV58+bl8ssvT3t7e6ZMmZKTTjopc+fO3a7zpk2btkPjnH/++fnMZz6T4cOH77I5AQAAMPAIeGAXWrx4cdra2jJp0qTetsMPPzyPPfbYVs+bN29exo0bl2OOOWa7x7n55pszfPjwnHjiiTt5FgAAAAx0HtGCXWjlypXp6OjYqK2joyMvvPDCVs+bPXt2zjzzzJRStmuclStX5hOf+ETuvPPOnVg9AAAATWEFD+xC7e3tWbFixUZtK1as2Gjz5E099dRTmT9/fs4888ztHufiiy/OGWeckQMPPHAnVg8AAEBTWMHTj979uXtbXcKQdPsFU1p27UmTJqWrqys/+9nP8vrXvz5J8vDDD2+2wXJfc+bMyVFHHZWDDjpou8e5++67s3Tp0lx99dVJkmeffTannHJKLrroolx00UW7anoAAAAMEAIe2IVGjx6d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\n", + "image/png": "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JhUxNat/8DkCAACseBMnTswHP/jBpfoNdv/992fAgAHZYostFm7bbrvtctNNNy3Sbq211sqsWbMyf/78/Ou//usy18yr6zcBDwAAAPDapkyZkptuuukVp1+9llmzZmXYsGGLbBs2bNhiy20888wzmT17diZOnJiNN954qeulZwQ8AAAA8Drywx/+MGPHjs3o0aOX6viOjo7MnDlzkW0zZ87M0KFDF2u7xhpr5KijjsqIESNy3333Zb311luqc/La+nXA8+6zftOn57/m2LFLfeyFF16Yww8/fOH7jo6ObLrppvnHf/zHHHXUUb265lApJZ///Odz8skn99o5AQAAWDF++MMf5tOf/vRSH7/FFltk3rx5eeCBB7L55psnSe6+++5ss8023bafP39+nn/++fzpT38S8KxA/eIpWv3Z5ZdfnltvvTVXXnlldtpppxx77LHmLgIAALBUfvvb3+ZPf/rTKz49a4Faa+bMmZOXXnopSevp1S+++GKS1qicAw44IJ/73Ocye/bs3HLLLfnZz36W8ePHJ0luuOGG3HnnnXn55Zczc+bMfOITn8jaa6+drbfeesVe3OucgGclt/322+ctb3lL9tprr3z3u9/NrrvumjPOOKOvywIAAKCBJk6cmAMOOGCx6VRTpkxJR0dHpkyZkiR59NFHM2TIkIWjcoYMGZItt9xyYftzzjknL7zwQtZbb70cdNBBOffccxe2feaZZ3LQQQdl2LBh+au/+qs8+OCD+T//5/9ktdVW66WrfH0S8DTMjjvumOeeey5PPvlkLrvssuy+++4ZMWJEOjo6ssMOO2TixImLHVNKyUknnZQzzzwzo0ePztChQ/OOd7wj99xzzyLtXn755Zx00kkZOXJkVl999ey6666LtUmSBx98MOPHj8/o0aMzZMiQbLrppjn66KPz9NNPL9Lu9ttvz5577pl11103q6++ejbddNNMmDBh+d4QAAAAeuy8887LRRddtNj2jTbaKLNmzcpGG22UJNlkk01Sa13k9cgjjyxsv8466+SnP/1pZs+enSlTpuQDH/jAwn3ve9/7Mnny5MyaNSvTp0/Pddddl2233XaFX9vrXb9eg6c/+uMf/5gBAwako6MjDz/8cN773vfm05/+dFZZZZX853/+Zz70oQ/lhRdeyFFHHbXIcRdffHG23HLLfOtb38pLL72UT37yk9lvv/0yefLkhev5nHzyyTn99NPziU98InvttVcmTZqU97znPYvV8MQTT2TUqFE544wzsvbaa+fhhx/O6aefnn322Se33nprktaq6u9617uy00475cILL8zQoUPzyCOP5Le//e2Kv0kAAADwOiPgWcm9/PLLmTdvXp577rn85Cc/yVVXXZV3v/vdWX311XPCCScsbDd//vzsuuuumTp1as4999zFAp5Bgwbl2muvzaBBgxZue9/73pfbbrstO++8c55++ul885vfzIc//OF87WtfS5LstddeGTBgwGKLb7397W/P29/+9oXvd95552y22WbZZZddcuedd2aHHXbI5MmT8/TTT+crX/nKIkntYYcdtjxvDwAAABBTtFZ6W221VQYNGpR11lknEyZMyMEHH5wLLrggSfLAAw/koIMOygYbbJBBgwZl0KBB+d73vpc//OEPi/Wz5557LhLuvPnNb06ShfMr/+d//iezZ8/OuHHjFjnuwAMPXKyvl156Kaeffnq22mqrDBkyJIMGDcouu+ySJAvPvfnmm2ettdbKRz7ykVx88cV57LHHlsPdAAAAALoj4FnJXX311bn99tszefLkzJ49Oz/84Q+zzjrrZNasWdlzzz1z991350tf+lJuvvnm3H777TniiCMWrmze2TrrrLPI+1VXXTVJayX0JJk6dWqS5A1veMMi7bq+T5LPfOYzOfnkk3PIIYfk5z//eW677bZcddVVi/Q3bNiw/PrXv84b3/jGTJgwIRtttFHe9KY35corr1zGOwIAAAB0ZYrWSu5Nb3pTNttss8W233rrrXn00Udz8803Z+zYsQu3z5s3b6nOM3LkyCTJtGnTFq58vuB9V5dddlk++MEP5qSTTlq4bdasWYu123777XPllVdm3rx5mTRpUr74xS9m3Lhxufvuu/OmN71pqeoEAABosnef9Zu+LuF165pjx752owYzgqehnn/++SRZZNrV008/nZ/97GdL1d+2226bNdZYIz/5yU8W2X7ZZZd1e+7O502SH/zgB6/Y98CBA/OWt7wlp556aubPn5/77rtvqWoEAAAAumcET0PtvPPOWXPNNfPRj340p5xySmbPnp3TTjstw4cPz7PPPrvE/a211lr5p3/6p3zhC1/I0KFDs9dee+X222/P97///cXa7r333pk4cWLe/OY3Z7PNNstVV1212NOxrr322px//vnZf//9M3r06MyePTtnnnlmhg4dmre+9a1Lfd0AAADA4vp1wNOfh1+NGDEiV199df75n/85733ve/PGN74xH//4xzNjxoyccsopS9XnySefnFprvve97+Xss8/O3/7t3+aaa65ZZMpWkpx11lmptebEE09Mkuyzzz659NJLs9NOOy1ss/nmm2fIkCE59dRTM3Xq1AwdOjQ77rhjbrjhhowaNWrpLxwAAABYTKm19t7JSum6UMuQJOfUWo99tePGjBlTJ02a9Ir777vvvmy99dbLoUJWBj5PAACgv7IGT9/pL4NASil31FrHdN3eqyN4aq0dnQpaI8m0JJf3Zg0AAAAA/U1fLrL83iRPJrm5D2sAAAAAaLy+DHgOTfLD+gpzxEopHy6lTCqlTJo+fXovlwYAAADQHH0S8JRSNkryjiQTX6lNrfX8WuuYWuuYESNG9F5xAAAAAA3TVyN4PpjkN7XWP/bR+QEAAAD6jb4MeF5x9A4AAAAAPdfrAU8pZeckG8TTswAAAACWi74YwXNokqtqrc/1wbkBAAAA+p2BvX3CWutHevucAAAAAP1ZXz4mHQAAAIDloNdH8PSq897Rt+f/yE1LfehPf/rTfOMb38jkyZPz3HPPZb311ssOO+yQo446KnvvvXeS5D/+4z+y2267LTxmtdVWy7rrrpttt902BxxwQD74wQ9m8ODBi/U9e/bsnHnmmbn88svzwAMPZO7cudl4442z55575rjjjstmm2221HUDAAAAva9/BzwNdeaZZ+bjH/94jjjiiHzyk5/MGmuskYceeig///nP86tf/WphwNO5/Y477pi5c+fmiSeeyA033JCPfvSjOfvss3PDDTdkxIgRC9tOnTo1e+yxR5544okcc8wxGTt2bAYPHpx77703F1xwQW655ZbceeedvX3JAAAAwDIQ8KyEvva1r2X//ffP97///YXbdt999/zjP/5j5s+fv1j7rbfeOm95y1sWvn//+9+fI488MrvttluOOOKIXHPNNQv3jR8/PlOnTs1tt92WzTfffOH23XbbLRMmTMjPfvazFXRVAAAAwIpiDZ6V0IwZM7L++ut3u2+VVXr2kb31rW/N0UcfnWuvvTYPPfRQkuS2227LL3/5y5xwwgmLhDsLlFKy//77L33hAAAAQJ8Q8KyEdtppp0ycODFf/epXc//99y91P/vss0+S5JZbbkmS3HjjjUmS97znPcteJAAAALDSEPCshL7zne9ks802y6c+9alsueWWGT58eA466KBcf/31S9TPRhttlKS17k6SPPbYY0mSjTfeePkWDAAAAPQpAc9KaIsttsidd96Zm266KSeeeGK23377XH311XnXu96V0047rcf91FqTtKZeAQAAAP2XgGclNWDAgLz97W/PaaedlhtvvDEPP/xw3vzmN+eUU07J008/3aM+FozYGTlyZJJkww03TJI8+uijK6ZoAAAAoE8IeBrijW98Yz70oQ9l3rx5eeCBB3p0zM9//vMkydve9rYkyR577JEkizxVCwAAAGg+Ac9KaMHIm64mT56cJK/4hK3Obr311px33nnZf//9s+mmmyZpLd78zne+M6effnoefPDBbo/zmHQAAABonoF9XQCLe9Ob3pTddtst//AP/5DRo0dn5syZue666/Kd73wn48aNW7h48gL33XdfOjo6Mm/evEydOjXXX399Lrroovz1X/91vvvd7y7S9qKLLsoee+yRHXfcMccee2zGjh2bwYMHZ/Lkybngggsyd+7c7Lfffr15uQAAAMAy6t8Bz0du6usKlsqXv/zlXHfddfnc5z6XadOmZcCAAdliiy3ypS99Kccdd9xi7T/2sY8lSVZdddWsu+662W677fLtb38748ePz+DBgxdpO3LkyPzud7/LmWeemcsvvzxf//rXM2/evGyyySbZe++98/GPf7xXrhEAAABYfsqCJy2tzMaMGVMnTZr0ivvvu+++bL311r1YESuSzxMAAF4fLrvsspxyyimZMmVK1l9//Vx44YXZZZddXrH97rvvnl//+teZO3duBg5sjVd45JFHMmHChNx6661ZddVV8973vjdnnHFGBg4cmEceeSSjR4/OGmussbCP448/Pp/97GdX+LW9knef9Zs+O/fr3TXHju3rEpaLUsodtdYxXbf37xE8AAAArJRuuOGGHH/88fnxj3+cnXbaKVOnTn3V9pdccknmzZu32PYJEyZkvfXWy9SpU/PMM89kzz33zDnnnLNwpkOSPPPMMwsDIeivLLIMAABAr/v85z+fz33uc3nLW96SVVZZJRtssEE22GCDbts+++yzOeWUU/KVr3xlsX1//OMfM27cuKy22mpZf/31s/fee+eee+5Z0eXDSkfAAwAAQK96+eWXM2nSpEyfPj2bbbZZRo0alWOOOSYvvPBCt+1POOGEHH300d0+UfjjH/94Lrvssjz//PP505/+lF/84hfZe++9F2mz8cYbZ9SoUTn88MPz1FNPrZBrgr4m4AEAAKBXTZs2LXPnzs0VV1yRm2++OXfddVfuvPPOnHbaaYu1nTRpUm655ZYce+yx3fb1jne8I/fcc0/WXHPNjBo1KmPGjMn++++fJBk+fHhuv/32PProo7njjjvy3HPP5eCDD16h1wZ9pd8EPE1YLJrX5nMEAID+b8iQIUmSY489NiNHjszw4cPziU98Itddd90i7ebPn58JEybkW/JhiXUAACAASURBVN/6Vrdr6MyfPz/vete7csABB2T27Nl56qmn8vTTT+f4449PknR0dGTMmDEZOHBg3vCGN+Tss8/O9ddfn5kzZ674i4Re1i8CnkGDBr3iUD6a5YUXXsiqq67a12UAAAAr0Nprr51Ro0allPKq7WbOnJlJkybl/e9/f9Zff/3suOOOSZJRo0bl5ptvzowZM/LYY4/lmGOOyaqrrpp11103hx9++GJB0QILzuf/WKY/6hcBz3rrrZc//elPef755/2H2kC11sydOzczZszI448/nnXXXbevSwIAAFawww8/PGeddVaefPLJPP300znjjDOy7777LtJm2LBheeKJJ3LXXXflrrvuWhjc3HHHHfnbv/3bDB8+PKNHj865556befPm5ZlnnsnEiROz3XbbJUl+97vf5Q9/+EPmz5+fP//5z/nYxz6WXXfdNcOGDev164UVrV88J27NNddMkjzxxBOZO3duH1fD0hg4cGBWW221bLTRRllttdX6uhwAAGAF++xnP5unnnoqW2yxRVZbbbWMGzcuJ554YqZMmZK//uu/zr333puNNtpokYWV58yZkyR5wxvesHDK1lVXXZXjjjsuX/7ylzNgwIDstttu+eY3v5kkefjhh3PCCSfkySefzJprrpk999wzl156ae9fLPSC0oQRL2PGjKmTJk3q6zIAAABgmbz7rN/0dQmvW9ccO7avS1guSil31FrHdN3eL6ZoAQAAALyeCXgAAAAAGk7AAwAAANBwAh4AAACAhusXT9ECAABgCZ33jr6u4HXqC31dAP2UETwAAAAADSfgAQAAAGg4AQ8AAABAwwl4AAAAABpOwAMAAADQcAIeAAAAgIYT8AAAAAA0nIAHAAAA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hx9+OPPmzctJJ52UJJk3b1423HDD3HTTTXn22Wdz6qmnZty4cXnkkUcW6eOhhx7KFVdckZEjR/bGpQGwBHoa8Ix+jdemK6Q6AADgVW2zzTZZddVVkySllJRS8tBDDy3WbsMNN8zw4cMXvh8wYEAefPDBJMkaa6yRk08+OZtssklWWWWV7Lvvvhk9evRiQdExxxyTL3/5yxk8ePAKvCIAlkaPnqJVa310RRcCAAAsnQkTJuTCCy/MCy+8kB122CH77LNPt+1+85vf5O///u8zc+bMrL766rn66qu7bTdt2rTcf//92WabbRZuu/zyyzN48OBX7BuAvtXTETwAAMBK6pxzzslzzz2Xm2++OQcccMDCET1djR07Ns8++2wef/zxfPKTn8wmm2yyWJu5c+fm4IMPzqGHHpqtttoqSTJr1qyccMIJOeOMM1bkZQCwDF4x4CmlPFxK2a799x/b71/ptfgYUAAAoNcMGDAgY8eOzeOPP55zzz33VdtusMEG2XvvvXPggQcusn3+/PkZP358Bg8enLPPPnvh9s9//vMZP358Ro8evUJqB2DZvdoUrZuSzOz0d13x5QAAAMti3rx53a7B81rtaq058sgjM23atFx33XUZNGjQwn2//OUv8/jjj+ecc85JkkyfPj3jxo3L8ccfn+OPP375XwQAS+wVA55a6+Gd/j6sV6oBAAB67Mknn8yvfvWr7LvvvhkyZEhuvPHGXHrppfnRj360WNtLLrkku+yySzbccMNMmTIlJ554Yt75zncu3H/00Ufnvvvuy4033pghQ4Yscuwvf/nLzJ07d+H7HXfcMd/4xjfyd3/3dyvu4gBYIj2aogUAAKx8Sik599xzM2rUqKy99tr5l3/5l5xxxhnZb7/9MmXKlHR0dGTKlClJknvvvTc777xzOjo68ra3vS1bbrllvvvd7yZJHn300Zx33nm56667sv7666ejoyMdHR255JJLkiTrrrtu1l9//YWvAQMGZO21105HR0efXTsAiyq1dj/zqpQyP8lbaq239W5JixszZkydNGlSX5cBAADQf5z3jr6u4HXp3S99oa9LeN265tixfV3CclFKuaPWOqbrdk/RAgAAAGi41wp4LKwMAAAAsJJ7tadoJckppZSnetBPrbUeujwKAgAAAGDJvFbAs32SF3vQj5E+AAAAAH3ktQKe/VeGRZYBAGBl9e6zftPXJbwu9ZfFUgGWF4ssAwAAADScgAcAAACg4QQ8AAAAAA33imvw1FqFPwAAAAANIMQBAAAAaDgBDwAAAEDDCXgAAAAAGk7AAwAAANBwAh4AAACAhhPwAAAAADScgAcAAACg4QQ8AAAAAA0n4AEAAABoOAEPAAAAQMMJeAAAWK5efPHFHHnkkdl4440zdOjQ7LDDDvnFL37Rbdtaa0466aRssMEGGTZsWHbdddfcc889C/ffd9992X333TNs2LBsttlmufrqq3vrMgCgUQQ8AAAsV/PmzcuGG26Ym266Kc8++2xOPfXUjBs3Lo888shibS+//PJccMEFufnmmzNjxoy89a1vzfjx4xf2s99++2XffffNjBkzcv755+eQQw7J/fff38tXBAArPwEPAADL1RprrJGTTz45m2yySVZZZZXsu+++GT16dO64447F2v7xj3/M2LFjs+mmm2bAgAE55JBDcu+99yZJJk+enCeeeCL/9E//lAEDBmT33XfP2972tlx00UW9fUkAsNLr9YCnlHJxKWVqKWVmKeX+UsqHersGAAB6z7Rp03L//fdnm222WWzfgQcemAcffDD3339/5s6dm4kTJ2bvvfdO0pq+1VWtNb///e9XeM0A0DR9MYLni0k2qbWumeQ9SU4rpfyvPqgDAIAVbO7cuTn44INz6KGHZquttlps/8iRI7PLLrtkyy23zJAhQ3L55Zfnm9/8ZpJkq622ynrrrZevfvWrmTt3bq6//vrcdNNNef7553v7MgBgpdfrAU+t9Z5a64sL3rZff9XbdQAAsGLNnz8/48ePz+DBg3P22Wd32+aUU07J7bffnsceeyxz5szJ5z//+ey+++55/vnnM2jQoPz0pz/Nz3/+86y//vr5+te/nnHjxmXUqFG9fCUAsPLrkzV4SinnlFKeTzI5ydQk1/VFHQAArBi11hx55JGZNm1arrzyygwaNKjbdnfffXfe//73Z9SoURk4cGAOO+ywPP300wvX4dl2221z00035c9//nP+/d//PQ8//HB22mmn3rwUAGiEPgl4aq0TkgxNskuSq5K82LVNKeXDpZRJpZRJ06dP7+0SAQBYBkcffXTuu+++XHPNNRkyZMgrtttxxx1z+eWXZ9q0aZk/f34uuuiizJ07N5tttlmS5L//+78zZ86cPP/88/na176WqVOn5rDDDuul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RowYkenTp2+x3xe+8IUccsgh6erqyvjx4zNt2rSsWLGi//iiRYty/PHHp6urKwcffHC+9KUvbXT+6tWr8973vjd77bVXurq6cuyxx+6sKQEAwC5LwAPAZu27776ZMWNG3v3ud79ov2OOOSb33Xdfnnnmmfz0pz9NT09PZsyYkSTp6enJ2972trz1rW/N8uXLc8MNN+TMM8/M4sWL+88/99xzs3z58ixatCjLly/PVVddtVPnBQAAuyIBDwCbNXXq1Lz97W/Py172shftt//++2evvfbq/97R0ZElS5YkSX70ox/lySefzPvf//50dHTk+OOPzzHHHJO5c+cmSX784x/ny1/+cm644YaMGzcuHR0ded3rXrfzJgUAALsoAQ8Af7B77703XV1d2WOPPTJv3ry8733vS5LUWl/Qt9aaH/7wh0mS733ve5kwYUIuueSS7LXXXnn1q1+defPmtbR2AADYFQh4APiDTZkyJc8880yWLl2aD37wg5k4cWKS5NBDD8348ePz93//91m3bl3uvPPOzJ8/P6tXr06SLF26ND/84Q/T1dWVJ598MrNmzcq0adOyaNGiNs4GAACaR8ADwA6z33775cQTT8zpp5+eJNl9991z22235Wtf+1r23nvvfOITn8hpp52WV7ziFUmSUaNGZffdd8+MGTMyfPjwHHfccfnTP/3T3Hnnne2cBgAANM6wdhcAwK6lp6cnjz76aP/317zmNZk/f37/96OPPjrTpk3rPwYAAPzhrOABYLN6enqydu3arF+/PuvXr8/atWvT09Pzgn433XRTuru7U2vN448/ng9/+MN54xvf2H/84Ycfztq1a7N69er8wz/8Q37xi1/0v3b92GOPzQEHHJC/+7u/S09PT+67777cc889edOb3tSqaQIAwC5BwAPAZs2cOTOjRo3KlVdemRtvvDGjRo3KzJkz093dnc7OznR3dydJFi5cmKOPPjqdnZ055phjcsghh+RTn/pU/zhz587NPvvsk/Hjx+fuu+/OXXfdlREjRiTpfYTr9ttvz9e//vV0dXXlPe95T+bMmZNDDz20LXMGAICmKpt7w8lgM3ny5LpgwYJ2lwHAEHDyJ+9tdwlD1lcumtLuEprv+uPaXcGQdPJvP9buEoYk94wdwD2jLdwz2mdXuW+UUn5Qa528absVPAAAAAANJ+ABAAAAaDgBDwAAAEDDCXgAAAAAGm5YuwsAYAtsfNgmNj4EAKB5rOABAAAAaDgBDwAAAEDDCXgAAAAAGk7AAwAAANBwAh4AAACAhhPwAAAAADScgAcAAACg4QQ8AAAAAA0n4AEAAABoOAEPAAAAQMMJeAAAAAAaTsADAAAA0HACHgAAAICGE/AAAAAANJyABwAAAKDhBDwAAAAADSfgAQAAAGg4AQ8AAABAwwl4AAAAABpOwAMAAADQcAIeAAAAgIYT8AAAAAA0XMsDnlLKhaWUBaWU50opn2/19QEAAAB2Ne1YwfNkkplJPtuGa0PLLV++PO94xzsyevToTJgwITfffPNm+9VaM2PGjOy3337p6urKG97whjzyyCNJkueeey7nnHNOJkyYkD322COvfe1r841vfKP/3IULF2by5MkZO3Zsxo4dmxNOOCELFy5syfwAAABov5YHPLXWL9Zab0vyzvbv2gAAEVVJREFU61ZfG9rhggsuyPDhw7Ns2bLcdNNNOf/88/uDm4FuueWWfPazn813vvOdLF++PEcddVTOOuusJElPT0/233//zJ8/P88880yuuOKKnHbaaXnssceSJPvuu29uvfXWLF++PL/61a9yyimn5PTTT2/lNAEAAGijQbsHTynl3L5HuRY89dRT7S4Hfi+rVq3KvHnzcsUVV6SzszNTpkzJKaeckrlz576g789+9rNMmTIlBx10UDo6OnLmmWf2r8IZPXp0Lr300kycODG77bZb3vrWt+bAAw/MD37wgyTJmDFjMnHixJRSUmtNR0dHlixZ0tK5AgAA0D6DNuCptd5Qa51ca508bty4dpcDv5fFixeno6MjkyZN6m874ogjNruC5/TTT8+SJUuyePHirFu3LrNnz86JJ5642XGXLVuWxYsX5/DDD9+ofcyYMRk5cmQuuuiifOhDH9qxkwEAAGDQGtbuAmBXtnLlynR1dW3U1tXVlWefffYFfffZZ5/8yZ/8SQ455JB0dHRk//33z7e//e0X9Fu3bl3e9a53Zdq0aTn00EM3Ovb0009n1apVmT17diZMmLBjJwMAAMCgJeCBnaizszMrVqzYqG3FihXZY489XtD3sssuy/e///088cQT2XvvvXPjjTfm+OOPzyOPPJKXvOQlSZINGzbkrLPOyvDhwzNr1qzNXnP06NE577zzMm7cuCxatCjjx4/f8RMDAABgUGnHa9KHlVJGJulI0lFKGVlKETSxS5o0aVJ6enryk5/8pL/toYceesGjVc+3/8Vf/EVe8YpXZNiwYZk+fXp+85vf9O/DU2vNOeeck2XLlmXevHnZfffdt3jdDRs2ZPXq1fn5z3++4ycFAADAoNOOPXhmJFmT5G+TnNn3+4w21AE73ejRozN16tR89KMfzapVq3Lffffl9ttv73871kCvf/3rc8stt2TZsmXZsGFD5s6dm3Xr1uXggw9Okpx//vlZtGhRvvKVr2TUqFEbnXvXXXflgQceyPr167NixYp84AMfyNixY3PYYYe1ZJ4AAAC0Vztek35prbVs8rm01XUMNcuXL8873vGOjB49OhMmTMjNN9+82X7nnXdeOjs7+z8jRozY6HGibR3nsssuSykl3/rWt3bKfJrkmmuuyZo1azJ+/PicccYZufbaa3P44Yenu7s7nZ2d6e7uTpJcfPHFOeKII3LkkUdmzJgxueqqqzJv3ryMGTMmjz/+eK6//vo8+OCD2Xvvvfv/+9x0001JevfeOeOMM9LV1ZVXvvKVWbJkSe64446MHDmynVMHAACgRTwaNURccMEFGT58eJYtW5YHH3wwJ510Uo444ogXPCp03XXX5brrruv/Pn369Oy2227bNc6jjz6aW2+9Nfvss8/On1gD7Lnnnrntttte0H7AAQdk5cqV/d9HjhyZq6++OldfffUL+k6YMCG11i1e49RTT82pp566YwoGAACgcQbta9LZcVatWpV58+bliiuuSGdnZ6ZMmZJTTjklc+fO3abzpk2btl3jXHjhhfn4xz+e4cOH77Q5AQAAAL8j4BkCFi9enI6OjkyaNKm/7YgjjsgjjzzyoufNmzcv48aNy7HHHrvN49xyyy0ZPnx43vKWt+zgWQAAAABb4hGtIWDlypXp6uraqK2rqyvPPvvsi543e/bsnH322SmlbNM4K1euzIc+9KHceeedO7B6AAAAYGus4BkCOjs7s2LFio3aVqxYsdHmyZt64oknMn/+/Jx99tnbPM4ll1ySs846KwceeOAOrB4AAADYGit4hoBJkyalp6cnP/nJT/KqV70qSfLQQw+9YIPlgebMmZOjjz46Bx100DaPc/fdd2fp0qW55pprkiRPPfVUTjvttFx88cW5+OKLd9b0turkT97btmsPZV+5aEq7SwAAABgyBDxDwOjRozN16tR89KMfzac//ek8+OCDuf322/Pd7353i+fMmTPnBaHM1sa5++67s27duv7+r3/96/OP//iPefOb37xzJgYAAAAk8YjWkHHNNddkzZo1GT9+fM4444xce+21Ofzww9Pd3Z3Ozs50d3f3973//vuzdOnSzb52e0vjJMnLXvay7L333v2fjo6OjB07Np2dnS2bJwAAAAxFVvAMEXvuuWduu+22F7QfcMABWbly5UZtRx11VFatWrVd42zOY489tt11AgAAANvPCh4AAACAhhPwAAAAADScgAcAAACg4QQ8AAAAAA1nk+VWuv64dlcwRH2s3QUAAADATmUFDwAAAEDDCXgAAAAAGk7AAwAAANBwAh4AAACAhhPwAAAAADScgAcAAACg4QQ8AAAAAA0n4AEAAABoOAEPAAAAQMMJeAAAAAAaTsADAAAA0HACHgAAAICGE/AAAAAANJyABwAAAKDhBDwAAAAADSfgAQAAAGg4AQ8AAABAwwl4AAAAABpOwAMAAADQcAIeAAAAgIYT8AAAAAA0nIAHAAAAoOEEPAAAAAANJ+ABAAAAaDgBDwAAAEDDCXgAAAAAGk7AAwAAANBwAh4AAACAhhPwAAAAADScgAcAAACg4QQ8AAAAAA0n4AEAAABoOAEPAAAAQMMJeAAAAAAaTsADAAAA0HACHgAAAICGE/AAAAAANJyABwAAAKDhBDwAAAAADSfgAQAAAGg4AQ8AAABAwwl4AAAAABpOwAMAAADQcC0PeEope5ZSvlRKWVVKebyU8petrgEAAABgVzKsDde8Oslvk7w8yZFJvlZKeajW+kgbagEAAABovJau4CmljE7yziQfqbWurLXem+TLSc5qZR0AAAAAu5JSa23dxUp5bZLv1lpHDWj7myTH1VpP3qTvuUnO7ft6SJIft6xQGDz2SvKrdhcBNIr7BrA93DOA7eW+0X4Taq3jNm1s9SNanUme2aTtmSR7bNqx1npDkhtaURQMVqWUBbXWye2uA2gO9w1ge7hnANvLfWPwavUmyyuTvHSTtpcmebbFdQAAAADsMlod8CxOMqyU8qoBbUckscEyAAAAwO+ppQFPrXVVki8mubyUMrqUckyStyWZ28o6oEE8pghsL/cNYHu4ZwDby31jkGrpJstJUkrZM8lnk/xZkl8n+dta680tLQIAAABgF9LygAcAAACAHavVe/AAAAAAsIMJeAAAAAAaTsADbVRKubCUsqCU8lwp5fPtrgcY3EopI0opnymlPF5KebaU8kAp5c3trgsY/EopryqlrC2l3NjuWoDBrZQysZTy9VLKb0opvyylzCqlDGt3XWydgAfa68kkM9O78TjA1gxL8kSS45J0JflIkn8ppUxsY01AM1yd5PvtLgJohGuS/GeSfZIcmd6/O97b1orYJgIeaKNa6xdrrbel941y/UopbyilLC2l/K9Syn+WUn5RSnl7KeUtpZTFpZTlpZQPtalsoE1qratqrZfWWh+rtW6otX41yc+SvM59A9iSUsrpSZ5OcveANvcMYEsOTPIvtda1tdZfJrkjyeHuG4OfZVYweO2dZGSS/ZJMT/KpJHcleV2SA5L8oJTyhVrrT9tWIdBWpZSXJ5mU5JH03jPcN4CNlFJemuTyJG9Mcs4mh90zgM35pySnl1LuSTI2yZvTu2o4cd8Y1KzggcFrXZKP1VrXJflCkr2S/FOt9dla6yPp/Qfda9pZINA+pZTdk9yUZHat9Ud9ze4bwKauSPKZWusTmznmngFszvwkhydZkWRpkgVJbus75r4xiAl4YPD6da11fd/va/p+LhtwfE2SztaWBAwGpZTdksxN8tskFw445L4B9CulHJnkhCRXbaGLewawkb6/Mb6Z5ItJRqc3wBmb5ON9Xdw3BjEBDwA0SCmlJPlMkpcneWff/0ED2Jw3JJmYpLuU8sskf5PknaWU/2hnUcCgtmeS/ZPMqrU+V2v9dZLPJXlLe8tiWwh4oI1KKcNKKSOTdCTpKKWM9ApCYCuuTXJYkpNrrWu21hkY0m5I8sr0vgXnyCTXJflakje1syhg8Kq1/iq9L3A4v+/fKmOSTEvyUHsrY1sIeKC9ZqR3GePfJjmz7/cZba0IGLRKKROS/FV6/6H2y1LKyr7Pu9pcGjAI1VpX11p/+fwnycoka2utT7W7NmBQm5rkxCRPJVmSpCfJ+9taEduk1FrbXQMAAAAAfwAreAAAAAAaTsADAAAA0HACHgAAAICGE/AAAAAANJyABwAAAKDhBDwAAAAADSfgAQAGpVLK9FJKHfBZVUp5rJTypVLKaaWU3+vvmFLKkaWUS0spe+7omrdy3XtKKfe08poAwNAxrN0FAABsxalJliYZkeSAJCcl+X9Jzi2lnFxrXbOd4x2Z5JIkNyZZviML3Yr3tvBaAMAQI+ABAAa7B2utSwZ8n1tKuSXJLUn+T5KL2lPW9qm1Lmx3DQDArssjWgBA49Ra5yW5Pcl7Sikveb69lHJZKeU/SinPlFJ+VUr5dinljwccn57kc31ffzLg8a+JfccvLKXcX0pZXkp5upTy76WUk7alplLKX5dSFpVS1pRSflNKWVBKeceA4xs9orXJ42cDP49tMu57SikPlVLW9s3pM61+vAwAGPys4AEAmurrSd6eZHKSf+tr2y/JVel9pGt0kjOT/FspZXKt9eEkX0syM8mM/O7RryT5Rd/PiUk+neSx9P6ddHKSr5ZS3lJr/caWCimlvCvJJ5JcnuQ7SUYleU2SFwtijtrk+z5JbkqyaMC4Vyb5n0n+b5IP9s1vZpL/Wko5uta6/kXGBwCGEAEPANBU3X0/93m+odb6P57/vZTSkeSOJI8kOSfJX9danyqlPNrXZdNHv1Jr/ZsB5++W5O4kk5Kcl2SLAU96w5qHa62XD2j7+osVX2v99wHXGpXeEOfn6Q2l0req6INJLhs4billcZJ70xs+3fZi1wAAhg6PaAEATVX6ftb+hlJOKKX8aynl10l6kqxLb0BzyDYNWMrrSilfLaUsG3D+n23D+d9PcmQp5ZN9NbxkK/0HXrMkmZ3k4CQn1Vp/3Xfoz9L7t9pNpZRhz3+SfC/JiiTHbus1AIBdn4AHAGiq/ft+/iJJSin/Lb2rZlamd8XOHyd5fZKHkozc2mCllP3Tu2Jnz/Ru3Hx03/l3bMP5c5Kcn+SPknwzyfJSyhef39tnKy5P76NmU2utiwe0j+/7uSS9QdPAz0uTvGwbxgYAhgiPaAEATXVSkrVJftD3/Z3pXXUztda67vlOpZSxSZ7ehvFOTNKV5LRa6/N782RbVuPUWmuS65Nc33e9P0/vnjz/nN7QZ7NKKX+Z5MNJ3l1rvWeTw8+v5PnzJL/ZzOm/3kwbADBECXgAgMYppUxNckqSf6q1ru5rfkmS9dn4ka3jkxyQ5GcDTn+u7+eoTYZ9PsgZGA5NSnJMfrcZ81bVWn+T5J9LKX+U5K9eZA5HJflskitrrZ/fTJe7kmxIckCt9a5tvT4AMDQJeACAwe7IUspeSYanN6x5a3rfgHVXkv89oN8dSd6X5POllM+ld++dj6R34+KBFvb9vKCUMju9gc7DSb6V3hVAc0opn0jv5s2XpXcz5xd9rL2UckOSZ5Pcn+Q/+659VpI7t9D/pendIPlHSb4y8FXuSZ6rtT5Qa320lPLxJLNKKYckmZ/eFUv7p3d/nk/XWv/1xeoCAIaO0ruiGABgcCmlTE/yuQFNa9MbnvxHkpuT3Fo3+UOmlHJRkg8k2TvJD9MbAM1IklrrGwb0uyTJuX39dktyYK31sVLKaendE2dikkeTXJHeR7feUGud+CK1Tkvy35P8l/Q+5vVkegOcS2qtK/r63PN8HX178/xsc2MleXzgtUopZyW5IMmr07s66Yn07hV05cBHyQCAoU3AAwAAANBw3qIFAAAA0HACHgAAAICGE/AAAAAANJyABwAAAKDhBDwAAAAADSfgAQAAAGg4AQ8AAABAwwl4AAAAABru/wPkErvpzNnqrwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] @@ -514,88 +513,6 @@ "pl.plot_performance()" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Performance of series.value_counts()" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "@hpat.jit\n", - "def data_value_counts(column):\n", - " result = column.value_counts()\n", - " return result" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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/50XnU2dOjUDB/bnbDPmlUGDBmXatGn9XQYAADCfHXXUUfnGN76RjTbaKAsttFBWXHHFrLjiirM95sUXX8yll16affbZJ0ly//33Z/z48fniF7+YAQMGZMstt8z73//+nH/++UmSq666KrvuumvWXHPNDB48OEceeWRuuummPPTQQ/P9+qCv9WfAM8vRO3PC1KwFg88RAAAWfNOmTcvYsWPz9NNPZ9SoURkxYkQ+97nP5eWXX57tcZdeemmGDRuWzTbbLElrPc/uaq255557On/u2mb6z9P3w4KkzwOeUsrGSVbMPHp6FgAAAM0yYcKETJkyJZdcckluvvnm/OlPf8pdd92V4447brbHjR49OnvvvXfnPwyvvvrqWW655fKd73wnU6ZMyXXXXZcxY8bkpZdeSpJst912ueiii/LnP/85L7/8cr75zW+mlNK5HxYk/TGCZ58kl9VaLbQCAADwFjRkyJAkySGHHJLhw4dn2WWXzZe+9KVce+21szzmsccey5gxY7L33nt3bhs0aFCuuOKKXHPNNVl++eXz3e9+N7vttltGjBiRJPngBz+YY445JjvvvHNWWmmlrLzyyhk6dGjnfliQ9PnCNbXWz/bVuT5y2u/76lQ9uuqQTeb42J/97Gf51Kc+1fm+o6Mjq666aj7zmc/kgAMO6NM1h0opOeqoo3L00Uf32TkBAIAF11JLLZURI0a8oSUazjvvvGy88cYzLcS89tprZ8yYMZ3vN9544841epLk4IMPzsEHH5wkeeCBB3LcccdlrbXWmssrgDef/nxMOr1w8cUX59Zbb82ll16aDTfcMIcccki++c1v9ndZAAAAc+VTn/pUTjvttDz11FN59tlnc8opp2T77befZfvzzjsvn/zkJ2fa/uc//zmTJ0/OSy+9lJNPPjlPPvlkZ7vJkyfnnnvuSa0148aNy/77759DDz00Sy211Hy6Kug/Ap43uXXWWScbbbRRttlmm/z0pz/N5ptvnlNOOaW/ywIAAJgrRx55ZDbYYIOsttpqWWONNbLuuuvm8MMPz7hx49LR0ZFx48Z1tr311lvz+OOPdz4evavzzz8/w4cPz3LLLZcbb7wx119/fRZeeOEkrYDnE5/4RDo6OrLhhhvmfe97X4499tg+u0boSwKehtlggw3ywgsv5KmnnsqFF16YLbfcMsOGDUtHR0fWXXfdjB4988PJSik54ogjcuqpp2aVVVbJ0KFD84EPfCB/+ctfZmg3bdq0HHHEERk+fHgWXXTRbL755jO1SZK//e1v2WuvvbLKKqtkyJAhWXXVVXPggQfm2WefnaHdHXfcka233jrLLLNMFl100ay66qo56KCD5u0NAQAAGmnQoEH50Y9+lH/84x/5+9//nlNPPTWLLLJIRo4cmUmTJmXkyJGdbd/3vvflxRdfzNChQ2fq5zvf+U6effbZTJo0Kb/+9a8zatSozn1LLrlk/vznP+fFF1/M3//+95xwwgkZMGBAn1wf9LU+X4OHufO///u/GTBgQDo6OvLwww9nl112yde+9rUstNBCuemmm/LpT386L7/8cg444IAZjrvgggvyrne9Kz/4wQ/yyiuv5Mtf/nJ22GGH3H///Z3r+Rx99NE5/vjj86UvfSnbbLNNxo4dm49+9KMz1TB+/PiMGDEip5xySpZaaqk8/PDDOf7447Pddtvl1ltvTZJMmjQpH/rQh7LhhhvmZz/7WYYOHZpHHnkkf/jDH+b/TQIAAIC3GAHPm9y0adMyderUvPDCC7noooty2WWX5SMf+UgWXXTRHHbYYZ3tXn311Wy++eZ58sknc8YZZ8wU8AwaNChXX311Bg0a1Llt1113ze23356NN944zz77bL7//e9n//33z8knn5wk2WabbTJgwIB87Wtfm6GvzTbbLJtttlnn+4033jijRo3Kpptumrvuuivrrrtu7r///jz77LP59re/nbXXXruzbU9zZgEAAIC5Y4rWm9zqq6+eQYMGZemll85BBx2UPfbYI+ecc06S5MEHH8zuu++eFVdcMYMGDcqgQYNy1lln5a9//etM/Wy99dYzhDvvec97kqRzXuv//M//5MUXX8xuu+02w3Ef//jHZ+rrlVdeyfHHH5/VV189Q4YMyaBBg7LpppsmSee53/nOd2bJJZfMZz/72VxwwQV57LHH5sHdAAAAAHoi4HmTu/zyy3PHHXfk/vvvz4svvpjzzjsvSy+9dCZNmpStt946d999d0488cTcfPPNueOOO7Lvvvvmn//850z9LL300jO877roWJI8+eSTSZK3ve1tM7Tr/j5Jvv71r+foo4/OnnvumWuuuSa33357Lrvsshn6W2KJJfLb3/42K6ywQg466KCMHDkya621Vi699NK5vCMAAABAd6ZovcmttdZaMywSNt2tt96aRx99NDfffHM22WSTzu1Tp06do/MMHz48STJhwoSsueaandsnTJgwU9sLL7wwe++9d4444ojObZMmTZqp3TrrrJNLL700U6dOzdixY3PCCSdkt912y91335211lprjuoEAADmjY+c9vv+LuEt6apDNnn9RjAHjOBpqJdeeilJZph29eyzz+bKK6+co/7WXnvtLLbYYrnoootm2H7hhRf2eO6u502Sc889d5Z9Dxw4MBtttFGOPfbYvPrqq7nvvvvmqEYAAACgZ0bwNNTGG2+cxRdfPAcffHCOOeaYvPjiiznuuOOy7LLL5rnnnnvD/S255JL54he/mG9961sZOnRottlmm9xxxx05++yzZ2q77bbbZvTo0XnPe96TUaNG5bLLLpvp6VhXX311zjzzzOy4445ZZZVV8uKLL+bUU0/N0KFD8773vW+OrxsAAACY2QId8CzIQ9+GDRuWyy+/PP/xH/+RXXbZJSussEIOPfTQTJw4Mcccc8wc9Xn00Uen1pqzzjorp59+ev71X/81V1111QxTtpLktNNOS601hx9+eJJku+22yy9/+ctsuOGGnW3e+c53ZsiQITn22GPz5JNPZujQodlggw1y/fXXZ8SIEXN+4QAAAMBMSq21v2t4Xeuvv34dO3bsLPffd999WWONNfqwIuYnnycAAMx/1uDpHwvyQAT6Rinlzlrr+t23W4MHAAAAoOEEPAAAAAANJ+ABAAAAaDgBDwAAAEDDCXgAAAAAGk7AAwAAANBwAh4AAACAhhPwAAAAADScgAcAAACg4QQ8AAAAAA03sL8LmK9+8oH+Pf9nx8zxoVdccUW+973v5f77788LL7yQ5ZZbLuuuu24OOOCAbLvttkmS3/3ud9liiy06j1lkkUWyzDLLZO21185OO+2UvffeO4MHD56p7xdffDGnnnpqLr744jz44IOZMmVKVlpppWy99db5whe+kFGjRs1x3QAAAEDfW7ADnoY69dRTc+ihh2bffffNl7/85Sy22GJ56KGHcs011+Q3v/lNZ8DTtf0GG2yQKVOmZPz48bn++utz8MEH5/TTT8/111+fYcOGdbZ98skns9VWW2X8+PH53Oc+l0022SSDBw/Ovffem3POOSe33HJL7rrrrr6+ZAAAAGAuCHjehE4++eTsuOOOOfvsszu3bbnllvnMZz6TV199dab2a6yxRjbaaKPO9x/72Mey3377ZYsttsi+++6bq666qnPfXnvtlSeffDK333573vnOd3Zu32KLLXLQQQflyiuvnE9XBQAAAMwv1uB5E5o4cWKWX375HvcttFDvPrL3ve99OfDAA3P11VfnoYceSpLcfvvtufHGG3PYYYfNEO5MV0rJjjvuOOeFAwAAAP1CwPMmtOGGG2b06NH5zne+kwceeGCO+9luu+2SJLfcckuS5IYbbkiSfPSjH537IgEAAIA3DQHPm9CPf/zjjBo1Kl/5ylfyrne9K8suu2x23333XHfddW+on5EjRyZprbuTJI899liSZKWVVpq3BQMAAAD9SsDzJrTaaqvlrrvuypgxY3L44YdnnXXWyeWXX54PfehDOe6443rdT601SWvqFQAAALDgEvC8SQ0YMCCbbbZZjjvuuNxwww15+OGH8573vCfHHHNMnn322V71MX3EzvDhw5Mkb3/725Mkjz766PwpGgAAgDe9Cy+8MGussUYWW2yxvOMd78jNN988U5vRo0dnvfXWy+KLL54RI0bkK1/5SqZOndq5v6OjY4bXgAEDcsghh3Tuf+mll3LQQQdl2WWXzRJLLJHNNtusT67trUzA0xArrLBCPv3pT2fq1Kl58MEHe3XMNddckyR5//vfnyTZaqutkmSGp2oBAADw1nH99dfnq1/9as4999y88MILuemmm7LqqqvO1O6ll17KKaeckmeeeSa33XZbbrzxxpx88smd+ydNmtT5mjBhQoYMGZJdd921c//++++fiRMn5r777svEiRPz/e9/v0+u761MwPMmNH3kTXf3339/kszyCVtd3XrrrfnJT36SHXfcsfMv64YbbpgPfvCDOf744/O3v/2tx+M8Jh0AAGDBddRRR+Ub3/hGNtpooyy00EJZccUVs+KKK87U7sADD8ymm26awYMHZ8UVV8wee+zR+QCf7i655JIst9xy2XTTTZMkf/3rX/OrX/0qZ555ZoYNG5YBAwZkvfXWm6/XRTKwvwtgZmuttVa22GKL/Pu//3tWWWWVPP/887n22mvz4x//OLvttlvn4snT3Xfffeno6MjUqVPz5JNP5rrrrsv555+fd7/73fnpT386Q9vzzz8/W221VTbYYIMccsgh2WSTTTJ48ODcf//9OeecczJlypTssMMOfXm5AAAA9IFp06Zl7Nix+ehHP5pRo0Zl8uTJ2XHHHfOd73wnQ4YMme2xN910U9Zcc80e940ePTp777135/qvt912W1ZaaaUcddRROf/88zN8+PAcffTR2Xnnnef5NfGaBTvg+eyY/q5gjpx00km59tpr841vfCMTJkzIgAEDstpqq+XEE0/MF77whZnaf/7zn0+SLLzwwllmmWXyL//yL/nhD3+YvfbaK4MHD56h7fDhw3Pbbbfl1FNPzcUXX5zvfve7mTp1alZeeeVsu+22OfTQQ/vkGgEAAOhbEyZMyJQpU3LJJZfk5ptvzqBBg7LDDjvkuOOOy7e+9a1ZHnfuuedm7MM3oUEAACAASURBVNixOeuss2baN27cuIwZMyZnn31257bHH38899xzT3beeeeMHz8+t956a/7t3/4t7373u7PGGmvMl2tjQQ94GuqAAw7IAQcc8LrtNt98884nZb0RHR0dOeyww3LYYYfNSXkAAAA00PRROoccckjnw3i+9KUvzTbgueKKK/K1r30tN9xwQ5ZddtmZ9p933nnZZJNNssoqq8xwnkGDBuWII47IwIED84EPfCBbbLFFrrvuOgHPfGQNHgAAAHgLWGqppTJixIjOqVSv57/+67/ymc98JldddVXe85739NjmvPPOyz777DPDtrXXXnuua+WNE/AAAADAW8SnPvWpnHbaaXnqqafy7LPP5pRTTsn2228/U7vf/OY32WOPPXLppZdmww037LGvP/zhD3niiSdmeHpWkmy22WYZOXJkTjjhhEydOjW33HJLfve73+VDH/rQfLkmWgQ8AAAA8BZx5JFHZoMNNshqq62WNdZYI+uuu24OP/zwjBs3Lh0dHRk3blyS5Nhjj81zzz2X7bbbLh0dHeno6MiHP/zhGfoaPXp0dtpppwwdOnSG7YMGDcqVV16Za6+9NksssUQ+85nP5Lzzzsvqq6/eZ9f5VlTmZA2Xvrb++uvXsWPHznL/fffdZx7fAsTnCQAA899HTvt9f5fwlnTVIZv0dwk0XCnlzlrr+t23LzAjeJoQVPH6fI4AAADwxi0QAc+gQYPy8ssv93cZzAMvv/xyFl544f4uAwAAABplgQh4lltuuTzxxBN56aWXjABpoFprpkyZkokTJ+bxxx/PMsss098lAQAAQKMM7O8C5oXFF188STJ+/PhMmTKln6thTgwcODCLLLJIRo4cmUUWWaS/ywEAAIBG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AAAAYEa9DXjWz4xPvDogyfG11mXSetz5l3rTSa31pVrr36e/kkxKMrnWahVlAAAAgDnU2zV4lk4yIUlKKWslWT7J6Pa+K5LsPScnr7UePSfHAQAAAPCa3o7g+b8kI9o/b5lkfK31wfb7QW+gHwAAAADmsd6O4LkhydHtxZb/I61RO9OtnuTReV0YAAAAAL3T25E3X0nyWJITkjyU5Jgu+/ZI8vt5XBcAAAAAvdSrETy11glJtp7F7q2STJ5nFQEAAADwhvR2itYs1VqfnxeFAAAAADBnLI4MAAAA0HACHgAAAICGE/AAAAAANJyABwAAAKDhBDwAAAAADTfXAU8pZe9SyjbzohgAAAAA3rh5MYLnZ0l+XUr5cynlY/OgPwAAAADegHkR8GyR5CNJrk7yuXnQHwAAAABvwMC57aDWOqb947Vz2xcAAAAAb5xFlgEAAAAartcBTyll3VLKZaWUZ0opU0sp721vP76Usu38KxEAAACA2elVwFNK2STJrUlWT/KLbse9muSAeV8aAAAAAL3R2xE8Jyb57yRrJvlSt31/TPLeeVkUAADNs+eee2b48OFZfPHFs9pqq+Wss8563WO23HLLlFIyderUmfY9+OCDWWSRRbLnnnt2bvv5z3+ejo6Ozteiiy6aUkruvPPOeXotANA0vQ143pvkjFprTVK77XsmybB5WhUAAI3z9a9/PY888kief/75/OpXv8oRRxwx2+Dl5z//eY/BznQHH3xwNthggxm27bHHHpk0aVLn60c/+lFWXXXVvPe9/r0RgLe23gY8k5MsOot9w5M8N2/KAQCgqdZcc80svPDCSZJSSkopeeihh3ps+9xzz+WYY47Jt7/97R73X3jhhVlyySXzwQ9+cLbnHD16dPbee++UUuaueABouN4GPL9P8oVSyoAu26aP5NkvyW/maVUAADTSQQcdlEUXXTSrr756hg8fnu22267HdocddlgOPPDALL/88jPte/755/ONb3wj3/3ud2d7rkcffTQ33XRT9t5773lSOwA0WW8DniPTmqZ1d/vnmmSfUspvk2yU5Jj5Ux4AAE3yox/9KC+88EJuvvnm7LTTTp0jeroaO3ZsbrnllhxyyCE99nHkkUdmv/32y9vf/vbZnuu8887LpptumlVWWWWe1A4ATdargKfWeneSzZJMSHJ4kpLkc+3dH6i1/nX+lAcAQNMMGDAgm2yySR5//PGcccYZM+x79dVXc9BBB+UHP/hBBg4cONOxf/rTn3LDDTfki1/84uue57zzzss+++wzz+oGgCab+b+qs1Br/WOSD5ZSFkmydJJ/1Fpfmm+VAQDQaFOnTp1pDZ7nn38+Y8eOzcc+9rEkybRp05IkI0aMyMUXX5w777wzjzzySEaOHJkkmTRpUqZNm5Z77703f/zjHzv7ueWWWzJ+/PjssssufXQ1APDm1uuAZ7pa6+Qk4+dDLQAANNRTTz2V3/zmN9l+++0zZMiQ3HDDDfnlL3+ZX/ziFzO0W2KJJTJ+/Gv/V/Kxxx7LhhtumDvvvDPDhg3Leuutl49//OOd+08++eQ88sgjM40EGj16dHbeeecMHTp0/l4YADRErwOeUsoaSXZJ8vYki3TbXWutxscCALxFlVJyxhln5IADDsirr76alVZaKaecckp22GGHjBs3Lu9+97tz7733ZuTIkTMsrDx58uQkydve9rYMHDgwgwcPzqKLvvbw1o6OjiyyyCIZNmzYDMdcdNFFufTSS/vuAgHgTa5XAU8pZe8k56S1uPJTSV7p1qTOdBAAAG8Zw4YNy5gxY3rcN3LkyEyaNKnHfSuvvHJqnfX/lTz66KNn2rbIIovkH//4xxzVCQALqt6O4DkyyZVJ9qu1+q8pAAAAwJtIbwOe5ZMcINwBAAAAePPp1WPSk9ySZI35WQgAAAAAc6a3I3g+l+SyUsr/JbkuybPdG9RaX52XhQEAAADQO70NeB5PcleSC2axv76BvgAAAACYh3obyvw0yceSXJHk/sz8FC0AAPrZR077fX+X8JZ01SGb9HcJANDrgGeHJF+utf5gfhYDAAAAwBvX20WWX0xy7/wsBAAAAIA509uA59wkn5ifhQAAAAAwZ3o7RevRJLuXUq5P8l/p+Sla58zLwgAAAADond4GPGe0/1wpyQd72F+TCHgAAAAA+kFvA55V5msVAAAAAMyxXgU8tdZH53chAAAAAMyZ3i6yDAAAAMCb1CxH8JRSHk7y77XWu0sp/5vWOjuzUmut75jn1QEAAADwumY3RWtMkue7/Dy7gAcAAACAfjLLgKfW+qkuP3+yT6oBAAAA4A2b5Ro8pZSHSyn/0pfFAAAAAPDGzW6R5ZWTLNxHdQAAAAAwhzxFCwAAAKDhXi/gsbAyAAAAwJvc7J6ilSTHlFKe6UU/tda6z7woCAAAAIA35vUCnnWS/LMX/RjpAwAAANBPXi/g2bHWenufVAIAAADAHLHIMgAAAEDDCXgAAAAAGk7AAwAAANBwswx4aq0LWX8HAADevP75z39mv/32y0orrZShQ4dm3XXXza9//etZtv3iF7+YFVZYIUsttVQOOuigTJkypXP/6aefnvXXXz8LL7xwPvnJT87ynMccc0xKKbnhhhvm9eUAMBeM4AEAgIaaOnVq3v72t2fMmDF57rnncuyxx2a33XbLI488MlPbE088MWPHjs0999yTBx54IH/84x9z3HHHde5fYYUVcsQRR2Tfffed5fkeeuihXHLJJRk+fPj8uBwA5oKABwAAGmqxxRbL0UcfnZVXXjkLLbRQtt9++6yyyiq58847Z2p71VVX5fOf/3yWXnrpDBs2LJ///OdzzjnndO7faaedsuOOO2aZZZaZ5fk+97nP5aSTTsrgwYPny/UAMOcEPAAAsICYMGFCHnjggay55poz7au1ptY6w/vHH388zz33XK/6vvjiizN48OBst91286xeAOadgf1dAAAAMPemTJmSPfbYI/vss09WX331mfZ/+MMfzg9+8INsscUWmTZtWk499dQkyUsvvZQlllhitn1PmjQphx12WK677rr5UjsAc6/PR/CUUi4opTxZSnm+lPJAKeXTfV0DAAAsSF599dXstddeGTx4cE4//fQe2xx++OFZd911s84662TjjTfOjjvumEGDBmW55ZZ73f6POuqo7LXXXllllVXmdekAzCP9MUXrhCQr11oXT/LRJMeVUtbrhzoAAKDxaq3Zb7/9MmHChFx66aUZNGhQj+2GDBmS008/PU888UQefvjhLLPMMllvvfUyYMCA1z3HjTfemFNPPTXLL798ll9++Tz22GPZbbfdctJJJ83rywFgDvX5FK1a61+6vm2/3pFk5pXgAACA2TrwwANz33335YYbbsiQIUNm2e6JJ55IKSXDhw/PbbfdlmOPPTZnn3125/6pU6dm6tSpmTZtWqZNm5bJkydn4MCBGThwYG688cYZHqm+wQYb5Hvf+14+/OEPz9drA6D3+mWR5VLKj0opLyW5P8mTSa7tjzoAAKDJHn300fzkJz/Jn/70pyy//PLp6OhIR0dHfv7zn2fcuHHp6OjIuHHjkrQecb7xxhtnscUWyz777JMTTzwx22yzTWdfxx13XIYMGZITTzwxF1xwQYYMGdL5GPVlllmmc/TO8ssvnwEDBmSppZZKR0dHv1w3ADMrXVfS79MTlzIgyfuSbJ7kpFrrlG7790+yf5KMHDlyvUcffbTPawQAaJKPnPb7/i7hLemqQzbp7xJgjvjfjP5x1eDD+7uEt67PjunvCuaJUsqdtdb1u2/vt8ek11qn1Vp/n2REkgN72H9mrXX9Wuv6w4YN6/sCAQAAABqi3wKeLgamtQYPAAAAAHOgTwOeUspypZSPl1I6SikDSikfSrJ7kt/0ZR0AAAAAC5K+fopWTWs61o/TCpceTfKFWuuVfVwHAAAAwAKjTwOeWuvTST7Ql+cEAAAAWND19QgeAABYsPzEv1/2iwXkaTgA88qbYZFlAAAAAOaCgAcAAACg4QQ8AAAAAA0n4AEAAABoOAEPAAAAQMMJeAAAAAAaTsADAAAA0HACHgAAAICGE/AAAAAANJyABwAAAKDhBDwAAAAADSfgAQAAAGg4AQ8AAABAwwl4AAAAABpOwAMAAADQcAIeAAAAgIYT8AAAAAA0nIAHAAAAoOEEPAAAAAANJ+ABAAAAaDgBDwAAAEDDCXgAAAAAGk7AAwAAANBwAh4AAACAhhPwAAAAADScgAcAAACg4QQ8AAAAAA0n4AEAAABoOAEPAAAAQMMJeAAAAAAaTsADAAAA0HACHgAAAICGE/AAAAAANJyABwAAAKDhBDwAAAAADSfgAQAAAGg4AQ8AAABAwwl4AAAAABpOwAMAAADQcAIeAAAAgIYT8AAAAAA0nIAHAAAAoOEEPAAAAAANJ+ABAAAAaDgBD/D/27v7aK+rOl/g7x0IHDlEmuATCRrhGKVeMycLy0XTpGU6glnmEzl3LFOnh9utueYDKq3lXKc1dVUsswdAvI5GQU+3shrRKO8SZ8LlQxd7UCQSTTQ4yFEO7vvHOZ45CCg2cn7nC6/XWr/1O7+99++7P99/vv54u7/7CwAAQMMJeAAAAAAaTsADAAAA0HACHgAAAICGE/AAAAAANJyABwAAAKDhBDwAAAAADSfgAQAAAGg4AQ8AAABAwwl4AAAAABpOwAMAAADQcAIeAAAAgIYT8AAAAAA0nIAHAAAAoOEEPAAAAAAN168BTyllaCnlK6WUB0spa0op/15KObo/awAAAADY3vT3Cp7BSR5K8rYkI5NckOTGUsq4fq4DAAAAYLsxuD8nq7WuTTK9T9N3Sym/S/KGJA/0Zy0AAAAA24uW7sFTStk9yYQk92ym78xSyuJSyuJHH320/4sDAAAAaIiWBTyllJ2SzE0yq9b6q+f211qvqbUeWms9dNSoUf1fIMAO7sorr8yhhx6aoUOHZtq0aVsc9+EPfzjt7e29r6FDh2bEiBG9/X372tvbM2jQoJx77rlJkrlz527Ut/POO6eUkjvvvHNbnx4AAGxXWhLwlFJelmROkqeTnNOKGgB4fnvttVfOP//8nHHGGc877otf/GI6Ojp6XyeddFLe+9739vb37Vu5cmXa2tp6+08++eSN+mfOnJn99tsvhxxyyDY9NwAA2N706x48SVJKKUm+kmT3JO+qta7v7xoAeGFTpkxJkixevDjLly/fqu+sXbs28+bNy3e/+93N9n/jG9/I6NGjc8QRR2y2f9asWTnttNPS/Z8KAABga7ViBc/VSQ5I8p5a67oWzA/ANjJv3ryMGjUqb33rWzfb/3wBzoMPPphbb701p5122rYuEwAAtjv9GvCUUsYm+VCSg5M8XErp6Hmd3J91ALBtPF+As2zZsixcuDCnn376Zr87e/bsHHHEEdl33323dZkAALDd6e/HpD+YxLp7gO3QQw89lIULF+bLX/7yZvtnz56dSZMmbTHAmT17ds4777xtWSIAAGy3WvqYdAC2H7Nnz86b3/zm7Lffflvs39LqnUWLFmXFihU54YQTtmWJAACw3RLwALBZXV1d6ezszIYNG7Jhw4Z0dnamq6tri+Nnz569xcep//znP8/vf//7jZ6u1desWbMyderUjR6vDgAAbD0BDwCbNWPGjLS1teWyyy7Lddddl7a2tsyYMSPLli1Le3t7li1b1jv2F7/4RZYvX/68Ac6UKVM2G+B0dnbmxhtv3OLqHgAA4IX1+2PSAWiG6dOnZ/r06Zvt6+jo2Ojz4YcfnrVr127xWF/60pe22Dds2LA88cQTf1aNAABANyt4AAAAABpOwAMAAADQcAIeAAAAgIYT8AAAAAA0nE2WAQao91zxs1aXsEP6zrmTWl0CAAC8aFbwAAAAADScgAcAAACg4QQ8AAAAAA0n4AEAAABoOAEPAAAAQMMJeAAAAAAaTsADAAAA0HACHgAAAICGE/AAAAAANJyABwAAAKDhBDwAAAAADSfgAYAB5Morr8yhhx6aoUOHZtq0aVv1ncmTJ6eUkq6urt62VatW5fjjj8/w4cMzduzYXH/99b19Tz/9dE444YSMGzcupZTccsstL/FZAADQ3wQ8ADCA7LXXXjn//PNzxhlnbNX4uXPnbhTsPOvss8/OkCFDsnLlysydOzdnnXVW7rnnnt7+SZMm5brrrssee+zxktUOAEDrDG51AQDAf5gyZUqSZPHixVm+fPnzjv3Tn/6Uiy++OLNnz87hhx/e27527drMmzcvd999d9rb2zNp0qQce+yxmTNnTi677LIMGTIkH/vYx5IkgwYN2nYnAwBAv7GCBwAa6rzzzstZZ521ySqcpUuXZtCgQZkwYUJv20EHHbTRCh4AALYvAh4AaKDFixdn0aJFOffcczfp6+joyMiRIzdqGzlyZNasWdNf5QEA0M8EPADQMM8880w+8pGP5Atf+EIGD970buv29vasXr16o7bVq1dnxIgR/VUiAAD9zB48ANAwq1evzuLFi/O+970vSbJhw4YkyZgxY3LTTTflkEMOSVdXV+6///685jWvSZIsWbIkEydObFnNAABsWwIeABhAurq60tXVlQ0bNmTDhg3p7OzM4MGDN1qpM3LkyKxYsaL380MPPZTDDjssd955Z0aNGpUhQ4ZkypQpufDCC3Pttdfml7/8ZRYsWJCf//znvd956qmnUmtN0v3Y9M7OzgwdOjSllP47WQAAXjJu0QKAAWTGjBlpa2vLZZddluuuuy5tbW2ZMWNGli1blvb29ixbtiyllOyxxx69r1GjRiVJdt999wwZMiRJMnPmzKxbty6jR4/OSSedlKuvvnqjFTz7779/2tra8vvf/z7vfOc709bWlgcffLAl5wwAwH+eFTwAMIBMnz4906dP32xfR0fHZtvHjRvXuxrnWbvuumvmz5+/xXkeeOCBP7dEAAAGICt4AAAAABpOwAMAAADQcAIeAAAAgIYT8AAAAAA0nIAHAAAAoOE8RQsA+vrS21pdwY7rQwtbXQEAQGNZwQMAAADQcAIeAAAAgIYT8AAAAAA0nIAHAAAAoOEEPAAAAAANJ+ABAAAAaDgBDwAAAEDDCXgAAAAAGk7AAwAAANBwAh4AAACAhhPwAAAAADScgAcAAACg4QQ8AAAAAA0n4AEAAABoOAEPAAAAQMMJeAAAAAAaTsADAAAA0HACHgAAAICGE/AAAAAANJyABwAAAKDhBDwAAAAADSfg2UGsWrUqxx9/fIYPH56xY8fm+uuv3+y4WmvOP//87L333hk5cmSOPPLI3HPPPRuNueGGG3LAAQdk+PDhefWrX53bbrstSTJ37ty0t7f3vnbeeeeUUnLnnXdu8/MDAACAHZmAZwdx9tlnZ8iQIVm5cmXmzp2bs846a5PgJkluuummfPWrX81tt92WVatW5fDDD8+pp57a23/zzTfn05/+dL72ta9lzZo1ufXWW7PffvslSU4++eR0dHT0vmbOnJn99tsvhxxySL+dJwAAAOyI+j3gKaWcU0pZXEp5qpTy9f6ef0e0du3azJs3L5deemna29szadKkHHvssZkzZ84mY3/3u99l0qRJ2W+//TJo0KCccsopuffee3v7L7roolx44YV505velJe97GXZe++9s/fee2923lmzZuW0005LKWWbnRsAAADQmhU87cIafQAAEkJJREFUK5LMSPLVFsy9Q1q6dGkGDRqUCRMm9LYddNBBm13B8/73vz+//vWvs3Tp0qxfvz6zZs3KUUcdlSTZsGFDFi9enEcffTTjx4/PmDFjcs4552TdunWbHOfBBx/MrbfemtNOO23bnRgAAACQJBnc3xPWWr+ZJKWUQ5OM6e/5d0QdHR0ZOXLkRm0jR47MmjVrNhm755575ogjjsj++++fQYMG5VWvelV++tOfJklWrlyZ9evX5xvf+EZuu+227LTTTjnuuOMyY8aMfPazn93oOLNnz84RRxyRfffdd9udGAAAAJBkAO/BU0o5s+dWrsWPPvpoq8tptPb29qxevXqjttWrV2fEiBGbjL344otzxx135KGHHkpnZ2cuuuiiTJ48OU8++WTa2tqSJOeee2723HPP7LbbbvnEJz6R73//+5scZ/bs2Tn99NO3zQkBAAAAGxmwAU+t9Zpa66G11kNHjRrV6nIabcKECenq6sr999/f27ZkyZJMnDhxk7FLlizJ+973vowZMyaDBw/OtGnT8vjjj+fee+/NLrvskjFjxrzgnjqLFi3KihUrcsIJJ7zk5wIAAABsasAGPLx0hg8fnilTpuTCCy/M2rVrs2jRoixYsGCjp2M9641vfGNuuummrFy5Ms8880zmzJmT9evXZ/z48UmSD37wg7niiivyyCOP5PHHH8/nP//5HHPMMRsdY9asWZk6depmVwgBAAAAL71+34OH1pg5c2bOOOOMjB49Oq985Stz9dVXZ+LEiVm2bFle+9rX5t57780+++yTT3/603nkkUdy8MEHZ+3atRk/fnzmzZuXV7ziFUmSCy64IH/84x8zYcKEDBs2LCeeeGI+85nP9M7T2dmZG2+8MfPmzWvVqQIAAMAOp98DnlLK4J55ByUZVEoZlqSr1trV37XsSHbdddfMnz9/k/Z99tknHR0dvZ+HDRuWq666KlddddVmj7PTTjtl5syZmTlz5mb7hw0blieeeOKlKRoAAADYKq24Rev8JOuS/EOSU3r+Pr8FdQAAAABsF1rxmPTpSab397wAAAAA2yubLMM2tmrVqhx//PEZPnx4xo4dm+uvv36LY3/729/mmGOOyYgRI7LbbrvlU5/6VG/ffffdl8mTJ2fkyJEZP358vvWtb2303WuvvTbjx49Pe3t7jjrqqKxYsWKbnRMAAAADi4AHtrGzzz47Q4YMycqVKzN37tycddZZueeeezYZ9/TTT+cd73hHJk+enIcffjjLly/PKaeckiTp6urKcccdl2OOOSarVq3KNddck1NOOSVLly5NkixcuDDnnXdeFixYkFWrVmXffffNSSed1K/nCQAAQOsIeGAbWrt2bebNm5dLL7007e3tmTRpUo499tjMmTNnk7Ff//rXs9dee+UTn/hEhg8fnmHDhuXAAw9MkvzqV7/KihUr8vGPfzyDBg3K5MmT85a3vKX3ON/5znfy3ve+NxMnTsyQIUNywQUX5NZbb81vfvObfj1fAAAAWsNj0vvRe674WatL2CF959xJLZt76dKlGTRoUCZMmNDbdtBBB2XhwoWbjL399tszbty4HH300bnjjjvyute9LldccUVe//rXp9a6yfhaa+6+++7ev/uOefbvu+++O69+9atf6tMCAABggLGCB7ahjo6OjBw5cqO2kSNHZs2aNZuMXb58eW644Yb8/d//fVasWJF3v/vdOe644/L000/nL/7iLzJ69OhcfvnlWb9+fX70ox9l4cKFefLJJ5Mk73rXu3LjjTfmrrvuyrp163LJJZeklNLbDwAAwPZNwAPbUHt7e1avXr1R2+rVqzNixIhNxra1tWXSpEk5+uijM2TIkHzyk5/MY489lvvuuy877bRT5s+fn+9973vZY4898rnPfS4nnnhixowZkyR5+9vfnosvvjhTp07N2LFjM27cuIwY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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "from performance import Plotter\n", - "\n", - "pl = Plotter('v_counts')\n", - "pl.plot_performance()" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [], - "source": [ - "def merge_dfs(df):\n", - " start = time.time()\n", - " df1 = df[['altitude', 'cadence', 'distance', 'hr', 'time']]\n", - " df2 = df[['latitude', 'longitude', 'power', 'speed', 'time']]\n", - " df3 = df1.merge(df2, on='time')\n", - " end = time.time() - start\n", - " return len(df3), end" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "TIME python: 160.94312167167664\n", - "TIME SDC: 284.91856871040363\n" - ] - } - ], - "source": [ - "sdc_merge = hpat.jit(merge_dfs)\n", - "_, t = merge_dfs(df)\n", - "_, sdc_t = sdc_merge(df)\n", - "\n", - "print(\"TIME python: \", t)\n", - "print(\"TIME SDC: \", sdc_t)" - ] - }, { "cell_type": "code", "execution_count": 20, @@ -607,7 +524,7 @@ " grp = df.groupby('power')\n", " mean = grp['speed'].mean()\n", " end = time.time() - start\n", - " return mean, end\n" + " return mean, end" ] }, { @@ -625,7 +542,7 @@ } ], "source": [ - "sdc_groupby = hpat.jit(groupby_operation)\n", + "sdc_groupby = numba.jit(groupby_operation)\n", "_, t = groupby_operation(df)\n", "_, sdc_t = sdc_groupby(df)\n", "\n", @@ -642,82 +559,40 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 29, "metadata": {}, "outputs": [], "source": [ "def data_split(df):\n", " start = time.time()\n", " # Remove entries where power==0\n", + " train = df.drop('time', axis=1)\n", " train = df[df.power!=0]\n", - " # Reduce the dataset, create X. We drop the target, and other non-essential features.\n", - " reduced_dataset = train.drop(['time','power','latitude','longitude'], axis=1)\n", + " # Reduce the dataset, create X. We drop the target, and other non-essential features\n", + " reduced_train = train.drop(['time','power','latitude','longitude'], axis=1)\n", " # Get the target, create Y as an 2d array of float64\n", - " target = train.power.values.reshape(len(train), 1).astype(np.float64)\n", + " target = train.power.values.reshape(len(train),1).astype(np.float64)\n", " end = time.time() - start\n", " \n", - " return train, target, end" + " return reduced_train, target, end" ] }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 30, "metadata": {}, "outputs": [ { - "ename": "LoweringError", - "evalue": "Failed in nopython mode pipeline (step: nopython mode backend)\n\u001b[1m\u001b[1mCannot cast dataframe((array(float64, 1d, C), array(int64, 1d, C), array(float64, 1d, C), array(int64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(int64, 1d, C), array(float64, 1d, C), StringArrayType()), none, ('altitude', 'cadence', 'distance', 'hr', 'latitude', 'longitude', 'power', 'speed', 'time'), False) to dataframe((array(float64, 1d, C), array(int64, 1d, C), array(float64, 1d, C), array(int64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(int64, 1d, C), array(float64, 1d, C), StringArrayType()), none, ('altitude', 'cadence', 'distance', 'hr', 'latitude', 'longitude', 'power', 'speed', 'time'), True): %\".4503\" = load {{{i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, i64*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, i64*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, i64*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i64, i64, i32*, i8*, i8*, i8*}}, i8*, [9 x {i8*, i64, i32, i32, i64, i8*, i8*}], [10 x i8], i8*}, {{{i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, i64*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, i64*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, i64*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i64, i64, i32*, i8*, i8*, i8*}}, i8*, [9 x {i8*, i64, i32, i32, i64, i8*, i8*}], [10 x i8], i8*}* %\"$0.24.2147\"\n\u001b[1m\nFile \"\", line 2:\u001b[0m\n\u001b[1m\u001b[0m\n\u001b[0m\n\u001b[0m\u001b[1m[1] During: lowering \"$train.2294 = $0.24.2147\" at (2)\u001b[0m\n", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mNotImplementedError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\targets\\base.py\u001b[0m in \u001b[0;36mcast\u001b[1;34m(self, builder, val, fromty, toty)\u001b[0m\n\u001b[0;32m 690\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 691\u001b[1;33m \u001b[0mimpl\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_casts\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfind\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfromty\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtoty\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 692\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mimpl\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mbuilder\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfromty\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtoty\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mval\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\targets\\base.py\u001b[0m in \u001b[0;36mfind\u001b[1;34m(self, sig)\u001b[0m\n\u001b[0;32m 49\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mout\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 50\u001b[1;33m \u001b[0mout\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_find\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msig\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 51\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_cache\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0msig\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mout\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\targets\\base.py\u001b[0m in \u001b[0;36m_find\u001b[1;34m(self, sig)\u001b[0m\n\u001b[0;32m 58\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 59\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mNotImplementedError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msig\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 60\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mNotImplementedError\u001b[0m: (, (dataframe((array(float64, 1d, C), array(int64, 1d, C), array(float64, 1d, C), array(int64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(int64, 1d, C), array(float64, 1d, C), StringArrayType()), none, ('altitude', 'cadence', 'distance', 'hr', 'latitude', 'longitude', 'power', 'speed', 'time'), False), dataframe((array(float64, 1d, C), array(int64, 1d, C), array(float64, 1d, C), array(int64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(int64, 1d, C), array(float64, 1d, C), StringArrayType()), none, ('altitude', 'cadence', 'distance', 'hr', 'latitude', 'longitude', 'power', 'speed', 'time'), True)))", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001b[1;31mNotImplementedError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\errors.py\u001b[0m in \u001b[0;36mnew_error_context\u001b[1;34m(fmt_, *args, **kwargs)\u001b[0m\n\u001b[0;32m 716\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 717\u001b[1;33m \u001b[1;32myield\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 718\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mNumbaError\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\lowering.py\u001b[0m in \u001b[0;36mlower_block\u001b[1;34m(self, block)\u001b[0m\n\u001b[0;32m 259\u001b[0m loc=self.loc, errcls_=defaulterrcls):\n\u001b[1;32m--> 260\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlower_inst\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0minst\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 261\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\lowering.py\u001b[0m in \u001b[0;36mlower_inst\u001b[1;34m(self, inst)\u001b[0m\n\u001b[0;32m 302\u001b[0m \u001b[0mty\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtypeof\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0minst\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtarget\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mname\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 303\u001b[1;33m \u001b[0mval\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlower_assign\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mty\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0minst\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 304\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstorevar\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mval\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0minst\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtarget\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mname\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\lowering.py\u001b[0m in \u001b[0;36mlower_assign\u001b[1;34m(self, ty, inst)\u001b[0m\n\u001b[0;32m 469\u001b[0m \u001b[0moty\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtypeof\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mname\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 470\u001b[1;33m \u001b[0mres\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcontext\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcast\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mbuilder\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mval\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0moty\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mty\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 471\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mincref\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mty\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mres\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\targets\\base.py\u001b[0m in \u001b[0;36mcast\u001b[1;34m(self, builder, val, fromty, toty)\u001b[0m\n\u001b[0;32m 694\u001b[0m raise NotImplementedError(\n\u001b[1;32m--> 695\u001b[1;33m \"Cannot cast %s to %s: %s\" % (fromty, toty, val))\n\u001b[0m\u001b[0;32m 696\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mNotImplementedError\u001b[0m: Cannot cast dataframe((array(float64, 1d, C), array(int64, 1d, C), array(float64, 1d, C), array(int64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(int64, 1d, C), array(float64, 1d, C), StringArrayType()), none, ('altitude', 'cadence', 'distance', 'hr', 'latitude', 'longitude', 'power', 'speed', 'time'), False) to dataframe((array(float64, 1d, C), array(int64, 1d, C), array(float64, 1d, C), array(int64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(int64, 1d, C), array(float64, 1d, C), StringArrayType()), none, ('altitude', 'cadence', 'distance', 'hr', 'latitude', 'longitude', 'power', 'speed', 'time'), True): %\".4503\" = load {{{i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, i64*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, i64*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, i64*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i64, i64, i32*, i8*, i8*, i8*}}, i8*, [9 x {i8*, i64, i32, i32, i64, i8*, i8*}], [10 x i8], i8*}, {{{i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, i64*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, i64*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, i64*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i64, i64, i32*, i8*, i8*, i8*}}, i8*, [9 x {i8*, i64, i32, i32, i64, i8*, i8*}], [10 x i8], i8*}* %\"$0.24.2147\"", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001b[1;31mLoweringError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[0msdc_split\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mhpat\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mjit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdata_split\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[0mtrain\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtarget\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mt\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mdata_split\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdf\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[0msdc_train\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msdc_target\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msdc_t\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msdc_split\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdf\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"TIME python: \"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mt\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\dispatcher.py\u001b[0m in \u001b[0;36m_compile_for_args\u001b[1;34m(self, *args, **kws)\u001b[0m\n\u001b[0;32m 418\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpatch_message\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'\\n'\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mjoin\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mstr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0me\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrstrip\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mhelp_msg\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 419\u001b[0m \u001b[1;31m# ignore the FULL_TRACEBACKS config, this needs reporting!\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 420\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 421\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 422\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0minspect_llvm\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msignature\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mNone\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\dispatcher.py\u001b[0m in \u001b[0;36m_compile_for_args\u001b[1;34m(self, *args, **kws)\u001b[0m\n\u001b[0;32m 351\u001b[0m \u001b[0margtypes\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtypeof_pyval\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ma\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 352\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 353\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcompile\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtuple\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0margtypes\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 354\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0merrors\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mForceLiteralArg\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 355\u001b[0m \u001b[1;31m# Received request for compiler re-entry with the list of arguments\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\compiler_lock.py\u001b[0m in \u001b[0;36m_acquire_compile_lock\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m 30\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_acquire_compile_lock\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 31\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 32\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 33\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0m_acquire_compile_lock\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 34\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\dispatcher.py\u001b[0m in \u001b[0;36mcompile\u001b[1;34m(self, sig)\u001b[0m\n\u001b[0;32m 766\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_cache_misses\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0msig\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m+=\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 767\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 768\u001b[1;33m \u001b[0mcres\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_compiler\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcompile\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mreturn_type\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 769\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0merrors\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mForceLiteralArg\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 770\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mfolded\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkws\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\dispatcher.py\u001b[0m in \u001b[0;36mcompile\u001b[1;34m(self, args, return_type)\u001b[0m\n\u001b[0;32m 75\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 76\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mcompile\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mreturn_type\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 77\u001b[1;33m \u001b[0mstatus\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mretval\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_compile_cached\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mreturn_type\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 78\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mstatus\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 79\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mretval\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\dispatcher.py\u001b[0m in \u001b[0;36m_compile_cached\u001b[1;34m(self, args, return_type)\u001b[0m\n\u001b[0;32m 89\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 90\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 91\u001b[1;33m \u001b[0mretval\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_compile_core\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mreturn_type\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 92\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0merrors\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mTypingError\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 93\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_failed_cache\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\dispatcher.py\u001b[0m in \u001b[0;36m_compile_core\u001b[1;34m(self, args, return_type)\u001b[0m\n\u001b[0;32m 107\u001b[0m \u001b[0margs\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mreturn_type\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mreturn_type\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 108\u001b[0m \u001b[0mflags\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mflags\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlocals\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlocals\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 109\u001b[1;33m pipeline_class=self.pipeline_class)\n\u001b[0m\u001b[0;32m 110\u001b[0m \u001b[1;31m# Check typing error if object mode is used\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 111\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mcres\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtyping_error\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[1;32mNone\u001b[0m \u001b[1;32mand\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0mflags\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0menable_pyobject\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\compiler.py\u001b[0m in \u001b[0;36mcompile_extra\u001b[1;34m(typingctx, targetctx, func, args, return_type, flags, locals, library, pipeline_class)\u001b[0m\n\u001b[0;32m 526\u001b[0m pipeline = pipeline_class(typingctx, targetctx, library,\n\u001b[0;32m 527\u001b[0m args, return_type, flags, locals)\n\u001b[1;32m--> 528\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mpipeline\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcompile_extra\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfunc\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 529\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 530\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\compiler.py\u001b[0m in \u001b[0;36mcompile_extra\u001b[1;34m(self, func)\u001b[0m\n\u001b[0;32m 324\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstate\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlifted\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 325\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstate\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlifted_from\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 326\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_compile_bytecode\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 327\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 328\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mcompile_ir\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfunc_ir\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlifted\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlifted_from\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mNone\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\compiler.py\u001b[0m in \u001b[0;36m_compile_bytecode\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 383\u001b[0m \"\"\"\n\u001b[0;32m 384\u001b[0m \u001b[1;32massert\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstate\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfunc_ir\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 385\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_compile_core\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 386\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 387\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_compile_ir\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\compiler.py\u001b[0m in \u001b[0;36m_compile_core\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 363\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstate\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstatus\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfail_reason\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 364\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mis_final_pipeline\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 365\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 366\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 367\u001b[0m \u001b[1;32mraise\u001b[0m \u001b[0mCompilerError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"All available pipelines exhausted\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\compiler.py\u001b[0m in \u001b[0;36m_compile_core\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 354\u001b[0m \u001b[0mres\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 355\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 356\u001b[1;33m \u001b[0mpm\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstate\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 357\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstate\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcr\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 358\u001b[0m \u001b[1;32mbreak\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\compiler_machinery.py\u001b[0m in \u001b[0;36mrun\u001b[1;34m(self, state)\u001b[0m\n\u001b[0;32m 326\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpipeline_name\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mpass_desc\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 327\u001b[0m \u001b[0mpatched_exception\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_patch_error\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmsg\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 328\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mpatched_exception\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 329\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 330\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mdependency_analysis\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\compiler_machinery.py\u001b[0m in \u001b[0;36mrun\u001b[1;34m(self, state)\u001b[0m\n\u001b[0;32m 317\u001b[0m \u001b[0mpass_inst\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0m_pass_registry\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpss\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpass_inst\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 318\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpass_inst\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mCompilerPass\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 319\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_runPass\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0midx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mpass_inst\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mstate\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 320\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 321\u001b[0m \u001b[1;32mraise\u001b[0m \u001b[0mBaseException\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Legacy pass in use\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\compiler_lock.py\u001b[0m in \u001b[0;36m_acquire_compile_lock\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m 30\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_acquire_compile_lock\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 31\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 32\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 33\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0m_acquire_compile_lock\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 34\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\compiler_machinery.py\u001b[0m in \u001b[0;36m_runPass\u001b[1;34m(self, index, pss, internal_state)\u001b[0m\n\u001b[0;32m 279\u001b[0m \u001b[0mmutated\u001b[0m \u001b[1;33m|=\u001b[0m \u001b[0mcheck\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpss\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrun_initialization\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0minternal_state\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 280\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0mSimpleTimer\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mpass_time\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 281\u001b[1;33m \u001b[0mmutated\u001b[0m \u001b[1;33m|=\u001b[0m \u001b[0mcheck\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpss\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrun_pass\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0minternal_state\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 282\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0mSimpleTimer\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mfinalize_time\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 283\u001b[0m \u001b[0mmutated\u001b[0m \u001b[1;33m|=\u001b[0m \u001b[0mcheck\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpss\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrun_finalizer\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0minternal_state\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\compiler_machinery.py\u001b[0m in \u001b[0;36mcheck\u001b[1;34m(func, compiler_state)\u001b[0m\n\u001b[0;32m 266\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 267\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mcheck\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfunc\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcompiler_state\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 268\u001b[1;33m \u001b[0mmangled\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mfunc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcompiler_state\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 269\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mmangled\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[1;32min\u001b[0m \u001b[1;33m(\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;32mFalse\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 270\u001b[0m msg = (\"CompilerPass implementations should return True/False. \"\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\typed_passes.py\u001b[0m in \u001b[0;36mrun_pass\u001b[1;34m(self, state)\u001b[0m\n\u001b[0;32m 378\u001b[0m \u001b[0mstate\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlibrary\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0menable_object_caching\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 379\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 380\u001b[1;33m \u001b[0mNativeLowering\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrun_pass\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mstate\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;31m# TODO: Pull this out into the pipeline\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 381\u001b[0m \u001b[0mlowered\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mstate\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'cr'\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 382\u001b[0m \u001b[0msignature\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mtyping\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msignature\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mstate\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreturn_type\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m*\u001b[0m\u001b[0mstate\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\typed_passes.py\u001b[0m in \u001b[0;36mrun_pass\u001b[1;34m(self, state)\u001b[0m\n\u001b[0;32m 323\u001b[0m lower = lowering.Lower(targetctx, library, fndesc, interp,\n\u001b[0;32m 324\u001b[0m metadata=metadata)\n\u001b[1;32m--> 325\u001b[1;33m \u001b[0mlower\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlower\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 326\u001b[0m \u001b[1;32mif\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0mflags\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mno_cpython_wrapper\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 327\u001b[0m \u001b[0mlower\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcreate_cpython_wrapper\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mflags\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrelease_gil\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\lowering.py\u001b[0m in \u001b[0;36mlower\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 177\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgenerator_info\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 178\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgenlower\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 179\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlower_normal_function\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfndesc\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 180\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 181\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgenlower\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mGeneratorLower\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\lowering.py\u001b[0m in \u001b[0;36mlower_normal_function\u001b[1;34m(self, fndesc)\u001b[0m\n\u001b[0;32m 218\u001b[0m \u001b[1;31m# Init argument values\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 219\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mextract_function_arguments\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 220\u001b[1;33m \u001b[0mentry_block_tail\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlower_function_body\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 221\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 222\u001b[0m \u001b[1;31m# Close tail of entry block\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\lowering.py\u001b[0m in \u001b[0;36mlower_function_body\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 243\u001b[0m \u001b[0mbb\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mblkmap\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0moffset\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 244\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mbuilder\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mposition_at_end\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mbb\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 245\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlower_block\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mblock\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 246\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 247\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpost_lower\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\lowering.py\u001b[0m in \u001b[0;36mlower_block\u001b[1;34m(self, block)\u001b[0m\n\u001b[0;32m 258\u001b[0m with new_error_context('lowering \"{inst}\" at {loc}', inst=inst,\n\u001b[0;32m 259\u001b[0m loc=self.loc, errcls_=defaulterrcls):\n\u001b[1;32m--> 260\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlower_inst\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0minst\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 261\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 262\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mcreate_cpython_wrapper\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mrelease_gil\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mFalse\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\contextlib.py\u001b[0m in \u001b[0;36m__exit__\u001b[1;34m(self, type, value, traceback)\u001b[0m\n\u001b[0;32m 128\u001b[0m \u001b[0mvalue\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mtype\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 129\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 130\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgen\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mthrow\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtype\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtraceback\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 131\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mStopIteration\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mexc\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 132\u001b[0m \u001b[1;31m# Suppress StopIteration *unless* it's the same exception that\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\errors.py\u001b[0m in \u001b[0;36mnew_error_context\u001b[1;34m(fmt_, *args, **kwargs)\u001b[0m\n\u001b[0;32m 723\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mnumba\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mconfig\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 724\u001b[0m \u001b[0mtb\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msys\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexc_info\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m2\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mconfig\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mFULL_TRACEBACKS\u001b[0m \u001b[1;32melse\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 725\u001b[1;33m \u001b[0msix\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreraise\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtype\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnewerr\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnewerr\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtb\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 726\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 727\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\akharche\\Anaconda\\miniconda3\\envs\\sdc_fork311019\\lib\\site-packages\\numba\\six.py\u001b[0m in \u001b[0;36mreraise\u001b[1;34m(tp, value, tb)\u001b[0m\n\u001b[0;32m 667\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mvalue\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__traceback__\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0mtb\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 668\u001b[0m \u001b[1;32mraise\u001b[0m \u001b[0mvalue\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mwith_traceback\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtb\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 669\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mvalue\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 670\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 671\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mLoweringError\u001b[0m: Failed in nopython mode pipeline (step: nopython mode backend)\n\u001b[1m\u001b[1mCannot cast dataframe((array(float64, 1d, C), array(int64, 1d, C), array(float64, 1d, C), array(int64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(int64, 1d, C), array(float64, 1d, C), StringArrayType()), none, ('altitude', 'cadence', 'distance', 'hr', 'latitude', 'longitude', 'power', 'speed', 'time'), False) to dataframe((array(float64, 1d, C), array(int64, 1d, C), array(float64, 1d, C), array(int64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(int64, 1d, C), array(float64, 1d, C), StringArrayType()), none, ('altitude', 'cadence', 'distance', 'hr', 'latitude', 'longitude', 'power', 'speed', 'time'), True): %\".4503\" = load {{{i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, i64*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, i64*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, i64*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i64, i64, i32*, i8*, i8*, i8*}}, i8*, [9 x {i8*, i64, i32, i32, i64, i8*, i8*}], [10 x i8], i8*}, {{{i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, i64*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, i64*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, i64*, [1 x i64], [1 x i64]}, {i8*, i8*, i64, i64, double*, [1 x i64], [1 x i64]}, {i64, i64, i32*, i8*, i8*, i8*}}, i8*, [9 x {i8*, i64, i32, i32, i64, i8*, i8*}], [10 x i8], i8*}* %\"$0.24.2147\"\n\u001b[1m\nFile \"\", line 2:\u001b[0m\n\u001b[1m\u001b[0m\n\u001b[0m\n\u001b[0m\u001b[1m[1] During: lowering \"$train.2294 = $0.24.2147\" at (2)\u001b[0m\n" + "name": "stdout", + "output_type": "stream", + "text": [ + "TIME python: 0.8920345306396484\n", + "TIME SDC: 0.6088883920165244\n" ] } ], "source": [ - "sdc_split = hpat.jit(data_split)\n", + "sdc_split = numba.jit(data_split)\n", "train, target, t = data_split(df)\n", "sdc_train, sdc_target, sdc_t = sdc_split(df)\n", "\n", @@ -725,15 +600,6 @@ "print(\"TIME SDC: \", sdc_t)" ] }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [], - "source": [ - "train, target, t = data_split(df)" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -751,42 +617,38 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 31, "metadata": {}, - "outputs": [ - { - "ename": "ModuleNotFoundError", - "evalue": "No module named 'daal4py'", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;32mimport\u001b[0m \u001b[0mdaal4py\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0md4p\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[1;31mModuleNotFoundError\u001b[0m: No module named 'daal4py'" - ] - } - ], + "outputs": [], "source": [ "import daal4py as d4p" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "# Create a linear regression algorithm object\n", "d4p_lm = d4p.linear_regression_training(interceptFlag=True)\n", "# Train the model\n", - "lm_trained = d4p_lm.compute(reduced_dataset.values, target)" + "lm_trained = d4p_lm.compute(sdc_train.values, sdc_target)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model has this number of features: 5\n" + ] + } + ], "source": [ "print(\"Model has this number of features: \", lm_trained.model.NumberOfFeatures)" ] @@ -800,11 +662,14 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "def predict(model):\n", + " test_set = pd.read_parquet('cycling_test_dataset.pq')\n", + " test_set = test_set[test_set.power!=0]\n", + " subset = test_set.drop(['time','power','latitude','longitude'], axis=1)\n", " # create our prediction algorithm object\n", " lm_predictor = d4p.linear_regression_prediction()\n", " # Now run prediction. The arguments use the independent data and the trained model from above as the parameters.\n", @@ -815,18 +680,31 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 38, "metadata": {}, "outputs": [], "source": [ - "pred_result = predict(train_result.model)" + "pred_result = predict(lm_trained.model)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 39, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "test_set = pd.read_parquet('cycling_test_dataset.pq')\n", "test_set = test_set[test_set.power!=0]\n",