Skip to content

Instantly share code, notes, and snippets.

@fonnesbeck
Created November 9, 2016 20:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fonnesbeck/ae9a27a5351908b9b1f611e14c0b91a6 to your computer and use it in GitHub Desktop.
Save fonnesbeck/ae9a27a5351908b9b1f611e14c0b91a6 to your computer and use it in GitHub Desktop.
Section6_2-Clustering.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {},
"cell_type": "markdown",
"source": "## Unsupvervised Learning\n\nClustering is a class of unsupervised learning methods that associates observations according to some specified measure of similarity (e.g. Euclidean distance)."
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## K-means Algorithm\n\nThe K-means clustering algorithm associates each point $x_i$ in a set of input points $\\{x_1, x_2, \\ldots, x_m\\}$ to $K$ clusters. Each cluster is specified by a **centroid** that is the average location of all the points in the cluster. The algorithm proceeds iteratively from arbitrary centroid locations, updating the membership of each point according to minimum distance, then updating the centroid location based on the new cluster membership. \n\nIn this sense, it is similar to the expectation maximization (EM) algorithm. Recall that in EM we iteratively assigned labels to observations, according to which mixture component they were most likely to have been derived from. K-means is simpler, in that we just use the minimum distance to assign membership.\n\nThe algorithm will have converged when the assignment of points to centroids does not change with each iteration."
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### Algorithm\n\n1. Initialize cluster centroids:\n\n$$\\mu^{(0)}_1, \\ldots, \\mu^{(0)}_k \\in \\mathbb{R}^n$$\n\n2. Iterate until converged:\n\n a. Set $c_i = \\text{argmin}_j || x_i - \\mu_j^{(s)} ||$\n \n b. Update centroids:\n \n $$\\mu_j^{(s+1)} = \\frac{\\sum_{i=1}^m I[c_i = j] x_i}{\\sum_{i=1}^m I[c_i = j]}$$"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "The K-means algorithm is simply a Gaussian mixture model with two restrictions: \n\n1. the covariance matrix is spherical: \n\n $$\\Sigma_k = \\sigma I_D$$\n\n2. the mixture weights are fixed:\n\n $$\\pi_k = \\frac{1}{K}$$\n\nHence, we are only interested in locating the appropriate centroid of the clusters. This serves to speed computation."
},
{
"metadata": {},
"cell_type": "markdown",
"source": "We can define the distortion function:\n\n$$J(c,\\mu) = \\sum_{i]1}^m ||x_i - \\mu_{c_i}||$$\n\nwhich gets smaller at every iteration. So, k-means is coordinate ascent on $J(c,\\mu)$"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### Choosing $k$\n\nTo check whether a chosen $k$ is reasonable, one approach is to compare the distances between the centroids to the mean distance bewween each data point and their assigned centroid. A good fit involves relatively large inter-centroid distances. \n\nThe appropriate value for k (the number of clusters) may depend on the goals of the analysis, or it may be chosen algorithmically, using an optimization procedure."
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## Example: clustering random points"
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "%matplotlib inline\nimport seaborn as sns; sns.set_context('notebook')\nimport numpy as np\nimport matplotlib.pyplot as plt\n\nx, y = np.random.uniform(0, 10, 50).reshape(2, 25)\nplt.scatter(x, y)",
"execution_count": 1,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "<matplotlib.collections.PathCollection at 0x10f917080>"
},
"metadata": {},
"execution_count": 1
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nAAClE0IBACidEAoAQOmEUAAASieEAgBQOiEUAIDSCaEAAJROCAUAoHRCKAAApRNCAQAonRAKAEDp\nhFAAAEonhAIAUDohFACA0gmhAACUTggFAKB0QigAAKUTQgEAKJ0QCgBA6YRQAABKJ4QCAFA6IRQA\ngNIJoQAAlK7QEPrcc8/l4osvzoc//OEce+yxueiii/Lcc88VeQkAAOpAoSH0sssuy+OPP56lS5dm\n+fLlWbduXS699NIiLwEAQB2YUtREQ0ND+cUvfpHbbrstRxxxRJJk3rx5OfPMMzM8PJypU6cWdSkA\nACa4wu6ETpo0Kd/97ndz+OGH7xyrVCoZGRnJCy+8UNRlAACoA4XdCZ02bVqOP/743cZuueWWvPvd\n784+++xT1GUAAKgDYwqhW7duzdNPP/2av9ba2pqWlpadr1esWJGf/exnWbZs2ZiLmjzZpv1qGO2r\n/laPHleX/lafHleX/lafHldfUb1tqlQqlTf6mx988MGcddZZaWpqetWvLV68OCeddFKS5Pvf/34W\nLFiQiy++OGeeeWYhhQIAUD/GFELfiGXLlmXhwoW58MIL8/nPf77IqQEAqBOFPROaJHfffXeuu+66\nXHzxxfnc5z5X5NQAANSRwu6EbtmyJR/96EfzN3/zN/na176226/tt99+mTTJsxkAAOxQWAj96U9/\n+qrwWalU0tTUlPvvvz9vf/vbi7gMAAB1oPBnQgEA4P9ijRwAgNIJoQAAlE4IBQCgdEIoAAClE0IB\nACjduAuhzz33XC6++OJ8+MMfzrHHHpuLLroozz33XK3LmvCGh4czb968fOADH8hHPvKR9PX11bqk\nuvL000+nu7s7H/zgB3PiiSfm6quvzvDwcK3LqltdXV256KKLal1G3RkeHs4VV1yRY445Jscff3yu\nv/76WpdUVzZu3Jgvf/nLmTVrVk466aR873vfq3VJdWN4eDinnHJKfvvb3+4c27BhQ+bMmZOZM2fm\n5JNPzq9+9asaVjixvVZ/+/v78/d///eZOXNmPv7xj+eOO+4Y87zjLoRedtllefzxx7N06dIsX748\n69aty6WXXlrrsia8a665Jn/4wx9y6623Zv78+Vm8eHF+/vOf17qsutHd3Z2tW7fmBz/4Qf793/89\nv/zlL/Ptb3+71mXVpZ/85Cd54IEHal1GXVqwYEFWrVqV5cuX57rrrssPf/jD/PCHP6x1WXXj/PPP\nz5577pm777478+bNyw033JD77ruv1mVNeMPDw/nqV7+aJ554Yrfxc889NzNmzMhdd92VT37ykznv\nvPOyceM0LiP1AAAH2UlEQVTGGlU5cb1Wfzdv3pyurq586EMfyn/+53/mK1/5ShYsWJD/+q//GtPc\n4yqEDg0N5Re/+EUuu+yyHHHEEWlvb8+8efNy3333uav0FgwNDeXOO+/MJZdcksMPPzyzZ8/OF7/4\nxaxYsaLWpdWF9evX55FHHslVV12Vww47LLNmzUp3d3fuvffeWpdWd7Zs2ZKFCxfmve99b61LqTtb\ntmzJj370oyxYsCBHHXVUPvShD2Xu3Ll5+OGHa11aXXj22Wfz8MMP55xzzskhhxySk046KR/5yEfy\n61//utalTWjr1q3LZz7zmWzYsGG38VWrVuWpp57KN77xjbzrXe9KV1dXOjo6cuedd9ao0onp9fp7\n3333pbW1Nf/8z/+cQw45JJ/4xCdy6qmnjvnfvXEVQidNmpTvfve7Ofzww3eOVSqVjIyM5IUXXqhh\nZRPbY489lpGRkXR0dOwcmzVrVh555JEaVlU/Wltbs3Tp0uy33347xyqVisdIquCaa67JqaeemsMO\nO6zWpdSd1atXZ++9987RRx+9c+xLX/pSvvnNb9awqvrR3NyclpaW3HXXXdm2bVvWr1+fhx56KEcc\ncUStS5vQHnzwwRx77LG5/fbb8/Lv3nnkkUdy5JFHZtq0aTvHZs2alf7+/lqUOWG9Xn9POOGEXHXV\nVa/6/WP9d2/KW66wQNOmTcvxxx+/29gtt9ySd7/73dlnn31qVNXENzg4mH322SdTpuz6ce+///7Z\nunVrnnnmmey77741rG7i23vvvXd731YqlaxYsSLHHXdcDauqP6tWrcrq1avz4x//OPPnz691OXXn\nqaeeSltbW+65557cdNNNefHFF3PaaaflnHPOSVNTU63Lm/CmTp2ayy67LN/4xjdyyy23ZGRkJKed\ndlpOO+20Wpc2oX32s599zfHBwcHMmDFjt7H9998/Tz/9dBll1Y3X6+/b3/723b6O/U9/+lN++tOf\npru7e0zzlx5Ct27d+rpvgtbW1rS0tOx8vWLFivzsZz/LsmXLyiqvLg0NDWXq1Km7jY2+9phD8a69\n9to89thjueuuu2pdSt0YHh7O5Zdfnvnz57/qvUwxXnjhhfzxj3/MHXfckauvvjqDg4O59NJLs8ce\ne+Tzn/98rcurC+vWrUtnZ2e+8IUv5PHHH8+VV16Z4447LieffHKtS6s7r/fvnn/zird169Z85Stf\nyYwZM/J3f/d3Y/qzpYfQhx9+OGedddZrfrJevHhxTjrppCTJ97///Xzzm9/MxRdfnGOPPbbsMuvK\ntGnTXvUXb/T1y0M/b93ChQtz66235oYbbrBkXKBFixblqKOOcne5iiZPnpy//OUv+da3vpW3ve1t\nSZKBgYHcdtttQmgBVq1alTvvvDMPPPBApk6dmiOOOCIbN27MkiVLhNAqmDZtWrZs2bLb2PDwcJqb\nm2tUUX164YUXcs455+R//ud/ctttt+32+MMbUXoIPeaYY/LYY4/9f3/PsmXLsnDhwlx44YU588wz\nS6qsfh1wwAH585//nO3bt2fSpB2PAW/evDnNzc2ZPn16jaurH1deeWVuv/32LFy4MLNnz651OXXl\npz/9af70pz9l5syZSZIXX3wxSfKzn/0sDz30UC1LqxszZszItGnTdgbQJHnnO99pN3FBfv/73+fQ\nQw/d7e5ce3t7brrpphpWVb8OOOCAV+2W37x5c1pbW2tUUf15/vnn88UvfjEbNmzI9773vRx88MFj\nnmNcPROaJHfffXeuu+66XHzxxfnc5z5X63LqQnt7e6ZMmZL+/v68//3vT5L87ne/y1FHHVXjyurH\n4sWLc/vtt+f666/Pxz72sVqXU3dWrFiRbdu27Xy9cOHCJMnXv/71WpVUdzo6OrJ169Y8+eSTecc7\n3pFkx/JxW1tbjSurDzNmzMiTTz6Zbdu27Xw+f/369TnooINqXFl9et/73pelS5dmeHh4Z/BfvXr1\nbhvvePMqlUrOO++8DAwMZMWKFTn00EPf1Dzjanf8li1bcuWVV+Zv//Zv8/GPfzybN2/e+d/27dtr\nXd6E1dzcnFNPPTXz58/Po48+mvvuuy99fX05++yza11aXVi3bl2WLFmSrq6uzJw5c7f3LcU48MAD\nc/DBB+/8b88998yee+75pj5589oOPfTQnHjiibnwwgvz2GOP5b//+7+zdOnS/MM//EOtS6sLnZ2d\nmTJlSi655JL88Y9/zMqVK3PTTTflrLPOqnVpdemYY47JgQcemAsvvDBPPPFEent78+ijj+bTn/50\nrUurC3fccUcefPDBLFiwIHvttdfOf/Ne+QjE/2Vc3Qn91a9+laGhodxzzz255557kuxI201NTbn/\n/vt324nF2Fx00UW54oorcvbZZ2fvvffO+eefb8m4IPfff3+2b9+eJUuWZMmSJUl2vW/Xrl1b4+rg\njbvuuuuyYMGCnHHGGWlpacmZZ56ZM844o9Zl1YW99torN998c/7t3/4tp59+evbbb7+ce+65Of30\n02tdWt14+V6TSZMm5Tvf+U7mzZuXT33qUznkkENy44037va4CWPT1NS0s8c///nPU6lU8uUvf3m3\n3/OBD3wgt9xyyxufs/Lyg58AAKAE42o5HgCAxiCEAgBQOiEUAIDSCaEAAJROCAUAoHRCKAAApRNC\nAQAonRAKAEDphFAAAEonhAIAUDohFACA0v0/TVM8aPxAQ9kAAAAASUVORK5CYII=\n",
"text/plain": "<matplotlib.figure.Figure at 0x10615c4a8>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Let's start with $k=4$, arbitrarily assigned:"
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "centroids = (3, 3), (3, 7), (7, 3), (7, 7)",
"execution_count": 2,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "np.transpose(centroids)",
"execution_count": 3,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "array([[3, 3, 7, 7],\n [3, 7, 3, 7]])"
},
"metadata": {},
"execution_count": 3
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "plt.scatter(x, y)\nplt.scatter(*np.transpose(centroids), c='r', marker='+', s=100)",
"execution_count": 4,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "<matplotlib.collections.PathCollection at 0x10fb9a898>"
},
"metadata": {},
"execution_count": 4
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nS7N8+fKsXbs2l1xySb3LmvCuvvrq/O53v8stt9yS+fPnZ/HixfnZz35W77IaRqVSyZYtW/L9738/\n//Zv/5bFVZ9FAAAIUklEQVT//M//zLe+9a16l9WQfvzjH+f++++vdxkNacGCBVm1alWWL1+ea6+9\nNj/4wQ/ygx/8oN5lNYzzzjsve+21V+66667Mmzcv119/fe699956lzXhjY6O5itf+Uoef/zxPcbP\nOeeczJgxI3feeWc+8YlP5Nxzz82GDRvqVOXE9Ur93bRpU3p6evKBD3wg//Ef/5Evf/nLWbBgQf7r\nv/5rTNceVyF0ZGQkP//5z3PppZfmyCOPTGdnZ+bNm5d7773XU6U3YGRkJHfccUcuvvjiHHHEEZk9\ne3a+8IUvZMWKFfUurSGsW7cuDz/8cK688socfvjhmTVrViqVSu655556l9ZwNm/enIULF+bd7353\nvUtpOJs3b84Pf/jDLFiwIEcddVQ+8IEPZO7cuXnooYfqXVpDeOaZZ/LQQw/l7LPPzqGHHpoTTzwx\nH/rQh/LLX/6y3qVNaGvXrs2nP/3prF+/fo/xVatW5cknn8zXv/71vP3tb09PT0+6urpyxx131KnS\nienV+nvvvfemvb09//zP/5xDDz00H//4x3PKKaeM+ffeuAqhkyZNyne+850cccQRu8aq1Wq2bduW\n5557ro6VTWyPPvpotm3blq6url1js2bNysMPP1zHqhpHe3t7li5dmv3333/XWLVatYykBq6++uqc\ncsopOfzww+tdSsNZvXp19tlnnxx99NG7xr74xS/mG9/4Rh2rahytra1pa2vLnXfema1bt2bdunV5\n8MEHc+SRR9a7tAntgQceyLHHHpvbbrstL/7snYcffjjvfOc7M23atF1js2bNyuDgYD3KnLBerb8f\n/vCHc+WVV77s74/1996UN1xhgaZNm5bjjz9+j7Gbb74573jHO7LvvvvWqaqJb3h4OPvuu2+mTNn9\n4z7ggAOyZcuWPP3009lvv/3qWN3Et88+++zxuq1Wq1mxYkWOO+64OlbVeFatWpXVq1fnRz/6UebP\nn1/vchrOk08+mY6Ojtx999258cYb8/zzz+fUU0/N2WefnZaWlnqXN+FNnTo1l156ab7+9a/n5ptv\nzrZt23Lqqafm1FNPrXdpE9pnPvOZVxwfHh7OjBkz9hg74IAD8tRTT5VRVsN4tf6+5S1v2ePj2P/w\nhz/kJz/5SSqVypiuX3oI3bJly6u+CNrb29PW1rbr6xUrVuSnP/1pli1bVlZ5DWlkZCRTp07dY2zn\n15Y5FO+aa67Jo48+mjvvvLPepTSM0dHRXHbZZZk/f/7LXssU47nnnsvvf//73H777bnqqqsyPDyc\nSy65JG9605vyuc99rt7lNYS1a9emu7s7n//85/PYY4/liiuuyHHHHZeTTjqp3qU1nFf7ved3XvG2\nbNmSL3/5y5kxY0b+7u/+bkzfW3oIfeihh3LmmWe+4jvrxYsX58QTT0ySfO9738s3vvGNXHTRRTn2\n2GPLLrOhTJs27WX/8HZ+/eLQzxu3cOHC3HLLLbn++utNGRdo0aJFOeqoozxdrqHJkyfnz3/+c775\nzW/mzW9+c5JkaGgot956qxBagFWrVuWOO+7I/fffn6lTp+bII4/Mhg0bsmTJEiG0BqZNm5bNmzfv\nMTY6OprW1tY6VdSYnnvuuZx99tn5n//5n9x66617LH94LUoPocccc0weffTR//PvLFu2LAsXLswF\nF1yQM844o6TKGteBBx6YP/7xj9m+fXsmTdqxDHjTpk1pbW3N9OnT61xd47jiiity2223ZeHChZk9\ne3a9y2koP/nJT/KHP/whM2fOTJI8//zzSZKf/vSnefDBB+tZWsOYMWNGpk2btiuAJsnb3vY2u4kL\n8tvf/jaHHXbYHk/nOjs7c+ONN9axqsZ14IEHvmy3/KZNm9Le3l6nihrPn/70p3zhC1/I+vXr893v\nfjeHHHLImK8xrtaEJsldd92Va6+9NhdddFE++9nP1ruchtDZ2ZkpU6ZkcHAw733ve5Mkv/nNb3LU\nUUfVubLGsXjx4tx222257rrr8tGPfrTe5TScFStWZOvWrbu+XrhwYZLka1/7Wr1KajhdXV3ZsmVL\nnnjiibz1rW9NsmP6uKOjo86VNYYZM2bkiSeeyNatW3etz1+3bl0OPvjgOlfWmN7znvdk6dKlGR0d\n3RX8V69evcfGO16/arWac889N0NDQ1mxYkUOO+yw13WdcbU7fvPmzbniiivyt3/7t/nYxz6WTZs2\n7fpv+/bt9S5vwmptbc0pp5yS+fPn55FHHsm9996b/v7+nHXWWfUurSGsXbs2S5YsSU9PT2bOnLnH\n65ZiHHTQQTnkkEN2/bfXXntlr732el3vvHllhx12WE444YRccMEFefTRR/Pf//3fWbp0af7hH/6h\n3qU1hO7u7kyZMiUXX3xxfv/732flypW58cYbc+aZZ9a7tIZ0zDHH5KCDDsoFF1yQxx9/PH19fXnk\nkUfyqU99qt6lNYTbb789DzzwQBYsWJC999571++8ly6B+EvG1ZPQX/ziFxkZGcndd9+du+++O8mO\ntN3S0pL77rtvj51YjM2FF16Yyy+/PGeddVb22WefnHfeeaaMC3Lfffdl+/btWbJkSZYsWZJk9+t2\nzZo1da4OXrtrr702CxYsyOmnn562tracccYZOf300+tdVkPYe++9c9NNN+Vf//Vfc9ppp2X//ffP\nOeeck9NOO63epTWMF+81mTRpUr797W9n3rx5+eQnP5lDDz00N9xwwx7LTRiblpaWXT3+2c9+lmq1\nmi996Ut7/J33ve99ufnmm1/7NasvPvgJAABKMK6m4wEAaA5CKAAApRNCAQAonRAKAEDphFAAAEon\nhAIAUDohFACA0gmhAACUTggFAKB0QigAAKUTQgEAKN3/B8mycSqPdkKlAAAAAElFTkSuQmCC\n",
"text/plain": "<matplotlib.figure.Figure at 0x10fb9a9e8>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "We can use the function `cdist` from SciPy to calculate the distances from each point to each centroid."
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "from scipy.spatial.distance import cdist\n\ndistances = cdist(centroids, list(zip(x,y)))\ndistances.shape",
"execution_count": 5,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "(4, 25)"
},
"metadata": {},
"execution_count": 5
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "We can make the initial assignment to centroids by picking the minimum distance."
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "labels = distances.argmin(axis=0)\nlabels",
"execution_count": 6,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "array([2, 0, 2, 3, 1, 3, 2, 1, 3, 3, 0, 1, 2, 3, 0, 1, 1, 2, 2, 1, 3, 0, 1,\n 0, 1])"
},
"metadata": {},
"execution_count": 6
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "plt.scatter(x, y, c=np.array(list('rgbc'))[labels])\nplt.scatter(*np.transpose(centroids), c='r', marker='+', s=100)",
"execution_count": 7,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "<matplotlib.collections.PathCollection at 0x104a01be0>"
},
"metadata": {},
"execution_count": 7
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nSUVORK5CYII=\n",
"text/plain": "<matplotlib.figure.Figure at 0x104a01630>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Now we can re-assign the centroid locations based on the means of the current members' locations."
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "new_centroids = [(x[labels==i].mean(), y[labels==i].mean())\n for i in range(len(centroids))]",
"execution_count": 8,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "plt.scatter(x, y, c=np.array(list('rgbc'))[labels])\nplt.scatter(*np.transpose(new_centroids), c='r', marker='+', s=100)",
"execution_count": 9,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "<matplotlib.collections.PathCollection at 0x10ff44f28>"
},
"metadata": {},
"execution_count": 9
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAqEAAAHcCAYAAADm9nPcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3Wd8VGXexvFrkpBCCs2QUKUpVekoTZSArkhRFCwgiCjC\ngrC2XToouIDBBZW6eUAFBJGqCK4CuqIsLgpSFBBIpEQNBAgJJWTIZJ4XSDQGVwLn3CeZ+X0/H1/k\nTnLO5Z8BLs59zsTl9Xq9AgAAAAwKcDoAAAAA/A8lFAAAAMZRQgEAAGAcJRQAAADGUUIBAABgHCUU\nAAAAxlFCAQAAYBwlFAAAAMZRQgEAAGDcFZdQt9utTp066csvv8xdS05OVp8+fdSwYUN17NhRGzdu\ntCQkAAAAfMsVlVC3262nn35a+/fvz7M+cOBAlS1bVsuWLVPnzp01aNAgpaSkWBIUAAAAvqPAJTQx\nMVHdu3dXcnJynvVNmzbp8OHDeuGFF1StWjX169dPDRo00NKlSy0LCwAAAN9Q4BK6efNmNW/eXIsX\nL5bX681d37Fjh+rWrauQkJDctcaNG2vbtm3WJAUAAIDPCCroNzz44IOXXE9NTVXZsmXzrJUpU0ZH\njhy5smQAAADwWZY9HZ+Zmang4OA8a8HBwXK73VadAgAAAD7CshIaEhKSr3C63W6FhoYW6Di/3uIH\nAACAbyrwdvzviYmJyfe0/LFjxxQdHV2g47hcLmVkZMrjybEqGn4WGBigqKgw5msjZmwv5ms/Zmwv\n5ms/Zmy/izO+WpaV0Pr16yshIUFutzt3W37Lli1q0qRJgY/l8eQoO5sXjl2Yr/2Ysb2Yr/2Ysb2Y\nr/2YceFn2XZ8s2bNVK5cOQ0dOlT79+/XP//5T+3cuVP33XefVacAAACAj7iqEupyuX45UECAZsyY\nodTUVN17771atWqVpk+frtjY2KsOCQAAAN9yVdvxu3fvzvNxpUqVNH/+/KsKBAAAAN9n2XY8AAAA\ncLkooQAAADCOEgoAAADjKKEAAAAwjhIKAAAA4yihAAAAMI4SCgAAAOMooQAAADCOEgoAAADjKKEA\nAAAwjhIKAAAA4yihAAAAMI4SCgAAAOMooQAAADCOEgoAAADjKKEAAAAwjhIKAAAA4yihAAAAMI4S\nCgAAAOMooQAAADCOEgoAAADjKKEAAAAwjhIKAAAA4yihAAAAMI4SCr/2ww/J+uqrL3X27FmnowAA\n4FeCnA4AOOHMmTMa8GJfbc76QidCTqjaghrq1bSP/tzjSaejAQDgF7gSCr80dMoz+lf0Gp2ofkKq\nKCVdv19Tt8frq21fOh0NAAC/QAmF3/F6vdpy9EspJO/6yWtPat6auc6EAgDAz1BC4Zeyvdn5F12/\nsw4AACxHCYXfcblcqhVVR8rJux6SEqqON3V2JhQAAH6GEgq/NOnJl9VwTyMFHQuS3FKp70vpwYge\nujOuo9PRAADwCzwdD79ULra81ryyXqvXv6f9B/epc/97VKP6dU7HAgDAb1BC4bcCAwPV+fZ7nI6B\nq/Tu2hVa8PEbOnH+uMqFVtCQbs+oaf1m//N7cnJyFBDARhAAOIkSCqDIevej5frrJ08prVKaJGmn\ndmj33G+06Mnlur5GzXxfv+7zj/Tae1OVnHlQUYEldWfdu/TcY8PkcrlMRwcAv8elAABF1vyP38gt\noBcdvu6wXn37H/m+dn/SPj2zZLA2Vflch2sf1rfX79SrKf/QlNfjTcUFAPwKJRRAkXX8/PH8iwGX\nXp+++BX9VOPHPGvuMm598O1qu+IBAP4HSigA4zwejz7+bJ2Wvb9Ep0+fuuLjlAspl3/xvFQpvFK+\n5Yzz6VJg/i8/lZ1xxecHAFw5SigAo/bs26U7htymnmu7a8C2vrpteCvNW/76FR1r8H1Pq/zeCr+8\n52u2VHNvbT3Te2i+r72xYgPpEn23SvGqV3RuAMDVoYQCMOq5GU9pR+1tyo7NlkpLB2t9r5c/nagj\nR44U+Fg3N2qhhQOW6t607mqbEqdemX20dPS7iomJyfe1Tzw0UM1/bCml/7xwXrp2d1U980D+wgoA\nsB9PxwMw5vDhQ9oTuEv6zcPoP1X9Sa8vT9DQASMLfMw6Netq5qj/+8OvCw0N1TsvrdTrSxK0/eDX\nKlM8WoNGDFFs7CW29AEAtqOEAjDmwlsh/d7bIdn/NkkhISHq33OQ7ecBAPwxtuMBGFOxYiXV9tSR\nvHnXyyWV16P3Pu5MKACAIyihAIyaPOgVNdjTSME/BkvHpKp7qumvccNVtmxZp6MBAAxiOx6AUddX\nr6l/vfKx/rP5c51MT9NtrdopPDzc6VgAAMMooQCMCwgIUKubb3E6BgDAQWzHAwAAwDhKKAAAAIyj\nhAIAAMA4SigAAACMo4QCAADAOEooAAAAjKOEAgAAwDhKKAAAAIyjhAIAAMA4SigAAACMo4QCAADA\nOEooAAAAjKOEAkARdO7cOa3d8G9t+mqzcnJynI4DAAUW5HQAAEDBrFi/VpM3/0f76tVR8JFzqrN6\npV7t0Ue1alzndDQAuGyWXwlNSUlR//791bhxY8XFxenNN9+0+hQA4LdOnkzT+C1faF/njlK1anLX\nqaNt93bVMwvfkNfrdToeAFw2y6+EDhkyRBUrVtSKFSu0b98+Pfvss6pQoYLatWtn9akAwO/Me/9d\nHb6ldd5Fl0u7K1XU998nqlq1Gs4E80Er13+kJdu2KNPlUu2wcA3t2VuRkVFOxwJ8hqVXQjMyMrR9\n+3YNGDBAlStXVlxcnFq3bq0vvvjCytMAgN/y5ORIAfn/6M4JCJTHw72hVpm17B09nfqj1v7pdn1+\nR3slNG2oB156UW632+logM+wtISGhoYqLCxMy5YtU3Z2tpKSkrR161bVqVPHytMAgN/qdVcXVdjw\nWb712ocOqQb3hFrC4/Ho7X27dfqGG35ZDAvTV7feorfef9e5YICPsbSEBgcHa/To0Xr77bdVv359\ndejQQbfccou6du1q5WkAwG+VKVNGz9a9UVVWr5FSUhSYlKS6S5frxa73y+VyOR3PJ5w8eVJHo/Jv\nu3tjY/XNTz86kAjwTZbfE5qYmKi2bduqb9++2rt3r8aNG6cWLVqoY8eOl32MwEDeOcoOF+fKfO3D\njO3FfC/o3amLut7aVqv//bEiS5TRHWPGKSjImj/OmbFUpkwpRZ86rWO//URqqmrFxigo6Mpnw3zt\nx4ztZ9VsXV4LH6fctGmTnnrqKW3YsEHBwcGSpFmzZmnVqlVavXq1VacBAMBW4xMS9HeXS5k1fn7Q\n6/x5NX7vPX0eH6/Q0FBnwwE+wtIrod9++62qVKmSW0AlqXbt2po9e3aBjpORkckN9jYIDAxQVFQY\n87URM7YX87UfM75g4H0PqfiKZXrvgw91xiVdXyxYYwc/o8xMjzIzz1zxcZmv/Zix/S7O+GpZWkLL\nli2rgwcPKjs7O3drKCkpSRUrVizQcTyeHGVn88KxC/O1HzO2F/O1HzOWHu50jx7udE+eNatmwnzt\nx4wLP0tvmGjbtq2CgoI0cuRIHThwQB9//LFmz56tXr16WXkaAAAAFHGWltCIiAi98cYbSk1NVbdu\n3TRp0iQNHDhQ3bp1s/I0AAAAKOIsfzq+evXqmjNnjtWHBQAAgA/h/QsAAABgHCUUAAAAxlFCAQAA\nYBwlFAAAAMZRQgEAAGAcJRQAAADGUUIBAABgHCUUAAAAxlFCAQAAYBwlFMAlBX29RUFfb3E6BgDA\nR1FCAQAAYBwlFAAAAMZRQgEAAGAcJRQAAADGUUIBAABgXJDTAQA46/eegA/6euv//L7sho3tiAMA\n8BNcCQUAAIBxXAkF/NwfXdHkimfRk5OTo6X/WqN/7/9O4QGB6n9XJ1WvWt3pWLa6eEWf1ytQdFBC\nAcCHeL1ePT5pvD64sa6y426VsrP14fvLNa5uQ3Vp287peACQi+14APAh6z7/TB9dX0PZVapcWAgK\nUkrbtpr+38/l9XodzQYAv0YJBQAfsnbH18qqVTPf+qHSpXT06BEHEgHApbEdD8DnJbw9U6u+XqmM\n8xmqEl5VQ3uPUq0atZ2OZYtyUSWkjAwpKirPeuTpM4qMjPqd7wIA87gSCsCnvTZvisZ9N1ZfXLtJ\nu2p8qzWx76vPlB46fvy409Fs8djdXVVj7Xrp11vvaWlqVSxExYsXdy4YAPwGV0IBXJKvPGW88uvl\nOndd5i8LLimxxn699tYUjR083rlgNomMjNKs7j00fuUSJQZIYR6vWpYoqfEDBjsdzRK8ry3gOyih\nAHxWTk6O0rIvccUzRDqS9pP5QIbcWKu23hk6Wh6PRwEBAXK5XE5HAoB8KKEAfFZAQIAqhFRUspLz\nfuKUVLfCDc6EMigwMNDpCJbjfW0B38E9oQB82uN3DFB0YrR08RbJc1Ljw03V9/4nHM0FAP6OK6EA\nfFrn9veofHRFJbw3U6c9p1UruraemviswsLCnI4GAH6NEgrA5zVp0FRNGjR1OgYA4FfYjgcAAIBx\nlFAAAAAYx3Y8AKDI46l4oOjhSigAAACMo4QCABzh8Xj03Xd7lJLiuz84AMDvYzseAGDce5+s19RN\nn2l/5YoKP3VKDdPSNXPgX1SiREmnowEwhBIKADDqyJEjGr3lC/3YpZMk6ZykdW63Bs+apjf/NtLZ\ncACMYTseAGDU7PeW68fbbs27GBysbSHFdOpUhiOZAJjHlVAAgFFnz7ul4OB86+5ixZSV5VZkpAOh\nYFRa2gm9snSxfjyXqSrhERp03/2KiirhdCwYxpVQAIBRD7Rpq6ivtuRbvy49Q9dcc40DiWDSoR+S\n1emVyZrRoJ5Wtm2jqXVrqsvLE3T06FGno8EwSigAwKgGdW9Qz2yvSn2+UcrOlo4f1/XLlmtMl65O\nR4MBf1/8lvZ2vVsqXvzCQkSEvr3nbk1cvMDZYDCO7XgAgHFjHx+gHkn7tXjdR4opVVo9nh2h4hdL\nCXzaQW+OFBiYd7FYMX1/3u1MIDiGEgoAcMR11WpoZL8aTseAYVFe7++sGw4Cx7EdDwAAjHmgYRNF\nbdueZ630fzerd8vWDiWCU7gSCgAAjLkn7nadXrNKC1etVmqAS7E5Xj3S5Ca1vbml09FgGCUUAAAY\n9XCHTnq4QyenY8BhbMcDAADAOEooAAAAjKOEAgAAwDhKKAAAAIyjhAIAAMA4SigAAACMo4QCAADA\nOEooAAAAjKOEAgAAwDhKKAAAAIyjhAIAAMA4SigAAACMo4QCAADAOEooAAAAjLO8hLrdbj3//PNq\n1qyZWrVqpSlTplh9CgAAABRxQVYfcPz48dq8ebPmzp2r06dP66mnnlKFChXUvXt3q08F4A8kJx/W\nocMHdUO9GxUZGeV0HAAAcllaQtPT07V8+XK98cYbqlevniTp0Ucf1fbt2ymhgEHnzp3TgHGPadO5\nz3Wi+AlVXnytutV5QH/rN8LpaEChcvbsWU1fslDfnjypKLn057s6q1aN65yOBfgFS0voli1bFBkZ\nqSZNmuSuPf7441aeAsBlGPXqUK0u/Z4UduHjQ+UOatah6Wr470a6/dY7nQ0HFBKZmZnqPvEFbf7T\n7VKJEpLHo3+vXqGXm7ZQ+xatnI4H+DxL7wk9fPiwKlSooJUrV+rOO+9Uu3btNGPGDHm9XitPA+AP\nfPnT5twCetGZ8qe19NN3nAkEFEL/t3KpNrePu1BAJSkwUCnt4jR9w8fOBgP8hKVXQs+ePasDBw5o\nyZIlmjhxolJTUzVq1CgVL15cjzzyyGUfJzCQh/btcHGuzNc+hWXGOfJcct0b4FFQUNH99S8s8/Vl\n/jTjXSeOSTfWybeeHCAFBrrkcrksP6c/zdcpzNh+Vs3W0hIaGBioM2fO6OWXX1ZsbKwk6YcfftCi\nRYsKVEKjosL++ItwxZiv/ZyecaOYhtqTvTvP7/CgY0G6u1UXlSoV7lwwizg9X3/gDzMuH1FcysqS\nQkLyrF/jcql06Qhbz+0P83UaMy78LC2hZcuWVUhISG4BlaSqVasqJSWlQMfJyMiUx5NjZTTowr9c\noqLCmK+NCsuMxw2cqKSR3+vrEluVVTJLpX4qpQ6lO6pz+/uUlnbGsVxXq7DM15f504z7d7hbq+bM\n0oFOHXPXQr//Xh0qV7Xt94k/zdcpzNh+F2d8tSwtoQ0aNFBWVpYOHjyoa6+9VpKUmJioChUqFOg4\nHk+OsrN54diF+drP6RlHRpbUu1P/pY8/W6tdibt0R+c7dX2NmvJ4vJKK/j3aTs/XH/jDjKOjYzSr\nU1fFv/+uDrqkEl6vOlatrj9372H7/7s/zNdpzLjws7SEVqlSRW3atNHQoUM1ZswYpaamKiEhQQMH\nDrTyNAAug8vlUtwttyvultudjgIUWo3q3qBFdW9wOgbglyx/s/rJkydr/Pjx6tGjh8LCwtSzZ0/1\n6NHD6tMAAACgCLO8hEZERGjixImaOHGi1YcGAACAj+D9CwAAAGAcJRQAAADGUUIBAABgHCUUAAAA\nxlFCAQAAYBwlFAAAAMZZ/hZNACBJ//lyo1Z8skThoRHq332gYmPLOR0JAFCIUEIBWO6vLz2tJScX\n6UyFM1K29O7fl2tcl4nqGNfZ6WgAgEKC7XgAltr2zddafvwdnal4RnJJKib9UCtZU9+frJwcfo4z\nAOACSigASy1b+44yKmXkW08qtl8HDx4wHwgAUChRQgFYKrZ0rJSZfz3ifIRKlChhPhAAoFCihAKw\nVO97++q6A9fnXXRLjcObqnTpMs6EAgAUOpRQAJaKiIjQK/1mqnlSS0XvK6tKeyurS1pXvTZ0ttPR\nAACFCE/HA7Bck/pN9W79D3TyZJqCg0NUvHhxpyMBAAoZSigA25QsWcrpCACAQorteAAAABhHCQUA\nAIBxlFAAAAAYRwkFAACAcZRQAAAAGEcJBQAAgHGUUAAAABhHCQUAAIBxlFAAAAAYRwkFAACAcfzY\nTjgiNTVVr731D6WcTlHNmFrq/9AghYeHOx0LAAAYQgmFcXv27dIjU3so6bpEqbSkk9KHf/1ASye8\nq6ioEk7HAwAABrAdD+MmzBuvpDqJUvDPC+HSthpb9fLrLzmaCwAAmEMJhXGHzh6UXL9ZDJH2Hf/O\nkTwAAMA8SiiMiwqMyr/olSKDLrEOAAB8EiUUxt3T7F6FH8n7EFJ0Uln16/JnhxIBAADTeDAJxj1y\n32PKcru1fMsSHXcfU4Wwinq8wwA1rt/E6WgAAMAQSigc8cRDf9YTD3HlEwAAf8V2PAAAAIyjhAIA\nAMA4tuPh13JycvTZ6vf0/WefKqJSZf2pz+OKiIhwOhYAAD6PEgq/lZ2drWm9H9J9n36s+9xuHZU0\nc8lidZg7X1VqXOd0PAAAfBrb8fBbq19P0OPrPlRDt1uSVFbS6D279NELo5wNBgCAH6CEwm+lfbFJ\nVbzePGsuScX37XMmEAAAfoQSCr+VUzxMOZdYP188zHgWAAD8DSUUfuvmvk9o6TXX5Fk7HBCg4DZt\nHUoEAID/4MEk+K06DRopZfQ4TZozW9UOH1JKiZI6d1ucHh4xxuloAAD4PEoo/FrbB3oop/uDSk09\nqptLlFRoaKjTkQAA8AuUUPi9gIAAxcTEOh0DAAC/wj2hAAAAMI4SCgAAAOMooQAAADCOEgoAAADj\nKKEAAAAwjhIKAAAA4yihAAAAMI4SCgAAAOMooQAAADCOEgoAAADjKKEAAAAwjhIKAAAA4yihAAAA\nMI4SCgAAAOMooQAAADDOthLar18/DRs2zK7DAwAAoAizpYSuXr1aGzZssOPQAAAA8AGWl9D09HTF\nx8frxhtvtPrQAAAA8BFBVh9w0qRJ6tKli44ePWr1oQEAAOAjLL0SumnTJm3ZskUDBw608rAAAADw\nMZZdCXW73Ro7dqzGjBmj4ODgqzpWYCAP7dvh4lyZr32Ysb2Yr/2Ysb2Yr/2Ysf2smq1lJfS1115T\nvXr11KJFi6s+VlRUmAWJ8HuYr/2Ysb2Yr/2Ysb2Yr/2YceHn8nq9XisOFBcXp+PHj8vlckmSzp8/\nL0kKDg7W1q1bC3SsjIxMeTw5VsTCrwQGBigqKoz52ogZ24v52o8Z24v52o8Z2+/ijK+WZVdCFyxY\noOzs7NyP4+PjJUnPPfdcgY/l8eQoO5sXjl2Yr/2Ysb2Yr/2Ysb2Yr/2YceFnWQktV65cno/Dw8Ml\nSZUqVbLqFAAAAPAR3LULAAAA4yx/n9CLJkyYYNehAQAAUMRxJRQAAADGUUIBAABgHCUUAAAAxlFC\nAQAAYBwlFAAAAMZRQgEAAGAcJRQAAADGUUIBAABgHCUUAAAAxlFCAQAAYBwlFAAAAMbZ9rPjAQAo\nzLxerxIS3tX776fo9OliqlYtUyNHdlGVKpWcjgb4BUooAMAvTZmyRFOnNta5cw9Lkr75Jkffffei\nVq/uo6ioEg6nA3wf2/EAAL+Tk5Oj995L07lzDX61GqDvvhukWbNWOZYL8CeUUACA3zl37pxOnCh5\nic+UUnLyOeN5AH9ECQUA+J2wsDCVL3/8Ep85pHr1ShnPg9+XlZWlt99eo+nT39bRo0edjgMLUUIB\nAH7H5XKpT5/rVLr0Sknen1fT1azZbPXu3dHJaPiVrVt3qX37WRoypImef/4+tWv3qV59danTsWAR\nHkwCAPil++9vr4oVv9Ibb0zW6dPFVKdOoJ56apBCQkKcjgZdePeCUaPWas+ekblrKSmPatasBerc\n+aCqVLnWwXSwAiUUAOC3WrZsopYtmzgdA5eQnHxYe/fWybd+7Fh3zZs3U6NHP+pAKliJ7XgAAFDo\nBAcHKygo6xKfyVJoaDHjeWA9SigAACh0YmJiVbfuXkmePOsVK85T374dnAkFS1FCAQBAofTqqw+p\nRYsXFB6+RgEBm1Sr1ksaPbqyypQp43Q0WIB7QgEAQKFUvnysVq58Vvv379PJk+mqX/8xFSvGVryv\noIQCAFBIeL1euVwup2MUOjVqXOd0BNiAEgoAgMO+/nqXJkz4WImJ4QoPP682bYpp7NheCgwMdDoa\nYBtKKAAADkpLO6EBAzYoKWlY7tp33yUrO/sNTZjQ18FkgL14MAkAAAfNmvW+kpKeyLPm9VbUJ59I\n58+fdygVYD9KKAAADjp6NEtSVL7106dL6ezZM+YDAYZQQgEAcFDr1lUUFLQz33rlyj8pKqqEA4kA\nMyihAAA46O6749S27RIFBOz9eeW8YmPnaODABjwpD5/Gg0kAADgoICBAb775tBYt+kAbN76viAiv\nBgxor2rVqjodDbAVJRSAz/J6vfpm53Z5zmfrhgYNebsbFFqBgYHq2bOjevZ0OglgDtvxAHzSvp07\nNOPOtnLd1V7FO92u/2vfRts++9TpWACAn1FCAfgcr9erD58ZrDFbt+i2rCy1zM7WyG926Mthzykr\nK8vpeAAAUUIB+KDtW79S3K5v9NtHOrrv3aMN7610JBMAIC9KKACf487KUqjHk289VJL73FnzgQAA\n+VBCAficRs1u1rqatfKtL7+2qtrcc58DiQAAv0UJBeBzgoKCVH/EWE2qXkOHJKVIerXytYp55q+K\niIh0Oh4AQLxFEwAf1az9HarXsrU+WfaOzruzdFe3B/jpMwBQiFBCAfis4sWLq8PDjzgdAwBwCWzH\nAwAAwDhKKAAAAIyjhAIAAMA4SigAAACMo4QCAADAOEooAAAAjKOEAgAAwDhKKAAAhVTQ11sU9PUW\np2MAtqCEAgAAwDhKKAAAAIyjhAJXiG0yAACuHCUUAAAAxlFCAQAAYFyQ0wEAAPB3v3drT9DXW//n\n92U3bGxHHMAIroQCAADAOK6EAgDgsD+6oskVT/giSijwBwqyTRYYGCBFhSkwI1PZNza0OxoAAEUW\n2/EAAAAwjiuhwB8o0DZZUIBUKlyetDNSdo7NyQAAKLosvxJ65MgRDR48WDfddJPatGmjiRMnyu12\nW30aAAAAFGGWXwkdPHiwSpYsqYULF+rkyZMaPny4AgMD9dxzz1l9KgAAABRRlpbQpKQk7dixQxs3\nblTp0qUlXSilL730EiUUAHDZNm/epgULNis726W77qqhDh1ulcvlcjqWcTwVD19maQmNjo5WQkJC\nbgGVJK/Xq1OnTll5GgCAD5s+fYWmTi2h9PSnJbm0atV/9cAD/1R8/BNORwNgIUvvCY2MjFSrVq1y\nP/Z6vVqwYIFatGhh5WkAAD7q7Nmzmj8/XenpXSRduPKZlXWT3nuvqvbvT3Q2HABL2fp0/EsvvaQ9\ne/Zo2bJlBfq+wEDeOcoOF+fKfC3StKmkvL+JmLG9mK/9nJ7xd9/tVlLSTfnW09Lu0PvvL9Czz17n\nQCrrOD1ff8CM7WfVbG0rofHx8Zo/f76mTp2q6tWrF+h7o6LCbEoFifmawIztxXzt59SMa9WqptKl\nN+vEiWZ51oOCDqhRo+oqVSrckVxW4zVsP2Zc+NlSQseNG6fFixcrPj5e7dq1K/D3Z2RkyuPhPRat\nFhgYoKioMOZrI2ZsL+ZrP6dnHBlZRjfdtFsffHBKUuTPq9m68cbFatPmOaWlnTGeyUpOz9cfMGP7\nXZzx1bK8hE6bNk2LFy/WlClT1L59+ys6hseTo2ze6Ns2zNd+zNhezNd+Ts54xozHNXToTG3ZEiiP\nJ0C1ap3VxIm95PW6fObXndew/Zhx4WdpCU1MTNTMmTP1xBNPqGHDhjp27Fju56655horTwUA8FHh\n4eF67bUBki484OqPb80E+ANLS+j69euVk5OjmTNnaubMmZJ++QNk9+7dVp4KFtv77Tf6/P9myXUu\nUxXb3q64e7spIICbugE4iwIK+C6X1+v1Oh3it9LSznAJ3QZBQQEqVSo833zXLZwvjRur+4+nKkDS\nzqAgLe90t/48e65zYYuo35sxrMF87ceM7cV87ceM7XdxxleLS11+zuPx6HDCLD34cwGVpBuys3XL\nhx/o6/9sdDQbAADwXZRQP3fo0EHVOfh9vvVbz57R9jWrHEgEAAD8ASXUz5UuXVo/lSiZb/1HSSUr\nVzYfCAAA+AVKqJ8rUaKkjrZoqeO/WvNKSqhdR3c83MepWAAAwMfZ+mM7UTQ8MmW65hQPV8CmjQo6\nl6VT19d+9ACEAAASiklEQVTUXS/8XWFh/LQJACgKcnJy9N13exQWFqYqVao6HQe4LJRQKDg4WH3i\np0riPfkAoKj59NMvNX78F9qzp5mCg1N0ww3L9dprD6hSpQpORwP+J7bjkYe/FNATJ47ryJEjTscA\ngKty5swZDR26Rdu3D1dWVjudOtVF//nPaD355NtORwP+ECUUfuXokRRNf6CrNt1yk3beerNmdP6T\n9u3c4XQsALgiCxf+S4mJD/9mNUA7dzZSUlKiI5mAy8V2PPzK4v59NXrjZ7kvfO/x/+iFJ59QlbUb\nVKxYMUezAUBBZWRkSorIt56VFanMzEzzgYAC4Eoo/Mb+/fvUbPvXef7l5ZL04O5d+veKZU7FAoAr\n1rNnO8XEvJNvvWbNL1S7dh0HEgGXjxIKv5GedkLRZ87kW4/2epV+NMWBRABwdWJiYjVgQJBiYuZK\nOiPpqKpVi9eIEU0VEMBf8Sjc2I6H37ihfkMtur6mbvpuT571lTGxat3tQYdSAcDV+fOf79G996Zo\n/vw3FRERqp49eyoiIv8WPVDY8M8k+I3g4GBdO/hpzS5XXpmSsiUtLl1a7j6PKSYmxul4AHDFYmJi\n9eyzD6t//24UUBQZXAmFX7m12wM6csutmpUwSx53llr3fETVrq/pdCwAAPwOJRR+JyYmVj1HjnU6\nBgAAfo3teAAAABhHCQUAAIBxlFAAAAAYRwkFAACAcZRQAAAAGEcJBQAAgHGUUAAAABhHCQUAAIBx\nlFAAAAAYRwkFAACAcZRQAAAAGEcJBQAAgHGUUAAAABhHCQUAAIBxlFAAAAAYRwkFAACAcZRQAAAA\nGEcJBQAAgHGUUAAAABhHCQUAAIBxlFAAAAAYRwkFAACAcZRQAAAAGEcJBQAAgHGUUAAAABhHCQUA\nAIBxlFAAAAAYRwkFAACAcZRQAAAAGEcJBQAAgHFBTgcAAACFy+nTpzV58hLt2pWjsDC3HnzwBv3p\nT62cjgUfQwkFAAC5zp8/rwcfnKb//vdvkqIkSRs3fqRhw1apb99OzoaDT2E7HgAA5Fq48ANt3txX\nFwuoJGVk3K6FC39QTk6Oc8HgcyihAAAg1/btR+X1Vsu3/tNP5XTyZJoDieCrKKEAACBX9epRklLy\nrV9zzVFFRZUwHwg+ixIKAABy9enTUfXqzZCUnbsWGrpdnTpFKiiIR0lgHV5NAAAgV/HixbVwYS+9\n8MI/tH9/iIoXd+uuu2L1+OMPOB0NPoYSClwhj8ejXbu+UXh4uKpVq+F0HACwTGxsjGbMGOB0DPg4\ntuOBK/DFv9ZobrvWCrrjNh1td4teu7uDUn5IdjoWAABFBiUUKKD09JPaO2qohn/7jW7Jzlan06c1\n5j+fa+mT/Z2OBgBAkUEJBQrowzfm6tGDB/KsBUq64ZsdSk4+7EgmAACKGkooUEDus2cUdon14ufP\n69y5c8bzAABQFFFCgQJq26uP3o4um299y/W1VL06DygBAHA5KKFAAZWvUFHZ/QdpTkysMiQlS/r7\ndderxZhxcrlcTscDAKBIsPwtmtxut8aOHau1a9cqNDRUjz76qPr06WP1aQBHdXnyLzrS/UHNWzRf\n4SVLqef9Dyks7FKb9AAA4FIsL6GTJk3Srl27NH/+fCUnJ+tvf/ubKlSooNtvv93qUwGOiomJ0f1/\nedbpGAAAFEmWbsdnZmZq6dKlGjlypGrVqqV27drpscce04IFC6w8DQAAAIo4S0vonj175PF41KBB\ng9y1xo0ba8eOHVaeBgAAAEWcpSU0NTVVJUuWVFDQL7v8ZcqUUVZWltLS0qw8FQAAAIowS+8JzczM\nVHBwcJ61ix+73e7LPk5gIA/t2+HiXJmvfZixvZiv/ZixvZiv/Zix/ayaraUlNCQkJF/ZvPhxQZ4c\njoriKWM7MV/7MWN7MV/7MWN7MV/7MePCz9ISGhMTo5MnTyonJ0cBARda8rFjxxQaGqqoqKjLPk5G\nRqY8nhwro0EX/uUSFRXGfG3EjO3FfO3HjO3FfO3HjO13ccZXy9ISWrt2bQUFBWnbtm1q1KiRJOmr\nr75SvXr1CnQcjydH2dm8cOzCfO3HjO3FfO3HjO3FfO3HjAs/S2+YCA0NVZcuXTRmzBjt3LlT69at\n0+uvv67evXtbeRoAAAAUcZa/Wf2wYcP0/PPPq3fv3oqMjNSQIUPUrl07q08DAACAIszyEhoaGqoJ\nEyZowoQJVh8aAAAAPoL3LwAAAIBxlFAAAAAYRwkFAACAcZRQAAAAGEcJBQAAgHGUUAAAABhHCQUA\nAIBxlFAAAAAYRwkFAACAcZRQAAAAGEcJBQAAgHGUUAAAABhHCQUAAIBxlFAAAAAYRwkFAACAcZRQ\nAAAAGEcJBQAAgHGUUAAAABhHCQUAAIBxlFAAAAAYRwkFAACAcZRQAAAAGEcJBQAAgHGUUAAAABhH\nCQUAAIBxlFAAAAAYRwkFAACAcZRQAAAAGEcJBQAAgHGUUAAAABhHCQUAAIBxlFAAAAAYRwkFAACA\ncZRQAAAAGEcJBQAAgHGUUAAAABhHCQUAAIBxlFAAAAAYRwkFAACAcZRQAAAAGEcJBQAAgHGUUAAA\nABhHCQUAAIBxlFAAAAAYRwkFAACAcZRQAAAAGEcJBQAAgHGUUAAAABhHCQUAAIBxlFAAAAAYRwkF\nAACAcZRQAAAAGEcJBQAAgHGUUAAAABhHCQUAAIBxlFAAAAAYRwkFAACAcZRQAAAAGEcJBQAAgHGW\nltBTp05pxIgRatmypZo3b65hw4bp1KlTVp4CAAAAPsDSEjp69Gjt3btXCQkJmjt3rhITEzVq1Cgr\nTwEAAAAfEGTVgTIzM7V27VotWrRIderUkSQNHz5cPXv2lNvtVnBwsFWnAgAAQBFn2ZXQgIAAzZo1\nS7Vq1cpd83q98ng8Onv2rFWnAQAAgA+w7EpoSEiIWrVqlWdt3rx5qlmzpkqWLGnVaQAAAOADClRC\ns7KydOTIkUt+Ljo6WmFhYbkfL1iwQB9++KHmzJlT4FCBgTy0b4eLc2W+9mHG9mK+9mPG9mK+9mPG\n9rNqti6v1+u93C/evHmzevXqJZfLle9z06ZNU1xcnCTprbfe0vjx4zVixAj17NnTkqAAAADwHQUq\noZdjzpw5io+P19ChQ/XII49YeWgAAAD4CMvuCZWkFStWaPLkyRoxYoQefvhhKw8NAAAAH2LZldD0\n9HTddtttuuOOO/TMM8/k+Vzp0qUVEMC9GQAAALjAshK6Zs2afOXT6/XK5XJp/fr1Kl++vBWnAQAA\ngA+w/J5QAAAA4I+wRw4AAADjKKEAAAAwjhIKAAAA4yihAAAAMI4SCgAAAOMKXQk9deqURowYoZYt\nW6p58+YaNmyYTp065XSsIs/tdmv48OFq2rSpWrdurddff93pSD7lyJEjGjx4sG666Sa1adNGEydO\nlNvtdjqWz+rXr5+GDRvmdAyf43a79fzzz6tZs2Zq1aqVpkyZ4nQkn5KSkqL+/furcePGiouL05tv\nvul0JJ/hdrvVqVMnffnll7lrycnJ6tOnjxo2bKiOHTtq48aNDiYs2i41323btumBBx5Qw4YNdeed\nd2rJkiUFPm6hK6GjR4/W3r17lZCQoLlz5yoxMVGjRo1yOlaRN2nSJO3atUvz58/XmDFjNG3aNH30\n0UdOx/IZgwcPVlZWlhYuXKh//OMf+uSTT/TKK684HcsnrV69Whs2bHA6hk8aP368Nm3apLlz52ry\n5Ml655139M477zgdy2cMGTJE4eHhWrFihYYPH66pU6dq3bp1Tscq8txut55++mnt378/z/rAgQNV\ntmxZLVu2TJ07d9agQYOUkpLiUMqi61LzPXbsmPr166ebb75Z7777rp588kmNHz9en376aYGOXahK\naGZmptauXavRo0erTp06ql27toYPH65169ZxVekqZGZmaunSpRo5cqRq1aqldu3a6bHHHtOCBQuc\njuYTkpKStGPHDk2YMEHVq1dX48aNNXjwYL3//vtOR/M56enpio+P14033uh0FJ+Tnp6u5cuXa/z4\n8apXr55uvvlmPfroo9q+fbvT0XxCRkaGtm/frgEDBqhy5cqKi4tT69at9cUXXzgdrUhLTExU9+7d\nlZycnGd906ZNOnz4sF544QVVq1ZN/fr1U4MGDbR06VKHkhZNvzffdevWKTo6Wn/5y19UuXJldejQ\nQV26dCnw33uFqoQGBARo1qxZqlWrVu6a1+uVx+PR2bNnHUxWtO3Zs0cej0cNGjTIXWvcuLF27Njh\nYCrfER0drYSEBJUuXTp3zev1chuJDSZNmqQuXbqoevXqTkfxOVu2bFFkZKSaNGmSu/b444/rxRdf\ndDCV7wgNDVVYWJiWLVum7OxsJSUlaevWrapTp47T0Yq0zZs3q3nz5lq8eLF+/bN3duzYobp16yok\nJCR3rXHjxtq2bZsTMYus35vvLbfcogkTJuT7+oL+vRd01QktFBISolatWuVZmzdvnmrWrKmSJUs6\nlKroS01NVcmSJRUU9Msvd5kyZZSVlaW0tDSVKlXKwXRFX2RkZJ7Xrdfr1YIFC9SiRQsHU/meTZs2\nacuWLVq1apXGjBnjdByfc/jwYVWoUEErV67U7Nmzdf78eXXt2lUDBgyQy+VyOl6RFxwcrNGjR+uF\nF17QvHnz5PF41LVrV3Xt2tXpaEXagw8+eMn11NRUlS1bNs9amTJldOTIEROxfMbvzbd8+fJ5fhz7\n8ePHtWbNGg0ePLhAxzdeQrOysn73RRAdHa2wsLDcjxcsWKAPP/xQc+bMMRXPJ2VmZio4ODjP2sWP\nuc3Bei+99JL27NmjZcuWOR3FZ7jdbo0dO1ZjxozJ91qGNc6ePasDBw5oyZIlmjhxolJTUzVq1CgV\nL15cjzzyiNPxfEJiYqLatm2rvn37au/evRo3bpxatGihjh07Oh3N5/ze33v8nWe9rKwsPfnkkypb\ntqzuv//+An2v8RK6fft29erV65L/sp42bZri4uIkSW+99ZZefPFFjRgxQs2bNzcd06eEhITk+413\n8eNfl35cvfj4eM2fP19Tp05ly9hCr732murVq8fVZRsFBgbqzJkzevnllxUbGytJ+uGHH7Ro0SJK\nqAU2bdqkpUuXasOGDQoODladOnWUkpKimTNnUkJtEBISovT09DxrbrdboaGhDiXyTWfPntWAAQN0\n6NAhLVq0KM/tD5fDeAlt1qyZ9uzZ8z+/Zs6cOYqPj9fQoUPVs2dPQ8l8V0xMjE6ePKmcnBwFBFy4\nDfjYsWMKDQ1VVFSUw+l8x7hx47R48WLFx8erXbt2TsfxKWvWrNHx48fVsGFDSdL58+clSR9++KG2\nbt3qZDSfUbZsWYWEhOQWUEmqWrUqTxNb5Ntvv1WVKlXyXJ2rXbu2Zs+e7WAq3xUTE5Pvafljx44p\nOjraoUS+5/Tp03rssceUnJysN998U5UqVSrwMQrVPaGStGLFCk2ePFkjRozQww8/7HQcn1C7dm0F\nBQVp27ZtatSokSTpq6++Ur169RxO5jumTZumxYsXa8qUKWrfvr3TcXzOggULlJ2dnftxfHy8JOm5\n555zKpLPadCggbKysnTw4EFde+21ki5sH1eoUMHhZL6hbNmyOnjwoLKzs3Pvz09KSlLFihUdTuab\n6tevr4SEBLnd7tziv2XLljwP3uHKeb1eDRo0SD/88IMWLFigKlWqXNFxCtXT8enp6Ro3bpzuvvtu\n3XnnnTp27Fjufzk5OU7HK7JCQ0PVpUsXjRkzRjt37tS6dev0+uuvq3fv3k5H8wmJiYmaOXOm+vXr\np4YNG+Z53cIa5cqVU6VKlXL/Cw8PV3h4+BX9yxuXVqVKFbVp00ZDhw7Vnj179NlnnykhIUEPPfSQ\n09F8Qtu2bRUUFKSRI0fqwIED+vjjjzV79mz16tXL6Wg+qVmzZipXrpyGDh2q/fv365///Kd27typ\n++67z+loPmHJkiXavHmzxo8fr4iIiNy/8357C8QfKVRXQjdu3KjMzEytXLlSK1eulHShbbtcLq1f\nvz7Pk1gomGHDhun5559X7969FRkZqSFDhrBlbJH169crJydHM2fO1MyZMyX98rrdvXu3w+mAyzd5\n8mSNHz9ePXr0UFhYmHr27KkePXo4HcsnRERE6I033tDf//53devWTaVLl9bAgQPVrVs3p6P5jF8/\naxIQEKAZM2Zo+PDhuvfee1W5cmVNnz49z+0mKBiXy5U7448++kher1f9+/fP8zVNmzbVvHnzLv+Y\n3l+/8RMAAABgQKHajgcAAIB/oIQCAADAOEooAAAAjKOEAgAAwDhKKAAAAIyjhAIAAMA4SigAAACM\no4QCAADAOEooAAAAjKOEAgAAwDhKKAAAAIz7f6zoY/L3XUJlAAAAAElFTkSuQmCC\n",
"text/plain": "<matplotlib.figure.Figure at 0x10fc79908>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "So, we simply iterate these steps until convergence."
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "centroids = new_centroids\niterations = 20\n\nfor _ in range(iterations):\n distances = cdist(centroids, list(zip(x,y)))\n labels = distances.argmin(axis=0)\n centroids = [(x[labels==i].mean(), y[labels==i].mean())\n for i in range(len(centroids))]",
"execution_count": 10,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "plt.scatter(x, y, c=np.array(list('rgbc'))[labels])\nplt.scatter(*np.transpose(centroids), c='r', marker='+', s=100)",
"execution_count": 11,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "<matplotlib.collections.PathCollection at 0x10ffb6438>"
},
"metadata": {},
"execution_count": 11
},
{
"output_type": "display_data",
"data": {
"image/png": "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\ntGjRokIft8iV0JEjR2r37t1KTEzU7NmzlZycrBEjRjgdq9ibMGGCdu7cqblz52rUqFGaMmWKPvnk\nE6dj+YyBAwcqOztb8+fP19/+9jd99tlneu2115yO5ZNWrlypdevWOR3DJ40dO1YbNmzQ7NmzNXHi\nRL333nt67733nI7lMwYNGqSIiAgtW7ZMQ4cO1eTJk7VmzRqnYxV7brdbzz77rPbu3ZtvvX///ipX\nrpyWLFmijh07asCAAUpLS3MoZfF1sfkeOXJEffr00a233qr3339fTz/9tMaOHavPP/+8UMcuUiU0\nKytLq1ev1siRI1W3bl3VqVNHQ4cO1Zo1a9hVugpZWVlavHixhg8frtq1a6tNmzZ64oknNG/ePKej\n+YSUlBRt375d48aNU40aNdS4cWMNHDhQH374odPRfE5mZqYSEhJ04403Oh3F52RmZmrp0qUaO3as\n6tevr1tvvVWPP/64tm3b5nQ0n3DixAlt27ZN/fr1U5UqVRQfH6/bbrtNX331ldPRirXk5GR17dpV\nqamp+dY3bNiggwcP6qWXXlL16tXVp08fNWjQQIsXL3YoafF0qfmuWbNGMTEx+vOf/6wqVaqoXbt2\n6tSpU6H/3itSJTQgIEAzZsxQ7dq189a8Xq88Ho/OnDnjYLLiLSkpSR6PRw0aNMhba9y4sbZv3+5g\nKt8RExOjxMRElSlTJm/N6/VyG4kNJkyYoE6dOqlGjRpOR/E5mzZtUlRUlJo0aZK39uSTT+rll192\nMJXvCA0NVVhYmJYsWaKcnBylpKRo8+bNqlu3rtPRirWNGzeqWbNmWrhwoX79s3e2b9+uevXqKSQk\nJG+tcePG2rp1qxMxi61Lzff222/XuHHjCnx9Yf/eC7rqhBYKCQlRy5Yt863NmTNHtWrVUqlSpRxK\nVfylp6erVKlSCgr67y932bJllZ2drYyMDJUuXdrBdMVfVFRUvtet1+vVvHnz1Lx5cwdT+Z4NGzZo\n06ZNWrFihUaNGuV0HJ9z8OBBVaxYUcuXL9fMmTN17tw5de7cWf369ZPL5XI6XrEXHByskSNH6qWX\nXtKcOXPk8XjUuXNnde7c2eloxdojjzxy0fX09HSVK1cu31rZsmV16NAhE7F8xqXmW6FChXw/jv3o\n0aNatWqVBg4cWKjjGy+h2dnZl3wRxMTEKCwsLO/jefPm6eOPP9asWbNMxfNJWVlZCg4Ozrd24WNu\nc7DeK6+8oqSkJC1ZssTpKD7D7XZr9OjRGjVqVIHXMqxx5swZ7du3T4sWLdL48eOVnp6uESNGKDw8\nXI899pjT8XxCcnKyWrdurd69e2v37t0aM2aMmjdvrvbt2zsdzedc6u89/s6zXnZ2tp5++mmVK1dO\nDz30UKG+13gJ3bZtm3r06HHRf1lPmTJF8fHxkqR33nlHL7/8soYNG6ZmzZqZjulTQkJCCvzGu/Dx\nr0s/rl5CQoLmzp2ryZMnc8nYQm+88Ybq16/P7rKNAgMDdfr0ab366quKi4uTJP34449asGABJdQC\nGzZs0OLFi7Vu3ToFBwerbt26SktL0/Tp0ymhNggJCVFmZma+NbfbrdDQUIcS+aYzZ86oX79+OnDg\ngBYsWJDv9ofLYbyENm3aVElJSf/za2bNmqWEhAQNHjxY3bt3N5TMd8XGxur48ePKzc1VQMD524CP\nHDmi0NBQRUdHO5zOd4wZM0YLFy5UQkKC2rRp43Qcn7Jq1SodPXpUDRs2lCSdO3dOkvTxxx9r8+bN\nTkbzGeXKlVNISEheAZWkatWq8TSxRb777jtVrVo13+5cnTp1NHPmTAdT+a7Y2NgCT8sfOXJEMTEx\nDiXyPadOndITTzyh1NRUvf3226pcuXKhj1Gk7gmVpGXLlmnixIkaNmyYHn30Uafj+IQ6deooKChI\nW7duVaNGjSRJ33zzjerXr+9wMt8xZcoULVy4UJMmTVLbtm2djuNz5s2bp5ycnLyPExISJEkvvPCC\nU5F8ToMGDZSdna39+/fr2muvlXT+8nHFihUdTuYbypUrp/379ysnJyfv/vyUlBRVqlTJ4WS+6aab\nblJiYqLcbnde8d+0aVO+B+9w5bxerwYMGKAff/xR8+bNU9WqVa/oOEXq6fjMzEyNGTNG9913n+65\n5x4dOXIk77/c3Fyn4xVboaGh6tSpk0aNGqUdO3ZozZo1evPNN9WzZ0+no/mE5ORkTZ8+XX369FHD\nhg3zvW5hjfLly6ty5cp5/0VERCgiIuKK/uWNi6tatapatWqlwYMHKykpSV988YUSExP1xz/+0elo\nPqF169YKCgrS8OHDtW/fPn366aeaOXOmevTo4XQ0n9S0aVOVL19egwcP1t69e/X3v/9dO3bs0IMP\nPuh0NJ+waNEibdy4UWPHjlVkZGTe33m/vQXi9xSpndD169crKytLy5cv1/LlyyWdb9sul0tr167N\n9yQWCmfIkCF68cUX1bNnT0VFRWnQoEFcMrbI2rVrlZubq+nTp2v69OmS/vu63bVrl8PpgMs3ceJE\njR07Vt26dVNYWJi6d++ubt26OR3LJ0RGRuqtt97SX//6V3Xp0kVlypRR//791aVLF6ej+YxfP2sS\nEBCgadOmaejQoXrggQdUpUoVTZ06Nd/tJigcl8uVN+NPPvlEXq9Xffv2zfc1N998s+bMmXP5x/T+\n+o2fAAAAAAOK1OV4AAAA+AdKKAAAAIyjhAIAAMA4SigAAACMo4QCAADAOEooAAAAjKOEAgAAwDhK\nKAAAAIyjhAIAAMA4SigAAACMo4QCAADAuP8HtdhegWVh68kAAAAASUVORK5CYII=\n",
"text/plain": "<matplotlib.figure.Figure at 0x10f979b70>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## k-means using `scikit-learn`\n\nThe `scikit-learn` package includes a `KMeans` class for flexibly fitting K-means models. It includes additional features, such as initialization options and the ability to set the convergence tolerance."
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "from sklearn.cluster import KMeans\nfrom numpy.random import RandomState\nrng = RandomState(1)\n\n# Instantiate model\nkmeans = KMeans(n_clusters=4, random_state=rng)\n# Fit model\nkmeans.fit(np.transpose((x,y)))",
"execution_count": 12,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "KMeans(algorithm='auto', copy_x=True, init='k-means++', max_iter=300,\n n_clusters=4, n_init=10, n_jobs=1, precompute_distances='auto',\n random_state=<mtrand.RandomState object at 0x1115d93a8>, tol=0.0001,\n verbose=0)"
},
"metadata": {},
"execution_count": 12
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "After fitting, we can retrieve the labels and cluster centers."
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "kmeans.labels_",
"execution_count": 13,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "array([2, 1, 2, 0, 1, 0, 2, 3, 3, 0, 1, 3, 2, 0, 1, 3, 3, 2, 2, 3, 0, 1, 3,\n 1, 3], dtype=int32)"
},
"metadata": {},
"execution_count": 13
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "kmeans.cluster_centers_",
"execution_count": 14,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "array([[ 7.35743718, 6.95641383],\n [ 1.71691979, 2.70212954],\n [ 8.2642307 , 2.31513011],\n [ 3.75278302, 7.78000755]])"
},
"metadata": {},
"execution_count": 14
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "The resulting plot should look very similar to the one we fit by hand."
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "plt.scatter(x, y, c=np.array(list('rgbc'))[kmeans.labels_])\nplt.scatter(*kmeans.cluster_centers_.T, c='r', marker='+', s=100)",
"execution_count": 15,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "<matplotlib.collections.PathCollection at 0x1115cb438>"
},
"metadata": {},
"execution_count": 15
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": "<matplotlib.figure.Figure at 0x1115cb470>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## Example: Microbiome data\n\nThe `microbiome.csv` dataset contains counts of various microbe taxa extraced from either tissue or stool samples of NICU infants. We might be interested in seeing if samples cluster into groups approximately corresponding to location (tissue or stool) based on the counts of each bacterial taxon."
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "import pandas as pd\n\nmicrobiome = pd.read_csv(\"../data/microbiome.csv\")",
"execution_count": 16,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "First, we need to transpose the data so that it can be used with `scikit-learn`'s interface. Fortunately, Pandas makes this relatively painless. The data are stored in *long* format:"
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "microbiome.head()",
"execution_count": 17,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": "<div>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>Taxon</th>\n <th>Patient</th>\n <th>Group</th>\n <th>Tissue</th>\n <th>Stool</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Firmicutes</td>\n <td>1</td>\n <td>0</td>\n <td>136</td>\n <td>4182</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Firmicutes</td>\n <td>2</td>\n <td>1</td>\n <td>1174</td>\n <td>703</td>\n </tr>\n <tr>\n <th>2</th>\n <td>Firmicutes</td>\n <td>3</td>\n <td>0</td>\n <td>408</td>\n <td>3946</td>\n </tr>\n <tr>\n <th>3</th>\n <td>Firmicutes</td>\n <td>4</td>\n <td>1</td>\n <td>831</td>\n <td>8605</td>\n </tr>\n <tr>\n <th>4</th>\n <td>Firmicutes</td>\n <td>5</td>\n <td>0</td>\n <td>693</td>\n <td>50</td>\n </tr>\n </tbody>\n</table>\n</div>",
"text/plain": " Taxon Patient Group Tissue Stool\n0 Firmicutes 1 0 136 4182\n1 Firmicutes 2 1 1174 703\n2 Firmicutes 3 0 408 3946\n3 Firmicutes 4 1 831 8605\n4 Firmicutes 5 0 693 50"
},
"metadata": {},
"execution_count": 17
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "For this analysis, we need the features (*i.e.* taxa) in columns, with a row for each sample. First we drop the `Group` column, then pivot the `Taxon` column into a column index. "
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "microbiome_pivoted.pivot?",
"execution_count": 18,
"outputs": [
{
"output_type": "stream",
"text": "Object `microbiome_pivoted.pivot` not found.\n",
"name": "stdout"
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "microbiome_pivoted = microbiome.drop('Group', axis=1).pivot(index='Patient', \n columns='Taxon').stack(level=0).reset_index()\nmicrobiome_pivoted.columns.name = None\nmicrobiome_pivoted.head()",
"execution_count": 19,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": "<div>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>Patient</th>\n <th>level_1</th>\n <th>Actinobacteria</th>\n <th>Bacteroidetes</th>\n <th>Firmicutes</th>\n <th>Other</th>\n <th>Proteobacteria</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>1</td>\n <td>Tissue</td>\n <td>1590</td>\n <td>67</td>\n <td>136</td>\n <td>195</td>\n <td>2469</td>\n </tr>\n <tr>\n <th>1</th>\n <td>1</td>\n <td>Stool</td>\n <td>4</td>\n <td>0</td>\n <td>4182</td>\n <td>18</td>\n <td>1821</td>\n </tr>\n <tr>\n <th>2</th>\n <td>2</td>\n <td>Tissue</td>\n <td>25</td>\n <td>0</td>\n <td>1174</td>\n <td>42</td>\n <td>839</td>\n </tr>\n <tr>\n <th>3</th>\n <td>2</td>\n <td>Stool</td>\n <td>2</td>\n <td>0</td>\n <td>703</td>\n <td>2</td>\n <td>661</td>\n </tr>\n <tr>\n <th>4</th>\n <td>3</td>\n <td>Tissue</td>\n <td>259</td>\n <td>85</td>\n <td>408</td>\n <td>316</td>\n <td>4414</td>\n </tr>\n </tbody>\n</table>\n</div>",
"text/plain": " Patient level_1 Actinobacteria Bacteroidetes Firmicutes Other \\\n0 1 Tissue 1590 67 136 195 \n1 1 Stool 4 0 4182 18 \n2 2 Tissue 25 0 1174 42 \n3 2 Stool 2 0 703 2 \n4 3 Tissue 259 85 408 316 \n\n Proteobacteria \n0 2469 \n1 1821 \n2 839 \n3 661 \n4 4414 "
},
"metadata": {},
"execution_count": 19
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Then we drop the unused column and change the location variable from `str` type to `int`."
},
{
"metadata": {
"trusted": true,
"collapsed": true
},
"cell_type": "code",
"source": "microbiome_data = microbiome_pivoted.drop('Patient', \n axis=1).rename(columns={'level_1':'Location'}\n ).replace({'Tissue': 0 , 'Stool':1})\n\ny = microbiome_data.values[:, 0]\nX = microbiome_data.values[:, 1:]",
"execution_count": 20,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "microbiome_data.head()",
"execution_count": 21,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": "<div>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>Location</th>\n <th>Actinobacteria</th>\n <th>Bacteroidetes</th>\n <th>Firmicutes</th>\n <th>Other</th>\n <th>Proteobacteria</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>0</td>\n <td>1590</td>\n <td>67</td>\n <td>136</td>\n <td>195</td>\n <td>2469</td>\n </tr>\n <tr>\n <th>1</th>\n <td>1</td>\n <td>4</td>\n <td>0</td>\n <td>4182</td>\n <td>18</td>\n <td>1821</td>\n </tr>\n <tr>\n <th>2</th>\n <td>0</td>\n <td>25</td>\n <td>0</td>\n <td>1174</td>\n <td>42</td>\n <td>839</td>\n </tr>\n <tr>\n <th>3</th>\n <td>1</td>\n <td>2</td>\n <td>0</td>\n <td>703</td>\n <td>2</td>\n <td>661</td>\n </tr>\n <tr>\n <th>4</th>\n <td>0</td>\n <td>259</td>\n <td>85</td>\n <td>408</td>\n <td>316</td>\n <td>4414</td>\n </tr>\n </tbody>\n</table>\n</div>",
"text/plain": " Location Actinobacteria Bacteroidetes Firmicutes Other Proteobacteria\n0 0 1590 67 136 195 2469\n1 1 4 0 4182 18 1821\n2 0 25 0 1174 42 839\n3 1 2 0 703 2 661\n4 0 259 85 408 316 4414"
},
"metadata": {},
"execution_count": 21
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "To simplify the analysis, and aid visualization, we will again perform a PCA to isolate the majority of the variation into two principal components."
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "from sklearn.decomposition import PCA\nfrom itertools import cycle\n\npca = PCA(n_components=2, whiten=True).fit(X)\nX_pca = pca.transform(X)\n\ndef plot_2D(data, target, target_names, pca):\n colors = cycle('rgbcmykw')\n target_ids = range(len(target_names))\n plt.figure()\n for i, c, label in zip(target_ids, colors, target_names):\n plt.scatter(data[target == i, 0], data[target == i, 1],\n c=c, label=label)\n var_explained = pca.explained_variance_ratio_ * 100\n plt.xlabel('First Component: {0:.1f}%'.format(var_explained[0]))\n plt.ylabel('Second Component: {0:.1f}%'.format(var_explained[1]))\n plt.legend()",
"execution_count": 22,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "plot_2D(X_pca, y, ['Tissue', 'Stool'], pca)",
"execution_count": 23,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n5/AbTp06tdxhAAAAAEc5VGT37t1b+s92u12bN29WvXr11KJFC/n5+SkrK0u5ubnq0qWLYUEBAACA\nczlUZNPS/jhsPSEhQfXr19fUqVPl7+8vSSoqKtKECRM4TxYAAAAVxuk9ssuWLdMzzzxTWmKlM3f+\nGjx4sD755BOXhgMAAAAuxekiW6VKFf36668XXN+9e7eqV6/uklAAAADA5Th9/FaPHj00btw4jRw5\nUhEREbLb7dqyZYuSk5PVt29fIzICAAAAF3C6yD733HM6efKkJk6cqMLCQtntdlWtWlX9+vXT3/72\nNyMyAgAAABdwusj6+/vr73//u1544QX99NNPkqQmTZooICDA5eEAAACASynXnb0KCgq0a9cunT59\nWna7XRkZGaWPtWnTxmXhAAAAgEtxusiuXr1aL774oo4dOya73V7mMYvFou3bt7ssHAAAAHApThfZ\nmTNnqn379nrmmWdUq1YtIzIBAAAAl+V0kd27d6/mz5+vhg0bGpEHAAAAcIjT58g2btxY+/btMyIL\nAAAA4LByHb81efJkxcbG6vrrry9zhy9JatCggcvCAQAAAJfidJF95plnVFRUpGeeeUYWi6X0ut1u\n58teAAAAqDBOF9lFixYZkQMAAABwitNFtm3btqX/fODAAfn5+SkwMNCloQAAAIDLcfrLXpK0ePFi\ndezYUR06dFC7du0UHR2tN954w8XRAAAAgEtzekX2X//6lxISEtS3b1+1adNGdrtdmzZt0qxZs1Sz\nZk09/PDDRuQEAJjU9q1WbXh1jvxyftXxeiGKjolVeGSUu2MB8AJOF9k33nhDL7zwgvr161d6rVu3\nbmrUqJHefPNNiiwAoFRWulXbBvXXqL3ZskiyS5q/1SotSqPMArhiTm8t+PXXX3XHHXdccD06Olq/\n/PKLS0IBuHLpGVYNmthfPeO6a9DE/krPsLo7Eiqh9UmJGnq2xEqSRdLQnGytT0p0ZywAXsLpItug\nQQNlZGRccP37779XvXr1XBLqfDabTWPHjlWbNm0UHR3NyQnAZaRnWDUwpb9WhnykjWEbtDLkIw1M\nocyi4gXk58ly3jXL2esAcKWc3lrw6KOPatKkSTp06JCioqJksVi0efNmJSUlacCAAUZk1PTp05WZ\nmam0tDTt3btXL7zwgkJDQ3X33Xcb8nmA2SUtT1ROs2yduwyW0yxbScsTtTAiza3ZULkUBIfILpUp\n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\nwJQosgAAADAliiwAAABMiSILAAAAU6LIAgAAwJQosgAAADAliiwAAABMiSILAAAAU6LIAgAAwJQo\nsgAAADAliiwAAABMiSILAAAAU6LIAgAAwJQosgAAADAliiwAAABMiSILAAAAU6LIAgAAwJQosgAA\nADAliiwAAABMiSILAAAAU6LIAgAAwJQosgAAADAliiwAAABMiSILAAAAU6LIAgAAwJQosgAAADAl\niiwAAABMiSILAAAAU6LIAgAAwJQosgAAADAliiwAAABMiSILAAAAU6LIAgAAwJQosgAAADAliiwA\nAABMiSILAAAAU6LIAgAAwJQosgAAADAliiwAAABMiSILAAAAU6LIAgAAwJQosgAAADAliiwAAABM\niSILAAAAU6LIAgAAwJQosgAAADAliiwAAABMiSILAAAAU6LIAgAAwJQosgAAADAliiwAAABMiSIL\nAAAAU6LIAgAAwJQ8vsgePXpU48aNU4cOHdS+fXvFxcXp6NGj7o4FAAAAN/P4IjthwgTt2LFDCxYs\n0MKFC7V7926NHz/e3bEAAADgZn7uDvBnCgoK9Omnn+rtt99WixYtJEljx45Vv379ZLPZ5O/v7+aE\nAAAAcBePXpH18fHRa6+9pvDw8NJrdrtdRUVFOnHihBuTAQAAwN08ekW2atWq6tixY5lrixcvVvPm\nzRUUFOSmVAAAAPAEbi+yp06dUm5u7kUfCw4OVkBAQOmflyxZov/+979KTU11+nN8fT168dm0SubK\nfI3DjI3FfI3HjI3FfI3HjI1X3tla7Ha73cVZnPLNN99owIABslgsFzw2d+5cdenSRZK0dOlS/eMf\n/9C4cePUr1+/io4JAAAAD+P2IuuI1NRUJSQk6MUXX9QTTzzh7jgAAADwAG7fWnA5H3zwgWbOnKlx\n48apf//+7o4DAAAAD+HRK7KHDx9Wp06d1L17d40ePbrMY3Xr1pWPD3tVAAAAKiuPLrKffPLJBQXW\nbrfLYrFo9erVatCggZuSAQAAwN08usgCAAAAl8Lv5gEAAGBKFFkAAACYEkUWAAAApkSRBQAAgClR\nZAEAAGBKlaLIHjhwQDExMbr11lvVsWNHzZw5U8XFxe6O5VWOHj2qcePGqUOHDmrfvr3i4uJ09OhR\nd8fySoMHD9aHH37o7hhewWazaezYsWrTpo2io6O1aNEid0fyWjabTT179tSmTZvcHcWr5ObmKiYm\n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\nRK5CYII=\n",
"text/plain": "<matplotlib.figure.Figure at 0x111713da0>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "We can now create a `KMeans` object with `k=2`, and fit the data with it."
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "km_microbiome = KMeans(n_clusters=2, random_state=rng)\nkm_microbiome.fit(X_pca)",
"execution_count": 24,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "KMeans(algorithm='auto', copy_x=True, init='k-means++', max_iter=300,\n n_clusters=2, n_init=10, n_jobs=1, precompute_distances='auto',\n random_state=<mtrand.RandomState object at 0x1115d93a8>, tol=0.0001,\n verbose=0)"
},
"metadata": {},
"execution_count": 24
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "From this, we can extract the cluster centroids (in the `cluster_center_` attribute) and the group labels (in `labels_`) in order to generate a plot of the classification result."
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "np.round(km_microbiome.cluster_centers_, decimals=2)",
"execution_count": 25,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "array([[ 0.34, -0.38],\n [-1.01, 1.14]])"
},
"metadata": {},
"execution_count": 25
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "km_microbiome.labels_",
"execution_count": 26,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "array([0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0,\n 0, 0, 0, 0, 1], dtype=int32)"
},
"metadata": {},
"execution_count": 26
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "plot_2D(X_pca, km_microbiome.labels_, [\"c1\", \"c2\"], pca)",
"execution_count": 27,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\nI0VHR6thw4YOnxwAAACoKruK7JkzZzRx4kStXLlSFotFQUFBql27ts6ePavjx4/LYrGoV69eSkxM\nlK+vr9GZAQAAAPuK7PTp07Vp0yYtWLBAbdu2Va1atcoeO3funP7zn/9owoQJmjZtmsaNG2dYWAAA\nAKCUXbdRWL16tZKSktS+fftyJVaSatWqpZiYGE2ePFmffvqpISEBAACAi9lVZG02m+rWrfu7zwkI\nCNCZM2ecEgoAAAC4HLuKbExMjMaPH6/vv/++wsf379+viRMn6o477nBqOAAAAKAydu2RHTdunJ59\n9lndc889CgkJ0bXXXitfX19ZrVbl5+fr8OHDioqK0vjx443OCwAAAEiys8gGBQUpPT1d27dvL7v8\n1pkzZ+Tn56drrrlGbdq00U033WR0VgAAAKCMQ9eRjYqKUlRUlFFZAAAAALvZtUdWkrKzs7Vo0SJl\nZ2dLkv72t7+pW7duat26tR588EH9+9//NiojAAAAcAm7VmTXr1+vp59+WgEBAUpJSdGTTz6puXPn\n6sEHH1SLFi30zTffaNiwYUpLS1OnTp2MzgwAAADYV2RTU1P17LPP6sknn1R6erqmTJmiF154QQMH\nDpQk9e3bV82aNVNqaipFFgAAANXCrq0F3377rXr06CFJevjhhyVJt99+e7nndO/eXd99952T4wEA\nAAAVs6vI1q9fv6yk1q5dW9OnT1dQUFC55+zcuVPXXHON8xMCAAAAFbCryPbq1UsJCQlas2aNJKln\nz55q1KiRJOnHH39USkqKxo0bpz59+hiXFAAAALiAXXtkhw0bpqKiIu3atUv33HNPuceys7O1YsUK\nPfPMMxowYIAhIQEAAICL2VVkvby8NGLEiAof69ixo7766iunhgIAAAAux+7ryFbG29vbGTkAAAAA\nh1xxkQUAAABcgSILAAAAU6LIAgAAwJQosgAAADAlh4tsQkKCTp06dcnxU6dOKSEhwSmhAAAAgMtx\nuMhu2rRJ586du+S41WrVpk2bnBIKAAAAuBy7riN7oXXr1lV4PDg4uNLHAAAAAGdzeEV2zpw5Kiws\nvOT4qVOnNHnyZKeEAgAAAC7HrhXZ3NxcHTt2TJL02muvKTw8XHXr1i33nD179mj58uUaM2aM81MC\nAAAAF7GryO7fv19PPvmkLBaLJGnYsGEVPu+vf/2r85IBAAAAv8OuItuxY0etW7dOJSUl6tq1q1as\n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\nsf7+978rICDA1XE8Qk5OjoqLixUZGVl27Oabb9aOHTtcmMrzbN68We3atdOyZcvE/XecKyQkRPPn\nzy8rsdKvf/eyrct5QkJCNHPmTF111VWSpG3btmnLli10CCebNm2a7r//fjVt2tTh13r8iuyFYmNj\ntWXLFkVERKhPnz6ujuMxateurQ4dOpQ7tmTJErVo0UJBQUEuSuVZOnXqpE6dOrk6hkc5cuSIgoKC\n5OPz21+D9evX19mzZ1VQUKB69eq5MJ3nePTRR10dwWPVqVOn3N+9NptNS5cu1e233+7CVJ6rc+fO\n+vHHH9WxY0c+tXGir7/+Wtu2bdOqVauUmJjo8Os9osiePXtWeXl5FT4WEhIif39/SdLYsWN18uRJ\nvfzyy4qPj9fcuXOrM6ap2TtjSVq6dKk+++wzNsQ7wJH5wjkKCwsv2fZS+jNfloEZTZ8+XTk5Ofrg\ngw9cHcUjpaWl6ejRo0pMTNTkyZM1duxYV0cyPavVqgkTJigxMbHK2xA9osh+88036t+/vywWyyWP\nzZkzR126dJEktWjRQpKUlJSk3r1769ChQ2rcuHG1ZjUre2f8zjvvaPLkyRozZozatWtX3TFNy975\nwnlq1659SWEt/Zn/cIDZJCcnKz09XbNmzarSx7O4vFatWkmSEhISNGrUKL300kvlPtGB49LS0hQR\nEXFFnyJ4xO9A27ZtlZOTU+Fjp06d0po1a3TPPfeUHWvWrJkkqaCggCJrp9+bcamFCxcqOTlZL730\nkvr161dNyTyDPfOFczVq1EjHjx9XSUmJvLx+/brA0aNH5efnxxfqYCqTJk3SsmXLlJycrK5du7o6\njkf56aeftH379nJzbdasmc6dO6dTp06xfe4KrVmzRj/99JOioqIkSefOnZMkffbZZ8rIyLDrPTyi\nyP6eM2fOaMSIEQoNDdVNN90kScrKypKPj4+aNGni2nAe5MMPP9SMGTM0ZswYxcbGujoOcFk33HCD\nfHx8lJmZqejoaEnS1q1bFRER4eJkgP3mzJmjZcuWKSUlRd26dXN1HI9z4MABPfvss9qwYYNCQkIk\nSTt37lRwcDAl1gmWLl2qoqKisp+Tk5MlyaGrbnj8VQsaNGigu+66Sy+//LJ2796trVu3auzYsYqN\njeXb305y4sQJTZo0Sb169dJf/vIXHT16tOwfbjwBd+Xn56f7779fiYmJ2rlzp/75z39q8eLFGjBg\ngKujAXbJzc3V3Llz9cQTTygqKqrc371wjhtvvFERERFKSEhQbm6u1q9frxkzZuipp55ydTSPcO21\n1yosLKzsn4CAAAUEBJRdacoeHr8iK0lTpkxRUlKSBg0aJEnq1asX1zV0oi+//FKFhYVauXJl2R2n\nbDabLBaL1q5dy/YNJ6toHy2qJiEhQRMnTtSAAQNUp04dDR8+nI9mDcSfXedau3atSkpKNHfu3LIv\nL5f+3bt7924Xp/MMXl5eev311zVp0iQ98sgj8vf3V//+/dk+50YsNi7sBwAAABPy+K0FAAAA8EwU\nWQAAAJgSRRYAAACmRJEFAACAKVFkAQAAYEoUWQAAAJgSRRYAAACmRJEFAACAKVFkAQAAYEoUWQDV\nKjY2VuHh4Zf8c8MNN2j69Ollz0lISLii86xcuVLHjh373ecUFhbqtddeU8+ePRUVFaUOHTpo2LBh\nys7OvqJzexp7ZnmhkpIStW7d+pLf3zlz5pQ9Z8eOHYqNjVV0dLS6d++u9PT0333P0ve48P1K/+/h\nw4fLcsbExKh9+/Z6++23y70+KytLnTt3ltVqdeDfHIC783F1AAA1zz333KOxY8fq4jtk+/v7S5Je\ne+01eXlV/b+zt2zZopdeeknr1q2r9DkFBQXq06ePatWqpeHDh6tFixY6efKkFi1apD59+ujNN99U\n27Ztq5zBU9gzy4t9//33OnfunFatWqXg4OCy41dddZUkaf/+/erfv786d+6sFStW6NChQxo9erRO\nnTqlp556qsL3/PLLL8v9fPz4cfXr108dO3bUNddco+PHj2vixImaNWuW6tatq8GDB6tDhw5q2rSp\nJCk5OVnPPfecfH19HR0BADdGkQVQ7WrXrl2u4FwsMDDwit6/pKREFovld58zYcIEnTt3TitWrNDV\nV19ddvzVV1/VY489pokTJ2r16tVXlMMT2DPLi+3Zs0dXX321mjdvXuHjS5YsUXBwsKZNm6ZatWqp\nadOmeuGFFzR+/HgNHjy4wrJZv379cj9PnDhRwcHBevnllyVJ+/bt09X/v727j6mq/gM4/gY1eyA1\nH1ox6QntXiVACIbZ3UhAcBU3UAwtmzGhFZEm0YD/rIsCMvCBUGBRBKPMAaE8ZEnBXMwCzAaFckW5\n3YlaaOYTxki+vz/6cX7ceLS28v72eW1343y/53y+53zvxj6c8/kenJzw9/cHYM6cOXR0dODq6kp9\nfT0XL17EaDTe0HUIIW5+UloghLjpDC4t+OSTTwgODmbTpk34+PgQFxcHQEFBAUuWLMHd3Z3AwEB2\n7gJ6rX4AAAlNSURBVNwJQGNjI2vWrEEpRWBgIBUVFUPinz9/ntraWtasWWOTxA4wmUxs27ZN2z57\n9iwJCQkYDAa8vLxYu3Yt7e3tWn9ycjKJiYmkpKTg6+uLn58f2dnZnDhxgueffx5PT0+MRiMtLS3a\nMXq9npKSEiIjI/Hw8CA0NHTIXc/6+noiIyO1soe0tDR6e3ttYpSVlREVFYWnpycGg0GbhwF1dXUs\nW7YMT09PgoOD2b59u83j9dFijDSXer3epkzgz9rb27U7ocOxWq14eHgwadIkrW3+/Plcu3bNZo5G\n0tDQQG1tLSaTSYvh7OzMpUuXOHnyJN3d3VgsFmbPno1SiszMTN58880x4woh7I8kskKIm57VaqW7\nu5uKigo2bNhAXV0d+fn5vP322xw4cICEhARyc3OprKzE29ub7OxsHBwcKC0t5cknnxwS7+jRo/T3\n9+Pl5TXseC4uLtrdxKtXr7Jy5Up+/vlncnNz2b17N7fddhurV6/mzJkz2jHV1dVMmjSJ8vJyoqKi\nyMnJITY2lpiYGEpLS5k8eTJvvfWWzThZWVmEhYWxb98+nnjiCeLi4vjuu+8AqK2tJTY2loCAACoq\nKjCZTNTU1PDGG2/YxNiyZQvLly+npqaGF154gR07dtDc3AzAwYMH2bBhA6tWraK6upqNGzeyf/9+\nEhMTxxVjpLlsaGhg7dq1I35fZrOZvr4+oqOjMRgMLF++nH379mn9d999t83cAZw6dQpgXLW4WVlZ\nBAUF4e3trbXNnDmTV199ldDQUBYvXozRaMTNzY3S0lJmzpzJ448/PmZcIYQdUkII8Q9avXq1cnNz\nUwsWLLD5xMTE2OyTlJSklFKqvLxc6fV6ZTabtf7CwkJlMBiUxWLR2g4fPqzOnDmjlFLqm2++UXq9\nXnV1dQ17DlVVVUqv1yur1Trm+ZaUlKgFCxaoCxcuaG2//fabMhgMKiMjQymlVFJSkjIYDFp/T0+P\n0ul0atu2bVrbhx9+qNzd3bVtnU6nUlJSbMZ69tlnVXx8vFJKqRUrVqj169fb9NfW1iqdTqc6Ojq0\nGKmpqTb7+Pr6qry8PKWUUs8995zavHmzTf/XX3+tdDqdNjdjxRhrLocTFBSkAgICVH19vTp27JjK\n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\nrHTMIQAAAABJRU5ErkJggg==\n",
"text/plain": "<matplotlib.figure.Figure at 0x1118f0630>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "`scikit-learn` includes a suite of well-known clustering algorithms. Like most unsupervised learning models in the scikit, they expect the data to be clustered to have the shape `(n_samples, n_features)`:\n\n- `sklearn.cluster.KMeans`\n: The simplest, yet effective clustering algorithm. Needs to be provided with the\nnumber of clusters in advance, and assumes that the data is normalized as input\n(but use a PCA model as preprocessor).\n- `sklearn.cluster.MeanShift`\n: Can find better looking clusters than KMeans but is not scalable to high number of samples.\n- `sklearn.cluster.DBSCAN`\n: Can detect irregularly shaped clusters based on density, i.e. sparse regions in\nthe input space are likely to become inter-cluster boundaries. Can also detect\noutliers (samples that are not part of a cluster)."
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## Exercise: NEC\n\nIf all the odd-numbered patients are healthy controls and the even-numbered patients have necrotizing enterocolitis (NEC), see if either the tissue or stool samples cluster according to group status."
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "## Write answer here",
"execution_count": 28,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## Exercise: clustering baseball statistics\n\nWe can use clustering to try to find interesting groupings among sets of baseball statistics. Load the baseball dataset and run a clustering algorithm on the set of three statistics:\n\n* hit rate: hits / at bats\n* strikeout rate: strikeouts / at bats\n* walk rate: bases on balls /at bats\n\nYou should probably set a minimum number of at bats to qualify for the analysis, since there are pitchers that get only a handful of at bats each year.\n\nSince we are clustering in 3 dimensions, you can visualize the output as a series of pairwise plots."
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "import pandas as pd\n\nbaseball = pd.read_csv(\"../data/baseball.csv\", index_col=0)\nbaseball.head()",
"execution_count": 29,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": "<div>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>player</th>\n <th>year</th>\n <th>stint</th>\n <th>team</th>\n <th>lg</th>\n <th>g</th>\n <th>ab</th>\n <th>r</th>\n <th>h</th>\n <th>X2b</th>\n <th>...</th>\n <th>rbi</th>\n <th>sb</th>\n <th>cs</th>\n <th>bb</th>\n <th>so</th>\n <th>ibb</th>\n <th>hbp</th>\n <th>sh</th>\n <th>sf</th>\n <th>gidp</th>\n </tr>\n <tr>\n <th>id</th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>88641</th>\n <td>womacto01</td>\n <td>2006</td>\n <td>2</td>\n <td>CHN</td>\n <td>NL</td>\n <td>19</td>\n <td>50</td>\n <td>6</td>\n <td>14</td>\n <td>1</td>\n <td>...</td>\n <td>2.0</td>\n <td>1.0</td>\n <td>1.0</td>\n <td>4</td>\n <td>4.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>3.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>88643</th>\n <td>schilcu01</td>\n <td>2006</td>\n <td>1</td>\n <td>BOS</td>\n <td>AL</td>\n <td>31</td>\n <td>2</td>\n <td>0</td>\n <td>1</td>\n <td>0</td>\n <td>...</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0</td>\n <td>1.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>88645</th>\n <td>myersmi01</td>\n <td>2006</td>\n <td>1</td>\n <td>NYA</td>\n <td>AL</td>\n <td>62</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>...</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>88649</th>\n <td>helliri01</td>\n <td>2006</td>\n <td>1</td>\n <td>MIL</td>\n <td>NL</td>\n <td>20</td>\n <td>3</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>...</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0</td>\n <td>2.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>88650</th>\n <td>johnsra05</td>\n <td>2006</td>\n <td>1</td>\n <td>NYA</td>\n <td>AL</td>\n <td>33</td>\n <td>6</td>\n <td>0</td>\n <td>1</td>\n <td>0</td>\n <td>...</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0</td>\n <td>4.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n </tbody>\n</table>\n<p>5 rows × 22 columns</p>\n</div>",
"text/plain": " player year stint team lg g ab r h X2b ... rbi sb \\\nid ... \n88641 womacto01 2006 2 CHN NL 19 50 6 14 1 ... 2.0 1.0 \n88643 schilcu01 2006 1 BOS AL 31 2 0 1 0 ... 0.0 0.0 \n88645 myersmi01 2006 1 NYA AL 62 0 0 0 0 ... 0.0 0.0 \n88649 helliri01 2006 1 MIL NL 20 3 0 0 0 ... 0.0 0.0 \n88650 johnsra05 2006 1 NYA AL 33 6 0 1 0 ... 0.0 0.0 \n\n cs bb so ibb hbp sh sf gidp \nid \n88641 1.0 4 4.0 0.0 0.0 3.0 0.0 0.0 \n88643 0.0 0 1.0 0.0 0.0 0.0 0.0 0.0 \n88645 0.0 0 0.0 0.0 0.0 0.0 0.0 0.0 \n88649 0.0 0 2.0 0.0 0.0 0.0 0.0 0.0 \n88650 0.0 0 4.0 0.0 0.0 0.0 0.0 0.0 \n\n[5 rows x 22 columns]"
},
"metadata": {},
"execution_count": 29
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "## Write answer here",
"execution_count": 30,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## DP-Means\n\nThe major weakness of the k-means approach to clustering is that the number of clusters needs to be specified at the outset. However, there is usually uncertainty with respect to the appropriate number of clusters for a given dataset. A flexible alternative to k-means that allows for an unknown number of clusters involves using a Bayesian non-parametric mixture model instead (Kulis and Jordan 2011). In particular, a Dirichlet process (DP) mixture model, which we have seen in a previous lecture, probabilistically assigns observations to clusters, using a stick-breaking algorithm. \n\nRecall the definition of a finite mixture model:\n\n\\\\[f(y) = \\sum_{h=1}^{k} \\pi_h \\mathcal{K}(y|\\theta_h)\\\\]\n\nwhere \\\\(k\\\\) is the number of mixture components, \\\\(\\pi_h\\\\) is the mixing coefficient for component \\\\(h\\\\), and \\\\(K\\\\) specifies the mixing components (*e.g.* a Gaussian distribution), which has parameters \\\\(\\theta_h\\\\) for each component. \n\nA DP mixture extends this by placing a Dirichlet prior of dimension \\\\(k\\\\) on the mixing coefficients. The distribution over the group indicators can then be specified as a categorical distribution:\n\n\\\\[\\begin{aligned}\n\\mathbf{\\pi} &\\sim \\text{Dirichlet}(k, \\pi_0) \\\\\nz_1,\\ldots,z_n &\\sim \\text{Categorical}(\\mathbf{\\pi}) \\\\\n\\end{aligned}\\\\]\n\nWe might then specify the observations as being a mixture of Gaussians, whose means are drawn from an appropriate prior distribution \\\\(P\\\\):\n\n\\\\[\\begin{aligned}\n\\theta_1,\\ldots,\\theta_k &\\sim P \\\\\ny_1,\\ldots,y_n &\\sim N(\\theta_{z[i]}, \\sigma I)\n\\end{aligned}\\\\]"
},
{
"metadata": {
"trusted": true,
"collapsed": true
},
"cell_type": "code",
"source": "from sklearn.decomposition import PCA\nfrom sklearn import datasets\n\niris = datasets.load_iris()\n\npca = PCA(n_components=2, whiten=True).fit(iris.data)\nX_pca = pca.transform(iris.data)",
"execution_count": 31,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "X_pca.shape",
"execution_count": 32,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "(150, 2)"
},
"metadata": {},
"execution_count": 32
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": false,
"scrolled": false
},
"cell_type": "code",
"source": "import pymc3 as pm\nimport theano.tensor as tt\n\nK = 10\nN = X_pca.shape[0]\n\nwith pm.Model() as dp_mixture:\n \n α = pm.Gamma('α', 1., 1.)\n β = pm.Beta('β', 1., α, shape=K)\n w = pm.Deterministic('w', β * tt.concatenate([[1], tt.extra_ops.cumprod(1 - β)[:-1]]))\n component = pm.Categorical('component', w, shape=N)\n\n μ = tt.stack([pm.Normal('μ_%i' % i, mu=tt.zeros(2), sd=1000, shape=2) for i in range(K)])\n σ = pm.Uniform('σ', 0, 5, shape=(K, 2))\n \n sigs = σ[component]\n mus = μ[component]\n \n obs = tt.stack([pm.MvNormal('obs_%i' % i, mus[i], cov=tt.eye(2)*(sigs[i]**2), observed=X_pca[i]) for i in range(N)])",
"execution_count": 33,
"outputs": [
{
"output_type": "stream",
"text": "Applied log-transform to α and added transformed α_log_ to model.\nApplied logodds-transform to β and added transformed β_logodds_ to model.\nApplied interval-transform to σ and added transformed σ_interval_ to model.\n",
"name": "stderr"
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "with dp_mixture:\n step1 = pm.Metropolis(vars=[α, β, σ, μ])\n step2 = pm.CategoricalGibbsMetropolis(vars=[component])\n trace = pm.sample(10000, step=[step1, step2])",
"execution_count": 34,
"outputs": [
{
"output_type": "stream",
"text": "===============================\n",
"name": "stdout"
},
{
"output_type": "stream",
"text": "00001\t#include <Python.h>\n00002\t#include <iostream>\n00003\t#include \"theano_mod_helper.h\"\n00004\t#include <math.h>\n00005\t#include <numpy/arrayobject.h>\n00006\t#include <numpy/arrayscalars.h>\n00007\t#include <vector>\n00008\t#include <algorithm>\n00009\t//////////////////////\n00010\t//// Support Code\n00011\t//////////////////////\n00012\t\n00013\t\n00014\t namespace {\n00015\t struct __struct_compiled_op_m17e0841797488fe86115b4f81aba8732 {\n00016\t PyObject* __ERROR;\n00017\t\n00018\t PyObject* storage_V3;\n00019\tPyObject* storage_V5;\n00020\tPyObject* storage_V7;\n00021\tPyObject* storage_V9;\n00022\tPyObject* storage_V11;\n00023\tPyObject* storage_V13;\n00024\tPyObject* storage_V15;\n00025\tPyObject* storage_V17;\n00026\tPyObject* storage_V19;\n00027\tPyObject* storage_V21;\n00028\tPyObject* storage_V23;\n00029\tPyObject* storage_V25;\n00030\tPyObject* storage_V27;\n00031\tPyObject* storage_V29;\n00032\tPyObject* storage_V31;\n00033\tPyObject* storage_V33;\n00034\tPyObject* storage_V35;\n00035\tPyObject* storage_V37;\n00036\tPyObject* storage_V39;\n00037\tPyObject* storage_V41;\n00038\tPyObject* storage_V43;\n00039\tPyObject* storage_V45;\n00040\tPyObject* storage_V47;\n00041\tPyObject* storage_V49;\n00042\tPyObject* storage_V51;\n00043\tPyObject* storage_V53;\n00044\tPyObject* storage_V55;\n00045\tPyObject* storage_V57;\n00046\tPyObject* storage_V59;\n00047\tPyObject* storage_V61;\n00048\tPyObject* storage_V63;\n00049\tPyObject* storage_V65;\n00050\tPyObject* storage_V67;\n00051\tPyObject* storage_V69;\n00052\tPyObject* storage_V71;\n00053\tPyObject* storage_V73;\n00054\tPyObject* storage_V75;\n00055\tPyObject* storage_V77;\n00056\tPyObject* storage_V79;\n00057\tPyObject* storage_V81;\n00058\tPyObject* storage_V83;\n00059\tPyObject* storage_V85;\n00060\tPyObject* storage_V87;\n00061\tPyObject* storage_V89;\n00062\tPyObject* storage_V91;\n00063\tPyObject* storage_V93;\n00064\tPyObject* storage_V95;\n00065\tPyObject* storage_V97;\n00066\tPyObject* storage_V99;\n00067\tPyObject* storage_V101;\n00068\tPyObject* storage_V103;\n00069\tPyObject* storage_V105;\n00070\tPyObject* storage_V107;\n00071\tPyObject* storage_V109;\n00072\tPyObject* storage_V111;\n00073\tPyObject* storage_V113;\n00074\tPyObject* storage_V115;\n00075\tPyObject* storage_V117;\n00076\tPyObject* storage_V119;\n00077\tPyObject* storage_V121;\n00078\tPyObject* storage_V123;\n00079\tPyObject* storage_V125;\n00080\tPyObject* storage_V127;\n00081\tPyObject* storage_V129;\n00082\tPyObject* storage_V131;\n00083\tPyObject* storage_V133;\n00084\tPyObject* storage_V135;\n00085\tPyObject* storage_V137;\n00086\tPyObject* storage_V139;\n00087\tPyObject* storage_V141;\n00088\tPyObject* storage_V143;\n00089\tPyObject* storage_V145;\n00090\tPyObject* storage_V147;\n00091\tPyObject* storage_V149;\n00092\tPyObject* storage_V151;\n00093\tPyObject* storage_V153;\n00094\tPyObject* storage_V155;\n00095\tPyObject* storage_V157;\n00096\tPyObject* storage_V159;\n00097\tPyObject* storage_V161;\n00098\tPyObject* storage_V163;\n00099\tPyObject* storage_V165;\n00100\tPyObject* storage_V167;\n00101\tPyObject* storage_V169;\n00102\tPyObject* storage_V171;\n00103\tPyObject* storage_V173;\n00104\tPyObject* storage_V175;\n00105\tPyObject* storage_V177;\n00106\tPyObject* storage_V179;\n00107\tPyObject* storage_V181;\n00108\tPyObject* storage_V183;\n00109\tPyObject* storage_V185;\n00110\tPyObject* storage_V187;\n00111\tPyObject* storage_V189;\n00112\tPyObject* storage_V191;\n00113\tPyObject* storage_V193;\n00114\tPyObject* storage_V195;\n00115\tPyObject* storage_V197;\n00116\tPyObject* storage_V199;\n00117\tPyObject* storage_V201;\n00118\tPyObject* storage_V203;\n00119\tPyObject* storage_V205;\n00120\tPyObject* storage_V207;\n00121\tPyObject* storage_V209;\n00122\tPyObject* storage_V211;\n00123\tPyObject* storage_V213;\n00124\tPyObject* storage_V215;\n00125\tPyObject* storage_V217;\n00126\tPyObject* storage_V219;\n00127\tPyObject* storage_V221;\n00128\tPyObject* storage_V223;\n00129\tPyObject* storage_V225;\n00130\tPyObject* storage_V227;\n00131\tPyObject* storage_V229;\n00132\tPyObject* storage_V231;\n00133\tPyObject* storage_V233;\n00134\tPyObject* storage_V235;\n00135\tPyObject* storage_V237;\n00136\tPyObject* storage_V239;\n00137\tPyObject* storage_V241;\n00138\tPyObject* storage_V243;\n00139\tPyObject* storage_V245;\n00140\tPyObject* storage_V247;\n00141\tPyObject* storage_V249;\n00142\tPyObject* storage_V251;\n00143\tPyObject* storage_V253;\n00144\tPyObject* storage_V255;\n00145\tPyObject* storage_V257;\n00146\tPyObject* storage_V259;\n00147\tPyObject* storage_V261;\n00148\tPyObject* storage_V263;\n00149\tPyObject* storage_V265;\n00150\tPyObject* storage_V267;\n00151\tPyObject* storage_V269;\n00152\tPyObject* storage_V271;\n00153\tPyObject* storage_V273;\n00154\tPyObject* storage_V275;\n00155\tPyObject* storage_V277;\n00156\tPyObject* storage_V279;\n00157\tPyObject* storage_V281;\n00158\tPyObject* storage_V283;\n00159\tPyObject* storage_V285;\n00160\tPyObject* storage_V287;\n00161\tPyObject* storage_V289;\n00162\tPyObject* storage_V291;\n00163\tPyObject* storage_V293;\n00164\tPyObject* storage_V295;\n00165\tPyObject* storage_V297;\n00166\tPyObject* storage_V299;\n00167\tPyObject* storage_V301;\n00168\tPyObject* storage_V303;\n00169\tPyObject* storage_V305;\n00170\tPyObject* storage_V307;\n00171\tPyObject* storage_V309;\n00172\tPyObject* storage_V311;\n00173\tPyObject* storage_V313;\n00174\tPyObject* storage_V315;\n00175\tPyObject* storage_V317;\n00176\tPyObject* storage_V319;\n00177\tPyObject* storage_V321;\n00178\tPyObject* storage_V323;\n00179\tPyObject* storage_V325;\n00180\tPyObject* storage_V327;\n00181\tPyObject* storage_V329;\n00182\tPyObject* storage_V331;\n00183\tPyObject* storage_V333;\n00184\tPyObject* storage_V335;\n00185\tPyObject* storage_V337;\n00186\tPyObject* storage_V339;\n00187\tPyObject* storage_V341;\n00188\tPyObject* storage_V343;\n00189\tPyObject* storage_V345;\n00190\tPyObject* storage_V347;\n00191\tPyObject* storage_V349;\n00192\tPyObject* storage_V351;\n00193\tPyObject* storage_V353;\n00194\tPyObject* storage_V355;\n00195\tPyObject* storage_V357;\n00196\tPyObject* storage_V359;\n00197\tPyObject* storage_V361;\n00198\tPyObject* storage_V363;\n00199\tPyObject* storage_V365;\n00200\tPyObject* storage_V367;\n00201\tPyObject* storage_V369;\n00202\tPyObject* storage_V371;\n00203\tPyObject* storage_V373;\n00204\tPyObject* storage_V375;\n00205\tPyObject* storage_V377;\n00206\tPyObject* storage_V379;\n00207\tPyObject* storage_V381;\n00208\tPyObject* storage_V383;\n00209\tPyObject* storage_V385;\n00210\tPyObject* storage_V387;\n00211\tPyObject* storage_V389;\n00212\tPyObject* storage_V391;\n00213\tPyObject* storage_V393;\n00214\tPyObject* storage_V395;\n00215\tPyObject* storage_V397;\n00216\tPyObject* storage_V399;\n00217\tPyObject* storage_V401;\n00218\tPyObject* storage_V403;\n00219\tPyObject* storage_V405;\n00220\tPyObject* storage_V407;\n00221\tPyObject* storage_V409;\n00222\tPyObject* storage_V411;\n00223\tPyObject* storage_V413;\n00224\tPyObject* storage_V415;\n00225\tPyObject* storage_V417;\n00226\tPyObject* storage_V419;\n00227\tPyObject* storage_V421;\n00228\tPyObject* storage_V423;\n00229\tPyObject* storage_V425;\n00230\tPyObject* storage_V427;\n00231\tPyObject* storage_V429;\n00232\tPyObject* storage_V431;\n00233\tPyObject* storage_V433;\n00234\tPyObject* storage_V435;\n00235\tPyObject* storage_V437;\n00236\tPyObject* storage_V439;\n00237\tPyObject* storage_V441;\n00238\tPyObject* storage_V443;\n00239\tPyObject* storage_V445;\n00240\tPyObject* storage_V447;\n00241\tPyObject* storage_V449;\n00242\tPyObject* storage_V451;\n00243\tPyObject* storage_V453;\n00244\tPyObject* storage_V455;\n00245\tPyObject* storage_V457;\n00246\tPyObject* storage_V459;\n00247\tPyObject* storage_V461;\n00248\tPyObject* storage_V463;\n00249\tPyObject* storage_V465;\n00250\tPyObject* storage_V467;\n00251\tPyObject* storage_V469;\n00252\tPyObject* storage_V471;\n00253\tPyObject* storage_V473;\n00254\tPyObject* storage_V475;\n00255\tPyObject* storage_V477;\n00256\tPyObject* storage_V479;\n00257\tPyObject* storage_V481;\n00258\tPyObject* storage_V483;\n00259\tPyObject* storage_V485;\n00260\tPyObject* storage_V487;\n00261\tPyObject* storage_V489;\n00262\tPyObject* storage_V491;\n00263\tPyObject* storage_V493;\n00264\tPyObject* storage_V495;\n00265\tPyObject* storage_V497;\n00266\tPyObject* storage_V499;\n00267\tPyObject* storage_V501;\n00268\tPyObject* storage_V503;\n00269\tPyObject* storage_V505;\n00270\tPyObject* storage_V507;\n00271\tPyObject* storage_V509;\n00272\tPyObject* storage_V511;\n00273\tPyObject* storage_V513;\n00274\tPyObject* storage_V515;\n00275\tPyObject* storage_V517;\n00276\tPyObject* storage_V519;\n00277\tPyObject* storage_V521;\n00278\tPyObject* storage_V523;\n00279\tPyObject* storage_V525;\n00280\tPyObject* storage_V527;\n00281\tPyObject* storage_V529;\n00282\tPyObject* storage_V531;\n00283\tPyObject* storage_V533;\n00284\tPyObject* storage_V535;\n00285\tPyObject* storage_V537;\n00286\tPyObject* storage_V539;\n00287\tPyObject* storage_V541;\n00288\tPyObject* storage_V543;\n00289\tPyObject* storage_V545;\n00290\tPyObject* storage_V547;\n00291\tPyObject* storage_V549;\n00292\tPyObject* storage_V551;\n00293\tPyObject* storage_V553;\n00294\tPyObject* storage_V555;\n00295\tPyObject* storage_V557;\n00296\tPyObject* storage_V559;\n00297\tPyObject* storage_V561;\n00298\tPyObject* storage_V563;\n00299\tPyObject* storage_V565;\n00300\tPyObject* storage_V567;\n00301\tPyObject* storage_V569;\n00302\tPyObject* storage_V571;\n00303\tPyObject* storage_V573;\n00304\tPyObject* storage_V575;\n00305\tPyObject* storage_V577;\n00306\tPyObject* storage_V579;\n00307\tPyObject* storage_V581;\n00308\tPyObject* storage_V583;\n00309\tPyObject* storage_V585;\n00310\tPyObject* storage_V587;\n00311\tPyObject* storage_V589;\n00312\tPyObject* storage_V591;\n00313\tPyObject* storage_V593;\n00314\tPyObject* storage_V595;\n00315\tPyObject* storage_V597;\n00316\tPyObject* storage_V599;\n00317\tPyObject* storage_V601;\n00318\tPyObject* storage_V603;\n00319\tPyObject* storage_V605;\n00320\tPyObject* storage_V607;\n00321\tPyObject* storage_V609;\n00322\tPyObject* storage_V611;\n00323\tPyObject* storage_V613;\n00324\tPyObject* storage_V615;\n00325\tPyObject* storage_V617;\n00326\tPyObject* storage_V619;\n00327\tPyObject* storage_V621;\n00328\tPyObject* storage_V623;\n00329\tPyObject* storage_V625;\n00330\tPyObject* storage_V627;\n00331\tPyObject* storage_V629;\n00332\tPyObject* storage_V631;\n00333\tPyObject* storage_V633;\n00334\tPyObject* storage_V635;\n00335\tPyObject* storage_V637;\n00336\tPyObject* storage_V639;\n00337\tPyObject* storage_V641;\n00338\tPyObject* storage_V643;\n00339\tPyObject* storage_V645;\n00340\tPyObject* storage_V647;\n00341\tPyObject* storage_V649;\n00342\tPyObject* storage_V651;\n00343\tPyObject* storage_V653;\n00344\tPyObject* storage_V655;\n00345\tPyObject* storage_V657;\n00346\tPyObject* storage_V659;\n00347\tPyObject* storage_V661;\n00348\tPyObject* storage_V663;\n00349\tPyObject* storage_V665;\n00350\tPyObject* storage_V667;\n00351\tPyObject* storage_V669;\n00352\tPyObject* storage_V671;\n00353\tPyObject* storage_V673;\n00354\tPyObject* storage_V675;\n00355\tPyObject* storage_V677;\n00356\tPyObject* storage_V679;\n00357\tPyObject* storage_V681;\n00358\tPyObject* storage_V683;\n00359\tPyObject* storage_V685;\n00360\tPyObject* storage_V687;\n00361\tPyObject* storage_V689;\n00362\tPyObject* storage_V691;\n00363\tPyObject* storage_V693;\n00364\tPyObject* storage_V695;\n00365\tPyObject* storage_V697;\n00366\tPyObject* storage_V699;\n00367\tPyObject* storage_V701;\n00368\tPyObject* storage_V703;\n00369\tPyObject* storage_V705;\n00370\tPyObject* storage_V707;\n00371\tPyObject* storage_V709;\n00372\tPyObject* storage_V711;\n00373\tPyObject* storage_V713;\n00374\tPyObject* storage_V715;\n00375\tPyObject* storage_V717;\n00376\tPyObject* storage_V719;\n00377\tPyObject* storage_V721;\n00378\tPyObject* storage_V723;\n00379\tPyObject* storage_V725;\n00380\tPyObject* storage_V727;\n00381\tPyObject* storage_V729;\n00382\tPyObject* storage_V731;\n00383\tPyObject* storage_V733;\n00384\tPyObject* storage_V735;\n00385\tPyObject* storage_V737;\n00386\tPyObject* storage_V739;\n00387\tPyObject* storage_V741;\n00388\tPyObject* storage_V743;\n00389\tPyObject* storage_V745;\n00390\tPyObject* storage_V747;\n00391\tPyObject* storage_V749;\n00392\tPyObject* storage_V751;\n00393\tPyObject* storage_V753;\n00394\tPyObject* storage_V755;\n00395\tPyObject* storage_V757;\n00396\tPyObject* storage_V759;\n00397\tPyObject* storage_V761;\n00398\tPyObject* storage_V763;\n00399\tPyObject* storage_V765;\n00400\tPyObject* storage_V767;\n00401\tPyObject* storage_V769;\n00402\tPyObject* storage_V771;\n00403\tPyObject* storage_V773;\n00404\tPyObject* storage_V775;\n00405\tPyObject* storage_V777;\n00406\tPyObject* storage_V779;\n00407\tPyObject* storage_V781;\n00408\tPyObject* storage_V783;\n00409\tPyObject* storage_V785;\n00410\tPyObject* storage_V787;\n00411\tPyObject* storage_V789;\n00412\tPyObject* storage_V791;\n00413\tPyObject* storage_V793;\n00414\tPyObject* storage_V795;\n00415\tPyObject* storage_V797;\n00416\tPyObject* storage_V799;\n00417\tPyObject* storage_V801;\n00418\tPyObject* storage_V803;\n00419\tPyObject* storage_V805;\n00420\tPyObject* storage_V807;\n00421\tPyObject* storage_V809;\n00422\tPyObject* storage_V811;\n00423\tPyObject* storage_V813;\n00424\tPyObject* storage_V815;\n00425\tPyObject* storage_V817;\n00426\tPyObject* storage_V819;\n00427\tPyObject* storage_V821;\n00428\tPyObject* storage_V823;\n00429\tPyObject* storage_V825;\n00430\tPyObject* storage_V827;\n00431\tPyObject* storage_V829;\n00432\tPyObject* storage_V831;\n00433\tPyObject* storage_V833;\n00434\tPyObject* storage_V835;\n00435\tPyObject* storage_V837;\n00436\tPyObject* storage_V839;\n00437\tPyObject* storage_V841;\n00438\tPyObject* storage_V843;\n00439\tPyObject* storage_V845;\n00440\tPyObject* storage_V847;\n00441\tPyObject* storage_V849;\n00442\tPyObject* storage_V851;\n00443\tPyObject* storage_V853;\n00444\tPyObject* storage_V855;\n00445\tPyObject* storage_V857;\n00446\tPyObject* storage_V859;\n00447\tPyObject* storage_V861;\n00448\tPyObject* storage_V863;\n00449\tPyObject* storage_V865;\n00450\tPyObject* storage_V867;\n00451\tPyObject* storage_V869;\n00452\tPyObject* storage_V871;\n00453\tPyObject* storage_V873;\n00454\tPyObject* storage_V875;\n00455\tPyObject* storage_V877;\n00456\tPyObject* storage_V879;\n00457\tPyObject* storage_V881;\n00458\tPyObject* storage_V883;\n00459\tPyObject* storage_V885;\n00460\tPyObject* storage_V887;\n00461\tPyObject* storage_V889;\n00462\tPyObject* storage_V891;\n00463\tPyObject* storage_V893;\n00464\tPyObject* storage_V895;\n00465\tPyObject* storage_V897;\n00466\tPyObject* storage_V899;\n00467\tPyObject* storage_V901;\n00468\tPyObject* storage_V903;\n00469\tPyObject* storage_V905;\n00470\tPyObject* storage_V907;\n00471\tPyObject* storage_V909;\n00472\tPyObject* storage_V1;\n00473\t \n00474\t\n00475\t __struct_compiled_op_m17e0841797488fe86115b4f81aba8732() {\n00476\t // This is only somewhat safe because we:\n00477\t // 1) Are not a virtual class\n00478\t // 2) Do not use any virtual classes in the members\n00479\t // 3) Deal with mostly POD and pointers\n00480\t\n00481\t // If this changes, we would have to revise this, but for\n00482\t // now I am tired of chasing segfaults because\n00483\t // initialization code had an error and some pointer has\n00484\t // a junk value.\n00485\t memset(this, 0, sizeof(*this));\n00486\t }\n00487\t ~__struct_compiled_op_m17e0841797488fe86115b4f81aba8732(void) {\n00488\t cleanup();\n00489\t }\n00490\t\n00491\t int init(PyObject* __ERROR, PyObject* storage_V3, PyObject* storage_V5, PyObject* storage_V7, PyObject* storage_V9, PyObject* storage_V11, PyObject* storage_V13, PyObject* storage_V15, PyObject* storage_V17, PyObject* storage_V19, PyObject* storage_V21, PyObject* storage_V23, PyObject* storage_V25, PyObject* storage_V27, PyObject* storage_V29, PyObject* storage_V31, PyObject* storage_V33, PyObject* storage_V35, PyObject* storage_V37, PyObject* storage_V39, PyObject* storage_V41, PyObject* storage_V43, PyObject* storage_V45, PyObject* storage_V47, PyObject* storage_V49, PyObject* storage_V51, PyObject* storage_V53, PyObject* storage_V55, PyObject* storage_V57, PyObject* storage_V59, PyObject* storage_V61, PyObject* storage_V63, PyObject* storage_V65, PyObject* storage_V67, PyObject* storage_V69, PyObject* storage_V71, PyObject* storage_V73, PyObject* storage_V75, PyObject* storage_V77, PyObject* storage_V79, PyObject* storage_V81, PyObject* storage_V83, PyObject* storage_V85, PyObject* storage_V87, PyObject* storage_V89, PyObject* storage_V91, PyObject* storage_V93, PyObject* storage_V95, PyObject* storage_V97, PyObject* storage_V99, PyObject* storage_V101, PyObject* storage_V103, PyObject* storage_V105, PyObject* storage_V107, PyObject* storage_V109, PyObject* storage_V111, PyObject* storage_V113, PyObject* storage_V115, PyObject* storage_V117, PyObject* storage_V119, PyObject* storage_V121, PyObject* storage_V123, PyObject* storage_V125, PyObject* storage_V127, PyObject* storage_V129, PyObject* storage_V131, PyObject* storage_V133, PyObject* storage_V135, PyObject* storage_V137, PyObject* storage_V139, PyObject* storage_V141, PyObject* storage_V143, PyObject* storage_V145, PyObject* storage_V147, PyObject* storage_V149, PyObject* storage_V151, PyObject* storage_V153, PyObject* storage_V155, PyObject* storage_V157, PyObject* storage_V159, PyObject* storage_V161, PyObject* storage_V163, PyObject* storage_V165, PyObject* storage_V167, PyObject* storage_V169, PyObject* storage_V171, PyObject* storage_V173, PyObject* storage_V175, PyObject* storage_V177, PyObject* storage_V179, PyObject* storage_V181, PyObject* storage_V183, PyObject* storage_V185, PyObject* storage_V187, PyObject* storage_V189, PyObject* storage_V191, PyObject* storage_V193, PyObject* storage_V195, PyObject* storage_V197, PyObject* storage_V199, PyObject* storage_V201, PyObject* storage_V203, PyObject* storage_V205, PyObject* storage_V207, PyObject* storage_V209, PyObject* storage_V211, PyObject* storage_V213, PyObject* storage_V215, PyObject* storage_V217, PyObject* storage_V219, PyObject* storage_V221, PyObject* storage_V223, PyObject* storage_V225, PyObject* storage_V227, PyObject* storage_V229, PyObject* storage_V231, PyObject* storage_V233, PyObject* storage_V235, PyObject* storage_V237, PyObject* storage_V239, PyObject* storage_V241, PyObject* storage_V243, PyObject* storage_V245, PyObject* storage_V247, PyObject* storage_V249, PyObject* storage_V251, PyObject* storage_V253, PyObject* storage_V255, PyObject* storage_V257, PyObject* storage_V259, PyObject* storage_V261, PyObject* storage_V263, PyObject* storage_V265, PyObject* storage_V267, PyObject* storage_V269, PyObject* storage_V271, PyObject* storage_V273, PyObject* storage_V275, PyObject* storage_V277, PyObject* storage_V279, PyObject* storage_V281, PyObject* storage_V283, PyObject* storage_V285, PyObject* storage_V287, PyObject* storage_V289, PyObject* storage_V291, PyObject* storage_V293, PyObject* storage_V295, PyObject* storage_V297, PyObject* storage_V299, PyObject* storage_V301, PyObject* storage_V303, PyObject* storage_V305, PyObject* storage_V307, PyObject* storage_V309, PyObject* storage_V311, PyObject* storage_V313, PyObject* storage_V315, PyObject* storage_V317, PyObject* storage_V319, PyObject* storage_V321, PyObject* storage_V323, PyObject* storage_V325, PyObject* storage_V327, PyObject* storage_V329, PyObject* storage_V331, PyObject* storage_V333, PyObject* storage_V335, PyObject* storage_V337, PyObject* storage_V339, PyObject* storage_V341, PyObject* storage_V343, PyObject* storage_V345, PyObject* storage_V347, PyObject* storage_V349, PyObject* storage_V351, PyObject* storage_V353, PyObject* storage_V355, PyObject* storage_V357, PyObject* storage_V359, PyObject* storage_V361, PyObject* storage_V363, PyObject* storage_V365, PyObject* storage_V367, PyObject* storage_V369, PyObject* storage_V371, PyObject* storage_V373, PyObject* storage_V375, PyObject* storage_V377, PyObject* storage_V379, PyObject* storage_V381, PyObject* storage_V383, PyObject* storage_V385, PyObject* storage_V387, PyObject* storage_V389, PyObject* storage_V391, PyObject* storage_V393, PyObject* storage_V395, PyObject* storage_V397, PyObject* storage_V399, PyObject* storage_V401, PyObject* storage_V403, PyObject* storage_V405, PyObject* storage_V407, PyObject* storage_V409, PyObject* storage_V411, PyObject* storage_V413, PyObject* storage_V415, PyObject* storage_V417, PyObject* storage_V419, PyObject* storage_V421, PyObject* storage_V423, PyObject* storage_V425, PyObject* storage_V427, PyObject* storage_V429, PyObject* storage_V431, PyObject* storage_V433, PyObject* storage_V435, PyObject* storage_V437, PyObject* storage_V439, PyObject* storage_V441, PyObject* storage_V443, PyObject* storage_V445, PyObject* storage_V447, PyObject* storage_V449, PyObject* storage_V451, PyObject* storage_V453, PyObject* storage_V455, PyObject* storage_V457, PyObject* storage_V459, PyObject* storage_V461, PyObject* storage_V463, PyObject* storage_V465, PyObject* storage_V467, PyObject* storage_V469, PyObject* storage_V471, PyObject* storage_V473, PyObject* storage_V475, PyObject* storage_V477, PyObject* storage_V479, PyObject* storage_V481, PyObject* storage_V483, PyObject* storage_V485, PyObject* storage_V487, PyObject* storage_V489, PyObject* storage_V491, PyObject* storage_V493, PyObject* storage_V495, PyObject* storage_V497, PyObject* storage_V499, PyObject* storage_V501, PyObject* storage_V503, PyObject* storage_V505, PyObject* storage_V507, PyObject* storage_V509, PyObject* storage_V511, PyObject* storage_V513, PyObject* storage_V515, PyObject* storage_V517, PyObject* storage_V519, PyObject* storage_V521, PyObject* storage_V523, PyObject* storage_V525, PyObject* storage_V527, PyObject* storage_V529, PyObject* storage_V531, PyObject* storage_V533, PyObject* storage_V535, PyObject* storage_V537, PyObject* storage_V539, PyObject* storage_V541, PyObject* storage_V543, PyObject* storage_V545, PyObject* storage_V547, PyObject* storage_V549, PyObject* storage_V551, PyObject* storage_V553, PyObject* storage_V555, PyObject* storage_V557, PyObject* storage_V559, PyObject* storage_V561, PyObject* storage_V563, PyObject* storage_V565, PyObject* storage_V567, PyObject* storage_V569, PyObject* storage_V571, PyObject* storage_V573, PyObject* storage_V575, PyObject* storage_V577, PyObject* storage_V579, PyObject* storage_V581, PyObject* storage_V583, PyObject* storage_V585, PyObject* storage_V587, PyObject* storage_V589, PyObject* storage_V591, PyObject* storage_V593, PyObject* storage_V595, PyObject* storage_V597, PyObject* storage_V599, PyObject* storage_V601, PyObject* storage_V603, PyObject* storage_V605, PyObject* storage_V607, PyObject* storage_V609, PyObject* storage_V611, PyObject* storage_V613, PyObject* storage_V615, PyObject* storage_V617, PyObject* storage_V619, PyObject* storage_V621, PyObject* storage_V623, PyObject* storage_V625, PyObject* storage_V627, PyObject* storage_V629, PyObject* storage_V631, PyObject* storage_V633, PyObject* storage_V635, PyObject* storage_V637, PyObject* storage_V639, PyObject* storage_V641, PyObject* storage_V643, PyObject* storage_V645, PyObject* storage_V647, PyObject* storage_V649, PyObject* storage_V651, PyObject* storage_V653, PyObject* storage_V655, PyObject* storage_V657, PyObject* storage_V659, PyObject* storage_V661, PyObject* storage_V663, PyObject* storage_V665, PyObject* storage_V667, PyObject* storage_V669, PyObject* storage_V671, PyObject* storage_V673, PyObject* storage_V675, PyObject* storage_V677, PyObject* storage_V679, PyObject* storage_V681, PyObject* storage_V683, PyObject* storage_V685, PyObject* storage_V687, PyObject* storage_V689, PyObject* storage_V691, PyObject* storage_V693, PyObject* storage_V695, PyObject* storage_V697, PyObject* storage_V699, PyObject* storage_V701, PyObject* storage_V703, PyObject* storage_V705, PyObject* storage_V707, PyObject* storage_V709, PyObject* storage_V711, PyObject* storage_V713, PyObject* storage_V715, PyObject* storage_V717, PyObject* storage_V719, PyObject* storage_V721, PyObject* storage_V723, PyObject* storage_V725, PyObject* storage_V727, PyObject* storage_V729, PyObject* storage_V731, PyObject* storage_V733, PyObject* storage_V735, PyObject* storage_V737, PyObject* storage_V739, PyObject* storage_V741, PyObject* storage_V743, PyObject* storage_V745, PyObject* storage_V747, PyObject* storage_V749, PyObject* storage_V751, PyObject* storage_V753, PyObject* storage_V755, PyObject* storage_V757, PyObject* storage_V759, PyObject* storage_V761, PyObject* storage_V763, PyObject* storage_V765, PyObject* storage_V767, PyObject* storage_V769, PyObject* storage_V771, PyObject* storage_V773, PyObject* storage_V775, PyObject* storage_V777, PyObject* storage_V779, PyObject* storage_V781, PyObject* storage_V783, PyObject* storage_V785, PyObject* storage_V787, PyObject* storage_V789, PyObject* storage_V791, PyObject* storage_V793, PyObject* storage_V795, PyObject* storage_V797, PyObject* storage_V799, PyObject* storage_V801, PyObject* storage_V803, PyObject* storage_V805, PyObject* storage_V807, PyObject* storage_V809, PyObject* storage_V811, PyObject* storage_V813, PyObject* storage_V815, PyObject* storage_V817, PyObject* storage_V819, PyObject* storage_V821, PyObject* storage_V823, PyObject* storage_V825, PyObject* storage_V827, PyObject* storage_V829, PyObject* storage_V831, PyObject* storage_V833, PyObject* storage_V835, PyObject* storage_V837, PyObject* storage_V839, PyObject* storage_V841, PyObject* storage_V843, PyObject* storage_V845, PyObject* storage_V847, PyObject* storage_V849, PyObject* storage_V851, PyObject* storage_V853, PyObject* storage_V855, PyObject* storage_V857, PyObject* storage_V859, PyObject* storage_V861, PyObject* storage_V863, PyObject* storage_V865, PyObject* storage_V867, PyObject* storage_V869, PyObject* storage_V871, PyObject* storage_V873, PyObject* storage_V875, PyObject* storage_V877, PyObject* storage_V879, PyObject* storage_V881, PyObject* storage_V883, PyObject* storage_V885, PyObject* storage_V887, PyObject* storage_V889, PyObject* storage_V891, PyObject* storage_V893, PyObject* storage_V895, PyObject* storage_V897, PyObject* storage_V899, PyObject* storage_V901, PyObject* storage_V903, PyObject* storage_V905, PyObject* storage_V907, PyObject* storage_V909, PyObject* storage_V1) {\n00492\t Py_XINCREF(storage_V3);\n00493\tPy_XINCREF(storage_V5);\n00494\tPy_XINCREF(storage_V7);\n00495\tPy_XINCREF(storage_V9);\n00496\tPy_XINCREF(storage_V11);\n00497\tPy_XINCREF(storage_V13);\n00498\tPy_XINCREF(storage_V15);\n00499\tPy_XINCREF(storage_V17);\n00500\tPy_XINCREF(storage_V19);\n00501\tPy_XINCREF(storage_V21);\n00502\tPy_XINCREF(storage_V23);\n00503\tPy_XINCREF(storage_V25);\n00504\tPy_XINCREF(storage_V27);\n00505\tPy_XINCREF(storage_V29);\n00506\tPy_XINCREF(storage_V31);\n00507\tPy_XINCREF(storage_V33);\n00508\tPy_XINCREF(storage_V35);\n00509\tPy_XINCREF(storage_V37);\n00510\tPy_XINCREF(storage_V39);\n00511\tPy_XINCREF(storage_V41);\n00512\tPy_XINCREF(storage_V43);\n00513\tPy_XINCREF(storage_V45);\n00514\tPy_XINCREF(storage_V47);\n00515\tPy_XINCREF(storage_V49);\n00516\tPy_XINCREF(storage_V51);\n00517\tPy_XINCREF(storage_V53);\n00518\tPy_XINCREF(storage_V55);\n00519\tPy_XINCREF(storage_V57);\n00520\tPy_XINCREF(storage_V59);\n00521\tPy_XINCREF(storage_V61);\n00522\tPy_XINCREF(storage_V63);\n00523\tPy_XINCREF(storage_V65);\n00524\tPy_XINCREF(storage_V67);\n00525\tPy_XINCREF(storage_V69);\n00526\tPy_XINCREF(storage_V71);\n00527\tPy_XINCREF(storage_V73);\n00528\tPy_XINCREF(storage_V75);\n00529\tPy_XINCREF(storage_V77);\n00530\tPy_XINCREF(storage_V79);\n00531\tPy_XINCREF(storage_V81);\n00532\tPy_XINCREF(storage_V83);\n00533\tPy_XINCREF(storage_V85);\n00534\tPy_XINCREF(storage_V87);\n00535\tPy_XINCREF(storage_V89);\n00536\tPy_XINCREF(storage_V91);\n00537\tPy_XINCREF(storage_V93);\n00538\tPy_XINCREF(storage_V95);\n00539\tPy_XINCREF(storage_V97);\n00540\tPy_XINCREF(storage_V99);\n00541\tPy_XINCREF(storage_V101);\n00542\tPy_XINCREF(storage_V103);\n00543\tPy_XINCREF(storage_V105);\n00544\tPy_XINCREF(storage_V107);\n00545\tPy_XINCREF(storage_V109);\n00546\tPy_XINCREF(storage_V111);\n00547\tPy_XINCREF(storage_V113);\n00548\tPy_XINCREF(storage_V115);\n00549\tPy_XINCREF(storage_V117);\n00550\tPy_XINCREF(storage_V119);\n00551\tPy_XINCREF(storage_V121);\n00552\tPy_XINCREF(storage_V123);\n00553\tPy_XINCREF(storage_V125);\n00554\tPy_XINCREF(storage_V127);\n00555\tPy_XINCREF(storage_V129);\n00556\tPy_XINCREF(storage_V131);\n00557\tPy_XINCREF(storage_V133);\n00558\tPy_XINCREF(storage_V135);\n00559\tPy_XINCREF(storage_V137);\n00560\tPy_XINCREF(storage_V139);\n00561\tPy_XINCREF(storage_V141);\n00562\tPy_XINCREF(storage_V143);\n00563\tPy_XINCREF(storage_V145);\n00564\tPy_XINCREF(storage_V147);\n00565\tPy_XINCREF(storage_V149);\n00566\tPy_XINCREF(storage_V151);\n00567\tPy_XINCREF(storage_V153);\n00568\tPy_XINCREF(storage_V155);\n00569\tPy_XINCREF(storage_V157);\n00570\tPy_XINCREF(storage_V159);\n00571\tPy_XINCREF(storage_V161);\n00572\tPy_XINCREF(storage_V163);\n00573\tPy_XINCREF(storage_V165);\n00574\tPy_XINCREF(storage_V167);\n00575\tPy_XINCREF(storage_V169);\n00576\tPy_XINCREF(storage_V171);\n00577\tPy_XINCREF(storage_V173);\n00578\tPy_XINCREF(storage_V175);\n00579\tPy_XINCREF(storage_V177);\n00580\tPy_XINCREF(storage_V179);\n00581\tPy_XINCREF(storage_V181);\n00582\tPy_XINCREF(storage_V183);\n00583\tPy_XINCREF(storage_V185);\n00584\tPy_XINCREF(storage_V187);\n00585\tPy_XINCREF(storage_V189);\n00586\tPy_XINCREF(storage_V191);\n00587\tPy_XINCREF(storage_V193);\n00588\tPy_XINCREF(storage_V195);\n00589\tPy_XINCREF(storage_V197);\n00590\tPy_XINCREF(storage_V199);\n00591\tPy_XINCREF(storage_V201);\n00592\tPy_XINCREF(storage_V203);\n00593\tPy_XINCREF(storage_V205);\n00594\tPy_XINCREF(storage_V207);\n00595\tPy_XINCREF(storage_V209);\n00596\tPy_XINCREF(storage_V211);\n00597\tPy_XINCREF(storage_V213);\n00598\tPy_XINCREF(storage_V215);\n00599\tPy_XINCREF(storage_V217);\n00600\tPy_XINCREF(storage_V219);\n00601\tPy_XINCREF(storage_V221);\n00602\tPy_XINCREF(storage_V223);\n00603\tPy_XINCREF(storage_V225);\n00604\tPy_XINCREF(storage_V227);\n00605\tPy_XINCREF(storage_V229);\n00606\tPy_XINCREF(storage_V231);\n00607\tPy_XINCREF(storage_V233);\n00608\tPy_XINCREF(storage_V235);\n00609\tPy_XINCREF(storage_V237);\n00610\tPy_XINCREF(storage_V239);\n00611\tPy_XINCREF(storage_V241);\n00612\tPy_XINCREF(storage_V243);\n00613\tPy_XINCREF(storage_V245);\n00614\tPy_XINCREF(storage_V247);\n00615\tPy_XINCREF(storage_V249);\n00616\tPy_XINCREF(storage_V251);\n00617\tPy_XINCREF(storage_V253);\n00618\tPy_XINCREF(storage_V255);\n00619\tPy_XINCREF(storage_V257);\n00620\tPy_XINCREF(storage_V259);\n00621\tPy_XINCREF(storage_V261);\n00622\tPy_XINCREF(storage_V263);\n00623\tPy_XINCREF(storage_V265);\n00624\tPy_XINCREF(storage_V267);\n00625\tPy_XINCREF(storage_V269);\n00626\tPy_XINCREF(storage_V271);\n00627\tPy_XINCREF(storage_V273);\n00628\tPy_XINCREF(storage_V275);\n00629\tPy_XINCREF(storage_V277);\n00630\tPy_XINCREF(storage_V279);\n00631\tPy_XINCREF(storage_V281);\n00632\tPy_XINCREF(storage_V283);\n00633\tPy_XINCREF(storage_V285);\n00634\tPy_XINCREF(storage_V287);\n00635\tPy_XINCREF(storage_V289);\n00636\tPy_XINCREF(storage_V291);\n00637\tPy_XINCREF(storage_V293);\n00638\tPy_XINCREF(storage_V295);\n00639\tPy_XINCREF(storage_V297);\n00640\tPy_XINCREF(storage_V299);\n00641\tPy_XINCREF(storage_V301);\n00642\tPy_XINCREF(storage_V303);\n00643\tPy_XINCREF(storage_V305);\n00644\tPy_XINCREF(storage_V307);\n00645\tPy_XINCREF(storage_V309);\n00646\tPy_XINCREF(storage_V311);\n00647\tPy_XINCREF(storage_V313);\n00648\tPy_XINCREF(storage_V315);\n00649\tPy_XINCREF(storage_V317);\n00650\tPy_XINCREF(storage_V319);\n00651\tPy_XINCREF(storage_V321);\n00652\tPy_XINCREF(storage_V323);\n00653\tPy_XINCREF(storage_V325);\n00654\tPy_XINCREF(storage_V327);\n00655\tPy_XINCREF(storage_V329);\n00656\tPy_XINCREF(storage_V331);\n00657\tPy_XINCREF(storage_V333);\n00658\tPy_XINCREF(storage_V335);\n00659\tPy_XINCREF(storage_V337);\n00660\tPy_XINCREF(storage_V339);\n00661\tPy_XINCREF(storage_V341);\n00662\tPy_XINCREF(storage_V343);\n00663\tPy_XINCREF(storage_V345);\n00664\tPy_XINCREF(storage_V347);\n00665\tPy_XINCREF(storage_V349);\n00666\tPy_XINCREF(storage_V351);\n00667\tPy_XINCREF(storage_V353);\n00668\tPy_XINCREF(storage_V355);\n00669\tPy_XINCREF(storage_V357);\n00670\tPy_XINCREF(storage_V359);\n00671\tPy_XINCREF(storage_V361);\n00672\tPy_XINCREF(storage_V363);\n00673\tPy_XINCREF(storage_V365);\n00674\tPy_XINCREF(storage_V367);\n00675\tPy_XINCREF(storage_V369);\n00676\tPy_XINCREF(storage_V371);\n00677\tPy_XINCREF(storage_V373);\n00678\tPy_XINCREF(storage_V375);\n00679\tPy_XINCREF(storage_V377);\n00680\tPy_XINCREF(storage_V379);\n00681\tPy_XINCREF(storage_V381);\n00682\tPy_XINCREF(storage_V383);\n00683\tPy_XINCREF(storage_V385);\n00684\tPy_XINCREF(storage_V387);\n00685\tPy_XINCREF(storage_V389);\n00686\tPy_XINCREF(storage_V391);\n00687\tPy_XINCREF(storage_V393);\n00688\tPy_XINCREF(storage_V395);\n00689\tPy_XINCREF(storage_V397);\n00690\tPy_XINCREF(storage_V399);\n00691\tPy_XINCREF(storage_V401);\n00692\tPy_XINCREF(storage_V403);\n00693\tPy_XINCREF(storage_V405);\n00694\tPy_XINCREF(storage_V407);\n00695\tPy_XINCREF(storage_V409);\n00696\tPy_XINCREF(storage_V411);\n00697\tPy_XINCREF(storage_V413);\n00698\tPy_XINCREF(storage_V415);\n00699\tPy_XINCREF(storage_V417);\n00700\tPy_XINCREF(storage_V419);\n00701\tPy_XINCREF(storage_V421);\n00702\tPy_XINCREF(storage_V423);\n00703\tPy_XINCREF(storage_V425);\n00704\tPy_XINCREF(storage_V427);\n00705\tPy_XINCREF(storage_V429);\n00706\tPy_XINCREF(storage_V431);\n00707\tPy_XINCREF(storage_V433);\n00708\tPy_XINCREF(storage_V435);\n00709\tPy_XINCREF(storage_V437);\n00710\tPy_XINCREF(storage_V439);\n00711\tPy_XINCREF(storage_V441);\n00712\tPy_XINCREF(storage_V443);\n00713\tPy_XINCREF(storage_V445);\n00714\tPy_XINCREF(storage_V447);\n00715\tPy_XINCREF(storage_V449);\n00716\tPy_XINCREF(storage_V451);\n00717\tPy_XINCREF(storage_V453);\n00718\tPy_XINCREF(storage_V455);\n00719\tPy_XINCREF(storage_V457);\n00720\tPy_XINCREF(storage_V459);\n00721\tPy_XINCREF(storage_V461);\n00722\tPy_XINCREF(storage_V463);\n00723\tPy_XINCREF(storage_V465);\n00724\tPy_XINCREF(storage_V467);\n00725\tPy_XINCREF(storage_V469);\n00726\tPy_XINCREF(storage_V471);\n00727\tPy_XINCREF(storage_V473);\n00728\tPy_XINCREF(storage_V475);\n00729\tPy_XINCREF(storage_V477);\n00730\tPy_XINCREF(storage_V479);\n00731\tPy_XINCREF(storage_V481);\n00732\tPy_XINCREF(storage_V483);\n00733\tPy_XINCREF(storage_V485);\n00734\tPy_XINCREF(storage_V487);\n00735\tPy_XINCREF(storage_V489);\n00736\tPy_XINCREF(storage_V491);\n00737\tPy_XINCREF(storage_V493);\n00738\tPy_XINCREF(storage_V495);\n00739\tPy_XINCREF(storage_V497);\n00740\tPy_XINCREF(storage_V499);\n00741\tPy_XINCREF(storage_V501);\n00742\tPy_XINCREF(storage_V503);\n00743\tPy_XINCREF(storage_V505);\n00744\tPy_XINCREF(storage_V507);\n00745\tPy_XINCREF(storage_V509);\n00746\tPy_XINCREF(storage_V511);\n00747\tPy_XINCREF(storage_V513);\n00748\tPy_XINCREF(storage_V515);\n00749\tPy_XINCREF(storage_V517);\n00750\tPy_XINCREF(storage_V519);\n00751\tPy_XINCREF(storage_V521);\n00752\tPy_XINCREF(storage_V523);\n00753\tPy_XINCREF(storage_V525);\n00754\tPy_XINCREF(storage_V527);\n00755\tPy_XINCREF(storage_V529);\n00756\tPy_XINCREF(storage_V531);\n00757\tPy_XINCREF(storage_V533);\n00758\tPy_XINCREF(storage_V535);\n00759\tPy_XINCREF(storage_V537);\n00760\tPy_XINCREF(storage_V539);\n00761\tPy_XINCREF(storage_V541);\n00762\tPy_XINCREF(storage_V543);\n00763\tPy_XINCREF(storage_V545);\n00764\tPy_XINCREF(storage_V547);\n00765\tPy_XINCREF(storage_V549);\n00766\tPy_XINCREF(storage_V551);\n00767\tPy_XINCREF(storage_V553);\n00768\tPy_XINCREF(storage_V555);\n00769\tPy_XINCREF(storage_V557);\n00770\tPy_XINCREF(storage_V559);\n00771\tPy_XINCREF(storage_V561);\n00772\tPy_XINCREF(storage_V563);\n00773\tPy_XINCREF(storage_V565);\n00774\tPy_XINCREF(storage_V567);\n00775\tPy_XINCREF(storage_V569);\n00776\tPy_XINCREF(storage_V571);\n00777\tPy_XINCREF(storage_V573);\n00778\tPy_XINCREF(storage_V575);\n00779\tPy_XINCREF(storage_V577);\n00780\tPy_XINCREF(storage_V579);\n00781\tPy_XINCREF(storage_V581);\n00782\tPy_XINCREF(storage_V583);\n00783\tPy_XINCREF(storage_V585);\n00784\tPy_XINCREF(storage_V587);\n00785\tPy_XINCREF(storage_V589);\n00786\tPy_XINCREF(storage_V591);\n00787\tPy_XINCREF(storage_V593);\n00788\tPy_XINCREF(storage_V595);\n00789\tPy_XINCREF(storage_V597);\n00790\tPy_XINCREF(storage_V599);\n00791\tPy_XINCREF(storage_V601);\n00792\tPy_XINCREF(storage_V603);\n00793\tPy_XINCREF(storage_V605);\n00794\tPy_XINCREF(storage_V607);\n00795\tPy_XINCREF(storage_V609);\n00796\tPy_XINCREF(storage_V611);\n00797\tPy_XINCREF(storage_V613);\n00798\tPy_XINCREF(storage_V615);\n00799\tPy_XINCREF(storage_V617);\n00800\tPy_XINCREF(storage_V619);\n00801\tPy_XINCREF(storage_V621);\n00802\tPy_XINCREF(storage_V623);\n00803\tPy_XINCREF(storage_V625);\n00804\tPy_XINCREF(storage_V627);\n00805\tPy_XINCREF(storage_V629);\n00806\tPy_XINCREF(storage_V631);\n00807\tPy_XINCREF(storage_V633);\n00808\tPy_XINCREF(storage_V635);\n00809\tPy_XINCREF(storage_V637);\n00810\tPy_XINCREF(storage_V639);\n00811\tPy_XINCREF(storage_V641);\n00812\tPy_XINCREF(storage_V643);\n00813\tPy_XINCREF(storage_V645);\n00814\tPy_XINCREF(storage_V647);\n00815\tPy_XINCREF(storage_V649);\n00816\tPy_XINCREF(storage_V651);\n00817\tPy_XINCREF(storage_V653);\n00818\tPy_XINCREF(storage_V655);\n00819\tPy_XINCREF(storage_V657);\n00820\tPy_XINCREF(storage_V659);\n00821\tPy_XINCREF(storage_V661);\n00822\tPy_XINCREF(storage_V663);\n00823\tPy_XINCREF(storage_V665);\n00824\tPy_XINCREF(storage_V667);\n00825\tPy_XINCREF(storage_V669);\n00826\tPy_XINCREF(storage_V671);\n00827\tPy_XINCREF(storage_V673);\n00828\tPy_XINCREF(storage_V675);\n00829\tPy_XINCREF(storage_V677);\n00830\tPy_XINCREF(storage_V679);\n00831\tPy_XINCREF(storage_V681);\n00832\tPy_XINCREF(storage_V683);\n00833\tPy_XINCREF(storage_V685);\n00834\tPy_XINCREF(storage_V687);\n00835\tPy_XINCREF(storage_V689);\n00836\tPy_XINCREF(storage_V691);\n00837\tPy_XINCREF(storage_V693);\n00838\tPy_XINCREF(storage_V695);\n00839\tPy_XINCREF(storage_V697);\n00840\tPy_XINCREF(storage_V699);\n00841\tPy_XINCREF(storage_V701);\n00842\tPy_XINCREF(storage_V703);\n00843\tPy_XINCREF(storage_V705);\n00844\tPy_XINCREF(storage_V707);\n00845\tPy_XINCREF(storage_V709);\n00846\tPy_XINCREF(storage_V711);\n00847\tPy_XINCREF(storage_V713);\n00848\tPy_XINCREF(storage_V715);\n00849\tPy_XINCREF(storage_V717);\n00850\tPy_XINCREF(storage_V719);\n00851\tPy_XINCREF(storage_V721);\n00852\tPy_XINCREF(storage_V723);\n00853\tPy_XINCREF(storage_V725);\n00854\tPy_XINCREF(storage_V727);\n00855\tPy_XINCREF(storage_V729);\n00856\tPy_XINCREF(storage_V731);\n00857\tPy_XINCREF(storage_V733);\n00858\tPy_XINCREF(storage_V735);\n00859\tPy_XINCREF(storage_V737);\n00860\tPy_XINCREF(storage_V739);\n00861\tPy_XINCREF(storage_V741);\n00862\tPy_XINCREF(storage_V743);\n00863\tPy_XINCREF(storage_V745);\n00864\tPy_XINCREF(storage_V747);\n00865\tPy_XINCREF(storage_V749);\n00866\tPy_XINCREF(storage_V751);\n00867\tPy_XINCREF(storage_V753);\n00868\tPy_XINCREF(storage_V755);\n00869\tPy_XINCREF(storage_V757);\n00870\tPy_XINCREF(storage_V759);\n00871\tPy_XINCREF(storage_V761);\n00872\tPy_XINCREF(storage_V763);\n00873\tPy_XINCREF(storage_V765);\n00874\tPy_XINCREF(storage_V767);\n00875\tPy_XINCREF(storage_V769);\n00876\tPy_XINCREF(storage_V771);\n00877\tPy_XINCREF(storage_V773);\n00878\tPy_XINCREF(storage_V775);\n00879\tPy_XINCREF(storage_V777);\n00880\tPy_XINCREF(storage_V779);\n00881\tPy_XINCREF(storage_V781);\n00882\tPy_XINCREF(storage_V783);\n00883\tPy_XINCREF(storage_V785);\n00884\tPy_XINCREF(storage_V787);\n00885\tPy_XINCREF(storage_V789);\n00886\tPy_XINCREF(storage_V791);\n00887\tPy_XINCREF(storage_V793);\n00888\tPy_XINCREF(storage_V795);\n00889\tPy_XINCREF(storage_V797);\n00890\tPy_XINCREF(storage_V799);\n00891\tPy_XINCREF(storage_V801);\n00892\tPy_XINCREF(storage_V803);\n00893\tPy_XINCREF(storage_V805);\n00894\tPy_XINCREF(storage_V807);\n00895\tPy_XINCREF(storage_V809);\n00896\tPy_XINCREF(storage_V811);\n00897\tPy_XINCREF(storage_V813);\n00898\tPy_XINCREF(storage_V815);\n00899\tPy_XINCREF(storage_V817);\n00900\tPy_XINCREF(storage_V819);\n00901\tPy_XINCREF(storage_V821);\n00902\tPy_XINCREF(storage_V823);\n00903\tPy_XINCREF(storage_V825);\n00904\tPy_XINCREF(storage_V827);\n00905\tPy_XINCREF(storage_V829);\n00906\tPy_XINCREF(storage_V831);\n00907\tPy_XINCREF(storage_V833);\n00908\tPy_XINCREF(storage_V835);\n00909\tPy_XINCREF(storage_V837);\n00910\tPy_XINCREF(storage_V839);\n00911\tPy_XINCREF(storage_V841);\n00912\tPy_XINCREF(storage_V843);\n00913\tPy_XINCREF(storage_V845);\n00914\tPy_XINCREF(storage_V847);\n00915\tPy_XINCREF(storage_V849);\n00916\tPy_XINCREF(storage_V851);\n00917\tPy_XINCREF(storage_V853);\n00918\tPy_XINCREF(storage_V855);\n00919\tPy_XINCREF(storage_V857);\n00920\tPy_XINCREF(storage_V859);\n00921\tPy_XINCREF(storage_V861);\n00922\tPy_XINCREF(storage_V863);\n00923\tPy_XINCREF(storage_V865);\n00924\tPy_XINCREF(storage_V867);\n00925\tPy_XINCREF(storage_V869);\n00926\tPy_XINCREF(storage_V871);\n00927\tPy_XINCREF(storage_V873);\n00928\tPy_XINCREF(storage_V875);\n00929\tPy_XINCREF(storage_V877);\n00930\tPy_XINCREF(storage_V879);\n00931\tPy_XINCREF(storage_V881);\n00932\tPy_XINCREF(storage_V883);\n00933\tPy_XINCREF(storage_V885);\n00934\tPy_XINCREF(storage_V887);\n00935\tPy_XINCREF(storage_V889);\n00936\tPy_XINCREF(storage_V891);\n00937\tPy_XINCREF(storage_V893);\n00938\tPy_XINCREF(storage_V895);\n00939\tPy_XINCREF(storage_V897);\n00940\tPy_XINCREF(storage_V899);\n00941\tPy_XINCREF(storage_V901);\n00942\tPy_XINCREF(storage_V903);\n00943\tPy_XINCREF(storage_V905);\n00944\tPy_XINCREF(storage_V907);\n00945\tPy_XINCREF(storage_V909);\n00946\tPy_XINCREF(storage_V1);\n00947\t this->storage_V3 = storage_V3;\n00948\tthis->storage_V5 = storage_V5;\n00949\tthis->storage_V7 = storage_V7;\n00950\tthis->storage_V9 = storage_V9;\n00951\tthis->storage_V11 = storage_V11;\n00952\tthis->storage_V13 = storage_V13;\n00953\tthis->storage_V15 = storage_V15;\n00954\tthis->storage_V17 = storage_V17;\n00955\tthis->storage_V19 = storage_V19;\n00956\tthis->storage_V21 = storage_V21;\n00957\tthis->storage_V23 = storage_V23;\n00958\tthis->storage_V25 = storage_V25;\n00959\tthis->storage_V27 = storage_V27;\n00960\tthis->storage_V29 = storage_V29;\n00961\tthis->storage_V31 = storage_V31;\n00962\tthis->storage_V33 = storage_V33;\n00963\tthis->storage_V35 = storage_V35;\n00964\tthis->storage_V37 = storage_V37;\n00965\tthis->storage_V39 = storage_V39;\n00966\tthis->storage_V41 = storage_V41;\n00967\tthis->storage_V43 = storage_V43;\n00968\tthis->storage_V45 = storage_V45;\n00969\tthis->storage_V47 = storage_V47;\n00970\tthis->storage_V49 = storage_V49;\n00971\tthis->storage_V51 = storage_V51;\n00972\tthis->storage_V53 = storage_V53;\n00973\tthis->storage_V55 = storage_V55;\n00974\tthis->storage_V57 = storage_V57;\n00975\tthis->storage_V59 = storage_V59;\n00976\tthis->storage_V61 = storage_V61;\n00977\tthis->storage_V63 = storage_V63;\n00978\tthis->storage_V65 = storage_V65;\n00979\tthis->storage_V67 = storage_V67;\n00980\tthis->storage_V69 = storage_V69;\n00981\tthis->storage_V71 = storage_V71;\n00982\tthis->storage_V73 = storage_V73;\n00983\tthis->storage_V75 = storage_V75;\n00984\tthis->storage_V77 = storage_V77;\n00985\tthis->storage_V79 = storage_V79;\n00986\tthis->storage_V81 = storage_V81;\n00987\tthis->storage_V83 = storage_V83;\n00988\tthis->storage_V85 = storage_V85;\n00989\tthis->storage_V87 = storage_V87;\n00990\tthis->storage_V89 = storage_V89;\n00991\tthis->storage_V91 = storage_V91;\n00992\tthis->storage_V93 = storage_V93;\n00993\tthis->storage_V95 = storage_V95;\n00994\tthis->storage_V97 = storage_V97;\n00995\tthis->storage_V99 = storage_V99;\n00996\tthis->storage_V101 = storage_V101;\n00997\tthis->storage_V103 = storage_V103;\n00998\tthis->storage_V105 = storage_V105;\n00999\tthis->storage_V107 = storage_V107;\n01000\tthis->storage_V109 = storage_V109;\n01001\tthis->storage_V111 = storage_V111;\n01002\tthis->storage_V113 = storage_V113;\n01003\tthis->storage_V115 = storage_V115;\n01004\tthis->storage_V117 = storage_V117;\n01005\tthis->storage_V119 = storage_V119;\n01006\tthis->storage_V121 = storage_V121;\n01007\tthis->storage_V123 = storage_V123;\n01008\tthis->storage_V125 = storage_V125;\n01009\tthis->storage_V127 = storage_V127;\n01010\tthis->storage_V129 = storage_V129;\n01011\tthis->storage_V131 = storage_V131;\n01012\tthis->storage_V133 = storage_V133;\n01013\tthis->storage_V135 = storage_V135;\n01014\tthis->storage_V137 = storage_V137;\n01015\tthis->storage_V139 = storage_V139;\n01016\tthis->storage_V141 = storage_V141;\n01017\tthis->storage_V143 = storage_V143;\n01018\tthis->storage_V145 = storage_V145;\n01019\tthis->storage_V147 = storage_V147;\n01020\tthis->storage_V149 = storage_V149;\n01021\tthis->storage_V151 = storage_V151;\n01022\tthis->storage_V153 = storage_V153;\n01023\tthis->storage_V155 = storage_V155;\n01024\tthis->storage_V157 = storage_V157;\n01025\tthis->storage_V159 = storage_V159;\n01026\tthis->storage_V161 = storage_V161;\n01027\tthis->storage_V163 = storage_V163;\n01028\tthis->storage_V165 = storage_V165;\n01029\tthis->storage_V167 = storage_V167;\n01030\tthis->storage_V169 = storage_V169;\n01031\tthis->storage_V171 = storage_V171;\n01032\tthis->storage_V173 = storage_V173;\n01033\tthis->storage_V175 = storage_V175;\n01034\tthis->storage_V177 = storage_V177;\n01035\tthis->storage_V179 = storage_V179;\n01036\tthis->storage_V181 = storage_V181;\n01037\tthis->storage_V183 = storage_V183;\n01038\tthis->storage_V185 = storage_V185;\n01039\tthis->storage_V187 = storage_V187;\n01040\tthis->storage_V189 = storage_V189;\n01041\tthis->storage_V191 = storage_V191;\n01042\tthis->storage_V193 = storage_V193;\n01043\tthis->storage_V195 = storage_V195;\n01044\tthis->storage_V197 = storage_V197;\n01045\tthis->storage_V199 = storage_V199;\n01046\tthis->storage_V201 = storage_V201;\n01047\tthis->storage_V203 = storage_V203;\n01048\tthis->storage_V205 = storage_V205;\n01049\tthis->storage_V207 = storage_V207;\n01050\tthis->storage_V209 = storage_V209;\n01051\tthis->storage_V211 = storage_V211;\n01052\tthis->storage_V213 = storage_V213;\n01053\tthis->storage_V215 = storage_V215;\n01054\tthis->storage_V217 = storage_V217;\n01055\tthis->storage_V219 = storage_V219;\n01056\tthis->storage_V221 = storage_V221;\n01057\tthis->storage_V223 = storage_V223;\n01058\tthis->storage_V225 = storage_V225;\n01059\tthis->storage_V227 = storage_V227;\n01060\tthis->storage_V229 = storage_V229;\n01061\tthis->storage_V231 = storage_V231;\n01062\tthis->storage_V233 = storage_V233;\n01063\tthis->storage_V235 = storage_V235;\n01064\tthis->storage_V237 = storage_V237;\n01065\tthis->storage_V239 = storage_V239;\n01066\tthis->storage_V241 = storage_V241;\n01067\tthis->storage_V243 = storage_V243;\n01068\tthis->storage_V245 = storage_V245;\n01069\tthis->storage_V247 = storage_V247;\n01070\tthis->storage_V249 = storage_V249;\n01071\tthis->storage_V251 = storage_V251;\n01072\tthis->storage_V253 = storage_V253;\n01073\tthis->storage_V255 = storage_V255;\n01074\tthis->storage_V257 = storage_V257;\n01075\tthis->storage_V259 = storage_V259;\n01076\tthis->storage_V261 = storage_V261;\n01077\tthis->storage_V263 = storage_V263;\n01078\tthis->storage_V265 = storage_V265;\n01079\tthis->storage_V267 = storage_V267;\n01080\tthis->storage_V269 = storage_V269;\n01081\tthis->storage_V271 = storage_V271;\n01082\tthis->storage_V273 = storage_V273;\n01083\tthis->storage_V275 = storage_V275;\n01084\tthis->storage_V277 = storage_V277;\n01085\tthis->storage_V279 = storage_V279;\n01086\tthis->storage_V281 = storage_V281;\n01087\tthis->storage_V283 = storage_V283;\n01088\tthis->storage_V285 = storage_V285;\n01089\tthis->storage_V287 = storage_V287;\n01090\tthis->storage_V289 = storage_V289;\n01091\tthis->storage_V291 = storage_V291;\n01092\tthis->storage_V293 = storage_V293;\n01093\tthis->storage_V295 = storage_V295;\n01094\tthis->storage_V297 = storage_V297;\n01095\tthis->storage_V299 = storage_V299;\n01096\tthis->storage_V301 = storage_V301;\n01097\tthis->storage_V303 = storage_V303;\n01098\tthis->storage_V305 = storage_V305;\n01099\tthis->storage_V307 = storage_V307;\n01100\tthis->storage_V309 = storage_V309;\n01101\tthis->storage_V311 = storage_V311;\n01102\tthis->storage_V313 = storage_V313;\n01103\tthis->storage_V315 = storage_V315;\n01104\tthis->storage_V317 = storage_V317;\n01105\tthis->storage_V319 = storage_V319;\n01106\tthis->storage_V321 = storage_V321;\n01107\tthis->storage_V323 = storage_V323;\n01108\tthis->storage_V325 = storage_V325;\n01109\tthis->storage_V327 = storage_V327;\n01110\tthis->storage_V329 = storage_V329;\n01111\tthis->storage_V331 = storage_V331;\n01112\tthis->storage_V333 = storage_V333;\n01113\tthis->storage_V335 = storage_V335;\n01114\tthis->storage_V337 = storage_V337;\n01115\tthis->storage_V339 = storage_V339;\n01116\tthis->storage_V341 = storage_V341;\n01117\tthis->storage_V343 = storage_V343;\n01118\tthis->storage_V345 = storage_V345;\n01119\tthis->storage_V347 = storage_V347;\n01120\tthis->storage_V349 = storage_V349;\n01121\tthis->storage_V351 = storage_V351;\n01122\tthis->storage_V353 = storage_V353;\n01123\tthis->storage_V355 = storage_V355;\n01124\tthis->storage_V357 = storage_V357;\n01125\tthis->storage_V359 = storage_V359;\n01126\tthis->storage_V361 = storage_V361;\n01127\tthis->storage_V363 = storage_V363;\n01128\tthis->storage_V365 = storage_V365;\n01129\tthis->storage_V367 = storage_V367;\n01130\tthis->storage_V369 = storage_V369;\n01131\tthis->storage_V371 = storage_V371;\n01132\tthis->storage_V373 = storage_V373;\n01133\tthis->storage_V375 = storage_V375;\n01134\tthis->storage_V377 = storage_V377;\n01135\tthis->storage_V379 = storage_V379;\n01136\tthis->storage_V381 = storage_V381;\n01137\tthis->storage_V383 = storage_V383;\n01138\tthis->storage_V385 = storage_V385;\n01139\tthis->storage_V387 = storage_V387;\n01140\tthis->storage_V389 = storage_V389;\n01141\tthis->storage_V391 = storage_V391;\n01142\tthis->storage_V393 = storage_V393;\n01143\tthis->storage_V395 = storage_V395;\n01144\tthis->storage_V397 = storage_V397;\n01145\tthis->storage_V399 = storage_V399;\n01146\tthis->storage_V401 = storage_V401;\n01147\tthis->storage_V403 = storage_V403;\n01148\tthis->storage_V405 = storage_V405;\n01149\tthis->storage_V407 = storage_V407;\n01150\tthis->storage_V409 = storage_V409;\n01151\tthis->storage_V411 = storage_V411;\n01152\tthis->storage_V413 = storage_V413;\n01153\tthis->storage_V415 = storage_V415;\n01154\tthis->storage_V417 = storage_V417;\n01155\tthis->storage_V419 = storage_V419;\n01156\tthis->storage_V421 = storage_V421;\n01157\tthis->storage_V423 = storage_V423;\n01158\tthis->storage_V425 = storage_V425;\n01159\tthis->storage_V427 = storage_V427;\n01160\tthis->storage_V429 = storage_V429;\n01161\tthis->storage_V431 = storage_V431;\n01162\tthis->storage_V433 = storage_V433;\n01163\tthis->storage_V435 = storage_V435;\n01164\tthis->storage_V437 = storage_V437;\n01165\tthis->storage_V439 = storage_V439;\n01166\tthis->storage_V441 = storage_V441;\n01167\tthis->storage_V443 = storage_V443;\n01168\tthis->storage_V445 = storage_V445;\n01169\tthis->storage_V447 = storage_V447;\n01170\tthis->storage_V449 = storage_V449;\n01171\tthis->storage_V451 = storage_V451;\n01172\tthis->storage_V453 = storage_V453;\n01173\tthis->storage_V455 = storage_V455;\n01174\tthis->storage_V457 = storage_V457;\n01175\tthis->storage_V459 = storage_V459;\n01176\tthis->storage_V461 = storage_V461;\n01177\tthis->storage_V463 = storage_V463;\n01178\tthis->storage_V465 = storage_V465;\n01179\tthis->storage_V467 = storage_V467;\n01180\tthis->storage_V469 = storage_V469;\n01181\tthis->storage_V471 = storage_V471;\n01182\tthis->storage_V473 = storage_V473;\n01183\tthis->storage_V475 = storage_V475;\n01184\tthis->storage_V477 = storage_V477;\n01185\tthis->storage_V479 = storage_V479;\n01186\tthis->storage_V481 = storage_V481;\n01187\tthis->storage_V483 = storage_V483;\n01188\tthis->storage_V485 = storage_V485;\n01189\tthis->storage_V487 = storage_V487;\n01190\tthis->storage_V489 = storage_V489;\n01191\tthis->storage_V491 = storage_V491;\n01192\tthis->storage_V493 = storage_V493;\n01193\tthis->storage_V495 = storage_V495;\n01194\tthis->storage_V497 = storage_V497;\n01195\tthis->storage_V499 = storage_V499;\n01196\tthis->storage_V501 = storage_V501;\n01197\tthis->storage_V503 = storage_V503;\n01198\tthis->storage_V505 = storage_V505;\n01199\tthis->storage_V507 = storage_V507;\n01200\tthis->storage_V509 = storage_V509;\n01201\tthis->storage_V511 = storage_V511;\n01202\tthis->storage_V513 = storage_V513;\n01203\tthis->storage_V515 = storage_V515;\n01204\tthis->storage_V517 = storage_V517;\n01205\tthis->storage_V519 = storage_V519;\n01206\tthis->storage_V521 = storage_V521;\n01207\tthis->storage_V523 = storage_V523;\n01208\tthis->storage_V525 = storage_V525;\n01209\tthis->storage_V527 = storage_V527;\n01210\tthis->storage_V529 = storage_V529;\n01211\tthis->storage_V531 = storage_V531;\n01212\tthis->storage_V533 = storage_V533;\n01213\tthis->storage_V535 = storage_V535;\n01214\tthis->storage_V537 = storage_V537;\n01215\tthis->storage_V539 = storage_V539;\n01216\tthis->storage_V541 = storage_V541;\n01217\tthis->storage_V543 = storage_V543;\n01218\tthis->storage_V545 = storage_V545;\n01219\tthis->storage_V547 = storage_V547;\n01220\tthis->storage_V549 = storage_V549;\n01221\tthis->storage_V551 = storage_V551;\n01222\tthis->storage_V553 = storage_V553;\n01223\tthis->storage_V555 = storage_V555;\n01224\tthis->storage_V557 = storage_V557;\n01225\tthis->storage_V559 = storage_V559;\n01226\tthis->storage_V561 = storage_V561;\n01227\tthis->storage_V563 = storage_V563;\n01228\tthis->storage_V565 = storage_V565;\n01229\tthis->storage_V567 = storage_V567;\n01230\tthis->storage_V569 = storage_V569;\n01231\tthis->storage_V571 = storage_V571;\n01232\tthis->storage_V573 = storage_V573;\n01233\tthis->storage_V575 = storage_V575;\n01234\tthis->storage_V577 = storage_V577;\n01235\tthis->storage_V579 = storage_V579;\n01236\tthis->storage_V581 = storage_V581;\n01237\tthis->storage_V583 = storage_V583;\n01238\tthis->storage_V585 = storage_V585;\n01239\tthis->storage_V587 = storage_V587;\n01240\tthis->storage_V589 = storage_V589;\n01241\tthis->storage_V591 = storage_V591;\n01242\tthis->storage_V593 = storage_V593;\n01243\tthis->storage_V595 = storage_V595;\n01244\tthis->storage_V597 = storage_V597;\n01245\tthis->storage_V599 = storage_V599;\n01246\tthis->storage_V601 = storage_V601;\n01247\tthis->storage_V603 = storage_V603;\n01248\tthis->storage_V605 = storage_V605;\n01249\tthis->storage_V607 = storage_V607;\n01250\tthis->storage_V609 = storage_V609;\n01251\tthis->storage_V611 = storage_V611;\n01252\tthis->storage_V613 = storage_V613;\n01253\tthis->storage_V615 = storage_V615;\n01254\tthis->storage_V617 = storage_V617;\n01255\tthis->storage_V619 = storage_V619;\n01256\tthis->storage_V621 = storage_V621;\n01257\tthis->storage_V623 = storage_V623;\n01258\tthis->storage_V625 = storage_V625;\n01259\tthis->storage_V627 = storage_V627;\n01260\tthis->storage_V629 = storage_V629;\n01261\tthis->storage_V631 = storage_V631;\n01262\tthis->storage_V633 = storage_V633;\n01263\tthis->storage_V635 = storage_V635;\n01264\tthis->storage_V637 = storage_V637;\n01265\tthis->storage_V639 = storage_V639;\n01266\tthis->storage_V641 = storage_V641;\n01267\tthis->storage_V643 = storage_V643;\n01268\tthis->storage_V645 = storage_V645;\n01269\tthis->storage_V647 = storage_V647;\n01270\tthis->storage_V649 = storage_V649;\n01271\tthis->storage_V651 = storage_V651;\n01272\tthis->storage_V653 = storage_V653;\n01273\tthis->storage_V655 = storage_V655;\n01274\tthis->storage_V657 = storage_V657;\n01275\tthis->storage_V659 = storage_V659;\n01276\tthis->storage_V661 = storage_V661;\n01277\tthis->storage_V663 = storage_V663;\n01278\tthis->storage_V665 = storage_V665;\n01279\tthis->storage_V667 = storage_V667;\n01280\tthis->storage_V669 = storage_V669;\n01281\tthis->storage_V671 = storage_V671;\n01282\tthis->storage_V673 = storage_V673;\n01283\tthis->storage_V675 = storage_V675;\n01284\tthis->storage_V677 = storage_V677;\n01285\tthis->storage_V679 = storage_V679;\n01286\tthis->storage_V681 = storage_V681;\n01287\tthis->storage_V683 = storage_V683;\n01288\tthis->storage_V685 = storage_V685;\n01289\tthis->storage_V687 = storage_V687;\n01290\tthis->storage_V689 = storage_V689;\n01291\tthis->storage_V691 = storage_V691;\n01292\tthis->storage_V693 = storage_V693;\n01293\tthis->storage_V695 = storage_V695;\n01294\tthis->storage_V697 = storage_V697;\n01295\tthis->storage_V699 = storage_V699;\n01296\tthis->storage_V701 = storage_V701;\n01297\tthis->storage_V703 = storage_V703;\n01298\tthis->storage_V705 = storage_V705;\n01299\tthis->storage_V707 = storage_V707;\n01300\tthis->storage_V709 = storage_V709;\n01301\tthis->storage_V711 = storage_V711;\n01302\tthis->storage_V713 = storage_V713;\n01303\tthis->storage_V715 = storage_V715;\n01304\tthis->storage_V717 = storage_V717;\n01305\tthis->storage_V719 = storage_V719;\n01306\tthis->storage_V721 = storage_V721;\n01307\tthis->storage_V723 = storage_V723;\n01308\tthis->storage_V725 = storage_V725;\n01309\tthis->storage_V727 = storage_V727;\n01310\tthis->storage_V729 = storage_V729;\n01311\tthis->storage_V731 = storage_V731;\n01312\tthis->storage_V733 = storage_V733;\n01313\tthis->storage_V735 = storage_V735;\n01314\tthis->storage_V737 = storage_V737;\n01315\tthis->storage_V739 = storage_V739;\n01316\tthis->storage_V741 = storage_V741;\n01317\tthis->storage_V743 = storage_V743;\n01318\tthis->storage_V745 = storage_V745;\n01319\tthis->storage_V747 = storage_V747;\n01320\tthis->storage_V749 = storage_V749;\n01321\tthis->storage_V751 = storage_V751;\n01322\tthis->storage_V753 = storage_V753;\n01323\tthis->storage_V755 = storage_V755;\n01324\tthis->storage_V757 = storage_V757;\n01325\tthis->storage_V759 = storage_V759;\n01326\tthis->storage_V761 = storage_V761;\n01327\tthis->storage_V763 = storage_V763;\n01328\tthis->storage_V765 = storage_V765;\n01329\tthis->storage_V767 = storage_V767;\n01330\tthis->storage_V769 = storage_V769;\n01331\tthis->storage_V771 = storage_V771;\n01332\tthis->storage_V773 = storage_V773;\n01333\tthis->storage_V775 = storage_V775;\n01334\tthis->storage_V777 = storage_V777;\n01335\tthis->storage_V779 = storage_V779;\n01336\tthis->storage_V781 = storage_V781;\n01337\tthis->storage_V783 = storage_V783;\n01338\tthis->storage_V785 = storage_V785;\n01339\tthis->storage_V787 = storage_V787;\n01340\tthis->storage_V789 = storage_V789;\n01341\tthis->storage_V791 = storage_V791;\n01342\tthis->storage_V793 = storage_V793;\n01343\tthis->storage_V795 = storage_V795;\n01344\tthis->storage_V797 = storage_V797;\n01345\tthis->storage_V799 = storage_V799;\n01346\tthis->storage_V801 = storage_V801;\n01347\tthis->storage_V803 = storage_V803;\n01348\tthis->storage_V805 = storage_V805;\n01349\tthis->storage_V807 = storage_V807;\n01350\tthis->storage_V809 = storage_V809;\n01351\tthis->storage_V811 = storage_V811;\n01352\tthis->storage_V813 = storage_V813;\n01353\tthis->storage_V815 = storage_V815;\n01354\tthis->storage_V817 = storage_V817;\n01355\tthis->storage_V819 = storage_V819;\n01356\tthis->storage_V821 = storage_V821;\n01357\tthis->storage_V823 = storage_V823;\n01358\tthis->storage_V825 = storage_V825;\n01359\tthis->storage_V827 = storage_V827;\n01360\tthis->storage_V829 = storage_V829;\n01361\tthis->storage_V831 = storage_V831;\n01362\tthis->storage_V833 = storage_V833;\n01363\tthis->storage_V835 = storage_V835;\n01364\tthis->storage_V837 = storage_V837;\n01365\tthis->storage_V839 = storage_V839;\n01366\tthis->storage_V841 = storage_V841;\n01367\tthis->storage_V843 = storage_V843;\n01368\tthis->storage_V845 = storage_V845;\n01369\tthis->storage_V847 = storage_V847;\n01370\tthis->storage_V849 = storage_V849;\n01371\tthis->storage_V851 = storage_V851;\n01372\tthis->storage_V853 = storage_V853;\n01373\tthis->storage_V855 = storage_V855;\n01374\tthis->storage_V857 = storage_V857;\n01375\tthis->storage_V859 = storage_V859;\n01376\tthis->storage_V861 = storage_V861;\n01377\tthis->storage_V863 = storage_V863;\n01378\tthis->storage_V865 = storage_V865;\n01379\tthis->storage_V867 = storage_V867;\n01380\tthis->storage_V869 = storage_V869;\n01381\tthis->storage_V871 = storage_V871;\n01382\tthis->storage_V873 = storage_V873;\n01383\tthis->storage_V875 = storage_V875;\n01384\tthis->storage_V877 = storage_V877;\n01385\tthis->storage_V879 = storage_V879;\n01386\tthis->storage_V881 = storage_V881;\n01387\tthis->storage_V883 = storage_V883;\n01388\tthis->storage_V885 = storage_V885;\n01389\tthis->storage_V887 = storage_V887;\n01390\tthis->storage_V889 = storage_V889;\n01391\tthis->storage_V891 = storage_V891;\n01392\tthis->storage_V893 = storage_V893;\n01393\tthis->storage_V895 = storage_V895;\n01394\tthis->storage_V897 = storage_V897;\n01395\tthis->storage_V899 = storage_V899;\n01396\tthis->storage_V901 = storage_V901;\n01397\tthis->storage_V903 = storage_V903;\n01398\tthis->storage_V905 = storage_V905;\n01399\tthis->storage_V907 = storage_V907;\n01400\tthis->storage_V909 = storage_V909;\n01401\tthis->storage_V1 = storage_V1;\n01402\t \n01403\t\n01404\t\n01405\t\n01406\t\n01407\t\n01408\t\n01409\t\n01410\t\n01411\t\n01412\t\n01413\t\n01414\t\n01415\t\n01416\t\n01417\t\n01418\t\n01419\t\n01420\t\n01421\t\n01422\t\n01423\t\n01424\t\n01425\t\n01426\t\n01427\t\n01428\t\n01429\t\n01430\t\n01431\t\n01432\t\n01433\t\n01434\t\n01435\t\n01436\t\n01437\t\n01438\t\n01439\t\n01440\t\n01441\t\n01442\t\n01443\t\n01444\t\n01445\t\n01446\t\n01447\t\n01448\t\n01449\t\n01450\t\n01451\t\n01452\t\n01453\t\n01454\t\n01455\t\n01456\t\n01457\t\n01458\t\n01459\t\n01460\t\n01461\t\n01462\t\n01463\t\n01464\t\n01465\t\n01466\t\n01467\t\n01468\t\n01469\t\n01470\t\n01471\t\n01472\t\n01473\t\n01474\t\n01475\t\n01476\t\n01477\t\n01478\t\n01479\t\n01480\t\n01481\t\n01482\t\n01483\t\n01484\t\n01485\t\n01486\t\n01487\t\n01488\t\n01489\t\n01490\t\n01491\t\n01492\t\n01493\t\n01494\t\n01495\t\n01496\t\n01497\t\n01498\t\n01499\t\n01500\t\n01501\t\n01502\t\n01503\t\n01504\t\n01505\t\n01506\t\n01507\t\n01508\t\n01509\t\n01510\t\n01511\t\n01512\t\n01513\t\n01514\t\n01515\t\n01516\t\n01517\t\n01518\t\n01519\t\n01520\t\n01521\t\n01522\t\n01523\t\n01524\t\n01525\t\n01526\t\n01527\t\n01528\t\n01529\t\n01530\t\n01531\t\n01532\t\n01533\t\n01534\t\n01535\t\n01536\t\n01537\t\n01538\t\n01539\t\n01540\t\n01541\t\n01542\t\n01543\t\n01544\t\n01545\t\n01546\t\n01547\t\n01548\t\n01549\t\n01550\t\n01551\t\n01552\t\n01553\t\n01554\t\n01555\t\n01556\t\n01557\t\n01558\t\n01559\t\n01560\t\n01561\t\n01562\t\n01563\t\n01564\t\n01565\t\n01566\t\n01567\t\n01568\t\n01569\t\n01570\t\n01571\t\n01572\t\n01573\t\n01574\t\n01575\t\n01576\t\n01577\t\n01578\t\n01579\t\n01580\t\n01581\t\n01582\t\n01583\t\n01584\t\n01585\t\n01586\t\n01587\t\n01588\t\n01589\t\n01590\t\n01591\t\n01592\t\n01593\t\n01594\t\n01595\t\n01596\t\n01597\t\n01598\t\n01599\t\n01600\t\n01601\t\n01602\t\n01603\t\n01604\t\n01605\t\n01606\t\n01607\t\n01608\t\n01609\t\n01610\t\n01611\t\n01612\t\n01613\t\n01614\t\n01615\t\n01616\t\n01617\t\n01618\t\n01619\t\n01620\t\n01621\t\n01622\t\n01623\t\n01624\t\n01625\t\n01626\t\n01627\t\n01628\t\n01629\t\n01630\t\n01631\t\n01632\t\n01633\t\n01634\t\n01635\t\n01636\t\n01637\t\n01638\t\n01639\t\n01640\t\n01641\t\n01642\t\n01643\t\n01644\t\n01645\t\n01646\t\n01647\t\n01648\t\n01649\t\n01650\t\n01651\t\n01652\t\n01653\t\n01654\t\n01655\t\n01656\t\n01657\t\n01658\t\n01659\t\n01660\t\n01661\t\n01662\t\n01663\t\n01664\t\n01665\t\n01666\t\n01667\t\n01668\t\n01669\t\n01670\t\n01671\t\n01672\t\n01673\t\n01674\t\n01675\t\n01676\t\n01677\t\n01678\t\n01679\t\n01680\t\n01681\t\n01682\t\n01683\t\n01684\t\n01685\t\n01686\t\n01687\t\n01688\t\n01689\t\n01690\t\n01691\t\n01692\t\n01693\t\n01694\t\n01695\t\n01696\t\n01697\t\n01698\t\n01699\t\n01700\t\n01701\t\n01702\t\n01703\t\n01704\t\n01705\t\n01706\t\n01707\t\n01708\t\n01709\t\n01710\t\n01711\t\n01712\t\n01713\t\n01714\t\n01715\t\n01716\t\n01717\t\n01718\t\n01719\t\n01720\t\n01721\t\n01722\t\n01723\t\n01724\t\n01725\t\n01726\t\n01727\t\n01728\t\n01729\t\n01730\t\n01731\t\n01732\t\n01733\t\n01734\t\n01735\t\n01736\t\n01737\t\n01738\t\n01739\t\n01740\t\n01741\t\n01742\t\n01743\t\n01744\t\n01745\t\n01746\t\n01747\t\n01748\t\n01749\t\n01750\t\n01751\t\n01752\t\n01753\t\n01754\t\n01755\t\n01756\t\n01757\t\n01758\t\n01759\t\n01760\t\n01761\t\n01762\t\n01763\t\n01764\t\n01765\t\n01766\t\n01767\t\n01768\t\n01769\t\n01770\t\n01771\t\n01772\t\n01773\t\n01774\t\n01775\t\n01776\t\n01777\t\n01778\t\n01779\t\n01780\t\n01781\t\n01782\t\n01783\t\n01784\t\n01785\t\n01786\t\n01787\t\n01788\t\n01789\t\n01790\t\n01791\t\n01792\t\n01793\t\n01794\t\n01795\t\n01796\t\n01797\t\n01798\t\n01799\t\n01800\t\n01801\t\n01802\t\n01803\t\n01804\t\n01805\t\n01806\t\n01807\t\n01808\t\n01809\t\n01810\t\n01811\t\n01812\t\n01813\t\n01814\t\n01815\t\n01816\t\n01817\t\n01818\t\n01819\t\n01820\t\n01821\t\n01822\t\n01823\t\n01824\t\n01825\t\n01826\t\n01827\t\n01828\t\n01829\t\n01830\t\n01831\t\n01832\t\n01833\t\n01834\t\n01835\t\n01836\t\n01837\t\n01838\t\n01839\t\n01840\t\n01841\t\n01842\t\n01843\t\n01844\t\n01845\t\n01846\t\n01847\t\n01848\t\n01849\t\n01850\t\n01851\t\n01852\t\n01853\t\n01854\t\n01855\t\n01856\t\n01857\t\n01858\t\n01859\t this->__ERROR = __ERROR;\n01860\t return 0;\n01861\t }\n01862\t void cleanup(void) {\n01863\t __label_1:\n01864\t\n01865\tdouble __DUMMY_1;\n01866\t__label_3:\n01867\t\n01868\tdouble __DUMMY_3;\n01869\t__label_5:\n01870\t\n01871\tdouble __DUMMY_5;\n01872\t__label_7:\n01873\t\n01874\tdouble __DUMMY_7;\n01875\t__label_9:\n01876\t\n01877\tdouble __DUMMY_9;\n01878\t__label_11:\n01879\t\n01880\tdouble __DUMMY_11;\n01881\t__label_13:\n01882\t\n01883\tdouble __DUMMY_13;\n01884\t__label_15:\n01885\t\n01886\tdouble __DUMMY_15;\n01887\t__label_17:\n01888\t\n01889\tdouble __DUMMY_17;\n01890\t__label_19:\n01891\t\n01892\tdouble __DUMMY_19;\n01893\t__label_21:\n01894\t\n01895\tdouble __DUMMY_21;\n01896\t__label_23:\n01897\t\n01898\tdouble __DUMMY_23;\n01899\t__label_25:\n01900\t\n01901\tdouble __DUMMY_25;\n01902\t__label_27:\n01903\t\n01904\tdouble __DUMMY_27;\n01905\t__label_29:\n01906\t\n01907\tdouble __DUMMY_29;\n01908\t__label_31:\n01909\t\n01910\tdouble __DUMMY_31;\n01911\t__label_33:\n01912\t\n01913\tdouble __DUMMY_33;\n01914\t__label_35:\n01915\t\n01916\tdouble __DUMMY_35;\n01917\t__label_37:\n01918\t\n01919\tdouble __DUMMY_37;\n01920\t__label_39:\n01921\t\n01922\tdouble __DUMMY_39;\n01923\t__label_41:\n01924\t\n01925\tdouble __DUMMY_41;\n01926\t__label_43:\n01927\t\n01928\tdouble __DUMMY_43;\n01929\t__label_45:\n01930\t\n01931\tdouble __DUMMY_45;\n01932\t__label_47:\n01933\t\n01934\tdouble __DUMMY_47;\n01935\t__label_49:\n01936\t\n01937\tdouble __DUMMY_49;\n01938\t__label_51:\n01939\t\n01940\tdouble __DUMMY_51;\n01941\t__label_53:\n01942\t\n01943\tdouble __DUMMY_53;\n01944\t__label_55:\n01945\t\n01946\tdouble __DUMMY_55;\n01947\t__label_57:\n01948\t\n01949\tdouble __DUMMY_57;\n01950\t__label_59:\n01951\t\n01952\tdouble __DUMMY_59;\n01953\t__label_61:\n01954\t\n01955\tdouble __DUMMY_61;\n01956\t__label_63:\n01957\t\n01958\tdouble __DUMMY_63;\n01959\t__label_65:\n01960\t\n01961\tdouble __DUMMY_65;\n01962\t__label_67:\n01963\t\n01964\tdouble __DUMMY_67;\n01965\t__label_69:\n01966\t\n01967\tdouble __DUMMY_69;\n01968\t__label_71:\n01969\t\n01970\tdouble __DUMMY_71;\n01971\t__label_73:\n01972\t\n01973\tdouble __DUMMY_73;\n01974\t__label_75:\n01975\t\n01976\tdouble __DUMMY_75;\n01977\t__label_77:\n01978\t\n01979\tdouble __DUMMY_77;\n01980\t__label_79:\n01981\t\n01982\tdouble __DUMMY_79;\n01983\t__label_81:\n01984\t\n01985\tdouble __DUMMY_81;\n01986\t__label_83:\n01987\t\n01988\tdouble __DUMMY_83;\n01989\t__label_85:\n01990\t\n01991\tdouble __DUMMY_85;\n01992\t__label_87:\n01993\t\n01994\tdouble __DUMMY_87;\n01995\t__label_89:\n01996\t\n01997\tdouble __DUMMY_89;\n01998\t__label_91:\n01999\t\n02000\tdouble __DUMMY_91;\n02001\t__label_93:\n02002\t\n02003\tdouble __DUMMY_93;\n02004\t__label_95:\n02005\t\n02006\tdouble __DUMMY_95;\n02007\t__label_97:\n02008\t\n02009\tdouble __DUMMY_97;\n02010\t__label_99:\n02011\t\n02012\tdouble __DUMMY_99;\n02013\t__label_101:\n02014\t\n02015\tdouble __DUMMY_101;\n02016\t__label_103:\n02017\t\n02018\tdouble __DUMMY_103;\n02019\t__label_105:\n02020\t\n02021\tdouble __DUMMY_105;\n02022\t__label_107:\n02023\t\n02024\tdouble __DUMMY_107;\n02025\t__label_109:\n02026\t\n02027\tdouble __DUMMY_109;\n02028\t__label_111:\n02029\t\n02030\tdouble __DUMMY_111;\n02031\t__label_113:\n02032\t\n02033\tdouble __DUMMY_113;\n02034\t__label_115:\n02035\t\n02036\tdouble __DUMMY_115;\n02037\t__label_117:\n02038\t\n02039\tdouble __DUMMY_117;\n02040\t__label_119:\n02041\t\n02042\tdouble __DUMMY_119;\n02043\t__label_121:\n02044\t\n02045\tdouble __DUMMY_121;\n02046\t__label_123:\n02047\t\n02048\tdouble __DUMMY_123;\n02049\t__label_125:\n02050\t\n02051\tdouble __DUMMY_125;\n02052\t__label_127:\n02053\t\n02054\tdouble __DUMMY_127;\n02055\t__label_129:\n02056\t\n02057\tdouble __DUMMY_129;\n02058\t__label_131:\n02059\t\n02060\tdouble __DUMMY_131;\n02061\t__label_133:\n02062\t\n02063\tdouble __DUMMY_133;\n02064\t__label_135:\n02065\t\n02066\tdouble __DUMMY_135;\n02067\t__label_137:\n02068\t\n02069\tdouble __DUMMY_137;\n02070\t__label_139:\n02071\t\n02072\tdouble __DUMMY_139;\n02073\t__label_141:\n02074\t\n02075\tdouble __DUMMY_141;\n02076\t__label_143:\n02077\t\n02078\tdouble __DUMMY_143;\n02079\t__label_145:\n02080\t\n02081\tdouble __DUMMY_145;\n02082\t__label_147:\n02083\t\n02084\tdouble __DUMMY_147;\n02085\t__label_149:\n02086\t\n02087\tdouble __DUMMY_149;\n02088\t__label_151:\n02089\t\n02090\tdouble __DUMMY_151;\n02091\t__label_153:\n02092\t\n02093\tdouble __DUMMY_153;\n02094\t__label_155:\n02095\t\n02096\tdouble __DUMMY_155;\n02097\t__label_157:\n02098\t\n02099\tdouble __DUMMY_157;\n02100\t__label_159:\n02101\t\n02102\tdouble __DUMMY_159;\n02103\t__label_161:\n02104\t\n02105\tdouble __DUMMY_161;\n02106\t__label_163:\n02107\t\n02108\tdouble __DUMMY_163;\n02109\t__label_165:\n02110\t\n02111\tdouble __DUMMY_165;\n02112\t__label_167:\n02113\t\n02114\tdouble __DUMMY_167;\n02115\t__label_169:\n02116\t\n02117\tdouble __DUMMY_169;\n02118\t__label_171:\n02119\t\n02120\tdouble __DUMMY_171;\n02121\t__label_173:\n02122\t\n02123\tdouble __DUMMY_173;\n02124\t__label_175:\n02125\t\n02126\tdouble __DUMMY_175;\n02127\t__label_177:\n02128\t\n02129\tdouble __DUMMY_177;\n02130\t__label_179:\n02131\t\n02132\tdouble __DUMMY_179;\n02133\t__label_181:\n02134\t\n02135\tdouble __DUMMY_181;\n02136\t__label_183:\n02137\t\n02138\tdouble __DUMMY_183;\n02139\t__label_185:\n02140\t\n02141\tdouble __DUMMY_185;\n02142\t__label_187:\n02143\t\n02144\tdouble __DUMMY_187;\n02145\t__label_189:\n02146\t\n02147\tdouble __DUMMY_189;\n02148\t__label_191:\n02149\t\n02150\tdouble __DUMMY_191;\n02151\t__label_193:\n02152\t\n02153\tdouble __DUMMY_193;\n02154\t__label_195:\n02155\t\n02156\tdouble __DUMMY_195;\n02157\t__label_197:\n02158\t\n02159\tdouble __DUMMY_197;\n02160\t__label_199:\n02161\t\n02162\tdouble __DUMMY_199;\n02163\t__label_201:\n02164\t\n02165\tdouble __DUMMY_201;\n02166\t__label_203:\n02167\t\n02168\tdouble __DUMMY_203;\n02169\t__label_205:\n02170\t\n02171\tdouble __DUMMY_205;\n02172\t__label_207:\n02173\t\n02174\tdouble __DUMMY_207;\n02175\t__label_209:\n02176\t\n02177\tdouble __DUMMY_209;\n02178\t__label_211:\n02179\t\n02180\tdouble __DUMMY_211;\n02181\t__label_213:\n02182\t\n02183\tdouble __DUMMY_213;\n02184\t__label_215:\n02185\t\n02186\tdouble __DUMMY_215;\n02187\t__label_217:\n02188\t\n02189\tdouble __DUMMY_217;\n02190\t__label_219:\n02191\t\n02192\tdouble __DUMMY_219;\n02193\t__label_221:\n02194\t\n02195\tdouble __DUMMY_221;\n02196\t__label_223:\n02197\t\n02198\tdouble __DUMMY_223;\n02199\t__label_225:\n02200\t\n02201\tdouble __DUMMY_225;\n02202\t__label_227:\n02203\t\n02204\tdouble __DUMMY_227;\n02205\t__label_229:\n02206\t\n02207\tdouble __DUMMY_229;\n02208\t__label_231:\n02209\t\n02210\tdouble __DUMMY_231;\n02211\t__label_233:\n02212\t\n02213\tdouble __DUMMY_233;\n02214\t__label_235:\n02215\t\n02216\tdouble __DUMMY_235;\n02217\t__label_237:\n02218\t\n02219\tdouble __DUMMY_237;\n02220\t__label_239:\n02221\t\n02222\tdouble __DUMMY_239;\n02223\t__label_241:\n02224\t\n02225\tdouble __DUMMY_241;\n02226\t__label_243:\n02227\t\n02228\tdouble __DUMMY_243;\n02229\t__label_245:\n02230\t\n02231\tdouble __DUMMY_245;\n02232\t__label_247:\n02233\t\n02234\tdouble __DUMMY_247;\n02235\t__label_249:\n02236\t\n02237\tdouble __DUMMY_249;\n02238\t__label_251:\n02239\t\n02240\tdouble __DUMMY_251;\n02241\t__label_253:\n02242\t\n02243\tdouble __DUMMY_253;\n02244\t__label_255:\n02245\t\n02246\tdouble __DUMMY_255;\n02247\t__label_257:\n02248\t\n02249\tdouble __DUMMY_257;\n02250\t__label_259:\n02251\t\n02252\tdouble __DUMMY_259;\n02253\t__label_261:\n02254\t\n02255\tdouble __DUMMY_261;\n02256\t__label_263:\n02257\t\n02258\tdouble __DUMMY_263;\n02259\t__label_265:\n02260\t\n02261\tdouble __DUMMY_265;\n02262\t__label_267:\n02263\t\n02264\tdouble __DUMMY_267;\n02265\t__label_269:\n02266\t\n02267\tdouble __DUMMY_269;\n02268\t__label_271:\n02269\t\n02270\tdouble __DUMMY_271;\n02271\t__label_273:\n02272\t\n02273\tdouble __DUMMY_273;\n02274\t__label_275:\n02275\t\n02276\tdouble __DUMMY_275;\n02277\t__label_277:\n02278\t\n02279\tdouble __DUMMY_277;\n02280\t__label_279:\n02281\t\n02282\tdouble __DUMMY_279;\n02283\t__label_281:\n02284\t\n02285\tdouble __DUMMY_281;\n02286\t__label_283:\n02287\t\n02288\tdouble __DUMMY_283;\n02289\t__label_285:\n02290\t\n02291\tdouble __DUMMY_285;\n02292\t__label_287:\n02293\t\n02294\tdouble __DUMMY_287;\n02295\t__label_289:\n02296\t\n02297\tdouble __DUMMY_289;\n02298\t__label_291:\n02299\t\n02300\tdouble __DUMMY_291;\n02301\t__label_293:\n02302\t\n02303\tdouble __DUMMY_293;\n02304\t__label_295:\n02305\t\n02306\tdouble __DUMMY_295;\n02307\t__label_297:\n02308\t\n02309\tdouble __DUMMY_297;\n02310\t__label_299:\n02311\t\n02312\tdouble __DUMMY_299;\n02313\t__label_301:\n02314\t\n02315\tdouble __DUMMY_301;\n02316\t__label_303:\n02317\t\n02318\tdouble __DUMMY_303;\n02319\t__label_305:\n02320\t\n02321\tdouble __DUMMY_305;\n02322\t__label_307:\n02323\t\n02324\tdouble __DUMMY_307;\n02325\t__label_309:\n02326\t\n02327\tdouble __DUMMY_309;\n02328\t__label_311:\n02329\t\n02330\tdouble __DUMMY_311;\n02331\t__label_313:\n02332\t\n02333\tdouble __DUMMY_313;\n02334\t__label_315:\n02335\t\n02336\tdouble __DUMMY_315;\n02337\t__label_317:\n02338\t\n02339\tdouble __DUMMY_317;\n02340\t__label_319:\n02341\t\n02342\tdouble __DUMMY_319;\n02343\t__label_321:\n02344\t\n02345\tdouble __DUMMY_321;\n02346\t__label_323:\n02347\t\n02348\tdouble __DUMMY_323;\n02349\t__label_325:\n02350\t\n02351\tdouble __DUMMY_325;\n02352\t__label_327:\n02353\t\n02354\tdouble __DUMMY_327;\n02355\t__label_329:\n02356\t\n02357\tdouble __DUMMY_329;\n02358\t__label_331:\n02359\t\n02360\tdouble __DUMMY_331;\n02361\t__label_333:\n02362\t\n02363\tdouble __DUMMY_333;\n02364\t__label_335:\n02365\t\n02366\tdouble __DUMMY_335;\n02367\t__label_337:\n02368\t\n02369\tdouble __DUMMY_337;\n02370\t__label_339:\n02371\t\n02372\tdouble __DUMMY_339;\n02373\t__label_341:\n02374\t\n02375\tdouble __DUMMY_341;\n02376\t__label_343:\n02377\t\n02378\tdouble __DUMMY_343;\n02379\t__label_345:\n02380\t\n02381\tdouble __DUMMY_345;\n02382\t__label_347:\n02383\t\n02384\tdouble __DUMMY_347;\n02385\t__label_349:\n02386\t\n02387\tdouble __DUMMY_349;\n02388\t__label_351:\n02389\t\n02390\tdouble __DUMMY_351;\n02391\t__label_353:\n02392\t\n02393\tdouble __DUMMY_353;\n02394\t__label_355:\n02395\t\n02396\tdouble __DUMMY_355;\n02397\t__label_357:\n02398\t\n02399\tdouble __DUMMY_357;\n02400\t__label_359:\n02401\t\n02402\tdouble __DUMMY_359;\n02403\t__label_361:\n02404\t\n02405\tdouble __DUMMY_361;\n02406\t__label_363:\n02407\t\n02408\tdouble __DUMMY_363;\n02409\t__label_365:\n02410\t\n02411\tdouble __DUMMY_365;\n02412\t__label_367:\n02413\t\n02414\tdouble __DUMMY_367;\n02415\t__label_369:\n02416\t\n02417\tdouble __DUMMY_369;\n02418\t__label_371:\n02419\t\n02420\tdouble __DUMMY_371;\n02421\t__label_373:\n02422\t\n02423\tdouble __DUMMY_373;\n02424\t__label_375:\n02425\t\n02426\tdouble __DUMMY_375;\n02427\t__label_377:\n02428\t\n02429\tdouble __DUMMY_377;\n02430\t__label_379:\n02431\t\n02432\tdouble __DUMMY_379;\n02433\t__label_381:\n02434\t\n02435\tdouble __DUMMY_381;\n02436\t__label_383:\n02437\t\n02438\tdouble __DUMMY_383;\n02439\t__label_385:\n02440\t\n02441\tdouble __DUMMY_385;\n02442\t__label_387:\n02443\t\n02444\tdouble __DUMMY_387;\n02445\t__label_389:\n02446\t\n02447\tdouble __DUMMY_389;\n02448\t__label_391:\n02449\t\n02450\tdouble __DUMMY_391;\n02451\t__label_393:\n02452\t\n02453\tdouble __DUMMY_393;\n02454\t__label_395:\n02455\t\n02456\tdouble __DUMMY_395;\n02457\t__label_397:\n02458\t\n02459\tdouble __DUMMY_397;\n02460\t__label_399:\n02461\t\n02462\tdouble __DUMMY_399;\n02463\t__label_401:\n02464\t\n02465\tdouble __DUMMY_401;\n02466\t__label_403:\n02467\t\n02468\tdouble __DUMMY_403;\n02469\t__label_405:\n02470\t\n02471\tdouble __DUMMY_405;\n02472\t__label_407:\n02473\t\n02474\tdouble __DUMMY_407;\n02475\t__label_409:\n02476\t\n02477\tdouble __DUMMY_409;\n02478\t__label_411:\n02479\t\n02480\tdouble __DUMMY_411;\n02481\t__label_413:\n02482\t\n02483\tdouble __DUMMY_413;\n02484\t__label_415:\n02485\t\n02486\tdouble __DUMMY_415;\n02487\t__label_417:\n02488\t\n02489\tdouble __DUMMY_417;\n02490\t__label_419:\n02491\t\n02492\tdouble __DUMMY_419;\n02493\t__label_421:\n02494\t\n02495\tdouble __DUMMY_421;\n02496\t__label_423:\n02497\t\n02498\tdouble __DUMMY_423;\n02499\t__label_425:\n02500\t\n02501\tdouble __DUMMY_425;\n02502\t__label_427:\n02503\t\n02504\tdouble __DUMMY_427;\n02505\t__label_429:\n02506\t\n02507\tdouble __DUMMY_429;\n02508\t__label_431:\n02509\t\n02510\tdouble __DUMMY_431;\n02511\t__label_433:\n02512\t\n02513\tdouble __DUMMY_433;\n02514\t__label_435:\n02515\t\n02516\tdouble __DUMMY_435;\n02517\t__label_437:\n02518\t\n02519\tdouble __DUMMY_437;\n02520\t__label_439:\n02521\t\n02522\tdouble __DUMMY_439;\n02523\t__label_441:\n02524\t\n02525\tdouble __DUMMY_441;\n02526\t__label_443:\n02527\t\n02528\tdouble __DUMMY_443;\n02529\t__label_445:\n02530\t\n02531\tdouble __DUMMY_445;\n02532\t__label_447:\n02533\t\n02534\tdouble __DUMMY_447;\n02535\t__label_449:\n02536\t\n02537\tdouble __DUMMY_449;\n02538\t__label_451:\n02539\t\n02540\tdouble __DUMMY_451;\n02541\t__label_453:\n02542\t\n02543\tdouble __DUMMY_453;\n02544\t__label_455:\n02545\t\n02546\tdouble __DUMMY_455;\n02547\t__label_457:\n02548\t\n02549\tdouble __DUMMY_457;\n02550\t__label_459:\n02551\t\n02552\tdouble __DUMMY_459;\n02553\t__label_461:\n02554\t\n02555\tdouble __DUMMY_461;\n02556\t__label_463:\n02557\t\n02558\tdouble __DUMMY_463;\n02559\t__label_465:\n02560\t\n02561\tdouble __DUMMY_465;\n02562\t__label_467:\n02563\t\n02564\tdouble __DUMMY_467;\n02565\t__label_469:\n02566\t\n02567\tdouble __DUMMY_469;\n02568\t__label_471:\n02569\t\n02570\tdouble __DUMMY_471;\n02571\t__label_473:\n02572\t\n02573\tdouble __DUMMY_473;\n02574\t__label_475:\n02575\t\n02576\tdouble __DUMMY_475;\n02577\t__label_477:\n02578\t\n02579\tdouble __DUMMY_477;\n02580\t__label_479:\n02581\t\n02582\tdouble __DUMMY_479;\n02583\t__label_481:\n02584\t\n02585\tdouble __DUMMY_481;\n02586\t__label_483:\n02587\t\n02588\tdouble __DUMMY_483;\n02589\t__label_485:\n02590\t\n02591\tdouble __DUMMY_485;\n02592\t__label_487:\n02593\t\n02594\tdouble __DUMMY_487;\n02595\t__label_489:\n02596\t\n02597\tdouble __DUMMY_489;\n02598\t__label_491:\n02599\t\n02600\tdouble __DUMMY_491;\n02601\t__label_493:\n02602\t\n02603\tdouble __DUMMY_493;\n02604\t__label_495:\n02605\t\n02606\tdouble __DUMMY_495;\n02607\t__label_497:\n02608\t\n02609\tdouble __DUMMY_497;\n02610\t__label_499:\n02611\t\n02612\tdouble __DUMMY_499;\n02613\t__label_501:\n02614\t\n02615\tdouble __DUMMY_501;\n02616\t__label_503:\n02617\t\n02618\tdouble __DUMMY_503;\n02619\t__label_505:\n02620\t\n02621\tdouble __DUMMY_505;\n02622\t__label_507:\n02623\t\n02624\tdouble __DUMMY_507;\n02625\t__label_509:\n02626\t\n02627\tdouble __DUMMY_509;\n02628\t__label_511:\n02629\t\n02630\tdouble __DUMMY_511;\n02631\t__label_513:\n02632\t\n02633\tdouble __DUMMY_513;\n02634\t__label_515:\n02635\t\n02636\tdouble __DUMMY_515;\n02637\t__label_517:\n02638\t\n02639\tdouble __DUMMY_517;\n02640\t__label_519:\n02641\t\n02642\tdouble __DUMMY_519;\n02643\t__label_521:\n02644\t\n02645\tdouble __DUMMY_521;\n02646\t__label_523:\n02647\t\n02648\tdouble __DUMMY_523;\n02649\t__label_525:\n02650\t\n02651\tdouble __DUMMY_525;\n02652\t__label_527:\n02653\t\n02654\tdouble __DUMMY_527;\n02655\t__label_529:\n02656\t\n02657\tdouble __DUMMY_529;\n02658\t__label_531:\n02659\t\n02660\tdouble __DUMMY_531;\n02661\t__label_533:\n02662\t\n02663\tdouble __DUMMY_533;\n02664\t__label_535:\n02665\t\n02666\tdouble __DUMMY_535;\n02667\t__label_537:\n02668\t\n02669\tdouble __DUMMY_537;\n02670\t__label_539:\n02671\t\n02672\tdouble __DUMMY_539;\n02673\t__label_541:\n02674\t\n02675\tdouble __DUMMY_541;\n02676\t__label_543:\n02677\t\n02678\tdouble __DUMMY_543;\n02679\t__label_545:\n02680\t\n02681\tdouble __DUMMY_545;\n02682\t__label_547:\n02683\t\n02684\tdouble __DUMMY_547;\n02685\t__label_549:\n02686\t\n02687\tdouble __DUMMY_549;\n02688\t__label_551:\n02689\t\n02690\tdouble __DUMMY_551;\n02691\t__label_553:\n02692\t\n02693\tdouble __DUMMY_553;\n02694\t__label_555:\n02695\t\n02696\tdouble __DUMMY_555;\n02697\t__label_557:\n02698\t\n02699\tdouble __DUMMY_557;\n02700\t__label_559:\n02701\t\n02702\tdouble __DUMMY_559;\n02703\t__label_561:\n02704\t\n02705\tdouble __DUMMY_561;\n02706\t__label_563:\n02707\t\n02708\tdouble __DUMMY_563;\n02709\t__label_565:\n02710\t\n02711\tdouble __DUMMY_565;\n02712\t__label_567:\n02713\t\n02714\tdouble __DUMMY_567;\n02715\t__label_569:\n02716\t\n02717\tdouble __DUMMY_569;\n02718\t__label_571:\n02719\t\n02720\tdouble __DUMMY_571;\n02721\t__label_573:\n02722\t\n02723\tdouble __DUMMY_573;\n02724\t__label_575:\n02725\t\n02726\tdouble __DUMMY_575;\n02727\t__label_577:\n02728\t\n02729\tdouble __DUMMY_577;\n02730\t__label_579:\n02731\t\n02732\tdouble __DUMMY_579;\n02733\t__label_581:\n02734\t\n02735\tdouble __DUMMY_581;\n02736\t__label_583:\n02737\t\n02738\tdouble __DUMMY_583;\n02739\t__label_585:\n02740\t\n02741\tdouble __DUMMY_585;\n02742\t__label_587:\n02743\t\n02744\tdouble __DUMMY_587;\n02745\t__label_589:\n02746\t\n02747\tdouble __DUMMY_589;\n02748\t__label_591:\n02749\t\n02750\tdouble __DUMMY_591;\n02751\t__label_593:\n02752\t\n02753\tdouble __DUMMY_593;\n02754\t__label_595:\n02755\t\n02756\tdouble __DUMMY_595;\n02757\t__label_597:\n02758\t\n02759\tdouble __DUMMY_597;\n02760\t__label_599:\n02761\t\n02762\tdouble __DUMMY_599;\n02763\t__label_601:\n02764\t\n02765\tdouble __DUMMY_601;\n02766\t__label_603:\n02767\t\n02768\tdouble __DUMMY_603;\n02769\t__label_605:\n02770\t\n02771\tdouble __DUMMY_605;\n02772\t__label_607:\n02773\t\n02774\tdouble __DUMMY_607;\n02775\t__label_609:\n02776\t\n02777\tdouble __DUMMY_609;\n02778\t__label_611:\n02779\t\n02780\tdouble __DUMMY_611;\n02781\t__label_613:\n02782\t\n02783\tdouble __DUMMY_613;\n02784\t__label_615:\n02785\t\n02786\tdouble __DUMMY_615;\n02787\t__label_617:\n02788\t\n02789\tdouble __DUMMY_617;\n02790\t__label_619:\n02791\t\n02792\tdouble __DUMMY_619;\n02793\t__label_621:\n02794\t\n02795\tdouble __DUMMY_621;\n02796\t__label_623:\n02797\t\n02798\tdouble __DUMMY_623;\n02799\t__label_625:\n02800\t\n02801\tdouble __DUMMY_625;\n02802\t__label_627:\n02803\t\n02804\tdouble __DUMMY_627;\n02805\t__label_629:\n02806\t\n02807\tdouble __DUMMY_629;\n02808\t__label_631:\n02809\t\n02810\tdouble __DUMMY_631;\n02811\t__label_633:\n02812\t\n02813\tdouble __DUMMY_633;\n02814\t__label_635:\n02815\t\n02816\tdouble __DUMMY_635;\n02817\t__label_637:\n02818\t\n02819\tdouble __DUMMY_637;\n02820\t__label_639:\n02821\t\n02822\tdouble __DUMMY_639;\n02823\t__label_641:\n02824\t\n02825\tdouble __DUMMY_641;\n02826\t__label_643:\n02827\t\n02828\tdouble __DUMMY_643;\n02829\t__label_645:\n02830\t\n02831\tdouble __DUMMY_645;\n02832\t__label_647:\n02833\t\n02834\tdouble __DUMMY_647;\n02835\t__label_649:\n02836\t\n02837\tdouble __DUMMY_649;\n02838\t__label_651:\n02839\t\n02840\tdouble __DUMMY_651;\n02841\t__label_653:\n02842\t\n02843\tdouble __DUMMY_653;\n02844\t__label_655:\n02845\t\n02846\tdouble __DUMMY_655;\n02847\t__label_657:\n02848\t\n02849\tdouble __DUMMY_657;\n02850\t__label_659:\n02851\t\n02852\tdouble __DUMMY_659;\n02853\t__label_661:\n02854\t\n02855\tdouble __DUMMY_661;\n02856\t__label_663:\n02857\t\n02858\tdouble __DUMMY_663;\n02859\t__label_665:\n02860\t\n02861\tdouble __DUMMY_665;\n02862\t__label_667:\n02863\t\n02864\tdouble __DUMMY_667;\n02865\t__label_669:\n02866\t\n02867\tdouble __DUMMY_669;\n02868\t__label_671:\n02869\t\n02870\tdouble __DUMMY_671;\n02871\t__label_673:\n02872\t\n02873\tdouble __DUMMY_673;\n02874\t__label_675:\n02875\t\n02876\tdouble __DUMMY_675;\n02877\t__label_677:\n02878\t\n02879\tdouble __DUMMY_677;\n02880\t__label_679:\n02881\t\n02882\tdouble __DUMMY_679;\n02883\t__label_681:\n02884\t\n02885\tdouble __DUMMY_681;\n02886\t__label_683:\n02887\t\n02888\tdouble __DUMMY_683;\n02889\t__label_685:\n02890\t\n02891\tdouble __DUMMY_685;\n02892\t__label_687:\n02893\t\n02894\tdouble __DUMMY_687;\n02895\t__label_689:\n02896\t\n02897\tdouble __DUMMY_689;\n02898\t__label_691:\n02899\t\n02900\tdouble __DUMMY_691;\n02901\t__label_693:\n02902\t\n02903\tdouble __DUMMY_693;\n02904\t__label_695:\n02905\t\n02906\tdouble __DUMMY_695;\n02907\t__label_697:\n02908\t\n02909\tdouble __DUMMY_697;\n02910\t__label_699:\n02911\t\n02912\tdouble __DUMMY_699;\n02913\t__label_701:\n02914\t\n02915\tdouble __DUMMY_701;\n02916\t__label_703:\n02917\t\n02918\tdouble __DUMMY_703;\n02919\t__label_705:\n02920\t\n02921\tdouble __DUMMY_705;\n02922\t__label_707:\n02923\t\n02924\tdouble __DUMMY_707;\n02925\t__label_709:\n02926\t\n02927\tdouble __DUMMY_709;\n02928\t__label_711:\n02929\t\n02930\tdouble __DUMMY_711;\n02931\t__label_713:\n02932\t\n02933\tdouble __DUMMY_713;\n02934\t__label_715:\n02935\t\n02936\tdouble __DUMMY_715;\n02937\t__label_717:\n02938\t\n02939\tdouble __DUMMY_717;\n02940\t__label_719:\n02941\t\n02942\tdouble __DUMMY_719;\n02943\t__label_721:\n02944\t\n02945\tdouble __DUMMY_721;\n02946\t__label_723:\n02947\t\n02948\tdouble __DUMMY_723;\n02949\t__label_725:\n02950\t\n02951\tdouble __DUMMY_725;\n02952\t__label_727:\n02953\t\n02954\tdouble __DUMMY_727;\n02955\t__label_729:\n02956\t\n02957\tdouble __DUMMY_729;\n02958\t__label_731:\n02959\t\n02960\tdouble __DUMMY_731;\n02961\t__label_733:\n02962\t\n02963\tdouble __DUMMY_733;\n02964\t__label_735:\n02965\t\n02966\tdouble __DUMMY_735;\n02967\t__label_737:\n02968\t\n02969\tdouble __DUMMY_737;\n02970\t__label_739:\n02971\t\n02972\tdouble __DUMMY_739;\n02973\t__label_741:\n02974\t\n02975\tdouble __DUMMY_741;\n02976\t__label_743:\n02977\t\n02978\tdouble __DUMMY_743;\n02979\t__label_745:\n02980\t\n02981\tdouble __DUMMY_745;\n02982\t__label_747:\n02983\t\n02984\tdouble __DUMMY_747;\n02985\t__label_749:\n02986\t\n02987\tdouble __DUMMY_749;\n02988\t__label_751:\n02989\t\n02990\tdouble __DUMMY_751;\n02991\t__label_753:\n02992\t\n02993\tdouble __DUMMY_753;\n02994\t__label_755:\n02995\t\n02996\tdouble __DUMMY_755;\n02997\t__label_757:\n02998\t\n02999\tdouble __DUMMY_757;\n03000\t__label_759:\n03001\t\n03002\tdouble __DUMMY_759;\n03003\t__label_761:\n03004\t\n03005\tdouble __DUMMY_761;\n03006\t__label_763:\n03007\t\n03008\tdouble __DUMMY_763;\n03009\t__label_765:\n03010\t\n03011\tdouble __DUMMY_765;\n03012\t__label_767:\n03013\t\n03014\tdouble __DUMMY_767;\n03015\t__label_769:\n03016\t\n03017\tdouble __DUMMY_769;\n03018\t__label_771:\n03019\t\n03020\tdouble __DUMMY_771;\n03021\t__label_773:\n03022\t\n03023\tdouble __DUMMY_773;\n03024\t__label_775:\n03025\t\n03026\tdouble __DUMMY_775;\n03027\t__label_777:\n03028\t\n03029\tdouble __DUMMY_777;\n03030\t__label_779:\n03031\t\n03032\tdouble __DUMMY_779;\n03033\t__label_781:\n03034\t\n03035\tdouble __DUMMY_781;\n03036\t__label_783:\n03037\t\n03038\tdouble __DUMMY_783;\n03039\t__label_785:\n03040\t\n03041\tdouble __DUMMY_785;\n03042\t__label_787:\n03043\t\n03044\tdouble __DUMMY_787;\n03045\t__label_789:\n03046\t\n03047\tdouble __DUMMY_789;\n03048\t__label_791:\n03049\t\n03050\tdouble __DUMMY_791;\n03051\t__label_793:\n03052\t\n03053\tdouble __DUMMY_793;\n03054\t__label_795:\n03055\t\n03056\tdouble __DUMMY_795;\n03057\t__label_797:\n03058\t\n03059\tdouble __DUMMY_797;\n03060\t__label_799:\n03061\t\n03062\tdouble __DUMMY_799;\n03063\t__label_801:\n03064\t\n03065\tdouble __DUMMY_801;\n03066\t__label_803:\n03067\t\n03068\tdouble __DUMMY_803;\n03069\t__label_805:\n03070\t\n03071\tdouble __DUMMY_805;\n03072\t__label_807:\n03073\t\n03074\tdouble __DUMMY_807;\n03075\t__label_809:\n03076\t\n03077\tdouble __DUMMY_809;\n03078\t__label_811:\n03079\t\n03080\tdouble __DUMMY_811;\n03081\t__label_813:\n03082\t\n03083\tdouble __DUMMY_813;\n03084\t__label_815:\n03085\t\n03086\tdouble __DUMMY_815;\n03087\t__label_817:\n03088\t\n03089\tdouble __DUMMY_817;\n03090\t__label_819:\n03091\t\n03092\tdouble __DUMMY_819;\n03093\t__label_821:\n03094\t\n03095\tdouble __DUMMY_821;\n03096\t__label_823:\n03097\t\n03098\tdouble __DUMMY_823;\n03099\t__label_825:\n03100\t\n03101\tdouble __DUMMY_825;\n03102\t__label_827:\n03103\t\n03104\tdouble __DUMMY_827;\n03105\t__label_829:\n03106\t\n03107\tdouble __DUMMY_829;\n03108\t__label_831:\n03109\t\n03110\tdouble __DUMMY_831;\n03111\t__label_833:\n03112\t\n03113\tdouble __DUMMY_833;\n03114\t__label_835:\n03115\t\n03116\tdouble __DUMMY_835;\n03117\t__label_837:\n03118\t\n03119\tdouble __DUMMY_837;\n03120\t__label_839:\n03121\t\n03122\tdouble __DUMMY_839;\n03123\t__label_841:\n03124\t\n03125\tdouble __DUMMY_841;\n03126\t__label_843:\n03127\t\n03128\tdouble __DUMMY_843;\n03129\t__label_845:\n03130\t\n03131\tdouble __DUMMY_845;\n03132\t__label_847:\n03133\t\n03134\tdouble __DUMMY_847;\n03135\t__label_849:\n03136\t\n03137\tdouble __DUMMY_849;\n03138\t__label_851:\n03139\t\n03140\tdouble __DUMMY_851;\n03141\t__label_853:\n03142\t\n03143\tdouble __DUMMY_853;\n03144\t__label_855:\n03145\t\n03146\tdouble __DUMMY_855;\n03147\t__label_857:\n03148\t\n03149\tdouble __DUMMY_857;\n03150\t__label_859:\n03151\t\n03152\tdouble __DUMMY_859;\n03153\t__label_861:\n03154\t\n03155\tdouble __DUMMY_861;\n03156\t__label_863:\n03157\t\n03158\tdouble __DUMMY_863;\n03159\t__label_865:\n03160\t\n03161\tdouble __DUMMY_865;\n03162\t__label_867:\n03163\t\n03164\tdouble __DUMMY_867;\n03165\t__label_869:\n03166\t\n03167\tdouble __DUMMY_869;\n03168\t__label_871:\n03169\t\n03170\tdouble __DUMMY_871;\n03171\t__label_873:\n03172\t\n03173\tdouble __DUMMY_873;\n03174\t__label_875:\n03175\t\n03176\tdouble __DUMMY_875;\n03177\t__label_877:\n03178\t\n03179\tdouble __DUMMY_877;\n03180\t__label_879:\n03181\t\n03182\tdouble __DUMMY_879;\n03183\t__label_881:\n03184\t\n03185\tdouble __DUMMY_881;\n03186\t__label_883:\n03187\t\n03188\tdouble __DUMMY_883;\n03189\t__label_885:\n03190\t\n03191\tdouble __DUMMY_885;\n03192\t__label_887:\n03193\t\n03194\tdouble __DUMMY_887;\n03195\t__label_889:\n03196\t\n03197\tdouble __DUMMY_889;\n03198\t__label_891:\n03199\t\n03200\tdouble __DUMMY_891;\n03201\t__label_893:\n03202\t\n03203\tdouble __DUMMY_893;\n03204\t__label_895:\n03205\t\n03206\tdouble __DUMMY_895;\n03207\t__label_897:\n03208\t\n03209\tdouble __DUMMY_897;\n03210\t__label_899:\n03211\t\n03212\tdouble __DUMMY_899;\n03213\t__label_901:\n03214\t\n03215\tdouble __DUMMY_901;\n03216\t__label_903:\n03217\t\n03218\tdouble __DUMMY_903;\n03219\t__label_905:\n03220\t\n03221\tdouble __DUMMY_905;\n03222\t__label_907:\n03223\t\n03224\tdouble __DUMMY_907;\n03225\t__label_909:\n03226\t\n03227\tdouble __DUMMY_909;\n03228\t__label_912:\n03229\t\n03230\tdouble __DUMMY_912;\n03231\t\n03232\t Py_XDECREF(this->storage_V3);\n03233\tPy_XDECREF(this->storage_V5);\n03234\tPy_XDECREF(this->storage_V7);\n03235\tPy_XDECREF(this->storage_V9);\n03236\tPy_XDECREF(this->storage_V11);\n03237\tPy_XDECREF(this->storage_V13);\n03238\tPy_XDECREF(this->storage_V15);\n03239\tPy_XDECREF(this->storage_V17);\n03240\tPy_XDECREF(this->storage_V19);\n03241\tPy_XDECREF(this->storage_V21);\n03242\tPy_XDECREF(this->storage_V23);\n03243\tPy_XDECREF(this->storage_V25);\n03244\tPy_XDECREF(this->storage_V27);\n03245\tPy_XDECREF(this->storage_V29);\n03246\tPy_XDECREF(this->storage_V31);\n03247\tPy_XDECREF(this->storage_V33);\n03248\tPy_XDECREF(this->storage_V35);\n03249\tPy_XDECREF(this->storage_V37);\n03250\tPy_XDECREF(this->storage_V39);\n03251\tPy_XDECREF(this->storage_V41);\n03252\tPy_XDECREF(this->storage_V43);\n03253\tPy_XDECREF(this->storage_V45);\n03254\tPy_XDECREF(this->storage_V47);\n03255\tPy_XDECREF(this->storage_V49);\n03256\tPy_XDECREF(this->storage_V51);\n03257\tPy_XDECREF(this->storage_V53);\n03258\tPy_XDECREF(this->storage_V55);\n03259\tPy_XDECREF(this->storage_V57);\n03260\tPy_XDECREF(this->storage_V59);\n03261\tPy_XDECREF(this->storage_V61);\n03262\tPy_XDECREF(this->storage_V63);\n03263\tPy_XDECREF(this->storage_V65);\n03264\tPy_XDECREF(this->storage_V67);\n03265\tPy_XDECREF(this->storage_V69);\n03266\tPy_XDECREF(this->storage_V71);\n03267\tPy_XDECREF(this->storage_V73);\n03268\tPy_XDECREF(this->storage_V75);\n03269\tPy_XDECREF(this->storage_V77);\n03270\tPy_XDECREF(this->storage_V79);\n03271\tPy_XDECREF(this->storage_V81);\n03272\tPy_XDECREF(this->storage_V83);\n03273\tPy_XDECREF(this->storage_V85);\n03274\tPy_XDECREF(this->storage_V87);\n03275\tPy_XDECREF(this->storage_V89);\n03276\tPy_XDECREF(this->storage_V91);\n03277\tPy_XDECREF(this->storage_V93);\n03278\tPy_XDECREF(this->storage_V95);\n03279\tPy_XDECREF(this->storage_V97);\n03280\tPy_XDECREF(this->storage_V99);\n03281\tPy_XDECREF(this->storage_V101);\n03282\tPy_XDECREF(this->storage_V103);\n03283\tPy_XDECREF(this->storage_V105);\n03284\tPy_XDECREF(this->storage_V107);\n03285\tPy_XDECREF(this->storage_V109);\n03286\tPy_XDECREF(this->storage_V111);\n03287\tPy_XDECREF(this->storage_V113);\n03288\tPy_XDECREF(this->storage_V115);\n03289\tPy_XDECREF(this->storage_V117);\n03290\tPy_XDECREF(this->storage_V119);\n03291\tPy_XDECREF(this->storage_V121);\n03292\tPy_XDECREF(this->storage_V123);\n03293\tPy_XDECREF(this->storage_V125);\n03294\tPy_XDECREF(this->storage_V127);\n03295\tPy_XDECREF(this->storage_V129);\n03296\tPy_XDECREF(this->storage_V131);\n03297\tPy_XDECREF(this->storage_V133);\n03298\tPy_XDECREF(this->storage_V135);\n03299\tPy_XDECREF(this->storage_V137);\n03300\tPy_XDECREF(this->storage_V139);\n03301\tPy_XDECREF(this->storage_V141);\n03302\tPy_XDECREF(this->storage_V143);\n03303\tPy_XDECREF(this->storage_V145);\n03304\tPy_XDECREF(this->storage_V147);\n03305\tPy_XDECREF(this->storage_V149);\n03306\tPy_XDECREF(this->storage_V151);\n03307\tPy_XDECREF(this->storage_V153);\n03308\tPy_XDECREF(this->storage_V155);\n03309\tPy_XDECREF(this->storage_V157);\n03310\tPy_XDECREF(this->storage_V159);\n03311\tPy_XDECREF(this->storage_V161);\n03312\tPy_XDECREF(this->storage_V163);\n03313\tPy_XDECREF(this->storage_V165);\n03314\tPy_XDECREF(this->storage_V167);\n03315\tPy_XDECREF(this->storage_V169);\n03316\tPy_XDECREF(this->storage_V171);\n03317\tPy_XDECREF(this->storage_V173);\n03318\tPy_XDECREF(this->storage_V175);\n03319\tPy_XDECREF(this->storage_V177);\n03320\tPy_XDECREF(this->storage_V179);\n03321\tPy_XDECREF(this->storage_V181);\n03322\tPy_XDECREF(this->storage_V183);\n03323\tPy_XDECREF(this->storage_V185);\n03324\tPy_XDECREF(this->storage_V187);\n03325\tPy_XDECREF(this->storage_V189);\n03326\tPy_XDECREF(this->storage_V191);\n03327\tPy_XDECREF(this->storage_V193);\n03328\tPy_XDECREF(this->storage_V195);\n03329\tPy_XDECREF(this->storage_V197);\n03330\tPy_XDECREF(this->storage_V199);\n03331\tPy_XDECREF(this->storage_V201);\n03332\tPy_XDECREF(this->storage_V203);\n03333\tPy_XDECREF(this->storage_V205);\n03334\tPy_XDECREF(this->storage_V207);\n03335\tPy_XDECREF(this->storage_V209);\n03336\tPy_XDECREF(this->storage_V211);\n03337\tPy_XDECREF(this->storage_V213);\n03338\tPy_XDECREF(this->storage_V215);\n03339\tPy_XDECREF(this->storage_V217);\n03340\tPy_XDECREF(this->storage_V219);\n03341\tPy_XDECREF(this->storage_V221);\n03342\tPy_XDECREF(this->storage_V223);\n03343\tPy_XDECREF(this->storage_V225);\n03344\tPy_XDECREF(this->storage_V227);\n03345\tPy_XDECREF(this->storage_V229);\n03346\tPy_XDECREF(this->storage_V231);\n03347\tPy_XDECREF(this->storage_V233);\n03348\tPy_XDECREF(this->storage_V235);\n03349\tPy_XDECREF(this->storage_V237);\n03350\tPy_XDECREF(this->storage_V239);\n03351\tPy_XDECREF(this->storage_V241);\n03352\tPy_XDECREF(this->storage_V243);\n03353\tPy_XDECREF(this->storage_V245);\n03354\tPy_XDECREF(this->storage_V247);\n03355\tPy_XDECREF(this->storage_V249);\n03356\tPy_XDECREF(this->storage_V251);\n03357\tPy_XDECREF(this->storage_V253);\n03358\tPy_XDECREF(this->storage_V255);\n03359\tPy_XDECREF(this->storage_V257);\n03360\tPy_XDECREF(this->storage_V259);\n03361\tPy_XDECREF(this->storage_V261);\n03362\tPy_XDECREF(this->storage_V263);\n03363\tPy_XDECREF(this->storage_V265);\n03364\tPy_XDECREF(this->storage_V267);\n03365\tPy_XDECREF(this->storage_V269);\n03366\tPy_XDECREF(this->storage_V271);\n03367\tPy_XDECREF(this->storage_V273);\n03368\tPy_XDECREF(this->storage_V275);\n03369\tPy_XDECREF(this->storage_V277);\n03370\tPy_XDECREF(this->storage_V279);\n03371\tPy_XDECREF(this->storage_V281);\n03372\tPy_XDECREF(this->storage_V283);\n03373\tPy_XDECREF(this->storage_V285);\n03374\tPy_XDECREF(this->storage_V287);\n03375\tPy_XDECREF(this->storage_V289);\n03376\tPy_XDECREF(this->storage_V291);\n03377\tPy_XDECREF(this->storage_V293);\n03378\tPy_XDECREF(this->storage_V295);\n03379\tPy_XDECREF(this->storage_V297);\n03380\tPy_XDECREF(this->storage_V299);\n03381\tPy_XDECREF(this->storage_V301);\n03382\tPy_XDECREF(this->storage_V303);\n03383\tPy_XDECREF(this->storage_V305);\n03384\tPy_XDECREF(this->storage_V307);\n03385\tPy_XDECREF(this->storage_V309);\n03386\tPy_XDECREF(this->storage_V311);\n03387\tPy_XDECREF(this->storage_V313);\n03388\tPy_XDECREF(this->storage_V315);\n03389\tPy_XDECREF(this->storage_V317);\n03390\tPy_XDECREF(this->storage_V319);\n03391\tPy_XDECREF(this->storage_V321);\n03392\tPy_XDECREF(this->storage_V323);\n03393\tPy_XDECREF(this->storage_V325);\n03394\tPy_XDECREF(this->storage_V327);\n03395\tPy_XDECREF(this->storage_V329);\n03396\tPy_XDECREF(this->storage_V331);\n03397\tPy_XDECREF(this->storage_V333);\n03398\tPy_XDECREF(this->storage_V335);\n03399\tPy_XDECREF(this->storage_V337);\n03400\tPy_XDECREF(this->storage_V339);\n03401\tPy_XDECREF(this->storage_V341);\n03402\tPy_XDECREF(this->storage_V343);\n03403\tPy_XDECREF(this->storage_V345);\n03404\tPy_XDECREF(this->storage_V347);\n03405\tPy_XDECREF(this->storage_V349);\n03406\tPy_XDECREF(this->storage_V351);\n03407\tPy_XDECREF(this->storage_V353);\n03408\tPy_XDECREF(this->storage_V355);\n03409\tPy_XDECREF(this->storage_V357);\n03410\tPy_XDECREF(this->storage_V359);\n03411\tPy_XDECREF(this->storage_V361);\n03412\tPy_XDECREF(this->storage_V363);\n03413\tPy_XDECREF(this->storage_V365);\n03414\tPy_XDECREF(this->storage_V367);\n03415\tPy_XDECREF(this->storage_V369);\n03416\tPy_XDECREF(this->storage_V371);\n03417\tPy_XDECREF(this->storage_V373);\n03418\tPy_XDECREF(this->storage_V375);\n03419\tPy_XDECREF(this->storage_V377);\n03420\tPy_XDECREF(this->storage_V379);\n03421\tPy_XDECREF(this->storage_V381);\n03422\tPy_XDECREF(this->storage_V383);\n03423\tPy_XDECREF(this->storage_V385);\n03424\tPy_XDECREF(this->storage_V387);\n03425\tPy_XDECREF(this->storage_V389);\n03426\tPy_XDECREF(this->storage_V391);\n03427\tPy_XDECREF(this->storage_V393);\n03428\tPy_XDECREF(this->storage_V395);\n03429\tPy_XDECREF(this->storage_V397);\n03430\tPy_XDECREF(this->storage_V399);\n03431\tPy_XDECREF(this->storage_V401);\n03432\tPy_XDECREF(this->storage_V403);\n03433\tPy_XDECREF(this->storage_V405);\n03434\tPy_XDECREF(this->storage_V407);\n03435\tPy_XDECREF(this->storage_V409);\n03436\tPy_XDECREF(this->storage_V411);\n03437\tPy_XDECREF(this->storage_V413);\n03438\tPy_XDECREF(this->storage_V415);\n03439\tPy_XDECREF(this->storage_V417);\n03440\tPy_XDECREF(this->storage_V419);\n03441\tPy_XDECREF(this->storage_V421);\n03442\tPy_XDECREF(this->storage_V423);\n03443\tPy_XDECREF(this->storage_V425);\n03444\tPy_XDECREF(this->storage_V427);\n03445\tPy_XDECREF(this->storage_V429);\n03446\tPy_XDECREF(this->storage_V431);\n03447\tPy_XDECREF(this->storage_V433);\n03448\tPy_XDECREF(this->storage_V435);\n03449\tPy_XDECREF(this->storage_V437);\n03450\tPy_XDECREF(this->storage_V439);\n03451\tPy_XDECREF(this->storage_V441);\n03452\tPy_XDECREF(this->storage_V443);\n03453\tPy_XDECREF(this->storage_V445);\n03454\tPy_XDECREF(this->storage_V447);\n03455\tPy_XDECREF(this->storage_V449);\n03456\tPy_XDECREF(this->storage_V451);\n03457\tPy_XDECREF(this->storage_V453);\n03458\tPy_XDECREF(this->storage_V455);\n03459\tPy_XDECREF(this->storage_V457);\n03460\tPy_XDECREF(this->storage_V459);\n03461\tPy_XDECREF(this->storage_V461);\n03462\tPy_XDECREF(this->storage_V463);\n03463\tPy_XDECREF(this->storage_V465);\n03464\tPy_XDECREF(this->storage_V467);\n03465\tPy_XDECREF(this->storage_V469);\n03466\tPy_XDECREF(this->storage_V471);\n03467\tPy_XDECREF(this->storage_V473);\n03468\tPy_XDECREF(this->storage_V475);\n03469\tPy_XDECREF(this->storage_V477);\n03470\tPy_XDECREF(this->storage_V479);\n03471\tPy_XDECREF(this->storage_V481);\n03472\tPy_XDECREF(this->storage_V483);\n03473\tPy_XDECREF(this->storage_V485);\n03474\tPy_XDECREF(this->storage_V487);\n03475\tPy_XDECREF(this->storage_V489);\n03476\tPy_XDECREF(this->storage_V491);\n03477\tPy_XDECREF(this->storage_V493);\n03478\tPy_XDECREF(this->storage_V495);\n03479\tPy_XDECREF(this->storage_V497);\n03480\tPy_XDECREF(this->storage_V499);\n03481\tPy_XDECREF(this->storage_V501);\n03482\tPy_XDECREF(this->storage_V503);\n03483\tPy_XDECREF(this->storage_V505);\n03484\tPy_XDECREF(this->storage_V507);\n03485\tPy_XDECREF(this->storage_V509);\n03486\tPy_XDECREF(this->storage_V511);\n03487\tPy_XDECREF(this->storage_V513);\n03488\tPy_XDECREF(this->storage_V515);\n03489\tPy_XDECREF(this->storage_V517);\n03490\tPy_XDECREF(this->storage_V519);\n03491\tPy_XDECREF(this->storage_V521);\n03492\tPy_XDECREF(this->storage_V523);\n03493\tPy_XDECREF(this->storage_V525);\n03494\tPy_XDECREF(this->storage_V527);\n03495\tPy_XDECREF(this->storage_V529);\n03496\tPy_XDECREF(this->storage_V531);\n03497\tPy_XDECREF(this->storage_V533);\n03498\tPy_XDECREF(this->storage_V535);\n03499\tPy_XDECREF(this->storage_V537);\n03500\tPy_XDECREF(this->storage_V539);\n03501\tPy_XDECREF(this->storage_V541);\n03502\tPy_XDECREF(this->storage_V543);\n03503\tPy_XDECREF(this->storage_V545);\n03504\tPy_XDECREF(this->storage_V547);\n03505\tPy_XDECREF(this->storage_V549);\n03506\tPy_XDECREF(this->storage_V551);\n03507\tPy_XDECREF(this->storage_V553);\n03508\tPy_XDECREF(this->storage_V555);\n03509\tPy_XDECREF(this->storage_V557);\n03510\tPy_XDECREF(this->storage_V559);\n03511\tPy_XDECREF(this->storage_V561);\n03512\tPy_XDECREF(this->storage_V563);\n03513\tPy_XDECREF(this->storage_V565);\n03514\tPy_XDECREF(this->storage_V567);\n03515\tPy_XDECREF(this->storage_V569);\n03516\tPy_XDECREF(this->storage_V571);\n03517\tPy_XDECREF(this->storage_V573);\n03518\tPy_XDECREF(this->storage_V575);\n03519\tPy_XDECREF(this->storage_V577);\n03520\tPy_XDECREF(this->storage_V579);\n03521\tPy_XDECREF(this->storage_V581);\n03522\tPy_XDECREF(this->storage_V583);\n03523\tPy_XDECREF(this->storage_V585);\n03524\tPy_XDECREF(this->storage_V587);\n03525\tPy_XDECREF(this->storage_V589);\n03526\tPy_XDECREF(this->storage_V591);\n03527\tPy_XDECREF(this->storage_V593);\n03528\tPy_XDECREF(this->storage_V595);\n03529\tPy_XDECREF(this->storage_V597);\n03530\tPy_XDECREF(this->storage_V599);\n03531\tPy_XDECREF(this->storage_V601);\n03532\tPy_XDECREF(this->storage_V603);\n03533\tPy_XDECREF(this->storage_V605);\n03534\tPy_XDECREF(this->storage_V607);\n03535\tPy_XDECREF(this->storage_V609);\n03536\tPy_XDECREF(this->storage_V611);\n03537\tPy_XDECREF(this->storage_V613);\n03538\tPy_XDECREF(this->storage_V615);\n03539\tPy_XDECREF(this->storage_V617);\n03540\tPy_XDECREF(this->storage_V619);\n03541\tPy_XDECREF(this->storage_V621);\n03542\tPy_XDECREF(this->storage_V623);\n03543\tPy_XDECREF(this->storage_V625);\n03544\tPy_XDECREF(this->storage_V627);\n03545\tPy_XDECREF(this->storage_V629);\n03546\tPy_XDECREF(this->storage_V631);\n03547\tPy_XDECREF(this->storage_V633);\n03548\tPy_XDECREF(this->storage_V635);\n03549\tPy_XDECREF(this->storage_V637);\n03550\tPy_XDECREF(this->storage_V639);\n03551\tPy_XDECREF(this->storage_V641);\n03552\tPy_XDECREF(this->storage_V643);\n03553\tPy_XDECREF(this->storage_V645);\n03554\tPy_XDECREF(this->storage_V647);\n03555\tPy_XDECREF(this->storage_V649);\n03556\tPy_XDECREF(this->storage_V651);\n03557\tPy_XDECREF(this->storage_V653);\n03558\tPy_XDECREF(this->storage_V655);\n03559\tPy_XDECREF(this->storage_V657);\n03560\tPy_XDECREF(this->storage_V659);\n03561\tPy_XDECREF(this->storage_V661);\n03562\tPy_XDECREF(this->storage_V663);\n03563\tPy_XDECREF(this->storage_V665);\n03564\tPy_XDECREF(this->storage_V667);\n03565\tPy_XDECREF(this->storage_V669);\n03566\tPy_XDECREF(this->storage_V671);\n03567\tPy_XDECREF(this->storage_V673);\n03568\tPy_XDECREF(this->storage_V675);\n03569\tPy_XDECREF(this->storage_V677);\n03570\tPy_XDECREF(this->storage_V679);\n03571\tPy_XDECREF(this->storage_V681);\n03572\tPy_XDECREF(this->storage_V683);\n03573\tPy_XDECREF(this->storage_V685);\n03574\tPy_XDECREF(this->storage_V687);\n03575\tPy_XDECREF(this->storage_V689);\n03576\tPy_XDECREF(this->storage_V691);\n03577\tPy_XDECREF(this->storage_V693);\n03578\tPy_XDECREF(this->storage_V695);\n03579\tPy_XDECREF(this->storage_V697);\n03580\tPy_XDECREF(this->storage_V699);\n03581\tPy_XDECREF(this->storage_V701);\n03582\tPy_XDECREF(this->storage_V703);\n03583\tPy_XDECREF(this->storage_V705);\n03584\tPy_XDECREF(this->storage_V707);\n03585\tPy_XDECREF(this->storage_V709);\n03586\tPy_XDECREF(this->storage_V711);\n03587\tPy_XDECREF(this->storage_V713);\n03588\tPy_XDECREF(this->storage_V715);\n03589\tPy_XDECREF(this->storage_V717);\n03590\tPy_XDECREF(this->storage_V719);\n03591\tPy_XDECREF(this->storage_V721);\n03592\tPy_XDECREF(this->storage_V723);\n03593\tPy_XDECREF(this->storage_V725);\n03594\tPy_XDECREF(this->storage_V727);\n03595\tPy_XDECREF(this->storage_V729);\n03596\tPy_XDECREF(this->storage_V731);\n03597\tPy_XDECREF(this->storage_V733);\n03598\tPy_XDECREF(this->storage_V735);\n03599\tPy_XDECREF(this->storage_V737);\n03600\tPy_XDECREF(this->storage_V739);\n03601\tPy_XDECREF(this->storage_V741);\n03602\tPy_XDECREF(this->storage_V743);\n03603\tPy_XDECREF(this->storage_V745);\n03604\tPy_XDECREF(this->storage_V747);\n03605\tPy_XDECREF(this->storage_V749);\n03606\tPy_XDECREF(this->storage_V751);\n03607\tPy_XDECREF(this->storage_V753);\n03608\tPy_XDECREF(this->storage_V755);\n03609\tPy_XDECREF(this->storage_V757);\n03610\tPy_XDECREF(this->storage_V759);\n03611\tPy_XDECREF(this->storage_V761);\n03612\tPy_XDECREF(this->storage_V763);\n03613\tPy_XDECREF(this->storage_V765);\n03614\tPy_XDECREF(this->storage_V767);\n03615\tPy_XDECREF(this->storage_V769);\n03616\tPy_XDECREF(this->storage_V771);\n03617\tPy_XDECREF(this->storage_V773);\n03618\tPy_XDECREF(this->storage_V775);\n03619\tPy_XDECREF(this->storage_V777);\n03620\tPy_XDECREF(this->storage_V779);\n03621\tPy_XDECREF(this->storage_V781);\n03622\tPy_XDECREF(this->storage_V783);\n03623\tPy_XDECREF(this->storage_V785);\n03624\tPy_XDECREF(this->storage_V787);\n03625\tPy_XDECREF(this->storage_V789);\n03626\tPy_XDECREF(this->storage_V791);\n03627\tPy_XDECREF(this->storage_V793);\n03628\tPy_XDECREF(this->storage_V795);\n03629\tPy_XDECREF(this->storage_V797);\n03630\tPy_XDECREF(this->storage_V799);\n03631\tPy_XDECREF(this->storage_V801);\n03632\tPy_XDECREF(this->storage_V803);\n03633\tPy_XDECREF(this->storage_V805);\n03634\tPy_XDECREF(this->storage_V807);\n03635\tPy_XDECREF(this->storage_V809);\n03636\tPy_XDECREF(this->storage_V811);\n03637\tPy_XDECREF(this->storage_V813);\n03638\tPy_XDECREF(this->storage_V815);\n03639\tPy_XDECREF(this->storage_V817);\n03640\tPy_XDECREF(this->storage_V819);\n03641\tPy_XDECREF(this->storage_V821);\n03642\tPy_XDECREF(this->storage_V823);\n03643\tPy_XDECREF(this->storage_V825);\n03644\tPy_XDECREF(this->storage_V827);\n03645\tPy_XDECREF(this->storage_V829);\n03646\tPy_XDECREF(this->storage_V831);\n03647\tPy_XDECREF(this->storage_V833);\n03648\tPy_XDECREF(this->storage_V835);\n03649\tPy_XDECREF(this->storage_V837);\n03650\tPy_XDECREF(this->storage_V839);\n03651\tPy_XDECREF(this->storage_V841);\n03652\tPy_XDECREF(this->storage_V843);\n03653\tPy_XDECREF(this->storage_V845);\n03654\tPy_XDECREF(this->storage_V847);\n03655\tPy_XDECREF(this->storage_V849);\n03656\tPy_XDECREF(this->storage_V851);\n03657\tPy_XDECREF(this->storage_V853);\n03658\tPy_XDECREF(this->storage_V855);\n03659\tPy_XDECREF(this->storage_V857);\n03660\tPy_XDECREF(this->storage_V859);\n03661\tPy_XDECREF(this->storage_V861);\n03662\tPy_XDECREF(this->storage_V863);\n03663\tPy_XDECREF(this->storage_V865);\n03664\tPy_XDECREF(this->storage_V867);\n03665\tPy_XDECREF(this->storage_V869);\n03666\tPy_XDECREF(this->storage_V871);\n03667\tPy_XDECREF(this->storage_V873);\n03668\tPy_XDECREF(this->storage_V875);\n03669\tPy_XDECREF(this->storage_V877);\n03670\tPy_XDECREF(this->storage_V879);\n03671\tPy_XDECREF(this->storage_V881);\n03672\tPy_XDECREF(this->storage_V883);\n03673\tPy_XDECREF(this->storage_V885);\n03674\tPy_XDECREF(this->storage_V887);\n03675\tPy_XDECREF(this->storage_V889);\n03676\tPy_XDECREF(this->storage_V891);\n03677\tPy_XDECREF(this->storage_V893);\n03678\tPy_XDECREF(this->storage_V895);\n03679\tPy_XDECREF(this->storage_V897);\n03680\tPy_XDECREF(this->storage_V899);\n03681\tPy_XDECREF(this->storage_V901);\n03682\tPy_XDECREF(this->storage_V903);\n03683\tPy_XDECREF(this->storage_V905);\n03684\tPy_XDECREF(this->storage_V907);\n03685\tPy_XDECREF(this->storage_V909);\n03686\tPy_XDECREF(this->storage_V1);\n03687\t }\n03688\t int run(void) {\n03689\t int __failure = 0;\n03690\t \n03691\t PyObject* py_V1;\n03692\t \n03693\t PyArrayObject* V1;\n03694\t \n03695\t typedef npy_float64 dtype_V1;\n03696\t \n03697\t PyObject* py_V3;\n03698\t \n03699\t PyArrayObject* V3;\n03700\t \n03701\t typedef npy_float64 dtype_V3;\n03702\t \n03703\t PyObject* py_V5;\n03704\t \n03705\t PyArrayObject* V5;\n03706\t \n03707\t typedef npy_float64 dtype_V5;\n03708\t \n03709\t PyObject* py_V7;\n03710\t \n03711\t PyArrayObject* V7;\n03712\t \n03713\t typedef npy_float64 dtype_V7;\n03714\t \n03715\t PyObject* py_V9;\n03716\t \n03717\t PyArrayObject* V9;\n03718\t \n03719\t typedef npy_float64 dtype_V9;\n03720\t \n03721\t PyObject* py_V11;\n03722\t \n03723\t PyArrayObject* V11;\n03724\t \n03725\t typedef npy_float64 dtype_V11;\n03726\t \n03727\t PyObject* py_V13;\n03728\t \n03729\t PyArrayObject* V13;\n03730\t \n03731\t typedef npy_float64 dtype_V13;\n03732\t \n03733\t PyObject* py_V15;\n03734\t \n03735\t PyArrayObject* V15;\n03736\t \n03737\t typedef npy_float64 dtype_V15;\n03738\t \n03739\t PyObject* py_V17;\n03740\t \n03741\t PyArrayObject* V17;\n03742\t \n03743\t typedef npy_float64 dtype_V17;\n03744\t \n03745\t PyObject* py_V19;\n03746\t \n03747\t PyArrayObject* V19;\n03748\t \n03749\t typedef npy_float64 dtype_V19;\n03750\t \n03751\t PyObject* py_V21;\n03752\t \n03753\t PyArrayObject* V21;\n03754\t \n03755\t typedef npy_float64 dtype_V21;\n03756\t \n03757\t PyObject* py_V23;\n03758\t \n03759\t PyArrayObject* V23;\n03760\t \n03761\t typedef npy_float64 dtype_V23;\n03762\t \n03763\t PyObject* py_V25;\n03764\t \n03765\t PyArrayObject* V25;\n03766\t \n03767\t typedef npy_float64 dtype_V25;\n03768\t \n03769\t PyObject* py_V27;\n03770\t \n03771\t PyArrayObject* V27;\n03772\t \n03773\t typedef npy_float64 dtype_V27;\n03774\t \n03775\t PyObject* py_V29;\n03776\t \n03777\t PyArrayObject* V29;\n03778\t \n03779\t typedef npy_float64 dtype_V29;\n03780\t \n03781\t PyObject* py_V31;\n03782\t \n03783\t PyArrayObject* V31;\n03784\t \n03785\t typedef npy_float64 dtype_V31;\n03786\t \n03787\t PyObject* py_V33;\n03788\t \n03789\t PyArrayObject* V33;\n03790\t \n03791\t typedef npy_float64 dtype_V33;\n03792\t \n03793\t PyObject* py_V35;\n03794\t \n03795\t PyArrayObject* V35;\n03796\t \n03797\t typedef npy_float64 dtype_V35;\n03798\t \n03799\t PyObject* py_V37;\n03800\t \n03801\t PyArrayObject* V37;\n03802\t \n03803\t typedef npy_float64 dtype_V37;\n03804\t \n03805\t PyObject* py_V39;\n03806\t \n03807\t PyArrayObject* V39;\n03808\t \n03809\t typedef npy_float64 dtype_V39;\n03810\t \n03811\t PyObject* py_V41;\n03812\t \n03813\t PyArrayObject* V41;\n03814\t \n03815\t typedef npy_float64 dtype_V41;\n03816\t \n03817\t PyObject* py_V43;\n03818\t \n03819\t PyArrayObject* V43;\n03820\t \n03821\t typedef npy_float64 dtype_V43;\n03822\t \n03823\t PyObject* py_V45;\n03824\t \n03825\t PyArrayObject* V45;\n03826\t \n03827\t typedef npy_float64 dtype_V45;\n03828\t \n03829\t PyObject* py_V47;\n03830\t \n03831\t PyArrayObject* V47;\n03832\t \n03833\t typedef npy_float64 dtype_V47;\n03834\t \n03835\t PyObject* py_V49;\n03836\t \n03837\t PyArrayObject* V49;\n03838\t \n03839\t typedef npy_float64 dtype_V49;\n03840\t \n03841\t PyObject* py_V51;\n03842\t \n03843\t PyArrayObject* V51;\n03844\t \n03845\t typedef npy_float64 dtype_V51;\n03846\t \n03847\t PyObject* py_V53;\n03848\t \n03849\t PyArrayObject* V53;\n03850\t \n03851\t typedef npy_float64 dtype_V53;\n03852\t \n03853\t PyObject* py_V55;\n03854\t \n03855\t PyArrayObject* V55;\n03856\t \n03857\t typedef npy_float64 dtype_V55;\n03858\t \n03859\t PyObject* py_V57;\n03860\t \n03861\t PyArrayObject* V57;\n03862\t \n03863\t typedef npy_float64 dtype_V57;\n03864\t \n03865\t PyObject* py_V59;\n03866\t \n03867\t PyArrayObject* V59;\n03868\t \n03869\t typedef npy_float64 dtype_V59;\n03870\t \n03871\t PyObject* py_V61;\n03872\t \n03873\t PyArrayObject* V61;\n03874\t \n03875\t typedef npy_float64 dtype_V61;\n03876\t \n03877\t PyObject* py_V63;\n03878\t \n03879\t PyArrayObject* V63;\n03880\t \n03881\t typedef npy_float64 dtype_V63;\n03882\t \n03883\t PyObject* py_V65;\n03884\t \n03885\t PyArrayObject* V65;\n03886\t \n03887\t typedef npy_float64 dtype_V65;\n03888\t \n03889\t PyObject* py_V67;\n03890\t \n03891\t PyArrayObject* V67;\n03892\t \n03893\t typedef npy_float64 dtype_V67;\n03894\t \n03895\t PyObject* py_V69;\n03896\t \n03897\t PyArrayObject* V69;\n03898\t \n03899\t typedef npy_float64 dtype_V69;\n03900\t \n03901\t PyObject* py_V71;\n03902\t \n03903\t PyArrayObject* V71;\n03904\t \n03905\t typedef npy_float64 dtype_V71;\n03906\t \n03907\t PyObject* py_V73;\n03908\t \n03909\t PyArrayObject* V73;\n03910\t \n03911\t typedef npy_float64 dtype_V73;\n03912\t \n03913\t PyObject* py_V75;\n03914\t \n03915\t PyArrayObject* V75;\n03916\t \n03917\t typedef npy_float64 dtype_V75;\n03918\t \n03919\t PyObject* py_V77;\n03920\t \n03921\t PyArrayObject* V77;\n03922\t \n03923\t typedef npy_float64 dtype_V77;\n03924\t \n03925\t PyObject* py_V79;\n03926\t \n03927\t PyArrayObject* V79;\n03928\t \n03929\t typedef npy_float64 dtype_V79;\n03930\t \n03931\t PyObject* py_V81;\n03932\t \n03933\t PyArrayObject* V81;\n03934\t \n03935\t typedef npy_float64 dtype_V81;\n03936\t \n03937\t PyObject* py_V83;\n03938\t \n03939\t PyArrayObject* V83;\n03940\t \n03941\t typedef npy_float64 dtype_V83;\n03942\t \n03943\t PyObject* py_V85;\n03944\t \n03945\t PyArrayObject* V85;\n03946\t \n03947\t typedef npy_float64 dtype_V85;\n03948\t \n03949\t PyObject* py_V87;\n03950\t \n03951\t PyArrayObject* V87;\n03952\t \n03953\t typedef npy_float64 dtype_V87;\n03954\t \n03955\t PyObject* py_V89;\n03956\t \n03957\t PyArrayObject* V89;\n03958\t \n03959\t typedef npy_float64 dtype_V89;\n03960\t \n03961\t PyObject* py_V91;\n03962\t \n03963\t PyArrayObject* V91;\n03964\t \n03965\t typedef npy_float64 dtype_V91;\n03966\t \n03967\t PyObject* py_V93;\n03968\t \n03969\t PyArrayObject* V93;\n03970\t \n03971\t typedef npy_float64 dtype_V93;\n03972\t \n03973\t PyObject* py_V95;\n03974\t \n03975\t PyArrayObject* V95;\n03976\t \n03977\t typedef npy_float64 dtype_V95;\n03978\t \n03979\t PyObject* py_V97;\n03980\t \n03981\t PyArrayObject* V97;\n03982\t \n03983\t typedef npy_float64 dtype_V97;\n03984\t \n03985\t PyObject* py_V99;\n03986\t \n03987\t PyArrayObject* V99;\n03988\t \n03989\t typedef npy_float64 dtype_V99;\n03990\t \n03991\t PyObject* py_V101;\n03992\t \n03993\t PyArrayObject* V101;\n03994\t \n03995\t typedef npy_float64 dtype_V101;\n03996\t \n03997\t PyObject* py_V103;\n03998\t \n03999\t PyArrayObject* V103;\n04000\t \n04001\t typedef npy_float64 dtype_V103;\n04002\t \n04003\t PyObject* py_V105;\n04004\t \n04005\t PyArrayObject* V105;\n04006\t \n04007\t typedef npy_float64 dtype_V105;\n04008\t \n04009\t PyObject* py_V107;\n04010\t \n04011\t PyArrayObject* V107;\n04012\t \n04013\t typedef npy_float64 dtype_V107;\n04014\t \n04015\t PyObject* py_V109;\n04016\t \n04017\t PyArrayObject* V109;\n04018\t \n04019\t typedef npy_float64 dtype_V109;\n04020\t \n04021\t PyObject* py_V111;\n04022\t \n04023\t PyArrayObject* V111;\n04024\t \n04025\t typedef npy_float64 dtype_V111;\n04026\t \n04027\t PyObject* py_V113;\n04028\t \n04029\t PyArrayObject* V113;\n04030\t \n04031\t typedef npy_float64 dtype_V113;\n04032\t \n04033\t PyObject* py_V115;\n04034\t \n04035\t PyArrayObject* V115;\n04036\t \n04037\t typedef npy_float64 dtype_V115;\n04038\t \n04039\t PyObject* py_V117;\n04040\t \n04041\t PyArrayObject* V117;\n04042\t \n04043\t typedef npy_float64 dtype_V117;\n04044\t \n04045\t PyObject* py_V119;\n04046\t \n04047\t PyArrayObject* V119;\n04048\t \n04049\t typedef npy_float64 dtype_V119;\n04050\t \n04051\t PyObject* py_V121;\n04052\t \n04053\t PyArrayObject* V121;\n04054\t \n04055\t typedef npy_float64 dtype_V121;\n04056\t \n04057\t PyObject* py_V123;\n04058\t \n04059\t PyArrayObject* V123;\n04060\t \n04061\t typedef npy_float64 dtype_V123;\n04062\t \n04063\t PyObject* py_V125;\n04064\t \n04065\t PyArrayObject* V125;\n04066\t \n04067\t typedef npy_float64 dtype_V125;\n04068\t \n04069\t PyObject* py_V127;\n04070\t \n04071\t PyArrayObject* V127;\n04072\t \n04073\t typedef npy_float64 dtype_V127;\n04074\t \n04075\t PyObject* py_V129;\n04076\t \n04077\t PyArrayObject* V129;\n04078\t \n04079\t typedef npy_float64 dtype_V129;\n04080\t \n04081\t PyObject* py_V131;\n04082\t \n04083\t PyArrayObject* V131;\n04084\t \n04085\t typedef npy_float64 dtype_V131;\n04086\t \n04087\t PyObject* py_V133;\n04088\t \n04089\t PyArrayObject* V133;\n04090\t \n04091\t typedef npy_float64 dtype_V133;\n04092\t \n04093\t PyObject* py_V135;\n04094\t \n04095\t PyArrayObject* V135;\n04096\t \n04097\t typedef npy_float64 dtype_V135;\n04098\t \n04099\t PyObject* py_V137;\n04100\t \n04101\t PyArrayObject* V137;\n04102\t \n04103\t typedef npy_float64 dtype_V137;\n04104\t \n04105\t PyObject* py_V139;\n04106\t \n04107\t PyArrayObject* V139;\n04108\t \n04109\t typedef npy_float64 dtype_V139;\n04110\t \n04111\t PyObject* py_V141;\n04112\t \n04113\t PyArrayObject* V141;\n04114\t \n04115\t typedef npy_float64 dtype_V141;\n04116\t \n04117\t PyObject* py_V143;\n04118\t \n04119\t PyArrayObject* V143;\n04120\t \n04121\t typedef npy_float64 dtype_V143;\n04122\t \n04123\t PyObject* py_V145;\n04124\t \n04125\t PyArrayObject* V145;\n04126\t \n04127\t typedef npy_float64 dtype_V145;\n04128\t \n04129\t PyObject* py_V147;\n04130\t \n04131\t PyArrayObject* V147;\n04132\t \n04133\t typedef npy_float64 dtype_V147;\n04134\t \n04135\t PyObject* py_V149;\n04136\t \n04137\t PyArrayObject* V149;\n04138\t \n04139\t typedef npy_float64 dtype_V149;\n04140\t \n04141\t PyObject* py_V151;\n04142\t \n04143\t PyArrayObject* V151;\n04144\t \n04145\t typedef npy_float64 dtype_V151;\n04146\t \n04147\t PyObject* py_V153;\n04148\t \n04149\t PyArrayObject* V153;\n04150\t \n04151\t typedef npy_float64 dtype_V153;\n04152\t \n04153\t PyObject* py_V155;\n04154\t \n04155\t PyArrayObject* V155;\n04156\t \n04157\t typedef npy_float64 dtype_V155;\n04158\t \n04159\t PyObject* py_V157;\n04160\t \n04161\t PyArrayObject* V157;\n04162\t \n04163\t typedef npy_float64 dtype_V157;\n04164\t \n04165\t PyObject* py_V159;\n04166\t \n04167\t PyArrayObject* V159;\n04168\t \n04169\t typedef npy_float64 dtype_V159;\n04170\t \n04171\t PyObject* py_V161;\n04172\t \n04173\t PyArrayObject* V161;\n04174\t \n04175\t typedef npy_float64 dtype_V161;\n04176\t \n04177\t PyObject* py_V163;\n04178\t \n04179\t PyArrayObject* V163;\n04180\t \n04181\t typedef npy_float64 dtype_V163;\n04182\t \n04183\t PyObject* py_V165;\n04184\t \n04185\t PyArrayObject* V165;\n04186\t \n04187\t typedef npy_float64 dtype_V165;\n04188\t \n04189\t PyObject* py_V167;\n04190\t \n04191\t PyArrayObject* V167;\n04192\t \n04193\t typedef npy_float64 dtype_V167;\n04194\t \n04195\t PyObject* py_V169;\n04196\t \n04197\t PyArrayObject* V169;\n04198\t \n04199\t typedef npy_float64 dtype_V169;\n04200\t \n04201\t PyObject* py_V171;\n04202\t \n04203\t PyArrayObject* V171;\n04204\t \n04205\t typedef npy_float64 dtype_V171;\n04206\t \n04207\t PyObject* py_V173;\n04208\t \n04209\t PyArrayObject* V173;\n04210\t \n04211\t typedef npy_float64 dtype_V173;\n04212\t \n04213\t PyObject* py_V175;\n04214\t \n04215\t PyArrayObject* V175;\n04216\t \n04217\t typedef npy_float64 dtype_V175;\n04218\t \n04219\t PyObject* py_V177;\n04220\t \n04221\t PyArrayObject* V177;\n04222\t \n04223\t typedef npy_float64 dtype_V177;\n04224\t \n04225\t PyObject* py_V179;\n04226\t \n04227\t PyArrayObject* V179;\n04228\t \n04229\t typedef npy_float64 dtype_V179;\n04230\t \n04231\t PyObject* py_V181;\n04232\t \n04233\t PyArrayObject* V181;\n04234\t \n04235\t typedef npy_float64 dtype_V181;\n04236\t \n04237\t PyObject* py_V183;\n04238\t \n04239\t PyArrayObject* V183;\n04240\t \n04241\t typedef npy_float64 dtype_V183;\n04242\t \n04243\t PyObject* py_V185;\n04244\t \n04245\t PyArrayObject* V185;\n04246\t \n04247\t typedef npy_float64 dtype_V185;\n04248\t \n04249\t PyObject* py_V187;\n04250\t \n04251\t PyArrayObject* V187;\n04252\t \n04253\t typedef npy_float64 dtype_V187;\n04254\t \n04255\t PyObject* py_V189;\n04256\t \n04257\t PyArrayObject* V189;\n04258\t \n04259\t typedef npy_float64 dtype_V189;\n04260\t \n04261\t PyObject* py_V191;\n04262\t \n04263\t PyArrayObject* V191;\n04264\t \n04265\t typedef npy_float64 dtype_V191;\n04266\t \n04267\t PyObject* py_V193;\n04268\t \n04269\t PyArrayObject* V193;\n04270\t \n04271\t typedef npy_float64 dtype_V193;\n04272\t \n04273\t PyObject* py_V195;\n04274\t \n04275\t PyArrayObject* V195;\n04276\t \n04277\t typedef npy_float64 dtype_V195;\n04278\t \n04279\t PyObject* py_V197;\n04280\t \n04281\t PyArrayObject* V197;\n04282\t \n04283\t typedef npy_float64 dtype_V197;\n04284\t \n04285\t PyObject* py_V199;\n04286\t \n04287\t PyArrayObject* V199;\n04288\t \n04289\t typedef npy_float64 dtype_V199;\n04290\t \n04291\t PyObject* py_V201;\n04292\t \n04293\t PyArrayObject* V201;\n04294\t \n04295\t typedef npy_float64 dtype_V201;\n04296\t \n04297\t PyObject* py_V203;\n04298\t \n04299\t PyArrayObject* V203;\n04300\t \n04301\t typedef npy_float64 dtype_V203;\n04302\t \n04303\t PyObject* py_V205;\n04304\t \n04305\t PyArrayObject* V205;\n04306\t \n04307\t typedef npy_float64 dtype_V205;\n04308\t \n04309\t PyObject* py_V207;\n04310\t \n04311\t PyArrayObject* V207;\n04312\t \n04313\t typedef npy_float64 dtype_V207;\n04314\t \n04315\t PyObject* py_V209;\n04316\t \n04317\t PyArrayObject* V209;\n04318\t \n04319\t typedef npy_float64 dtype_V209;\n04320\t \n04321\t PyObject* py_V211;\n04322\t \n04323\t PyArrayObject* V211;\n04324\t \n04325\t typedef npy_float64 dtype_V211;\n04326\t \n04327\t PyObject* py_V213;\n04328\t \n04329\t PyArrayObject* V213;\n04330\t \n04331\t typedef npy_float64 dtype_V213;\n04332\t \n04333\t PyObject* py_V215;\n04334\t \n04335\t PyArrayObject* V215;\n04336\t \n04337\t typedef npy_float64 dtype_V215;\n04338\t \n04339\t PyObject* py_V217;\n04340\t \n04341\t PyArrayObject* V217;\n04342\t \n04343\t typedef npy_float64 dtype_V217;\n04344\t \n04345\t PyObject* py_V219;\n04346\t \n04347\t PyArrayObject* V219;\n04348\t \n04349\t typedef npy_float64 dtype_V219;\n04350\t \n04351\t PyObject* py_V221;\n04352\t \n04353\t PyArrayObject* V221;\n04354\t \n04355\t typedef npy_float64 dtype_V221;\n04356\t \n04357\t PyObject* py_V223;\n04358\t \n04359\t PyArrayObject* V223;\n04360\t \n04361\t typedef npy_float64 dtype_V223;\n04362\t \n04363\t PyObject* py_V225;\n04364\t \n04365\t PyArrayObject* V225;\n04366\t \n04367\t typedef npy_float64 dtype_V225;\n04368\t \n04369\t PyObject* py_V227;\n04370\t \n04371\t PyArrayObject* V227;\n04372\t \n04373\t typedef npy_float64 dtype_V227;\n04374\t \n04375\t PyObject* py_V229;\n04376\t \n04377\t PyArrayObject* V229;\n04378\t \n04379\t typedef npy_float64 dtype_V229;\n04380\t \n04381\t PyObject* py_V231;\n04382\t \n04383\t PyArrayObject* V231;\n04384\t \n04385\t typedef npy_float64 dtype_V231;\n04386\t \n04387\t PyObject* py_V233;\n04388\t \n04389\t PyArrayObject* V233;\n04390\t \n04391\t typedef npy_float64 dtype_V233;\n04392\t \n04393\t PyObject* py_V235;\n04394\t \n04395\t PyArrayObject* V235;\n04396\t \n04397\t typedef npy_float64 dtype_V235;\n04398\t \n04399\t PyObject* py_V237;\n04400\t \n04401\t PyArrayObject* V237;\n04402\t \n04403\t typedef npy_float64 dtype_V237;\n04404\t \n04405\t PyObject* py_V239;\n04406\t \n04407\t PyArrayObject* V239;\n04408\t \n04409\t typedef npy_float64 dtype_V239;\n04410\t \n04411\t PyObject* py_V241;\n04412\t \n04413\t PyArrayObject* V241;\n04414\t \n04415\t typedef npy_float64 dtype_V241;\n04416\t \n04417\t PyObject* py_V243;\n04418\t \n04419\t PyArrayObject* V243;\n04420\t \n04421\t typedef npy_float64 dtype_V243;\n04422\t \n04423\t PyObject* py_V245;\n04424\t \n04425\t PyArrayObject* V245;\n04426\t \n04427\t typedef npy_float64 dtype_V245;\n04428\t \n04429\t PyObject* py_V247;\n04430\t \n04431\t PyArrayObject* V247;\n04432\t \n04433\t typedef npy_float64 dtype_V247;\n04434\t \n04435\t PyObject* py_V249;\n04436\t \n04437\t PyArrayObject* V249;\n04438\t \n04439\t typedef npy_float64 dtype_V249;\n04440\t \n04441\t PyObject* py_V251;\n04442\t \n04443\t PyArrayObject* V251;\n04444\t \n04445\t typedef npy_float64 dtype_V251;\n04446\t \n04447\t PyObject* py_V253;\n04448\t \n04449\t PyArrayObject* V253;\n04450\t \n04451\t typedef npy_float64 dtype_V253;\n04452\t \n04453\t PyObject* py_V255;\n04454\t \n04455\t PyArrayObject* V255;\n04456\t \n04457\t typedef npy_float64 dtype_V255;\n04458\t \n04459\t PyObject* py_V257;\n04460\t \n04461\t PyArrayObject* V257;\n04462\t \n04463\t typedef npy_float64 dtype_V257;\n04464\t \n04465\t PyObject* py_V259;\n04466\t \n04467\t PyArrayObject* V259;\n04468\t \n04469\t typedef npy_float64 dtype_V259;\n04470\t \n04471\t PyObject* py_V261;\n04472\t \n04473\t PyArrayObject* V261;\n04474\t \n04475\t typedef npy_float64 dtype_V261;\n04476\t \n04477\t PyObject* py_V263;\n04478\t \n04479\t PyArrayObject* V263;\n04480\t \n04481\t typedef npy_float64 dtype_V263;\n04482\t \n04483\t PyObject* py_V265;\n04484\t \n04485\t PyArrayObject* V265;\n04486\t \n04487\t typedef npy_float64 dtype_V265;\n04488\t \n04489\t PyObject* py_V267;\n04490\t \n04491\t PyArrayObject* V267;\n04492\t \n04493\t typedef npy_float64 dtype_V267;\n04494\t \n04495\t PyObject* py_V269;\n04496\t \n04497\t PyArrayObject* V269;\n04498\t \n04499\t typedef npy_float64 dtype_V269;\n04500\t \n04501\t PyObject* py_V271;\n04502\t \n04503\t PyArrayObject* V271;\n04504\t \n04505\t typedef npy_float64 dtype_V271;\n04506\t \n04507\t PyObject* py_V273;\n04508\t \n04509\t PyArrayObject* V273;\n04510\t \n04511\t typedef npy_float64 dtype_V273;\n04512\t \n04513\t PyObject* py_V275;\n04514\t \n04515\t PyArrayObject* V275;\n04516\t \n04517\t typedef npy_float64 dtype_V275;\n04518\t \n04519\t PyObject* py_V277;\n04520\t \n04521\t PyArrayObject* V277;\n04522\t \n04523\t typedef npy_float64 dtype_V277;\n04524\t \n04525\t PyObject* py_V279;\n04526\t \n04527\t PyArrayObject* V279;\n04528\t \n04529\t typedef npy_float64 dtype_V279;\n04530\t \n04531\t PyObject* py_V281;\n04532\t \n04533\t PyArrayObject* V281;\n04534\t \n04535\t typedef npy_float64 dtype_V281;\n04536\t \n04537\t PyObject* py_V283;\n04538\t \n04539\t PyArrayObject* V283;\n04540\t \n04541\t typedef npy_float64 dtype_V283;\n04542\t \n04543\t PyObject* py_V285;\n04544\t \n04545\t PyArrayObject* V285;\n04546\t \n04547\t typedef npy_float64 dtype_V285;\n04548\t \n04549\t PyObject* py_V287;\n04550\t \n04551\t PyArrayObject* V287;\n04552\t \n04553\t typedef npy_float64 dtype_V287;\n04554\t \n04555\t PyObject* py_V289;\n04556\t \n04557\t PyArrayObject* V289;\n04558\t \n04559\t typedef npy_float64 dtype_V289;\n04560\t \n04561\t PyObject* py_V291;\n04562\t \n04563\t PyArrayObject* V291;\n04564\t \n04565\t typedef npy_float64 dtype_V291;\n04566\t \n04567\t PyObject* py_V293;\n04568\t \n04569\t PyArrayObject* V293;\n04570\t \n04571\t typedef npy_float64 dtype_V293;\n04572\t \n04573\t PyObject* py_V295;\n04574\t \n04575\t PyArrayObject* V295;\n04576\t \n04577\t typedef npy_float64 dtype_V295;\n04578\t \n04579\t PyObject* py_V297;\n04580\t \n04581\t PyArrayObject* V297;\n04582\t \n04583\t typedef npy_float64 dtype_V297;\n04584\t \n04585\t PyObject* py_V299;\n04586\t \n04587\t PyArrayObject* V299;\n04588\t \n04589\t typedef npy_float64 dtype_V299;\n04590\t \n04591\t PyObject* py_V301;\n04592\t \n04593\t PyArrayObject* V301;\n04594\t \n04595\t typedef npy_float64 dtype_V301;\n04596\t \n04597\t PyObject* py_V303;\n04598\t \n04599\t PyArrayObject* V303;\n04600\t \n04601\t typedef npy_float64 dtype_V303;\n04602\t \n04603\t PyObject* py_V305;\n04604\t \n04605\t PyArrayObject* V305;\n04606\t \n04607\t typedef npy_float64 dtype_V305;\n04608\t \n04609\t PyObject* py_V307;\n04610\t \n04611\t PyArrayObject* V307;\n04612\t \n04613\t typedef npy_float64 dtype_V307;\n04614\t \n04615\t PyObject* py_V309;\n04616\t \n04617\t PyArrayObject* V309;\n04618\t \n04619\t typedef npy_float64 dtype_V309;\n04620\t \n04621\t PyObject* py_V311;\n04622\t \n04623\t PyArrayObject* V311;\n04624\t \n04625\t typedef npy_float64 dtype_V311;\n04626\t \n04627\t PyObject* py_V313;\n04628\t \n04629\t PyArrayObject* V313;\n04630\t \n04631\t typedef npy_float64 dtype_V313;\n04632\t \n04633\t PyObject* py_V315;\n04634\t \n04635\t PyArrayObject* V315;\n04636\t \n04637\t typedef npy_float64 dtype_V315;\n04638\t \n04639\t PyObject* py_V317;\n04640\t \n04641\t PyArrayObject* V317;\n04642\t \n04643\t typedef npy_float64 dtype_V317;\n04644\t \n04645\t PyObject* py_V319;\n04646\t \n04647\t PyArrayObject* V319;\n04648\t \n04649\t typedef npy_float64 dtype_V319;\n04650\t \n04651\t PyObject* py_V321;\n04652\t \n04653\t PyArrayObject* V321;\n04654\t \n04655\t typedef npy_float64 dtype_V321;\n04656\t \n04657\t PyObject* py_V323;\n04658\t \n04659\t PyArrayObject* V323;\n04660\t \n04661\t typedef npy_float64 dtype_V323;\n04662\t \n04663\t PyObject* py_V325;\n04664\t \n04665\t PyArrayObject* V325;\n04666\t \n04667\t typedef npy_float64 dtype_V325;\n04668\t \n04669\t PyObject* py_V327;\n04670\t \n04671\t PyArrayObject* V327;\n04672\t \n04673\t typedef npy_float64 dtype_V327;\n04674\t \n04675\t PyObject* py_V329;\n04676\t \n04677\t PyArrayObject* V329;\n04678\t \n04679\t typedef npy_float64 dtype_V329;\n04680\t \n04681\t PyObject* py_V331;\n04682\t \n04683\t PyArrayObject* V331;\n04684\t \n04685\t typedef npy_float64 dtype_V331;\n04686\t \n04687\t PyObject* py_V333;\n04688\t \n04689\t PyArrayObject* V333;\n04690\t \n04691\t typedef npy_float64 dtype_V333;\n04692\t \n04693\t PyObject* py_V335;\n04694\t \n04695\t PyArrayObject* V335;\n04696\t \n04697\t typedef npy_float64 dtype_V335;\n04698\t \n04699\t PyObject* py_V337;\n04700\t \n04701\t PyArrayObject* V337;\n04702\t \n04703\t typedef npy_float64 dtype_V337;\n04704\t \n04705\t PyObject* py_V339;\n04706\t \n04707\t PyArrayObject* V339;\n04708\t \n04709\t typedef npy_float64 dtype_V339;\n04710\t \n04711\t PyObject* py_V341;\n04712\t \n04713\t PyArrayObject* V341;\n04714\t \n04715\t typedef npy_float64 dtype_V341;\n04716\t \n04717\t PyObject* py_V343;\n04718\t \n04719\t PyArrayObject* V343;\n04720\t \n04721\t typedef npy_float64 dtype_V343;\n04722\t \n04723\t PyObject* py_V345;\n04724\t \n04725\t PyArrayObject* V345;\n04726\t \n04727\t typedef npy_float64 dtype_V345;\n04728\t \n04729\t PyObject* py_V347;\n04730\t \n04731\t PyArrayObject* V347;\n04732\t \n04733\t typedef npy_float64 dtype_V347;\n04734\t \n04735\t PyObject* py_V349;\n04736\t \n04737\t PyArrayObject* V349;\n04738\t \n04739\t typedef npy_float64 dtype_V349;\n04740\t \n04741\t PyObject* py_V351;\n04742\t \n04743\t PyArrayObject* V351;\n04744\t \n04745\t typedef npy_float64 dtype_V351;\n04746\t \n04747\t PyObject* py_V353;\n04748\t \n04749\t PyArrayObject* V353;\n04750\t \n04751\t typedef npy_float64 dtype_V353;\n04752\t \n04753\t PyObject* py_V355;\n04754\t \n04755\t PyArrayObject* V355;\n04756\t \n04757\t typedef npy_float64 dtype_V355;\n04758\t \n04759\t PyObject* py_V357;\n04760\t \n04761\t PyArrayObject* V357;\n04762\t \n04763\t typedef npy_float64 dtype_V357;\n04764\t \n04765\t PyObject* py_V359;\n04766\t \n04767\t PyArrayObject* V359;\n04768\t \n04769\t typedef npy_float64 dtype_V359;\n04770\t \n04771\t PyObject* py_V361;\n04772\t \n04773\t PyArrayObject* V361;\n04774\t \n04775\t typedef npy_float64 dtype_V361;\n04776\t \n04777\t PyObject* py_V363;\n04778\t \n04779\t PyArrayObject* V363;\n04780\t \n04781\t typedef npy_float64 dtype_V363;\n04782\t \n04783\t PyObject* py_V365;\n04784\t \n04785\t PyArrayObject* V365;\n04786\t \n04787\t typedef npy_float64 dtype_V365;\n04788\t \n04789\t PyObject* py_V367;\n04790\t \n04791\t PyArrayObject* V367;\n04792\t \n04793\t typedef npy_float64 dtype_V367;\n04794\t \n04795\t PyObject* py_V369;\n04796\t \n04797\t PyArrayObject* V369;\n04798\t \n04799\t typedef npy_float64 dtype_V369;\n04800\t \n04801\t PyObject* py_V371;\n04802\t \n04803\t PyArrayObject* V371;\n04804\t \n04805\t typedef npy_float64 dtype_V371;\n04806\t \n04807\t PyObject* py_V373;\n04808\t \n04809\t PyArrayObject* V373;\n04810\t \n04811\t typedef npy_float64 dtype_V373;\n04812\t \n04813\t PyObject* py_V375;\n04814\t \n04815\t PyArrayObject* V375;\n04816\t \n04817\t typedef npy_float64 dtype_V375;\n04818\t \n04819\t PyObject* py_V377;\n04820\t \n04821\t PyArrayObject* V377;\n04822\t \n04823\t typedef npy_float64 dtype_V377;\n04824\t \n04825\t PyObject* py_V379;\n04826\t \n04827\t PyArrayObject* V379;\n04828\t \n04829\t typedef npy_float64 dtype_V379;\n04830\t \n04831\t PyObject* py_V381;\n04832\t \n04833\t PyArrayObject* V381;\n04834\t \n04835\t typedef npy_float64 dtype_V381;\n04836\t \n04837\t PyObject* py_V383;\n04838\t \n04839\t PyArrayObject* V383;\n04840\t \n04841\t typedef npy_float64 dtype_V383;\n04842\t \n04843\t PyObject* py_V385;\n04844\t \n04845\t PyArrayObject* V385;\n04846\t \n04847\t typedef npy_float64 dtype_V385;\n04848\t \n04849\t PyObject* py_V387;\n04850\t \n04851\t PyArrayObject* V387;\n04852\t \n04853\t typedef npy_float64 dtype_V387;\n04854\t \n04855\t PyObject* py_V389;\n04856\t \n04857\t PyArrayObject* V389;\n04858\t \n04859\t typedef npy_float64 dtype_V389;\n04860\t \n04861\t PyObject* py_V391;\n04862\t \n04863\t PyArrayObject* V391;\n04864\t \n04865\t typedef npy_float64 dtype_V391;\n04866\t \n04867\t PyObject* py_V393;\n04868\t \n04869\t PyArrayObject* V393;\n04870\t \n04871\t typedef npy_float64 dtype_V393;\n04872\t \n04873\t PyObject* py_V395;\n04874\t \n04875\t PyArrayObject* V395;\n04876\t \n04877\t typedef npy_float64 dtype_V395;\n04878\t \n04879\t PyObject* py_V397;\n04880\t \n04881\t PyArrayObject* V397;\n04882\t \n04883\t typedef npy_float64 dtype_V397;\n04884\t \n04885\t PyObject* py_V399;\n04886\t \n04887\t PyArrayObject* V399;\n04888\t \n04889\t typedef npy_float64 dtype_V399;\n04890\t \n04891\t PyObject* py_V401;\n04892\t \n04893\t PyArrayObject* V401;\n04894\t \n04895\t typedef npy_float64 dtype_V401;\n04896\t \n04897\t PyObject* py_V403;\n04898\t \n04899\t PyArrayObject* V403;\n04900\t \n04901\t typedef npy_float64 dtype_V403;\n04902\t \n04903\t PyObject* py_V405;\n04904\t \n04905\t PyArrayObject* V405;\n04906\t \n04907\t typedef npy_float64 dtype_V405;\n04908\t \n04909\t PyObject* py_V407;\n04910\t \n04911\t PyArrayObject* V407;\n04912\t \n04913\t typedef npy_float64 dtype_V407;\n04914\t \n04915\t PyObject* py_V409;\n04916\t \n04917\t PyArrayObject* V409;\n04918\t \n04919\t typedef npy_float64 dtype_V409;\n04920\t \n04921\t PyObject* py_V411;\n04922\t \n04923\t PyArrayObject* V411;\n04924\t \n04925\t typedef npy_float64 dtype_V411;\n04926\t \n04927\t PyObject* py_V413;\n04928\t \n04929\t PyArrayObject* V413;\n04930\t \n04931\t typedef npy_float64 dtype_V413;\n04932\t \n04933\t PyObject* py_V415;\n04934\t \n04935\t PyArrayObject* V415;\n04936\t \n04937\t typedef npy_float64 dtype_V415;\n04938\t \n04939\t PyObject* py_V417;\n04940\t \n04941\t PyArrayObject* V417;\n04942\t \n04943\t typedef npy_float64 dtype_V417;\n04944\t \n04945\t PyObject* py_V419;\n04946\t \n04947\t PyArrayObject* V419;\n04948\t \n04949\t typedef npy_float64 dtype_V419;\n04950\t \n04951\t PyObject* py_V421;\n04952\t \n04953\t PyArrayObject* V421;\n04954\t \n04955\t typedef npy_float64 dtype_V421;\n04956\t \n04957\t PyObject* py_V423;\n04958\t \n04959\t PyArrayObject* V423;\n04960\t \n04961\t typedef npy_float64 dtype_V423;\n04962\t \n04963\t PyObject* py_V425;\n04964\t \n04965\t PyArrayObject* V425;\n04966\t \n04967\t typedef npy_float64 dtype_V425;\n04968\t \n04969\t PyObject* py_V427;\n04970\t \n04971\t PyArrayObject* V427;\n04972\t \n04973\t typedef npy_float64 dtype_V427;\n04974\t \n04975\t PyObject* py_V429;\n04976\t \n04977\t PyArrayObject* V429;\n04978\t \n04979\t typedef npy_float64 dtype_V429;\n04980\t \n04981\t PyObject* py_V431;\n04982\t \n04983\t PyArrayObject* V431;\n04984\t \n04985\t typedef npy_float64 dtype_V431;\n04986\t \n04987\t PyObject* py_V433;\n04988\t \n04989\t PyArrayObject* V433;\n04990\t \n04991\t typedef npy_float64 dtype_V433;\n04992\t \n04993\t PyObject* py_V435;\n04994\t \n04995\t PyArrayObject* V435;\n04996\t \n04997\t typedef npy_float64 dtype_V435;\n04998\t \n04999\t PyObject* py_V437;\n05000\t \n05001\t PyArrayObject* V437;\n05002\t \n05003\t typedef npy_float64 dtype_V437;\n05004\t \n05005\t PyObject* py_V439;\n05006\t \n05007\t PyArrayObject* V439;\n05008\t \n05009\t typedef npy_float64 dtype_V439;\n05010\t \n05011\t PyObject* py_V441;\n05012\t \n05013\t PyArrayObject* V441;\n05014\t \n05015\t typedef npy_float64 dtype_V441;\n05016\t \n05017\t PyObject* py_V443;\n05018\t \n05019\t PyArrayObject* V443;\n05020\t \n05021\t typedef npy_float64 dtype_V443;\n05022\t \n05023\t PyObject* py_V445;\n05024\t \n05025\t PyArrayObject* V445;\n05026\t \n05027\t typedef npy_float64 dtype_V445;\n05028\t \n05029\t PyObject* py_V447;\n05030\t \n05031\t PyArrayObject* V447;\n05032\t \n05033\t typedef npy_float64 dtype_V447;\n05034\t \n05035\t PyObject* py_V449;\n05036\t \n05037\t PyArrayObject* V449;\n05038\t \n05039\t typedef npy_float64 dtype_V449;\n05040\t \n05041\t PyObject* py_V451;\n05042\t \n05043\t PyArrayObject* V451;\n05044\t \n05045\t typedef npy_float64 dtype_V451;\n05046\t \n05047\t PyObject* py_V453;\n05048\t \n05049\t PyArrayObject* V453;\n05050\t \n05051\t typedef npy_float64 dtype_V453;\n05052\t \n05053\t PyObject* py_V455;\n05054\t \n05055\t PyArrayObject* V455;\n05056\t \n05057\t typedef npy_float64 dtype_V455;\n05058\t \n05059\t PyObject* py_V457;\n05060\t \n05061\t PyArrayObject* V457;\n05062\t \n05063\t typedef npy_float64 dtype_V457;\n05064\t \n05065\t PyObject* py_V459;\n05066\t \n05067\t PyArrayObject* V459;\n05068\t \n05069\t typedef npy_float64 dtype_V459;\n05070\t \n05071\t PyObject* py_V461;\n05072\t \n05073\t PyArrayObject* V461;\n05074\t \n05075\t typedef npy_float64 dtype_V461;\n05076\t \n05077\t PyObject* py_V463;\n05078\t \n05079\t PyArrayObject* V463;\n05080\t \n05081\t typedef npy_float64 dtype_V463;\n05082\t \n05083\t PyObject* py_V465;\n05084\t \n05085\t PyArrayObject* V465;\n05086\t \n05087\t typedef npy_float64 dtype_V465;\n05088\t \n05089\t PyObject* py_V467;\n05090\t \n05091\t PyArrayObject* V467;\n05092\t \n05093\t typedef npy_float64 dtype_V467;\n05094\t \n05095\t PyObject* py_V469;\n05096\t \n05097\t PyArrayObject* V469;\n05098\t \n05099\t typedef npy_float64 dtype_V469;\n05100\t \n05101\t PyObject* py_V471;\n05102\t \n05103\t PyArrayObject* V471;\n05104\t \n05105\t typedef npy_float64 dtype_V471;\n05106\t \n05107\t PyObject* py_V473;\n05108\t \n05109\t PyArrayObject* V473;\n05110\t \n05111\t typedef npy_float64 dtype_V473;\n05112\t \n05113\t PyObject* py_V475;\n05114\t \n05115\t PyArrayObject* V475;\n05116\t \n05117\t typedef npy_float64 dtype_V475;\n05118\t \n05119\t PyObject* py_V477;\n05120\t \n05121\t PyArrayObject* V477;\n05122\t \n05123\t typedef npy_float64 dtype_V477;\n05124\t \n05125\t PyObject* py_V479;\n05126\t \n05127\t PyArrayObject* V479;\n05128\t \n05129\t typedef npy_float64 dtype_V479;\n05130\t \n05131\t PyObject* py_V481;\n05132\t \n05133\t PyArrayObject* V481;\n05134\t \n05135\t typedef npy_float64 dtype_V481;\n05136\t \n05137\t PyObject* py_V483;\n05138\t \n05139\t PyArrayObject* V483;\n05140\t \n05141\t typedef npy_float64 dtype_V483;\n05142\t \n05143\t PyObject* py_V485;\n05144\t \n05145\t PyArrayObject* V485;\n05146\t \n05147\t typedef npy_float64 dtype_V485;\n05148\t \n05149\t PyObject* py_V487;\n05150\t \n05151\t PyArrayObject* V487;\n05152\t \n05153\t typedef npy_float64 dtype_V487;\n05154\t \n05155\t PyObject* py_V489;\n05156\t \n05157\t PyArrayObject* V489;\n05158\t \n05159\t typedef npy_float64 dtype_V489;\n05160\t \n05161\t PyObject* py_V491;\n05162\t \n05163\t PyArrayObject* V491;\n05164\t \n05165\t typedef npy_float64 dtype_V491;\n05166\t \n05167\t PyObject* py_V493;\n05168\t \n05169\t PyArrayObject* V493;\n05170\t \n05171\t typedef npy_float64 dtype_V493;\n05172\t \n05173\t PyObject* py_V495;\n05174\t \n05175\t PyArrayObject* V495;\n05176\t \n05177\t typedef npy_float64 dtype_V495;\n05178\t \n05179\t PyObject* py_V497;\n05180\t \n05181\t PyArrayObject* V497;\n05182\t \n05183\t typedef npy_float64 dtype_V497;\n05184\t \n05185\t PyObject* py_V499;\n05186\t \n05187\t PyArrayObject* V499;\n05188\t \n05189\t typedef npy_float64 dtype_V499;\n05190\t \n05191\t PyObject* py_V501;\n05192\t \n05193\t PyArrayObject* V501;\n05194\t \n05195\t typedef npy_float64 dtype_V501;\n05196\t \n05197\t PyObject* py_V503;\n05198\t \n05199\t PyArrayObject* V503;\n05200\t \n05201\t typedef npy_float64 dtype_V503;\n05202\t \n05203\t PyObject* py_V505;\n05204\t \n05205\t PyArrayObject* V505;\n05206\t \n05207\t typedef npy_float64 dtype_V505;\n05208\t \n05209\t PyObject* py_V507;\n05210\t \n05211\t PyArrayObject* V507;\n05212\t \n05213\t typedef npy_float64 dtype_V507;\n05214\t \n05215\t PyObject* py_V509;\n05216\t \n05217\t PyArrayObject* V509;\n05218\t \n05219\t typedef npy_float64 dtype_V509;\n05220\t \n05221\t PyObject* py_V511;\n05222\t \n05223\t PyArrayObject* V511;\n05224\t \n05225\t typedef npy_float64 dtype_V511;\n05226\t \n05227\t PyObject* py_V513;\n05228\t \n05229\t PyArrayObject* V513;\n05230\t \n05231\t typedef npy_float64 dtype_V513;\n05232\t \n05233\t PyObject* py_V515;\n05234\t \n05235\t PyArrayObject* V515;\n05236\t \n05237\t typedef npy_float64 dtype_V515;\n05238\t \n05239\t PyObject* py_V517;\n05240\t \n05241\t PyArrayObject* V517;\n05242\t \n05243\t typedef npy_float64 dtype_V517;\n05244\t \n05245\t PyObject* py_V519;\n05246\t \n05247\t PyArrayObject* V519;\n05248\t \n05249\t typedef npy_float64 dtype_V519;\n05250\t \n05251\t PyObject* py_V521;\n05252\t \n05253\t PyArrayObject* V521;\n05254\t \n05255\t typedef npy_float64 dtype_V521;\n05256\t \n05257\t PyObject* py_V523;\n05258\t \n05259\t PyArrayObject* V523;\n05260\t \n05261\t typedef npy_float64 dtype_V523;\n05262\t \n05263\t PyObject* py_V525;\n05264\t \n05265\t PyArrayObject* V525;\n05266\t \n05267\t typedef npy_float64 dtype_V525;\n05268\t \n05269\t PyObject* py_V527;\n05270\t \n05271\t PyArrayObject* V527;\n05272\t \n05273\t typedef npy_float64 dtype_V527;\n05274\t \n05275\t PyObject* py_V529;\n05276\t \n05277\t PyArrayObject* V529;\n05278\t \n05279\t typedef npy_float64 dtype_V529;\n05280\t \n05281\t PyObject* py_V531;\n05282\t \n05283\t PyArrayObject* V531;\n05284\t \n05285\t typedef npy_float64 dtype_V531;\n05286\t \n05287\t PyObject* py_V533;\n05288\t \n05289\t PyArrayObject* V533;\n05290\t \n05291\t typedef npy_float64 dtype_V533;\n05292\t \n05293\t PyObject* py_V535;\n05294\t \n05295\t PyArrayObject* V535;\n05296\t \n05297\t typedef npy_float64 dtype_V535;\n05298\t \n05299\t PyObject* py_V537;\n05300\t \n05301\t PyArrayObject* V537;\n05302\t \n05303\t typedef npy_float64 dtype_V537;\n05304\t \n05305\t PyObject* py_V539;\n05306\t \n05307\t PyArrayObject* V539;\n05308\t \n05309\t typedef npy_float64 dtype_V539;\n05310\t \n05311\t PyObject* py_V541;\n05312\t \n05313\t PyArrayObject* V541;\n05314\t \n05315\t typedef npy_float64 dtype_V541;\n05316\t \n05317\t PyObject* py_V543;\n05318\t \n05319\t PyArrayObject* V543;\n05320\t \n05321\t typedef npy_float64 dtype_V543;\n05322\t \n05323\t PyObject* py_V545;\n05324\t \n05325\t PyArrayObject* V545;\n05326\t \n05327\t typedef npy_float64 dtype_V545;\n05328\t \n05329\t PyObject* py_V547;\n05330\t \n05331\t PyArrayObject* V547;\n05332\t \n05333\t typedef npy_float64 dtype_V547;\n05334\t \n05335\t PyObject* py_V549;\n05336\t \n05337\t PyArrayObject* V549;\n05338\t \n05339\t typedef npy_float64 dtype_V549;\n05340\t \n05341\t PyObject* py_V551;\n05342\t \n05343\t PyArrayObject* V551;\n05344\t \n05345\t typedef npy_float64 dtype_V551;\n05346\t \n05347\t PyObject* py_V553;\n05348\t \n05349\t PyArrayObject* V553;\n05350\t \n05351\t typedef npy_float64 dtype_V553;\n05352\t \n05353\t PyObject* py_V555;\n05354\t \n05355\t PyArrayObject* V555;\n05356\t \n05357\t typedef npy_float64 dtype_V555;\n05358\t \n05359\t PyObject* py_V557;\n05360\t \n05361\t PyArrayObject* V557;\n05362\t \n05363\t typedef npy_float64 dtype_V557;\n05364\t \n05365\t PyObject* py_V559;\n05366\t \n05367\t PyArrayObject* V559;\n05368\t \n05369\t typedef npy_float64 dtype_V559;\n05370\t \n05371\t PyObject* py_V561;\n05372\t \n05373\t PyArrayObject* V561;\n05374\t \n05375\t typedef npy_float64 dtype_V561;\n05376\t \n05377\t PyObject* py_V563;\n05378\t \n05379\t PyArrayObject* V563;\n05380\t \n05381\t typedef npy_float64 dtype_V563;\n05382\t \n05383\t PyObject* py_V565;\n05384\t \n05385\t PyArrayObject* V565;\n05386\t \n05387\t typedef npy_float64 dtype_V565;\n05388\t \n05389\t PyObject* py_V567;\n05390\t \n05391\t PyArrayObject* V567;\n05392\t \n05393\t typedef npy_float64 dtype_V567;\n05394\t \n05395\t PyObject* py_V569;\n05396\t \n05397\t PyArrayObject* V569;\n05398\t \n05399\t typedef npy_float64 dtype_V569;\n05400\t \n05401\t PyObject* py_V571;\n05402\t \n05403\t PyArrayObject* V571;\n05404\t \n05405\t typedef npy_float64 dtype_V571;\n05406\t \n05407\t PyObject* py_V573;\n05408\t \n05409\t PyArrayObject* V573;\n05410\t \n05411\t typedef npy_float64 dtype_V573;\n05412\t \n05413\t PyObject* py_V575;\n05414\t \n05415\t PyArrayObject* V575;\n05416\t \n05417\t typedef npy_float64 dtype_V575;\n05418\t \n05419\t PyObject* py_V577;\n05420\t \n05421\t PyArrayObject* V577;\n05422\t \n05423\t typedef npy_float64 dtype_V577;\n05424\t \n05425\t PyObject* py_V579;\n05426\t \n05427\t PyArrayObject* V579;\n05428\t \n05429\t typedef npy_float64 dtype_V579;\n05430\t \n05431\t PyObject* py_V581;\n05432\t \n05433\t PyArrayObject* V581;\n05434\t \n05435\t typedef npy_float64 dtype_V581;\n05436\t \n05437\t PyObject* py_V583;\n05438\t \n05439\t PyArrayObject* V583;\n05440\t \n05441\t typedef npy_float64 dtype_V583;\n05442\t \n05443\t PyObject* py_V585;\n05444\t \n05445\t PyArrayObject* V585;\n05446\t \n05447\t typedef npy_float64 dtype_V585;\n05448\t \n05449\t PyObject* py_V587;\n05450\t \n05451\t PyArrayObject* V587;\n05452\t \n05453\t typedef npy_float64 dtype_V587;\n05454\t \n05455\t PyObject* py_V589;\n05456\t \n05457\t PyArrayObject* V589;\n05458\t \n05459\t typedef npy_float64 dtype_V589;\n05460\t \n05461\t PyObject* py_V591;\n05462\t \n05463\t PyArrayObject* V591;\n05464\t \n05465\t typedef npy_float64 dtype_V591;\n05466\t \n05467\t PyObject* py_V593;\n05468\t \n05469\t PyArrayObject* V593;\n05470\t \n05471\t typedef npy_float64 dtype_V593;\n05472\t \n05473\t PyObject* py_V595;\n05474\t \n05475\t PyArrayObject* V595;\n05476\t \n05477\t typedef npy_float64 dtype_V595;\n05478\t \n05479\t PyObject* py_V597;\n05480\t \n05481\t PyArrayObject* V597;\n05482\t \n05483\t typedef npy_float64 dtype_V597;\n05484\t \n05485\t PyObject* py_V599;\n05486\t \n05487\t PyArrayObject* V599;\n05488\t \n05489\t typedef npy_float64 dtype_V599;\n05490\t \n05491\t PyObject* py_V601;\n05492\t \n05493\t PyArrayObject* V601;\n05494\t \n05495\t typedef npy_float64 dtype_V601;\n05496\t \n05497\t PyObject* py_V603;\n05498\t \n05499\t PyArrayObject* V603;\n05500\t \n05501\t typedef npy_float64 dtype_V603;\n05502\t \n05503\t PyObject* py_V605;\n05504\t \n05505\t PyArrayObject* V605;\n05506\t \n05507\t typedef npy_float64 dtype_V605;\n05508\t \n05509\t PyObject* py_V607;\n05510\t \n05511\t PyArrayObject* V607;\n05512\t \n05513\t typedef npy_float64 dtype_V607;\n05514\t \n05515\t PyObject* py_V609;\n05516\t \n05517\t PyArrayObject* V609;\n05518\t \n05519\t typedef npy_float64 dtype_V609;\n05520\t \n05521\t PyObject* py_V611;\n05522\t \n05523\t PyArrayObject* V611;\n05524\t \n05525\t typedef npy_float64 dtype_V611;\n05526\t \n05527\t PyObject* py_V613;\n05528\t \n05529\t PyArrayObject* V613;\n05530\t \n05531\t typedef npy_float64 dtype_V613;\n05532\t \n05533\t PyObject* py_V615;\n05534\t \n05535\t PyArrayObject* V615;\n05536\t \n05537\t typedef npy_float64 dtype_V615;\n05538\t \n05539\t PyObject* py_V617;\n05540\t \n05541\t PyArrayObject* V617;\n05542\t \n05543\t typedef npy_float64 dtype_V617;\n05544\t \n05545\t PyObject* py_V619;\n05546\t \n05547\t PyArrayObject* V619;\n05548\t \n05549\t typedef npy_float64 dtype_V619;\n05550\t \n05551\t PyObject* py_V621;\n05552\t \n05553\t PyArrayObject* V621;\n05554\t \n05555\t typedef npy_float64 dtype_V621;\n05556\t \n05557\t PyObject* py_V623;\n05558\t \n05559\t PyArrayObject* V623;\n05560\t \n05561\t typedef npy_float64 dtype_V623;\n05562\t \n05563\t PyObject* py_V625;\n05564\t \n05565\t PyArrayObject* V625;\n05566\t \n05567\t typedef npy_float64 dtype_V625;\n05568\t \n05569\t PyObject* py_V627;\n05570\t \n05571\t PyArrayObject* V627;\n05572\t \n05573\t typedef npy_float64 dtype_V627;\n05574\t \n05575\t PyObject* py_V629;\n05576\t \n05577\t PyArrayObject* V629;\n05578\t \n05579\t typedef npy_float64 dtype_V629;\n05580\t \n05581\t PyObject* py_V631;\n05582\t \n05583\t PyArrayObject* V631;\n05584\t \n05585\t typedef npy_float64 dtype_V631;\n05586\t \n05587\t PyObject* py_V633;\n05588\t \n05589\t PyArrayObject* V633;\n05590\t \n05591\t typedef npy_float64 dtype_V633;\n05592\t \n05593\t PyObject* py_V635;\n05594\t \n05595\t PyArrayObject* V635;\n05596\t \n05597\t typedef npy_float64 dtype_V635;\n05598\t \n05599\t PyObject* py_V637;\n05600\t \n05601\t PyArrayObject* V637;\n05602\t \n05603\t typedef npy_float64 dtype_V637;\n05604\t \n05605\t PyObject* py_V639;\n05606\t \n05607\t PyArrayObject* V639;\n05608\t \n05609\t typedef npy_float64 dtype_V639;\n05610\t \n05611\t PyObject* py_V641;\n05612\t \n05613\t PyArrayObject* V641;\n05614\t \n05615\t typedef npy_float64 dtype_V641;\n05616\t \n05617\t PyObject* py_V643;\n05618\t \n05619\t PyArrayObject* V643;\n05620\t \n05621\t typedef npy_float64 dtype_V643;\n05622\t \n05623\t PyObject* py_V645;\n05624\t \n05625\t PyArrayObject* V645;\n05626\t \n05627\t typedef npy_float64 dtype_V645;\n05628\t \n05629\t PyObject* py_V647;\n05630\t \n05631\t PyArrayObject* V647;\n05632\t \n05633\t typedef npy_float64 dtype_V647;\n05634\t \n05635\t PyObject* py_V649;\n05636\t \n05637\t PyArrayObject* V649;\n05638\t \n05639\t typedef npy_float64 dtype_V649;\n05640\t \n05641\t PyObject* py_V651;\n05642\t \n05643\t PyArrayObject* V651;\n05644\t \n05645\t typedef npy_float64 dtype_V651;\n05646\t \n05647\t PyObject* py_V653;\n05648\t \n05649\t PyArrayObject* V653;\n05650\t \n05651\t typedef npy_float64 dtype_V653;\n05652\t \n05653\t PyObject* py_V655;\n05654\t \n05655\t PyArrayObject* V655;\n05656\t \n05657\t typedef npy_float64 dtype_V655;\n05658\t \n05659\t PyObject* py_V657;\n05660\t \n05661\t PyArrayObject* V657;\n05662\t \n05663\t typedef npy_float64 dtype_V657;\n05664\t \n05665\t PyObject* py_V659;\n05666\t \n05667\t PyArrayObject* V659;\n05668\t \n05669\t typedef npy_float64 dtype_V659;\n05670\t \n05671\t PyObject* py_V661;\n05672\t \n05673\t PyArrayObject* V661;\n05674\t \n05675\t typedef npy_float64 dtype_V661;\n05676\t \n05677\t PyObject* py_V663;\n05678\t \n05679\t PyArrayObject* V663;\n05680\t \n05681\t typedef npy_float64 dtype_V663;\n05682\t \n05683\t PyObject* py_V665;\n05684\t \n05685\t PyArrayObject* V665;\n05686\t \n05687\t typedef npy_float64 dtype_V665;\n05688\t \n05689\t PyObject* py_V667;\n05690\t \n05691\t PyArrayObject* V667;\n05692\t \n05693\t typedef npy_float64 dtype_V667;\n05694\t \n05695\t PyObject* py_V669;\n05696\t \n05697\t PyArrayObject* V669;\n05698\t \n05699\t typedef npy_float64 dtype_V669;\n05700\t \n05701\t PyObject* py_V671;\n05702\t \n05703\t PyArrayObject* V671;\n05704\t \n05705\t typedef npy_float64 dtype_V671;\n05706\t \n05707\t PyObject* py_V673;\n05708\t \n05709\t PyArrayObject* V673;\n05710\t \n05711\t typedef npy_float64 dtype_V673;\n05712\t \n05713\t PyObject* py_V675;\n05714\t \n05715\t PyArrayObject* V675;\n05716\t \n05717\t typedef npy_float64 dtype_V675;\n05718\t \n05719\t PyObject* py_V677;\n05720\t \n05721\t PyArrayObject* V677;\n05722\t \n05723\t typedef npy_float64 dtype_V677;\n05724\t \n05725\t PyObject* py_V679;\n05726\t \n05727\t PyArrayObject* V679;\n05728\t \n05729\t typedef npy_float64 dtype_V679;\n05730\t \n05731\t PyObject* py_V681;\n05732\t \n05733\t PyArrayObject* V681;\n05734\t \n05735\t typedef npy_float64 dtype_V681;\n05736\t \n05737\t PyObject* py_V683;\n05738\t \n05739\t PyArrayObject* V683;\n05740\t \n05741\t typedef npy_float64 dtype_V683;\n05742\t \n05743\t PyObject* py_V685;\n05744\t \n05745\t PyArrayObject* V685;\n05746\t \n05747\t typedef npy_float64 dtype_V685;\n05748\t \n05749\t PyObject* py_V687;\n05750\t \n05751\t PyArrayObject* V687;\n05752\t \n05753\t typedef npy_float64 dtype_V687;\n05754\t \n05755\t PyObject* py_V689;\n05756\t \n05757\t PyArrayObject* V689;\n05758\t \n05759\t typedef npy_float64 dtype_V689;\n05760\t \n05761\t PyObject* py_V691;\n05762\t \n05763\t PyArrayObject* V691;\n05764\t \n05765\t typedef npy_float64 dtype_V691;\n05766\t \n05767\t PyObject* py_V693;\n05768\t \n05769\t PyArrayObject* V693;\n05770\t \n05771\t typedef npy_float64 dtype_V693;\n05772\t \n05773\t PyObject* py_V695;\n05774\t \n05775\t PyArrayObject* V695;\n05776\t \n05777\t typedef npy_float64 dtype_V695;\n05778\t \n05779\t PyObject* py_V697;\n05780\t \n05781\t PyArrayObject* V697;\n05782\t \n05783\t typedef npy_float64 dtype_V697;\n05784\t \n05785\t PyObject* py_V699;\n05786\t \n05787\t PyArrayObject* V699;\n05788\t \n05789\t typedef npy_float64 dtype_V699;\n05790\t \n05791\t PyObject* py_V701;\n05792\t \n05793\t PyArrayObject* V701;\n05794\t \n05795\t typedef npy_float64 dtype_V701;\n05796\t \n05797\t PyObject* py_V703;\n05798\t \n05799\t PyArrayObject* V703;\n05800\t \n05801\t typedef npy_float64 dtype_V703;\n05802\t \n05803\t PyObject* py_V705;\n05804\t \n05805\t PyArrayObject* V705;\n05806\t \n05807\t typedef npy_float64 dtype_V705;\n05808\t \n05809\t PyObject* py_V707;\n05810\t \n05811\t PyArrayObject* V707;\n05812\t \n05813\t typedef npy_float64 dtype_V707;\n05814\t \n05815\t PyObject* py_V709;\n05816\t \n05817\t PyArrayObject* V709;\n05818\t \n05819\t typedef npy_float64 dtype_V709;\n05820\t \n05821\t PyObject* py_V711;\n05822\t \n05823\t PyArrayObject* V711;\n05824\t \n05825\t typedef npy_float64 dtype_V711;\n05826\t \n05827\t PyObject* py_V713;\n05828\t \n05829\t PyArrayObject* V713;\n05830\t \n05831\t typedef npy_float64 dtype_V713;\n05832\t \n05833\t PyObject* py_V715;\n05834\t \n05835\t PyArrayObject* V715;\n05836\t \n05837\t typedef npy_float64 dtype_V715;\n05838\t \n05839\t PyObject* py_V717;\n05840\t \n05841\t PyArrayObject* V717;\n05842\t \n05843\t typedef npy_float64 dtype_V717;\n05844\t \n05845\t PyObject* py_V719;\n05846\t \n05847\t PyArrayObject* V719;\n05848\t \n05849\t typedef npy_float64 dtype_V719;\n05850\t \n05851\t PyObject* py_V721;\n05852\t \n05853\t PyArrayObject* V721;\n05854\t \n05855\t typedef npy_float64 dtype_V721;\n05856\t \n05857\t PyObject* py_V723;\n05858\t \n05859\t PyArrayObject* V723;\n05860\t \n05861\t typedef npy_float64 dtype_V723;\n05862\t \n05863\t PyObject* py_V725;\n05864\t \n05865\t PyArrayObject* V725;\n05866\t \n05867\t typedef npy_float64 dtype_V725;\n05868\t \n05869\t PyObject* py_V727;\n05870\t \n05871\t PyArrayObject* V727;\n05872\t \n05873\t typedef npy_float64 dtype_V727;\n05874\t \n05875\t PyObject* py_V729;\n05876\t \n05877\t PyArrayObject* V729;\n05878\t \n05879\t typedef npy_float64 dtype_V729;\n05880\t \n05881\t PyObject* py_V731;\n05882\t \n05883\t PyArrayObject* V731;\n05884\t \n05885\t typedef npy_float64 dtype_V731;\n05886\t \n05887\t PyObject* py_V733;\n05888\t \n05889\t PyArrayObject* V733;\n05890\t \n05891\t typedef npy_float64 dtype_V733;\n05892\t \n05893\t PyObject* py_V735;\n05894\t \n05895\t PyArrayObject* V735;\n05896\t \n05897\t typedef npy_float64 dtype_V735;\n05898\t \n05899\t PyObject* py_V737;\n05900\t \n05901\t PyArrayObject* V737;\n05902\t \n05903\t typedef npy_float64 dtype_V737;\n05904\t \n05905\t PyObject* py_V739;\n05906\t \n05907\t PyArrayObject* V739;\n05908\t \n05909\t typedef npy_float64 dtype_V739;\n05910\t \n05911\t PyObject* py_V741;\n05912\t \n05913\t PyArrayObject* V741;\n05914\t \n05915\t typedef npy_float64 dtype_V741;\n05916\t \n05917\t PyObject* py_V743;\n05918\t \n05919\t PyArrayObject* V743;\n05920\t \n05921\t typedef npy_float64 dtype_V743;\n05922\t \n05923\t PyObject* py_V745;\n05924\t \n05925\t PyArrayObject* V745;\n05926\t \n05927\t typedef npy_float64 dtype_V745;\n05928\t \n05929\t PyObject* py_V747;\n05930\t \n05931\t PyArrayObject* V747;\n05932\t \n05933\t typedef npy_float64 dtype_V747;\n05934\t \n05935\t PyObject* py_V749;\n05936\t \n05937\t PyArrayObject* V749;\n05938\t \n05939\t typedef npy_float64 dtype_V749;\n05940\t \n05941\t PyObject* py_V751;\n05942\t \n05943\t PyArrayObject* V751;\n05944\t \n05945\t typedef npy_float64 dtype_V751;\n05946\t \n05947\t PyObject* py_V753;\n05948\t \n05949\t PyArrayObject* V753;\n05950\t \n05951\t typedef npy_float64 dtype_V753;\n05952\t \n05953\t PyObject* py_V755;\n05954\t \n05955\t PyArrayObject* V755;\n05956\t \n05957\t typedef npy_float64 dtype_V755;\n05958\t \n05959\t PyObject* py_V757;\n05960\t \n05961\t PyArrayObject* V757;\n05962\t \n05963\t typedef npy_float64 dtype_V757;\n05964\t \n05965\t PyObject* py_V759;\n05966\t \n05967\t PyArrayObject* V759;\n05968\t \n05969\t typedef npy_float64 dtype_V759;\n05970\t \n05971\t PyObject* py_V761;\n05972\t \n05973\t PyArrayObject* V761;\n05974\t \n05975\t typedef npy_float64 dtype_V761;\n05976\t \n05977\t PyObject* py_V763;\n05978\t \n05979\t PyArrayObject* V763;\n05980\t \n05981\t typedef npy_float64 dtype_V763;\n05982\t \n05983\t PyObject* py_V765;\n05984\t \n05985\t PyArrayObject* V765;\n05986\t \n05987\t typedef npy_float64 dtype_V765;\n05988\t \n05989\t PyObject* py_V767;\n05990\t \n05991\t PyArrayObject* V767;\n05992\t \n05993\t typedef npy_float64 dtype_V767;\n05994\t \n05995\t PyObject* py_V769;\n05996\t \n05997\t PyArrayObject* V769;\n05998\t \n05999\t typedef npy_float64 dtype_V769;\n06000\t \n06001\t PyObject* py_V771;\n06002\t \n06003\t PyArrayObject* V771;\n06004\t \n06005\t typedef npy_float64 dtype_V771;\n06006\t \n06007\t PyObject* py_V773;\n06008\t \n06009\t PyArrayObject* V773;\n06010\t \n06011\t typedef npy_float64 dtype_V773;\n06012\t \n06013\t PyObject* py_V775;\n06014\t \n06015\t PyArrayObject* V775;\n06016\t \n06017\t typedef npy_float64 dtype_V775;\n06018\t \n06019\t PyObject* py_V777;\n06020\t \n06021\t PyArrayObject* V777;\n06022\t \n06023\t typedef npy_float64 dtype_V777;\n06024\t \n06025\t PyObject* py_V779;\n06026\t \n06027\t PyArrayObject* V779;\n06028\t \n06029\t typedef npy_float64 dtype_V779;\n06030\t \n06031\t PyObject* py_V781;\n06032\t \n06033\t PyArrayObject* V781;\n06034\t \n06035\t typedef npy_float64 dtype_V781;\n06036\t \n06037\t PyObject* py_V783;\n06038\t \n06039\t PyArrayObject* V783;\n06040\t \n06041\t typedef npy_float64 dtype_V783;\n06042\t \n06043\t PyObject* py_V785;\n06044\t \n06045\t PyArrayObject* V785;\n06046\t \n06047\t typedef npy_float64 dtype_V785;\n06048\t \n06049\t PyObject* py_V787;\n06050\t \n06051\t PyArrayObject* V787;\n06052\t \n06053\t typedef npy_float64 dtype_V787;\n06054\t \n06055\t PyObject* py_V789;\n06056\t \n06057\t PyArrayObject* V789;\n06058\t \n06059\t typedef npy_float64 dtype_V789;\n06060\t \n06061\t PyObject* py_V791;\n06062\t \n06063\t PyArrayObject* V791;\n06064\t \n06065\t typedef npy_float64 dtype_V791;\n06066\t \n06067\t PyObject* py_V793;\n06068\t \n06069\t PyArrayObject* V793;\n06070\t \n06071\t typedef npy_float64 dtype_V793;\n06072\t \n06073\t PyObject* py_V795;\n06074\t \n06075\t PyArrayObject* V795;\n06076\t \n06077\t typedef npy_float64 dtype_V795;\n06078\t \n06079\t PyObject* py_V797;\n06080\t \n06081\t PyArrayObject* V797;\n06082\t \n06083\t typedef npy_float64 dtype_V797;\n06084\t \n06085\t PyObject* py_V799;\n06086\t \n06087\t PyArrayObject* V799;\n06088\t \n06089\t typedef npy_float64 dtype_V799;\n06090\t \n06091\t PyObject* py_V801;\n06092\t \n06093\t PyArrayObject* V801;\n06094\t \n06095\t typedef npy_float64 dtype_V801;\n06096\t \n06097\t PyObject* py_V803;\n06098\t \n06099\t PyArrayObject* V803;\n06100\t \n06101\t typedef npy_float64 dtype_V803;\n06102\t \n06103\t PyObject* py_V805;\n06104\t \n06105\t PyArrayObject* V805;\n06106\t \n06107\t typedef npy_float64 dtype_V805;\n06108\t \n06109\t PyObject* py_V807;\n06110\t \n06111\t PyArrayObject* V807;\n06112\t \n06113\t typedef npy_float64 dtype_V807;\n06114\t \n06115\t PyObject* py_V809;\n06116\t \n06117\t PyArrayObject* V809;\n06118\t \n06119\t typedef npy_float64 dtype_V809;\n06120\t \n06121\t PyObject* py_V811;\n06122\t \n06123\t PyArrayObject* V811;\n06124\t \n06125\t typedef npy_float64 dtype_V811;\n06126\t \n06127\t PyObject* py_V813;\n06128\t \n06129\t PyArrayObject* V813;\n06130\t \n06131\t typedef npy_float64 dtype_V813;\n06132\t \n06133\t PyObject* py_V815;\n06134\t \n06135\t PyArrayObject* V815;\n06136\t \n06137\t typedef npy_float64 dtype_V815;\n06138\t \n06139\t PyObject* py_V817;\n06140\t \n06141\t PyArrayObject* V817;\n06142\t \n06143\t typedef npy_float64 dtype_V817;\n06144\t \n06145\t PyObject* py_V819;\n06146\t \n06147\t PyArrayObject* V819;\n06148\t \n06149\t typedef npy_float64 dtype_V819;\n06150\t \n06151\t PyObject* py_V821;\n06152\t \n06153\t PyArrayObject* V821;\n06154\t \n06155\t typedef npy_float64 dtype_V821;\n06156\t \n06157\t PyObject* py_V823;\n06158\t \n06159\t PyArrayObject* V823;\n06160\t \n06161\t typedef npy_float64 dtype_V823;\n06162\t \n06163\t PyObject* py_V825;\n06164\t \n06165\t PyArrayObject* V825;\n06166\t \n06167\t typedef npy_float64 dtype_V825;\n06168\t \n06169\t PyObject* py_V827;\n06170\t \n06171\t PyArrayObject* V827;\n06172\t \n06173\t typedef npy_float64 dtype_V827;\n06174\t \n06175\t PyObject* py_V829;\n06176\t \n06177\t PyArrayObject* V829;\n06178\t \n06179\t typedef npy_float64 dtype_V829;\n06180\t \n06181\t PyObject* py_V831;\n06182\t \n06183\t PyArrayObject* V831;\n06184\t \n06185\t typedef npy_float64 dtype_V831;\n06186\t \n06187\t PyObject* py_V833;\n06188\t \n06189\t PyArrayObject* V833;\n06190\t \n06191\t typedef npy_float64 dtype_V833;\n06192\t \n06193\t PyObject* py_V835;\n06194\t \n06195\t PyArrayObject* V835;\n06196\t \n06197\t typedef npy_float64 dtype_V835;\n06198\t \n06199\t PyObject* py_V837;\n06200\t \n06201\t PyArrayObject* V837;\n06202\t \n06203\t typedef npy_float64 dtype_V837;\n06204\t \n06205\t PyObject* py_V839;\n06206\t \n06207\t PyArrayObject* V839;\n06208\t \n06209\t typedef npy_float64 dtype_V839;\n06210\t \n06211\t PyObject* py_V841;\n06212\t \n06213\t PyArrayObject* V841;\n06214\t \n06215\t typedef npy_float64 dtype_V841;\n06216\t \n06217\t PyObject* py_V843;\n06218\t \n06219\t PyArrayObject* V843;\n06220\t \n06221\t typedef npy_float64 dtype_V843;\n06222\t \n06223\t PyObject* py_V845;\n06224\t \n06225\t PyArrayObject* V845;\n06226\t \n06227\t typedef npy_float64 dtype_V845;\n06228\t \n06229\t PyObject* py_V847;\n06230\t \n06231\t PyArrayObject* V847;\n06232\t \n06233\t typedef npy_float64 dtype_V847;\n06234\t \n06235\t PyObject* py_V849;\n06236\t \n06237\t PyArrayObject* V849;\n06238\t \n06239\t typedef npy_float64 dtype_V849;\n06240\t \n06241\t PyObject* py_V851;\n06242\t \n06243\t PyArrayObject* V851;\n06244\t \n06245\t typedef npy_float64 dtype_V851;\n06246\t \n06247\t PyObject* py_V853;\n06248\t \n06249\t PyArrayObject* V853;\n06250\t \n06251\t typedef npy_float64 dtype_V853;\n06252\t \n06253\t PyObject* py_V855;\n06254\t \n06255\t PyArrayObject* V855;\n06256\t \n06257\t typedef npy_float64 dtype_V855;\n06258\t \n06259\t PyObject* py_V857;\n06260\t \n06261\t PyArrayObject* V857;\n06262\t \n06263\t typedef npy_float64 dtype_V857;\n06264\t \n06265\t PyObject* py_V859;\n06266\t \n06267\t PyArrayObject* V859;\n06268\t \n06269\t typedef npy_float64 dtype_V859;\n06270\t \n06271\t PyObject* py_V861;\n06272\t \n06273\t PyArrayObject* V861;\n06274\t \n06275\t typedef npy_float64 dtype_V861;\n06276\t \n06277\t PyObject* py_V863;\n06278\t \n06279\t PyArrayObject* V863;\n06280\t \n06281\t typedef npy_float64 dtype_V863;\n06282\t \n06283\t PyObject* py_V865;\n06284\t \n06285\t PyArrayObject* V865;\n06286\t \n06287\t typedef npy_float64 dtype_V865;\n06288\t \n06289\t PyObject* py_V867;\n06290\t \n06291\t PyArrayObject* V867;\n06292\t \n06293\t typedef npy_float64 dtype_V867;\n06294\t \n06295\t PyObject* py_V869;\n06296\t \n06297\t PyArrayObject* V869;\n06298\t \n06299\t typedef npy_float64 dtype_V869;\n06300\t \n06301\t PyObject* py_V871;\n06302\t \n06303\t PyArrayObject* V871;\n06304\t \n06305\t typedef npy_float64 dtype_V871;\n06306\t \n06307\t PyObject* py_V873;\n06308\t \n06309\t PyArrayObject* V873;\n06310\t \n06311\t typedef npy_float64 dtype_V873;\n06312\t \n06313\t PyObject* py_V875;\n06314\t \n06315\t PyArrayObject* V875;\n06316\t \n06317\t typedef npy_float64 dtype_V875;\n06318\t \n06319\t PyObject* py_V877;\n06320\t \n06321\t PyArrayObject* V877;\n06322\t \n06323\t typedef npy_float64 dtype_V877;\n06324\t \n06325\t PyObject* py_V879;\n06326\t \n06327\t PyArrayObject* V879;\n06328\t \n06329\t typedef npy_float64 dtype_V879;\n06330\t \n06331\t PyObject* py_V881;\n06332\t \n06333\t PyArrayObject* V881;\n06334\t \n06335\t typedef npy_float64 dtype_V881;\n06336\t \n06337\t PyObject* py_V883;\n06338\t \n06339\t PyArrayObject* V883;\n06340\t \n06341\t typedef npy_float64 dtype_V883;\n06342\t \n06343\t PyObject* py_V885;\n06344\t \n06345\t PyArrayObject* V885;\n06346\t \n06347\t typedef npy_float64 dtype_V885;\n06348\t \n06349\t PyObject* py_V887;\n06350\t \n06351\t PyArrayObject* V887;\n06352\t \n06353\t typedef npy_float64 dtype_V887;\n06354\t \n06355\t PyObject* py_V889;\n06356\t \n06357\t PyArrayObject* V889;\n06358\t \n06359\t typedef npy_float64 dtype_V889;\n06360\t \n06361\t PyObject* py_V891;\n06362\t \n06363\t PyArrayObject* V891;\n06364\t \n06365\t typedef npy_float64 dtype_V891;\n06366\t \n06367\t PyObject* py_V893;\n06368\t \n06369\t PyArrayObject* V893;\n06370\t \n06371\t typedef npy_float64 dtype_V893;\n06372\t \n06373\t PyObject* py_V895;\n06374\t \n06375\t PyArrayObject* V895;\n06376\t \n06377\t typedef npy_float64 dtype_V895;\n06378\t \n06379\t PyObject* py_V897;\n06380\t \n06381\t PyArrayObject* V897;\n06382\t \n06383\t typedef npy_float64 dtype_V897;\n06384\t \n06385\t PyObject* py_V899;\n06386\t \n06387\t PyArrayObject* V899;\n06388\t \n06389\t typedef npy_float64 dtype_V899;\n06390\t \n06391\t PyObject* py_V901;\n06392\t \n06393\t PyArrayObject* V901;\n06394\t \n06395\t typedef npy_float64 dtype_V901;\n06396\t \n06397\t PyObject* py_V903;\n06398\t \n06399\t PyArrayObject* V903;\n06400\t \n06401\t typedef npy_float64 dtype_V903;\n06402\t \n06403\t PyObject* py_V905;\n06404\t \n06405\t PyArrayObject* V905;\n06406\t \n06407\t typedef npy_float64 dtype_V905;\n06408\t \n06409\t PyObject* py_V907;\n06410\t \n06411\t PyArrayObject* V907;\n06412\t \n06413\t typedef npy_float64 dtype_V907;\n06414\t \n06415\t PyObject* py_V909;\n06416\t \n06417\t PyArrayObject* V909;\n06418\t \n06419\t typedef npy_float64 dtype_V909;\n06420\t \n06421\t{\n06422\t\n06423\t py_V1 = Py_None;\n06424\t {Py_XINCREF(py_V1);}\n06425\t \n06426\t V1 = NULL;\n06427\t \n06428\t{\n06429\t\n06430\t py_V3 = PyList_GET_ITEM(storage_V3, 0);\n06431\t {Py_XINCREF(py_V3);}\n06432\t \n06433\t V3 = NULL;\n06434\t if (py_V3 == Py_None) {\n06435\t // We can either fail here or set V3 to NULL and rely on Ops\n06436\t // using tensors to handle the NULL case, but if they fail to do so\n06437\t // they'll end up with nasty segfaults, so this is public service.\n06438\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n06439\t {\n06440\t __failure = 4;\n06441\t if (!PyErr_Occurred()) {\n06442\t PyErr_SetString(PyExc_RuntimeError,\n06443\t \"Unexpected error in an Op's C code. \"\n06444\t \"No Python exception was set.\");\n06445\t }\n06446\t goto __label_4;}\n06447\t }\n06448\t if (!PyArray_Check(py_V3)) {\n06449\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n06450\t {\n06451\t __failure = 4;\n06452\t if (!PyErr_Occurred()) {\n06453\t PyErr_SetString(PyExc_RuntimeError,\n06454\t \"Unexpected error in an Op's C code. \"\n06455\t \"No Python exception was set.\");\n06456\t }\n06457\t goto __label_4;}\n06458\t }\n06459\t // We expect NPY_FLOAT64\n06460\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V3)) {\n06461\t PyArrayObject * tmp = (PyArrayObject*) py_V3;\n06462\t PyErr_Format(PyExc_NotImplementedError,\n06463\t \"expected an aligned array of type %ld \"\n06464\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n06465\t \" with %ld dimensions, with 3 last dims \"\n06466\t \"%ld, %ld, %ld\"\n06467\t \" and 3 last strides %ld %ld, %ld.\",\n06468\t (long int) NPY_FLOAT64,\n06469\t (long int) PyArray_TYPE((PyArrayObject*) py_V3),\n06470\t (long int) PyArray_NDIM(tmp),\n06471\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n06472\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n06473\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n06474\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n06475\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n06476\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n06477\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n06478\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n06479\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n06480\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n06481\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n06482\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n06483\t );\n06484\t {\n06485\t __failure = 4;\n06486\t if (!PyErr_Occurred()) {\n06487\t PyErr_SetString(PyExc_RuntimeError,\n06488\t \"Unexpected error in an Op's C code. \"\n06489\t \"No Python exception was set.\");\n06490\t }\n06491\t goto __label_4;}\n06492\t }\n06493\t // This is a TypeError to be consistent with DEBUG_MODE\n06494\t // Note: DEBUG_MODE also tells the name of the container\n06495\t if (PyArray_TYPE((PyArrayObject*) py_V3) != NPY_FLOAT64) {\n06496\t PyErr_Format(PyExc_TypeError,\n06497\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n06498\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V3));\n06499\t {\n06500\t __failure = 4;\n06501\t if (!PyErr_Occurred()) {\n06502\t PyErr_SetString(PyExc_RuntimeError,\n06503\t \"Unexpected error in an Op's C code. \"\n06504\t \"No Python exception was set.\");\n06505\t }\n06506\t goto __label_4;}\n06507\t }\n06508\t \n06509\t V3 = (PyArrayObject*)(py_V3);\n06510\t Py_XINCREF(V3);\n06511\t \n06512\t{\n06513\t\n06514\t py_V5 = PyList_GET_ITEM(storage_V5, 0);\n06515\t {Py_XINCREF(py_V5);}\n06516\t \n06517\t V5 = NULL;\n06518\t if (py_V5 == Py_None) {\n06519\t // We can either fail here or set V5 to NULL and rely on Ops\n06520\t // using tensors to handle the NULL case, but if they fail to do so\n06521\t // they'll end up with nasty segfaults, so this is public service.\n06522\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n06523\t {\n06524\t __failure = 6;\n06525\t if (!PyErr_Occurred()) {\n06526\t PyErr_SetString(PyExc_RuntimeError,\n06527\t \"Unexpected error in an Op's C code. \"\n06528\t \"No Python exception was set.\");\n06529\t }\n06530\t goto __label_6;}\n06531\t }\n06532\t if (!PyArray_Check(py_V5)) {\n06533\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n06534\t {\n06535\t __failure = 6;\n06536\t if (!PyErr_Occurred()) {\n06537\t PyErr_SetString(PyExc_RuntimeError,\n06538\t \"Unexpected error in an Op's C code. \"\n06539\t \"No Python exception was set.\");\n06540\t }\n06541\t goto __label_6;}\n06542\t }\n06543\t // We expect NPY_FLOAT64\n06544\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V5)) {\n06545\t PyArrayObject * tmp = (PyArrayObject*) py_V5;\n06546\t PyErr_Format(PyExc_NotImplementedError,\n06547\t \"expected an aligned array of type %ld \"\n06548\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n06549\t \" with %ld dimensions, with 3 last dims \"\n06550\t \"%ld, %ld, %ld\"\n06551\t \" and 3 last strides %ld %ld, %ld.\",\n06552\t (long int) NPY_FLOAT64,\n06553\t (long int) PyArray_TYPE((PyArrayObject*) py_V5),\n06554\t (long int) PyArray_NDIM(tmp),\n06555\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n06556\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n06557\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n06558\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n06559\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n06560\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n06561\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n06562\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n06563\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n06564\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n06565\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n06566\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n06567\t );\n06568\t {\n06569\t __failure = 6;\n06570\t if (!PyErr_Occurred()) {\n06571\t PyErr_SetString(PyExc_RuntimeError,\n06572\t \"Unexpected error in an Op's C code. \"\n06573\t \"No Python exception was set.\");\n06574\t }\n06575\t goto __label_6;}\n06576\t }\n06577\t // This is a TypeError to be consistent with DEBUG_MODE\n06578\t // Note: DEBUG_MODE also tells the name of the container\n06579\t if (PyArray_TYPE((PyArrayObject*) py_V5) != NPY_FLOAT64) {\n06580\t PyErr_Format(PyExc_TypeError,\n06581\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n06582\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V5));\n06583\t {\n06584\t __failure = 6;\n06585\t if (!PyErr_Occurred()) {\n06586\t PyErr_SetString(PyExc_RuntimeError,\n06587\t \"Unexpected error in an Op's C code. \"\n06588\t \"No Python exception was set.\");\n06589\t }\n06590\t goto __label_6;}\n06591\t }\n06592\t \n06593\t V5 = (PyArrayObject*)(py_V5);\n06594\t Py_XINCREF(V5);\n06595\t \n06596\t{\n06597\t\n06598\t py_V7 = PyList_GET_ITEM(storage_V7, 0);\n06599\t {Py_XINCREF(py_V7);}\n06600\t \n06601\t V7 = NULL;\n06602\t if (py_V7 == Py_None) {\n06603\t // We can either fail here or set V7 to NULL and rely on Ops\n06604\t // using tensors to handle the NULL case, but if they fail to do so\n06605\t // they'll end up with nasty segfaults, so this is public service.\n06606\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n06607\t {\n06608\t __failure = 8;\n06609\t if (!PyErr_Occurred()) {\n06610\t PyErr_SetString(PyExc_RuntimeError,\n06611\t \"Unexpected error in an Op's C code. \"\n06612\t \"No Python exception was set.\");\n06613\t }\n06614\t goto __label_8;}\n06615\t }\n06616\t if (!PyArray_Check(py_V7)) {\n06617\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n06618\t {\n06619\t __failure = 8;\n06620\t if (!PyErr_Occurred()) {\n06621\t PyErr_SetString(PyExc_RuntimeError,\n06622\t \"Unexpected error in an Op's C code. \"\n06623\t \"No Python exception was set.\");\n06624\t }\n06625\t goto __label_8;}\n06626\t }\n06627\t // We expect NPY_FLOAT64\n06628\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V7)) {\n06629\t PyArrayObject * tmp = (PyArrayObject*) py_V7;\n06630\t PyErr_Format(PyExc_NotImplementedError,\n06631\t \"expected an aligned array of type %ld \"\n06632\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n06633\t \" with %ld dimensions, with 3 last dims \"\n06634\t \"%ld, %ld, %ld\"\n06635\t \" and 3 last strides %ld %ld, %ld.\",\n06636\t (long int) NPY_FLOAT64,\n06637\t (long int) PyArray_TYPE((PyArrayObject*) py_V7),\n06638\t (long int) PyArray_NDIM(tmp),\n06639\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n06640\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n06641\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n06642\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n06643\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n06644\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n06645\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n06646\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n06647\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n06648\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n06649\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n06650\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n06651\t );\n06652\t {\n06653\t __failure = 8;\n06654\t if (!PyErr_Occurred()) {\n06655\t PyErr_SetString(PyExc_RuntimeError,\n06656\t \"Unexpected error in an Op's C code. \"\n06657\t \"No Python exception was set.\");\n06658\t }\n06659\t goto __label_8;}\n06660\t }\n06661\t // This is a TypeError to be consistent with DEBUG_MODE\n06662\t // Note: DEBUG_MODE also tells the name of the container\n06663\t if (PyArray_TYPE((PyArrayObject*) py_V7) != NPY_FLOAT64) {\n06664\t PyErr_Format(PyExc_TypeError,\n06665\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n06666\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V7));\n06667\t {\n06668\t __failure = 8;\n06669\t if (!PyErr_Occurred()) {\n06670\t PyErr_SetString(PyExc_RuntimeError,\n06671\t \"Unexpected error in an Op's C code. \"\n06672\t \"No Python exception was set.\");\n06673\t }\n06674\t goto __label_8;}\n06675\t }\n06676\t \n06677\t V7 = (PyArrayObject*)(py_V7);\n06678\t Py_XINCREF(V7);\n06679\t \n06680\t{\n06681\t\n06682\t py_V9 = PyList_GET_ITEM(storage_V9, 0);\n06683\t {Py_XINCREF(py_V9);}\n06684\t \n06685\t V9 = NULL;\n06686\t if (py_V9 == Py_None) {\n06687\t // We can either fail here or set V9 to NULL and rely on Ops\n06688\t // using tensors to handle the NULL case, but if they fail to do so\n06689\t // they'll end up with nasty segfaults, so this is public service.\n06690\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n06691\t {\n06692\t __failure = 10;\n06693\t if (!PyErr_Occurred()) {\n06694\t PyErr_SetString(PyExc_RuntimeError,\n06695\t \"Unexpected error in an Op's C code. \"\n06696\t \"No Python exception was set.\");\n06697\t }\n06698\t goto __label_10;}\n06699\t }\n06700\t if (!PyArray_Check(py_V9)) {\n06701\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n06702\t {\n06703\t __failure = 10;\n06704\t if (!PyErr_Occurred()) {\n06705\t PyErr_SetString(PyExc_RuntimeError,\n06706\t \"Unexpected error in an Op's C code. \"\n06707\t \"No Python exception was set.\");\n06708\t }\n06709\t goto __label_10;}\n06710\t }\n06711\t // We expect NPY_FLOAT64\n06712\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V9)) {\n06713\t PyArrayObject * tmp = (PyArrayObject*) py_V9;\n06714\t PyErr_Format(PyExc_NotImplementedError,\n06715\t \"expected an aligned array of type %ld \"\n06716\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n06717\t \" with %ld dimensions, with 3 last dims \"\n06718\t \"%ld, %ld, %ld\"\n06719\t \" and 3 last strides %ld %ld, %ld.\",\n06720\t (long int) NPY_FLOAT64,\n06721\t (long int) PyArray_TYPE((PyArrayObject*) py_V9),\n06722\t (long int) PyArray_NDIM(tmp),\n06723\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n06724\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n06725\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n06726\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n06727\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n06728\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n06729\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n06730\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n06731\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n06732\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n06733\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n06734\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n06735\t );\n06736\t {\n06737\t __failure = 10;\n06738\t if (!PyErr_Occurred()) {\n06739\t PyErr_SetString(PyExc_RuntimeError,\n06740\t \"Unexpected error in an Op's C code. \"\n06741\t \"No Python exception was set.\");\n06742\t }\n06743\t goto __label_10;}\n06744\t }\n06745\t // This is a TypeError to be consistent with DEBUG_MODE\n06746\t // Note: DEBUG_MODE also tells the name of the container\n06747\t if (PyArray_TYPE((PyArrayObject*) py_V9) != NPY_FLOAT64) {\n06748\t PyErr_Format(PyExc_TypeError,\n06749\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n06750\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V9));\n06751\t {\n06752\t __failure = 10;\n06753\t if (!PyErr_Occurred()) {\n06754\t PyErr_SetString(PyExc_RuntimeError,\n06755\t \"Unexpected error in an Op's C code. \"\n06756\t \"No Python exception was set.\");\n06757\t }\n06758\t goto __label_10;}\n06759\t }\n06760\t \n06761\t V9 = (PyArrayObject*)(py_V9);\n06762\t Py_XINCREF(V9);\n06763\t \n06764\t{\n06765\t\n06766\t py_V11 = PyList_GET_ITEM(storage_V11, 0);\n06767\t {Py_XINCREF(py_V11);}\n06768\t \n06769\t V11 = NULL;\n06770\t if (py_V11 == Py_None) {\n06771\t // We can either fail here or set V11 to NULL and rely on Ops\n06772\t // using tensors to handle the NULL case, but if they fail to do so\n06773\t // they'll end up with nasty segfaults, so this is public service.\n06774\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n06775\t {\n06776\t __failure = 12;\n06777\t if (!PyErr_Occurred()) {\n06778\t PyErr_SetString(PyExc_RuntimeError,\n06779\t \"Unexpected error in an Op's C code. \"\n06780\t \"No Python exception was set.\");\n06781\t }\n06782\t goto __label_12;}\n06783\t }\n06784\t if (!PyArray_Check(py_V11)) {\n06785\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n06786\t {\n06787\t __failure = 12;\n06788\t if (!PyErr_Occurred()) {\n06789\t PyErr_SetString(PyExc_RuntimeError,\n06790\t \"Unexpected error in an Op's C code. \"\n06791\t \"No Python exception was set.\");\n06792\t }\n06793\t goto __label_12;}\n06794\t }\n06795\t // We expect NPY_FLOAT64\n06796\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V11)) {\n06797\t PyArrayObject * tmp = (PyArrayObject*) py_V11;\n06798\t PyErr_Format(PyExc_NotImplementedError,\n06799\t \"expected an aligned array of type %ld \"\n06800\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n06801\t \" with %ld dimensions, with 3 last dims \"\n06802\t \"%ld, %ld, %ld\"\n06803\t \" and 3 last strides %ld %ld, %ld.\",\n06804\t (long int) NPY_FLOAT64,\n06805\t (long int) PyArray_TYPE((PyArrayObject*) py_V11),\n06806\t (long int) PyArray_NDIM(tmp),\n06807\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n06808\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n06809\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n06810\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n06811\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n06812\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n06813\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n06814\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n06815\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n06816\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n06817\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n06818\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n06819\t );\n06820\t {\n06821\t __failure = 12;\n06822\t if (!PyErr_Occurred()) {\n06823\t PyErr_SetString(PyExc_RuntimeError,\n06824\t \"Unexpected error in an Op's C code. \"\n06825\t \"No Python exception was set.\");\n06826\t }\n06827\t goto __label_12;}\n06828\t }\n06829\t // This is a TypeError to be consistent with DEBUG_MODE\n06830\t // Note: DEBUG_MODE also tells the name of the container\n06831\t if (PyArray_TYPE((PyArrayObject*) py_V11) != NPY_FLOAT64) {\n06832\t PyErr_Format(PyExc_TypeError,\n06833\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n06834\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V11));\n06835\t {\n06836\t __failure = 12;\n06837\t if (!PyErr_Occurred()) {\n06838\t PyErr_SetString(PyExc_RuntimeError,\n06839\t \"Unexpected error in an Op's C code. \"\n06840\t \"No Python exception was set.\");\n06841\t }\n06842\t goto __label_12;}\n06843\t }\n06844\t \n06845\t V11 = (PyArrayObject*)(py_V11);\n06846\t Py_XINCREF(V11);\n06847\t \n06848\t{\n06849\t\n06850\t py_V13 = PyList_GET_ITEM(storage_V13, 0);\n06851\t {Py_XINCREF(py_V13);}\n06852\t \n06853\t V13 = NULL;\n06854\t if (py_V13 == Py_None) {\n06855\t // We can either fail here or set V13 to NULL and rely on Ops\n06856\t // using tensors to handle the NULL case, but if they fail to do so\n06857\t // they'll end up with nasty segfaults, so this is public service.\n06858\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n06859\t {\n06860\t __failure = 14;\n06861\t if (!PyErr_Occurred()) {\n06862\t PyErr_SetString(PyExc_RuntimeError,\n06863\t \"Unexpected error in an Op's C code. \"\n06864\t \"No Python exception was set.\");\n06865\t }\n06866\t goto __label_14;}\n06867\t }\n06868\t if (!PyArray_Check(py_V13)) {\n06869\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n06870\t {\n06871\t __failure = 14;\n06872\t if (!PyErr_Occurred()) {\n06873\t PyErr_SetString(PyExc_RuntimeError,\n06874\t \"Unexpected error in an Op's C code. \"\n06875\t \"No Python exception was set.\");\n06876\t }\n06877\t goto __label_14;}\n06878\t }\n06879\t // We expect NPY_FLOAT64\n06880\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V13)) {\n06881\t PyArrayObject * tmp = (PyArrayObject*) py_V13;\n06882\t PyErr_Format(PyExc_NotImplementedError,\n06883\t \"expected an aligned array of type %ld \"\n06884\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n06885\t \" with %ld dimensions, with 3 last dims \"\n06886\t \"%ld, %ld, %ld\"\n06887\t \" and 3 last strides %ld %ld, %ld.\",\n06888\t (long int) NPY_FLOAT64,\n06889\t (long int) PyArray_TYPE((PyArrayObject*) py_V13),\n06890\t (long int) PyArray_NDIM(tmp),\n06891\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n06892\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n06893\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n06894\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n06895\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n06896\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n06897\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n06898\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n06899\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n06900\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n06901\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n06902\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n06903\t );\n06904\t {\n06905\t __failure = 14;\n06906\t if (!PyErr_Occurred()) {\n06907\t PyErr_SetString(PyExc_RuntimeError,\n06908\t \"Unexpected error in an Op's C code. \"\n06909\t \"No Python exception was set.\");\n06910\t }\n06911\t goto __label_14;}\n06912\t }\n06913\t // This is a TypeError to be consistent with DEBUG_MODE\n06914\t // Note: DEBUG_MODE also tells the name of the container\n06915\t if (PyArray_TYPE((PyArrayObject*) py_V13) != NPY_FLOAT64) {\n06916\t PyErr_Format(PyExc_TypeError,\n06917\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n06918\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V13));\n06919\t {\n06920\t __failure = 14;\n06921\t if (!PyErr_Occurred()) {\n06922\t PyErr_SetString(PyExc_RuntimeError,\n06923\t \"Unexpected error in an Op's C code. \"\n06924\t \"No Python exception was set.\");\n06925\t }\n06926\t goto __label_14;}\n06927\t }\n06928\t \n06929\t V13 = (PyArrayObject*)(py_V13);\n06930\t Py_XINCREF(V13);\n06931\t \n06932\t{\n06933\t\n06934\t py_V15 = PyList_GET_ITEM(storage_V15, 0);\n06935\t {Py_XINCREF(py_V15);}\n06936\t \n06937\t V15 = NULL;\n06938\t if (py_V15 == Py_None) {\n06939\t // We can either fail here or set V15 to NULL and rely on Ops\n06940\t // using tensors to handle the NULL case, but if they fail to do so\n06941\t // they'll end up with nasty segfaults, so this is public service.\n06942\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n06943\t {\n06944\t __failure = 16;\n06945\t if (!PyErr_Occurred()) {\n06946\t PyErr_SetString(PyExc_RuntimeError,\n06947\t \"Unexpected error in an Op's C code. \"\n06948\t \"No Python exception was set.\");\n06949\t }\n06950\t goto __label_16;}\n06951\t }\n06952\t if (!PyArray_Check(py_V15)) {\n06953\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n06954\t {\n06955\t __failure = 16;\n06956\t if (!PyErr_Occurred()) {\n06957\t PyErr_SetString(PyExc_RuntimeError,\n06958\t \"Unexpected error in an Op's C code. \"\n06959\t \"No Python exception was set.\");\n06960\t }\n06961\t goto __label_16;}\n06962\t }\n06963\t // We expect NPY_FLOAT64\n06964\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V15)) {\n06965\t PyArrayObject * tmp = (PyArrayObject*) py_V15;\n06966\t PyErr_Format(PyExc_NotImplementedError,\n06967\t \"expected an aligned array of type %ld \"\n06968\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n06969\t \" with %ld dimensions, with 3 last dims \"\n06970\t \"%ld, %ld, %ld\"\n06971\t \" and 3 last strides %ld %ld, %ld.\",\n06972\t (long int) NPY_FLOAT64,\n06973\t (long int) PyArray_TYPE((PyArrayObject*) py_V15),\n06974\t (long int) PyArray_NDIM(tmp),\n06975\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n06976\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n06977\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n06978\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n06979\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n06980\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n06981\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n06982\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n06983\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n06984\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n06985\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n06986\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n06987\t );\n06988\t {\n06989\t __failure = 16;\n06990\t if (!PyErr_Occurred()) {\n06991\t PyErr_SetString(PyExc_RuntimeError,\n06992\t \"Unexpected error in an Op's C code. \"\n06993\t \"No Python exception was set.\");\n06994\t }\n06995\t goto __label_16;}\n06996\t }\n06997\t // This is a TypeError to be consistent with DEBUG_MODE\n06998\t // Note: DEBUG_MODE also tells the name of the container\n06999\t if (PyArray_TYPE((PyArrayObject*) py_V15) != NPY_FLOAT64) {\n07000\t PyErr_Format(PyExc_TypeError,\n07001\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n07002\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V15));\n07003\t {\n07004\t __failure = 16;\n07005\t if (!PyErr_Occurred()) {\n07006\t PyErr_SetString(PyExc_RuntimeError,\n07007\t \"Unexpected error in an Op's C code. \"\n07008\t \"No Python exception was set.\");\n07009\t }\n07010\t goto __label_16;}\n07011\t }\n07012\t \n07013\t V15 = (PyArrayObject*)(py_V15);\n07014\t Py_XINCREF(V15);\n07015\t \n07016\t{\n07017\t\n07018\t py_V17 = PyList_GET_ITEM(storage_V17, 0);\n07019\t {Py_XINCREF(py_V17);}\n07020\t \n07021\t V17 = NULL;\n07022\t if (py_V17 == Py_None) {\n07023\t // We can either fail here or set V17 to NULL and rely on Ops\n07024\t // using tensors to handle the NULL case, but if they fail to do so\n07025\t // they'll end up with nasty segfaults, so this is public service.\n07026\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n07027\t {\n07028\t __failure = 18;\n07029\t if (!PyErr_Occurred()) {\n07030\t PyErr_SetString(PyExc_RuntimeError,\n07031\t \"Unexpected error in an Op's C code. \"\n07032\t \"No Python exception was set.\");\n07033\t }\n07034\t goto __label_18;}\n07035\t }\n07036\t if (!PyArray_Check(py_V17)) {\n07037\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n07038\t {\n07039\t __failure = 18;\n07040\t if (!PyErr_Occurred()) {\n07041\t PyErr_SetString(PyExc_RuntimeError,\n07042\t \"Unexpected error in an Op's C code. \"\n07043\t \"No Python exception was set.\");\n07044\t }\n07045\t goto __label_18;}\n07046\t }\n07047\t // We expect NPY_FLOAT64\n07048\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V17)) {\n07049\t PyArrayObject * tmp = (PyArrayObject*) py_V17;\n07050\t PyErr_Format(PyExc_NotImplementedError,\n07051\t \"expected an aligned array of type %ld \"\n07052\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n07053\t \" with %ld dimensions, with 3 last dims \"\n07054\t \"%ld, %ld, %ld\"\n07055\t \" and 3 last strides %ld %ld, %ld.\",\n07056\t (long int) NPY_FLOAT64,\n07057\t (long int) PyArray_TYPE((PyArrayObject*) py_V17),\n07058\t (long int) PyArray_NDIM(tmp),\n07059\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n07060\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n07061\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n07062\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n07063\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n07064\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n07065\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n07066\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n07067\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n07068\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n07069\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n07070\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n07071\t );\n07072\t {\n07073\t __failure = 18;\n07074\t if (!PyErr_Occurred()) {\n07075\t PyErr_SetString(PyExc_RuntimeError,\n07076\t \"Unexpected error in an Op's C code. \"\n07077\t \"No Python exception was set.\");\n07078\t }\n07079\t goto __label_18;}\n07080\t }\n07081\t // This is a TypeError to be consistent with DEBUG_MODE\n07082\t // Note: DEBUG_MODE also tells the name of the container\n07083\t if (PyArray_TYPE((PyArrayObject*) py_V17) != NPY_FLOAT64) {\n07084\t PyErr_Format(PyExc_TypeError,\n07085\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n07086\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V17));\n07087\t {\n07088\t __failure = 18;\n07089\t if (!PyErr_Occurred()) {\n07090\t PyErr_SetString(PyExc_RuntimeError,\n07091\t \"Unexpected error in an Op's C code. \"\n07092\t \"No Python exception was set.\");\n07093\t }\n07094\t goto __label_18;}\n07095\t }\n07096\t \n07097\t V17 = (PyArrayObject*)(py_V17);\n07098\t Py_XINCREF(V17);\n07099\t \n07100\t{\n07101\t\n07102\t py_V19 = PyList_GET_ITEM(storage_V19, 0);\n07103\t {Py_XINCREF(py_V19);}\n07104\t \n07105\t V19 = NULL;\n07106\t if (py_V19 == Py_None) {\n07107\t // We can either fail here or set V19 to NULL and rely on Ops\n07108\t // using tensors to handle the NULL case, but if they fail to do so\n07109\t // they'll end up with nasty segfaults, so this is public service.\n07110\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n07111\t {\n07112\t __failure = 20;\n07113\t if (!PyErr_Occurred()) {\n07114\t PyErr_SetString(PyExc_RuntimeError,\n07115\t \"Unexpected error in an Op's C code. \"\n07116\t \"No Python exception was set.\");\n07117\t }\n07118\t goto __label_20;}\n07119\t }\n07120\t if (!PyArray_Check(py_V19)) {\n07121\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n07122\t {\n07123\t __failure = 20;\n07124\t if (!PyErr_Occurred()) {\n07125\t PyErr_SetString(PyExc_RuntimeError,\n07126\t \"Unexpected error in an Op's C code. \"\n07127\t \"No Python exception was set.\");\n07128\t }\n07129\t goto __label_20;}\n07130\t }\n07131\t // We expect NPY_FLOAT64\n07132\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V19)) {\n07133\t PyArrayObject * tmp = (PyArrayObject*) py_V19;\n07134\t PyErr_Format(PyExc_NotImplementedError,\n07135\t \"expected an aligned array of type %ld \"\n07136\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n07137\t \" with %ld dimensions, with 3 last dims \"\n07138\t \"%ld, %ld, %ld\"\n07139\t \" and 3 last strides %ld %ld, %ld.\",\n07140\t (long int) NPY_FLOAT64,\n07141\t (long int) PyArray_TYPE((PyArrayObject*) py_V19),\n07142\t (long int) PyArray_NDIM(tmp),\n07143\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n07144\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n07145\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n07146\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n07147\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n07148\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n07149\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n07150\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n07151\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n07152\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n07153\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n07154\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n07155\t );\n07156\t {\n07157\t __failure = 20;\n07158\t if (!PyErr_Occurred()) {\n07159\t PyErr_SetString(PyExc_RuntimeError,\n07160\t \"Unexpected error in an Op's C code. \"\n07161\t \"No Python exception was set.\");\n07162\t }\n07163\t goto __label_20;}\n07164\t }\n07165\t // This is a TypeError to be consistent with DEBUG_MODE\n07166\t // Note: DEBUG_MODE also tells the name of the container\n07167\t if (PyArray_TYPE((PyArrayObject*) py_V19) != NPY_FLOAT64) {\n07168\t PyErr_Format(PyExc_TypeError,\n07169\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n07170\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V19));\n07171\t {\n07172\t __failure = 20;\n07173\t if (!PyErr_Occurred()) {\n07174\t PyErr_SetString(PyExc_RuntimeError,\n07175\t \"Unexpected error in an Op's C code. \"\n07176\t \"No Python exception was set.\");\n07177\t }\n07178\t goto __label_20;}\n07179\t }\n07180\t \n07181\t V19 = (PyArrayObject*)(py_V19);\n07182\t Py_XINCREF(V19);\n07183\t \n07184\t{\n07185\t\n07186\t py_V21 = PyList_GET_ITEM(storage_V21, 0);\n07187\t {Py_XINCREF(py_V21);}\n07188\t \n07189\t V21 = NULL;\n07190\t if (py_V21 == Py_None) {\n07191\t // We can either fail here or set V21 to NULL and rely on Ops\n07192\t // using tensors to handle the NULL case, but if they fail to do so\n07193\t // they'll end up with nasty segfaults, so this is public service.\n07194\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n07195\t {\n07196\t __failure = 22;\n07197\t if (!PyErr_Occurred()) {\n07198\t PyErr_SetString(PyExc_RuntimeError,\n07199\t \"Unexpected error in an Op's C code. \"\n07200\t \"No Python exception was set.\");\n07201\t }\n07202\t goto __label_22;}\n07203\t }\n07204\t if (!PyArray_Check(py_V21)) {\n07205\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n07206\t {\n07207\t __failure = 22;\n07208\t if (!PyErr_Occurred()) {\n07209\t PyErr_SetString(PyExc_RuntimeError,\n07210\t \"Unexpected error in an Op's C code. \"\n07211\t \"No Python exception was set.\");\n07212\t }\n07213\t goto __label_22;}\n07214\t }\n07215\t // We expect NPY_FLOAT64\n07216\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V21)) {\n07217\t PyArrayObject * tmp = (PyArrayObject*) py_V21;\n07218\t PyErr_Format(PyExc_NotImplementedError,\n07219\t \"expected an aligned array of type %ld \"\n07220\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n07221\t \" with %ld dimensions, with 3 last dims \"\n07222\t \"%ld, %ld, %ld\"\n07223\t \" and 3 last strides %ld %ld, %ld.\",\n07224\t (long int) NPY_FLOAT64,\n07225\t (long int) PyArray_TYPE((PyArrayObject*) py_V21),\n07226\t (long int) PyArray_NDIM(tmp),\n07227\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n07228\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n07229\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n07230\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n07231\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n07232\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n07233\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n07234\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n07235\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n07236\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n07237\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n07238\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n07239\t );\n07240\t {\n07241\t __failure = 22;\n07242\t if (!PyErr_Occurred()) {\n07243\t PyErr_SetString(PyExc_RuntimeError,\n07244\t \"Unexpected error in an Op's C code. \"\n07245\t \"No Python exception was set.\");\n07246\t }\n07247\t goto __label_22;}\n07248\t }\n07249\t // This is a TypeError to be consistent with DEBUG_MODE\n07250\t // Note: DEBUG_MODE also tells the name of the container\n07251\t if (PyArray_TYPE((PyArrayObject*) py_V21) != NPY_FLOAT64) {\n07252\t PyErr_Format(PyExc_TypeError,\n07253\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n07254\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V21));\n07255\t {\n07256\t __failure = 22;\n07257\t if (!PyErr_Occurred()) {\n07258\t PyErr_SetString(PyExc_RuntimeError,\n07259\t \"Unexpected error in an Op's C code. \"\n07260\t \"No Python exception was set.\");\n07261\t }\n07262\t goto __label_22;}\n07263\t }\n07264\t \n07265\t V21 = (PyArrayObject*)(py_V21);\n07266\t Py_XINCREF(V21);\n07267\t \n07268\t{\n07269\t\n07270\t py_V23 = PyList_GET_ITEM(storage_V23, 0);\n07271\t {Py_XINCREF(py_V23);}\n07272\t \n07273\t V23 = NULL;\n07274\t if (py_V23 == Py_None) {\n07275\t // We can either fail here or set V23 to NULL and rely on Ops\n07276\t // using tensors to handle the NULL case, but if they fail to do so\n07277\t // they'll end up with nasty segfaults, so this is public service.\n07278\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n07279\t {\n07280\t __failure = 24;\n07281\t if (!PyErr_Occurred()) {\n07282\t PyErr_SetString(PyExc_RuntimeError,\n07283\t \"Unexpected error in an Op's C code. \"\n07284\t \"No Python exception was set.\");\n07285\t }\n07286\t goto __label_24;}\n07287\t }\n07288\t if (!PyArray_Check(py_V23)) {\n07289\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n07290\t {\n07291\t __failure = 24;\n07292\t if (!PyErr_Occurred()) {\n07293\t PyErr_SetString(PyExc_RuntimeError,\n07294\t \"Unexpected error in an Op's C code. \"\n07295\t \"No Python exception was set.\");\n07296\t }\n07297\t goto __label_24;}\n07298\t }\n07299\t // We expect NPY_FLOAT64\n07300\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V23)) {\n07301\t PyArrayObject * tmp = (PyArrayObject*) py_V23;\n07302\t PyErr_Format(PyExc_NotImplementedError,\n07303\t \"expected an aligned array of type %ld \"\n07304\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n07305\t \" with %ld dimensions, with 3 last dims \"\n07306\t \"%ld, %ld, %ld\"\n07307\t \" and 3 last strides %ld %ld, %ld.\",\n07308\t (long int) NPY_FLOAT64,\n07309\t (long int) PyArray_TYPE((PyArrayObject*) py_V23),\n07310\t (long int) PyArray_NDIM(tmp),\n07311\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n07312\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n07313\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n07314\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n07315\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n07316\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n07317\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n07318\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n07319\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n07320\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n07321\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n07322\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n07323\t );\n07324\t {\n07325\t __failure = 24;\n07326\t if (!PyErr_Occurred()) {\n07327\t PyErr_SetString(PyExc_RuntimeError,\n07328\t \"Unexpected error in an Op's C code. \"\n07329\t \"No Python exception was set.\");\n07330\t }\n07331\t goto __label_24;}\n07332\t }\n07333\t // This is a TypeError to be consistent with DEBUG_MODE\n07334\t // Note: DEBUG_MODE also tells the name of the container\n07335\t if (PyArray_TYPE((PyArrayObject*) py_V23) != NPY_FLOAT64) {\n07336\t PyErr_Format(PyExc_TypeError,\n07337\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n07338\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V23));\n07339\t {\n07340\t __failure = 24;\n07341\t if (!PyErr_Occurred()) {\n07342\t PyErr_SetString(PyExc_RuntimeError,\n07343\t \"Unexpected error in an Op's C code. \"\n07344\t \"No Python exception was set.\");\n07345\t }\n07346\t goto __label_24;}\n07347\t }\n07348\t \n07349\t V23 = (PyArrayObject*)(py_V23);\n07350\t Py_XINCREF(V23);\n07351\t \n07352\t{\n07353\t\n07354\t py_V25 = PyList_GET_ITEM(storage_V25, 0);\n07355\t {Py_XINCREF(py_V25);}\n07356\t \n07357\t V25 = NULL;\n07358\t if (py_V25 == Py_None) {\n07359\t // We can either fail here or set V25 to NULL and rely on Ops\n07360\t // using tensors to handle the NULL case, but if they fail to do so\n07361\t // they'll end up with nasty segfaults, so this is public service.\n07362\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n07363\t {\n07364\t __failure = 26;\n07365\t if (!PyErr_Occurred()) {\n07366\t PyErr_SetString(PyExc_RuntimeError,\n07367\t \"Unexpected error in an Op's C code. \"\n07368\t \"No Python exception was set.\");\n07369\t }\n07370\t goto __label_26;}\n07371\t }\n07372\t if (!PyArray_Check(py_V25)) {\n07373\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n07374\t {\n07375\t __failure = 26;\n07376\t if (!PyErr_Occurred()) {\n07377\t PyErr_SetString(PyExc_RuntimeError,\n07378\t \"Unexpected error in an Op's C code. \"\n07379\t \"No Python exception was set.\");\n07380\t }\n07381\t goto __label_26;}\n07382\t }\n07383\t // We expect NPY_FLOAT64\n07384\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V25)) {\n07385\t PyArrayObject * tmp = (PyArrayObject*) py_V25;\n07386\t PyErr_Format(PyExc_NotImplementedError,\n07387\t \"expected an aligned array of type %ld \"\n07388\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n07389\t \" with %ld dimensions, with 3 last dims \"\n07390\t \"%ld, %ld, %ld\"\n07391\t \" and 3 last strides %ld %ld, %ld.\",\n07392\t (long int) NPY_FLOAT64,\n07393\t (long int) PyArray_TYPE((PyArrayObject*) py_V25),\n07394\t (long int) PyArray_NDIM(tmp),\n07395\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n07396\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n07397\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n07398\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n07399\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n07400\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n07401\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n07402\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n07403\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n07404\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n07405\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n07406\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n07407\t );\n07408\t {\n07409\t __failure = 26;\n07410\t if (!PyErr_Occurred()) {\n07411\t PyErr_SetString(PyExc_RuntimeError,\n07412\t \"Unexpected error in an Op's C code. \"\n07413\t \"No Python exception was set.\");\n07414\t }\n07415\t goto __label_26;}\n07416\t }\n07417\t // This is a TypeError to be consistent with DEBUG_MODE\n07418\t // Note: DEBUG_MODE also tells the name of the container\n07419\t if (PyArray_TYPE((PyArrayObject*) py_V25) != NPY_FLOAT64) {\n07420\t PyErr_Format(PyExc_TypeError,\n07421\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n07422\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V25));\n07423\t {\n07424\t __failure = 26;\n07425\t if (!PyErr_Occurred()) {\n07426\t PyErr_SetString(PyExc_RuntimeError,\n07427\t \"Unexpected error in an Op's C code. \"\n07428\t \"No Python exception was set.\");\n07429\t }\n07430\t goto __label_26;}\n07431\t }\n07432\t \n07433\t V25 = (PyArrayObject*)(py_V25);\n07434\t Py_XINCREF(V25);\n07435\t \n07436\t{\n07437\t\n07438\t py_V27 = PyList_GET_ITEM(storage_V27, 0);\n07439\t {Py_XINCREF(py_V27);}\n07440\t \n07441\t V27 = NULL;\n07442\t if (py_V27 == Py_None) {\n07443\t // We can either fail here or set V27 to NULL and rely on Ops\n07444\t // using tensors to handle the NULL case, but if they fail to do so\n07445\t // they'll end up with nasty segfaults, so this is public service.\n07446\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n07447\t {\n07448\t __failure = 28;\n07449\t if (!PyErr_Occurred()) {\n07450\t PyErr_SetString(PyExc_RuntimeError,\n07451\t \"Unexpected error in an Op's C code. \"\n07452\t \"No Python exception was set.\");\n07453\t }\n07454\t goto __label_28;}\n07455\t }\n07456\t if (!PyArray_Check(py_V27)) {\n07457\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n07458\t {\n07459\t __failure = 28;\n07460\t if (!PyErr_Occurred()) {\n07461\t PyErr_SetString(PyExc_RuntimeError,\n07462\t \"Unexpected error in an Op's C code. \"\n07463\t \"No Python exception was set.\");\n07464\t }\n07465\t goto __label_28;}\n07466\t }\n07467\t // We expect NPY_FLOAT64\n07468\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V27)) {\n07469\t PyArrayObject * tmp = (PyArrayObject*) py_V27;\n07470\t PyErr_Format(PyExc_NotImplementedError,\n07471\t \"expected an aligned array of type %ld \"\n07472\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n07473\t \" with %ld dimensions, with 3 last dims \"\n07474\t \"%ld, %ld, %ld\"\n07475\t \" and 3 last strides %ld %ld, %ld.\",\n07476\t (long int) NPY_FLOAT64,\n07477\t (long int) PyArray_TYPE((PyArrayObject*) py_V27),\n07478\t (long int) PyArray_NDIM(tmp),\n07479\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n07480\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n07481\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n07482\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n07483\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n07484\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n07485\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n07486\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n07487\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n07488\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n07489\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n07490\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n07491\t );\n07492\t {\n07493\t __failure = 28;\n07494\t if (!PyErr_Occurred()) {\n07495\t PyErr_SetString(PyExc_RuntimeError,\n07496\t \"Unexpected error in an Op's C code. \"\n07497\t \"No Python exception was set.\");\n07498\t }\n07499\t goto __label_28;}\n07500\t }\n07501\t // This is a TypeError to be consistent with DEBUG_MODE\n07502\t // Note: DEBUG_MODE also tells the name of the container\n07503\t if (PyArray_TYPE((PyArrayObject*) py_V27) != NPY_FLOAT64) {\n07504\t PyErr_Format(PyExc_TypeError,\n07505\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n07506\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V27));\n07507\t {\n07508\t __failure = 28;\n07509\t if (!PyErr_Occurred()) {\n07510\t PyErr_SetString(PyExc_RuntimeError,\n07511\t \"Unexpected error in an Op's C code. \"\n07512\t \"No Python exception was set.\");\n07513\t }\n07514\t goto __label_28;}\n07515\t }\n07516\t \n07517\t V27 = (PyArrayObject*)(py_V27);\n07518\t Py_XINCREF(V27);\n07519\t \n07520\t{\n07521\t\n07522\t py_V29 = PyList_GET_ITEM(storage_V29, 0);\n07523\t {Py_XINCREF(py_V29);}\n07524\t \n07525\t V29 = NULL;\n07526\t if (py_V29 == Py_None) {\n07527\t // We can either fail here or set V29 to NULL and rely on Ops\n07528\t // using tensors to handle the NULL case, but if they fail to do so\n07529\t // they'll end up with nasty segfaults, so this is public service.\n07530\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n07531\t {\n07532\t __failure = 30;\n07533\t if (!PyErr_Occurred()) {\n07534\t PyErr_SetString(PyExc_RuntimeError,\n07535\t \"Unexpected error in an Op's C code. \"\n07536\t \"No Python exception was set.\");\n07537\t }\n07538\t goto __label_30;}\n07539\t }\n07540\t if (!PyArray_Check(py_V29)) {\n07541\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n07542\t {\n07543\t __failure = 30;\n07544\t if (!PyErr_Occurred()) {\n07545\t PyErr_SetString(PyExc_RuntimeError,\n07546\t \"Unexpected error in an Op's C code. \"\n07547\t \"No Python exception was set.\");\n07548\t }\n07549\t goto __label_30;}\n07550\t }\n07551\t // We expect NPY_FLOAT64\n07552\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V29)) {\n07553\t PyArrayObject * tmp = (PyArrayObject*) py_V29;\n07554\t PyErr_Format(PyExc_NotImplementedError,\n07555\t \"expected an aligned array of type %ld \"\n07556\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n07557\t \" with %ld dimensions, with 3 last dims \"\n07558\t \"%ld, %ld, %ld\"\n07559\t \" and 3 last strides %ld %ld, %ld.\",\n07560\t (long int) NPY_FLOAT64,\n07561\t (long int) PyArray_TYPE((PyArrayObject*) py_V29),\n07562\t (long int) PyArray_NDIM(tmp),\n07563\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n07564\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n07565\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n07566\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n07567\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n07568\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n07569\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n07570\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n07571\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n07572\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n07573\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n07574\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n07575\t );\n07576\t {\n07577\t __failure = 30;\n07578\t if (!PyErr_Occurred()) {\n07579\t PyErr_SetString(PyExc_RuntimeError,\n07580\t \"Unexpected error in an Op's C code. \"\n07581\t \"No Python exception was set.\");\n07582\t }\n07583\t goto __label_30;}\n07584\t }\n07585\t // This is a TypeError to be consistent with DEBUG_MODE\n07586\t // Note: DEBUG_MODE also tells the name of the container\n07587\t if (PyArray_TYPE((PyArrayObject*) py_V29) != NPY_FLOAT64) {\n07588\t PyErr_Format(PyExc_TypeError,\n07589\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n07590\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V29));\n07591\t {\n07592\t __failure = 30;\n07593\t if (!PyErr_Occurred()) {\n07594\t PyErr_SetString(PyExc_RuntimeError,\n07595\t \"Unexpected error in an Op's C code. \"\n07596\t \"No Python exception was set.\");\n07597\t }\n07598\t goto __label_30;}\n07599\t }\n07600\t \n07601\t V29 = (PyArrayObject*)(py_V29);\n07602\t Py_XINCREF(V29);\n07603\t \n07604\t{\n07605\t\n07606\t py_V31 = PyList_GET_ITEM(storage_V31, 0);\n07607\t {Py_XINCREF(py_V31);}\n07608\t \n07609\t V31 = NULL;\n07610\t if (py_V31 == Py_None) {\n07611\t // We can either fail here or set V31 to NULL and rely on Ops\n07612\t // using tensors to handle the NULL case, but if they fail to do so\n07613\t // they'll end up with nasty segfaults, so this is public service.\n07614\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n07615\t {\n07616\t __failure = 32;\n07617\t if (!PyErr_Occurred()) {\n07618\t PyErr_SetString(PyExc_RuntimeError,\n07619\t \"Unexpected error in an Op's C code. \"\n07620\t \"No Python exception was set.\");\n07621\t }\n07622\t goto __label_32;}\n07623\t }\n07624\t if (!PyArray_Check(py_V31)) {\n07625\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n07626\t {\n07627\t __failure = 32;\n07628\t if (!PyErr_Occurred()) {\n07629\t PyErr_SetString(PyExc_RuntimeError,\n07630\t \"Unexpected error in an Op's C code. \"\n07631\t \"No Python exception was set.\");\n07632\t }\n07633\t goto __label_32;}\n07634\t }\n07635\t // We expect NPY_FLOAT64\n07636\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V31)) {\n07637\t PyArrayObject * tmp = (PyArrayObject*) py_V31;\n07638\t PyErr_Format(PyExc_NotImplementedError,\n07639\t \"expected an aligned array of type %ld \"\n07640\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n07641\t \" with %ld dimensions, with 3 last dims \"\n07642\t \"%ld, %ld, %ld\"\n07643\t \" and 3 last strides %ld %ld, %ld.\",\n07644\t (long int) NPY_FLOAT64,\n07645\t (long int) PyArray_TYPE((PyArrayObject*) py_V31),\n07646\t (long int) PyArray_NDIM(tmp),\n07647\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n07648\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n07649\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n07650\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n07651\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n07652\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n07653\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n07654\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n07655\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n07656\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n07657\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n07658\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n07659\t );\n07660\t {\n07661\t __failure = 32;\n07662\t if (!PyErr_Occurred()) {\n07663\t PyErr_SetString(PyExc_RuntimeError,\n07664\t \"Unexpected error in an Op's C code. \"\n07665\t \"No Python exception was set.\");\n07666\t }\n07667\t goto __label_32;}\n07668\t }\n07669\t // This is a TypeError to be consistent with DEBUG_MODE\n07670\t // Note: DEBUG_MODE also tells the name of the container\n07671\t if (PyArray_TYPE((PyArrayObject*) py_V31) != NPY_FLOAT64) {\n07672\t PyErr_Format(PyExc_TypeError,\n07673\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n07674\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V31));\n07675\t {\n07676\t __failure = 32;\n07677\t if (!PyErr_Occurred()) {\n07678\t PyErr_SetString(PyExc_RuntimeError,\n07679\t \"Unexpected error in an Op's C code. \"\n07680\t \"No Python exception was set.\");\n07681\t }\n07682\t goto __label_32;}\n07683\t }\n07684\t \n07685\t V31 = (PyArrayObject*)(py_V31);\n07686\t Py_XINCREF(V31);\n07687\t \n07688\t{\n07689\t\n07690\t py_V33 = PyList_GET_ITEM(storage_V33, 0);\n07691\t {Py_XINCREF(py_V33);}\n07692\t \n07693\t V33 = NULL;\n07694\t if (py_V33 == Py_None) {\n07695\t // We can either fail here or set V33 to NULL and rely on Ops\n07696\t // using tensors to handle the NULL case, but if they fail to do so\n07697\t // they'll end up with nasty segfaults, so this is public service.\n07698\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n07699\t {\n07700\t __failure = 34;\n07701\t if (!PyErr_Occurred()) {\n07702\t PyErr_SetString(PyExc_RuntimeError,\n07703\t \"Unexpected error in an Op's C code. \"\n07704\t \"No Python exception was set.\");\n07705\t }\n07706\t goto __label_34;}\n07707\t }\n07708\t if (!PyArray_Check(py_V33)) {\n07709\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n07710\t {\n07711\t __failure = 34;\n07712\t if (!PyErr_Occurred()) {\n07713\t PyErr_SetString(PyExc_RuntimeError,\n07714\t \"Unexpected error in an Op's C code. \"\n07715\t \"No Python exception was set.\");\n07716\t }\n07717\t goto __label_34;}\n07718\t }\n07719\t // We expect NPY_FLOAT64\n07720\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V33)) {\n07721\t PyArrayObject * tmp = (PyArrayObject*) py_V33;\n07722\t PyErr_Format(PyExc_NotImplementedError,\n07723\t \"expected an aligned array of type %ld \"\n07724\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n07725\t \" with %ld dimensions, with 3 last dims \"\n07726\t \"%ld, %ld, %ld\"\n07727\t \" and 3 last strides %ld %ld, %ld.\",\n07728\t (long int) NPY_FLOAT64,\n07729\t (long int) PyArray_TYPE((PyArrayObject*) py_V33),\n07730\t (long int) PyArray_NDIM(tmp),\n07731\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n07732\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n07733\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n07734\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n07735\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n07736\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n07737\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n07738\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n07739\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n07740\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n07741\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n07742\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n07743\t );\n07744\t {\n07745\t __failure = 34;\n07746\t if (!PyErr_Occurred()) {\n07747\t PyErr_SetString(PyExc_RuntimeError,\n07748\t \"Unexpected error in an Op's C code. \"\n07749\t \"No Python exception was set.\");\n07750\t }\n07751\t goto __label_34;}\n07752\t }\n07753\t // This is a TypeError to be consistent with DEBUG_MODE\n07754\t // Note: DEBUG_MODE also tells the name of the container\n07755\t if (PyArray_TYPE((PyArrayObject*) py_V33) != NPY_FLOAT64) {\n07756\t PyErr_Format(PyExc_TypeError,\n07757\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n07758\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V33));\n07759\t {\n07760\t __failure = 34;\n07761\t if (!PyErr_Occurred()) {\n07762\t PyErr_SetString(PyExc_RuntimeError,\n07763\t \"Unexpected error in an Op's C code. \"\n07764\t \"No Python exception was set.\");\n07765\t }\n07766\t goto __label_34;}\n07767\t }\n07768\t \n07769\t V33 = (PyArrayObject*)(py_V33);\n07770\t Py_XINCREF(V33);\n07771\t \n07772\t{\n07773\t\n07774\t py_V35 = PyList_GET_ITEM(storage_V35, 0);\n07775\t {Py_XINCREF(py_V35);}\n07776\t \n07777\t V35 = NULL;\n07778\t if (py_V35 == Py_None) {\n07779\t // We can either fail here or set V35 to NULL and rely on Ops\n07780\t // using tensors to handle the NULL case, but if they fail to do so\n07781\t // they'll end up with nasty segfaults, so this is public service.\n07782\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n07783\t {\n07784\t __failure = 36;\n07785\t if (!PyErr_Occurred()) {\n07786\t PyErr_SetString(PyExc_RuntimeError,\n07787\t \"Unexpected error in an Op's C code. \"\n07788\t \"No Python exception was set.\");\n07789\t }\n07790\t goto __label_36;}\n07791\t }\n07792\t if (!PyArray_Check(py_V35)) {\n07793\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n07794\t {\n07795\t __failure = 36;\n07796\t if (!PyErr_Occurred()) {\n07797\t PyErr_SetString(PyExc_RuntimeError,\n07798\t \"Unexpected error in an Op's C code. \"\n07799\t \"No Python exception was set.\");\n07800\t }\n07801\t goto __label_36;}\n07802\t }\n07803\t // We expect NPY_FLOAT64\n07804\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V35)) {\n07805\t PyArrayObject * tmp = (PyArrayObject*) py_V35;\n07806\t PyErr_Format(PyExc_NotImplementedError,\n07807\t \"expected an aligned array of type %ld \"\n07808\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n07809\t \" with %ld dimensions, with 3 last dims \"\n07810\t \"%ld, %ld, %ld\"\n07811\t \" and 3 last strides %ld %ld, %ld.\",\n07812\t (long int) NPY_FLOAT64,\n07813\t (long int) PyArray_TYPE((PyArrayObject*) py_V35),\n07814\t (long int) PyArray_NDIM(tmp),\n07815\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n07816\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n07817\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n07818\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n07819\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n07820\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n07821\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n07822\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n07823\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n07824\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n07825\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n07826\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n07827\t );\n07828\t {\n07829\t __failure = 36;\n07830\t if (!PyErr_Occurred()) {\n07831\t PyErr_SetString(PyExc_RuntimeError,\n07832\t \"Unexpected error in an Op's C code. \"\n07833\t \"No Python exception was set.\");\n07834\t }\n07835\t goto __label_36;}\n07836\t }\n07837\t // This is a TypeError to be consistent with DEBUG_MODE\n07838\t // Note: DEBUG_MODE also tells the name of the container\n07839\t if (PyArray_TYPE((PyArrayObject*) py_V35) != NPY_FLOAT64) {\n07840\t PyErr_Format(PyExc_TypeError,\n07841\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n07842\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V35));\n07843\t {\n07844\t __failure = 36;\n07845\t if (!PyErr_Occurred()) {\n07846\t PyErr_SetString(PyExc_RuntimeError,\n07847\t \"Unexpected error in an Op's C code. \"\n07848\t \"No Python exception was set.\");\n07849\t }\n07850\t goto __label_36;}\n07851\t }\n07852\t \n07853\t V35 = (PyArrayObject*)(py_V35);\n07854\t Py_XINCREF(V35);\n07855\t \n07856\t{\n07857\t\n07858\t py_V37 = PyList_GET_ITEM(storage_V37, 0);\n07859\t {Py_XINCREF(py_V37);}\n07860\t \n07861\t V37 = NULL;\n07862\t if (py_V37 == Py_None) {\n07863\t // We can either fail here or set V37 to NULL and rely on Ops\n07864\t // using tensors to handle the NULL case, but if they fail to do so\n07865\t // they'll end up with nasty segfaults, so this is public service.\n07866\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n07867\t {\n07868\t __failure = 38;\n07869\t if (!PyErr_Occurred()) {\n07870\t PyErr_SetString(PyExc_RuntimeError,\n07871\t \"Unexpected error in an Op's C code. \"\n07872\t \"No Python exception was set.\");\n07873\t }\n07874\t goto __label_38;}\n07875\t }\n07876\t if (!PyArray_Check(py_V37)) {\n07877\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n07878\t {\n07879\t __failure = 38;\n07880\t if (!PyErr_Occurred()) {\n07881\t PyErr_SetString(PyExc_RuntimeError,\n07882\t \"Unexpected error in an Op's C code. \"\n07883\t \"No Python exception was set.\");\n07884\t }\n07885\t goto __label_38;}\n07886\t }\n07887\t // We expect NPY_FLOAT64\n07888\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V37)) {\n07889\t PyArrayObject * tmp = (PyArrayObject*) py_V37;\n07890\t PyErr_Format(PyExc_NotImplementedError,\n07891\t \"expected an aligned array of type %ld \"\n07892\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n07893\t \" with %ld dimensions, with 3 last dims \"\n07894\t \"%ld, %ld, %ld\"\n07895\t \" and 3 last strides %ld %ld, %ld.\",\n07896\t (long int) NPY_FLOAT64,\n07897\t (long int) PyArray_TYPE((PyArrayObject*) py_V37),\n07898\t (long int) PyArray_NDIM(tmp),\n07899\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n07900\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n07901\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n07902\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n07903\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n07904\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n07905\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n07906\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n07907\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n07908\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n07909\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n07910\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n07911\t );\n07912\t {\n07913\t __failure = 38;\n07914\t if (!PyErr_Occurred()) {\n07915\t PyErr_SetString(PyExc_RuntimeError,\n07916\t \"Unexpected error in an Op's C code. \"\n07917\t \"No Python exception was set.\");\n07918\t }\n07919\t goto __label_38;}\n07920\t }\n07921\t // This is a TypeError to be consistent with DEBUG_MODE\n07922\t // Note: DEBUG_MODE also tells the name of the container\n07923\t if (PyArray_TYPE((PyArrayObject*) py_V37) != NPY_FLOAT64) {\n07924\t PyErr_Format(PyExc_TypeError,\n07925\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n07926\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V37));\n07927\t {\n07928\t __failure = 38;\n07929\t if (!PyErr_Occurred()) {\n07930\t PyErr_SetString(PyExc_RuntimeError,\n07931\t \"Unexpected error in an Op's C code. \"\n07932\t \"No Python exception was set.\");\n07933\t }\n07934\t goto __label_38;}\n07935\t }\n07936\t \n07937\t V37 = (PyArrayObject*)(py_V37);\n07938\t Py_XINCREF(V37);\n07939\t \n07940\t{\n07941\t\n07942\t py_V39 = PyList_GET_ITEM(storage_V39, 0);\n07943\t {Py_XINCREF(py_V39);}\n07944\t \n07945\t V39 = NULL;\n07946\t if (py_V39 == Py_None) {\n07947\t // We can either fail here or set V39 to NULL and rely on Ops\n07948\t // using tensors to handle the NULL case, but if they fail to do so\n07949\t // they'll end up with nasty segfaults, so this is public service.\n07950\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n07951\t {\n07952\t __failure = 40;\n07953\t if (!PyErr_Occurred()) {\n07954\t PyErr_SetString(PyExc_RuntimeError,\n07955\t \"Unexpected error in an Op's C code. \"\n07956\t \"No Python exception was set.\");\n07957\t }\n07958\t goto __label_40;}\n07959\t }\n07960\t if (!PyArray_Check(py_V39)) {\n07961\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n07962\t {\n07963\t __failure = 40;\n07964\t if (!PyErr_Occurred()) {\n07965\t PyErr_SetString(PyExc_RuntimeError,\n07966\t \"Unexpected error in an Op's C code. \"\n07967\t \"No Python exception was set.\");\n07968\t }\n07969\t goto __label_40;}\n07970\t }\n07971\t // We expect NPY_FLOAT64\n07972\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V39)) {\n07973\t PyArrayObject * tmp = (PyArrayObject*) py_V39;\n07974\t PyErr_Format(PyExc_NotImplementedError,\n07975\t \"expected an aligned array of type %ld \"\n07976\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n07977\t \" with %ld dimensions, with 3 last dims \"\n07978\t \"%ld, %ld, %ld\"\n07979\t \" and 3 last strides %ld %ld, %ld.\",\n07980\t (long int) NPY_FLOAT64,\n07981\t (long int) PyArray_TYPE((PyArrayObject*) py_V39),\n07982\t (long int) PyArray_NDIM(tmp),\n07983\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n07984\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n07985\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n07986\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n07987\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n07988\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n07989\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n07990\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n07991\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n07992\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n07993\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n07994\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n07995\t );\n07996\t {\n07997\t __failure = 40;\n07998\t if (!PyErr_Occurred()) {\n07999\t PyErr_SetString(PyExc_RuntimeError,\n08000\t \"Unexpected error in an Op's C code. \"\n08001\t \"No Python exception was set.\");\n08002\t }\n08003\t goto __label_40;}\n08004\t }\n08005\t // This is a TypeError to be consistent with DEBUG_MODE\n08006\t // Note: DEBUG_MODE also tells the name of the container\n08007\t if (PyArray_TYPE((PyArrayObject*) py_V39) != NPY_FLOAT64) {\n08008\t PyErr_Format(PyExc_TypeError,\n08009\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n08010\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V39));\n08011\t {\n08012\t __failure = 40;\n08013\t if (!PyErr_Occurred()) {\n08014\t PyErr_SetString(PyExc_RuntimeError,\n08015\t \"Unexpected error in an Op's C code. \"\n08016\t \"No Python exception was set.\");\n08017\t }\n08018\t goto __label_40;}\n08019\t }\n08020\t \n08021\t V39 = (PyArrayObject*)(py_V39);\n08022\t Py_XINCREF(V39);\n08023\t \n08024\t{\n08025\t\n08026\t py_V41 = PyList_GET_ITEM(storage_V41, 0);\n08027\t {Py_XINCREF(py_V41);}\n08028\t \n08029\t V41 = NULL;\n08030\t if (py_V41 == Py_None) {\n08031\t // We can either fail here or set V41 to NULL and rely on Ops\n08032\t // using tensors to handle the NULL case, but if they fail to do so\n08033\t // they'll end up with nasty segfaults, so this is public service.\n08034\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n08035\t {\n08036\t __failure = 42;\n08037\t if (!PyErr_Occurred()) {\n08038\t PyErr_SetString(PyExc_RuntimeError,\n08039\t \"Unexpected error in an Op's C code. \"\n08040\t \"No Python exception was set.\");\n08041\t }\n08042\t goto __label_42;}\n08043\t }\n08044\t if (!PyArray_Check(py_V41)) {\n08045\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n08046\t {\n08047\t __failure = 42;\n08048\t if (!PyErr_Occurred()) {\n08049\t PyErr_SetString(PyExc_RuntimeError,\n08050\t \"Unexpected error in an Op's C code. \"\n08051\t \"No Python exception was set.\");\n08052\t }\n08053\t goto __label_42;}\n08054\t }\n08055\t // We expect NPY_FLOAT64\n08056\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V41)) {\n08057\t PyArrayObject * tmp = (PyArrayObject*) py_V41;\n08058\t PyErr_Format(PyExc_NotImplementedError,\n08059\t \"expected an aligned array of type %ld \"\n08060\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n08061\t \" with %ld dimensions, with 3 last dims \"\n08062\t \"%ld, %ld, %ld\"\n08063\t \" and 3 last strides %ld %ld, %ld.\",\n08064\t (long int) NPY_FLOAT64,\n08065\t (long int) PyArray_TYPE((PyArrayObject*) py_V41),\n08066\t (long int) PyArray_NDIM(tmp),\n08067\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n08068\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n08069\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n08070\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n08071\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n08072\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n08073\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n08074\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n08075\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n08076\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n08077\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n08078\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n08079\t );\n08080\t {\n08081\t __failure = 42;\n08082\t if (!PyErr_Occurred()) {\n08083\t PyErr_SetString(PyExc_RuntimeError,\n08084\t \"Unexpected error in an Op's C code. \"\n08085\t \"No Python exception was set.\");\n08086\t }\n08087\t goto __label_42;}\n08088\t }\n08089\t // This is a TypeError to be consistent with DEBUG_MODE\n08090\t // Note: DEBUG_MODE also tells the name of the container\n08091\t if (PyArray_TYPE((PyArrayObject*) py_V41) != NPY_FLOAT64) {\n08092\t PyErr_Format(PyExc_TypeError,\n08093\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n08094\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V41));\n08095\t {\n08096\t __failure = 42;\n08097\t if (!PyErr_Occurred()) {\n08098\t PyErr_SetString(PyExc_RuntimeError,\n08099\t \"Unexpected error in an Op's C code. \"\n08100\t \"No Python exception was set.\");\n08101\t }\n08102\t goto __label_42;}\n08103\t }\n08104\t \n08105\t V41 = (PyArrayObject*)(py_V41);\n08106\t Py_XINCREF(V41);\n08107\t \n08108\t{\n08109\t\n08110\t py_V43 = PyList_GET_ITEM(storage_V43, 0);\n08111\t {Py_XINCREF(py_V43);}\n08112\t \n08113\t V43 = NULL;\n08114\t if (py_V43 == Py_None) {\n08115\t // We can either fail here or set V43 to NULL and rely on Ops\n08116\t // using tensors to handle the NULL case, but if they fail to do so\n08117\t // they'll end up with nasty segfaults, so this is public service.\n08118\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n08119\t {\n08120\t __failure = 44;\n08121\t if (!PyErr_Occurred()) {\n08122\t PyErr_SetString(PyExc_RuntimeError,\n08123\t \"Unexpected error in an Op's C code. \"\n08124\t \"No Python exception was set.\");\n08125\t }\n08126\t goto __label_44;}\n08127\t }\n08128\t if (!PyArray_Check(py_V43)) {\n08129\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n08130\t {\n08131\t __failure = 44;\n08132\t if (!PyErr_Occurred()) {\n08133\t PyErr_SetString(PyExc_RuntimeError,\n08134\t \"Unexpected error in an Op's C code. \"\n08135\t \"No Python exception was set.\");\n08136\t }\n08137\t goto __label_44;}\n08138\t }\n08139\t // We expect NPY_FLOAT64\n08140\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V43)) {\n08141\t PyArrayObject * tmp = (PyArrayObject*) py_V43;\n08142\t PyErr_Format(PyExc_NotImplementedError,\n08143\t \"expected an aligned array of type %ld \"\n08144\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n08145\t \" with %ld dimensions, with 3 last dims \"\n08146\t \"%ld, %ld, %ld\"\n08147\t \" and 3 last strides %ld %ld, %ld.\",\n08148\t (long int) NPY_FLOAT64,\n08149\t (long int) PyArray_TYPE((PyArrayObject*) py_V43),\n08150\t (long int) PyArray_NDIM(tmp),\n08151\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n08152\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n08153\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n08154\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n08155\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n08156\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n08157\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n08158\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n08159\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n08160\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n08161\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n08162\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n08163\t );\n08164\t {\n08165\t __failure = 44;\n08166\t if (!PyErr_Occurred()) {\n08167\t PyErr_SetString(PyExc_RuntimeError,\n08168\t \"Unexpected error in an Op's C code. \"\n08169\t \"No Python exception was set.\");\n08170\t }\n08171\t goto __label_44;}\n08172\t }\n08173\t // This is a TypeError to be consistent with DEBUG_MODE\n08174\t // Note: DEBUG_MODE also tells the name of the container\n08175\t if (PyArray_TYPE((PyArrayObject*) py_V43) != NPY_FLOAT64) {\n08176\t PyErr_Format(PyExc_TypeError,\n08177\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n08178\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V43));\n08179\t {\n08180\t __failure = 44;\n08181\t if (!PyErr_Occurred()) {\n08182\t PyErr_SetString(PyExc_RuntimeError,\n08183\t \"Unexpected error in an Op's C code. \"\n08184\t \"No Python exception was set.\");\n08185\t }\n08186\t goto __label_44;}\n08187\t }\n08188\t \n08189\t V43 = (PyArrayObject*)(py_V43);\n08190\t Py_XINCREF(V43);\n08191\t \n08192\t{\n08193\t\n08194\t py_V45 = PyList_GET_ITEM(storage_V45, 0);\n08195\t {Py_XINCREF(py_V45);}\n08196\t \n08197\t V45 = NULL;\n08198\t if (py_V45 == Py_None) {\n08199\t // We can either fail here or set V45 to NULL and rely on Ops\n08200\t // using tensors to handle the NULL case, but if they fail to do so\n08201\t // they'll end up with nasty segfaults, so this is public service.\n08202\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n08203\t {\n08204\t __failure = 46;\n08205\t if (!PyErr_Occurred()) {\n08206\t PyErr_SetString(PyExc_RuntimeError,\n08207\t \"Unexpected error in an Op's C code. \"\n08208\t \"No Python exception was set.\");\n08209\t }\n08210\t goto __label_46;}\n08211\t }\n08212\t if (!PyArray_Check(py_V45)) {\n08213\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n08214\t {\n08215\t __failure = 46;\n08216\t if (!PyErr_Occurred()) {\n08217\t PyErr_SetString(PyExc_RuntimeError,\n08218\t \"Unexpected error in an Op's C code. \"\n08219\t \"No Python exception was set.\");\n08220\t }\n08221\t goto __label_46;}\n08222\t }\n08223\t // We expect NPY_FLOAT64\n08224\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V45)) {\n08225\t PyArrayObject * tmp = (PyArrayObject*) py_V45;\n08226\t PyErr_Format(PyExc_NotImplementedError,\n08227\t \"expected an aligned array of type %ld \"\n08228\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n08229\t \" with %ld dimensions, with 3 last dims \"\n08230\t \"%ld, %ld, %ld\"\n08231\t \" and 3 last strides %ld %ld, %ld.\",\n08232\t (long int) NPY_FLOAT64,\n08233\t (long int) PyArray_TYPE((PyArrayObject*) py_V45),\n08234\t (long int) PyArray_NDIM(tmp),\n08235\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n08236\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n08237\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n08238\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n08239\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n08240\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n08241\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n08242\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n08243\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n08244\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n08245\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n08246\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n08247\t );\n08248\t {\n08249\t __failure = 46;\n08250\t if (!PyErr_Occurred()) {\n08251\t PyErr_SetString(PyExc_RuntimeError,\n08252\t \"Unexpected error in an Op's C code. \"\n08253\t \"No Python exception was set.\");\n08254\t }\n08255\t goto __label_46;}\n08256\t }\n08257\t // This is a TypeError to be consistent with DEBUG_MODE\n08258\t // Note: DEBUG_MODE also tells the name of the container\n08259\t if (PyArray_TYPE((PyArrayObject*) py_V45) != NPY_FLOAT64) {\n08260\t PyErr_Format(PyExc_TypeError,\n08261\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n08262\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V45));\n08263\t {\n08264\t __failure = 46;\n08265\t if (!PyErr_Occurred()) {\n08266\t PyErr_SetString(PyExc_RuntimeError,\n08267\t \"Unexpected error in an Op's C code. \"\n08268\t \"No Python exception was set.\");\n08269\t }\n08270\t goto __label_46;}\n08271\t }\n08272\t \n08273\t V45 = (PyArrayObject*)(py_V45);\n08274\t Py_XINCREF(V45);\n08275\t \n08276\t{\n08277\t\n08278\t py_V47 = PyList_GET_ITEM(storage_V47, 0);\n08279\t {Py_XINCREF(py_V47);}\n08280\t \n08281\t V47 = NULL;\n08282\t if (py_V47 == Py_None) {\n08283\t // We can either fail here or set V47 to NULL and rely on Ops\n08284\t // using tensors to handle the NULL case, but if they fail to do so\n08285\t // they'll end up with nasty segfaults, so this is public service.\n08286\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n08287\t {\n08288\t __failure = 48;\n08289\t if (!PyErr_Occurred()) {\n08290\t PyErr_SetString(PyExc_RuntimeError,\n08291\t \"Unexpected error in an Op's C code. \"\n08292\t \"No Python exception was set.\");\n08293\t }\n08294\t goto __label_48;}\n08295\t }\n08296\t if (!PyArray_Check(py_V47)) {\n08297\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n08298\t {\n08299\t __failure = 48;\n08300\t if (!PyErr_Occurred()) {\n08301\t PyErr_SetString(PyExc_RuntimeError,\n08302\t \"Unexpected error in an Op's C code. \"\n08303\t \"No Python exception was set.\");\n08304\t }\n08305\t goto __label_48;}\n08306\t }\n08307\t // We expect NPY_FLOAT64\n08308\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V47)) {\n08309\t PyArrayObject * tmp = (PyArrayObject*) py_V47;\n08310\t PyErr_Format(PyExc_NotImplementedError,\n08311\t \"expected an aligned array of type %ld \"\n08312\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n08313\t \" with %ld dimensions, with 3 last dims \"\n08314\t \"%ld, %ld, %ld\"\n08315\t \" and 3 last strides %ld %ld, %ld.\",\n08316\t (long int) NPY_FLOAT64,\n08317\t (long int) PyArray_TYPE((PyArrayObject*) py_V47),\n08318\t (long int) PyArray_NDIM(tmp),\n08319\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n08320\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n08321\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n08322\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n08323\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n08324\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n08325\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n08326\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n08327\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n08328\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n08329\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n08330\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n08331\t );\n08332\t {\n08333\t __failure = 48;\n08334\t if (!PyErr_Occurred()) {\n08335\t PyErr_SetString(PyExc_RuntimeError,\n08336\t \"Unexpected error in an Op's C code. \"\n08337\t \"No Python exception was set.\");\n08338\t }\n08339\t goto __label_48;}\n08340\t }\n08341\t // This is a TypeError to be consistent with DEBUG_MODE\n08342\t // Note: DEBUG_MODE also tells the name of the container\n08343\t if (PyArray_TYPE((PyArrayObject*) py_V47) != NPY_FLOAT64) {\n08344\t PyErr_Format(PyExc_TypeError,\n08345\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n08346\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V47));\n08347\t {\n08348\t __failure = 48;\n08349\t if (!PyErr_Occurred()) {\n08350\t PyErr_SetString(PyExc_RuntimeError,\n08351\t \"Unexpected error in an Op's C code. \"\n08352\t \"No Python exception was set.\");\n08353\t }\n08354\t goto __label_48;}\n08355\t }\n08356\t \n08357\t V47 = (PyArrayObject*)(py_V47);\n08358\t Py_XINCREF(V47);\n08359\t \n08360\t{\n08361\t\n08362\t py_V49 = PyList_GET_ITEM(storage_V49, 0);\n08363\t {Py_XINCREF(py_V49);}\n08364\t \n08365\t V49 = NULL;\n08366\t if (py_V49 == Py_None) {\n08367\t // We can either fail here or set V49 to NULL and rely on Ops\n08368\t // using tensors to handle the NULL case, but if they fail to do so\n08369\t // they'll end up with nasty segfaults, so this is public service.\n08370\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n08371\t {\n08372\t __failure = 50;\n08373\t if (!PyErr_Occurred()) {\n08374\t PyErr_SetString(PyExc_RuntimeError,\n08375\t \"Unexpected error in an Op's C code. \"\n08376\t \"No Python exception was set.\");\n08377\t }\n08378\t goto __label_50;}\n08379\t }\n08380\t if (!PyArray_Check(py_V49)) {\n08381\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n08382\t {\n08383\t __failure = 50;\n08384\t if (!PyErr_Occurred()) {\n08385\t PyErr_SetString(PyExc_RuntimeError,\n08386\t \"Unexpected error in an Op's C code. \"\n08387\t \"No Python exception was set.\");\n08388\t }\n08389\t goto __label_50;}\n08390\t }\n08391\t // We expect NPY_FLOAT64\n08392\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V49)) {\n08393\t PyArrayObject * tmp = (PyArrayObject*) py_V49;\n08394\t PyErr_Format(PyExc_NotImplementedError,\n08395\t \"expected an aligned array of type %ld \"\n08396\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n08397\t \" with %ld dimensions, with 3 last dims \"\n08398\t \"%ld, %ld, %ld\"\n08399\t \" and 3 last strides %ld %ld, %ld.\",\n08400\t (long int) NPY_FLOAT64,\n08401\t (long int) PyArray_TYPE((PyArrayObject*) py_V49),\n08402\t (long int) PyArray_NDIM(tmp),\n08403\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n08404\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n08405\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n08406\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n08407\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n08408\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n08409\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n08410\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n08411\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n08412\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n08413\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n08414\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n08415\t );\n08416\t {\n08417\t __failure = 50;\n08418\t if (!PyErr_Occurred()) {\n08419\t PyErr_SetString(PyExc_RuntimeError,\n08420\t \"Unexpected error in an Op's C code. \"\n08421\t \"No Python exception was set.\");\n08422\t }\n08423\t goto __label_50;}\n08424\t }\n08425\t // This is a TypeError to be consistent with DEBUG_MODE\n08426\t // Note: DEBUG_MODE also tells the name of the container\n08427\t if (PyArray_TYPE((PyArrayObject*) py_V49) != NPY_FLOAT64) {\n08428\t PyErr_Format(PyExc_TypeError,\n08429\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n08430\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V49));\n08431\t {\n08432\t __failure = 50;\n08433\t if (!PyErr_Occurred()) {\n08434\t PyErr_SetString(PyExc_RuntimeError,\n08435\t \"Unexpected error in an Op's C code. \"\n08436\t \"No Python exception was set.\");\n08437\t }\n08438\t goto __label_50;}\n08439\t }\n08440\t \n08441\t V49 = (PyArrayObject*)(py_V49);\n08442\t Py_XINCREF(V49);\n08443\t \n08444\t{\n08445\t\n08446\t py_V51 = PyList_GET_ITEM(storage_V51, 0);\n08447\t {Py_XINCREF(py_V51);}\n08448\t \n08449\t V51 = NULL;\n08450\t if (py_V51 == Py_None) {\n08451\t // We can either fail here or set V51 to NULL and rely on Ops\n08452\t // using tensors to handle the NULL case, but if they fail to do so\n08453\t // they'll end up with nasty segfaults, so this is public service.\n08454\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n08455\t {\n08456\t __failure = 52;\n08457\t if (!PyErr_Occurred()) {\n08458\t PyErr_SetString(PyExc_RuntimeError,\n08459\t \"Unexpected error in an Op's C code. \"\n08460\t \"No Python exception was set.\");\n08461\t }\n08462\t goto __label_52;}\n08463\t }\n08464\t if (!PyArray_Check(py_V51)) {\n08465\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n08466\t {\n08467\t __failure = 52;\n08468\t if (!PyErr_Occurred()) {\n08469\t PyErr_SetString(PyExc_RuntimeError,\n08470\t \"Unexpected error in an Op's C code. \"\n08471\t \"No Python exception was set.\");\n08472\t }\n08473\t goto __label_52;}\n08474\t }\n08475\t // We expect NPY_FLOAT64\n08476\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V51)) {\n08477\t PyArrayObject * tmp = (PyArrayObject*) py_V51;\n08478\t PyErr_Format(PyExc_NotImplementedError,\n08479\t \"expected an aligned array of type %ld \"\n08480\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n08481\t \" with %ld dimensions, with 3 last dims \"\n08482\t \"%ld, %ld, %ld\"\n08483\t \" and 3 last strides %ld %ld, %ld.\",\n08484\t (long int) NPY_FLOAT64,\n08485\t (long int) PyArray_TYPE((PyArrayObject*) py_V51),\n08486\t (long int) PyArray_NDIM(tmp),\n08487\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n08488\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n08489\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n08490\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n08491\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n08492\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n08493\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n08494\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n08495\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n08496\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n08497\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n08498\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n08499\t );\n08500\t {\n08501\t __failure = 52;\n08502\t if (!PyErr_Occurred()) {\n08503\t PyErr_SetString(PyExc_RuntimeError,\n08504\t \"Unexpected error in an Op's C code. \"\n08505\t \"No Python exception was set.\");\n08506\t }\n08507\t goto __label_52;}\n08508\t }\n08509\t // This is a TypeError to be consistent with DEBUG_MODE\n08510\t // Note: DEBUG_MODE also tells the name of the container\n08511\t if (PyArray_TYPE((PyArrayObject*) py_V51) != NPY_FLOAT64) {\n08512\t PyErr_Format(PyExc_TypeError,\n08513\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n08514\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V51));\n08515\t {\n08516\t __failure = 52;\n08517\t if (!PyErr_Occurred()) {\n08518\t PyErr_SetString(PyExc_RuntimeError,\n08519\t \"Unexpected error in an Op's C code. \"\n08520\t \"No Python exception was set.\");\n08521\t }\n08522\t goto __label_52;}\n08523\t }\n08524\t \n08525\t V51 = (PyArrayObject*)(py_V51);\n08526\t Py_XINCREF(V51);\n08527\t \n08528\t{\n08529\t\n08530\t py_V53 = PyList_GET_ITEM(storage_V53, 0);\n08531\t {Py_XINCREF(py_V53);}\n08532\t \n08533\t V53 = NULL;\n08534\t if (py_V53 == Py_None) {\n08535\t // We can either fail here or set V53 to NULL and rely on Ops\n08536\t // using tensors to handle the NULL case, but if they fail to do so\n08537\t // they'll end up with nasty segfaults, so this is public service.\n08538\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n08539\t {\n08540\t __failure = 54;\n08541\t if (!PyErr_Occurred()) {\n08542\t PyErr_SetString(PyExc_RuntimeError,\n08543\t \"Unexpected error in an Op's C code. \"\n08544\t \"No Python exception was set.\");\n08545\t }\n08546\t goto __label_54;}\n08547\t }\n08548\t if (!PyArray_Check(py_V53)) {\n08549\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n08550\t {\n08551\t __failure = 54;\n08552\t if (!PyErr_Occurred()) {\n08553\t PyErr_SetString(PyExc_RuntimeError,\n08554\t \"Unexpected error in an Op's C code. \"\n08555\t \"No Python exception was set.\");\n08556\t }\n08557\t goto __label_54;}\n08558\t }\n08559\t // We expect NPY_FLOAT64\n08560\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V53)) {\n08561\t PyArrayObject * tmp = (PyArrayObject*) py_V53;\n08562\t PyErr_Format(PyExc_NotImplementedError,\n08563\t \"expected an aligned array of type %ld \"\n08564\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n08565\t \" with %ld dimensions, with 3 last dims \"\n08566\t \"%ld, %ld, %ld\"\n08567\t \" and 3 last strides %ld %ld, %ld.\",\n08568\t (long int) NPY_FLOAT64,\n08569\t (long int) PyArray_TYPE((PyArrayObject*) py_V53),\n08570\t (long int) PyArray_NDIM(tmp),\n08571\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n08572\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n08573\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n08574\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n08575\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n08576\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n08577\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n08578\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n08579\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n08580\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n08581\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n08582\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n08583\t );\n08584\t {\n08585\t __failure = 54;\n08586\t if (!PyErr_Occurred()) {\n08587\t PyErr_SetString(PyExc_RuntimeError,\n08588\t \"Unexpected error in an Op's C code. \"\n08589\t \"No Python exception was set.\");\n08590\t }\n08591\t goto __label_54;}\n08592\t }\n08593\t // This is a TypeError to be consistent with DEBUG_MODE\n08594\t // Note: DEBUG_MODE also tells the name of the container\n08595\t if (PyArray_TYPE((PyArrayObject*) py_V53) != NPY_FLOAT64) {\n08596\t PyErr_Format(PyExc_TypeError,\n08597\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n08598\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V53));\n08599\t {\n08600\t __failure = 54;\n08601\t if (!PyErr_Occurred()) {\n08602\t PyErr_SetString(PyExc_RuntimeError,\n08603\t \"Unexpected error in an Op's C code. \"\n08604\t \"No Python exception was set.\");\n08605\t }\n08606\t goto __label_54;}\n08607\t }\n08608\t \n08609\t V53 = (PyArrayObject*)(py_V53);\n08610\t Py_XINCREF(V53);\n08611\t \n08612\t{\n08613\t\n08614\t py_V55 = PyList_GET_ITEM(storage_V55, 0);\n08615\t {Py_XINCREF(py_V55);}\n08616\t \n08617\t V55 = NULL;\n08618\t if (py_V55 == Py_None) {\n08619\t // We can either fail here or set V55 to NULL and rely on Ops\n08620\t // using tensors to handle the NULL case, but if they fail to do so\n08621\t // they'll end up with nasty segfaults, so this is public service.\n08622\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n08623\t {\n08624\t __failure = 56;\n08625\t if (!PyErr_Occurred()) {\n08626\t PyErr_SetString(PyExc_RuntimeError,\n08627\t \"Unexpected error in an Op's C code. \"\n08628\t \"No Python exception was set.\");\n08629\t }\n08630\t goto __label_56;}\n08631\t }\n08632\t if (!PyArray_Check(py_V55)) {\n08633\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n08634\t {\n08635\t __failure = 56;\n08636\t if (!PyErr_Occurred()) {\n08637\t PyErr_SetString(PyExc_RuntimeError,\n08638\t \"Unexpected error in an Op's C code. \"\n08639\t \"No Python exception was set.\");\n08640\t }\n08641\t goto __label_56;}\n08642\t }\n08643\t // We expect NPY_FLOAT64\n08644\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V55)) {\n08645\t PyArrayObject * tmp = (PyArrayObject*) py_V55;\n08646\t PyErr_Format(PyExc_NotImplementedError,\n08647\t \"expected an aligned array of type %ld \"\n08648\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n08649\t \" with %ld dimensions, with 3 last dims \"\n08650\t \"%ld, %ld, %ld\"\n08651\t \" and 3 last strides %ld %ld, %ld.\",\n08652\t (long int) NPY_FLOAT64,\n08653\t (long int) PyArray_TYPE((PyArrayObject*) py_V55),\n08654\t (long int) PyArray_NDIM(tmp),\n08655\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n08656\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n08657\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n08658\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n08659\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n08660\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n08661\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n08662\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n08663\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n08664\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n08665\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n08666\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n08667\t );\n08668\t {\n08669\t __failure = 56;\n08670\t if (!PyErr_Occurred()) {\n08671\t PyErr_SetString(PyExc_RuntimeError,\n08672\t \"Unexpected error in an Op's C code. \"\n08673\t \"No Python exception was set.\");\n08674\t }\n08675\t goto __label_56;}\n08676\t }\n08677\t // This is a TypeError to be consistent with DEBUG_MODE\n08678\t // Note: DEBUG_MODE also tells the name of the container\n08679\t if (PyArray_TYPE((PyArrayObject*) py_V55) != NPY_FLOAT64) {\n08680\t PyErr_Format(PyExc_TypeError,\n08681\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n08682\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V55));\n08683\t {\n08684\t __failure = 56;\n08685\t if (!PyErr_Occurred()) {\n08686\t PyErr_SetString(PyExc_RuntimeError,\n08687\t \"Unexpected error in an Op's C code. \"\n08688\t \"No Python exception was set.\");\n08689\t }\n08690\t goto __label_56;}\n08691\t }\n08692\t \n08693\t V55 = (PyArrayObject*)(py_V55);\n08694\t Py_XINCREF(V55);\n08695\t \n08696\t{\n08697\t\n08698\t py_V57 = PyList_GET_ITEM(storage_V57, 0);\n08699\t {Py_XINCREF(py_V57);}\n08700\t \n08701\t V57 = NULL;\n08702\t if (py_V57 == Py_None) {\n08703\t // We can either fail here or set V57 to NULL and rely on Ops\n08704\t // using tensors to handle the NULL case, but if they fail to do so\n08705\t // they'll end up with nasty segfaults, so this is public service.\n08706\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n08707\t {\n08708\t __failure = 58;\n08709\t if (!PyErr_Occurred()) {\n08710\t PyErr_SetString(PyExc_RuntimeError,\n08711\t \"Unexpected error in an Op's C code. \"\n08712\t \"No Python exception was set.\");\n08713\t }\n08714\t goto __label_58;}\n08715\t }\n08716\t if (!PyArray_Check(py_V57)) {\n08717\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n08718\t {\n08719\t __failure = 58;\n08720\t if (!PyErr_Occurred()) {\n08721\t PyErr_SetString(PyExc_RuntimeError,\n08722\t \"Unexpected error in an Op's C code. \"\n08723\t \"No Python exception was set.\");\n08724\t }\n08725\t goto __label_58;}\n08726\t }\n08727\t // We expect NPY_FLOAT64\n08728\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V57)) {\n08729\t PyArrayObject * tmp = (PyArrayObject*) py_V57;\n08730\t PyErr_Format(PyExc_NotImplementedError,\n08731\t \"expected an aligned array of type %ld \"\n08732\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n08733\t \" with %ld dimensions, with 3 last dims \"\n08734\t \"%ld, %ld, %ld\"\n08735\t \" and 3 last strides %ld %ld, %ld.\",\n08736\t (long int) NPY_FLOAT64,\n08737\t (long int) PyArray_TYPE((PyArrayObject*) py_V57),\n08738\t (long int) PyArray_NDIM(tmp),\n08739\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n08740\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n08741\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n08742\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n08743\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n08744\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n08745\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n08746\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n08747\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n08748\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n08749\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n08750\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n08751\t );\n08752\t {\n08753\t __failure = 58;\n08754\t if (!PyErr_Occurred()) {\n08755\t PyErr_SetString(PyExc_RuntimeError,\n08756\t \"Unexpected error in an Op's C code. \"\n08757\t \"No Python exception was set.\");\n08758\t }\n08759\t goto __label_58;}\n08760\t }\n08761\t // This is a TypeError to be consistent with DEBUG_MODE\n08762\t // Note: DEBUG_MODE also tells the name of the container\n08763\t if (PyArray_TYPE((PyArrayObject*) py_V57) != NPY_FLOAT64) {\n08764\t PyErr_Format(PyExc_TypeError,\n08765\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n08766\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V57));\n08767\t {\n08768\t __failure = 58;\n08769\t if (!PyErr_Occurred()) {\n08770\t PyErr_SetString(PyExc_RuntimeError,\n08771\t \"Unexpected error in an Op's C code. \"\n08772\t \"No Python exception was set.\");\n08773\t }\n08774\t goto __label_58;}\n08775\t }\n08776\t \n08777\t V57 = (PyArrayObject*)(py_V57);\n08778\t Py_XINCREF(V57);\n08779\t \n08780\t{\n08781\t\n08782\t py_V59 = PyList_GET_ITEM(storage_V59, 0);\n08783\t {Py_XINCREF(py_V59);}\n08784\t \n08785\t V59 = NULL;\n08786\t if (py_V59 == Py_None) {\n08787\t // We can either fail here or set V59 to NULL and rely on Ops\n08788\t // using tensors to handle the NULL case, but if they fail to do so\n08789\t // they'll end up with nasty segfaults, so this is public service.\n08790\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n08791\t {\n08792\t __failure = 60;\n08793\t if (!PyErr_Occurred()) {\n08794\t PyErr_SetString(PyExc_RuntimeError,\n08795\t \"Unexpected error in an Op's C code. \"\n08796\t \"No Python exception was set.\");\n08797\t }\n08798\t goto __label_60;}\n08799\t }\n08800\t if (!PyArray_Check(py_V59)) {\n08801\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n08802\t {\n08803\t __failure = 60;\n08804\t if (!PyErr_Occurred()) {\n08805\t PyErr_SetString(PyExc_RuntimeError,\n08806\t \"Unexpected error in an Op's C code. \"\n08807\t \"No Python exception was set.\");\n08808\t }\n08809\t goto __label_60;}\n08810\t }\n08811\t // We expect NPY_FLOAT64\n08812\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V59)) {\n08813\t PyArrayObject * tmp = (PyArrayObject*) py_V59;\n08814\t PyErr_Format(PyExc_NotImplementedError,\n08815\t \"expected an aligned array of type %ld \"\n08816\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n08817\t \" with %ld dimensions, with 3 last dims \"\n08818\t \"%ld, %ld, %ld\"\n08819\t \" and 3 last strides %ld %ld, %ld.\",\n08820\t (long int) NPY_FLOAT64,\n08821\t (long int) PyArray_TYPE((PyArrayObject*) py_V59),\n08822\t (long int) PyArray_NDIM(tmp),\n08823\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n08824\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n08825\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n08826\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n08827\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n08828\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n08829\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n08830\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n08831\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n08832\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n08833\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n08834\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n08835\t );\n08836\t {\n08837\t __failure = 60;\n08838\t if (!PyErr_Occurred()) {\n08839\t PyErr_SetString(PyExc_RuntimeError,\n08840\t \"Unexpected error in an Op's C code. \"\n08841\t \"No Python exception was set.\");\n08842\t }\n08843\t goto __label_60;}\n08844\t }\n08845\t // This is a TypeError to be consistent with DEBUG_MODE\n08846\t // Note: DEBUG_MODE also tells the name of the container\n08847\t if (PyArray_TYPE((PyArrayObject*) py_V59) != NPY_FLOAT64) {\n08848\t PyErr_Format(PyExc_TypeError,\n08849\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n08850\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V59));\n08851\t {\n08852\t __failure = 60;\n08853\t if (!PyErr_Occurred()) {\n08854\t PyErr_SetString(PyExc_RuntimeError,\n08855\t \"Unexpected error in an Op's C code. \"\n08856\t \"No Python exception was set.\");\n08857\t }\n08858\t goto __label_60;}\n08859\t }\n08860\t \n08861\t V59 = (PyArrayObject*)(py_V59);\n08862\t Py_XINCREF(V59);\n08863\t \n08864\t{\n08865\t\n08866\t py_V61 = PyList_GET_ITEM(storage_V61, 0);\n08867\t {Py_XINCREF(py_V61);}\n08868\t \n08869\t V61 = NULL;\n08870\t if (py_V61 == Py_None) {\n08871\t // We can either fail here or set V61 to NULL and rely on Ops\n08872\t // using tensors to handle the NULL case, but if they fail to do so\n08873\t // they'll end up with nasty segfaults, so this is public service.\n08874\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n08875\t {\n08876\t __failure = 62;\n08877\t if (!PyErr_Occurred()) {\n08878\t PyErr_SetString(PyExc_RuntimeError,\n08879\t \"Unexpected error in an Op's C code. \"\n08880\t \"No Python exception was set.\");\n08881\t }\n08882\t goto __label_62;}\n08883\t }\n08884\t if (!PyArray_Check(py_V61)) {\n08885\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n08886\t {\n08887\t __failure = 62;\n08888\t if (!PyErr_Occurred()) {\n08889\t PyErr_SetString(PyExc_RuntimeError,\n08890\t \"Unexpected error in an Op's C code. \"\n08891\t \"No Python exception was set.\");\n08892\t }\n08893\t goto __label_62;}\n08894\t }\n08895\t // We expect NPY_FLOAT64\n08896\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V61)) {\n08897\t PyArrayObject * tmp = (PyArrayObject*) py_V61;\n08898\t PyErr_Format(PyExc_NotImplementedError,\n08899\t \"expected an aligned array of type %ld \"\n08900\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n08901\t \" with %ld dimensions, with 3 last dims \"\n08902\t \"%ld, %ld, %ld\"\n08903\t \" and 3 last strides %ld %ld, %ld.\",\n08904\t (long int) NPY_FLOAT64,\n08905\t (long int) PyArray_TYPE((PyArrayObject*) py_V61),\n08906\t (long int) PyArray_NDIM(tmp),\n08907\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n08908\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n08909\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n08910\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n08911\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n08912\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n08913\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n08914\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n08915\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n08916\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n08917\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n08918\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n08919\t );\n08920\t {\n08921\t __failure = 62;\n08922\t if (!PyErr_Occurred()) {\n08923\t PyErr_SetString(PyExc_RuntimeError,\n08924\t \"Unexpected error in an Op's C code. \"\n08925\t \"No Python exception was set.\");\n08926\t }\n08927\t goto __label_62;}\n08928\t }\n08929\t // This is a TypeError to be consistent with DEBUG_MODE\n08930\t // Note: DEBUG_MODE also tells the name of the container\n08931\t if (PyArray_TYPE((PyArrayObject*) py_V61) != NPY_FLOAT64) {\n08932\t PyErr_Format(PyExc_TypeError,\n08933\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n08934\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V61));\n08935\t {\n08936\t __failure = 62;\n08937\t if (!PyErr_Occurred()) {\n08938\t PyErr_SetString(PyExc_RuntimeError,\n08939\t \"Unexpected error in an Op's C code. \"\n08940\t \"No Python exception was set.\");\n08941\t }\n08942\t goto __label_62;}\n08943\t }\n08944\t \n08945\t V61 = (PyArrayObject*)(py_V61);\n08946\t Py_XINCREF(V61);\n08947\t \n08948\t{\n08949\t\n08950\t py_V63 = PyList_GET_ITEM(storage_V63, 0);\n08951\t {Py_XINCREF(py_V63);}\n08952\t \n08953\t V63 = NULL;\n08954\t if (py_V63 == Py_None) {\n08955\t // We can either fail here or set V63 to NULL and rely on Ops\n08956\t // using tensors to handle the NULL case, but if they fail to do so\n08957\t // they'll end up with nasty segfaults, so this is public service.\n08958\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n08959\t {\n08960\t __failure = 64;\n08961\t if (!PyErr_Occurred()) {\n08962\t PyErr_SetString(PyExc_RuntimeError,\n08963\t \"Unexpected error in an Op's C code. \"\n08964\t \"No Python exception was set.\");\n08965\t }\n08966\t goto __label_64;}\n08967\t }\n08968\t if (!PyArray_Check(py_V63)) {\n08969\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n08970\t {\n08971\t __failure = 64;\n08972\t if (!PyErr_Occurred()) {\n08973\t PyErr_SetString(PyExc_RuntimeError,\n08974\t \"Unexpected error in an Op's C code. \"\n08975\t \"No Python exception was set.\");\n08976\t }\n08977\t goto __label_64;}\n08978\t }\n08979\t // We expect NPY_FLOAT64\n08980\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V63)) {\n08981\t PyArrayObject * tmp = (PyArrayObject*) py_V63;\n08982\t PyErr_Format(PyExc_NotImplementedError,\n08983\t \"expected an aligned array of type %ld \"\n08984\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n08985\t \" with %ld dimensions, with 3 last dims \"\n08986\t \"%ld, %ld, %ld\"\n08987\t \" and 3 last strides %ld %ld, %ld.\",\n08988\t (long int) NPY_FLOAT64,\n08989\t (long int) PyArray_TYPE((PyArrayObject*) py_V63),\n08990\t (long int) PyArray_NDIM(tmp),\n08991\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n08992\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n08993\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n08994\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n08995\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n08996\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n08997\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n08998\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n08999\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n09000\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n09001\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n09002\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n09003\t );\n09004\t {\n09005\t __failure = 64;\n09006\t if (!PyErr_Occurred()) {\n09007\t PyErr_SetString(PyExc_RuntimeError,\n09008\t \"Unexpected error in an Op's C code. \"\n09009\t \"No Python exception was set.\");\n09010\t }\n09011\t goto __label_64;}\n09012\t }\n09013\t // This is a TypeError to be consistent with DEBUG_MODE\n09014\t // Note: DEBUG_MODE also tells the name of the container\n09015\t if (PyArray_TYPE((PyArrayObject*) py_V63) != NPY_FLOAT64) {\n09016\t PyErr_Format(PyExc_TypeError,\n09017\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n09018\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V63));\n09019\t {\n09020\t __failure = 64;\n09021\t if (!PyErr_Occurred()) {\n09022\t PyErr_SetString(PyExc_RuntimeError,\n09023\t \"Unexpected error in an Op's C code. \"\n09024\t \"No Python exception was set.\");\n09025\t }\n09026\t goto __label_64;}\n09027\t }\n09028\t \n09029\t V63 = (PyArrayObject*)(py_V63);\n09030\t Py_XINCREF(V63);\n09031\t \n09032\t{\n09033\t\n09034\t py_V65 = PyList_GET_ITEM(storage_V65, 0);\n09035\t {Py_XINCREF(py_V65);}\n09036\t \n09037\t V65 = NULL;\n09038\t if (py_V65 == Py_None) {\n09039\t // We can either fail here or set V65 to NULL and rely on Ops\n09040\t // using tensors to handle the NULL case, but if they fail to do so\n09041\t // they'll end up with nasty segfaults, so this is public service.\n09042\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n09043\t {\n09044\t __failure = 66;\n09045\t if (!PyErr_Occurred()) {\n09046\t PyErr_SetString(PyExc_RuntimeError,\n09047\t \"Unexpected error in an Op's C code. \"\n09048\t \"No Python exception was set.\");\n09049\t }\n09050\t goto __label_66;}\n09051\t }\n09052\t if (!PyArray_Check(py_V65)) {\n09053\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n09054\t {\n09055\t __failure = 66;\n09056\t if (!PyErr_Occurred()) {\n09057\t PyErr_SetString(PyExc_RuntimeError,\n09058\t \"Unexpected error in an Op's C code. \"\n09059\t \"No Python exception was set.\");\n09060\t }\n09061\t goto __label_66;}\n09062\t }\n09063\t // We expect NPY_FLOAT64\n09064\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V65)) {\n09065\t PyArrayObject * tmp = (PyArrayObject*) py_V65;\n09066\t PyErr_Format(PyExc_NotImplementedError,\n09067\t \"expected an aligned array of type %ld \"\n09068\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n09069\t \" with %ld dimensions, with 3 last dims \"\n09070\t \"%ld, %ld, %ld\"\n09071\t \" and 3 last strides %ld %ld, %ld.\",\n09072\t (long int) NPY_FLOAT64,\n09073\t (long int) PyArray_TYPE((PyArrayObject*) py_V65),\n09074\t (long int) PyArray_NDIM(tmp),\n09075\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n09076\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n09077\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n09078\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n09079\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n09080\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n09081\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n09082\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n09083\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n09084\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n09085\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n09086\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n09087\t );\n09088\t {\n09089\t __failure = 66;\n09090\t if (!PyErr_Occurred()) {\n09091\t PyErr_SetString(PyExc_RuntimeError,\n09092\t \"Unexpected error in an Op's C code. \"\n09093\t \"No Python exception was set.\");\n09094\t }\n09095\t goto __label_66;}\n09096\t }\n09097\t // This is a TypeError to be consistent with DEBUG_MODE\n09098\t // Note: DEBUG_MODE also tells the name of the container\n09099\t if (PyArray_TYPE((PyArrayObject*) py_V65) != NPY_FLOAT64) {\n09100\t PyErr_Format(PyExc_TypeError,\n09101\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n09102\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V65));\n09103\t {\n09104\t __failure = 66;\n09105\t if (!PyErr_Occurred()) {\n09106\t PyErr_SetString(PyExc_RuntimeError,\n09107\t \"Unexpected error in an Op's C code. \"\n09108\t \"No Python exception was set.\");\n09109\t }\n09110\t goto __label_66;}\n09111\t }\n09112\t \n09113\t V65 = (PyArrayObject*)(py_V65);\n09114\t Py_XINCREF(V65);\n09115\t \n09116\t{\n09117\t\n09118\t py_V67 = PyList_GET_ITEM(storage_V67, 0);\n09119\t {Py_XINCREF(py_V67);}\n09120\t \n09121\t V67 = NULL;\n09122\t if (py_V67 == Py_None) {\n09123\t // We can either fail here or set V67 to NULL and rely on Ops\n09124\t // using tensors to handle the NULL case, but if they fail to do so\n09125\t // they'll end up with nasty segfaults, so this is public service.\n09126\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n09127\t {\n09128\t __failure = 68;\n09129\t if (!PyErr_Occurred()) {\n09130\t PyErr_SetString(PyExc_RuntimeError,\n09131\t \"Unexpected error in an Op's C code. \"\n09132\t \"No Python exception was set.\");\n09133\t }\n09134\t goto __label_68;}\n09135\t }\n09136\t if (!PyArray_Check(py_V67)) {\n09137\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n09138\t {\n09139\t __failure = 68;\n09140\t if (!PyErr_Occurred()) {\n09141\t PyErr_SetString(PyExc_RuntimeError,\n09142\t \"Unexpected error in an Op's C code. \"\n09143\t \"No Python exception was set.\");\n09144\t }\n09145\t goto __label_68;}\n09146\t }\n09147\t // We expect NPY_FLOAT64\n09148\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V67)) {\n09149\t PyArrayObject * tmp = (PyArrayObject*) py_V67;\n09150\t PyErr_Format(PyExc_NotImplementedError,\n09151\t \"expected an aligned array of type %ld \"\n09152\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n09153\t \" with %ld dimensions, with 3 last dims \"\n09154\t \"%ld, %ld, %ld\"\n09155\t \" and 3 last strides %ld %ld, %ld.\",\n09156\t (long int) NPY_FLOAT64,\n09157\t (long int) PyArray_TYPE((PyArrayObject*) py_V67),\n09158\t (long int) PyArray_NDIM(tmp),\n09159\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n09160\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n09161\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n09162\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n09163\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n09164\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n09165\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n09166\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n09167\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n09168\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n09169\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n09170\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n09171\t );\n09172\t {\n09173\t __failure = 68;\n09174\t if (!PyErr_Occurred()) {\n09175\t PyErr_SetString(PyExc_RuntimeError,\n09176\t \"Unexpected error in an Op's C code. \"\n09177\t \"No Python exception was set.\");\n09178\t }\n09179\t goto __label_68;}\n09180\t }\n09181\t // This is a TypeError to be consistent with DEBUG_MODE\n09182\t // Note: DEBUG_MODE also tells the name of the container\n09183\t if (PyArray_TYPE((PyArrayObject*) py_V67) != NPY_FLOAT64) {\n09184\t PyErr_Format(PyExc_TypeError,\n09185\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n09186\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V67));\n09187\t {\n09188\t __failure = 68;\n09189\t if (!PyErr_Occurred()) {\n09190\t PyErr_SetString(PyExc_RuntimeError,\n09191\t \"Unexpected error in an Op's C code. \"\n09192\t \"No Python exception was set.\");\n09193\t }\n09194\t goto __label_68;}\n09195\t }\n09196\t \n09197\t V67 = (PyArrayObject*)(py_V67);\n09198\t Py_XINCREF(V67);\n09199\t \n09200\t{\n09201\t\n09202\t py_V69 = PyList_GET_ITEM(storage_V69, 0);\n09203\t {Py_XINCREF(py_V69);}\n09204\t \n09205\t V69 = NULL;\n09206\t if (py_V69 == Py_None) {\n09207\t // We can either fail here or set V69 to NULL and rely on Ops\n09208\t // using tensors to handle the NULL case, but if they fail to do so\n09209\t // they'll end up with nasty segfaults, so this is public service.\n09210\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n09211\t {\n09212\t __failure = 70;\n09213\t if (!PyErr_Occurred()) {\n09214\t PyErr_SetString(PyExc_RuntimeError,\n09215\t \"Unexpected error in an Op's C code. \"\n09216\t \"No Python exception was set.\");\n09217\t }\n09218\t goto __label_70;}\n09219\t }\n09220\t if (!PyArray_Check(py_V69)) {\n09221\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n09222\t {\n09223\t __failure = 70;\n09224\t if (!PyErr_Occurred()) {\n09225\t PyErr_SetString(PyExc_RuntimeError,\n09226\t \"Unexpected error in an Op's C code. \"\n09227\t \"No Python exception was set.\");\n09228\t }\n09229\t goto __label_70;}\n09230\t }\n09231\t // We expect NPY_FLOAT64\n09232\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V69)) {\n09233\t PyArrayObject * tmp = (PyArrayObject*) py_V69;\n09234\t PyErr_Format(PyExc_NotImplementedError,\n09235\t \"expected an aligned array of type %ld \"\n09236\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n09237\t \" with %ld dimensions, with 3 last dims \"\n09238\t \"%ld, %ld, %ld\"\n09239\t \" and 3 last strides %ld %ld, %ld.\",\n09240\t (long int) NPY_FLOAT64,\n09241\t (long int) PyArray_TYPE((PyArrayObject*) py_V69),\n09242\t (long int) PyArray_NDIM(tmp),\n09243\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n09244\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n09245\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n09246\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n09247\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n09248\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n09249\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n09250\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n09251\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n09252\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n09253\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n09254\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n09255\t );\n09256\t {\n09257\t __failure = 70;\n09258\t if (!PyErr_Occurred()) {\n09259\t PyErr_SetString(PyExc_RuntimeError,\n09260\t \"Unexpected error in an Op's C code. \"\n09261\t \"No Python exception was set.\");\n09262\t }\n09263\t goto __label_70;}\n09264\t }\n09265\t // This is a TypeError to be consistent with DEBUG_MODE\n09266\t // Note: DEBUG_MODE also tells the name of the container\n09267\t if (PyArray_TYPE((PyArrayObject*) py_V69) != NPY_FLOAT64) {\n09268\t PyErr_Format(PyExc_TypeError,\n09269\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n09270\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V69));\n09271\t {\n09272\t __failure = 70;\n09273\t if (!PyErr_Occurred()) {\n09274\t PyErr_SetString(PyExc_RuntimeError,\n09275\t \"Unexpected error in an Op's C code. \"\n09276\t \"No Python exception was set.\");\n09277\t }\n09278\t goto __label_70;}\n09279\t }\n09280\t \n09281\t V69 = (PyArrayObject*)(py_V69);\n09282\t Py_XINCREF(V69);\n09283\t \n09284\t{\n09285\t\n09286\t py_V71 = PyList_GET_ITEM(storage_V71, 0);\n09287\t {Py_XINCREF(py_V71);}\n09288\t \n09289\t V71 = NULL;\n09290\t if (py_V71 == Py_None) {\n09291\t // We can either fail here or set V71 to NULL and rely on Ops\n09292\t // using tensors to handle the NULL case, but if they fail to do so\n09293\t // they'll end up with nasty segfaults, so this is public service.\n09294\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n09295\t {\n09296\t __failure = 72;\n09297\t if (!PyErr_Occurred()) {\n09298\t PyErr_SetString(PyExc_RuntimeError,\n09299\t \"Unexpected error in an Op's C code. \"\n09300\t \"No Python exception was set.\");\n09301\t }\n09302\t goto __label_72;}\n09303\t }\n09304\t if (!PyArray_Check(py_V71)) {\n09305\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n09306\t {\n09307\t __failure = 72;\n09308\t if (!PyErr_Occurred()) {\n09309\t PyErr_SetString(PyExc_RuntimeError,\n09310\t \"Unexpected error in an Op's C code. \"\n09311\t \"No Python exception was set.\");\n09312\t }\n09313\t goto __label_72;}\n09314\t }\n09315\t // We expect NPY_FLOAT64\n09316\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V71)) {\n09317\t PyArrayObject * tmp = (PyArrayObject*) py_V71;\n09318\t PyErr_Format(PyExc_NotImplementedError,\n09319\t \"expected an aligned array of type %ld \"\n09320\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n09321\t \" with %ld dimensions, with 3 last dims \"\n09322\t \"%ld, %ld, %ld\"\n09323\t \" and 3 last strides %ld %ld, %ld.\",\n09324\t (long int) NPY_FLOAT64,\n09325\t (long int) PyArray_TYPE((PyArrayObject*) py_V71),\n09326\t (long int) PyArray_NDIM(tmp),\n09327\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n09328\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n09329\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n09330\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n09331\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n09332\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n09333\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n09334\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n09335\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n09336\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n09337\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n09338\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n09339\t );\n09340\t {\n09341\t __failure = 72;\n09342\t if (!PyErr_Occurred()) {\n09343\t PyErr_SetString(PyExc_RuntimeError,\n09344\t \"Unexpected error in an Op's C code. \"\n09345\t \"No Python exception was set.\");\n09346\t }\n09347\t goto __label_72;}\n09348\t }\n09349\t // This is a TypeError to be consistent with DEBUG_MODE\n09350\t // Note: DEBUG_MODE also tells the name of the container\n09351\t if (PyArray_TYPE((PyArrayObject*) py_V71) != NPY_FLOAT64) {\n09352\t PyErr_Format(PyExc_TypeError,\n09353\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n09354\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V71));\n09355\t {\n09356\t __failure = 72;\n09357\t if (!PyErr_Occurred()) {\n09358\t PyErr_SetString(PyExc_RuntimeError,\n09359\t \"Unexpected error in an Op's C code. \"\n09360\t \"No Python exception was set.\");\n09361\t }\n09362\t goto __label_72;}\n09363\t }\n09364\t \n09365\t V71 = (PyArrayObject*)(py_V71);\n09366\t Py_XINCREF(V71);\n09367\t \n09368\t{\n09369\t\n09370\t py_V73 = PyList_GET_ITEM(storage_V73, 0);\n09371\t {Py_XINCREF(py_V73);}\n09372\t \n09373\t V73 = NULL;\n09374\t if (py_V73 == Py_None) {\n09375\t // We can either fail here or set V73 to NULL and rely on Ops\n09376\t // using tensors to handle the NULL case, but if they fail to do so\n09377\t // they'll end up with nasty segfaults, so this is public service.\n09378\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n09379\t {\n09380\t __failure = 74;\n09381\t if (!PyErr_Occurred()) {\n09382\t PyErr_SetString(PyExc_RuntimeError,\n09383\t \"Unexpected error in an Op's C code. \"\n09384\t \"No Python exception was set.\");\n09385\t }\n09386\t goto __label_74;}\n09387\t }\n09388\t if (!PyArray_Check(py_V73)) {\n09389\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n09390\t {\n09391\t __failure = 74;\n09392\t if (!PyErr_Occurred()) {\n09393\t PyErr_SetString(PyExc_RuntimeError,\n09394\t \"Unexpected error in an Op's C code. \"\n09395\t \"No Python exception was set.\");\n09396\t }\n09397\t goto __label_74;}\n09398\t }\n09399\t // We expect NPY_FLOAT64\n09400\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V73)) {\n09401\t PyArrayObject * tmp = (PyArrayObject*) py_V73;\n09402\t PyErr_Format(PyExc_NotImplementedError,\n09403\t \"expected an aligned array of type %ld \"\n09404\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n09405\t \" with %ld dimensions, with 3 last dims \"\n09406\t \"%ld, %ld, %ld\"\n09407\t \" and 3 last strides %ld %ld, %ld.\",\n09408\t (long int) NPY_FLOAT64,\n09409\t (long int) PyArray_TYPE((PyArrayObject*) py_V73),\n09410\t (long int) PyArray_NDIM(tmp),\n09411\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n09412\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n09413\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n09414\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n09415\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n09416\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n09417\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n09418\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n09419\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n09420\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n09421\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n09422\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n09423\t );\n09424\t {\n09425\t __failure = 74;\n09426\t if (!PyErr_Occurred()) {\n09427\t PyErr_SetString(PyExc_RuntimeError,\n09428\t \"Unexpected error in an Op's C code. \"\n09429\t \"No Python exception was set.\");\n09430\t }\n09431\t goto __label_74;}\n09432\t }\n09433\t // This is a TypeError to be consistent with DEBUG_MODE\n09434\t // Note: DEBUG_MODE also tells the name of the container\n09435\t if (PyArray_TYPE((PyArrayObject*) py_V73) != NPY_FLOAT64) {\n09436\t PyErr_Format(PyExc_TypeError,\n09437\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n09438\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V73));\n09439\t {\n09440\t __failure = 74;\n09441\t if (!PyErr_Occurred()) {\n09442\t PyErr_SetString(PyExc_RuntimeError,\n09443\t \"Unexpected error in an Op's C code. \"\n09444\t \"No Python exception was set.\");\n09445\t }\n09446\t goto __label_74;}\n09447\t }\n09448\t \n09449\t V73 = (PyArrayObject*)(py_V73);\n09450\t Py_XINCREF(V73);\n09451\t \n09452\t{\n09453\t\n09454\t py_V75 = PyList_GET_ITEM(storage_V75, 0);\n09455\t {Py_XINCREF(py_V75);}\n09456\t \n09457\t V75 = NULL;\n09458\t if (py_V75 == Py_None) {\n09459\t // We can either fail here or set V75 to NULL and rely on Ops\n09460\t // using tensors to handle the NULL case, but if they fail to do so\n09461\t // they'll end up with nasty segfaults, so this is public service.\n09462\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n09463\t {\n09464\t __failure = 76;\n09465\t if (!PyErr_Occurred()) {\n09466\t PyErr_SetString(PyExc_RuntimeError,\n09467\t \"Unexpected error in an Op's C code. \"\n09468\t \"No Python exception was set.\");\n09469\t }\n09470\t goto __label_76;}\n09471\t }\n09472\t if (!PyArray_Check(py_V75)) {\n09473\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n09474\t {\n09475\t __failure = 76;\n09476\t if (!PyErr_Occurred()) {\n09477\t PyErr_SetString(PyExc_RuntimeError,\n09478\t \"Unexpected error in an Op's C code. \"\n09479\t \"No Python exception was set.\");\n09480\t }\n09481\t goto __label_76;}\n09482\t }\n09483\t // We expect NPY_FLOAT64\n09484\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V75)) {\n09485\t PyArrayObject * tmp = (PyArrayObject*) py_V75;\n09486\t PyErr_Format(PyExc_NotImplementedError,\n09487\t \"expected an aligned array of type %ld \"\n09488\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n09489\t \" with %ld dimensions, with 3 last dims \"\n09490\t \"%ld, %ld, %ld\"\n09491\t \" and 3 last strides %ld %ld, %ld.\",\n09492\t (long int) NPY_FLOAT64,\n09493\t (long int) PyArray_TYPE((PyArrayObject*) py_V75),\n09494\t (long int) PyArray_NDIM(tmp),\n09495\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n09496\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n09497\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n09498\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n09499\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n09500\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n09501\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n09502\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n09503\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n09504\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n09505\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n09506\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n09507\t );\n09508\t {\n09509\t __failure = 76;\n09510\t if (!PyErr_Occurred()) {\n09511\t PyErr_SetString(PyExc_RuntimeError,\n09512\t \"Unexpected error in an Op's C code. \"\n09513\t \"No Python exception was set.\");\n09514\t }\n09515\t goto __label_76;}\n09516\t }\n09517\t // This is a TypeError to be consistent with DEBUG_MODE\n09518\t // Note: DEBUG_MODE also tells the name of the container\n09519\t if (PyArray_TYPE((PyArrayObject*) py_V75) != NPY_FLOAT64) {\n09520\t PyErr_Format(PyExc_TypeError,\n09521\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n09522\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V75));\n09523\t {\n09524\t __failure = 76;\n09525\t if (!PyErr_Occurred()) {\n09526\t PyErr_SetString(PyExc_RuntimeError,\n09527\t \"Unexpected error in an Op's C code. \"\n09528\t \"No Python exception was set.\");\n09529\t }\n09530\t goto __label_76;}\n09531\t }\n09532\t \n09533\t V75 = (PyArrayObject*)(py_V75);\n09534\t Py_XINCREF(V75);\n09535\t \n09536\t{\n09537\t\n09538\t py_V77 = PyList_GET_ITEM(storage_V77, 0);\n09539\t {Py_XINCREF(py_V77);}\n09540\t \n09541\t V77 = NULL;\n09542\t if (py_V77 == Py_None) {\n09543\t // We can either fail here or set V77 to NULL and rely on Ops\n09544\t // using tensors to handle the NULL case, but if they fail to do so\n09545\t // they'll end up with nasty segfaults, so this is public service.\n09546\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n09547\t {\n09548\t __failure = 78;\n09549\t if (!PyErr_Occurred()) {\n09550\t PyErr_SetString(PyExc_RuntimeError,\n09551\t \"Unexpected error in an Op's C code. \"\n09552\t \"No Python exception was set.\");\n09553\t }\n09554\t goto __label_78;}\n09555\t }\n09556\t if (!PyArray_Check(py_V77)) {\n09557\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n09558\t {\n09559\t __failure = 78;\n09560\t if (!PyErr_Occurred()) {\n09561\t PyErr_SetString(PyExc_RuntimeError,\n09562\t \"Unexpected error in an Op's C code. \"\n09563\t \"No Python exception was set.\");\n09564\t }\n09565\t goto __label_78;}\n09566\t }\n09567\t // We expect NPY_FLOAT64\n09568\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V77)) {\n09569\t PyArrayObject * tmp = (PyArrayObject*) py_V77;\n09570\t PyErr_Format(PyExc_NotImplementedError,\n09571\t \"expected an aligned array of type %ld \"\n09572\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n09573\t \" with %ld dimensions, with 3 last dims \"\n09574\t \"%ld, %ld, %ld\"\n09575\t \" and 3 last strides %ld %ld, %ld.\",\n09576\t (long int) NPY_FLOAT64,\n09577\t (long int) PyArray_TYPE((PyArrayObject*) py_V77),\n09578\t (long int) PyArray_NDIM(tmp),\n09579\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n09580\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n09581\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n09582\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n09583\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n09584\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n09585\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n09586\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n09587\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n09588\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n09589\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n09590\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n09591\t );\n09592\t {\n09593\t __failure = 78;\n09594\t if (!PyErr_Occurred()) {\n09595\t PyErr_SetString(PyExc_RuntimeError,\n09596\t \"Unexpected error in an Op's C code. \"\n09597\t \"No Python exception was set.\");\n09598\t }\n09599\t goto __label_78;}\n09600\t }\n09601\t // This is a TypeError to be consistent with DEBUG_MODE\n09602\t // Note: DEBUG_MODE also tells the name of the container\n09603\t if (PyArray_TYPE((PyArrayObject*) py_V77) != NPY_FLOAT64) {\n09604\t PyErr_Format(PyExc_TypeError,\n09605\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n09606\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V77));\n09607\t {\n09608\t __failure = 78;\n09609\t if (!PyErr_Occurred()) {\n09610\t PyErr_SetString(PyExc_RuntimeError,\n09611\t \"Unexpected error in an Op's C code. \"\n09612\t \"No Python exception was set.\");\n09613\t }\n09614\t goto __label_78;}\n09615\t }\n09616\t \n09617\t V77 = (PyArrayObject*)(py_V77);\n09618\t Py_XINCREF(V77);\n09619\t \n09620\t{\n09621\t\n09622\t py_V79 = PyList_GET_ITEM(storage_V79, 0);\n09623\t {Py_XINCREF(py_V79);}\n09624\t \n09625\t V79 = NULL;\n09626\t if (py_V79 == Py_None) {\n09627\t // We can either fail here or set V79 to NULL and rely on Ops\n09628\t // using tensors to handle the NULL case, but if they fail to do so\n09629\t // they'll end up with nasty segfaults, so this is public service.\n09630\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n09631\t {\n09632\t __failure = 80;\n09633\t if (!PyErr_Occurred()) {\n09634\t PyErr_SetString(PyExc_RuntimeError,\n09635\t \"Unexpected error in an Op's C code. \"\n09636\t \"No Python exception was set.\");\n09637\t }\n09638\t goto __label_80;}\n09639\t }\n09640\t if (!PyArray_Check(py_V79)) {\n09641\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n09642\t {\n09643\t __failure = 80;\n09644\t if (!PyErr_Occurred()) {\n09645\t PyErr_SetString(PyExc_RuntimeError,\n09646\t \"Unexpected error in an Op's C code. \"\n09647\t \"No Python exception was set.\");\n09648\t }\n09649\t goto __label_80;}\n09650\t }\n09651\t // We expect NPY_FLOAT64\n09652\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V79)) {\n09653\t PyArrayObject * tmp = (PyArrayObject*) py_V79;\n09654\t PyErr_Format(PyExc_NotImplementedError,\n09655\t \"expected an aligned array of type %ld \"\n09656\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n09657\t \" with %ld dimensions, with 3 last dims \"\n09658\t \"%ld, %ld, %ld\"\n09659\t \" and 3 last strides %ld %ld, %ld.\",\n09660\t (long int) NPY_FLOAT64,\n09661\t (long int) PyArray_TYPE((PyArrayObject*) py_V79),\n09662\t (long int) PyArray_NDIM(tmp),\n09663\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n09664\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n09665\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n09666\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n09667\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n09668\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n09669\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n09670\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n09671\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n09672\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n09673\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n09674\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n09675\t );\n09676\t {\n09677\t __failure = 80;\n09678\t if (!PyErr_Occurred()) {\n09679\t PyErr_SetString(PyExc_RuntimeError,\n09680\t \"Unexpected error in an Op's C code. \"\n09681\t \"No Python exception was set.\");\n09682\t }\n09683\t goto __label_80;}\n09684\t }\n09685\t // This is a TypeError to be consistent with DEBUG_MODE\n09686\t // Note: DEBUG_MODE also tells the name of the container\n09687\t if (PyArray_TYPE((PyArrayObject*) py_V79) != NPY_FLOAT64) {\n09688\t PyErr_Format(PyExc_TypeError,\n09689\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n09690\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V79));\n09691\t {\n09692\t __failure = 80;\n09693\t if (!PyErr_Occurred()) {\n09694\t PyErr_SetString(PyExc_RuntimeError,\n09695\t \"Unexpected error in an Op's C code. \"\n09696\t \"No Python exception was set.\");\n09697\t }\n09698\t goto __label_80;}\n09699\t }\n09700\t \n09701\t V79 = (PyArrayObject*)(py_V79);\n09702\t Py_XINCREF(V79);\n09703\t \n09704\t{\n09705\t\n09706\t py_V81 = PyList_GET_ITEM(storage_V81, 0);\n09707\t {Py_XINCREF(py_V81);}\n09708\t \n09709\t V81 = NULL;\n09710\t if (py_V81 == Py_None) {\n09711\t // We can either fail here or set V81 to NULL and rely on Ops\n09712\t // using tensors to handle the NULL case, but if they fail to do so\n09713\t // they'll end up with nasty segfaults, so this is public service.\n09714\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n09715\t {\n09716\t __failure = 82;\n09717\t if (!PyErr_Occurred()) {\n09718\t PyErr_SetString(PyExc_RuntimeError,\n09719\t \"Unexpected error in an Op's C code. \"\n09720\t \"No Python exception was set.\");\n09721\t }\n09722\t goto __label_82;}\n09723\t }\n09724\t if (!PyArray_Check(py_V81)) {\n09725\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n09726\t {\n09727\t __failure = 82;\n09728\t if (!PyErr_Occurred()) {\n09729\t PyErr_SetString(PyExc_RuntimeError,\n09730\t \"Unexpected error in an Op's C code. \"\n09731\t \"No Python exception was set.\");\n09732\t }\n09733\t goto __label_82;}\n09734\t }\n09735\t // We expect NPY_FLOAT64\n09736\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V81)) {\n09737\t PyArrayObject * tmp = (PyArrayObject*) py_V81;\n09738\t PyErr_Format(PyExc_NotImplementedError,\n09739\t \"expected an aligned array of type %ld \"\n09740\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n09741\t \" with %ld dimensions, with 3 last dims \"\n09742\t \"%ld, %ld, %ld\"\n09743\t \" and 3 last strides %ld %ld, %ld.\",\n09744\t (long int) NPY_FLOAT64,\n09745\t (long int) PyArray_TYPE((PyArrayObject*) py_V81),\n09746\t (long int) PyArray_NDIM(tmp),\n09747\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n09748\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n09749\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n09750\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n09751\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n09752\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n09753\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n09754\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n09755\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n09756\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n09757\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n09758\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n09759\t );\n09760\t {\n09761\t __failure = 82;\n09762\t if (!PyErr_Occurred()) {\n09763\t PyErr_SetString(PyExc_RuntimeError,\n09764\t \"Unexpected error in an Op's C code. \"\n09765\t \"No Python exception was set.\");\n09766\t }\n09767\t goto __label_82;}\n09768\t }\n09769\t // This is a TypeError to be consistent with DEBUG_MODE\n09770\t // Note: DEBUG_MODE also tells the name of the container\n09771\t if (PyArray_TYPE((PyArrayObject*) py_V81) != NPY_FLOAT64) {\n09772\t PyErr_Format(PyExc_TypeError,\n09773\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n09774\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V81));\n09775\t {\n09776\t __failure = 82;\n09777\t if (!PyErr_Occurred()) {\n09778\t PyErr_SetString(PyExc_RuntimeError,\n09779\t \"Unexpected error in an Op's C code. \"\n09780\t \"No Python exception was set.\");\n09781\t }\n09782\t goto __label_82;}\n09783\t }\n09784\t \n09785\t V81 = (PyArrayObject*)(py_V81);\n09786\t Py_XINCREF(V81);\n09787\t \n09788\t{\n09789\t\n09790\t py_V83 = PyList_GET_ITEM(storage_V83, 0);\n09791\t {Py_XINCREF(py_V83);}\n09792\t \n09793\t V83 = NULL;\n09794\t if (py_V83 == Py_None) {\n09795\t // We can either fail here or set V83 to NULL and rely on Ops\n09796\t // using tensors to handle the NULL case, but if they fail to do so\n09797\t // they'll end up with nasty segfaults, so this is public service.\n09798\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n09799\t {\n09800\t __failure = 84;\n09801\t if (!PyErr_Occurred()) {\n09802\t PyErr_SetString(PyExc_RuntimeError,\n09803\t \"Unexpected error in an Op's C code. \"\n09804\t \"No Python exception was set.\");\n09805\t }\n09806\t goto __label_84;}\n09807\t }\n09808\t if (!PyArray_Check(py_V83)) {\n09809\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n09810\t {\n09811\t __failure = 84;\n09812\t if (!PyErr_Occurred()) {\n09813\t PyErr_SetString(PyExc_RuntimeError,\n09814\t \"Unexpected error in an Op's C code. \"\n09815\t \"No Python exception was set.\");\n09816\t }\n09817\t goto __label_84;}\n09818\t }\n09819\t // We expect NPY_FLOAT64\n09820\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V83)) {\n09821\t PyArrayObject * tmp = (PyArrayObject*) py_V83;\n09822\t PyErr_Format(PyExc_NotImplementedError,\n09823\t \"expected an aligned array of type %ld \"\n09824\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n09825\t \" with %ld dimensions, with 3 last dims \"\n09826\t \"%ld, %ld, %ld\"\n09827\t \" and 3 last strides %ld %ld, %ld.\",\n09828\t (long int) NPY_FLOAT64,\n09829\t (long int) PyArray_TYPE((PyArrayObject*) py_V83),\n09830\t (long int) PyArray_NDIM(tmp),\n09831\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n09832\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n09833\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n09834\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n09835\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n09836\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n09837\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n09838\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n09839\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n09840\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n09841\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n09842\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n09843\t );\n09844\t {\n09845\t __failure = 84;\n09846\t if (!PyErr_Occurred()) {\n09847\t PyErr_SetString(PyExc_RuntimeError,\n09848\t \"Unexpected error in an Op's C code. \"\n09849\t \"No Python exception was set.\");\n09850\t }\n09851\t goto __label_84;}\n09852\t }\n09853\t // This is a TypeError to be consistent with DEBUG_MODE\n09854\t // Note: DEBUG_MODE also tells the name of the container\n09855\t if (PyArray_TYPE((PyArrayObject*) py_V83) != NPY_FLOAT64) {\n09856\t PyErr_Format(PyExc_TypeError,\n09857\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n09858\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V83));\n09859\t {\n09860\t __failure = 84;\n09861\t if (!PyErr_Occurred()) {\n09862\t PyErr_SetString(PyExc_RuntimeError,\n09863\t \"Unexpected error in an Op's C code. \"\n09864\t \"No Python exception was set.\");\n09865\t }\n09866\t goto __label_84;}\n09867\t }\n09868\t \n09869\t V83 = (PyArrayObject*)(py_V83);\n09870\t Py_XINCREF(V83);\n09871\t \n09872\t{\n09873\t\n09874\t py_V85 = PyList_GET_ITEM(storage_V85, 0);\n09875\t {Py_XINCREF(py_V85);}\n09876\t \n09877\t V85 = NULL;\n09878\t if (py_V85 == Py_None) {\n09879\t // We can either fail here or set V85 to NULL and rely on Ops\n09880\t // using tensors to handle the NULL case, but if they fail to do so\n09881\t // they'll end up with nasty segfaults, so this is public service.\n09882\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n09883\t {\n09884\t __failure = 86;\n09885\t if (!PyErr_Occurred()) {\n09886\t PyErr_SetString(PyExc_RuntimeError,\n09887\t \"Unexpected error in an Op's C code. \"\n09888\t \"No Python exception was set.\");\n09889\t }\n09890\t goto __label_86;}\n09891\t }\n09892\t if (!PyArray_Check(py_V85)) {\n09893\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n09894\t {\n09895\t __failure = 86;\n09896\t if (!PyErr_Occurred()) {\n09897\t PyErr_SetString(PyExc_RuntimeError,\n09898\t \"Unexpected error in an Op's C code. \"\n09899\t \"No Python exception was set.\");\n09900\t }\n09901\t goto __label_86;}\n09902\t }\n09903\t // We expect NPY_FLOAT64\n09904\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V85)) {\n09905\t PyArrayObject * tmp = (PyArrayObject*) py_V85;\n09906\t PyErr_Format(PyExc_NotImplementedError,\n09907\t \"expected an aligned array of type %ld \"\n09908\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n09909\t \" with %ld dimensions, with 3 last dims \"\n09910\t \"%ld, %ld, %ld\"\n09911\t \" and 3 last strides %ld %ld, %ld.\",\n09912\t (long int) NPY_FLOAT64,\n09913\t (long int) PyArray_TYPE((PyArrayObject*) py_V85),\n09914\t (long int) PyArray_NDIM(tmp),\n09915\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n09916\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n09917\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n09918\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n09919\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n09920\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n09921\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n09922\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n09923\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n09924\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n09925\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n09926\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n09927\t );\n09928\t {\n09929\t __failure = 86;\n09930\t if (!PyErr_Occurred()) {\n09931\t PyErr_SetString(PyExc_RuntimeError,\n09932\t \"Unexpected error in an Op's C code. \"\n09933\t \"No Python exception was set.\");\n09934\t }\n09935\t goto __label_86;}\n09936\t }\n09937\t // This is a TypeError to be consistent with DEBUG_MODE\n09938\t // Note: DEBUG_MODE also tells the name of the container\n09939\t if (PyArray_TYPE((PyArrayObject*) py_V85) != NPY_FLOAT64) {\n09940\t PyErr_Format(PyExc_TypeError,\n09941\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n09942\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V85));\n09943\t {\n09944\t __failure = 86;\n09945\t if (!PyErr_Occurred()) {\n09946\t PyErr_SetString(PyExc_RuntimeError,\n09947\t \"Unexpected error in an Op's C code. \"\n09948\t \"No Python exception was set.\");\n09949\t }\n09950\t goto __label_86;}\n09951\t }\n09952\t \n09953\t V85 = (PyArrayObject*)(py_V85);\n09954\t Py_XINCREF(V85);\n09955\t \n09956\t{\n09957\t\n09958\t py_V87 = PyList_GET_ITEM(storage_V87, 0);\n09959\t {Py_XINCREF(py_V87);}\n09960\t \n09961\t V87 = NULL;\n09962\t if (py_V87 == Py_None) {\n09963\t // We can either fail here or set V87 to NULL and rely on Ops\n09964\t // using tensors to handle the NULL case, but if they fail to do so\n09965\t // they'll end up with nasty segfaults, so this is public service.\n09966\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n09967\t {\n09968\t __failure = 88;\n09969\t if (!PyErr_Occurred()) {\n09970\t PyErr_SetString(PyExc_RuntimeError,\n09971\t \"Unexpected error in an Op's C code. \"\n09972\t \"No Python exception was set.\");\n09973\t }\n09974\t goto __label_88;}\n09975\t }\n09976\t if (!PyArray_Check(py_V87)) {\n09977\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n09978\t {\n09979\t __failure = 88;\n09980\t if (!PyErr_Occurred()) {\n09981\t PyErr_SetString(PyExc_RuntimeError,\n09982\t \"Unexpected error in an Op's C code. \"\n09983\t \"No Python exception was set.\");\n09984\t }\n09985\t goto __label_88;}\n09986\t }\n09987\t // We expect NPY_FLOAT64\n09988\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V87)) {\n09989\t PyArrayObject * tmp = (PyArrayObject*) py_V87;\n09990\t PyErr_Format(PyExc_NotImplementedError,\n09991\t \"expected an aligned array of type %ld \"\n09992\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n09993\t \" with %ld dimensions, with 3 last dims \"\n09994\t \"%ld, %ld, %ld\"\n09995\t \" and 3 last strides %ld %ld, %ld.\",\n09996\t (long int) NPY_FLOAT64,\n09997\t (long int) PyArray_TYPE((PyArrayObject*) py_V87),\n09998\t (long int) PyArray_NDIM(tmp),\n09999\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n10000\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n10001\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n10002\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n10003\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n10004\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n10005\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n10006\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n10007\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n10008\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n10009\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n10010\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n10011\t );\n10012\t {\n10013\t __failure = 88;\n10014\t if (!PyErr_Occurred()) {\n10015\t PyErr_SetString(PyExc_RuntimeError,\n10016\t \"Unexpected error in an Op's C code. \"\n10017\t \"No Python exception was set.\");\n10018\t }\n10019\t goto __label_88;}\n10020\t }\n10021\t // This is a TypeError to be consistent with DEBUG_MODE\n10022\t // Note: DEBUG_MODE also tells the name of the container\n10023\t if (PyArray_TYPE((PyArrayObject*) py_V87) != NPY_FLOAT64) {\n10024\t PyErr_Format(PyExc_TypeError,\n10025\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n10026\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V87));\n10027\t {\n10028\t __failure = 88;\n10029\t if (!PyErr_Occurred()) {\n10030\t PyErr_SetString(PyExc_RuntimeError,\n10031\t \"Unexpected error in an Op's C code. \"\n10032\t \"No Python exception was set.\");\n10033\t }\n10034\t goto __label_88;}\n10035\t }\n10036\t \n10037\t V87 = (PyArrayObject*)(py_V87);\n10038\t Py_XINCREF(V87);\n10039\t \n10040\t{\n10041\t\n10042\t py_V89 = PyList_GET_ITEM(storage_V89, 0);\n10043\t {Py_XINCREF(py_V89);}\n10044\t \n10045\t V89 = NULL;\n10046\t if (py_V89 == Py_None) {\n10047\t // We can either fail here or set V89 to NULL and rely on Ops\n10048\t // using tensors to handle the NULL case, but if they fail to do so\n10049\t // they'll end up with nasty segfaults, so this is public service.\n10050\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n10051\t {\n10052\t __failure = 90;\n10053\t if (!PyErr_Occurred()) {\n10054\t PyErr_SetString(PyExc_RuntimeError,\n10055\t \"Unexpected error in an Op's C code. \"\n10056\t \"No Python exception was set.\");\n10057\t }\n10058\t goto __label_90;}\n10059\t }\n10060\t if (!PyArray_Check(py_V89)) {\n10061\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n10062\t {\n10063\t __failure = 90;\n10064\t if (!PyErr_Occurred()) {\n10065\t PyErr_SetString(PyExc_RuntimeError,\n10066\t \"Unexpected error in an Op's C code. \"\n10067\t \"No Python exception was set.\");\n10068\t }\n10069\t goto __label_90;}\n10070\t }\n10071\t // We expect NPY_FLOAT64\n10072\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V89)) {\n10073\t PyArrayObject * tmp = (PyArrayObject*) py_V89;\n10074\t PyErr_Format(PyExc_NotImplementedError,\n10075\t \"expected an aligned array of type %ld \"\n10076\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n10077\t \" with %ld dimensions, with 3 last dims \"\n10078\t \"%ld, %ld, %ld\"\n10079\t \" and 3 last strides %ld %ld, %ld.\",\n10080\t (long int) NPY_FLOAT64,\n10081\t (long int) PyArray_TYPE((PyArrayObject*) py_V89),\n10082\t (long int) PyArray_NDIM(tmp),\n10083\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n10084\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n10085\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n10086\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n10087\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n10088\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n10089\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n10090\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n10091\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n10092\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n10093\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n10094\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n10095\t );\n10096\t {\n10097\t __failure = 90;\n10098\t if (!PyErr_Occurred()) {\n10099\t PyErr_SetString(PyExc_RuntimeError,\n10100\t \"Unexpected error in an Op's C code. \"\n10101\t \"No Python exception was set.\");\n10102\t }\n10103\t goto __label_90;}\n10104\t }\n10105\t // This is a TypeError to be consistent with DEBUG_MODE\n10106\t // Note: DEBUG_MODE also tells the name of the container\n10107\t if (PyArray_TYPE((PyArrayObject*) py_V89) != NPY_FLOAT64) {\n10108\t PyErr_Format(PyExc_TypeError,\n10109\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n10110\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V89));\n10111\t {\n10112\t __failure = 90;\n10113\t if (!PyErr_Occurred()) {\n10114\t PyErr_SetString(PyExc_RuntimeError,\n10115\t \"Unexpected error in an Op's C code. \"\n10116\t \"No Python exception was set.\");\n10117\t }\n10118\t goto __label_90;}\n10119\t }\n10120\t \n10121\t V89 = (PyArrayObject*)(py_V89);\n10122\t Py_XINCREF(V89);\n10123\t \n10124\t{\n10125\t\n10126\t py_V91 = PyList_GET_ITEM(storage_V91, 0);\n10127\t {Py_XINCREF(py_V91);}\n10128\t \n10129\t V91 = NULL;\n10130\t if (py_V91 == Py_None) {\n10131\t // We can either fail here or set V91 to NULL and rely on Ops\n10132\t // using tensors to handle the NULL case, but if they fail to do so\n10133\t // they'll end up with nasty segfaults, so this is public service.\n10134\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n10135\t {\n10136\t __failure = 92;\n10137\t if (!PyErr_Occurred()) {\n10138\t PyErr_SetString(PyExc_RuntimeError,\n10139\t \"Unexpected error in an Op's C code. \"\n10140\t \"No Python exception was set.\");\n10141\t }\n10142\t goto __label_92;}\n10143\t }\n10144\t if (!PyArray_Check(py_V91)) {\n10145\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n10146\t {\n10147\t __failure = 92;\n10148\t if (!PyErr_Occurred()) {\n10149\t PyErr_SetString(PyExc_RuntimeError,\n10150\t \"Unexpected error in an Op's C code. \"\n10151\t \"No Python exception was set.\");\n10152\t }\n10153\t goto __label_92;}\n10154\t }\n10155\t // We expect NPY_FLOAT64\n10156\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V91)) {\n10157\t PyArrayObject * tmp = (PyArrayObject*) py_V91;\n10158\t PyErr_Format(PyExc_NotImplementedError,\n10159\t \"expected an aligned array of type %ld \"\n10160\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n10161\t \" with %ld dimensions, with 3 last dims \"\n10162\t \"%ld, %ld, %ld\"\n10163\t \" and 3 last strides %ld %ld, %ld.\",\n10164\t (long int) NPY_FLOAT64,\n10165\t (long int) PyArray_TYPE((PyArrayObject*) py_V91),\n10166\t (long int) PyArray_NDIM(tmp),\n10167\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n10168\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n10169\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n10170\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n10171\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n10172\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n10173\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n10174\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n10175\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n10176\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n10177\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n10178\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n10179\t );\n10180\t {\n10181\t __failure = 92;\n10182\t if (!PyErr_Occurred()) {\n10183\t PyErr_SetString(PyExc_RuntimeError,\n10184\t \"Unexpected error in an Op's C code. \"\n10185\t \"No Python exception was set.\");\n10186\t }\n10187\t goto __label_92;}\n10188\t }\n10189\t // This is a TypeError to be consistent with DEBUG_MODE\n10190\t // Note: DEBUG_MODE also tells the name of the container\n10191\t if (PyArray_TYPE((PyArrayObject*) py_V91) != NPY_FLOAT64) {\n10192\t PyErr_Format(PyExc_TypeError,\n10193\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n10194\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V91));\n10195\t {\n10196\t __failure = 92;\n10197\t if (!PyErr_Occurred()) {\n10198\t PyErr_SetString(PyExc_RuntimeError,\n10199\t \"Unexpected error in an Op's C code. \"\n10200\t \"No Python exception was set.\");\n10201\t }\n10202\t goto __label_92;}\n10203\t }\n10204\t \n10205\t V91 = (PyArrayObject*)(py_V91);\n10206\t Py_XINCREF(V91);\n10207\t \n10208\t{\n10209\t\n10210\t py_V93 = PyList_GET_ITEM(storage_V93, 0);\n10211\t {Py_XINCREF(py_V93);}\n10212\t \n10213\t V93 = NULL;\n10214\t if (py_V93 == Py_None) {\n10215\t // We can either fail here or set V93 to NULL and rely on Ops\n10216\t // using tensors to handle the NULL case, but if they fail to do so\n10217\t // they'll end up with nasty segfaults, so this is public service.\n10218\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n10219\t {\n10220\t __failure = 94;\n10221\t if (!PyErr_Occurred()) {\n10222\t PyErr_SetString(PyExc_RuntimeError,\n10223\t \"Unexpected error in an Op's C code. \"\n10224\t \"No Python exception was set.\");\n10225\t }\n10226\t goto __label_94;}\n10227\t }\n10228\t if (!PyArray_Check(py_V93)) {\n10229\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n10230\t {\n10231\t __failure = 94;\n10232\t if (!PyErr_Occurred()) {\n10233\t PyErr_SetString(PyExc_RuntimeError,\n10234\t \"Unexpected error in an Op's C code. \"\n10235\t \"No Python exception was set.\");\n10236\t }\n10237\t goto __label_94;}\n10238\t }\n10239\t // We expect NPY_FLOAT64\n10240\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V93)) {\n10241\t PyArrayObject * tmp = (PyArrayObject*) py_V93;\n10242\t PyErr_Format(PyExc_NotImplementedError,\n10243\t \"expected an aligned array of type %ld \"\n10244\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n10245\t \" with %ld dimensions, with 3 last dims \"\n10246\t \"%ld, %ld, %ld\"\n10247\t \" and 3 last strides %ld %ld, %ld.\",\n10248\t (long int) NPY_FLOAT64,\n10249\t (long int) PyArray_TYPE((PyArrayObject*) py_V93),\n10250\t (long int) PyArray_NDIM(tmp),\n10251\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n10252\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n10253\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n10254\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n10255\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n10256\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n10257\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n10258\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n10259\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n10260\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n10261\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n10262\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n10263\t );\n10264\t {\n10265\t __failure = 94;\n10266\t if (!PyErr_Occurred()) {\n10267\t PyErr_SetString(PyExc_RuntimeError,\n10268\t \"Unexpected error in an Op's C code. \"\n10269\t \"No Python exception was set.\");\n10270\t }\n10271\t goto __label_94;}\n10272\t }\n10273\t // This is a TypeError to be consistent with DEBUG_MODE\n10274\t // Note: DEBUG_MODE also tells the name of the container\n10275\t if (PyArray_TYPE((PyArrayObject*) py_V93) != NPY_FLOAT64) {\n10276\t PyErr_Format(PyExc_TypeError,\n10277\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n10278\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V93));\n10279\t {\n10280\t __failure = 94;\n10281\t if (!PyErr_Occurred()) {\n10282\t PyErr_SetString(PyExc_RuntimeError,\n10283\t \"Unexpected error in an Op's C code. \"\n10284\t \"No Python exception was set.\");\n10285\t }\n10286\t goto __label_94;}\n10287\t }\n10288\t \n10289\t V93 = (PyArrayObject*)(py_V93);\n10290\t Py_XINCREF(V93);\n10291\t \n10292\t{\n10293\t\n10294\t py_V95 = PyList_GET_ITEM(storage_V95, 0);\n10295\t {Py_XINCREF(py_V95);}\n10296\t \n10297\t V95 = NULL;\n10298\t if (py_V95 == Py_None) {\n10299\t // We can either fail here or set V95 to NULL and rely on Ops\n10300\t // using tensors to handle the NULL case, but if they fail to do so\n10301\t // they'll end up with nasty segfaults, so this is public service.\n10302\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n10303\t {\n10304\t __failure = 96;\n10305\t if (!PyErr_Occurred()) {\n10306\t PyErr_SetString(PyExc_RuntimeError,\n10307\t \"Unexpected error in an Op's C code. \"\n10308\t \"No Python exception was set.\");\n10309\t }\n10310\t goto __label_96;}\n10311\t }\n10312\t if (!PyArray_Check(py_V95)) {\n10313\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n10314\t {\n10315\t __failure = 96;\n10316\t if (!PyErr_Occurred()) {\n10317\t PyErr_SetString(PyExc_RuntimeError,\n10318\t \"Unexpected error in an Op's C code. \"\n10319\t \"No Python exception was set.\");\n10320\t }\n10321\t goto __label_96;}\n10322\t }\n10323\t // We expect NPY_FLOAT64\n10324\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V95)) {\n10325\t PyArrayObject * tmp = (PyArrayObject*) py_V95;\n10326\t PyErr_Format(PyExc_NotImplementedError,\n10327\t \"expected an aligned array of type %ld \"\n10328\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n10329\t \" with %ld dimensions, with 3 last dims \"\n10330\t \"%ld, %ld, %ld\"\n10331\t \" and 3 last strides %ld %ld, %ld.\",\n10332\t (long int) NPY_FLOAT64,\n10333\t (long int) PyArray_TYPE((PyArrayObject*) py_V95),\n10334\t (long int) PyArray_NDIM(tmp),\n10335\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n10336\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n10337\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n10338\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n10339\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n10340\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n10341\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n10342\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n10343\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n10344\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n10345\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n10346\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n10347\t );\n10348\t {\n10349\t __failure = 96;\n10350\t if (!PyErr_Occurred()) {\n10351\t PyErr_SetString(PyExc_RuntimeError,\n10352\t \"Unexpected error in an Op's C code. \"\n10353\t \"No Python exception was set.\");\n10354\t }\n10355\t goto __label_96;}\n10356\t }\n10357\t // This is a TypeError to be consistent with DEBUG_MODE\n10358\t // Note: DEBUG_MODE also tells the name of the container\n10359\t if (PyArray_TYPE((PyArrayObject*) py_V95) != NPY_FLOAT64) {\n10360\t PyErr_Format(PyExc_TypeError,\n10361\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n10362\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V95));\n10363\t {\n10364\t __failure = 96;\n10365\t if (!PyErr_Occurred()) {\n10366\t PyErr_SetString(PyExc_RuntimeError,\n10367\t \"Unexpected error in an Op's C code. \"\n10368\t \"No Python exception was set.\");\n10369\t }\n10370\t goto __label_96;}\n10371\t }\n10372\t \n10373\t V95 = (PyArrayObject*)(py_V95);\n10374\t Py_XINCREF(V95);\n10375\t \n10376\t{\n10377\t\n10378\t py_V97 = PyList_GET_ITEM(storage_V97, 0);\n10379\t {Py_XINCREF(py_V97);}\n10380\t \n10381\t V97 = NULL;\n10382\t if (py_V97 == Py_None) {\n10383\t // We can either fail here or set V97 to NULL and rely on Ops\n10384\t // using tensors to handle the NULL case, but if they fail to do so\n10385\t // they'll end up with nasty segfaults, so this is public service.\n10386\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n10387\t {\n10388\t __failure = 98;\n10389\t if (!PyErr_Occurred()) {\n10390\t PyErr_SetString(PyExc_RuntimeError,\n10391\t \"Unexpected error in an Op's C code. \"\n10392\t \"No Python exception was set.\");\n10393\t }\n10394\t goto __label_98;}\n10395\t }\n10396\t if (!PyArray_Check(py_V97)) {\n10397\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n10398\t {\n10399\t __failure = 98;\n10400\t if (!PyErr_Occurred()) {\n10401\t PyErr_SetString(PyExc_RuntimeError,\n10402\t \"Unexpected error in an Op's C code. \"\n10403\t \"No Python exception was set.\");\n10404\t }\n10405\t goto __label_98;}\n10406\t }\n10407\t // We expect NPY_FLOAT64\n10408\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V97)) {\n10409\t PyArrayObject * tmp = (PyArrayObject*) py_V97;\n10410\t PyErr_Format(PyExc_NotImplementedError,\n10411\t \"expected an aligned array of type %ld \"\n10412\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n10413\t \" with %ld dimensions, with 3 last dims \"\n10414\t \"%ld, %ld, %ld\"\n10415\t \" and 3 last strides %ld %ld, %ld.\",\n10416\t (long int) NPY_FLOAT64,\n10417\t (long int) PyArray_TYPE((PyArrayObject*) py_V97),\n10418\t (long int) PyArray_NDIM(tmp),\n10419\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n10420\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n10421\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n10422\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n10423\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n10424\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n10425\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n10426\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n10427\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n10428\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n10429\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n10430\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n10431\t );\n10432\t {\n10433\t __failure = 98;\n10434\t if (!PyErr_Occurred()) {\n10435\t PyErr_SetString(PyExc_RuntimeError,\n10436\t \"Unexpected error in an Op's C code. \"\n10437\t \"No Python exception was set.\");\n10438\t }\n10439\t goto __label_98;}\n10440\t }\n10441\t // This is a TypeError to be consistent with DEBUG_MODE\n10442\t // Note: DEBUG_MODE also tells the name of the container\n10443\t if (PyArray_TYPE((PyArrayObject*) py_V97) != NPY_FLOAT64) {\n10444\t PyErr_Format(PyExc_TypeError,\n10445\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n10446\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V97));\n10447\t {\n10448\t __failure = 98;\n10449\t if (!PyErr_Occurred()) {\n10450\t PyErr_SetString(PyExc_RuntimeError,\n10451\t \"Unexpected error in an Op's C code. \"\n10452\t \"No Python exception was set.\");\n10453\t }\n10454\t goto __label_98;}\n10455\t }\n10456\t \n10457\t V97 = (PyArrayObject*)(py_V97);\n10458\t Py_XINCREF(V97);\n10459\t \n10460\t{\n10461\t\n10462\t py_V99 = PyList_GET_ITEM(storage_V99, 0);\n10463\t {Py_XINCREF(py_V99);}\n10464\t \n10465\t V99 = NULL;\n10466\t if (py_V99 == Py_None) {\n10467\t // We can either fail here or set V99 to NULL and rely on Ops\n10468\t // using tensors to handle the NULL case, but if they fail to do so\n10469\t // they'll end up with nasty segfaults, so this is public service.\n10470\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n10471\t {\n10472\t __failure = 100;\n10473\t if (!PyErr_Occurred()) {\n10474\t PyErr_SetString(PyExc_RuntimeError,\n10475\t \"Unexpected error in an Op's C code. \"\n10476\t \"No Python exception was set.\");\n10477\t }\n10478\t goto __label_100;}\n10479\t }\n10480\t if (!PyArray_Check(py_V99)) {\n10481\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n10482\t {\n10483\t __failure = 100;\n10484\t if (!PyErr_Occurred()) {\n10485\t PyErr_SetString(PyExc_RuntimeError,\n10486\t \"Unexpected error in an Op's C code. \"\n10487\t \"No Python exception was set.\");\n10488\t }\n10489\t goto __label_100;}\n10490\t }\n10491\t // We expect NPY_FLOAT64\n10492\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V99)) {\n10493\t PyArrayObject * tmp = (PyArrayObject*) py_V99;\n10494\t PyErr_Format(PyExc_NotImplementedError,\n10495\t \"expected an aligned array of type %ld \"\n10496\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n10497\t \" with %ld dimensions, with 3 last dims \"\n10498\t \"%ld, %ld, %ld\"\n10499\t \" and 3 last strides %ld %ld, %ld.\",\n10500\t (long int) NPY_FLOAT64,\n10501\t (long int) PyArray_TYPE((PyArrayObject*) py_V99),\n10502\t (long int) PyArray_NDIM(tmp),\n10503\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n10504\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n10505\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n10506\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n10507\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n10508\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n10509\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n10510\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n10511\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n10512\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n10513\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n10514\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n10515\t );\n10516\t {\n10517\t __failure = 100;\n10518\t if (!PyErr_Occurred()) {\n10519\t PyErr_SetString(PyExc_RuntimeError,\n10520\t \"Unexpected error in an Op's C code. \"\n10521\t \"No Python exception was set.\");\n10522\t }\n10523\t goto __label_100;}\n10524\t }\n10525\t // This is a TypeError to be consistent with DEBUG_MODE\n10526\t // Note: DEBUG_MODE also tells the name of the container\n10527\t if (PyArray_TYPE((PyArrayObject*) py_V99) != NPY_FLOAT64) {\n10528\t PyErr_Format(PyExc_TypeError,\n10529\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n10530\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V99));\n10531\t {\n10532\t __failure = 100;\n10533\t if (!PyErr_Occurred()) {\n10534\t PyErr_SetString(PyExc_RuntimeError,\n10535\t \"Unexpected error in an Op's C code. \"\n10536\t \"No Python exception was set.\");\n10537\t }\n10538\t goto __label_100;}\n10539\t }\n10540\t \n10541\t V99 = (PyArrayObject*)(py_V99);\n10542\t Py_XINCREF(V99);\n10543\t \n10544\t{\n10545\t\n10546\t py_V101 = PyList_GET_ITEM(storage_V101, 0);\n10547\t {Py_XINCREF(py_V101);}\n10548\t \n10549\t V101 = NULL;\n10550\t if (py_V101 == Py_None) {\n10551\t // We can either fail here or set V101 to NULL and rely on Ops\n10552\t // using tensors to handle the NULL case, but if they fail to do so\n10553\t // they'll end up with nasty segfaults, so this is public service.\n10554\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n10555\t {\n10556\t __failure = 102;\n10557\t if (!PyErr_Occurred()) {\n10558\t PyErr_SetString(PyExc_RuntimeError,\n10559\t \"Unexpected error in an Op's C code. \"\n10560\t \"No Python exception was set.\");\n10561\t }\n10562\t goto __label_102;}\n10563\t }\n10564\t if (!PyArray_Check(py_V101)) {\n10565\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n10566\t {\n10567\t __failure = 102;\n10568\t if (!PyErr_Occurred()) {\n10569\t PyErr_SetString(PyExc_RuntimeError,\n10570\t \"Unexpected error in an Op's C code. \"\n10571\t \"No Python exception was set.\");\n10572\t }\n10573\t goto __label_102;}\n10574\t }\n10575\t // We expect NPY_FLOAT64\n10576\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V101)) {\n10577\t PyArrayObject * tmp = (PyArrayObject*) py_V101;\n10578\t PyErr_Format(PyExc_NotImplementedError,\n10579\t \"expected an aligned array of type %ld \"\n10580\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n10581\t \" with %ld dimensions, with 3 last dims \"\n10582\t \"%ld, %ld, %ld\"\n10583\t \" and 3 last strides %ld %ld, %ld.\",\n10584\t (long int) NPY_FLOAT64,\n10585\t (long int) PyArray_TYPE((PyArrayObject*) py_V101),\n10586\t (long int) PyArray_NDIM(tmp),\n10587\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n10588\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n10589\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n10590\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n10591\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n10592\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n10593\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n10594\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n10595\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n10596\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n10597\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n10598\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n10599\t );\n10600\t {\n10601\t __failure = 102;\n10602\t if (!PyErr_Occurred()) {\n10603\t PyErr_SetString(PyExc_RuntimeError,\n10604\t \"Unexpected error in an Op's C code. \"\n10605\t \"No Python exception was set.\");\n10606\t }\n10607\t goto __label_102;}\n10608\t }\n10609\t // This is a TypeError to be consistent with DEBUG_MODE\n10610\t // Note: DEBUG_MODE also tells the name of the container\n10611\t if (PyArray_TYPE((PyArrayObject*) py_V101) != NPY_FLOAT64) {\n10612\t PyErr_Format(PyExc_TypeError,\n10613\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n10614\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V101));\n10615\t {\n10616\t __failure = 102;\n10617\t if (!PyErr_Occurred()) {\n10618\t PyErr_SetString(PyExc_RuntimeError,\n10619\t \"Unexpected error in an Op's C code. \"\n10620\t \"No Python exception was set.\");\n10621\t }\n10622\t goto __label_102;}\n10623\t }\n10624\t \n10625\t V101 = (PyArrayObject*)(py_V101);\n10626\t Py_XINCREF(V101);\n10627\t \n10628\t{\n10629\t\n10630\t py_V103 = PyList_GET_ITEM(storage_V103, 0);\n10631\t {Py_XINCREF(py_V103);}\n10632\t \n10633\t V103 = NULL;\n10634\t if (py_V103 == Py_None) {\n10635\t // We can either fail here or set V103 to NULL and rely on Ops\n10636\t // using tensors to handle the NULL case, but if they fail to do so\n10637\t // they'll end up with nasty segfaults, so this is public service.\n10638\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n10639\t {\n10640\t __failure = 104;\n10641\t if (!PyErr_Occurred()) {\n10642\t PyErr_SetString(PyExc_RuntimeError,\n10643\t \"Unexpected error in an Op's C code. \"\n10644\t \"No Python exception was set.\");\n10645\t }\n10646\t goto __label_104;}\n10647\t }\n10648\t if (!PyArray_Check(py_V103)) {\n10649\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n10650\t {\n10651\t __failure = 104;\n10652\t if (!PyErr_Occurred()) {\n10653\t PyErr_SetString(PyExc_RuntimeError,\n10654\t \"Unexpected error in an Op's C code. \"\n10655\t \"No Python exception was set.\");\n10656\t }\n10657\t goto __label_104;}\n10658\t }\n10659\t // We expect NPY_FLOAT64\n10660\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V103)) {\n10661\t PyArrayObject * tmp = (PyArrayObject*) py_V103;\n10662\t PyErr_Format(PyExc_NotImplementedError,\n10663\t \"expected an aligned array of type %ld \"\n10664\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n10665\t \" with %ld dimensions, with 3 last dims \"\n10666\t \"%ld, %ld, %ld\"\n10667\t \" and 3 last strides %ld %ld, %ld.\",\n10668\t (long int) NPY_FLOAT64,\n10669\t (long int) PyArray_TYPE((PyArrayObject*) py_V103),\n10670\t (long int) PyArray_NDIM(tmp),\n10671\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n10672\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n10673\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n10674\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n10675\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n10676\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n10677\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n10678\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n10679\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n10680\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n10681\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n10682\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n10683\t );\n10684\t {\n10685\t __failure = 104;\n10686\t if (!PyErr_Occurred()) {\n10687\t PyErr_SetString(PyExc_RuntimeError,\n10688\t \"Unexpected error in an Op's C code. \"\n10689\t \"No Python exception was set.\");\n10690\t }\n10691\t goto __label_104;}\n10692\t }\n10693\t // This is a TypeError to be consistent with DEBUG_MODE\n10694\t // Note: DEBUG_MODE also tells the name of the container\n10695\t if (PyArray_TYPE((PyArrayObject*) py_V103) != NPY_FLOAT64) {\n10696\t PyErr_Format(PyExc_TypeError,\n10697\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n10698\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V103));\n10699\t {\n10700\t __failure = 104;\n10701\t if (!PyErr_Occurred()) {\n10702\t PyErr_SetString(PyExc_RuntimeError,\n10703\t \"Unexpected error in an Op's C code. \"\n10704\t \"No Python exception was set.\");\n10705\t }\n10706\t goto __label_104;}\n10707\t }\n10708\t \n10709\t V103 = (PyArrayObject*)(py_V103);\n10710\t Py_XINCREF(V103);\n10711\t \n10712\t{\n10713\t\n10714\t py_V105 = PyList_GET_ITEM(storage_V105, 0);\n10715\t {Py_XINCREF(py_V105);}\n10716\t \n10717\t V105 = NULL;\n10718\t if (py_V105 == Py_None) {\n10719\t // We can either fail here or set V105 to NULL and rely on Ops\n10720\t // using tensors to handle the NULL case, but if they fail to do so\n10721\t // they'll end up with nasty segfaults, so this is public service.\n10722\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n10723\t {\n10724\t __failure = 106;\n10725\t if (!PyErr_Occurred()) {\n10726\t PyErr_SetString(PyExc_RuntimeError,\n10727\t \"Unexpected error in an Op's C code. \"\n10728\t \"No Python exception was set.\");\n10729\t }\n10730\t goto __label_106;}\n10731\t }\n10732\t if (!PyArray_Check(py_V105)) {\n10733\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n10734\t {\n10735\t __failure = 106;\n10736\t if (!PyErr_Occurred()) {\n10737\t PyErr_SetString(PyExc_RuntimeError,\n10738\t \"Unexpected error in an Op's C code. \"\n10739\t \"No Python exception was set.\");\n10740\t }\n10741\t goto __label_106;}\n10742\t }\n10743\t // We expect NPY_FLOAT64\n10744\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V105)) {\n10745\t PyArrayObject * tmp = (PyArrayObject*) py_V105;\n10746\t PyErr_Format(PyExc_NotImplementedError,\n10747\t \"expected an aligned array of type %ld \"\n10748\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n10749\t \" with %ld dimensions, with 3 last dims \"\n10750\t \"%ld, %ld, %ld\"\n10751\t \" and 3 last strides %ld %ld, %ld.\",\n10752\t (long int) NPY_FLOAT64,\n10753\t (long int) PyArray_TYPE((PyArrayObject*) py_V105),\n10754\t (long int) PyArray_NDIM(tmp),\n10755\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n10756\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n10757\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n10758\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n10759\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n10760\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n10761\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n10762\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n10763\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n10764\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n10765\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n10766\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n10767\t );\n10768\t {\n10769\t __failure = 106;\n10770\t if (!PyErr_Occurred()) {\n10771\t PyErr_SetString(PyExc_RuntimeError,\n10772\t \"Unexpected error in an Op's C code. \"\n10773\t \"No Python exception was set.\");\n10774\t }\n10775\t goto __label_106;}\n10776\t }\n10777\t // This is a TypeError to be consistent with DEBUG_MODE\n10778\t // Note: DEBUG_MODE also tells the name of the container\n10779\t if (PyArray_TYPE((PyArrayObject*) py_V105) != NPY_FLOAT64) {\n10780\t PyErr_Format(PyExc_TypeError,\n10781\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n10782\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V105));\n10783\t {\n10784\t __failure = 106;\n10785\t if (!PyErr_Occurred()) {\n10786\t PyErr_SetString(PyExc_RuntimeError,\n10787\t \"Unexpected error in an Op's C code. \"\n10788\t \"No Python exception was set.\");\n10789\t }\n10790\t goto __label_106;}\n10791\t }\n10792\t \n10793\t V105 = (PyArrayObject*)(py_V105);\n10794\t Py_XINCREF(V105);\n10795\t \n10796\t{\n10797\t\n10798\t py_V107 = PyList_GET_ITEM(storage_V107, 0);\n10799\t {Py_XINCREF(py_V107);}\n10800\t \n10801\t V107 = NULL;\n10802\t if (py_V107 == Py_None) {\n10803\t // We can either fail here or set V107 to NULL and rely on Ops\n10804\t // using tensors to handle the NULL case, but if they fail to do so\n10805\t // they'll end up with nasty segfaults, so this is public service.\n10806\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n10807\t {\n10808\t __failure = 108;\n10809\t if (!PyErr_Occurred()) {\n10810\t PyErr_SetString(PyExc_RuntimeError,\n10811\t \"Unexpected error in an Op's C code. \"\n10812\t \"No Python exception was set.\");\n10813\t }\n10814\t goto __label_108;}\n10815\t }\n10816\t if (!PyArray_Check(py_V107)) {\n10817\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n10818\t {\n10819\t __failure = 108;\n10820\t if (!PyErr_Occurred()) {\n10821\t PyErr_SetString(PyExc_RuntimeError,\n10822\t \"Unexpected error in an Op's C code. \"\n10823\t \"No Python exception was set.\");\n10824\t }\n10825\t goto __label_108;}\n10826\t }\n10827\t // We expect NPY_FLOAT64\n10828\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V107)) {\n10829\t PyArrayObject * tmp = (PyArrayObject*) py_V107;\n10830\t PyErr_Format(PyExc_NotImplementedError,\n10831\t \"expected an aligned array of type %ld \"\n10832\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n10833\t \" with %ld dimensions, with 3 last dims \"\n10834\t \"%ld, %ld, %ld\"\n10835\t \" and 3 last strides %ld %ld, %ld.\",\n10836\t (long int) NPY_FLOAT64,\n10837\t (long int) PyArray_TYPE((PyArrayObject*) py_V107),\n10838\t (long int) PyArray_NDIM(tmp),\n10839\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n10840\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n10841\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n10842\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n10843\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n10844\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n10845\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n10846\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n10847\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n10848\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n10849\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n10850\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n10851\t );\n10852\t {\n10853\t __failure = 108;\n10854\t if (!PyErr_Occurred()) {\n10855\t PyErr_SetString(PyExc_RuntimeError,\n10856\t \"Unexpected error in an Op's C code. \"\n10857\t \"No Python exception was set.\");\n10858\t }\n10859\t goto __label_108;}\n10860\t }\n10861\t // This is a TypeError to be consistent with DEBUG_MODE\n10862\t // Note: DEBUG_MODE also tells the name of the container\n10863\t if (PyArray_TYPE((PyArrayObject*) py_V107) != NPY_FLOAT64) {\n10864\t PyErr_Format(PyExc_TypeError,\n10865\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n10866\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V107));\n10867\t {\n10868\t __failure = 108;\n10869\t if (!PyErr_Occurred()) {\n10870\t PyErr_SetString(PyExc_RuntimeError,\n10871\t \"Unexpected error in an Op's C code. \"\n10872\t \"No Python exception was set.\");\n10873\t }\n10874\t goto __label_108;}\n10875\t }\n10876\t \n10877\t V107 = (PyArrayObject*)(py_V107);\n10878\t Py_XINCREF(V107);\n10879\t \n10880\t{\n10881\t\n10882\t py_V109 = PyList_GET_ITEM(storage_V109, 0);\n10883\t {Py_XINCREF(py_V109);}\n10884\t \n10885\t V109 = NULL;\n10886\t if (py_V109 == Py_None) {\n10887\t // We can either fail here or set V109 to NULL and rely on Ops\n10888\t // using tensors to handle the NULL case, but if they fail to do so\n10889\t // they'll end up with nasty segfaults, so this is public service.\n10890\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n10891\t {\n10892\t __failure = 110;\n10893\t if (!PyErr_Occurred()) {\n10894\t PyErr_SetString(PyExc_RuntimeError,\n10895\t \"Unexpected error in an Op's C code. \"\n10896\t \"No Python exception was set.\");\n10897\t }\n10898\t goto __label_110;}\n10899\t }\n10900\t if (!PyArray_Check(py_V109)) {\n10901\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n10902\t {\n10903\t __failure = 110;\n10904\t if (!PyErr_Occurred()) {\n10905\t PyErr_SetString(PyExc_RuntimeError,\n10906\t \"Unexpected error in an Op's C code. \"\n10907\t \"No Python exception was set.\");\n10908\t }\n10909\t goto __label_110;}\n10910\t }\n10911\t // We expect NPY_FLOAT64\n10912\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V109)) {\n10913\t PyArrayObject * tmp = (PyArrayObject*) py_V109;\n10914\t PyErr_Format(PyExc_NotImplementedError,\n10915\t \"expected an aligned array of type %ld \"\n10916\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n10917\t \" with %ld dimensions, with 3 last dims \"\n10918\t \"%ld, %ld, %ld\"\n10919\t \" and 3 last strides %ld %ld, %ld.\",\n10920\t (long int) NPY_FLOAT64,\n10921\t (long int) PyArray_TYPE((PyArrayObject*) py_V109),\n10922\t (long int) PyArray_NDIM(tmp),\n10923\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n10924\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n10925\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n10926\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n10927\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n10928\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n10929\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n10930\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n10931\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n10932\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n10933\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n10934\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n10935\t );\n10936\t {\n10937\t __failure = 110;\n10938\t if (!PyErr_Occurred()) {\n10939\t PyErr_SetString(PyExc_RuntimeError,\n10940\t \"Unexpected error in an Op's C code. \"\n10941\t \"No Python exception was set.\");\n10942\t }\n10943\t goto __label_110;}\n10944\t }\n10945\t // This is a TypeError to be consistent with DEBUG_MODE\n10946\t // Note: DEBUG_MODE also tells the name of the container\n10947\t if (PyArray_TYPE((PyArrayObject*) py_V109) != NPY_FLOAT64) {\n10948\t PyErr_Format(PyExc_TypeError,\n10949\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n10950\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V109));\n10951\t {\n10952\t __failure = 110;\n10953\t if (!PyErr_Occurred()) {\n10954\t PyErr_SetString(PyExc_RuntimeError,\n10955\t \"Unexpected error in an Op's C code. \"\n10956\t \"No Python exception was set.\");\n10957\t }\n10958\t goto __label_110;}\n10959\t }\n10960\t \n10961\t V109 = (PyArrayObject*)(py_V109);\n10962\t Py_XINCREF(V109);\n10963\t \n10964\t{\n10965\t\n10966\t py_V111 = PyList_GET_ITEM(storage_V111, 0);\n10967\t {Py_XINCREF(py_V111);}\n10968\t \n10969\t V111 = NULL;\n10970\t if (py_V111 == Py_None) {\n10971\t // We can either fail here or set V111 to NULL and rely on Ops\n10972\t // using tensors to handle the NULL case, but if they fail to do so\n10973\t // they'll end up with nasty segfaults, so this is public service.\n10974\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n10975\t {\n10976\t __failure = 112;\n10977\t if (!PyErr_Occurred()) {\n10978\t PyErr_SetString(PyExc_RuntimeError,\n10979\t \"Unexpected error in an Op's C code. \"\n10980\t \"No Python exception was set.\");\n10981\t }\n10982\t goto __label_112;}\n10983\t }\n10984\t if (!PyArray_Check(py_V111)) {\n10985\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n10986\t {\n10987\t __failure = 112;\n10988\t if (!PyErr_Occurred()) {\n10989\t PyErr_SetString(PyExc_RuntimeError,\n10990\t \"Unexpected error in an Op's C code. \"\n10991\t \"No Python exception was set.\");\n10992\t }\n10993\t goto __label_112;}\n10994\t }\n10995\t // We expect NPY_FLOAT64\n10996\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V111)) {\n10997\t PyArrayObject * tmp = (PyArrayObject*) py_V111;\n10998\t PyErr_Format(PyExc_NotImplementedError,\n10999\t \"expected an aligned array of type %ld \"\n11000\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n11001\t \" with %ld dimensions, with 3 last dims \"\n11002\t \"%ld, %ld, %ld\"\n11003\t \" and 3 last strides %ld %ld, %ld.\",\n11004\t (long int) NPY_FLOAT64,\n11005\t (long int) PyArray_TYPE((PyArrayObject*) py_V111),\n11006\t (long int) PyArray_NDIM(tmp),\n11007\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n11008\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n11009\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n11010\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n11011\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n11012\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n11013\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n11014\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n11015\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n11016\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n11017\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n11018\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n11019\t );\n11020\t {\n11021\t __failure = 112;\n11022\t if (!PyErr_Occurred()) {\n11023\t PyErr_SetString(PyExc_RuntimeError,\n11024\t \"Unexpected error in an Op's C code. \"\n11025\t \"No Python exception was set.\");\n11026\t }\n11027\t goto __label_112;}\n11028\t }\n11029\t // This is a TypeError to be consistent with DEBUG_MODE\n11030\t // Note: DEBUG_MODE also tells the name of the container\n11031\t if (PyArray_TYPE((PyArrayObject*) py_V111) != NPY_FLOAT64) {\n11032\t PyErr_Format(PyExc_TypeError,\n11033\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n11034\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V111));\n11035\t {\n11036\t __failure = 112;\n11037\t if (!PyErr_Occurred()) {\n11038\t PyErr_SetString(PyExc_RuntimeError,\n11039\t \"Unexpected error in an Op's C code. \"\n11040\t \"No Python exception was set.\");\n11041\t }\n11042\t goto __label_112;}\n11043\t }\n11044\t \n11045\t V111 = (PyArrayObject*)(py_V111);\n11046\t Py_XINCREF(V111);\n11047\t \n11048\t{\n11049\t\n11050\t py_V113 = PyList_GET_ITEM(storage_V113, 0);\n11051\t {Py_XINCREF(py_V113);}\n11052\t \n11053\t V113 = NULL;\n11054\t if (py_V113 == Py_None) {\n11055\t // We can either fail here or set V113 to NULL and rely on Ops\n11056\t // using tensors to handle the NULL case, but if they fail to do so\n11057\t // they'll end up with nasty segfaults, so this is public service.\n11058\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n11059\t {\n11060\t __failure = 114;\n11061\t if (!PyErr_Occurred()) {\n11062\t PyErr_SetString(PyExc_RuntimeError,\n11063\t \"Unexpected error in an Op's C code. \"\n11064\t \"No Python exception was set.\");\n11065\t }\n11066\t goto __label_114;}\n11067\t }\n11068\t if (!PyArray_Check(py_V113)) {\n11069\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n11070\t {\n11071\t __failure = 114;\n11072\t if (!PyErr_Occurred()) {\n11073\t PyErr_SetString(PyExc_RuntimeError,\n11074\t \"Unexpected error in an Op's C code. \"\n11075\t \"No Python exception was set.\");\n11076\t }\n11077\t goto __label_114;}\n11078\t }\n11079\t // We expect NPY_FLOAT64\n11080\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V113)) {\n11081\t PyArrayObject * tmp = (PyArrayObject*) py_V113;\n11082\t PyErr_Format(PyExc_NotImplementedError,\n11083\t \"expected an aligned array of type %ld \"\n11084\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n11085\t \" with %ld dimensions, with 3 last dims \"\n11086\t \"%ld, %ld, %ld\"\n11087\t \" and 3 last strides %ld %ld, %ld.\",\n11088\t (long int) NPY_FLOAT64,\n11089\t (long int) PyArray_TYPE((PyArrayObject*) py_V113),\n11090\t (long int) PyArray_NDIM(tmp),\n11091\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n11092\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n11093\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n11094\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n11095\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n11096\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n11097\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n11098\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n11099\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n11100\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n11101\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n11102\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n11103\t );\n11104\t {\n11105\t __failure = 114;\n11106\t if (!PyErr_Occurred()) {\n11107\t PyErr_SetString(PyExc_RuntimeError,\n11108\t \"Unexpected error in an Op's C code. \"\n11109\t \"No Python exception was set.\");\n11110\t }\n11111\t goto __label_114;}\n11112\t }\n11113\t // This is a TypeError to be consistent with DEBUG_MODE\n11114\t // Note: DEBUG_MODE also tells the name of the container\n11115\t if (PyArray_TYPE((PyArrayObject*) py_V113) != NPY_FLOAT64) {\n11116\t PyErr_Format(PyExc_TypeError,\n11117\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n11118\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V113));\n11119\t {\n11120\t __failure = 114;\n11121\t if (!PyErr_Occurred()) {\n11122\t PyErr_SetString(PyExc_RuntimeError,\n11123\t \"Unexpected error in an Op's C code. \"\n11124\t \"No Python exception was set.\");\n11125\t }\n11126\t goto __label_114;}\n11127\t }\n11128\t \n11129\t V113 = (PyArrayObject*)(py_V113);\n11130\t Py_XINCREF(V113);\n11131\t \n11132\t{\n11133\t\n11134\t py_V115 = PyList_GET_ITEM(storage_V115, 0);\n11135\t {Py_XINCREF(py_V115);}\n11136\t \n11137\t V115 = NULL;\n11138\t if (py_V115 == Py_None) {\n11139\t // We can either fail here or set V115 to NULL and rely on Ops\n11140\t // using tensors to handle the NULL case, but if they fail to do so\n11141\t // they'll end up with nasty segfaults, so this is public service.\n11142\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n11143\t {\n11144\t __failure = 116;\n11145\t if (!PyErr_Occurred()) {\n11146\t PyErr_SetString(PyExc_RuntimeError,\n11147\t \"Unexpected error in an Op's C code. \"\n11148\t \"No Python exception was set.\");\n11149\t }\n11150\t goto __label_116;}\n11151\t }\n11152\t if (!PyArray_Check(py_V115)) {\n11153\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n11154\t {\n11155\t __failure = 116;\n11156\t if (!PyErr_Occurred()) {\n11157\t PyErr_SetString(PyExc_RuntimeError,\n11158\t \"Unexpected error in an Op's C code. \"\n11159\t \"No Python exception was set.\");\n11160\t }\n11161\t goto __label_116;}\n11162\t }\n11163\t // We expect NPY_FLOAT64\n11164\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V115)) {\n11165\t PyArrayObject * tmp = (PyArrayObject*) py_V115;\n11166\t PyErr_Format(PyExc_NotImplementedError,\n11167\t \"expected an aligned array of type %ld \"\n11168\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n11169\t \" with %ld dimensions, with 3 last dims \"\n11170\t \"%ld, %ld, %ld\"\n11171\t \" and 3 last strides %ld %ld, %ld.\",\n11172\t (long int) NPY_FLOAT64,\n11173\t (long int) PyArray_TYPE((PyArrayObject*) py_V115),\n11174\t (long int) PyArray_NDIM(tmp),\n11175\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n11176\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n11177\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n11178\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n11179\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n11180\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n11181\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n11182\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n11183\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n11184\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n11185\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n11186\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n11187\t );\n11188\t {\n11189\t __failure = 116;\n11190\t if (!PyErr_Occurred()) {\n11191\t PyErr_SetString(PyExc_RuntimeError,\n11192\t \"Unexpected error in an Op's C code. \"\n11193\t \"No Python exception was set.\");\n11194\t }\n11195\t goto __label_116;}\n11196\t }\n11197\t // This is a TypeError to be consistent with DEBUG_MODE\n11198\t // Note: DEBUG_MODE also tells the name of the container\n11199\t if (PyArray_TYPE((PyArrayObject*) py_V115) != NPY_FLOAT64) {\n11200\t PyErr_Format(PyExc_TypeError,\n11201\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n11202\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V115));\n11203\t {\n11204\t __failure = 116;\n11205\t if (!PyErr_Occurred()) {\n11206\t PyErr_SetString(PyExc_RuntimeError,\n11207\t \"Unexpected error in an Op's C code. \"\n11208\t \"No Python exception was set.\");\n11209\t }\n11210\t goto __label_116;}\n11211\t }\n11212\t \n11213\t V115 = (PyArrayObject*)(py_V115);\n11214\t Py_XINCREF(V115);\n11215\t \n11216\t{\n11217\t\n11218\t py_V117 = PyList_GET_ITEM(storage_V117, 0);\n11219\t {Py_XINCREF(py_V117);}\n11220\t \n11221\t V117 = NULL;\n11222\t if (py_V117 == Py_None) {\n11223\t // We can either fail here or set V117 to NULL and rely on Ops\n11224\t // using tensors to handle the NULL case, but if they fail to do so\n11225\t // they'll end up with nasty segfaults, so this is public service.\n11226\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n11227\t {\n11228\t __failure = 118;\n11229\t if (!PyErr_Occurred()) {\n11230\t PyErr_SetString(PyExc_RuntimeError,\n11231\t \"Unexpected error in an Op's C code. \"\n11232\t \"No Python exception was set.\");\n11233\t }\n11234\t goto __label_118;}\n11235\t }\n11236\t if (!PyArray_Check(py_V117)) {\n11237\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n11238\t {\n11239\t __failure = 118;\n11240\t if (!PyErr_Occurred()) {\n11241\t PyErr_SetString(PyExc_RuntimeError,\n11242\t \"Unexpected error in an Op's C code. \"\n11243\t \"No Python exception was set.\");\n11244\t }\n11245\t goto __label_118;}\n11246\t }\n11247\t // We expect NPY_FLOAT64\n11248\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V117)) {\n11249\t PyArrayObject * tmp = (PyArrayObject*) py_V117;\n11250\t PyErr_Format(PyExc_NotImplementedError,\n11251\t \"expected an aligned array of type %ld \"\n11252\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n11253\t \" with %ld dimensions, with 3 last dims \"\n11254\t \"%ld, %ld, %ld\"\n11255\t \" and 3 last strides %ld %ld, %ld.\",\n11256\t (long int) NPY_FLOAT64,\n11257\t (long int) PyArray_TYPE((PyArrayObject*) py_V117),\n11258\t (long int) PyArray_NDIM(tmp),\n11259\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n11260\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n11261\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n11262\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n11263\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n11264\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n11265\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n11266\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n11267\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n11268\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n11269\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n11270\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n11271\t );\n11272\t {\n11273\t __failure = 118;\n11274\t if (!PyErr_Occurred()) {\n11275\t PyErr_SetString(PyExc_RuntimeError,\n11276\t \"Unexpected error in an Op's C code. \"\n11277\t \"No Python exception was set.\");\n11278\t }\n11279\t goto __label_118;}\n11280\t }\n11281\t // This is a TypeError to be consistent with DEBUG_MODE\n11282\t // Note: DEBUG_MODE also tells the name of the container\n11283\t if (PyArray_TYPE((PyArrayObject*) py_V117) != NPY_FLOAT64) {\n11284\t PyErr_Format(PyExc_TypeError,\n11285\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n11286\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V117));\n11287\t {\n11288\t __failure = 118;\n11289\t if (!PyErr_Occurred()) {\n11290\t PyErr_SetString(PyExc_RuntimeError,\n11291\t \"Unexpected error in an Op's C code. \"\n11292\t \"No Python exception was set.\");\n11293\t }\n11294\t goto __label_118;}\n11295\t }\n11296\t \n11297\t V117 = (PyArrayObject*)(py_V117);\n11298\t Py_XINCREF(V117);\n11299\t \n11300\t{\n11301\t\n11302\t py_V119 = PyList_GET_ITEM(storage_V119, 0);\n11303\t {Py_XINCREF(py_V119);}\n11304\t \n11305\t V119 = NULL;\n11306\t if (py_V119 == Py_None) {\n11307\t // We can either fail here or set V119 to NULL and rely on Ops\n11308\t // using tensors to handle the NULL case, but if they fail to do so\n11309\t // they'll end up with nasty segfaults, so this is public service.\n11310\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n11311\t {\n11312\t __failure = 120;\n11313\t if (!PyErr_Occurred()) {\n11314\t PyErr_SetString(PyExc_RuntimeError,\n11315\t \"Unexpected error in an Op's C code. \"\n11316\t \"No Python exception was set.\");\n11317\t }\n11318\t goto __label_120;}\n11319\t }\n11320\t if (!PyArray_Check(py_V119)) {\n11321\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n11322\t {\n11323\t __failure = 120;\n11324\t if (!PyErr_Occurred()) {\n11325\t PyErr_SetString(PyExc_RuntimeError,\n11326\t \"Unexpected error in an Op's C code. \"\n11327\t \"No Python exception was set.\");\n11328\t }\n11329\t goto __label_120;}\n11330\t }\n11331\t // We expect NPY_FLOAT64\n11332\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V119)) {\n11333\t PyArrayObject * tmp = (PyArrayObject*) py_V119;\n11334\t PyErr_Format(PyExc_NotImplementedError,\n11335\t \"expected an aligned array of type %ld \"\n11336\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n11337\t \" with %ld dimensions, with 3 last dims \"\n11338\t \"%ld, %ld, %ld\"\n11339\t \" and 3 last strides %ld %ld, %ld.\",\n11340\t (long int) NPY_FLOAT64,\n11341\t (long int) PyArray_TYPE((PyArrayObject*) py_V119),\n11342\t (long int) PyArray_NDIM(tmp),\n11343\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n11344\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n11345\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n11346\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n11347\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n11348\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n11349\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n11350\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n11351\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n11352\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n11353\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n11354\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n11355\t );\n11356\t {\n11357\t __failure = 120;\n11358\t if (!PyErr_Occurred()) {\n11359\t PyErr_SetString(PyExc_RuntimeError,\n11360\t \"Unexpected error in an Op's C code. \"\n11361\t \"No Python exception was set.\");\n11362\t }\n11363\t goto __label_120;}\n11364\t }\n11365\t // This is a TypeError to be consistent with DEBUG_MODE\n11366\t // Note: DEBUG_MODE also tells the name of the container\n11367\t if (PyArray_TYPE((PyArrayObject*) py_V119) != NPY_FLOAT64) {\n11368\t PyErr_Format(PyExc_TypeError,\n11369\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n11370\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V119));\n11371\t {\n11372\t __failure = 120;\n11373\t if (!PyErr_Occurred()) {\n11374\t PyErr_SetString(PyExc_RuntimeError,\n11375\t \"Unexpected error in an Op's C code. \"\n11376\t \"No Python exception was set.\");\n11377\t }\n11378\t goto __label_120;}\n11379\t }\n11380\t \n11381\t V119 = (PyArrayObject*)(py_V119);\n11382\t Py_XINCREF(V119);\n11383\t \n11384\t{\n11385\t\n11386\t py_V121 = PyList_GET_ITEM(storage_V121, 0);\n11387\t {Py_XINCREF(py_V121);}\n11388\t \n11389\t V121 = NULL;\n11390\t if (py_V121 == Py_None) {\n11391\t // We can either fail here or set V121 to NULL and rely on Ops\n11392\t // using tensors to handle the NULL case, but if they fail to do so\n11393\t // they'll end up with nasty segfaults, so this is public service.\n11394\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n11395\t {\n11396\t __failure = 122;\n11397\t if (!PyErr_Occurred()) {\n11398\t PyErr_SetString(PyExc_RuntimeError,\n11399\t \"Unexpected error in an Op's C code. \"\n11400\t \"No Python exception was set.\");\n11401\t }\n11402\t goto __label_122;}\n11403\t }\n11404\t if (!PyArray_Check(py_V121)) {\n11405\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n11406\t {\n11407\t __failure = 122;\n11408\t if (!PyErr_Occurred()) {\n11409\t PyErr_SetString(PyExc_RuntimeError,\n11410\t \"Unexpected error in an Op's C code. \"\n11411\t \"No Python exception was set.\");\n11412\t }\n11413\t goto __label_122;}\n11414\t }\n11415\t // We expect NPY_FLOAT64\n11416\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V121)) {\n11417\t PyArrayObject * tmp = (PyArrayObject*) py_V121;\n11418\t PyErr_Format(PyExc_NotImplementedError,\n11419\t \"expected an aligned array of type %ld \"\n11420\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n11421\t \" with %ld dimensions, with 3 last dims \"\n11422\t \"%ld, %ld, %ld\"\n11423\t \" and 3 last strides %ld %ld, %ld.\",\n11424\t (long int) NPY_FLOAT64,\n11425\t (long int) PyArray_TYPE((PyArrayObject*) py_V121),\n11426\t (long int) PyArray_NDIM(tmp),\n11427\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n11428\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n11429\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n11430\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n11431\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n11432\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n11433\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n11434\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n11435\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n11436\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n11437\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n11438\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n11439\t );\n11440\t {\n11441\t __failure = 122;\n11442\t if (!PyErr_Occurred()) {\n11443\t PyErr_SetString(PyExc_RuntimeError,\n11444\t \"Unexpected error in an Op's C code. \"\n11445\t \"No Python exception was set.\");\n11446\t }\n11447\t goto __label_122;}\n11448\t }\n11449\t // This is a TypeError to be consistent with DEBUG_MODE\n11450\t // Note: DEBUG_MODE also tells the name of the container\n11451\t if (PyArray_TYPE((PyArrayObject*) py_V121) != NPY_FLOAT64) {\n11452\t PyErr_Format(PyExc_TypeError,\n11453\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n11454\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V121));\n11455\t {\n11456\t __failure = 122;\n11457\t if (!PyErr_Occurred()) {\n11458\t PyErr_SetString(PyExc_RuntimeError,\n11459\t \"Unexpected error in an Op's C code. \"\n11460\t \"No Python exception was set.\");\n11461\t }\n11462\t goto __label_122;}\n11463\t }\n11464\t \n11465\t V121 = (PyArrayObject*)(py_V121);\n11466\t Py_XINCREF(V121);\n11467\t \n11468\t{\n11469\t\n11470\t py_V123 = PyList_GET_ITEM(storage_V123, 0);\n11471\t {Py_XINCREF(py_V123);}\n11472\t \n11473\t V123 = NULL;\n11474\t if (py_V123 == Py_None) {\n11475\t // We can either fail here or set V123 to NULL and rely on Ops\n11476\t // using tensors to handle the NULL case, but if they fail to do so\n11477\t // they'll end up with nasty segfaults, so this is public service.\n11478\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n11479\t {\n11480\t __failure = 124;\n11481\t if (!PyErr_Occurred()) {\n11482\t PyErr_SetString(PyExc_RuntimeError,\n11483\t \"Unexpected error in an Op's C code. \"\n11484\t \"No Python exception was set.\");\n11485\t }\n11486\t goto __label_124;}\n11487\t }\n11488\t if (!PyArray_Check(py_V123)) {\n11489\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n11490\t {\n11491\t __failure = 124;\n11492\t if (!PyErr_Occurred()) {\n11493\t PyErr_SetString(PyExc_RuntimeError,\n11494\t \"Unexpected error in an Op's C code. \"\n11495\t \"No Python exception was set.\");\n11496\t }\n11497\t goto __label_124;}\n11498\t }\n11499\t // We expect NPY_FLOAT64\n11500\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V123)) {\n11501\t PyArrayObject * tmp = (PyArrayObject*) py_V123;\n11502\t PyErr_Format(PyExc_NotImplementedError,\n11503\t \"expected an aligned array of type %ld \"\n11504\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n11505\t \" with %ld dimensions, with 3 last dims \"\n11506\t \"%ld, %ld, %ld\"\n11507\t \" and 3 last strides %ld %ld, %ld.\",\n11508\t (long int) NPY_FLOAT64,\n11509\t (long int) PyArray_TYPE((PyArrayObject*) py_V123),\n11510\t (long int) PyArray_NDIM(tmp),\n11511\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n11512\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n11513\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n11514\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n11515\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n11516\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n11517\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n11518\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n11519\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n11520\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n11521\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n11522\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n11523\t );\n11524\t {\n11525\t __failure = 124;\n11526\t if (!PyErr_Occurred()) {\n11527\t PyErr_SetString(PyExc_RuntimeError,\n11528\t \"Unexpected error in an Op's C code. \"\n11529\t \"No Python exception was set.\");\n11530\t }\n11531\t goto __label_124;}\n11532\t }\n11533\t // This is a TypeError to be consistent with DEBUG_MODE\n11534\t // Note: DEBUG_MODE also tells the name of the container\n11535\t if (PyArray_TYPE((PyArrayObject*) py_V123) != NPY_FLOAT64) {\n11536\t PyErr_Format(PyExc_TypeError,\n11537\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n11538\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V123));\n11539\t {\n11540\t __failure = 124;\n11541\t if (!PyErr_Occurred()) {\n11542\t PyErr_SetString(PyExc_RuntimeError,\n11543\t \"Unexpected error in an Op's C code. \"\n11544\t \"No Python exception was set.\");\n11545\t }\n11546\t goto __label_124;}\n11547\t }\n11548\t \n11549\t V123 = (PyArrayObject*)(py_V123);\n11550\t Py_XINCREF(V123);\n11551\t \n11552\t{\n11553\t\n11554\t py_V125 = PyList_GET_ITEM(storage_V125, 0);\n11555\t {Py_XINCREF(py_V125);}\n11556\t \n11557\t V125 = NULL;\n11558\t if (py_V125 == Py_None) {\n11559\t // We can either fail here or set V125 to NULL and rely on Ops\n11560\t // using tensors to handle the NULL case, but if they fail to do so\n11561\t // they'll end up with nasty segfaults, so this is public service.\n11562\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n11563\t {\n11564\t __failure = 126;\n11565\t if (!PyErr_Occurred()) {\n11566\t PyErr_SetString(PyExc_RuntimeError,\n11567\t \"Unexpected error in an Op's C code. \"\n11568\t \"No Python exception was set.\");\n11569\t }\n11570\t goto __label_126;}\n11571\t }\n11572\t if (!PyArray_Check(py_V125)) {\n11573\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n11574\t {\n11575\t __failure = 126;\n11576\t if (!PyErr_Occurred()) {\n11577\t PyErr_SetString(PyExc_RuntimeError,\n11578\t \"Unexpected error in an Op's C code. \"\n11579\t \"No Python exception was set.\");\n11580\t }\n11581\t goto __label_126;}\n11582\t }\n11583\t // We expect NPY_FLOAT64\n11584\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V125)) {\n11585\t PyArrayObject * tmp = (PyArrayObject*) py_V125;\n11586\t PyErr_Format(PyExc_NotImplementedError,\n11587\t \"expected an aligned array of type %ld \"\n11588\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n11589\t \" with %ld dimensions, with 3 last dims \"\n11590\t \"%ld, %ld, %ld\"\n11591\t \" and 3 last strides %ld %ld, %ld.\",\n11592\t (long int) NPY_FLOAT64,\n11593\t (long int) PyArray_TYPE((PyArrayObject*) py_V125),\n11594\t (long int) PyArray_NDIM(tmp),\n11595\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n11596\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n11597\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n11598\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n11599\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n11600\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n11601\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n11602\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n11603\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n11604\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n11605\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n11606\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n11607\t );\n11608\t {\n11609\t __failure = 126;\n11610\t if (!PyErr_Occurred()) {\n11611\t PyErr_SetString(PyExc_RuntimeError,\n11612\t \"Unexpected error in an Op's C code. \"\n11613\t \"No Python exception was set.\");\n11614\t }\n11615\t goto __label_126;}\n11616\t }\n11617\t // This is a TypeError to be consistent with DEBUG_MODE\n11618\t // Note: DEBUG_MODE also tells the name of the container\n11619\t if (PyArray_TYPE((PyArrayObject*) py_V125) != NPY_FLOAT64) {\n11620\t PyErr_Format(PyExc_TypeError,\n11621\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n11622\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V125));\n11623\t {\n11624\t __failure = 126;\n11625\t if (!PyErr_Occurred()) {\n11626\t PyErr_SetString(PyExc_RuntimeError,\n11627\t \"Unexpected error in an Op's C code. \"\n11628\t \"No Python exception was set.\");\n11629\t }\n11630\t goto __label_126;}\n11631\t }\n11632\t \n11633\t V125 = (PyArrayObject*)(py_V125);\n11634\t Py_XINCREF(V125);\n11635\t \n11636\t{\n11637\t\n11638\t py_V127 = PyList_GET_ITEM(storage_V127, 0);\n11639\t {Py_XINCREF(py_V127);}\n11640\t \n11641\t V127 = NULL;\n11642\t if (py_V127 == Py_None) {\n11643\t // We can either fail here or set V127 to NULL and rely on Ops\n11644\t // using tensors to handle the NULL case, but if they fail to do so\n11645\t // they'll end up with nasty segfaults, so this is public service.\n11646\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n11647\t {\n11648\t __failure = 128;\n11649\t if (!PyErr_Occurred()) {\n11650\t PyErr_SetString(PyExc_RuntimeError,\n11651\t \"Unexpected error in an Op's C code. \"\n11652\t \"No Python exception was set.\");\n11653\t }\n11654\t goto __label_128;}\n11655\t }\n11656\t if (!PyArray_Check(py_V127)) {\n11657\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n11658\t {\n11659\t __failure = 128;\n11660\t if (!PyErr_Occurred()) {\n11661\t PyErr_SetString(PyExc_RuntimeError,\n11662\t \"Unexpected error in an Op's C code. \"\n11663\t \"No Python exception was set.\");\n11664\t }\n11665\t goto __label_128;}\n11666\t }\n11667\t // We expect NPY_FLOAT64\n11668\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V127)) {\n11669\t PyArrayObject * tmp = (PyArrayObject*) py_V127;\n11670\t PyErr_Format(PyExc_NotImplementedError,\n11671\t \"expected an aligned array of type %ld \"\n11672\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n11673\t \" with %ld dimensions, with 3 last dims \"\n11674\t \"%ld, %ld, %ld\"\n11675\t \" and 3 last strides %ld %ld, %ld.\",\n11676\t (long int) NPY_FLOAT64,\n11677\t (long int) PyArray_TYPE((PyArrayObject*) py_V127),\n11678\t (long int) PyArray_NDIM(tmp),\n11679\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n11680\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n11681\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n11682\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n11683\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n11684\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n11685\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n11686\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n11687\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n11688\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n11689\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n11690\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n11691\t );\n11692\t {\n11693\t __failure = 128;\n11694\t if (!PyErr_Occurred()) {\n11695\t PyErr_SetString(PyExc_RuntimeError,\n11696\t \"Unexpected error in an Op's C code. \"\n11697\t \"No Python exception was set.\");\n11698\t }\n11699\t goto __label_128;}\n11700\t }\n11701\t // This is a TypeError to be consistent with DEBUG_MODE\n11702\t // Note: DEBUG_MODE also tells the name of the container\n11703\t if (PyArray_TYPE((PyArrayObject*) py_V127) != NPY_FLOAT64) {\n11704\t PyErr_Format(PyExc_TypeError,\n11705\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n11706\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V127));\n11707\t {\n11708\t __failure = 128;\n11709\t if (!PyErr_Occurred()) {\n11710\t PyErr_SetString(PyExc_RuntimeError,\n11711\t \"Unexpected error in an Op's C code. \"\n11712\t \"No Python exception was set.\");\n11713\t }\n11714\t goto __label_128;}\n11715\t }\n11716\t \n11717\t V127 = (PyArrayObject*)(py_V127);\n11718\t Py_XINCREF(V127);\n11719\t \n11720\t{\n11721\t\n11722\t py_V129 = PyList_GET_ITEM(storage_V129, 0);\n11723\t {Py_XINCREF(py_V129);}\n11724\t \n11725\t V129 = NULL;\n11726\t if (py_V129 == Py_None) {\n11727\t // We can either fail here or set V129 to NULL and rely on Ops\n11728\t // using tensors to handle the NULL case, but if they fail to do so\n11729\t // they'll end up with nasty segfaults, so this is public service.\n11730\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n11731\t {\n11732\t __failure = 130;\n11733\t if (!PyErr_Occurred()) {\n11734\t PyErr_SetString(PyExc_RuntimeError,\n11735\t \"Unexpected error in an Op's C code. \"\n11736\t \"No Python exception was set.\");\n11737\t }\n11738\t goto __label_130;}\n11739\t }\n11740\t if (!PyArray_Check(py_V129)) {\n11741\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n11742\t {\n11743\t __failure = 130;\n11744\t if (!PyErr_Occurred()) {\n11745\t PyErr_SetString(PyExc_RuntimeError,\n11746\t \"Unexpected error in an Op's C code. \"\n11747\t \"No Python exception was set.\");\n11748\t }\n11749\t goto __label_130;}\n11750\t }\n11751\t // We expect NPY_FLOAT64\n11752\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V129)) {\n11753\t PyArrayObject * tmp = (PyArrayObject*) py_V129;\n11754\t PyErr_Format(PyExc_NotImplementedError,\n11755\t \"expected an aligned array of type %ld \"\n11756\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n11757\t \" with %ld dimensions, with 3 last dims \"\n11758\t \"%ld, %ld, %ld\"\n11759\t \" and 3 last strides %ld %ld, %ld.\",\n11760\t (long int) NPY_FLOAT64,\n11761\t (long int) PyArray_TYPE((PyArrayObject*) py_V129),\n11762\t (long int) PyArray_NDIM(tmp),\n11763\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n11764\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n11765\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n11766\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n11767\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n11768\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n11769\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n11770\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n11771\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n11772\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n11773\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n11774\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n11775\t );\n11776\t {\n11777\t __failure = 130;\n11778\t if (!PyErr_Occurred()) {\n11779\t PyErr_SetString(PyExc_RuntimeError,\n11780\t \"Unexpected error in an Op's C code. \"\n11781\t \"No Python exception was set.\");\n11782\t }\n11783\t goto __label_130;}\n11784\t }\n11785\t // This is a TypeError to be consistent with DEBUG_MODE\n11786\t // Note: DEBUG_MODE also tells the name of the container\n11787\t if (PyArray_TYPE((PyArrayObject*) py_V129) != NPY_FLOAT64) {\n11788\t PyErr_Format(PyExc_TypeError,\n11789\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n11790\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V129));\n11791\t {\n11792\t __failure = 130;\n11793\t if (!PyErr_Occurred()) {\n11794\t PyErr_SetString(PyExc_RuntimeError,\n11795\t \"Unexpected error in an Op's C code. \"\n11796\t \"No Python exception was set.\");\n11797\t }\n11798\t goto __label_130;}\n11799\t }\n11800\t \n11801\t V129 = (PyArrayObject*)(py_V129);\n11802\t Py_XINCREF(V129);\n11803\t \n11804\t{\n11805\t\n11806\t py_V131 = PyList_GET_ITEM(storage_V131, 0);\n11807\t {Py_XINCREF(py_V131);}\n11808\t \n11809\t V131 = NULL;\n11810\t if (py_V131 == Py_None) {\n11811\t // We can either fail here or set V131 to NULL and rely on Ops\n11812\t // using tensors to handle the NULL case, but if they fail to do so\n11813\t // they'll end up with nasty segfaults, so this is public service.\n11814\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n11815\t {\n11816\t __failure = 132;\n11817\t if (!PyErr_Occurred()) {\n11818\t PyErr_SetString(PyExc_RuntimeError,\n11819\t \"Unexpected error in an Op's C code. \"\n11820\t \"No Python exception was set.\");\n11821\t }\n11822\t goto __label_132;}\n11823\t }\n11824\t if (!PyArray_Check(py_V131)) {\n11825\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n11826\t {\n11827\t __failure = 132;\n11828\t if (!PyErr_Occurred()) {\n11829\t PyErr_SetString(PyExc_RuntimeError,\n11830\t \"Unexpected error in an Op's C code. \"\n11831\t \"No Python exception was set.\");\n11832\t }\n11833\t goto __label_132;}\n11834\t }\n11835\t // We expect NPY_FLOAT64\n11836\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V131)) {\n11837\t PyArrayObject * tmp = (PyArrayObject*) py_V131;\n11838\t PyErr_Format(PyExc_NotImplementedError,\n11839\t \"expected an aligned array of type %ld \"\n11840\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n11841\t \" with %ld dimensions, with 3 last dims \"\n11842\t \"%ld, %ld, %ld\"\n11843\t \" and 3 last strides %ld %ld, %ld.\",\n11844\t (long int) NPY_FLOAT64,\n11845\t (long int) PyArray_TYPE((PyArrayObject*) py_V131),\n11846\t (long int) PyArray_NDIM(tmp),\n11847\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n11848\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n11849\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n11850\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n11851\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n11852\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n11853\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n11854\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n11855\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n11856\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n11857\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n11858\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n11859\t );\n11860\t {\n11861\t __failure = 132;\n11862\t if (!PyErr_Occurred()) {\n11863\t PyErr_SetString(PyExc_RuntimeError,\n11864\t \"Unexpected error in an Op's C code. \"\n11865\t \"No Python exception was set.\");\n11866\t }\n11867\t goto __label_132;}\n11868\t }\n11869\t // This is a TypeError to be consistent with DEBUG_MODE\n11870\t // Note: DEBUG_MODE also tells the name of the container\n11871\t if (PyArray_TYPE((PyArrayObject*) py_V131) != NPY_FLOAT64) {\n11872\t PyErr_Format(PyExc_TypeError,\n11873\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n11874\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V131));\n11875\t {\n11876\t __failure = 132;\n11877\t if (!PyErr_Occurred()) {\n11878\t PyErr_SetString(PyExc_RuntimeError,\n11879\t \"Unexpected error in an Op's C code. \"\n11880\t \"No Python exception was set.\");\n11881\t }\n11882\t goto __label_132;}\n11883\t }\n11884\t \n11885\t V131 = (PyArrayObject*)(py_V131);\n11886\t Py_XINCREF(V131);\n11887\t \n11888\t{\n11889\t\n11890\t py_V133 = PyList_GET_ITEM(storage_V133, 0);\n11891\t {Py_XINCREF(py_V133);}\n11892\t \n11893\t V133 = NULL;\n11894\t if (py_V133 == Py_None) {\n11895\t // We can either fail here or set V133 to NULL and rely on Ops\n11896\t // using tensors to handle the NULL case, but if they fail to do so\n11897\t // they'll end up with nasty segfaults, so this is public service.\n11898\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n11899\t {\n11900\t __failure = 134;\n11901\t if (!PyErr_Occurred()) {\n11902\t PyErr_SetString(PyExc_RuntimeError,\n11903\t \"Unexpected error in an Op's C code. \"\n11904\t \"No Python exception was set.\");\n11905\t }\n11906\t goto __label_134;}\n11907\t }\n11908\t if (!PyArray_Check(py_V133)) {\n11909\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n11910\t {\n11911\t __failure = 134;\n11912\t if (!PyErr_Occurred()) {\n11913\t PyErr_SetString(PyExc_RuntimeError,\n11914\t \"Unexpected error in an Op's C code. \"\n11915\t \"No Python exception was set.\");\n11916\t }\n11917\t goto __label_134;}\n11918\t }\n11919\t // We expect NPY_FLOAT64\n11920\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V133)) {\n11921\t PyArrayObject * tmp = (PyArrayObject*) py_V133;\n11922\t PyErr_Format(PyExc_NotImplementedError,\n11923\t \"expected an aligned array of type %ld \"\n11924\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n11925\t \" with %ld dimensions, with 3 last dims \"\n11926\t \"%ld, %ld, %ld\"\n11927\t \" and 3 last strides %ld %ld, %ld.\",\n11928\t (long int) NPY_FLOAT64,\n11929\t (long int) PyArray_TYPE((PyArrayObject*) py_V133),\n11930\t (long int) PyArray_NDIM(tmp),\n11931\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n11932\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n11933\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n11934\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n11935\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n11936\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n11937\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n11938\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n11939\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n11940\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n11941\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n11942\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n11943\t );\n11944\t {\n11945\t __failure = 134;\n11946\t if (!PyErr_Occurred()) {\n11947\t PyErr_SetString(PyExc_RuntimeError,\n11948\t \"Unexpected error in an Op's C code. \"\n11949\t \"No Python exception was set.\");\n11950\t }\n11951\t goto __label_134;}\n11952\t }\n11953\t // This is a TypeError to be consistent with DEBUG_MODE\n11954\t // Note: DEBUG_MODE also tells the name of the container\n11955\t if (PyArray_TYPE((PyArrayObject*) py_V133) != NPY_FLOAT64) {\n11956\t PyErr_Format(PyExc_TypeError,\n11957\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n11958\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V133));\n11959\t {\n11960\t __failure = 134;\n11961\t if (!PyErr_Occurred()) {\n11962\t PyErr_SetString(PyExc_RuntimeError,\n11963\t \"Unexpected error in an Op's C code. \"\n11964\t \"No Python exception was set.\");\n11965\t }\n11966\t goto __label_134;}\n11967\t }\n11968\t \n11969\t V133 = (PyArrayObject*)(py_V133);\n11970\t Py_XINCREF(V133);\n11971\t \n11972\t{\n11973\t\n11974\t py_V135 = PyList_GET_ITEM(storage_V135, 0);\n11975\t {Py_XINCREF(py_V135);}\n11976\t \n11977\t V135 = NULL;\n11978\t if (py_V135 == Py_None) {\n11979\t // We can either fail here or set V135 to NULL and rely on Ops\n11980\t // using tensors to handle the NULL case, but if they fail to do so\n11981\t // they'll end up with nasty segfaults, so this is public service.\n11982\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n11983\t {\n11984\t __failure = 136;\n11985\t if (!PyErr_Occurred()) {\n11986\t PyErr_SetString(PyExc_RuntimeError,\n11987\t \"Unexpected error in an Op's C code. \"\n11988\t \"No Python exception was set.\");\n11989\t }\n11990\t goto __label_136;}\n11991\t }\n11992\t if (!PyArray_Check(py_V135)) {\n11993\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n11994\t {\n11995\t __failure = 136;\n11996\t if (!PyErr_Occurred()) {\n11997\t PyErr_SetString(PyExc_RuntimeError,\n11998\t \"Unexpected error in an Op's C code. \"\n11999\t \"No Python exception was set.\");\n12000\t }\n12001\t goto __label_136;}\n12002\t }\n12003\t // We expect NPY_FLOAT64\n12004\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V135)) {\n12005\t PyArrayObject * tmp = (PyArrayObject*) py_V135;\n12006\t PyErr_Format(PyExc_NotImplementedError,\n12007\t \"expected an aligned array of type %ld \"\n12008\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n12009\t \" with %ld dimensions, with 3 last dims \"\n12010\t \"%ld, %ld, %ld\"\n12011\t \" and 3 last strides %ld %ld, %ld.\",\n12012\t (long int) NPY_FLOAT64,\n12013\t (long int) PyArray_TYPE((PyArrayObject*) py_V135),\n12014\t (long int) PyArray_NDIM(tmp),\n12015\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n12016\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n12017\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n12018\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n12019\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n12020\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n12021\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n12022\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n12023\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n12024\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n12025\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n12026\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n12027\t );\n12028\t {\n12029\t __failure = 136;\n12030\t if (!PyErr_Occurred()) {\n12031\t PyErr_SetString(PyExc_RuntimeError,\n12032\t \"Unexpected error in an Op's C code. \"\n12033\t \"No Python exception was set.\");\n12034\t }\n12035\t goto __label_136;}\n12036\t }\n12037\t // This is a TypeError to be consistent with DEBUG_MODE\n12038\t // Note: DEBUG_MODE also tells the name of the container\n12039\t if (PyArray_TYPE((PyArrayObject*) py_V135) != NPY_FLOAT64) {\n12040\t PyErr_Format(PyExc_TypeError,\n12041\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n12042\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V135));\n12043\t {\n12044\t __failure = 136;\n12045\t if (!PyErr_Occurred()) {\n12046\t PyErr_SetString(PyExc_RuntimeError,\n12047\t \"Unexpected error in an Op's C code. \"\n12048\t \"No Python exception was set.\");\n12049\t }\n12050\t goto __label_136;}\n12051\t }\n12052\t \n12053\t V135 = (PyArrayObject*)(py_V135);\n12054\t Py_XINCREF(V135);\n12055\t \n12056\t{\n12057\t\n12058\t py_V137 = PyList_GET_ITEM(storage_V137, 0);\n12059\t {Py_XINCREF(py_V137);}\n12060\t \n12061\t V137 = NULL;\n12062\t if (py_V137 == Py_None) {\n12063\t // We can either fail here or set V137 to NULL and rely on Ops\n12064\t // using tensors to handle the NULL case, but if they fail to do so\n12065\t // they'll end up with nasty segfaults, so this is public service.\n12066\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n12067\t {\n12068\t __failure = 138;\n12069\t if (!PyErr_Occurred()) {\n12070\t PyErr_SetString(PyExc_RuntimeError,\n12071\t \"Unexpected error in an Op's C code. \"\n12072\t \"No Python exception was set.\");\n12073\t }\n12074\t goto __label_138;}\n12075\t }\n12076\t if (!PyArray_Check(py_V137)) {\n12077\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n12078\t {\n12079\t __failure = 138;\n12080\t if (!PyErr_Occurred()) {\n12081\t PyErr_SetString(PyExc_RuntimeError,\n12082\t \"Unexpected error in an Op's C code. \"\n12083\t \"No Python exception was set.\");\n12084\t }\n12085\t goto __label_138;}\n12086\t }\n12087\t // We expect NPY_FLOAT64\n12088\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V137)) {\n12089\t PyArrayObject * tmp = (PyArrayObject*) py_V137;\n12090\t PyErr_Format(PyExc_NotImplementedError,\n12091\t \"expected an aligned array of type %ld \"\n12092\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n12093\t \" with %ld dimensions, with 3 last dims \"\n12094\t \"%ld, %ld, %ld\"\n12095\t \" and 3 last strides %ld %ld, %ld.\",\n12096\t (long int) NPY_FLOAT64,\n12097\t (long int) PyArray_TYPE((PyArrayObject*) py_V137),\n12098\t (long int) PyArray_NDIM(tmp),\n12099\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n12100\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n12101\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n12102\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n12103\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n12104\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n12105\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n12106\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n12107\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n12108\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n12109\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n12110\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n12111\t );\n12112\t {\n12113\t __failure = 138;\n12114\t if (!PyErr_Occurred()) {\n12115\t PyErr_SetString(PyExc_RuntimeError,\n12116\t \"Unexpected error in an Op's C code. \"\n12117\t \"No Python exception was set.\");\n12118\t }\n12119\t goto __label_138;}\n12120\t }\n12121\t // This is a TypeError to be consistent with DEBUG_MODE\n12122\t // Note: DEBUG_MODE also tells the name of the container\n12123\t if (PyArray_TYPE((PyArrayObject*) py_V137) != NPY_FLOAT64) {\n12124\t PyErr_Format(PyExc_TypeError,\n12125\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n12126\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V137));\n12127\t {\n12128\t __failure = 138;\n12129\t if (!PyErr_Occurred()) {\n12130\t PyErr_SetString(PyExc_RuntimeError,\n12131\t \"Unexpected error in an Op's C code. \"\n12132\t \"No Python exception was set.\");\n12133\t }\n12134\t goto __label_138;}\n12135\t }\n12136\t \n12137\t V137 = (PyArrayObject*)(py_V137);\n12138\t Py_XINCREF(V137);\n12139\t \n12140\t{\n12141\t\n12142\t py_V139 = PyList_GET_ITEM(storage_V139, 0);\n12143\t {Py_XINCREF(py_V139);}\n12144\t \n12145\t V139 = NULL;\n12146\t if (py_V139 == Py_None) {\n12147\t // We can either fail here or set V139 to NULL and rely on Ops\n12148\t // using tensors to handle the NULL case, but if they fail to do so\n12149\t // they'll end up with nasty segfaults, so this is public service.\n12150\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n12151\t {\n12152\t __failure = 140;\n12153\t if (!PyErr_Occurred()) {\n12154\t PyErr_SetString(PyExc_RuntimeError,\n12155\t \"Unexpected error in an Op's C code. \"\n12156\t \"No Python exception was set.\");\n12157\t }\n12158\t goto __label_140;}\n12159\t }\n12160\t if (!PyArray_Check(py_V139)) {\n12161\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n12162\t {\n12163\t __failure = 140;\n12164\t if (!PyErr_Occurred()) {\n12165\t PyErr_SetString(PyExc_RuntimeError,\n12166\t \"Unexpected error in an Op's C code. \"\n12167\t \"No Python exception was set.\");\n12168\t }\n12169\t goto __label_140;}\n12170\t }\n12171\t // We expect NPY_FLOAT64\n12172\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V139)) {\n12173\t PyArrayObject * tmp = (PyArrayObject*) py_V139;\n12174\t PyErr_Format(PyExc_NotImplementedError,\n12175\t \"expected an aligned array of type %ld \"\n12176\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n12177\t \" with %ld dimensions, with 3 last dims \"\n12178\t \"%ld, %ld, %ld\"\n12179\t \" and 3 last strides %ld %ld, %ld.\",\n12180\t (long int) NPY_FLOAT64,\n12181\t (long int) PyArray_TYPE((PyArrayObject*) py_V139),\n12182\t (long int) PyArray_NDIM(tmp),\n12183\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n12184\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n12185\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n12186\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n12187\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n12188\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n12189\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n12190\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n12191\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n12192\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n12193\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n12194\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n12195\t );\n12196\t {\n12197\t __failure = 140;\n12198\t if (!PyErr_Occurred()) {\n12199\t PyErr_SetString(PyExc_RuntimeError,\n12200\t \"Unexpected error in an Op's C code. \"\n12201\t \"No Python exception was set.\");\n12202\t }\n12203\t goto __label_140;}\n12204\t }\n12205\t // This is a TypeError to be consistent with DEBUG_MODE\n12206\t // Note: DEBUG_MODE also tells the name of the container\n12207\t if (PyArray_TYPE((PyArrayObject*) py_V139) != NPY_FLOAT64) {\n12208\t PyErr_Format(PyExc_TypeError,\n12209\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n12210\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V139));\n12211\t {\n12212\t __failure = 140;\n12213\t if (!PyErr_Occurred()) {\n12214\t PyErr_SetString(PyExc_RuntimeError,\n12215\t \"Unexpected error in an Op's C code. \"\n12216\t \"No Python exception was set.\");\n12217\t }\n12218\t goto __label_140;}\n12219\t }\n12220\t \n12221\t V139 = (PyArrayObject*)(py_V139);\n12222\t Py_XINCREF(V139);\n12223\t \n12224\t{\n12225\t\n12226\t py_V141 = PyList_GET_ITEM(storage_V141, 0);\n12227\t {Py_XINCREF(py_V141);}\n12228\t \n12229\t V141 = NULL;\n12230\t if (py_V141 == Py_None) {\n12231\t // We can either fail here or set V141 to NULL and rely on Ops\n12232\t // using tensors to handle the NULL case, but if they fail to do so\n12233\t // they'll end up with nasty segfaults, so this is public service.\n12234\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n12235\t {\n12236\t __failure = 142;\n12237\t if (!PyErr_Occurred()) {\n12238\t PyErr_SetString(PyExc_RuntimeError,\n12239\t \"Unexpected error in an Op's C code. \"\n12240\t \"No Python exception was set.\");\n12241\t }\n12242\t goto __label_142;}\n12243\t }\n12244\t if (!PyArray_Check(py_V141)) {\n12245\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n12246\t {\n12247\t __failure = 142;\n12248\t if (!PyErr_Occurred()) {\n12249\t PyErr_SetString(PyExc_RuntimeError,\n12250\t \"Unexpected error in an Op's C code. \"\n12251\t \"No Python exception was set.\");\n12252\t }\n12253\t goto __label_142;}\n12254\t }\n12255\t // We expect NPY_FLOAT64\n12256\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V141)) {\n12257\t PyArrayObject * tmp = (PyArrayObject*) py_V141;\n12258\t PyErr_Format(PyExc_NotImplementedError,\n12259\t \"expected an aligned array of type %ld \"\n12260\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n12261\t \" with %ld dimensions, with 3 last dims \"\n12262\t \"%ld, %ld, %ld\"\n12263\t \" and 3 last strides %ld %ld, %ld.\",\n12264\t (long int) NPY_FLOAT64,\n12265\t (long int) PyArray_TYPE((PyArrayObject*) py_V141),\n12266\t (long int) PyArray_NDIM(tmp),\n12267\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n12268\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n12269\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n12270\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n12271\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n12272\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n12273\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n12274\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n12275\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n12276\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n12277\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n12278\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n12279\t );\n12280\t {\n12281\t __failure = 142;\n12282\t if (!PyErr_Occurred()) {\n12283\t PyErr_SetString(PyExc_RuntimeError,\n12284\t \"Unexpected error in an Op's C code. \"\n12285\t \"No Python exception was set.\");\n12286\t }\n12287\t goto __label_142;}\n12288\t }\n12289\t // This is a TypeError to be consistent with DEBUG_MODE\n12290\t // Note: DEBUG_MODE also tells the name of the container\n12291\t if (PyArray_TYPE((PyArrayObject*) py_V141) != NPY_FLOAT64) {\n12292\t PyErr_Format(PyExc_TypeError,\n12293\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n12294\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V141));\n12295\t {\n12296\t __failure = 142;\n12297\t if (!PyErr_Occurred()) {\n12298\t PyErr_SetString(PyExc_RuntimeError,\n12299\t \"Unexpected error in an Op's C code. \"\n12300\t \"No Python exception was set.\");\n12301\t }\n12302\t goto __label_142;}\n12303\t }\n12304\t \n12305\t V141 = (PyArrayObject*)(py_V141);\n12306\t Py_XINCREF(V141);\n12307\t \n12308\t{\n12309\t\n12310\t py_V143 = PyList_GET_ITEM(storage_V143, 0);\n12311\t {Py_XINCREF(py_V143);}\n12312\t \n12313\t V143 = NULL;\n12314\t if (py_V143 == Py_None) {\n12315\t // We can either fail here or set V143 to NULL and rely on Ops\n12316\t // using tensors to handle the NULL case, but if they fail to do so\n12317\t // they'll end up with nasty segfaults, so this is public service.\n12318\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n12319\t {\n12320\t __failure = 144;\n12321\t if (!PyErr_Occurred()) {\n12322\t PyErr_SetString(PyExc_RuntimeError,\n12323\t \"Unexpected error in an Op's C code. \"\n12324\t \"No Python exception was set.\");\n12325\t }\n12326\t goto __label_144;}\n12327\t }\n12328\t if (!PyArray_Check(py_V143)) {\n12329\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n12330\t {\n12331\t __failure = 144;\n12332\t if (!PyErr_Occurred()) {\n12333\t PyErr_SetString(PyExc_RuntimeError,\n12334\t \"Unexpected error in an Op's C code. \"\n12335\t \"No Python exception was set.\");\n12336\t }\n12337\t goto __label_144;}\n12338\t }\n12339\t // We expect NPY_FLOAT64\n12340\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V143)) {\n12341\t PyArrayObject * tmp = (PyArrayObject*) py_V143;\n12342\t PyErr_Format(PyExc_NotImplementedError,\n12343\t \"expected an aligned array of type %ld \"\n12344\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n12345\t \" with %ld dimensions, with 3 last dims \"\n12346\t \"%ld, %ld, %ld\"\n12347\t \" and 3 last strides %ld %ld, %ld.\",\n12348\t (long int) NPY_FLOAT64,\n12349\t (long int) PyArray_TYPE((PyArrayObject*) py_V143),\n12350\t (long int) PyArray_NDIM(tmp),\n12351\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n12352\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n12353\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n12354\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n12355\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n12356\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n12357\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n12358\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n12359\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n12360\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n12361\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n12362\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n12363\t );\n12364\t {\n12365\t __failure = 144;\n12366\t if (!PyErr_Occurred()) {\n12367\t PyErr_SetString(PyExc_RuntimeError,\n12368\t \"Unexpected error in an Op's C code. \"\n12369\t \"No Python exception was set.\");\n12370\t }\n12371\t goto __label_144;}\n12372\t }\n12373\t // This is a TypeError to be consistent with DEBUG_MODE\n12374\t // Note: DEBUG_MODE also tells the name of the container\n12375\t if (PyArray_TYPE((PyArrayObject*) py_V143) != NPY_FLOAT64) {\n12376\t PyErr_Format(PyExc_TypeError,\n12377\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n12378\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V143));\n12379\t {\n12380\t __failure = 144;\n12381\t if (!PyErr_Occurred()) {\n12382\t PyErr_SetString(PyExc_RuntimeError,\n12383\t \"Unexpected error in an Op's C code. \"\n12384\t \"No Python exception was set.\");\n12385\t }\n12386\t goto __label_144;}\n12387\t }\n12388\t \n12389\t V143 = (PyArrayObject*)(py_V143);\n12390\t Py_XINCREF(V143);\n12391\t \n12392\t{\n12393\t\n12394\t py_V145 = PyList_GET_ITEM(storage_V145, 0);\n12395\t {Py_XINCREF(py_V145);}\n12396\t \n12397\t V145 = NULL;\n12398\t if (py_V145 == Py_None) {\n12399\t // We can either fail here or set V145 to NULL and rely on Ops\n12400\t // using tensors to handle the NULL case, but if they fail to do so\n12401\t // they'll end up with nasty segfaults, so this is public service.\n12402\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n12403\t {\n12404\t __failure = 146;\n12405\t if (!PyErr_Occurred()) {\n12406\t PyErr_SetString(PyExc_RuntimeError,\n12407\t \"Unexpected error in an Op's C code. \"\n12408\t \"No Python exception was set.\");\n12409\t }\n12410\t goto __label_146;}\n12411\t }\n12412\t if (!PyArray_Check(py_V145)) {\n12413\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n12414\t {\n12415\t __failure = 146;\n12416\t if (!PyErr_Occurred()) {\n12417\t PyErr_SetString(PyExc_RuntimeError,\n12418\t \"Unexpected error in an Op's C code. \"\n12419\t \"No Python exception was set.\");\n12420\t }\n12421\t goto __label_146;}\n12422\t }\n12423\t // We expect NPY_FLOAT64\n12424\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V145)) {\n12425\t PyArrayObject * tmp = (PyArrayObject*) py_V145;\n12426\t PyErr_Format(PyExc_NotImplementedError,\n12427\t \"expected an aligned array of type %ld \"\n12428\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n12429\t \" with %ld dimensions, with 3 last dims \"\n12430\t \"%ld, %ld, %ld\"\n12431\t \" and 3 last strides %ld %ld, %ld.\",\n12432\t (long int) NPY_FLOAT64,\n12433\t (long int) PyArray_TYPE((PyArrayObject*) py_V145),\n12434\t (long int) PyArray_NDIM(tmp),\n12435\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n12436\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n12437\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n12438\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n12439\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n12440\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n12441\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n12442\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n12443\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n12444\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n12445\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n12446\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n12447\t );\n12448\t {\n12449\t __failure = 146;\n12450\t if (!PyErr_Occurred()) {\n12451\t PyErr_SetString(PyExc_RuntimeError,\n12452\t \"Unexpected error in an Op's C code. \"\n12453\t \"No Python exception was set.\");\n12454\t }\n12455\t goto __label_146;}\n12456\t }\n12457\t // This is a TypeError to be consistent with DEBUG_MODE\n12458\t // Note: DEBUG_MODE also tells the name of the container\n12459\t if (PyArray_TYPE((PyArrayObject*) py_V145) != NPY_FLOAT64) {\n12460\t PyErr_Format(PyExc_TypeError,\n12461\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n12462\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V145));\n12463\t {\n12464\t __failure = 146;\n12465\t if (!PyErr_Occurred()) {\n12466\t PyErr_SetString(PyExc_RuntimeError,\n12467\t \"Unexpected error in an Op's C code. \"\n12468\t \"No Python exception was set.\");\n12469\t }\n12470\t goto __label_146;}\n12471\t }\n12472\t \n12473\t V145 = (PyArrayObject*)(py_V145);\n12474\t Py_XINCREF(V145);\n12475\t \n12476\t{\n12477\t\n12478\t py_V147 = PyList_GET_ITEM(storage_V147, 0);\n12479\t {Py_XINCREF(py_V147);}\n12480\t \n12481\t V147 = NULL;\n12482\t if (py_V147 == Py_None) {\n12483\t // We can either fail here or set V147 to NULL and rely on Ops\n12484\t // using tensors to handle the NULL case, but if they fail to do so\n12485\t // they'll end up with nasty segfaults, so this is public service.\n12486\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n12487\t {\n12488\t __failure = 148;\n12489\t if (!PyErr_Occurred()) {\n12490\t PyErr_SetString(PyExc_RuntimeError,\n12491\t \"Unexpected error in an Op's C code. \"\n12492\t \"No Python exception was set.\");\n12493\t }\n12494\t goto __label_148;}\n12495\t }\n12496\t if (!PyArray_Check(py_V147)) {\n12497\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n12498\t {\n12499\t __failure = 148;\n12500\t if (!PyErr_Occurred()) {\n12501\t PyErr_SetString(PyExc_RuntimeError,\n12502\t \"Unexpected error in an Op's C code. \"\n12503\t \"No Python exception was set.\");\n12504\t }\n12505\t goto __label_148;}\n12506\t }\n12507\t // We expect NPY_FLOAT64\n12508\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V147)) {\n12509\t PyArrayObject * tmp = (PyArrayObject*) py_V147;\n12510\t PyErr_Format(PyExc_NotImplementedError,\n12511\t \"expected an aligned array of type %ld \"\n12512\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n12513\t \" with %ld dimensions, with 3 last dims \"\n12514\t \"%ld, %ld, %ld\"\n12515\t \" and 3 last strides %ld %ld, %ld.\",\n12516\t (long int) NPY_FLOAT64,\n12517\t (long int) PyArray_TYPE((PyArrayObject*) py_V147),\n12518\t (long int) PyArray_NDIM(tmp),\n12519\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n12520\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n12521\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n12522\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n12523\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n12524\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n12525\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n12526\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n12527\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n12528\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n12529\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n12530\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n12531\t );\n12532\t {\n12533\t __failure = 148;\n12534\t if (!PyErr_Occurred()) {\n12535\t PyErr_SetString(PyExc_RuntimeError,\n12536\t \"Unexpected error in an Op's C code. \"\n12537\t \"No Python exception was set.\");\n12538\t }\n12539\t goto __label_148;}\n12540\t }\n12541\t // This is a TypeError to be consistent with DEBUG_MODE\n12542\t // Note: DEBUG_MODE also tells the name of the container\n12543\t if (PyArray_TYPE((PyArrayObject*) py_V147) != NPY_FLOAT64) {\n12544\t PyErr_Format(PyExc_TypeError,\n12545\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n12546\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V147));\n12547\t {\n12548\t __failure = 148;\n12549\t if (!PyErr_Occurred()) {\n12550\t PyErr_SetString(PyExc_RuntimeError,\n12551\t \"Unexpected error in an Op's C code. \"\n12552\t \"No Python exception was set.\");\n12553\t }\n12554\t goto __label_148;}\n12555\t }\n12556\t \n12557\t V147 = (PyArrayObject*)(py_V147);\n12558\t Py_XINCREF(V147);\n12559\t \n12560\t{\n12561\t\n12562\t py_V149 = PyList_GET_ITEM(storage_V149, 0);\n12563\t {Py_XINCREF(py_V149);}\n12564\t \n12565\t V149 = NULL;\n12566\t if (py_V149 == Py_None) {\n12567\t // We can either fail here or set V149 to NULL and rely on Ops\n12568\t // using tensors to handle the NULL case, but if they fail to do so\n12569\t // they'll end up with nasty segfaults, so this is public service.\n12570\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n12571\t {\n12572\t __failure = 150;\n12573\t if (!PyErr_Occurred()) {\n12574\t PyErr_SetString(PyExc_RuntimeError,\n12575\t \"Unexpected error in an Op's C code. \"\n12576\t \"No Python exception was set.\");\n12577\t }\n12578\t goto __label_150;}\n12579\t }\n12580\t if (!PyArray_Check(py_V149)) {\n12581\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n12582\t {\n12583\t __failure = 150;\n12584\t if (!PyErr_Occurred()) {\n12585\t PyErr_SetString(PyExc_RuntimeError,\n12586\t \"Unexpected error in an Op's C code. \"\n12587\t \"No Python exception was set.\");\n12588\t }\n12589\t goto __label_150;}\n12590\t }\n12591\t // We expect NPY_FLOAT64\n12592\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V149)) {\n12593\t PyArrayObject * tmp = (PyArrayObject*) py_V149;\n12594\t PyErr_Format(PyExc_NotImplementedError,\n12595\t \"expected an aligned array of type %ld \"\n12596\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n12597\t \" with %ld dimensions, with 3 last dims \"\n12598\t \"%ld, %ld, %ld\"\n12599\t \" and 3 last strides %ld %ld, %ld.\",\n12600\t (long int) NPY_FLOAT64,\n12601\t (long int) PyArray_TYPE((PyArrayObject*) py_V149),\n12602\t (long int) PyArray_NDIM(tmp),\n12603\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n12604\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n12605\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n12606\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n12607\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n12608\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n12609\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n12610\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n12611\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n12612\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n12613\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n12614\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n12615\t );\n12616\t {\n12617\t __failure = 150;\n12618\t if (!PyErr_Occurred()) {\n12619\t PyErr_SetString(PyExc_RuntimeError,\n12620\t \"Unexpected error in an Op's C code. \"\n12621\t \"No Python exception was set.\");\n12622\t }\n12623\t goto __label_150;}\n12624\t }\n12625\t // This is a TypeError to be consistent with DEBUG_MODE\n12626\t // Note: DEBUG_MODE also tells the name of the container\n12627\t if (PyArray_TYPE((PyArrayObject*) py_V149) != NPY_FLOAT64) {\n12628\t PyErr_Format(PyExc_TypeError,\n12629\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n12630\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V149));\n12631\t {\n12632\t __failure = 150;\n12633\t if (!PyErr_Occurred()) {\n12634\t PyErr_SetString(PyExc_RuntimeError,\n12635\t \"Unexpected error in an Op's C code. \"\n12636\t \"No Python exception was set.\");\n12637\t }\n12638\t goto __label_150;}\n12639\t }\n12640\t \n12641\t V149 = (PyArrayObject*)(py_V149);\n12642\t Py_XINCREF(V149);\n12643\t \n12644\t{\n12645\t\n12646\t py_V151 = PyList_GET_ITEM(storage_V151, 0);\n12647\t {Py_XINCREF(py_V151);}\n12648\t \n12649\t V151 = NULL;\n12650\t if (py_V151 == Py_None) {\n12651\t // We can either fail here or set V151 to NULL and rely on Ops\n12652\t // using tensors to handle the NULL case, but if they fail to do so\n12653\t // they'll end up with nasty segfaults, so this is public service.\n12654\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n12655\t {\n12656\t __failure = 152;\n12657\t if (!PyErr_Occurred()) {\n12658\t PyErr_SetString(PyExc_RuntimeError,\n12659\t \"Unexpected error in an Op's C code. \"\n12660\t \"No Python exception was set.\");\n12661\t }\n12662\t goto __label_152;}\n12663\t }\n12664\t if (!PyArray_Check(py_V151)) {\n12665\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n12666\t {\n12667\t __failure = 152;\n12668\t if (!PyErr_Occurred()) {\n12669\t PyErr_SetString(PyExc_RuntimeError,\n12670\t \"Unexpected error in an Op's C code. \"\n12671\t \"No Python exception was set.\");\n12672\t }\n12673\t goto __label_152;}\n12674\t }\n12675\t // We expect NPY_FLOAT64\n12676\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V151)) {\n12677\t PyArrayObject * tmp = (PyArrayObject*) py_V151;\n12678\t PyErr_Format(PyExc_NotImplementedError,\n12679\t \"expected an aligned array of type %ld \"\n12680\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n12681\t \" with %ld dimensions, with 3 last dims \"\n12682\t \"%ld, %ld, %ld\"\n12683\t \" and 3 last strides %ld %ld, %ld.\",\n12684\t (long int) NPY_FLOAT64,\n12685\t (long int) PyArray_TYPE((PyArrayObject*) py_V151),\n12686\t (long int) PyArray_NDIM(tmp),\n12687\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n12688\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n12689\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n12690\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n12691\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n12692\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n12693\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n12694\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n12695\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n12696\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n12697\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n12698\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n12699\t );\n12700\t {\n12701\t __failure = 152;\n12702\t if (!PyErr_Occurred()) {\n12703\t PyErr_SetString(PyExc_RuntimeError,\n12704\t \"Unexpected error in an Op's C code. \"\n12705\t \"No Python exception was set.\");\n12706\t }\n12707\t goto __label_152;}\n12708\t }\n12709\t // This is a TypeError to be consistent with DEBUG_MODE\n12710\t // Note: DEBUG_MODE also tells the name of the container\n12711\t if (PyArray_TYPE((PyArrayObject*) py_V151) != NPY_FLOAT64) {\n12712\t PyErr_Format(PyExc_TypeError,\n12713\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n12714\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V151));\n12715\t {\n12716\t __failure = 152;\n12717\t if (!PyErr_Occurred()) {\n12718\t PyErr_SetString(PyExc_RuntimeError,\n12719\t \"Unexpected error in an Op's C code. \"\n12720\t \"No Python exception was set.\");\n12721\t }\n12722\t goto __label_152;}\n12723\t }\n12724\t \n12725\t V151 = (PyArrayObject*)(py_V151);\n12726\t Py_XINCREF(V151);\n12727\t \n12728\t{\n12729\t\n12730\t py_V153 = PyList_GET_ITEM(storage_V153, 0);\n12731\t {Py_XINCREF(py_V153);}\n12732\t \n12733\t V153 = NULL;\n12734\t if (py_V153 == Py_None) {\n12735\t // We can either fail here or set V153 to NULL and rely on Ops\n12736\t // using tensors to handle the NULL case, but if they fail to do so\n12737\t // they'll end up with nasty segfaults, so this is public service.\n12738\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n12739\t {\n12740\t __failure = 154;\n12741\t if (!PyErr_Occurred()) {\n12742\t PyErr_SetString(PyExc_RuntimeError,\n12743\t \"Unexpected error in an Op's C code. \"\n12744\t \"No Python exception was set.\");\n12745\t }\n12746\t goto __label_154;}\n12747\t }\n12748\t if (!PyArray_Check(py_V153)) {\n12749\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n12750\t {\n12751\t __failure = 154;\n12752\t if (!PyErr_Occurred()) {\n12753\t PyErr_SetString(PyExc_RuntimeError,\n12754\t \"Unexpected error in an Op's C code. \"\n12755\t \"No Python exception was set.\");\n12756\t }\n12757\t goto __label_154;}\n12758\t }\n12759\t // We expect NPY_FLOAT64\n12760\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V153)) {\n12761\t PyArrayObject * tmp = (PyArrayObject*) py_V153;\n12762\t PyErr_Format(PyExc_NotImplementedError,\n12763\t \"expected an aligned array of type %ld \"\n12764\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n12765\t \" with %ld dimensions, with 3 last dims \"\n12766\t \"%ld, %ld, %ld\"\n12767\t \" and 3 last strides %ld %ld, %ld.\",\n12768\t (long int) NPY_FLOAT64,\n12769\t (long int) PyArray_TYPE((PyArrayObject*) py_V153),\n12770\t (long int) PyArray_NDIM(tmp),\n12771\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n12772\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n12773\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n12774\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n12775\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n12776\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n12777\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n12778\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n12779\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n12780\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n12781\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n12782\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n12783\t );\n12784\t {\n12785\t __failure = 154;\n12786\t if (!PyErr_Occurred()) {\n12787\t PyErr_SetString(PyExc_RuntimeError,\n12788\t \"Unexpected error in an Op's C code. \"\n12789\t \"No Python exception was set.\");\n12790\t }\n12791\t goto __label_154;}\n12792\t }\n12793\t // This is a TypeError to be consistent with DEBUG_MODE\n12794\t // Note: DEBUG_MODE also tells the name of the container\n12795\t if (PyArray_TYPE((PyArrayObject*) py_V153) != NPY_FLOAT64) {\n12796\t PyErr_Format(PyExc_TypeError,\n12797\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n12798\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V153));\n12799\t {\n12800\t __failure = 154;\n12801\t if (!PyErr_Occurred()) {\n12802\t PyErr_SetString(PyExc_RuntimeError,\n12803\t \"Unexpected error in an Op's C code. \"\n12804\t \"No Python exception was set.\");\n12805\t }\n12806\t goto __label_154;}\n12807\t }\n12808\t \n12809\t V153 = (PyArrayObject*)(py_V153);\n12810\t Py_XINCREF(V153);\n12811\t \n12812\t{\n12813\t\n12814\t py_V155 = PyList_GET_ITEM(storage_V155, 0);\n12815\t {Py_XINCREF(py_V155);}\n12816\t \n12817\t V155 = NULL;\n12818\t if (py_V155 == Py_None) {\n12819\t // We can either fail here or set V155 to NULL and rely on Ops\n12820\t // using tensors to handle the NULL case, but if they fail to do so\n12821\t // they'll end up with nasty segfaults, so this is public service.\n12822\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n12823\t {\n12824\t __failure = 156;\n12825\t if (!PyErr_Occurred()) {\n12826\t PyErr_SetString(PyExc_RuntimeError,\n12827\t \"Unexpected error in an Op's C code. \"\n12828\t \"No Python exception was set.\");\n12829\t }\n12830\t goto __label_156;}\n12831\t }\n12832\t if (!PyArray_Check(py_V155)) {\n12833\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n12834\t {\n12835\t __failure = 156;\n12836\t if (!PyErr_Occurred()) {\n12837\t PyErr_SetString(PyExc_RuntimeError,\n12838\t \"Unexpected error in an Op's C code. \"\n12839\t \"No Python exception was set.\");\n12840\t }\n12841\t goto __label_156;}\n12842\t }\n12843\t // We expect NPY_FLOAT64\n12844\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V155)) {\n12845\t PyArrayObject * tmp = (PyArrayObject*) py_V155;\n12846\t PyErr_Format(PyExc_NotImplementedError,\n12847\t \"expected an aligned array of type %ld \"\n12848\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n12849\t \" with %ld dimensions, with 3 last dims \"\n12850\t \"%ld, %ld, %ld\"\n12851\t \" and 3 last strides %ld %ld, %ld.\",\n12852\t (long int) NPY_FLOAT64,\n12853\t (long int) PyArray_TYPE((PyArrayObject*) py_V155),\n12854\t (long int) PyArray_NDIM(tmp),\n12855\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n12856\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n12857\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n12858\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n12859\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n12860\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n12861\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n12862\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n12863\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n12864\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n12865\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n12866\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n12867\t );\n12868\t {\n12869\t __failure = 156;\n12870\t if (!PyErr_Occurred()) {\n12871\t PyErr_SetString(PyExc_RuntimeError,\n12872\t \"Unexpected error in an Op's C code. \"\n12873\t \"No Python exception was set.\");\n12874\t }\n12875\t goto __label_156;}\n12876\t }\n12877\t // This is a TypeError to be consistent with DEBUG_MODE\n12878\t // Note: DEBUG_MODE also tells the name of the container\n12879\t if (PyArray_TYPE((PyArrayObject*) py_V155) != NPY_FLOAT64) {\n12880\t PyErr_Format(PyExc_TypeError,\n12881\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n12882\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V155));\n12883\t {\n12884\t __failure = 156;\n12885\t if (!PyErr_Occurred()) {\n12886\t PyErr_SetString(PyExc_RuntimeError,\n12887\t \"Unexpected error in an Op's C code. \"\n12888\t \"No Python exception was set.\");\n12889\t }\n12890\t goto __label_156;}\n12891\t }\n12892\t \n12893\t V155 = (PyArrayObject*)(py_V155);\n12894\t Py_XINCREF(V155);\n12895\t \n12896\t{\n12897\t\n12898\t py_V157 = PyList_GET_ITEM(storage_V157, 0);\n12899\t {Py_XINCREF(py_V157);}\n12900\t \n12901\t V157 = NULL;\n12902\t if (py_V157 == Py_None) {\n12903\t // We can either fail here or set V157 to NULL and rely on Ops\n12904\t // using tensors to handle the NULL case, but if they fail to do so\n12905\t // they'll end up with nasty segfaults, so this is public service.\n12906\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n12907\t {\n12908\t __failure = 158;\n12909\t if (!PyErr_Occurred()) {\n12910\t PyErr_SetString(PyExc_RuntimeError,\n12911\t \"Unexpected error in an Op's C code. \"\n12912\t \"No Python exception was set.\");\n12913\t }\n12914\t goto __label_158;}\n12915\t }\n12916\t if (!PyArray_Check(py_V157)) {\n12917\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n12918\t {\n12919\t __failure = 158;\n12920\t if (!PyErr_Occurred()) {\n12921\t PyErr_SetString(PyExc_RuntimeError,\n12922\t \"Unexpected error in an Op's C code. \"\n12923\t \"No Python exception was set.\");\n12924\t }\n12925\t goto __label_158;}\n12926\t }\n12927\t // We expect NPY_FLOAT64\n12928\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V157)) {\n12929\t PyArrayObject * tmp = (PyArrayObject*) py_V157;\n12930\t PyErr_Format(PyExc_NotImplementedError,\n12931\t \"expected an aligned array of type %ld \"\n12932\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n12933\t \" with %ld dimensions, with 3 last dims \"\n12934\t \"%ld, %ld, %ld\"\n12935\t \" and 3 last strides %ld %ld, %ld.\",\n12936\t (long int) NPY_FLOAT64,\n12937\t (long int) PyArray_TYPE((PyArrayObject*) py_V157),\n12938\t (long int) PyArray_NDIM(tmp),\n12939\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n12940\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n12941\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n12942\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n12943\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n12944\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n12945\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n12946\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n12947\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n12948\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n12949\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n12950\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n12951\t );\n12952\t {\n12953\t __failure = 158;\n12954\t if (!PyErr_Occurred()) {\n12955\t PyErr_SetString(PyExc_RuntimeError,\n12956\t \"Unexpected error in an Op's C code. \"\n12957\t \"No Python exception was set.\");\n12958\t }\n12959\t goto __label_158;}\n12960\t }\n12961\t // This is a TypeError to be consistent with DEBUG_MODE\n12962\t // Note: DEBUG_MODE also tells the name of the container\n12963\t if (PyArray_TYPE((PyArrayObject*) py_V157) != NPY_FLOAT64) {\n12964\t PyErr_Format(PyExc_TypeError,\n12965\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n12966\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V157));\n12967\t {\n12968\t __failure = 158;\n12969\t if (!PyErr_Occurred()) {\n12970\t PyErr_SetString(PyExc_RuntimeError,\n12971\t \"Unexpected error in an Op's C code. \"\n12972\t \"No Python exception was set.\");\n12973\t }\n12974\t goto __label_158;}\n12975\t }\n12976\t \n12977\t V157 = (PyArrayObject*)(py_V157);\n12978\t Py_XINCREF(V157);\n12979\t \n12980\t{\n12981\t\n12982\t py_V159 = PyList_GET_ITEM(storage_V159, 0);\n12983\t {Py_XINCREF(py_V159);}\n12984\t \n12985\t V159 = NULL;\n12986\t if (py_V159 == Py_None) {\n12987\t // We can either fail here or set V159 to NULL and rely on Ops\n12988\t // using tensors to handle the NULL case, but if they fail to do so\n12989\t // they'll end up with nasty segfaults, so this is public service.\n12990\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n12991\t {\n12992\t __failure = 160;\n12993\t if (!PyErr_Occurred()) {\n12994\t PyErr_SetString(PyExc_RuntimeError,\n12995\t \"Unexpected error in an Op's C code. \"\n12996\t \"No Python exception was set.\");\n12997\t }\n12998\t goto __label_160;}\n12999\t }\n13000\t if (!PyArray_Check(py_V159)) {\n13001\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n13002\t {\n13003\t __failure = 160;\n13004\t if (!PyErr_Occurred()) {\n13005\t PyErr_SetString(PyExc_RuntimeError,\n13006\t \"Unexpected error in an Op's C code. \"\n13007\t \"No Python exception was set.\");\n13008\t }\n13009\t goto __label_160;}\n13010\t }\n13011\t // We expect NPY_FLOAT64\n13012\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V159)) {\n13013\t PyArrayObject * tmp = (PyArrayObject*) py_V159;\n13014\t PyErr_Format(PyExc_NotImplementedError,\n13015\t \"expected an aligned array of type %ld \"\n13016\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n13017\t \" with %ld dimensions, with 3 last dims \"\n13018\t \"%ld, %ld, %ld\"\n13019\t \" and 3 last strides %ld %ld, %ld.\",\n13020\t (long int) NPY_FLOAT64,\n13021\t (long int) PyArray_TYPE((PyArrayObject*) py_V159),\n13022\t (long int) PyArray_NDIM(tmp),\n13023\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n13024\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n13025\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n13026\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n13027\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n13028\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n13029\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n13030\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n13031\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n13032\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n13033\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n13034\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n13035\t );\n13036\t {\n13037\t __failure = 160;\n13038\t if (!PyErr_Occurred()) {\n13039\t PyErr_SetString(PyExc_RuntimeError,\n13040\t \"Unexpected error in an Op's C code. \"\n13041\t \"No Python exception was set.\");\n13042\t }\n13043\t goto __label_160;}\n13044\t }\n13045\t // This is a TypeError to be consistent with DEBUG_MODE\n13046\t // Note: DEBUG_MODE also tells the name of the container\n13047\t if (PyArray_TYPE((PyArrayObject*) py_V159) != NPY_FLOAT64) {\n13048\t PyErr_Format(PyExc_TypeError,\n13049\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n13050\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V159));\n13051\t {\n13052\t __failure = 160;\n13053\t if (!PyErr_Occurred()) {\n13054\t PyErr_SetString(PyExc_RuntimeError,\n13055\t \"Unexpected error in an Op's C code. \"\n13056\t \"No Python exception was set.\");\n13057\t }\n13058\t goto __label_160;}\n13059\t }\n13060\t \n13061\t V159 = (PyArrayObject*)(py_V159);\n13062\t Py_XINCREF(V159);\n13063\t \n13064\t{\n13065\t\n13066\t py_V161 = PyList_GET_ITEM(storage_V161, 0);\n13067\t {Py_XINCREF(py_V161);}\n13068\t \n13069\t V161 = NULL;\n13070\t if (py_V161 == Py_None) {\n13071\t // We can either fail here or set V161 to NULL and rely on Ops\n13072\t // using tensors to handle the NULL case, but if they fail to do so\n13073\t // they'll end up with nasty segfaults, so this is public service.\n13074\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n13075\t {\n13076\t __failure = 162;\n13077\t if (!PyErr_Occurred()) {\n13078\t PyErr_SetString(PyExc_RuntimeError,\n13079\t \"Unexpected error in an Op's C code. \"\n13080\t \"No Python exception was set.\");\n13081\t }\n13082\t goto __label_162;}\n13083\t }\n13084\t if (!PyArray_Check(py_V161)) {\n13085\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n13086\t {\n13087\t __failure = 162;\n13088\t if (!PyErr_Occurred()) {\n13089\t PyErr_SetString(PyExc_RuntimeError,\n13090\t \"Unexpected error in an Op's C code. \"\n13091\t \"No Python exception was set.\");\n13092\t }\n13093\t goto __label_162;}\n13094\t }\n13095\t // We expect NPY_FLOAT64\n13096\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V161)) {\n13097\t PyArrayObject * tmp = (PyArrayObject*) py_V161;\n13098\t PyErr_Format(PyExc_NotImplementedError,\n13099\t \"expected an aligned array of type %ld \"\n13100\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n13101\t \" with %ld dimensions, with 3 last dims \"\n13102\t \"%ld, %ld, %ld\"\n13103\t \" and 3 last strides %ld %ld, %ld.\",\n13104\t (long int) NPY_FLOAT64,\n13105\t (long int) PyArray_TYPE((PyArrayObject*) py_V161),\n13106\t (long int) PyArray_NDIM(tmp),\n13107\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n13108\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n13109\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n13110\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n13111\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n13112\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n13113\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n13114\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n13115\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n13116\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n13117\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n13118\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n13119\t );\n13120\t {\n13121\t __failure = 162;\n13122\t if (!PyErr_Occurred()) {\n13123\t PyErr_SetString(PyExc_RuntimeError,\n13124\t \"Unexpected error in an Op's C code. \"\n13125\t \"No Python exception was set.\");\n13126\t }\n13127\t goto __label_162;}\n13128\t }\n13129\t // This is a TypeError to be consistent with DEBUG_MODE\n13130\t // Note: DEBUG_MODE also tells the name of the container\n13131\t if (PyArray_TYPE((PyArrayObject*) py_V161) != NPY_FLOAT64) {\n13132\t PyErr_Format(PyExc_TypeError,\n13133\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n13134\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V161));\n13135\t {\n13136\t __failure = 162;\n13137\t if (!PyErr_Occurred()) {\n13138\t PyErr_SetString(PyExc_RuntimeError,\n13139\t \"Unexpected error in an Op's C code. \"\n13140\t \"No Python exception was set.\");\n13141\t }\n13142\t goto __label_162;}\n13143\t }\n13144\t \n13145\t V161 = (PyArrayObject*)(py_V161);\n13146\t Py_XINCREF(V161);\n13147\t \n13148\t{\n13149\t\n13150\t py_V163 = PyList_GET_ITEM(storage_V163, 0);\n13151\t {Py_XINCREF(py_V163);}\n13152\t \n13153\t V163 = NULL;\n13154\t if (py_V163 == Py_None) {\n13155\t // We can either fail here or set V163 to NULL and rely on Ops\n13156\t // using tensors to handle the NULL case, but if they fail to do so\n13157\t // they'll end up with nasty segfaults, so this is public service.\n13158\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n13159\t {\n13160\t __failure = 164;\n13161\t if (!PyErr_Occurred()) {\n13162\t PyErr_SetString(PyExc_RuntimeError,\n13163\t \"Unexpected error in an Op's C code. \"\n13164\t \"No Python exception was set.\");\n13165\t }\n13166\t goto __label_164;}\n13167\t }\n13168\t if (!PyArray_Check(py_V163)) {\n13169\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n13170\t {\n13171\t __failure = 164;\n13172\t if (!PyErr_Occurred()) {\n13173\t PyErr_SetString(PyExc_RuntimeError,\n13174\t \"Unexpected error in an Op's C code. \"\n13175\t \"No Python exception was set.\");\n13176\t }\n13177\t goto __label_164;}\n13178\t }\n13179\t // We expect NPY_FLOAT64\n13180\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V163)) {\n13181\t PyArrayObject * tmp = (PyArrayObject*) py_V163;\n13182\t PyErr_Format(PyExc_NotImplementedError,\n13183\t \"expected an aligned array of type %ld \"\n13184\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n13185\t \" with %ld dimensions, with 3 last dims \"\n13186\t \"%ld, %ld, %ld\"\n13187\t \" and 3 last strides %ld %ld, %ld.\",\n13188\t (long int) NPY_FLOAT64,\n13189\t (long int) PyArray_TYPE((PyArrayObject*) py_V163),\n13190\t (long int) PyArray_NDIM(tmp),\n13191\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n13192\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n13193\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n13194\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n13195\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n13196\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n13197\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n13198\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n13199\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n13200\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n13201\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n13202\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n13203\t );\n13204\t {\n13205\t __failure = 164;\n13206\t if (!PyErr_Occurred()) {\n13207\t PyErr_SetString(PyExc_RuntimeError,\n13208\t \"Unexpected error in an Op's C code. \"\n13209\t \"No Python exception was set.\");\n13210\t }\n13211\t goto __label_164;}\n13212\t }\n13213\t // This is a TypeError to be consistent with DEBUG_MODE\n13214\t // Note: DEBUG_MODE also tells the name of the container\n13215\t if (PyArray_TYPE((PyArrayObject*) py_V163) != NPY_FLOAT64) {\n13216\t PyErr_Format(PyExc_TypeError,\n13217\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n13218\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V163));\n13219\t {\n13220\t __failure = 164;\n13221\t if (!PyErr_Occurred()) {\n13222\t PyErr_SetString(PyExc_RuntimeError,\n13223\t \"Unexpected error in an Op's C code. \"\n13224\t \"No Python exception was set.\");\n13225\t }\n13226\t goto __label_164;}\n13227\t }\n13228\t \n13229\t V163 = (PyArrayObject*)(py_V163);\n13230\t Py_XINCREF(V163);\n13231\t \n13232\t{\n13233\t\n13234\t py_V165 = PyList_GET_ITEM(storage_V165, 0);\n13235\t {Py_XINCREF(py_V165);}\n13236\t \n13237\t V165 = NULL;\n13238\t if (py_V165 == Py_None) {\n13239\t // We can either fail here or set V165 to NULL and rely on Ops\n13240\t // using tensors to handle the NULL case, but if they fail to do so\n13241\t // they'll end up with nasty segfaults, so this is public service.\n13242\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n13243\t {\n13244\t __failure = 166;\n13245\t if (!PyErr_Occurred()) {\n13246\t PyErr_SetString(PyExc_RuntimeError,\n13247\t \"Unexpected error in an Op's C code. \"\n13248\t \"No Python exception was set.\");\n13249\t }\n13250\t goto __label_166;}\n13251\t }\n13252\t if (!PyArray_Check(py_V165)) {\n13253\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n13254\t {\n13255\t __failure = 166;\n13256\t if (!PyErr_Occurred()) {\n13257\t PyErr_SetString(PyExc_RuntimeError,\n13258\t \"Unexpected error in an Op's C code. \"\n13259\t \"No Python exception was set.\");\n13260\t }\n13261\t goto __label_166;}\n13262\t }\n13263\t // We expect NPY_FLOAT64\n13264\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V165)) {\n13265\t PyArrayObject * tmp = (PyArrayObject*) py_V165;\n13266\t PyErr_Format(PyExc_NotImplementedError,\n13267\t \"expected an aligned array of type %ld \"\n13268\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n13269\t \" with %ld dimensions, with 3 last dims \"\n13270\t \"%ld, %ld, %ld\"\n13271\t \" and 3 last strides %ld %ld, %ld.\",\n13272\t (long int) NPY_FLOAT64,\n13273\t (long int) PyArray_TYPE((PyArrayObject*) py_V165),\n13274\t (long int) PyArray_NDIM(tmp),\n13275\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n13276\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n13277\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n13278\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n13279\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n13280\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n13281\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n13282\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n13283\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n13284\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n13285\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n13286\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n13287\t );\n13288\t {\n13289\t __failure = 166;\n13290\t if (!PyErr_Occurred()) {\n13291\t PyErr_SetString(PyExc_RuntimeError,\n13292\t \"Unexpected error in an Op's C code. \"\n13293\t \"No Python exception was set.\");\n13294\t }\n13295\t goto __label_166;}\n13296\t }\n13297\t // This is a TypeError to be consistent with DEBUG_MODE\n13298\t // Note: DEBUG_MODE also tells the name of the container\n13299\t if (PyArray_TYPE((PyArrayObject*) py_V165) != NPY_FLOAT64) {\n13300\t PyErr_Format(PyExc_TypeError,\n13301\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n13302\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V165));\n13303\t {\n13304\t __failure = 166;\n13305\t if (!PyErr_Occurred()) {\n13306\t PyErr_SetString(PyExc_RuntimeError,\n13307\t \"Unexpected error in an Op's C code. \"\n13308\t \"No Python exception was set.\");\n13309\t }\n13310\t goto __label_166;}\n13311\t }\n13312\t \n13313\t V165 = (PyArrayObject*)(py_V165);\n13314\t Py_XINCREF(V165);\n13315\t \n13316\t{\n13317\t\n13318\t py_V167 = PyList_GET_ITEM(storage_V167, 0);\n13319\t {Py_XINCREF(py_V167);}\n13320\t \n13321\t V167 = NULL;\n13322\t if (py_V167 == Py_None) {\n13323\t // We can either fail here or set V167 to NULL and rely on Ops\n13324\t // using tensors to handle the NULL case, but if they fail to do so\n13325\t // they'll end up with nasty segfaults, so this is public service.\n13326\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n13327\t {\n13328\t __failure = 168;\n13329\t if (!PyErr_Occurred()) {\n13330\t PyErr_SetString(PyExc_RuntimeError,\n13331\t \"Unexpected error in an Op's C code. \"\n13332\t \"No Python exception was set.\");\n13333\t }\n13334\t goto __label_168;}\n13335\t }\n13336\t if (!PyArray_Check(py_V167)) {\n13337\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n13338\t {\n13339\t __failure = 168;\n13340\t if (!PyErr_Occurred()) {\n13341\t PyErr_SetString(PyExc_RuntimeError,\n13342\t \"Unexpected error in an Op's C code. \"\n13343\t \"No Python exception was set.\");\n13344\t }\n13345\t goto __label_168;}\n13346\t }\n13347\t // We expect NPY_FLOAT64\n13348\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V167)) {\n13349\t PyArrayObject * tmp = (PyArrayObject*) py_V167;\n13350\t PyErr_Format(PyExc_NotImplementedError,\n13351\t \"expected an aligned array of type %ld \"\n13352\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n13353\t \" with %ld dimensions, with 3 last dims \"\n13354\t \"%ld, %ld, %ld\"\n13355\t \" and 3 last strides %ld %ld, %ld.\",\n13356\t (long int) NPY_FLOAT64,\n13357\t (long int) PyArray_TYPE((PyArrayObject*) py_V167),\n13358\t (long int) PyArray_NDIM(tmp),\n13359\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n13360\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n13361\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n13362\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n13363\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n13364\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n13365\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n13366\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n13367\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n13368\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n13369\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n13370\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n13371\t );\n13372\t {\n13373\t __failure = 168;\n13374\t if (!PyErr_Occurred()) {\n13375\t PyErr_SetString(PyExc_RuntimeError,\n13376\t \"Unexpected error in an Op's C code. \"\n13377\t \"No Python exception was set.\");\n13378\t }\n13379\t goto __label_168;}\n13380\t }\n13381\t // This is a TypeError to be consistent with DEBUG_MODE\n13382\t // Note: DEBUG_MODE also tells the name of the container\n13383\t if (PyArray_TYPE((PyArrayObject*) py_V167) != NPY_FLOAT64) {\n13384\t PyErr_Format(PyExc_TypeError,\n13385\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n13386\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V167));\n13387\t {\n13388\t __failure = 168;\n13389\t if (!PyErr_Occurred()) {\n13390\t PyErr_SetString(PyExc_RuntimeError,\n13391\t \"Unexpected error in an Op's C code. \"\n13392\t \"No Python exception was set.\");\n13393\t }\n13394\t goto __label_168;}\n13395\t }\n13396\t \n13397\t V167 = (PyArrayObject*)(py_V167);\n13398\t Py_XINCREF(V167);\n13399\t \n13400\t{\n13401\t\n13402\t py_V169 = PyList_GET_ITEM(storage_V169, 0);\n13403\t {Py_XINCREF(py_V169);}\n13404\t \n13405\t V169 = NULL;\n13406\t if (py_V169 == Py_None) {\n13407\t // We can either fail here or set V169 to NULL and rely on Ops\n13408\t // using tensors to handle the NULL case, but if they fail to do so\n13409\t // they'll end up with nasty segfaults, so this is public service.\n13410\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n13411\t {\n13412\t __failure = 170;\n13413\t if (!PyErr_Occurred()) {\n13414\t PyErr_SetString(PyExc_RuntimeError,\n13415\t \"Unexpected error in an Op's C code. \"\n13416\t \"No Python exception was set.\");\n13417\t }\n13418\t goto __label_170;}\n13419\t }\n13420\t if (!PyArray_Check(py_V169)) {\n13421\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n13422\t {\n13423\t __failure = 170;\n13424\t if (!PyErr_Occurred()) {\n13425\t PyErr_SetString(PyExc_RuntimeError,\n13426\t \"Unexpected error in an Op's C code. \"\n13427\t \"No Python exception was set.\");\n13428\t }\n13429\t goto __label_170;}\n13430\t }\n13431\t // We expect NPY_FLOAT64\n13432\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V169)) {\n13433\t PyArrayObject * tmp = (PyArrayObject*) py_V169;\n13434\t PyErr_Format(PyExc_NotImplementedError,\n13435\t \"expected an aligned array of type %ld \"\n13436\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n13437\t \" with %ld dimensions, with 3 last dims \"\n13438\t \"%ld, %ld, %ld\"\n13439\t \" and 3 last strides %ld %ld, %ld.\",\n13440\t (long int) NPY_FLOAT64,\n13441\t (long int) PyArray_TYPE((PyArrayObject*) py_V169),\n13442\t (long int) PyArray_NDIM(tmp),\n13443\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n13444\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n13445\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n13446\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n13447\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n13448\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n13449\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n13450\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n13451\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n13452\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n13453\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n13454\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n13455\t );\n13456\t {\n13457\t __failure = 170;\n13458\t if (!PyErr_Occurred()) {\n13459\t PyErr_SetString(PyExc_RuntimeError,\n13460\t \"Unexpected error in an Op's C code. \"\n13461\t \"No Python exception was set.\");\n13462\t }\n13463\t goto __label_170;}\n13464\t }\n13465\t // This is a TypeError to be consistent with DEBUG_MODE\n13466\t // Note: DEBUG_MODE also tells the name of the container\n13467\t if (PyArray_TYPE((PyArrayObject*) py_V169) != NPY_FLOAT64) {\n13468\t PyErr_Format(PyExc_TypeError,\n13469\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n13470\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V169));\n13471\t {\n13472\t __failure = 170;\n13473\t if (!PyErr_Occurred()) {\n13474\t PyErr_SetString(PyExc_RuntimeError,\n13475\t \"Unexpected error in an Op's C code. \"\n13476\t \"No Python exception was set.\");\n13477\t }\n13478\t goto __label_170;}\n13479\t }\n13480\t \n13481\t V169 = (PyArrayObject*)(py_V169);\n13482\t Py_XINCREF(V169);\n13483\t \n13484\t{\n13485\t\n13486\t py_V171 = PyList_GET_ITEM(storage_V171, 0);\n13487\t {Py_XINCREF(py_V171);}\n13488\t \n13489\t V171 = NULL;\n13490\t if (py_V171 == Py_None) {\n13491\t // We can either fail here or set V171 to NULL and rely on Ops\n13492\t // using tensors to handle the NULL case, but if they fail to do so\n13493\t // they'll end up with nasty segfaults, so this is public service.\n13494\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n13495\t {\n13496\t __failure = 172;\n13497\t if (!PyErr_Occurred()) {\n13498\t PyErr_SetString(PyExc_RuntimeError,\n13499\t \"Unexpected error in an Op's C code. \"\n13500\t \"No Python exception was set.\");\n13501\t }\n13502\t goto __label_172;}\n13503\t }\n13504\t if (!PyArray_Check(py_V171)) {\n13505\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n13506\t {\n13507\t __failure = 172;\n13508\t if (!PyErr_Occurred()) {\n13509\t PyErr_SetString(PyExc_RuntimeError,\n13510\t \"Unexpected error in an Op's C code. \"\n13511\t \"No Python exception was set.\");\n13512\t }\n13513\t goto __label_172;}\n13514\t }\n13515\t // We expect NPY_FLOAT64\n13516\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V171)) {\n13517\t PyArrayObject * tmp = (PyArrayObject*) py_V171;\n13518\t PyErr_Format(PyExc_NotImplementedError,\n13519\t \"expected an aligned array of type %ld \"\n13520\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n13521\t \" with %ld dimensions, with 3 last dims \"\n13522\t \"%ld, %ld, %ld\"\n13523\t \" and 3 last strides %ld %ld, %ld.\",\n13524\t (long int) NPY_FLOAT64,\n13525\t (long int) PyArray_TYPE((PyArrayObject*) py_V171),\n13526\t (long int) PyArray_NDIM(tmp),\n13527\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n13528\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n13529\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n13530\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n13531\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n13532\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n13533\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n13534\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n13535\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n13536\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n13537\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n13538\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n13539\t );\n13540\t {\n13541\t __failure = 172;\n13542\t if (!PyErr_Occurred()) {\n13543\t PyErr_SetString(PyExc_RuntimeError,\n13544\t \"Unexpected error in an Op's C code. \"\n13545\t \"No Python exception was set.\");\n13546\t }\n13547\t goto __label_172;}\n13548\t }\n13549\t // This is a TypeError to be consistent with DEBUG_MODE\n13550\t // Note: DEBUG_MODE also tells the name of the container\n13551\t if (PyArray_TYPE((PyArrayObject*) py_V171) != NPY_FLOAT64) {\n13552\t PyErr_Format(PyExc_TypeError,\n13553\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n13554\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V171));\n13555\t {\n13556\t __failure = 172;\n13557\t if (!PyErr_Occurred()) {\n13558\t PyErr_SetString(PyExc_RuntimeError,\n13559\t \"Unexpected error in an Op's C code. \"\n13560\t \"No Python exception was set.\");\n13561\t }\n13562\t goto __label_172;}\n13563\t }\n13564\t \n13565\t V171 = (PyArrayObject*)(py_V171);\n13566\t Py_XINCREF(V171);\n13567\t \n13568\t{\n13569\t\n13570\t py_V173 = PyList_GET_ITEM(storage_V173, 0);\n13571\t {Py_XINCREF(py_V173);}\n13572\t \n13573\t V173 = NULL;\n13574\t if (py_V173 == Py_None) {\n13575\t // We can either fail here or set V173 to NULL and rely on Ops\n13576\t // using tensors to handle the NULL case, but if they fail to do so\n13577\t // they'll end up with nasty segfaults, so this is public service.\n13578\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n13579\t {\n13580\t __failure = 174;\n13581\t if (!PyErr_Occurred()) {\n13582\t PyErr_SetString(PyExc_RuntimeError,\n13583\t \"Unexpected error in an Op's C code. \"\n13584\t \"No Python exception was set.\");\n13585\t }\n13586\t goto __label_174;}\n13587\t }\n13588\t if (!PyArray_Check(py_V173)) {\n13589\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n13590\t {\n13591\t __failure = 174;\n13592\t if (!PyErr_Occurred()) {\n13593\t PyErr_SetString(PyExc_RuntimeError,\n13594\t \"Unexpected error in an Op's C code. \"\n13595\t \"No Python exception was set.\");\n13596\t }\n13597\t goto __label_174;}\n13598\t }\n13599\t // We expect NPY_FLOAT64\n13600\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V173)) {\n13601\t PyArrayObject * tmp = (PyArrayObject*) py_V173;\n13602\t PyErr_Format(PyExc_NotImplementedError,\n13603\t \"expected an aligned array of type %ld \"\n13604\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n13605\t \" with %ld dimensions, with 3 last dims \"\n13606\t \"%ld, %ld, %ld\"\n13607\t \" and 3 last strides %ld %ld, %ld.\",\n13608\t (long int) NPY_FLOAT64,\n13609\t (long int) PyArray_TYPE((PyArrayObject*) py_V173),\n13610\t (long int) PyArray_NDIM(tmp),\n13611\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n13612\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n13613\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n13614\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n13615\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n13616\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n13617\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n13618\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n13619\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n13620\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n13621\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n13622\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n13623\t );\n13624\t {\n13625\t __failure = 174;\n13626\t if (!PyErr_Occurred()) {\n13627\t PyErr_SetString(PyExc_RuntimeError,\n13628\t \"Unexpected error in an Op's C code. \"\n13629\t \"No Python exception was set.\");\n13630\t }\n13631\t goto __label_174;}\n13632\t }\n13633\t // This is a TypeError to be consistent with DEBUG_MODE\n13634\t // Note: DEBUG_MODE also tells the name of the container\n13635\t if (PyArray_TYPE((PyArrayObject*) py_V173) != NPY_FLOAT64) {\n13636\t PyErr_Format(PyExc_TypeError,\n13637\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n13638\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V173));\n13639\t {\n13640\t __failure = 174;\n13641\t if (!PyErr_Occurred()) {\n13642\t PyErr_SetString(PyExc_RuntimeError,\n13643\t \"Unexpected error in an Op's C code. \"\n13644\t \"No Python exception was set.\");\n13645\t }\n13646\t goto __label_174;}\n13647\t }\n13648\t \n13649\t V173 = (PyArrayObject*)(py_V173);\n13650\t Py_XINCREF(V173);\n13651\t \n13652\t{\n13653\t\n13654\t py_V175 = PyList_GET_ITEM(storage_V175, 0);\n13655\t {Py_XINCREF(py_V175);}\n13656\t \n13657\t V175 = NULL;\n13658\t if (py_V175 == Py_None) {\n13659\t // We can either fail here or set V175 to NULL and rely on Ops\n13660\t // using tensors to handle the NULL case, but if they fail to do so\n13661\t // they'll end up with nasty segfaults, so this is public service.\n13662\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n13663\t {\n13664\t __failure = 176;\n13665\t if (!PyErr_Occurred()) {\n13666\t PyErr_SetString(PyExc_RuntimeError,\n13667\t \"Unexpected error in an Op's C code. \"\n13668\t \"No Python exception was set.\");\n13669\t }\n13670\t goto __label_176;}\n13671\t }\n13672\t if (!PyArray_Check(py_V175)) {\n13673\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n13674\t {\n13675\t __failure = 176;\n13676\t if (!PyErr_Occurred()) {\n13677\t PyErr_SetString(PyExc_RuntimeError,\n13678\t \"Unexpected error in an Op's C code. \"\n13679\t \"No Python exception was set.\");\n13680\t }\n13681\t goto __label_176;}\n13682\t }\n13683\t // We expect NPY_FLOAT64\n13684\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V175)) {\n13685\t PyArrayObject * tmp = (PyArrayObject*) py_V175;\n13686\t PyErr_Format(PyExc_NotImplementedError,\n13687\t \"expected an aligned array of type %ld \"\n13688\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n13689\t \" with %ld dimensions, with 3 last dims \"\n13690\t \"%ld, %ld, %ld\"\n13691\t \" and 3 last strides %ld %ld, %ld.\",\n13692\t (long int) NPY_FLOAT64,\n13693\t (long int) PyArray_TYPE((PyArrayObject*) py_V175),\n13694\t (long int) PyArray_NDIM(tmp),\n13695\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n13696\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n13697\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n13698\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n13699\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n13700\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n13701\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n13702\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n13703\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n13704\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n13705\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n13706\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n13707\t );\n13708\t {\n13709\t __failure = 176;\n13710\t if (!PyErr_Occurred()) {\n13711\t PyErr_SetString(PyExc_RuntimeError,\n13712\t \"Unexpected error in an Op's C code. \"\n13713\t \"No Python exception was set.\");\n13714\t }\n13715\t goto __label_176;}\n13716\t }\n13717\t // This is a TypeError to be consistent with DEBUG_MODE\n13718\t // Note: DEBUG_MODE also tells the name of the container\n13719\t if (PyArray_TYPE((PyArrayObject*) py_V175) != NPY_FLOAT64) {\n13720\t PyErr_Format(PyExc_TypeError,\n13721\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n13722\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V175));\n13723\t {\n13724\t __failure = 176;\n13725\t if (!PyErr_Occurred()) {\n13726\t PyErr_SetString(PyExc_RuntimeError,\n13727\t \"Unexpected error in an Op's C code. \"\n13728\t \"No Python exception was set.\");\n13729\t }\n13730\t goto __label_176;}\n13731\t }\n13732\t \n13733\t V175 = (PyArrayObject*)(py_V175);\n13734\t Py_XINCREF(V175);\n13735\t \n13736\t{\n13737\t\n13738\t py_V177 = PyList_GET_ITEM(storage_V177, 0);\n13739\t {Py_XINCREF(py_V177);}\n13740\t \n13741\t V177 = NULL;\n13742\t if (py_V177 == Py_None) {\n13743\t // We can either fail here or set V177 to NULL and rely on Ops\n13744\t // using tensors to handle the NULL case, but if they fail to do so\n13745\t // they'll end up with nasty segfaults, so this is public service.\n13746\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n13747\t {\n13748\t __failure = 178;\n13749\t if (!PyErr_Occurred()) {\n13750\t PyErr_SetString(PyExc_RuntimeError,\n13751\t \"Unexpected error in an Op's C code. \"\n13752\t \"No Python exception was set.\");\n13753\t }\n13754\t goto __label_178;}\n13755\t }\n13756\t if (!PyArray_Check(py_V177)) {\n13757\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n13758\t {\n13759\t __failure = 178;\n13760\t if (!PyErr_Occurred()) {\n13761\t PyErr_SetString(PyExc_RuntimeError,\n13762\t \"Unexpected error in an Op's C code. \"\n13763\t \"No Python exception was set.\");\n13764\t }\n13765\t goto __label_178;}\n13766\t }\n13767\t // We expect NPY_FLOAT64\n13768\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V177)) {\n13769\t PyArrayObject * tmp = (PyArrayObject*) py_V177;\n13770\t PyErr_Format(PyExc_NotImplementedError,\n13771\t \"expected an aligned array of type %ld \"\n13772\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n13773\t \" with %ld dimensions, with 3 last dims \"\n13774\t \"%ld, %ld, %ld\"\n13775\t \" and 3 last strides %ld %ld, %ld.\",\n13776\t (long int) NPY_FLOAT64,\n13777\t (long int) PyArray_TYPE((PyArrayObject*) py_V177),\n13778\t (long int) PyArray_NDIM(tmp),\n13779\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n13780\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n13781\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n13782\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n13783\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n13784\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n13785\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n13786\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n13787\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n13788\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n13789\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n13790\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n13791\t );\n13792\t {\n13793\t __failure = 178;\n13794\t if (!PyErr_Occurred()) {\n13795\t PyErr_SetString(PyExc_RuntimeError,\n13796\t \"Unexpected error in an Op's C code. \"\n13797\t \"No Python exception was set.\");\n13798\t }\n13799\t goto __label_178;}\n13800\t }\n13801\t // This is a TypeError to be consistent with DEBUG_MODE\n13802\t // Note: DEBUG_MODE also tells the name of the container\n13803\t if (PyArray_TYPE((PyArrayObject*) py_V177) != NPY_FLOAT64) {\n13804\t PyErr_Format(PyExc_TypeError,\n13805\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n13806\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V177));\n13807\t {\n13808\t __failure = 178;\n13809\t if (!PyErr_Occurred()) {\n13810\t PyErr_SetString(PyExc_RuntimeError,\n13811\t \"Unexpected error in an Op's C code. \"\n13812\t \"No Python exception was set.\");\n13813\t }\n13814\t goto __label_178;}\n13815\t }\n13816\t \n13817\t V177 = (PyArrayObject*)(py_V177);\n13818\t Py_XINCREF(V177);\n13819\t \n13820\t{\n13821\t\n13822\t py_V179 = PyList_GET_ITEM(storage_V179, 0);\n13823\t {Py_XINCREF(py_V179);}\n13824\t \n13825\t V179 = NULL;\n13826\t if (py_V179 == Py_None) {\n13827\t // We can either fail here or set V179 to NULL and rely on Ops\n13828\t // using tensors to handle the NULL case, but if they fail to do so\n13829\t // they'll end up with nasty segfaults, so this is public service.\n13830\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n13831\t {\n13832\t __failure = 180;\n13833\t if (!PyErr_Occurred()) {\n13834\t PyErr_SetString(PyExc_RuntimeError,\n13835\t \"Unexpected error in an Op's C code. \"\n13836\t \"No Python exception was set.\");\n13837\t }\n13838\t goto __label_180;}\n13839\t }\n13840\t if (!PyArray_Check(py_V179)) {\n13841\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n13842\t {\n13843\t __failure = 180;\n13844\t if (!PyErr_Occurred()) {\n13845\t PyErr_SetString(PyExc_RuntimeError,\n13846\t \"Unexpected error in an Op's C code. \"\n13847\t \"No Python exception was set.\");\n13848\t }\n13849\t goto __label_180;}\n13850\t }\n13851\t // We expect NPY_FLOAT64\n13852\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V179)) {\n13853\t PyArrayObject * tmp = (PyArrayObject*) py_V179;\n13854\t PyErr_Format(PyExc_NotImplementedError,\n13855\t \"expected an aligned array of type %ld \"\n13856\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n13857\t \" with %ld dimensions, with 3 last dims \"\n13858\t \"%ld, %ld, %ld\"\n13859\t \" and 3 last strides %ld %ld, %ld.\",\n13860\t (long int) NPY_FLOAT64,\n13861\t (long int) PyArray_TYPE((PyArrayObject*) py_V179),\n13862\t (long int) PyArray_NDIM(tmp),\n13863\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n13864\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n13865\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n13866\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n13867\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n13868\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n13869\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n13870\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n13871\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n13872\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n13873\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n13874\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n13875\t );\n13876\t {\n13877\t __failure = 180;\n13878\t if (!PyErr_Occurred()) {\n13879\t PyErr_SetString(PyExc_RuntimeError,\n13880\t \"Unexpected error in an Op's C code. \"\n13881\t \"No Python exception was set.\");\n13882\t }\n13883\t goto __label_180;}\n13884\t }\n13885\t // This is a TypeError to be consistent with DEBUG_MODE\n13886\t // Note: DEBUG_MODE also tells the name of the container\n13887\t if (PyArray_TYPE((PyArrayObject*) py_V179) != NPY_FLOAT64) {\n13888\t PyErr_Format(PyExc_TypeError,\n13889\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n13890\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V179));\n13891\t {\n13892\t __failure = 180;\n13893\t if (!PyErr_Occurred()) {\n13894\t PyErr_SetString(PyExc_RuntimeError,\n13895\t \"Unexpected error in an Op's C code. \"\n13896\t \"No Python exception was set.\");\n13897\t }\n13898\t goto __label_180;}\n13899\t }\n13900\t \n13901\t V179 = (PyArrayObject*)(py_V179);\n13902\t Py_XINCREF(V179);\n13903\t \n13904\t{\n13905\t\n13906\t py_V181 = PyList_GET_ITEM(storage_V181, 0);\n13907\t {Py_XINCREF(py_V181);}\n13908\t \n13909\t V181 = NULL;\n13910\t if (py_V181 == Py_None) {\n13911\t // We can either fail here or set V181 to NULL and rely on Ops\n13912\t // using tensors to handle the NULL case, but if they fail to do so\n13913\t // they'll end up with nasty segfaults, so this is public service.\n13914\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n13915\t {\n13916\t __failure = 182;\n13917\t if (!PyErr_Occurred()) {\n13918\t PyErr_SetString(PyExc_RuntimeError,\n13919\t \"Unexpected error in an Op's C code. \"\n13920\t \"No Python exception was set.\");\n13921\t }\n13922\t goto __label_182;}\n13923\t }\n13924\t if (!PyArray_Check(py_V181)) {\n13925\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n13926\t {\n13927\t __failure = 182;\n13928\t if (!PyErr_Occurred()) {\n13929\t PyErr_SetString(PyExc_RuntimeError,\n13930\t \"Unexpected error in an Op's C code. \"\n13931\t \"No Python exception was set.\");\n13932\t }\n13933\t goto __label_182;}\n13934\t }\n13935\t // We expect NPY_FLOAT64\n13936\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V181)) {\n13937\t PyArrayObject * tmp = (PyArrayObject*) py_V181;\n13938\t PyErr_Format(PyExc_NotImplementedError,\n13939\t \"expected an aligned array of type %ld \"\n13940\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n13941\t \" with %ld dimensions, with 3 last dims \"\n13942\t \"%ld, %ld, %ld\"\n13943\t \" and 3 last strides %ld %ld, %ld.\",\n13944\t (long int) NPY_FLOAT64,\n13945\t (long int) PyArray_TYPE((PyArrayObject*) py_V181),\n13946\t (long int) PyArray_NDIM(tmp),\n13947\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n13948\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n13949\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n13950\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n13951\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n13952\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n13953\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n13954\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n13955\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n13956\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n13957\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n13958\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n13959\t );\n13960\t {\n13961\t __failure = 182;\n13962\t if (!PyErr_Occurred()) {\n13963\t PyErr_SetString(PyExc_RuntimeError,\n13964\t \"Unexpected error in an Op's C code. \"\n13965\t \"No Python exception was set.\");\n13966\t }\n13967\t goto __label_182;}\n13968\t }\n13969\t // This is a TypeError to be consistent with DEBUG_MODE\n13970\t // Note: DEBUG_MODE also tells the name of the container\n13971\t if (PyArray_TYPE((PyArrayObject*) py_V181) != NPY_FLOAT64) {\n13972\t PyErr_Format(PyExc_TypeError,\n13973\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n13974\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V181));\n13975\t {\n13976\t __failure = 182;\n13977\t if (!PyErr_Occurred()) {\n13978\t PyErr_SetString(PyExc_RuntimeError,\n13979\t \"Unexpected error in an Op's C code. \"\n13980\t \"No Python exception was set.\");\n13981\t }\n13982\t goto __label_182;}\n13983\t }\n13984\t \n13985\t V181 = (PyArrayObject*)(py_V181);\n13986\t Py_XINCREF(V181);\n13987\t \n13988\t{\n13989\t\n13990\t py_V183 = PyList_GET_ITEM(storage_V183, 0);\n13991\t {Py_XINCREF(py_V183);}\n13992\t \n13993\t V183 = NULL;\n13994\t if (py_V183 == Py_None) {\n13995\t // We can either fail here or set V183 to NULL and rely on Ops\n13996\t // using tensors to handle the NULL case, but if they fail to do so\n13997\t // they'll end up with nasty segfaults, so this is public service.\n13998\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n13999\t {\n14000\t __failure = 184;\n14001\t if (!PyErr_Occurred()) {\n14002\t PyErr_SetString(PyExc_RuntimeError,\n14003\t \"Unexpected error in an Op's C code. \"\n14004\t \"No Python exception was set.\");\n14005\t }\n14006\t goto __label_184;}\n14007\t }\n14008\t if (!PyArray_Check(py_V183)) {\n14009\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n14010\t {\n14011\t __failure = 184;\n14012\t if (!PyErr_Occurred()) {\n14013\t PyErr_SetString(PyExc_RuntimeError,\n14014\t \"Unexpected error in an Op's C code. \"\n14015\t \"No Python exception was set.\");\n14016\t }\n14017\t goto __label_184;}\n14018\t }\n14019\t // We expect NPY_FLOAT64\n14020\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V183)) {\n14021\t PyArrayObject * tmp = (PyArrayObject*) py_V183;\n14022\t PyErr_Format(PyExc_NotImplementedError,\n14023\t \"expected an aligned array of type %ld \"\n14024\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n14025\t \" with %ld dimensions, with 3 last dims \"\n14026\t \"%ld, %ld, %ld\"\n14027\t \" and 3 last strides %ld %ld, %ld.\",\n14028\t (long int) NPY_FLOAT64,\n14029\t (long int) PyArray_TYPE((PyArrayObject*) py_V183),\n14030\t (long int) PyArray_NDIM(tmp),\n14031\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n14032\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n14033\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n14034\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n14035\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n14036\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n14037\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n14038\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n14039\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n14040\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n14041\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n14042\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n14043\t );\n14044\t {\n14045\t __failure = 184;\n14046\t if (!PyErr_Occurred()) {\n14047\t PyErr_SetString(PyExc_RuntimeError,\n14048\t \"Unexpected error in an Op's C code. \"\n14049\t \"No Python exception was set.\");\n14050\t }\n14051\t goto __label_184;}\n14052\t }\n14053\t // This is a TypeError to be consistent with DEBUG_MODE\n14054\t // Note: DEBUG_MODE also tells the name of the container\n14055\t if (PyArray_TYPE((PyArrayObject*) py_V183) != NPY_FLOAT64) {\n14056\t PyErr_Format(PyExc_TypeError,\n14057\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n14058\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V183));\n14059\t {\n14060\t __failure = 184;\n14061\t if (!PyErr_Occurred()) {\n14062\t PyErr_SetString(PyExc_RuntimeError,\n14063\t \"Unexpected error in an Op's C code. \"\n14064\t \"No Python exception was set.\");\n14065\t }\n14066\t goto __label_184;}\n14067\t }\n14068\t \n14069\t V183 = (PyArrayObject*)(py_V183);\n14070\t Py_XINCREF(V183);\n14071\t \n14072\t{\n14073\t\n14074\t py_V185 = PyList_GET_ITEM(storage_V185, 0);\n14075\t {Py_XINCREF(py_V185);}\n14076\t \n14077\t V185 = NULL;\n14078\t if (py_V185 == Py_None) {\n14079\t // We can either fail here or set V185 to NULL and rely on Ops\n14080\t // using tensors to handle the NULL case, but if they fail to do so\n14081\t // they'll end up with nasty segfaults, so this is public service.\n14082\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n14083\t {\n14084\t __failure = 186;\n14085\t if (!PyErr_Occurred()) {\n14086\t PyErr_SetString(PyExc_RuntimeError,\n14087\t \"Unexpected error in an Op's C code. \"\n14088\t \"No Python exception was set.\");\n14089\t }\n14090\t goto __label_186;}\n14091\t }\n14092\t if (!PyArray_Check(py_V185)) {\n14093\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n14094\t {\n14095\t __failure = 186;\n14096\t if (!PyErr_Occurred()) {\n14097\t PyErr_SetString(PyExc_RuntimeError,\n14098\t \"Unexpected error in an Op's C code. \"\n14099\t \"No Python exception was set.\");\n14100\t }\n14101\t goto __label_186;}\n14102\t }\n14103\t // We expect NPY_FLOAT64\n14104\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V185)) {\n14105\t PyArrayObject * tmp = (PyArrayObject*) py_V185;\n14106\t PyErr_Format(PyExc_NotImplementedError,\n14107\t \"expected an aligned array of type %ld \"\n14108\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n14109\t \" with %ld dimensions, with 3 last dims \"\n14110\t \"%ld, %ld, %ld\"\n14111\t \" and 3 last strides %ld %ld, %ld.\",\n14112\t (long int) NPY_FLOAT64,\n14113\t (long int) PyArray_TYPE((PyArrayObject*) py_V185),\n14114\t (long int) PyArray_NDIM(tmp),\n14115\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n14116\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n14117\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n14118\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n14119\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n14120\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n14121\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n14122\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n14123\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n14124\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n14125\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n14126\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n14127\t );\n14128\t {\n14129\t __failure = 186;\n14130\t if (!PyErr_Occurred()) {\n14131\t PyErr_SetString(PyExc_RuntimeError,\n14132\t \"Unexpected error in an Op's C code. \"\n14133\t \"No Python exception was set.\");\n14134\t }\n14135\t goto __label_186;}\n14136\t }\n14137\t // This is a TypeError to be consistent with DEBUG_MODE\n14138\t // Note: DEBUG_MODE also tells the name of the container\n14139\t if (PyArray_TYPE((PyArrayObject*) py_V185) != NPY_FLOAT64) {\n14140\t PyErr_Format(PyExc_TypeError,\n14141\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n14142\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V185));\n14143\t {\n14144\t __failure = 186;\n14145\t if (!PyErr_Occurred()) {\n14146\t PyErr_SetString(PyExc_RuntimeError,\n14147\t \"Unexpected error in an Op's C code. \"\n14148\t \"No Python exception was set.\");\n14149\t }\n14150\t goto __label_186;}\n14151\t }\n14152\t \n14153\t V185 = (PyArrayObject*)(py_V185);\n14154\t Py_XINCREF(V185);\n14155\t \n14156\t{\n14157\t\n14158\t py_V187 = PyList_GET_ITEM(storage_V187, 0);\n14159\t {Py_XINCREF(py_V187);}\n14160\t \n14161\t V187 = NULL;\n14162\t if (py_V187 == Py_None) {\n14163\t // We can either fail here or set V187 to NULL and rely on Ops\n14164\t // using tensors to handle the NULL case, but if they fail to do so\n14165\t // they'll end up with nasty segfaults, so this is public service.\n14166\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n14167\t {\n14168\t __failure = 188;\n14169\t if (!PyErr_Occurred()) {\n14170\t PyErr_SetString(PyExc_RuntimeError,\n14171\t \"Unexpected error in an Op's C code. \"\n14172\t \"No Python exception was set.\");\n14173\t }\n14174\t goto __label_188;}\n14175\t }\n14176\t if (!PyArray_Check(py_V187)) {\n14177\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n14178\t {\n14179\t __failure = 188;\n14180\t if (!PyErr_Occurred()) {\n14181\t PyErr_SetString(PyExc_RuntimeError,\n14182\t \"Unexpected error in an Op's C code. \"\n14183\t \"No Python exception was set.\");\n14184\t }\n14185\t goto __label_188;}\n14186\t }\n14187\t // We expect NPY_FLOAT64\n14188\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V187)) {\n14189\t PyArrayObject * tmp = (PyArrayObject*) py_V187;\n14190\t PyErr_Format(PyExc_NotImplementedError,\n14191\t \"expected an aligned array of type %ld \"\n14192\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n14193\t \" with %ld dimensions, with 3 last dims \"\n14194\t \"%ld, %ld, %ld\"\n14195\t \" and 3 last strides %ld %ld, %ld.\",\n14196\t (long int) NPY_FLOAT64,\n14197\t (long int) PyArray_TYPE((PyArrayObject*) py_V187),\n14198\t (long int) PyArray_NDIM(tmp),\n14199\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n14200\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n14201\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n14202\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n14203\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n14204\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n14205\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n14206\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n14207\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n14208\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n14209\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n14210\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n14211\t );\n14212\t {\n14213\t __failure = 188;\n14214\t if (!PyErr_Occurred()) {\n14215\t PyErr_SetString(PyExc_RuntimeError,\n14216\t \"Unexpected error in an Op's C code. \"\n14217\t \"No Python exception was set.\");\n14218\t }\n14219\t goto __label_188;}\n14220\t }\n14221\t // This is a TypeError to be consistent with DEBUG_MODE\n14222\t // Note: DEBUG_MODE also tells the name of the container\n14223\t if (PyArray_TYPE((PyArrayObject*) py_V187) != NPY_FLOAT64) {\n14224\t PyErr_Format(PyExc_TypeError,\n14225\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n14226\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V187));\n14227\t {\n14228\t __failure = 188;\n14229\t if (!PyErr_Occurred()) {\n14230\t PyErr_SetString(PyExc_RuntimeError,\n14231\t \"Unexpected error in an Op's C code. \"\n14232\t \"No Python exception was set.\");\n14233\t }\n14234\t goto __label_188;}\n14235\t }\n14236\t \n14237\t V187 = (PyArrayObject*)(py_V187);\n14238\t Py_XINCREF(V187);\n14239\t \n14240\t{\n14241\t\n14242\t py_V189 = PyList_GET_ITEM(storage_V189, 0);\n14243\t {Py_XINCREF(py_V189);}\n14244\t \n14245\t V189 = NULL;\n14246\t if (py_V189 == Py_None) {\n14247\t // We can either fail here or set V189 to NULL and rely on Ops\n14248\t // using tensors to handle the NULL case, but if they fail to do so\n14249\t // they'll end up with nasty segfaults, so this is public service.\n14250\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n14251\t {\n14252\t __failure = 190;\n14253\t if (!PyErr_Occurred()) {\n14254\t PyErr_SetString(PyExc_RuntimeError,\n14255\t \"Unexpected error in an Op's C code. \"\n14256\t \"No Python exception was set.\");\n14257\t }\n14258\t goto __label_190;}\n14259\t }\n14260\t if (!PyArray_Check(py_V189)) {\n14261\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n14262\t {\n14263\t __failure = 190;\n14264\t if (!PyErr_Occurred()) {\n14265\t PyErr_SetString(PyExc_RuntimeError,\n14266\t \"Unexpected error in an Op's C code. \"\n14267\t \"No Python exception was set.\");\n14268\t }\n14269\t goto __label_190;}\n14270\t }\n14271\t // We expect NPY_FLOAT64\n14272\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V189)) {\n14273\t PyArrayObject * tmp = (PyArrayObject*) py_V189;\n14274\t PyErr_Format(PyExc_NotImplementedError,\n14275\t \"expected an aligned array of type %ld \"\n14276\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n14277\t \" with %ld dimensions, with 3 last dims \"\n14278\t \"%ld, %ld, %ld\"\n14279\t \" and 3 last strides %ld %ld, %ld.\",\n14280\t (long int) NPY_FLOAT64,\n14281\t (long int) PyArray_TYPE((PyArrayObject*) py_V189),\n14282\t (long int) PyArray_NDIM(tmp),\n14283\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n14284\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n14285\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n14286\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n14287\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n14288\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n14289\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n14290\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n14291\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n14292\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n14293\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n14294\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n14295\t );\n14296\t {\n14297\t __failure = 190;\n14298\t if (!PyErr_Occurred()) {\n14299\t PyErr_SetString(PyExc_RuntimeError,\n14300\t \"Unexpected error in an Op's C code. \"\n14301\t \"No Python exception was set.\");\n14302\t }\n14303\t goto __label_190;}\n14304\t }\n14305\t // This is a TypeError to be consistent with DEBUG_MODE\n14306\t // Note: DEBUG_MODE also tells the name of the container\n14307\t if (PyArray_TYPE((PyArrayObject*) py_V189) != NPY_FLOAT64) {\n14308\t PyErr_Format(PyExc_TypeError,\n14309\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n14310\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V189));\n14311\t {\n14312\t __failure = 190;\n14313\t if (!PyErr_Occurred()) {\n14314\t PyErr_SetString(PyExc_RuntimeError,\n14315\t \"Unexpected error in an Op's C code. \"\n14316\t \"No Python exception was set.\");\n14317\t }\n14318\t goto __label_190;}\n14319\t }\n14320\t \n14321\t V189 = (PyArrayObject*)(py_V189);\n14322\t Py_XINCREF(V189);\n14323\t \n14324\t{\n14325\t\n14326\t py_V191 = PyList_GET_ITEM(storage_V191, 0);\n14327\t {Py_XINCREF(py_V191);}\n14328\t \n14329\t V191 = NULL;\n14330\t if (py_V191 == Py_None) {\n14331\t // We can either fail here or set V191 to NULL and rely on Ops\n14332\t // using tensors to handle the NULL case, but if they fail to do so\n14333\t // they'll end up with nasty segfaults, so this is public service.\n14334\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n14335\t {\n14336\t __failure = 192;\n14337\t if (!PyErr_Occurred()) {\n14338\t PyErr_SetString(PyExc_RuntimeError,\n14339\t \"Unexpected error in an Op's C code. \"\n14340\t \"No Python exception was set.\");\n14341\t }\n14342\t goto __label_192;}\n14343\t }\n14344\t if (!PyArray_Check(py_V191)) {\n14345\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n14346\t {\n14347\t __failure = 192;\n14348\t if (!PyErr_Occurred()) {\n14349\t PyErr_SetString(PyExc_RuntimeError,\n14350\t \"Unexpected error in an Op's C code. \"\n14351\t \"No Python exception was set.\");\n14352\t }\n14353\t goto __label_192;}\n14354\t }\n14355\t // We expect NPY_FLOAT64\n14356\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V191)) {\n14357\t PyArrayObject * tmp = (PyArrayObject*) py_V191;\n14358\t PyErr_Format(PyExc_NotImplementedError,\n14359\t \"expected an aligned array of type %ld \"\n14360\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n14361\t \" with %ld dimensions, with 3 last dims \"\n14362\t \"%ld, %ld, %ld\"\n14363\t \" and 3 last strides %ld %ld, %ld.\",\n14364\t (long int) NPY_FLOAT64,\n14365\t (long int) PyArray_TYPE((PyArrayObject*) py_V191),\n14366\t (long int) PyArray_NDIM(tmp),\n14367\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n14368\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n14369\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n14370\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n14371\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n14372\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n14373\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n14374\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n14375\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n14376\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n14377\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n14378\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n14379\t );\n14380\t {\n14381\t __failure = 192;\n14382\t if (!PyErr_Occurred()) {\n14383\t PyErr_SetString(PyExc_RuntimeError,\n14384\t \"Unexpected error in an Op's C code. \"\n14385\t \"No Python exception was set.\");\n14386\t }\n14387\t goto __label_192;}\n14388\t }\n14389\t // This is a TypeError to be consistent with DEBUG_MODE\n14390\t // Note: DEBUG_MODE also tells the name of the container\n14391\t if (PyArray_TYPE((PyArrayObject*) py_V191) != NPY_FLOAT64) {\n14392\t PyErr_Format(PyExc_TypeError,\n14393\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n14394\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V191));\n14395\t {\n14396\t __failure = 192;\n14397\t if (!PyErr_Occurred()) {\n14398\t PyErr_SetString(PyExc_RuntimeError,\n14399\t \"Unexpected error in an Op's C code. \"\n14400\t \"No Python exception was set.\");\n14401\t }\n14402\t goto __label_192;}\n14403\t }\n14404\t \n14405\t V191 = (PyArrayObject*)(py_V191);\n14406\t Py_XINCREF(V191);\n14407\t \n14408\t{\n14409\t\n14410\t py_V193 = PyList_GET_ITEM(storage_V193, 0);\n14411\t {Py_XINCREF(py_V193);}\n14412\t \n14413\t V193 = NULL;\n14414\t if (py_V193 == Py_None) {\n14415\t // We can either fail here or set V193 to NULL and rely on Ops\n14416\t // using tensors to handle the NULL case, but if they fail to do so\n14417\t // they'll end up with nasty segfaults, so this is public service.\n14418\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n14419\t {\n14420\t __failure = 194;\n14421\t if (!PyErr_Occurred()) {\n14422\t PyErr_SetString(PyExc_RuntimeError,\n14423\t \"Unexpected error in an Op's C code. \"\n14424\t \"No Python exception was set.\");\n14425\t }\n14426\t goto __label_194;}\n14427\t }\n14428\t if (!PyArray_Check(py_V193)) {\n14429\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n14430\t {\n14431\t __failure = 194;\n14432\t if (!PyErr_Occurred()) {\n14433\t PyErr_SetString(PyExc_RuntimeError,\n14434\t \"Unexpected error in an Op's C code. \"\n14435\t \"No Python exception was set.\");\n14436\t }\n14437\t goto __label_194;}\n14438\t }\n14439\t // We expect NPY_FLOAT64\n14440\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V193)) {\n14441\t PyArrayObject * tmp = (PyArrayObject*) py_V193;\n14442\t PyErr_Format(PyExc_NotImplementedError,\n14443\t \"expected an aligned array of type %ld \"\n14444\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n14445\t \" with %ld dimensions, with 3 last dims \"\n14446\t \"%ld, %ld, %ld\"\n14447\t \" and 3 last strides %ld %ld, %ld.\",\n14448\t (long int) NPY_FLOAT64,\n14449\t (long int) PyArray_TYPE((PyArrayObject*) py_V193),\n14450\t (long int) PyArray_NDIM(tmp),\n14451\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n14452\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n14453\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n14454\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n14455\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n14456\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n14457\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n14458\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n14459\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n14460\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n14461\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n14462\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n14463\t );\n14464\t {\n14465\t __failure = 194;\n14466\t if (!PyErr_Occurred()) {\n14467\t PyErr_SetString(PyExc_RuntimeError,\n14468\t \"Unexpected error in an Op's C code. \"\n14469\t \"No Python exception was set.\");\n14470\t }\n14471\t goto __label_194;}\n14472\t }\n14473\t // This is a TypeError to be consistent with DEBUG_MODE\n14474\t // Note: DEBUG_MODE also tells the name of the container\n14475\t if (PyArray_TYPE((PyArrayObject*) py_V193) != NPY_FLOAT64) {\n14476\t PyErr_Format(PyExc_TypeError,\n14477\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n14478\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V193));\n14479\t {\n14480\t __failure = 194;\n14481\t if (!PyErr_Occurred()) {\n14482\t PyErr_SetString(PyExc_RuntimeError,\n14483\t \"Unexpected error in an Op's C code. \"\n14484\t \"No Python exception was set.\");\n14485\t }\n14486\t goto __label_194;}\n14487\t }\n14488\t \n14489\t V193 = (PyArrayObject*)(py_V193);\n14490\t Py_XINCREF(V193);\n14491\t \n14492\t{\n14493\t\n14494\t py_V195 = PyList_GET_ITEM(storage_V195, 0);\n14495\t {Py_XINCREF(py_V195);}\n14496\t \n14497\t V195 = NULL;\n14498\t if (py_V195 == Py_None) {\n14499\t // We can either fail here or set V195 to NULL and rely on Ops\n14500\t // using tensors to handle the NULL case, but if they fail to do so\n14501\t // they'll end up with nasty segfaults, so this is public service.\n14502\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n14503\t {\n14504\t __failure = 196;\n14505\t if (!PyErr_Occurred()) {\n14506\t PyErr_SetString(PyExc_RuntimeError,\n14507\t \"Unexpected error in an Op's C code. \"\n14508\t \"No Python exception was set.\");\n14509\t }\n14510\t goto __label_196;}\n14511\t }\n14512\t if (!PyArray_Check(py_V195)) {\n14513\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n14514\t {\n14515\t __failure = 196;\n14516\t if (!PyErr_Occurred()) {\n14517\t PyErr_SetString(PyExc_RuntimeError,\n14518\t \"Unexpected error in an Op's C code. \"\n14519\t \"No Python exception was set.\");\n14520\t }\n14521\t goto __label_196;}\n14522\t }\n14523\t // We expect NPY_FLOAT64\n14524\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V195)) {\n14525\t PyArrayObject * tmp = (PyArrayObject*) py_V195;\n14526\t PyErr_Format(PyExc_NotImplementedError,\n14527\t \"expected an aligned array of type %ld \"\n14528\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n14529\t \" with %ld dimensions, with 3 last dims \"\n14530\t \"%ld, %ld, %ld\"\n14531\t \" and 3 last strides %ld %ld, %ld.\",\n14532\t (long int) NPY_FLOAT64,\n14533\t (long int) PyArray_TYPE((PyArrayObject*) py_V195),\n14534\t (long int) PyArray_NDIM(tmp),\n14535\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n14536\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n14537\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n14538\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n14539\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n14540\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n14541\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n14542\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n14543\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n14544\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n14545\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n14546\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n14547\t );\n14548\t {\n14549\t __failure = 196;\n14550\t if (!PyErr_Occurred()) {\n14551\t PyErr_SetString(PyExc_RuntimeError,\n14552\t \"Unexpected error in an Op's C code. \"\n14553\t \"No Python exception was set.\");\n14554\t }\n14555\t goto __label_196;}\n14556\t }\n14557\t // This is a TypeError to be consistent with DEBUG_MODE\n14558\t // Note: DEBUG_MODE also tells the name of the container\n14559\t if (PyArray_TYPE((PyArrayObject*) py_V195) != NPY_FLOAT64) {\n14560\t PyErr_Format(PyExc_TypeError,\n14561\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n14562\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V195));\n14563\t {\n14564\t __failure = 196;\n14565\t if (!PyErr_Occurred()) {\n14566\t PyErr_SetString(PyExc_RuntimeError,\n14567\t \"Unexpected error in an Op's C code. \"\n14568\t \"No Python exception was set.\");\n14569\t }\n14570\t goto __label_196;}\n14571\t }\n14572\t \n14573\t V195 = (PyArrayObject*)(py_V195);\n14574\t Py_XINCREF(V195);\n14575\t \n14576\t{\n14577\t\n14578\t py_V197 = PyList_GET_ITEM(storage_V197, 0);\n14579\t {Py_XINCREF(py_V197);}\n14580\t \n14581\t V197 = NULL;\n14582\t if (py_V197 == Py_None) {\n14583\t // We can either fail here or set V197 to NULL and rely on Ops\n14584\t // using tensors to handle the NULL case, but if they fail to do so\n14585\t // they'll end up with nasty segfaults, so this is public service.\n14586\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n14587\t {\n14588\t __failure = 198;\n14589\t if (!PyErr_Occurred()) {\n14590\t PyErr_SetString(PyExc_RuntimeError,\n14591\t \"Unexpected error in an Op's C code. \"\n14592\t \"No Python exception was set.\");\n14593\t }\n14594\t goto __label_198;}\n14595\t }\n14596\t if (!PyArray_Check(py_V197)) {\n14597\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n14598\t {\n14599\t __failure = 198;\n14600\t if (!PyErr_Occurred()) {\n14601\t PyErr_SetString(PyExc_RuntimeError,\n14602\t \"Unexpected error in an Op's C code. \"\n14603\t \"No Python exception was set.\");\n14604\t }\n14605\t goto __label_198;}\n14606\t }\n14607\t // We expect NPY_FLOAT64\n14608\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V197)) {\n14609\t PyArrayObject * tmp = (PyArrayObject*) py_V197;\n14610\t PyErr_Format(PyExc_NotImplementedError,\n14611\t \"expected an aligned array of type %ld \"\n14612\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n14613\t \" with %ld dimensions, with 3 last dims \"\n14614\t \"%ld, %ld, %ld\"\n14615\t \" and 3 last strides %ld %ld, %ld.\",\n14616\t (long int) NPY_FLOAT64,\n14617\t (long int) PyArray_TYPE((PyArrayObject*) py_V197),\n14618\t (long int) PyArray_NDIM(tmp),\n14619\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n14620\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n14621\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n14622\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n14623\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n14624\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n14625\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n14626\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n14627\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n14628\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n14629\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n14630\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n14631\t );\n14632\t {\n14633\t __failure = 198;\n14634\t if (!PyErr_Occurred()) {\n14635\t PyErr_SetString(PyExc_RuntimeError,\n14636\t \"Unexpected error in an Op's C code. \"\n14637\t \"No Python exception was set.\");\n14638\t }\n14639\t goto __label_198;}\n14640\t }\n14641\t // This is a TypeError to be consistent with DEBUG_MODE\n14642\t // Note: DEBUG_MODE also tells the name of the container\n14643\t if (PyArray_TYPE((PyArrayObject*) py_V197) != NPY_FLOAT64) {\n14644\t PyErr_Format(PyExc_TypeError,\n14645\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n14646\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V197));\n14647\t {\n14648\t __failure = 198;\n14649\t if (!PyErr_Occurred()) {\n14650\t PyErr_SetString(PyExc_RuntimeError,\n14651\t \"Unexpected error in an Op's C code. \"\n14652\t \"No Python exception was set.\");\n14653\t }\n14654\t goto __label_198;}\n14655\t }\n14656\t \n14657\t V197 = (PyArrayObject*)(py_V197);\n14658\t Py_XINCREF(V197);\n14659\t \n14660\t{\n14661\t\n14662\t py_V199 = PyList_GET_ITEM(storage_V199, 0);\n14663\t {Py_XINCREF(py_V199);}\n14664\t \n14665\t V199 = NULL;\n14666\t if (py_V199 == Py_None) {\n14667\t // We can either fail here or set V199 to NULL and rely on Ops\n14668\t // using tensors to handle the NULL case, but if they fail to do so\n14669\t // they'll end up with nasty segfaults, so this is public service.\n14670\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n14671\t {\n14672\t __failure = 200;\n14673\t if (!PyErr_Occurred()) {\n14674\t PyErr_SetString(PyExc_RuntimeError,\n14675\t \"Unexpected error in an Op's C code. \"\n14676\t \"No Python exception was set.\");\n14677\t }\n14678\t goto __label_200;}\n14679\t }\n14680\t if (!PyArray_Check(py_V199)) {\n14681\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n14682\t {\n14683\t __failure = 200;\n14684\t if (!PyErr_Occurred()) {\n14685\t PyErr_SetString(PyExc_RuntimeError,\n14686\t \"Unexpected error in an Op's C code. \"\n14687\t \"No Python exception was set.\");\n14688\t }\n14689\t goto __label_200;}\n14690\t }\n14691\t // We expect NPY_FLOAT64\n14692\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V199)) {\n14693\t PyArrayObject * tmp = (PyArrayObject*) py_V199;\n14694\t PyErr_Format(PyExc_NotImplementedError,\n14695\t \"expected an aligned array of type %ld \"\n14696\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n14697\t \" with %ld dimensions, with 3 last dims \"\n14698\t \"%ld, %ld, %ld\"\n14699\t \" and 3 last strides %ld %ld, %ld.\",\n14700\t (long int) NPY_FLOAT64,\n14701\t (long int) PyArray_TYPE((PyArrayObject*) py_V199),\n14702\t (long int) PyArray_NDIM(tmp),\n14703\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n14704\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n14705\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n14706\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n14707\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n14708\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n14709\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n14710\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n14711\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n14712\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n14713\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n14714\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n14715\t );\n14716\t {\n14717\t __failure = 200;\n14718\t if (!PyErr_Occurred()) {\n14719\t PyErr_SetString(PyExc_RuntimeError,\n14720\t \"Unexpected error in an Op's C code. \"\n14721\t \"No Python exception was set.\");\n14722\t }\n14723\t goto __label_200;}\n14724\t }\n14725\t // This is a TypeError to be consistent with DEBUG_MODE\n14726\t // Note: DEBUG_MODE also tells the name of the container\n14727\t if (PyArray_TYPE((PyArrayObject*) py_V199) != NPY_FLOAT64) {\n14728\t PyErr_Format(PyExc_TypeError,\n14729\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n14730\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V199));\n14731\t {\n14732\t __failure = 200;\n14733\t if (!PyErr_Occurred()) {\n14734\t PyErr_SetString(PyExc_RuntimeError,\n14735\t \"Unexpected error in an Op's C code. \"\n14736\t \"No Python exception was set.\");\n14737\t }\n14738\t goto __label_200;}\n14739\t }\n14740\t \n14741\t V199 = (PyArrayObject*)(py_V199);\n14742\t Py_XINCREF(V199);\n14743\t \n14744\t{\n14745\t\n14746\t py_V201 = PyList_GET_ITEM(storage_V201, 0);\n14747\t {Py_XINCREF(py_V201);}\n14748\t \n14749\t V201 = NULL;\n14750\t if (py_V201 == Py_None) {\n14751\t // We can either fail here or set V201 to NULL and rely on Ops\n14752\t // using tensors to handle the NULL case, but if they fail to do so\n14753\t // they'll end up with nasty segfaults, so this is public service.\n14754\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n14755\t {\n14756\t __failure = 202;\n14757\t if (!PyErr_Occurred()) {\n14758\t PyErr_SetString(PyExc_RuntimeError,\n14759\t \"Unexpected error in an Op's C code. \"\n14760\t \"No Python exception was set.\");\n14761\t }\n14762\t goto __label_202;}\n14763\t }\n14764\t if (!PyArray_Check(py_V201)) {\n14765\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n14766\t {\n14767\t __failure = 202;\n14768\t if (!PyErr_Occurred()) {\n14769\t PyErr_SetString(PyExc_RuntimeError,\n14770\t \"Unexpected error in an Op's C code. \"\n14771\t \"No Python exception was set.\");\n14772\t }\n14773\t goto __label_202;}\n14774\t }\n14775\t // We expect NPY_FLOAT64\n14776\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V201)) {\n14777\t PyArrayObject * tmp = (PyArrayObject*) py_V201;\n14778\t PyErr_Format(PyExc_NotImplementedError,\n14779\t \"expected an aligned array of type %ld \"\n14780\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n14781\t \" with %ld dimensions, with 3 last dims \"\n14782\t \"%ld, %ld, %ld\"\n14783\t \" and 3 last strides %ld %ld, %ld.\",\n14784\t (long int) NPY_FLOAT64,\n14785\t (long int) PyArray_TYPE((PyArrayObject*) py_V201),\n14786\t (long int) PyArray_NDIM(tmp),\n14787\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n14788\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n14789\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n14790\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n14791\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n14792\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n14793\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n14794\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n14795\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n14796\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n14797\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n14798\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n14799\t );\n14800\t {\n14801\t __failure = 202;\n14802\t if (!PyErr_Occurred()) {\n14803\t PyErr_SetString(PyExc_RuntimeError,\n14804\t \"Unexpected error in an Op's C code. \"\n14805\t \"No Python exception was set.\");\n14806\t }\n14807\t goto __label_202;}\n14808\t }\n14809\t // This is a TypeError to be consistent with DEBUG_MODE\n14810\t // Note: DEBUG_MODE also tells the name of the container\n14811\t if (PyArray_TYPE((PyArrayObject*) py_V201) != NPY_FLOAT64) {\n14812\t PyErr_Format(PyExc_TypeError,\n14813\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n14814\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V201));\n14815\t {\n14816\t __failure = 202;\n14817\t if (!PyErr_Occurred()) {\n14818\t PyErr_SetString(PyExc_RuntimeError,\n14819\t \"Unexpected error in an Op's C code. \"\n14820\t \"No Python exception was set.\");\n14821\t }\n14822\t goto __label_202;}\n14823\t }\n14824\t \n14825\t V201 = (PyArrayObject*)(py_V201);\n14826\t Py_XINCREF(V201);\n14827\t \n14828\t{\n14829\t\n14830\t py_V203 = PyList_GET_ITEM(storage_V203, 0);\n14831\t {Py_XINCREF(py_V203);}\n14832\t \n14833\t V203 = NULL;\n14834\t if (py_V203 == Py_None) {\n14835\t // We can either fail here or set V203 to NULL and rely on Ops\n14836\t // using tensors to handle the NULL case, but if they fail to do so\n14837\t // they'll end up with nasty segfaults, so this is public service.\n14838\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n14839\t {\n14840\t __failure = 204;\n14841\t if (!PyErr_Occurred()) {\n14842\t PyErr_SetString(PyExc_RuntimeError,\n14843\t \"Unexpected error in an Op's C code. \"\n14844\t \"No Python exception was set.\");\n14845\t }\n14846\t goto __label_204;}\n14847\t }\n14848\t if (!PyArray_Check(py_V203)) {\n14849\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n14850\t {\n14851\t __failure = 204;\n14852\t if (!PyErr_Occurred()) {\n14853\t PyErr_SetString(PyExc_RuntimeError,\n14854\t \"Unexpected error in an Op's C code. \"\n14855\t \"No Python exception was set.\");\n14856\t }\n14857\t goto __label_204;}\n14858\t }\n14859\t // We expect NPY_FLOAT64\n14860\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V203)) {\n14861\t PyArrayObject * tmp = (PyArrayObject*) py_V203;\n14862\t PyErr_Format(PyExc_NotImplementedError,\n14863\t \"expected an aligned array of type %ld \"\n14864\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n14865\t \" with %ld dimensions, with 3 last dims \"\n14866\t \"%ld, %ld, %ld\"\n14867\t \" and 3 last strides %ld %ld, %ld.\",\n14868\t (long int) NPY_FLOAT64,\n14869\t (long int) PyArray_TYPE((PyArrayObject*) py_V203),\n14870\t (long int) PyArray_NDIM(tmp),\n14871\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n14872\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n14873\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n14874\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n14875\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n14876\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n14877\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n14878\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n14879\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n14880\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n14881\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n14882\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n14883\t );\n14884\t {\n14885\t __failure = 204;\n14886\t if (!PyErr_Occurred()) {\n14887\t PyErr_SetString(PyExc_RuntimeError,\n14888\t \"Unexpected error in an Op's C code. \"\n14889\t \"No Python exception was set.\");\n14890\t }\n14891\t goto __label_204;}\n14892\t }\n14893\t // This is a TypeError to be consistent with DEBUG_MODE\n14894\t // Note: DEBUG_MODE also tells the name of the container\n14895\t if (PyArray_TYPE((PyArrayObject*) py_V203) != NPY_FLOAT64) {\n14896\t PyErr_Format(PyExc_TypeError,\n14897\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n14898\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V203));\n14899\t {\n14900\t __failure = 204;\n14901\t if (!PyErr_Occurred()) {\n14902\t PyErr_SetString(PyExc_RuntimeError,\n14903\t \"Unexpected error in an Op's C code. \"\n14904\t \"No Python exception was set.\");\n14905\t }\n14906\t goto __label_204;}\n14907\t }\n14908\t \n14909\t V203 = (PyArrayObject*)(py_V203);\n14910\t Py_XINCREF(V203);\n14911\t \n14912\t{\n14913\t\n14914\t py_V205 = PyList_GET_ITEM(storage_V205, 0);\n14915\t {Py_XINCREF(py_V205);}\n14916\t \n14917\t V205 = NULL;\n14918\t if (py_V205 == Py_None) {\n14919\t // We can either fail here or set V205 to NULL and rely on Ops\n14920\t // using tensors to handle the NULL case, but if they fail to do so\n14921\t // they'll end up with nasty segfaults, so this is public service.\n14922\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n14923\t {\n14924\t __failure = 206;\n14925\t if (!PyErr_Occurred()) {\n14926\t PyErr_SetString(PyExc_RuntimeError,\n14927\t \"Unexpected error in an Op's C code. \"\n14928\t \"No Python exception was set.\");\n14929\t }\n14930\t goto __label_206;}\n14931\t }\n14932\t if (!PyArray_Check(py_V205)) {\n14933\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n14934\t {\n14935\t __failure = 206;\n14936\t if (!PyErr_Occurred()) {\n14937\t PyErr_SetString(PyExc_RuntimeError,\n14938\t \"Unexpected error in an Op's C code. \"\n14939\t \"No Python exception was set.\");\n14940\t }\n14941\t goto __label_206;}\n14942\t }\n14943\t // We expect NPY_FLOAT64\n14944\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V205)) {\n14945\t PyArrayObject * tmp = (PyArrayObject*) py_V205;\n14946\t PyErr_Format(PyExc_NotImplementedError,\n14947\t \"expected an aligned array of type %ld \"\n14948\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n14949\t \" with %ld dimensions, with 3 last dims \"\n14950\t \"%ld, %ld, %ld\"\n14951\t \" and 3 last strides %ld %ld, %ld.\",\n14952\t (long int) NPY_FLOAT64,\n14953\t (long int) PyArray_TYPE((PyArrayObject*) py_V205),\n14954\t (long int) PyArray_NDIM(tmp),\n14955\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n14956\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n14957\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n14958\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n14959\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n14960\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n14961\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n14962\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n14963\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n14964\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n14965\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n14966\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n14967\t );\n14968\t {\n14969\t __failure = 206;\n14970\t if (!PyErr_Occurred()) {\n14971\t PyErr_SetString(PyExc_RuntimeError,\n14972\t \"Unexpected error in an Op's C code. \"\n14973\t \"No Python exception was set.\");\n14974\t }\n14975\t goto __label_206;}\n14976\t }\n14977\t // This is a TypeError to be consistent with DEBUG_MODE\n14978\t // Note: DEBUG_MODE also tells the name of the container\n14979\t if (PyArray_TYPE((PyArrayObject*) py_V205) != NPY_FLOAT64) {\n14980\t PyErr_Format(PyExc_TypeError,\n14981\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n14982\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V205));\n14983\t {\n14984\t __failure = 206;\n14985\t if (!PyErr_Occurred()) {\n14986\t PyErr_SetString(PyExc_RuntimeError,\n14987\t \"Unexpected error in an Op's C code. \"\n14988\t \"No Python exception was set.\");\n14989\t }\n14990\t goto __label_206;}\n14991\t }\n14992\t \n14993\t V205 = (PyArrayObject*)(py_V205);\n14994\t Py_XINCREF(V205);\n14995\t \n14996\t{\n14997\t\n14998\t py_V207 = PyList_GET_ITEM(storage_V207, 0);\n14999\t {Py_XINCREF(py_V207);}\n15000\t \n15001\t V207 = NULL;\n15002\t if (py_V207 == Py_None) {\n15003\t // We can either fail here or set V207 to NULL and rely on Ops\n15004\t // using tensors to handle the NULL case, but if they fail to do so\n15005\t // they'll end up with nasty segfaults, so this is public service.\n15006\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n15007\t {\n15008\t __failure = 208;\n15009\t if (!PyErr_Occurred()) {\n15010\t PyErr_SetString(PyExc_RuntimeError,\n15011\t \"Unexpected error in an Op's C code. \"\n15012\t \"No Python exception was set.\");\n15013\t }\n15014\t goto __label_208;}\n15015\t }\n15016\t if (!PyArray_Check(py_V207)) {\n15017\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n15018\t {\n15019\t __failure = 208;\n15020\t if (!PyErr_Occurred()) {\n15021\t PyErr_SetString(PyExc_RuntimeError,\n15022\t \"Unexpected error in an Op's C code. \"\n15023\t \"No Python exception was set.\");\n15024\t }\n15025\t goto __label_208;}\n15026\t }\n15027\t // We expect NPY_FLOAT64\n15028\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V207)) {\n15029\t PyArrayObject * tmp = (PyArrayObject*) py_V207;\n15030\t PyErr_Format(PyExc_NotImplementedError,\n15031\t \"expected an aligned array of type %ld \"\n15032\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n15033\t \" with %ld dimensions, with 3 last dims \"\n15034\t \"%ld, %ld, %ld\"\n15035\t \" and 3 last strides %ld %ld, %ld.\",\n15036\t (long int) NPY_FLOAT64,\n15037\t (long int) PyArray_TYPE((PyArrayObject*) py_V207),\n15038\t (long int) PyArray_NDIM(tmp),\n15039\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n15040\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n15041\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n15042\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n15043\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n15044\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n15045\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n15046\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n15047\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n15048\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n15049\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n15050\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n15051\t );\n15052\t {\n15053\t __failure = 208;\n15054\t if (!PyErr_Occurred()) {\n15055\t PyErr_SetString(PyExc_RuntimeError,\n15056\t \"Unexpected error in an Op's C code. \"\n15057\t \"No Python exception was set.\");\n15058\t }\n15059\t goto __label_208;}\n15060\t }\n15061\t // This is a TypeError to be consistent with DEBUG_MODE\n15062\t // Note: DEBUG_MODE also tells the name of the container\n15063\t if (PyArray_TYPE((PyArrayObject*) py_V207) != NPY_FLOAT64) {\n15064\t PyErr_Format(PyExc_TypeError,\n15065\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n15066\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V207));\n15067\t {\n15068\t __failure = 208;\n15069\t if (!PyErr_Occurred()) {\n15070\t PyErr_SetString(PyExc_RuntimeError,\n15071\t \"Unexpected error in an Op's C code. \"\n15072\t \"No Python exception was set.\");\n15073\t }\n15074\t goto __label_208;}\n15075\t }\n15076\t \n15077\t V207 = (PyArrayObject*)(py_V207);\n15078\t Py_XINCREF(V207);\n15079\t \n15080\t{\n15081\t\n15082\t py_V209 = PyList_GET_ITEM(storage_V209, 0);\n15083\t {Py_XINCREF(py_V209);}\n15084\t \n15085\t V209 = NULL;\n15086\t if (py_V209 == Py_None) {\n15087\t // We can either fail here or set V209 to NULL and rely on Ops\n15088\t // using tensors to handle the NULL case, but if they fail to do so\n15089\t // they'll end up with nasty segfaults, so this is public service.\n15090\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n15091\t {\n15092\t __failure = 210;\n15093\t if (!PyErr_Occurred()) {\n15094\t PyErr_SetString(PyExc_RuntimeError,\n15095\t \"Unexpected error in an Op's C code. \"\n15096\t \"No Python exception was set.\");\n15097\t }\n15098\t goto __label_210;}\n15099\t }\n15100\t if (!PyArray_Check(py_V209)) {\n15101\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n15102\t {\n15103\t __failure = 210;\n15104\t if (!PyErr_Occurred()) {\n15105\t PyErr_SetString(PyExc_RuntimeError,\n15106\t \"Unexpected error in an Op's C code. \"\n15107\t \"No Python exception was set.\");\n15108\t }\n15109\t goto __label_210;}\n15110\t }\n15111\t // We expect NPY_FLOAT64\n15112\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V209)) {\n15113\t PyArrayObject * tmp = (PyArrayObject*) py_V209;\n15114\t PyErr_Format(PyExc_NotImplementedError,\n15115\t \"expected an aligned array of type %ld \"\n15116\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n15117\t \" with %ld dimensions, with 3 last dims \"\n15118\t \"%ld, %ld, %ld\"\n15119\t \" and 3 last strides %ld %ld, %ld.\",\n15120\t (long int) NPY_FLOAT64,\n15121\t (long int) PyArray_TYPE((PyArrayObject*) py_V209),\n15122\t (long int) PyArray_NDIM(tmp),\n15123\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n15124\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n15125\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n15126\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n15127\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n15128\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n15129\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n15130\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n15131\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n15132\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n15133\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n15134\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n15135\t );\n15136\t {\n15137\t __failure = 210;\n15138\t if (!PyErr_Occurred()) {\n15139\t PyErr_SetString(PyExc_RuntimeError,\n15140\t \"Unexpected error in an Op's C code. \"\n15141\t \"No Python exception was set.\");\n15142\t }\n15143\t goto __label_210;}\n15144\t }\n15145\t // This is a TypeError to be consistent with DEBUG_MODE\n15146\t // Note: DEBUG_MODE also tells the name of the container\n15147\t if (PyArray_TYPE((PyArrayObject*) py_V209) != NPY_FLOAT64) {\n15148\t PyErr_Format(PyExc_TypeError,\n15149\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n15150\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V209));\n15151\t {\n15152\t __failure = 210;\n15153\t if (!PyErr_Occurred()) {\n15154\t PyErr_SetString(PyExc_RuntimeError,\n15155\t \"Unexpected error in an Op's C code. \"\n15156\t \"No Python exception was set.\");\n15157\t }\n15158\t goto __label_210;}\n15159\t }\n15160\t \n15161\t V209 = (PyArrayObject*)(py_V209);\n15162\t Py_XINCREF(V209);\n15163\t \n15164\t{\n15165\t\n15166\t py_V211 = PyList_GET_ITEM(storage_V211, 0);\n15167\t {Py_XINCREF(py_V211);}\n15168\t \n15169\t V211 = NULL;\n15170\t if (py_V211 == Py_None) {\n15171\t // We can either fail here or set V211 to NULL and rely on Ops\n15172\t // using tensors to handle the NULL case, but if they fail to do so\n15173\t // they'll end up with nasty segfaults, so this is public service.\n15174\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n15175\t {\n15176\t __failure = 212;\n15177\t if (!PyErr_Occurred()) {\n15178\t PyErr_SetString(PyExc_RuntimeError,\n15179\t \"Unexpected error in an Op's C code. \"\n15180\t \"No Python exception was set.\");\n15181\t }\n15182\t goto __label_212;}\n15183\t }\n15184\t if (!PyArray_Check(py_V211)) {\n15185\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n15186\t {\n15187\t __failure = 212;\n15188\t if (!PyErr_Occurred()) {\n15189\t PyErr_SetString(PyExc_RuntimeError,\n15190\t \"Unexpected error in an Op's C code. \"\n15191\t \"No Python exception was set.\");\n15192\t }\n15193\t goto __label_212;}\n15194\t }\n15195\t // We expect NPY_FLOAT64\n15196\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V211)) {\n15197\t PyArrayObject * tmp = (PyArrayObject*) py_V211;\n15198\t PyErr_Format(PyExc_NotImplementedError,\n15199\t \"expected an aligned array of type %ld \"\n15200\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n15201\t \" with %ld dimensions, with 3 last dims \"\n15202\t \"%ld, %ld, %ld\"\n15203\t \" and 3 last strides %ld %ld, %ld.\",\n15204\t (long int) NPY_FLOAT64,\n15205\t (long int) PyArray_TYPE((PyArrayObject*) py_V211),\n15206\t (long int) PyArray_NDIM(tmp),\n15207\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n15208\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n15209\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n15210\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n15211\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n15212\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n15213\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n15214\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n15215\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n15216\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n15217\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n15218\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n15219\t );\n15220\t {\n15221\t __failure = 212;\n15222\t if (!PyErr_Occurred()) {\n15223\t PyErr_SetString(PyExc_RuntimeError,\n15224\t \"Unexpected error in an Op's C code. \"\n15225\t \"No Python exception was set.\");\n15226\t }\n15227\t goto __label_212;}\n15228\t }\n15229\t // This is a TypeError to be consistent with DEBUG_MODE\n15230\t // Note: DEBUG_MODE also tells the name of the container\n15231\t if (PyArray_TYPE((PyArrayObject*) py_V211) != NPY_FLOAT64) {\n15232\t PyErr_Format(PyExc_TypeError,\n15233\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n15234\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V211));\n15235\t {\n15236\t __failure = 212;\n15237\t if (!PyErr_Occurred()) {\n15238\t PyErr_SetString(PyExc_RuntimeError,\n15239\t \"Unexpected error in an Op's C code. \"\n15240\t \"No Python exception was set.\");\n15241\t }\n15242\t goto __label_212;}\n15243\t }\n15244\t \n15245\t V211 = (PyArrayObject*)(py_V211);\n15246\t Py_XINCREF(V211);\n15247\t \n15248\t{\n15249\t\n15250\t py_V213 = PyList_GET_ITEM(storage_V213, 0);\n15251\t {Py_XINCREF(py_V213);}\n15252\t \n15253\t V213 = NULL;\n15254\t if (py_V213 == Py_None) {\n15255\t // We can either fail here or set V213 to NULL and rely on Ops\n15256\t // using tensors to handle the NULL case, but if they fail to do so\n15257\t // they'll end up with nasty segfaults, so this is public service.\n15258\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n15259\t {\n15260\t __failure = 214;\n15261\t if (!PyErr_Occurred()) {\n15262\t PyErr_SetString(PyExc_RuntimeError,\n15263\t \"Unexpected error in an Op's C code. \"\n15264\t \"No Python exception was set.\");\n15265\t }\n15266\t goto __label_214;}\n15267\t }\n15268\t if (!PyArray_Check(py_V213)) {\n15269\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n15270\t {\n15271\t __failure = 214;\n15272\t if (!PyErr_Occurred()) {\n15273\t PyErr_SetString(PyExc_RuntimeError,\n15274\t \"Unexpected error in an Op's C code. \"\n15275\t \"No Python exception was set.\");\n15276\t }\n15277\t goto __label_214;}\n15278\t }\n15279\t // We expect NPY_FLOAT64\n15280\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V213)) {\n15281\t PyArrayObject * tmp = (PyArrayObject*) py_V213;\n15282\t PyErr_Format(PyExc_NotImplementedError,\n15283\t \"expected an aligned array of type %ld \"\n15284\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n15285\t \" with %ld dimensions, with 3 last dims \"\n15286\t \"%ld, %ld, %ld\"\n15287\t \" and 3 last strides %ld %ld, %ld.\",\n15288\t (long int) NPY_FLOAT64,\n15289\t (long int) PyArray_TYPE((PyArrayObject*) py_V213),\n15290\t (long int) PyArray_NDIM(tmp),\n15291\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n15292\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n15293\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n15294\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n15295\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n15296\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n15297\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n15298\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n15299\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n15300\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n15301\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n15302\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n15303\t );\n15304\t {\n15305\t __failure = 214;\n15306\t if (!PyErr_Occurred()) {\n15307\t PyErr_SetString(PyExc_RuntimeError,\n15308\t \"Unexpected error in an Op's C code. \"\n15309\t \"No Python exception was set.\");\n15310\t }\n15311\t goto __label_214;}\n15312\t }\n15313\t // This is a TypeError to be consistent with DEBUG_MODE\n15314\t // Note: DEBUG_MODE also tells the name of the container\n15315\t if (PyArray_TYPE((PyArrayObject*) py_V213) != NPY_FLOAT64) {\n15316\t PyErr_Format(PyExc_TypeError,\n15317\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n15318\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V213));\n15319\t {\n15320\t __failure = 214;\n15321\t if (!PyErr_Occurred()) {\n15322\t PyErr_SetString(PyExc_RuntimeError,\n15323\t \"Unexpected error in an Op's C code. \"\n15324\t \"No Python exception was set.\");\n15325\t }\n15326\t goto __label_214;}\n15327\t }\n15328\t \n15329\t V213 = (PyArrayObject*)(py_V213);\n15330\t Py_XINCREF(V213);\n15331\t \n15332\t{\n15333\t\n15334\t py_V215 = PyList_GET_ITEM(storage_V215, 0);\n15335\t {Py_XINCREF(py_V215);}\n15336\t \n15337\t V215 = NULL;\n15338\t if (py_V215 == Py_None) {\n15339\t // We can either fail here or set V215 to NULL and rely on Ops\n15340\t // using tensors to handle the NULL case, but if they fail to do so\n15341\t // they'll end up with nasty segfaults, so this is public service.\n15342\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n15343\t {\n15344\t __failure = 216;\n15345\t if (!PyErr_Occurred()) {\n15346\t PyErr_SetString(PyExc_RuntimeError,\n15347\t \"Unexpected error in an Op's C code. \"\n15348\t \"No Python exception was set.\");\n15349\t }\n15350\t goto __label_216;}\n15351\t }\n15352\t if (!PyArray_Check(py_V215)) {\n15353\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n15354\t {\n15355\t __failure = 216;\n15356\t if (!PyErr_Occurred()) {\n15357\t PyErr_SetString(PyExc_RuntimeError,\n15358\t \"Unexpected error in an Op's C code. \"\n15359\t \"No Python exception was set.\");\n15360\t }\n15361\t goto __label_216;}\n15362\t }\n15363\t // We expect NPY_FLOAT64\n15364\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V215)) {\n15365\t PyArrayObject * tmp = (PyArrayObject*) py_V215;\n15366\t PyErr_Format(PyExc_NotImplementedError,\n15367\t \"expected an aligned array of type %ld \"\n15368\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n15369\t \" with %ld dimensions, with 3 last dims \"\n15370\t \"%ld, %ld, %ld\"\n15371\t \" and 3 last strides %ld %ld, %ld.\",\n15372\t (long int) NPY_FLOAT64,\n15373\t (long int) PyArray_TYPE((PyArrayObject*) py_V215),\n15374\t (long int) PyArray_NDIM(tmp),\n15375\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n15376\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n15377\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n15378\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n15379\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n15380\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n15381\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n15382\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n15383\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n15384\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n15385\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n15386\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n15387\t );\n15388\t {\n15389\t __failure = 216;\n15390\t if (!PyErr_Occurred()) {\n15391\t PyErr_SetString(PyExc_RuntimeError,\n15392\t \"Unexpected error in an Op's C code. \"\n15393\t \"No Python exception was set.\");\n15394\t }\n15395\t goto __label_216;}\n15396\t }\n15397\t // This is a TypeError to be consistent with DEBUG_MODE\n15398\t // Note: DEBUG_MODE also tells the name of the container\n15399\t if (PyArray_TYPE((PyArrayObject*) py_V215) != NPY_FLOAT64) {\n15400\t PyErr_Format(PyExc_TypeError,\n15401\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n15402\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V215));\n15403\t {\n15404\t __failure = 216;\n15405\t if (!PyErr_Occurred()) {\n15406\t PyErr_SetString(PyExc_RuntimeError,\n15407\t \"Unexpected error in an Op's C code. \"\n15408\t \"No Python exception was set.\");\n15409\t }\n15410\t goto __label_216;}\n15411\t }\n15412\t \n15413\t V215 = (PyArrayObject*)(py_V215);\n15414\t Py_XINCREF(V215);\n15415\t \n15416\t{\n15417\t\n15418\t py_V217 = PyList_GET_ITEM(storage_V217, 0);\n15419\t {Py_XINCREF(py_V217);}\n15420\t \n15421\t V217 = NULL;\n15422\t if (py_V217 == Py_None) {\n15423\t // We can either fail here or set V217 to NULL and rely on Ops\n15424\t // using tensors to handle the NULL case, but if they fail to do so\n15425\t // they'll end up with nasty segfaults, so this is public service.\n15426\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n15427\t {\n15428\t __failure = 218;\n15429\t if (!PyErr_Occurred()) {\n15430\t PyErr_SetString(PyExc_RuntimeError,\n15431\t \"Unexpected error in an Op's C code. \"\n15432\t \"No Python exception was set.\");\n15433\t }\n15434\t goto __label_218;}\n15435\t }\n15436\t if (!PyArray_Check(py_V217)) {\n15437\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n15438\t {\n15439\t __failure = 218;\n15440\t if (!PyErr_Occurred()) {\n15441\t PyErr_SetString(PyExc_RuntimeError,\n15442\t \"Unexpected error in an Op's C code. \"\n15443\t \"No Python exception was set.\");\n15444\t }\n15445\t goto __label_218;}\n15446\t }\n15447\t // We expect NPY_FLOAT64\n15448\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V217)) {\n15449\t PyArrayObject * tmp = (PyArrayObject*) py_V217;\n15450\t PyErr_Format(PyExc_NotImplementedError,\n15451\t \"expected an aligned array of type %ld \"\n15452\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n15453\t \" with %ld dimensions, with 3 last dims \"\n15454\t \"%ld, %ld, %ld\"\n15455\t \" and 3 last strides %ld %ld, %ld.\",\n15456\t (long int) NPY_FLOAT64,\n15457\t (long int) PyArray_TYPE((PyArrayObject*) py_V217),\n15458\t (long int) PyArray_NDIM(tmp),\n15459\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n15460\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n15461\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n15462\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n15463\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n15464\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n15465\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n15466\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n15467\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n15468\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n15469\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n15470\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n15471\t );\n15472\t {\n15473\t __failure = 218;\n15474\t if (!PyErr_Occurred()) {\n15475\t PyErr_SetString(PyExc_RuntimeError,\n15476\t \"Unexpected error in an Op's C code. \"\n15477\t \"No Python exception was set.\");\n15478\t }\n15479\t goto __label_218;}\n15480\t }\n15481\t // This is a TypeError to be consistent with DEBUG_MODE\n15482\t // Note: DEBUG_MODE also tells the name of the container\n15483\t if (PyArray_TYPE((PyArrayObject*) py_V217) != NPY_FLOAT64) {\n15484\t PyErr_Format(PyExc_TypeError,\n15485\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n15486\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V217));\n15487\t {\n15488\t __failure = 218;\n15489\t if (!PyErr_Occurred()) {\n15490\t PyErr_SetString(PyExc_RuntimeError,\n15491\t \"Unexpected error in an Op's C code. \"\n15492\t \"No Python exception was set.\");\n15493\t }\n15494\t goto __label_218;}\n15495\t }\n15496\t \n15497\t V217 = (PyArrayObject*)(py_V217);\n15498\t Py_XINCREF(V217);\n15499\t \n15500\t{\n15501\t\n15502\t py_V219 = PyList_GET_ITEM(storage_V219, 0);\n15503\t {Py_XINCREF(py_V219);}\n15504\t \n15505\t V219 = NULL;\n15506\t if (py_V219 == Py_None) {\n15507\t // We can either fail here or set V219 to NULL and rely on Ops\n15508\t // using tensors to handle the NULL case, but if they fail to do so\n15509\t // they'll end up with nasty segfaults, so this is public service.\n15510\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n15511\t {\n15512\t __failure = 220;\n15513\t if (!PyErr_Occurred()) {\n15514\t PyErr_SetString(PyExc_RuntimeError,\n15515\t \"Unexpected error in an Op's C code. \"\n15516\t \"No Python exception was set.\");\n15517\t }\n15518\t goto __label_220;}\n15519\t }\n15520\t if (!PyArray_Check(py_V219)) {\n15521\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n15522\t {\n15523\t __failure = 220;\n15524\t if (!PyErr_Occurred()) {\n15525\t PyErr_SetString(PyExc_RuntimeError,\n15526\t \"Unexpected error in an Op's C code. \"\n15527\t \"No Python exception was set.\");\n15528\t }\n15529\t goto __label_220;}\n15530\t }\n15531\t // We expect NPY_FLOAT64\n15532\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V219)) {\n15533\t PyArrayObject * tmp = (PyArrayObject*) py_V219;\n15534\t PyErr_Format(PyExc_NotImplementedError,\n15535\t \"expected an aligned array of type %ld \"\n15536\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n15537\t \" with %ld dimensions, with 3 last dims \"\n15538\t \"%ld, %ld, %ld\"\n15539\t \" and 3 last strides %ld %ld, %ld.\",\n15540\t (long int) NPY_FLOAT64,\n15541\t (long int) PyArray_TYPE((PyArrayObject*) py_V219),\n15542\t (long int) PyArray_NDIM(tmp),\n15543\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n15544\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n15545\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n15546\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n15547\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n15548\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n15549\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n15550\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n15551\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n15552\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n15553\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n15554\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n15555\t );\n15556\t {\n15557\t __failure = 220;\n15558\t if (!PyErr_Occurred()) {\n15559\t PyErr_SetString(PyExc_RuntimeError,\n15560\t \"Unexpected error in an Op's C code. \"\n15561\t \"No Python exception was set.\");\n15562\t }\n15563\t goto __label_220;}\n15564\t }\n15565\t // This is a TypeError to be consistent with DEBUG_MODE\n15566\t // Note: DEBUG_MODE also tells the name of the container\n15567\t if (PyArray_TYPE((PyArrayObject*) py_V219) != NPY_FLOAT64) {\n15568\t PyErr_Format(PyExc_TypeError,\n15569\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n15570\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V219));\n15571\t {\n15572\t __failure = 220;\n15573\t if (!PyErr_Occurred()) {\n15574\t PyErr_SetString(PyExc_RuntimeError,\n15575\t \"Unexpected error in an Op's C code. \"\n15576\t \"No Python exception was set.\");\n15577\t }\n15578\t goto __label_220;}\n15579\t }\n15580\t \n15581\t V219 = (PyArrayObject*)(py_V219);\n15582\t Py_XINCREF(V219);\n15583\t \n15584\t{\n15585\t\n15586\t py_V221 = PyList_GET_ITEM(storage_V221, 0);\n15587\t {Py_XINCREF(py_V221);}\n15588\t \n15589\t V221 = NULL;\n15590\t if (py_V221 == Py_None) {\n15591\t // We can either fail here or set V221 to NULL and rely on Ops\n15592\t // using tensors to handle the NULL case, but if they fail to do so\n15593\t // they'll end up with nasty segfaults, so this is public service.\n15594\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n15595\t {\n15596\t __failure = 222;\n15597\t if (!PyErr_Occurred()) {\n15598\t PyErr_SetString(PyExc_RuntimeError,\n15599\t \"Unexpected error in an Op's C code. \"\n15600\t \"No Python exception was set.\");\n15601\t }\n15602\t goto __label_222;}\n15603\t }\n15604\t if (!PyArray_Check(py_V221)) {\n15605\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n15606\t {\n15607\t __failure = 222;\n15608\t if (!PyErr_Occurred()) {\n15609\t PyErr_SetString(PyExc_RuntimeError,\n15610\t \"Unexpected error in an Op's C code. \"\n15611\t \"No Python exception was set.\");\n15612\t }\n15613\t goto __label_222;}\n15614\t }\n15615\t // We expect NPY_FLOAT64\n15616\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V221)) {\n15617\t PyArrayObject * tmp = (PyArrayObject*) py_V221;\n15618\t PyErr_Format(PyExc_NotImplementedError,\n15619\t \"expected an aligned array of type %ld \"\n15620\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n15621\t \" with %ld dimensions, with 3 last dims \"\n15622\t \"%ld, %ld, %ld\"\n15623\t \" and 3 last strides %ld %ld, %ld.\",\n15624\t (long int) NPY_FLOAT64,\n15625\t (long int) PyArray_TYPE((PyArrayObject*) py_V221),\n15626\t (long int) PyArray_NDIM(tmp),\n15627\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n15628\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n15629\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n15630\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n15631\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n15632\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n15633\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n15634\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n15635\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n15636\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n15637\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n15638\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n15639\t );\n15640\t {\n15641\t __failure = 222;\n15642\t if (!PyErr_Occurred()) {\n15643\t PyErr_SetString(PyExc_RuntimeError,\n15644\t \"Unexpected error in an Op's C code. \"\n15645\t \"No Python exception was set.\");\n15646\t }\n15647\t goto __label_222;}\n15648\t }\n15649\t // This is a TypeError to be consistent with DEBUG_MODE\n15650\t // Note: DEBUG_MODE also tells the name of the container\n15651\t if (PyArray_TYPE((PyArrayObject*) py_V221) != NPY_FLOAT64) {\n15652\t PyErr_Format(PyExc_TypeError,\n15653\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n15654\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V221));\n15655\t {\n15656\t __failure = 222;\n15657\t if (!PyErr_Occurred()) {\n15658\t PyErr_SetString(PyExc_RuntimeError,\n15659\t \"Unexpected error in an Op's C code. \"\n15660\t \"No Python exception was set.\");\n15661\t }\n15662\t goto __label_222;}\n15663\t }\n15664\t \n15665\t V221 = (PyArrayObject*)(py_V221);\n15666\t Py_XINCREF(V221);\n15667\t \n15668\t{\n15669\t\n15670\t py_V223 = PyList_GET_ITEM(storage_V223, 0);\n15671\t {Py_XINCREF(py_V223);}\n15672\t \n15673\t V223 = NULL;\n15674\t if (py_V223 == Py_None) {\n15675\t // We can either fail here or set V223 to NULL and rely on Ops\n15676\t // using tensors to handle the NULL case, but if they fail to do so\n15677\t // they'll end up with nasty segfaults, so this is public service.\n15678\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n15679\t {\n15680\t __failure = 224;\n15681\t if (!PyErr_Occurred()) {\n15682\t PyErr_SetString(PyExc_RuntimeError,\n15683\t \"Unexpected error in an Op's C code. \"\n15684\t \"No Python exception was set.\");\n15685\t }\n15686\t goto __label_224;}\n15687\t }\n15688\t if (!PyArray_Check(py_V223)) {\n15689\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n15690\t {\n15691\t __failure = 224;\n15692\t if (!PyErr_Occurred()) {\n15693\t PyErr_SetString(PyExc_RuntimeError,\n15694\t \"Unexpected error in an Op's C code. \"\n15695\t \"No Python exception was set.\");\n15696\t }\n15697\t goto __label_224;}\n15698\t }\n15699\t // We expect NPY_FLOAT64\n15700\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V223)) {\n15701\t PyArrayObject * tmp = (PyArrayObject*) py_V223;\n15702\t PyErr_Format(PyExc_NotImplementedError,\n15703\t \"expected an aligned array of type %ld \"\n15704\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n15705\t \" with %ld dimensions, with 3 last dims \"\n15706\t \"%ld, %ld, %ld\"\n15707\t \" and 3 last strides %ld %ld, %ld.\",\n15708\t (long int) NPY_FLOAT64,\n15709\t (long int) PyArray_TYPE((PyArrayObject*) py_V223),\n15710\t (long int) PyArray_NDIM(tmp),\n15711\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n15712\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n15713\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n15714\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n15715\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n15716\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n15717\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n15718\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n15719\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n15720\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n15721\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n15722\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n15723\t );\n15724\t {\n15725\t __failure = 224;\n15726\t if (!PyErr_Occurred()) {\n15727\t PyErr_SetString(PyExc_RuntimeError,\n15728\t \"Unexpected error in an Op's C code. \"\n15729\t \"No Python exception was set.\");\n15730\t }\n15731\t goto __label_224;}\n15732\t }\n15733\t // This is a TypeError to be consistent with DEBUG_MODE\n15734\t // Note: DEBUG_MODE also tells the name of the container\n15735\t if (PyArray_TYPE((PyArrayObject*) py_V223) != NPY_FLOAT64) {\n15736\t PyErr_Format(PyExc_TypeError,\n15737\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n15738\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V223));\n15739\t {\n15740\t __failure = 224;\n15741\t if (!PyErr_Occurred()) {\n15742\t PyErr_SetString(PyExc_RuntimeError,\n15743\t \"Unexpected error in an Op's C code. \"\n15744\t \"No Python exception was set.\");\n15745\t }\n15746\t goto __label_224;}\n15747\t }\n15748\t \n15749\t V223 = (PyArrayObject*)(py_V223);\n15750\t Py_XINCREF(V223);\n15751\t \n15752\t{\n15753\t\n15754\t py_V225 = PyList_GET_ITEM(storage_V225, 0);\n15755\t {Py_XINCREF(py_V225);}\n15756\t \n15757\t V225 = NULL;\n15758\t if (py_V225 == Py_None) {\n15759\t // We can either fail here or set V225 to NULL and rely on Ops\n15760\t // using tensors to handle the NULL case, but if they fail to do so\n15761\t // they'll end up with nasty segfaults, so this is public service.\n15762\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n15763\t {\n15764\t __failure = 226;\n15765\t if (!PyErr_Occurred()) {\n15766\t PyErr_SetString(PyExc_RuntimeError,\n15767\t \"Unexpected error in an Op's C code. \"\n15768\t \"No Python exception was set.\");\n15769\t }\n15770\t goto __label_226;}\n15771\t }\n15772\t if (!PyArray_Check(py_V225)) {\n15773\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n15774\t {\n15775\t __failure = 226;\n15776\t if (!PyErr_Occurred()) {\n15777\t PyErr_SetString(PyExc_RuntimeError,\n15778\t \"Unexpected error in an Op's C code. \"\n15779\t \"No Python exception was set.\");\n15780\t }\n15781\t goto __label_226;}\n15782\t }\n15783\t // We expect NPY_FLOAT64\n15784\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V225)) {\n15785\t PyArrayObject * tmp = (PyArrayObject*) py_V225;\n15786\t PyErr_Format(PyExc_NotImplementedError,\n15787\t \"expected an aligned array of type %ld \"\n15788\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n15789\t \" with %ld dimensions, with 3 last dims \"\n15790\t \"%ld, %ld, %ld\"\n15791\t \" and 3 last strides %ld %ld, %ld.\",\n15792\t (long int) NPY_FLOAT64,\n15793\t (long int) PyArray_TYPE((PyArrayObject*) py_V225),\n15794\t (long int) PyArray_NDIM(tmp),\n15795\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n15796\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n15797\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n15798\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n15799\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n15800\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n15801\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n15802\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n15803\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n15804\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n15805\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n15806\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n15807\t );\n15808\t {\n15809\t __failure = 226;\n15810\t if (!PyErr_Occurred()) {\n15811\t PyErr_SetString(PyExc_RuntimeError,\n15812\t \"Unexpected error in an Op's C code. \"\n15813\t \"No Python exception was set.\");\n15814\t }\n15815\t goto __label_226;}\n15816\t }\n15817\t // This is a TypeError to be consistent with DEBUG_MODE\n15818\t // Note: DEBUG_MODE also tells the name of the container\n15819\t if (PyArray_TYPE((PyArrayObject*) py_V225) != NPY_FLOAT64) {\n15820\t PyErr_Format(PyExc_TypeError,\n15821\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n15822\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V225));\n15823\t {\n15824\t __failure = 226;\n15825\t if (!PyErr_Occurred()) {\n15826\t PyErr_SetString(PyExc_RuntimeError,\n15827\t \"Unexpected error in an Op's C code. \"\n15828\t \"No Python exception was set.\");\n15829\t }\n15830\t goto __label_226;}\n15831\t }\n15832\t \n15833\t V225 = (PyArrayObject*)(py_V225);\n15834\t Py_XINCREF(V225);\n15835\t \n15836\t{\n15837\t\n15838\t py_V227 = PyList_GET_ITEM(storage_V227, 0);\n15839\t {Py_XINCREF(py_V227);}\n15840\t \n15841\t V227 = NULL;\n15842\t if (py_V227 == Py_None) {\n15843\t // We can either fail here or set V227 to NULL and rely on Ops\n15844\t // using tensors to handle the NULL case, but if they fail to do so\n15845\t // they'll end up with nasty segfaults, so this is public service.\n15846\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n15847\t {\n15848\t __failure = 228;\n15849\t if (!PyErr_Occurred()) {\n15850\t PyErr_SetString(PyExc_RuntimeError,\n15851\t \"Unexpected error in an Op's C code. \"\n15852\t \"No Python exception was set.\");\n15853\t }\n15854\t goto __label_228;}\n15855\t }\n15856\t if (!PyArray_Check(py_V227)) {\n15857\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n15858\t {\n15859\t __failure = 228;\n15860\t if (!PyErr_Occurred()) {\n15861\t PyErr_SetString(PyExc_RuntimeError,\n15862\t \"Unexpected error in an Op's C code. \"\n15863\t \"No Python exception was set.\");\n15864\t }\n15865\t goto __label_228;}\n15866\t }\n15867\t // We expect NPY_FLOAT64\n15868\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V227)) {\n15869\t PyArrayObject * tmp = (PyArrayObject*) py_V227;\n15870\t PyErr_Format(PyExc_NotImplementedError,\n15871\t \"expected an aligned array of type %ld \"\n15872\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n15873\t \" with %ld dimensions, with 3 last dims \"\n15874\t \"%ld, %ld, %ld\"\n15875\t \" and 3 last strides %ld %ld, %ld.\",\n15876\t (long int) NPY_FLOAT64,\n15877\t (long int) PyArray_TYPE((PyArrayObject*) py_V227),\n15878\t (long int) PyArray_NDIM(tmp),\n15879\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n15880\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n15881\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n15882\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n15883\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n15884\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n15885\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n15886\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n15887\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n15888\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n15889\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n15890\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n15891\t );\n15892\t {\n15893\t __failure = 228;\n15894\t if (!PyErr_Occurred()) {\n15895\t PyErr_SetString(PyExc_RuntimeError,\n15896\t \"Unexpected error in an Op's C code. \"\n15897\t \"No Python exception was set.\");\n15898\t }\n15899\t goto __label_228;}\n15900\t }\n15901\t // This is a TypeError to be consistent with DEBUG_MODE\n15902\t // Note: DEBUG_MODE also tells the name of the container\n15903\t if (PyArray_TYPE((PyArrayObject*) py_V227) != NPY_FLOAT64) {\n15904\t PyErr_Format(PyExc_TypeError,\n15905\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n15906\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V227));\n15907\t {\n15908\t __failure = 228;\n15909\t if (!PyErr_Occurred()) {\n15910\t PyErr_SetString(PyExc_RuntimeError,\n15911\t \"Unexpected error in an Op's C code. \"\n15912\t \"No Python exception was set.\");\n15913\t }\n15914\t goto __label_228;}\n15915\t }\n15916\t \n15917\t V227 = (PyArrayObject*)(py_V227);\n15918\t Py_XINCREF(V227);\n15919\t \n15920\t{\n15921\t\n15922\t py_V229 = PyList_GET_ITEM(storage_V229, 0);\n15923\t {Py_XINCREF(py_V229);}\n15924\t \n15925\t V229 = NULL;\n15926\t if (py_V229 == Py_None) {\n15927\t // We can either fail here or set V229 to NULL and rely on Ops\n15928\t // using tensors to handle the NULL case, but if they fail to do so\n15929\t // they'll end up with nasty segfaults, so this is public service.\n15930\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n15931\t {\n15932\t __failure = 230;\n15933\t if (!PyErr_Occurred()) {\n15934\t PyErr_SetString(PyExc_RuntimeError,\n15935\t \"Unexpected error in an Op's C code. \"\n15936\t \"No Python exception was set.\");\n15937\t }\n15938\t goto __label_230;}\n15939\t }\n15940\t if (!PyArray_Check(py_V229)) {\n15941\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n15942\t {\n15943\t __failure = 230;\n15944\t if (!PyErr_Occurred()) {\n15945\t PyErr_SetString(PyExc_RuntimeError,\n15946\t \"Unexpected error in an Op's C code. \"\n15947\t \"No Python exception was set.\");\n15948\t }\n15949\t goto __label_230;}\n15950\t }\n15951\t // We expect NPY_FLOAT64\n15952\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V229)) {\n15953\t PyArrayObject * tmp = (PyArrayObject*) py_V229;\n15954\t PyErr_Format(PyExc_NotImplementedError,\n15955\t \"expected an aligned array of type %ld \"\n15956\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n15957\t \" with %ld dimensions, with 3 last dims \"\n15958\t \"%ld, %ld, %ld\"\n15959\t \" and 3 last strides %ld %ld, %ld.\",\n15960\t (long int) NPY_FLOAT64,\n15961\t (long int) PyArray_TYPE((PyArrayObject*) py_V229),\n15962\t (long int) PyArray_NDIM(tmp),\n15963\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n15964\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n15965\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n15966\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n15967\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n15968\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n15969\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n15970\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n15971\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n15972\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n15973\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n15974\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n15975\t );\n15976\t {\n15977\t __failure = 230;\n15978\t if (!PyErr_Occurred()) {\n15979\t PyErr_SetString(PyExc_RuntimeError,\n15980\t \"Unexpected error in an Op's C code. \"\n15981\t \"No Python exception was set.\");\n15982\t }\n15983\t goto __label_230;}\n15984\t }\n15985\t // This is a TypeError to be consistent with DEBUG_MODE\n15986\t // Note: DEBUG_MODE also tells the name of the container\n15987\t if (PyArray_TYPE((PyArrayObject*) py_V229) != NPY_FLOAT64) {\n15988\t PyErr_Format(PyExc_TypeError,\n15989\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n15990\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V229));\n15991\t {\n15992\t __failure = 230;\n15993\t if (!PyErr_Occurred()) {\n15994\t PyErr_SetString(PyExc_RuntimeError,\n15995\t \"Unexpected error in an Op's C code. \"\n15996\t \"No Python exception was set.\");\n15997\t }\n15998\t goto __label_230;}\n15999\t }\n16000\t \n16001\t V229 = (PyArrayObject*)(py_V229);\n16002\t Py_XINCREF(V229);\n16003\t \n16004\t{\n16005\t\n16006\t py_V231 = PyList_GET_ITEM(storage_V231, 0);\n16007\t {Py_XINCREF(py_V231);}\n16008\t \n16009\t V231 = NULL;\n16010\t if (py_V231 == Py_None) {\n16011\t // We can either fail here or set V231 to NULL and rely on Ops\n16012\t // using tensors to handle the NULL case, but if they fail to do so\n16013\t // they'll end up with nasty segfaults, so this is public service.\n16014\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n16015\t {\n16016\t __failure = 232;\n16017\t if (!PyErr_Occurred()) {\n16018\t PyErr_SetString(PyExc_RuntimeError,\n16019\t \"Unexpected error in an Op's C code. \"\n16020\t \"No Python exception was set.\");\n16021\t }\n16022\t goto __label_232;}\n16023\t }\n16024\t if (!PyArray_Check(py_V231)) {\n16025\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n16026\t {\n16027\t __failure = 232;\n16028\t if (!PyErr_Occurred()) {\n16029\t PyErr_SetString(PyExc_RuntimeError,\n16030\t \"Unexpected error in an Op's C code. \"\n16031\t \"No Python exception was set.\");\n16032\t }\n16033\t goto __label_232;}\n16034\t }\n16035\t // We expect NPY_FLOAT64\n16036\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V231)) {\n16037\t PyArrayObject * tmp = (PyArrayObject*) py_V231;\n16038\t PyErr_Format(PyExc_NotImplementedError,\n16039\t \"expected an aligned array of type %ld \"\n16040\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n16041\t \" with %ld dimensions, with 3 last dims \"\n16042\t \"%ld, %ld, %ld\"\n16043\t \" and 3 last strides %ld %ld, %ld.\",\n16044\t (long int) NPY_FLOAT64,\n16045\t (long int) PyArray_TYPE((PyArrayObject*) py_V231),\n16046\t (long int) PyArray_NDIM(tmp),\n16047\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n16048\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n16049\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n16050\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n16051\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n16052\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n16053\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n16054\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n16055\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n16056\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n16057\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n16058\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n16059\t );\n16060\t {\n16061\t __failure = 232;\n16062\t if (!PyErr_Occurred()) {\n16063\t PyErr_SetString(PyExc_RuntimeError,\n16064\t \"Unexpected error in an Op's C code. \"\n16065\t \"No Python exception was set.\");\n16066\t }\n16067\t goto __label_232;}\n16068\t }\n16069\t // This is a TypeError to be consistent with DEBUG_MODE\n16070\t // Note: DEBUG_MODE also tells the name of the container\n16071\t if (PyArray_TYPE((PyArrayObject*) py_V231) != NPY_FLOAT64) {\n16072\t PyErr_Format(PyExc_TypeError,\n16073\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n16074\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V231));\n16075\t {\n16076\t __failure = 232;\n16077\t if (!PyErr_Occurred()) {\n16078\t PyErr_SetString(PyExc_RuntimeError,\n16079\t \"Unexpected error in an Op's C code. \"\n16080\t \"No Python exception was set.\");\n16081\t }\n16082\t goto __label_232;}\n16083\t }\n16084\t \n16085\t V231 = (PyArrayObject*)(py_V231);\n16086\t Py_XINCREF(V231);\n16087\t \n16088\t{\n16089\t\n16090\t py_V233 = PyList_GET_ITEM(storage_V233, 0);\n16091\t {Py_XINCREF(py_V233);}\n16092\t \n16093\t V233 = NULL;\n16094\t if (py_V233 == Py_None) {\n16095\t // We can either fail here or set V233 to NULL and rely on Ops\n16096\t // using tensors to handle the NULL case, but if they fail to do so\n16097\t // they'll end up with nasty segfaults, so this is public service.\n16098\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n16099\t {\n16100\t __failure = 234;\n16101\t if (!PyErr_Occurred()) {\n16102\t PyErr_SetString(PyExc_RuntimeError,\n16103\t \"Unexpected error in an Op's C code. \"\n16104\t \"No Python exception was set.\");\n16105\t }\n16106\t goto __label_234;}\n16107\t }\n16108\t if (!PyArray_Check(py_V233)) {\n16109\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n16110\t {\n16111\t __failure = 234;\n16112\t if (!PyErr_Occurred()) {\n16113\t PyErr_SetString(PyExc_RuntimeError,\n16114\t \"Unexpected error in an Op's C code. \"\n16115\t \"No Python exception was set.\");\n16116\t }\n16117\t goto __label_234;}\n16118\t }\n16119\t // We expect NPY_FLOAT64\n16120\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V233)) {\n16121\t PyArrayObject * tmp = (PyArrayObject*) py_V233;\n16122\t PyErr_Format(PyExc_NotImplementedError,\n16123\t \"expected an aligned array of type %ld \"\n16124\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n16125\t \" with %ld dimensions, with 3 last dims \"\n16126\t \"%ld, %ld, %ld\"\n16127\t \" and 3 last strides %ld %ld, %ld.\",\n16128\t (long int) NPY_FLOAT64,\n16129\t (long int) PyArray_TYPE((PyArrayObject*) py_V233),\n16130\t (long int) PyArray_NDIM(tmp),\n16131\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n16132\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n16133\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n16134\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n16135\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n16136\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n16137\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n16138\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n16139\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n16140\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n16141\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n16142\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n16143\t );\n16144\t {\n16145\t __failure = 234;\n16146\t if (!PyErr_Occurred()) {\n16147\t PyErr_SetString(PyExc_RuntimeError,\n16148\t \"Unexpected error in an Op's C code. \"\n16149\t \"No Python exception was set.\");\n16150\t }\n16151\t goto __label_234;}\n16152\t }\n16153\t // This is a TypeError to be consistent with DEBUG_MODE\n16154\t // Note: DEBUG_MODE also tells the name of the container\n16155\t if (PyArray_TYPE((PyArrayObject*) py_V233) != NPY_FLOAT64) {\n16156\t PyErr_Format(PyExc_TypeError,\n16157\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n16158\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V233));\n16159\t {\n16160\t __failure = 234;\n16161\t if (!PyErr_Occurred()) {\n16162\t PyErr_SetString(PyExc_RuntimeError,\n16163\t \"Unexpected error in an Op's C code. \"\n16164\t \"No Python exception was set.\");\n16165\t }\n16166\t goto __label_234;}\n16167\t }\n16168\t \n16169\t V233 = (PyArrayObject*)(py_V233);\n16170\t Py_XINCREF(V233);\n16171\t \n16172\t{\n16173\t\n16174\t py_V235 = PyList_GET_ITEM(storage_V235, 0);\n16175\t {Py_XINCREF(py_V235);}\n16176\t \n16177\t V235 = NULL;\n16178\t if (py_V235 == Py_None) {\n16179\t // We can either fail here or set V235 to NULL and rely on Ops\n16180\t // using tensors to handle the NULL case, but if they fail to do so\n16181\t // they'll end up with nasty segfaults, so this is public service.\n16182\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n16183\t {\n16184\t __failure = 236;\n16185\t if (!PyErr_Occurred()) {\n16186\t PyErr_SetString(PyExc_RuntimeError,\n16187\t \"Unexpected error in an Op's C code. \"\n16188\t \"No Python exception was set.\");\n16189\t }\n16190\t goto __label_236;}\n16191\t }\n16192\t if (!PyArray_Check(py_V235)) {\n16193\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n16194\t {\n16195\t __failure = 236;\n16196\t if (!PyErr_Occurred()) {\n16197\t PyErr_SetString(PyExc_RuntimeError,\n16198\t \"Unexpected error in an Op's C code. \"\n16199\t \"No Python exception was set.\");\n16200\t }\n16201\t goto __label_236;}\n16202\t }\n16203\t // We expect NPY_FLOAT64\n16204\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V235)) {\n16205\t PyArrayObject * tmp = (PyArrayObject*) py_V235;\n16206\t PyErr_Format(PyExc_NotImplementedError,\n16207\t \"expected an aligned array of type %ld \"\n16208\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n16209\t \" with %ld dimensions, with 3 last dims \"\n16210\t \"%ld, %ld, %ld\"\n16211\t \" and 3 last strides %ld %ld, %ld.\",\n16212\t (long int) NPY_FLOAT64,\n16213\t (long int) PyArray_TYPE((PyArrayObject*) py_V235),\n16214\t (long int) PyArray_NDIM(tmp),\n16215\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n16216\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n16217\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n16218\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n16219\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n16220\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n16221\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n16222\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n16223\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n16224\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n16225\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n16226\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n16227\t );\n16228\t {\n16229\t __failure = 236;\n16230\t if (!PyErr_Occurred()) {\n16231\t PyErr_SetString(PyExc_RuntimeError,\n16232\t \"Unexpected error in an Op's C code. \"\n16233\t \"No Python exception was set.\");\n16234\t }\n16235\t goto __label_236;}\n16236\t }\n16237\t // This is a TypeError to be consistent with DEBUG_MODE\n16238\t // Note: DEBUG_MODE also tells the name of the container\n16239\t if (PyArray_TYPE((PyArrayObject*) py_V235) != NPY_FLOAT64) {\n16240\t PyErr_Format(PyExc_TypeError,\n16241\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n16242\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V235));\n16243\t {\n16244\t __failure = 236;\n16245\t if (!PyErr_Occurred()) {\n16246\t PyErr_SetString(PyExc_RuntimeError,\n16247\t \"Unexpected error in an Op's C code. \"\n16248\t \"No Python exception was set.\");\n16249\t }\n16250\t goto __label_236;}\n16251\t }\n16252\t \n16253\t V235 = (PyArrayObject*)(py_V235);\n16254\t Py_XINCREF(V235);\n16255\t \n16256\t{\n16257\t\n16258\t py_V237 = PyList_GET_ITEM(storage_V237, 0);\n16259\t {Py_XINCREF(py_V237);}\n16260\t \n16261\t V237 = NULL;\n16262\t if (py_V237 == Py_None) {\n16263\t // We can either fail here or set V237 to NULL and rely on Ops\n16264\t // using tensors to handle the NULL case, but if they fail to do so\n16265\t // they'll end up with nasty segfaults, so this is public service.\n16266\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n16267\t {\n16268\t __failure = 238;\n16269\t if (!PyErr_Occurred()) {\n16270\t PyErr_SetString(PyExc_RuntimeError,\n16271\t \"Unexpected error in an Op's C code. \"\n16272\t \"No Python exception was set.\");\n16273\t }\n16274\t goto __label_238;}\n16275\t }\n16276\t if (!PyArray_Check(py_V237)) {\n16277\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n16278\t {\n16279\t __failure = 238;\n16280\t if (!PyErr_Occurred()) {\n16281\t PyErr_SetString(PyExc_RuntimeError,\n16282\t \"Unexpected error in an Op's C code. \"\n16283\t \"No Python exception was set.\");\n16284\t }\n16285\t goto __label_238;}\n16286\t }\n16287\t // We expect NPY_FLOAT64\n16288\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V237)) {\n16289\t PyArrayObject * tmp = (PyArrayObject*) py_V237;\n16290\t PyErr_Format(PyExc_NotImplementedError,\n16291\t \"expected an aligned array of type %ld \"\n16292\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n16293\t \" with %ld dimensions, with 3 last dims \"\n16294\t \"%ld, %ld, %ld\"\n16295\t \" and 3 last strides %ld %ld, %ld.\",\n16296\t (long int) NPY_FLOAT64,\n16297\t (long int) PyArray_TYPE((PyArrayObject*) py_V237),\n16298\t (long int) PyArray_NDIM(tmp),\n16299\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n16300\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n16301\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n16302\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n16303\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n16304\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n16305\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n16306\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n16307\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n16308\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n16309\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n16310\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n16311\t );\n16312\t {\n16313\t __failure = 238;\n16314\t if (!PyErr_Occurred()) {\n16315\t PyErr_SetString(PyExc_RuntimeError,\n16316\t \"Unexpected error in an Op's C code. \"\n16317\t \"No Python exception was set.\");\n16318\t }\n16319\t goto __label_238;}\n16320\t }\n16321\t // This is a TypeError to be consistent with DEBUG_MODE\n16322\t // Note: DEBUG_MODE also tells the name of the container\n16323\t if (PyArray_TYPE((PyArrayObject*) py_V237) != NPY_FLOAT64) {\n16324\t PyErr_Format(PyExc_TypeError,\n16325\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n16326\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V237));\n16327\t {\n16328\t __failure = 238;\n16329\t if (!PyErr_Occurred()) {\n16330\t PyErr_SetString(PyExc_RuntimeError,\n16331\t \"Unexpected error in an Op's C code. \"\n16332\t \"No Python exception was set.\");\n16333\t }\n16334\t goto __label_238;}\n16335\t }\n16336\t \n16337\t V237 = (PyArrayObject*)(py_V237);\n16338\t Py_XINCREF(V237);\n16339\t \n16340\t{\n16341\t\n16342\t py_V239 = PyList_GET_ITEM(storage_V239, 0);\n16343\t {Py_XINCREF(py_V239);}\n16344\t \n16345\t V239 = NULL;\n16346\t if (py_V239 == Py_None) {\n16347\t // We can either fail here or set V239 to NULL and rely on Ops\n16348\t // using tensors to handle the NULL case, but if they fail to do so\n16349\t // they'll end up with nasty segfaults, so this is public service.\n16350\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n16351\t {\n16352\t __failure = 240;\n16353\t if (!PyErr_Occurred()) {\n16354\t PyErr_SetString(PyExc_RuntimeError,\n16355\t \"Unexpected error in an Op's C code. \"\n16356\t \"No Python exception was set.\");\n16357\t }\n16358\t goto __label_240;}\n16359\t }\n16360\t if (!PyArray_Check(py_V239)) {\n16361\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n16362\t {\n16363\t __failure = 240;\n16364\t if (!PyErr_Occurred()) {\n16365\t PyErr_SetString(PyExc_RuntimeError,\n16366\t \"Unexpected error in an Op's C code. \"\n16367\t \"No Python exception was set.\");\n16368\t }\n16369\t goto __label_240;}\n16370\t }\n16371\t // We expect NPY_FLOAT64\n16372\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V239)) {\n16373\t PyArrayObject * tmp = (PyArrayObject*) py_V239;\n16374\t PyErr_Format(PyExc_NotImplementedError,\n16375\t \"expected an aligned array of type %ld \"\n16376\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n16377\t \" with %ld dimensions, with 3 last dims \"\n16378\t \"%ld, %ld, %ld\"\n16379\t \" and 3 last strides %ld %ld, %ld.\",\n16380\t (long int) NPY_FLOAT64,\n16381\t (long int) PyArray_TYPE((PyArrayObject*) py_V239),\n16382\t (long int) PyArray_NDIM(tmp),\n16383\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n16384\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n16385\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n16386\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n16387\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n16388\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n16389\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n16390\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n16391\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n16392\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n16393\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n16394\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n16395\t );\n16396\t {\n16397\t __failure = 240;\n16398\t if (!PyErr_Occurred()) {\n16399\t PyErr_SetString(PyExc_RuntimeError,\n16400\t \"Unexpected error in an Op's C code. \"\n16401\t \"No Python exception was set.\");\n16402\t }\n16403\t goto __label_240;}\n16404\t }\n16405\t // This is a TypeError to be consistent with DEBUG_MODE\n16406\t // Note: DEBUG_MODE also tells the name of the container\n16407\t if (PyArray_TYPE((PyArrayObject*) py_V239) != NPY_FLOAT64) {\n16408\t PyErr_Format(PyExc_TypeError,\n16409\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n16410\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V239));\n16411\t {\n16412\t __failure = 240;\n16413\t if (!PyErr_Occurred()) {\n16414\t PyErr_SetString(PyExc_RuntimeError,\n16415\t \"Unexpected error in an Op's C code. \"\n16416\t \"No Python exception was set.\");\n16417\t }\n16418\t goto __label_240;}\n16419\t }\n16420\t \n16421\t V239 = (PyArrayObject*)(py_V239);\n16422\t Py_XINCREF(V239);\n16423\t \n16424\t{\n16425\t\n16426\t py_V241 = PyList_GET_ITEM(storage_V241, 0);\n16427\t {Py_XINCREF(py_V241);}\n16428\t \n16429\t V241 = NULL;\n16430\t if (py_V241 == Py_None) {\n16431\t // We can either fail here or set V241 to NULL and rely on Ops\n16432\t // using tensors to handle the NULL case, but if they fail to do so\n16433\t // they'll end up with nasty segfaults, so this is public service.\n16434\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n16435\t {\n16436\t __failure = 242;\n16437\t if (!PyErr_Occurred()) {\n16438\t PyErr_SetString(PyExc_RuntimeError,\n16439\t \"Unexpected error in an Op's C code. \"\n16440\t \"No Python exception was set.\");\n16441\t }\n16442\t goto __label_242;}\n16443\t }\n16444\t if (!PyArray_Check(py_V241)) {\n16445\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n16446\t {\n16447\t __failure = 242;\n16448\t if (!PyErr_Occurred()) {\n16449\t PyErr_SetString(PyExc_RuntimeError,\n16450\t \"Unexpected error in an Op's C code. \"\n16451\t \"No Python exception was set.\");\n16452\t }\n16453\t goto __label_242;}\n16454\t }\n16455\t // We expect NPY_FLOAT64\n16456\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V241)) {\n16457\t PyArrayObject * tmp = (PyArrayObject*) py_V241;\n16458\t PyErr_Format(PyExc_NotImplementedError,\n16459\t \"expected an aligned array of type %ld \"\n16460\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n16461\t \" with %ld dimensions, with 3 last dims \"\n16462\t \"%ld, %ld, %ld\"\n16463\t \" and 3 last strides %ld %ld, %ld.\",\n16464\t (long int) NPY_FLOAT64,\n16465\t (long int) PyArray_TYPE((PyArrayObject*) py_V241),\n16466\t (long int) PyArray_NDIM(tmp),\n16467\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n16468\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n16469\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n16470\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n16471\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n16472\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n16473\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n16474\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n16475\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n16476\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n16477\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n16478\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n16479\t );\n16480\t {\n16481\t __failure = 242;\n16482\t if (!PyErr_Occurred()) {\n16483\t PyErr_SetString(PyExc_RuntimeError,\n16484\t \"Unexpected error in an Op's C code. \"\n16485\t \"No Python exception was set.\");\n16486\t }\n16487\t goto __label_242;}\n16488\t }\n16489\t // This is a TypeError to be consistent with DEBUG_MODE\n16490\t // Note: DEBUG_MODE also tells the name of the container\n16491\t if (PyArray_TYPE((PyArrayObject*) py_V241) != NPY_FLOAT64) {\n16492\t PyErr_Format(PyExc_TypeError,\n16493\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n16494\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V241));\n16495\t {\n16496\t __failure = 242;\n16497\t if (!PyErr_Occurred()) {\n16498\t PyErr_SetString(PyExc_RuntimeError,\n16499\t \"Unexpected error in an Op's C code. \"\n16500\t \"No Python exception was set.\");\n16501\t }\n16502\t goto __label_242;}\n16503\t }\n16504\t \n16505\t V241 = (PyArrayObject*)(py_V241);\n16506\t Py_XINCREF(V241);\n16507\t \n16508\t{\n16509\t\n16510\t py_V243 = PyList_GET_ITEM(storage_V243, 0);\n16511\t {Py_XINCREF(py_V243);}\n16512\t \n16513\t V243 = NULL;\n16514\t if (py_V243 == Py_None) {\n16515\t // We can either fail here or set V243 to NULL and rely on Ops\n16516\t // using tensors to handle the NULL case, but if they fail to do so\n16517\t // they'll end up with nasty segfaults, so this is public service.\n16518\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n16519\t {\n16520\t __failure = 244;\n16521\t if (!PyErr_Occurred()) {\n16522\t PyErr_SetString(PyExc_RuntimeError,\n16523\t \"Unexpected error in an Op's C code. \"\n16524\t \"No Python exception was set.\");\n16525\t }\n16526\t goto __label_244;}\n16527\t }\n16528\t if (!PyArray_Check(py_V243)) {\n16529\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n16530\t {\n16531\t __failure = 244;\n16532\t if (!PyErr_Occurred()) {\n16533\t PyErr_SetString(PyExc_RuntimeError,\n16534\t \"Unexpected error in an Op's C code. \"\n16535\t \"No Python exception was set.\");\n16536\t }\n16537\t goto __label_244;}\n16538\t }\n16539\t // We expect NPY_FLOAT64\n16540\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V243)) {\n16541\t PyArrayObject * tmp = (PyArrayObject*) py_V243;\n16542\t PyErr_Format(PyExc_NotImplementedError,\n16543\t \"expected an aligned array of type %ld \"\n16544\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n16545\t \" with %ld dimensions, with 3 last dims \"\n16546\t \"%ld, %ld, %ld\"\n16547\t \" and 3 last strides %ld %ld, %ld.\",\n16548\t (long int) NPY_FLOAT64,\n16549\t (long int) PyArray_TYPE((PyArrayObject*) py_V243),\n16550\t (long int) PyArray_NDIM(tmp),\n16551\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n16552\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n16553\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n16554\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n16555\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n16556\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n16557\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n16558\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n16559\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n16560\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n16561\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n16562\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n16563\t );\n16564\t {\n16565\t __failure = 244;\n16566\t if (!PyErr_Occurred()) {\n16567\t PyErr_SetString(PyExc_RuntimeError,\n16568\t \"Unexpected error in an Op's C code. \"\n16569\t \"No Python exception was set.\");\n16570\t }\n16571\t goto __label_244;}\n16572\t }\n16573\t // This is a TypeError to be consistent with DEBUG_MODE\n16574\t // Note: DEBUG_MODE also tells the name of the container\n16575\t if (PyArray_TYPE((PyArrayObject*) py_V243) != NPY_FLOAT64) {\n16576\t PyErr_Format(PyExc_TypeError,\n16577\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n16578\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V243));\n16579\t {\n16580\t __failure = 244;\n16581\t if (!PyErr_Occurred()) {\n16582\t PyErr_SetString(PyExc_RuntimeError,\n16583\t \"Unexpected error in an Op's C code. \"\n16584\t \"No Python exception was set.\");\n16585\t }\n16586\t goto __label_244;}\n16587\t }\n16588\t \n16589\t V243 = (PyArrayObject*)(py_V243);\n16590\t Py_XINCREF(V243);\n16591\t \n16592\t{\n16593\t\n16594\t py_V245 = PyList_GET_ITEM(storage_V245, 0);\n16595\t {Py_XINCREF(py_V245);}\n16596\t \n16597\t V245 = NULL;\n16598\t if (py_V245 == Py_None) {\n16599\t // We can either fail here or set V245 to NULL and rely on Ops\n16600\t // using tensors to handle the NULL case, but if they fail to do so\n16601\t // they'll end up with nasty segfaults, so this is public service.\n16602\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n16603\t {\n16604\t __failure = 246;\n16605\t if (!PyErr_Occurred()) {\n16606\t PyErr_SetString(PyExc_RuntimeError,\n16607\t \"Unexpected error in an Op's C code. \"\n16608\t \"No Python exception was set.\");\n16609\t }\n16610\t goto __label_246;}\n16611\t }\n16612\t if (!PyArray_Check(py_V245)) {\n16613\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n16614\t {\n16615\t __failure = 246;\n16616\t if (!PyErr_Occurred()) {\n16617\t PyErr_SetString(PyExc_RuntimeError,\n16618\t \"Unexpected error in an Op's C code. \"\n16619\t \"No Python exception was set.\");\n16620\t }\n16621\t goto __label_246;}\n16622\t }\n16623\t // We expect NPY_FLOAT64\n16624\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V245)) {\n16625\t PyArrayObject * tmp = (PyArrayObject*) py_V245;\n16626\t PyErr_Format(PyExc_NotImplementedError,\n16627\t \"expected an aligned array of type %ld \"\n16628\t \"(NPY_FLOAT64), got non-aligned array of type %ld\"\n16629\t \" with %ld dimensions, with 3 last dims \"\n16630\t \"%ld, %ld, %ld\"\n16631\t \" and 3 last strides %ld %ld, %ld.\",\n16632\t (long int) NPY_FLOAT64,\n16633\t (long int) PyArray_TYPE((PyArrayObject*) py_V245),\n16634\t (long int) PyArray_NDIM(tmp),\n16635\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n16636\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),\n16637\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n16638\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),\n16639\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n16640\t PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),\n16641\t (long int) (PyArray_NDIM(tmp) >= 3 ?\n16642\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),\n16643\t (long int) (PyArray_NDIM(tmp) >= 2 ?\n16644\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),\n16645\t (long int) (PyArray_NDIM(tmp) >= 1 ?\n16646\t PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)\n16647\t );\n16648\t {\n16649\t __failure = 246;\n16650\t if (!PyErr_Occurred()) {\n16651\t PyErr_SetString(PyExc_RuntimeError,\n16652\t \"Unexpected error in an Op's C code. \"\n16653\t \"No Python exception was set.\");\n16654\t }\n16655\t goto __label_246;}\n16656\t }\n16657\t // This is a TypeError to be consistent with DEBUG_MODE\n16658\t // Note: DEBUG_MODE also tells the name of the container\n16659\t if (PyArray_TYPE((PyArrayObject*) py_V245) != NPY_FLOAT64) {\n16660\t PyErr_Format(PyExc_TypeError,\n16661\t \"expected type_num %d (NPY_FLOAT64) got %d\",\n16662\t NPY_FLOAT64, PyArray_TYPE((PyArrayObject*) py_V245));\n16663\t {\n16664\t __failure = 246;\n16665\t if (!PyErr_Occurred()) {\n16666\t PyErr_SetString(PyExc_RuntimeError,\n16667\t \"Unexpected error in an Op's C code. \"\n16668\t \"No Python exception was set.\");\n16669\t }\n16670\t goto __label_246;}\n16671\t }\n16672\t \n16673\t V245 = (PyArrayObject*)(py_V245);\n16674\t Py_XINCREF(V245);\n16675\t \n16676\t{\n16677\t\n16678\t py_V247 = PyList_GET_ITEM(storage_V247, 0);\n16679\t {Py_XINCREF(py_V247);}\n16680\t \n16681\t V247 = NULL;\n16682\t if (py_V247 == Py_None) {\n16683\t // We can either fail here or set V247 to NULL and rely on Ops\n16684\t // using tensors to handle the NULL case, but if they fail to do so\n16685\t // they'll end up with nasty segfaults, so this is public service.\n16686\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray, not None\");\n16687\t {\n16688\t __failure = 248;\n16689\t if (!PyErr_Occurred()) {\n16690\t PyErr_SetString(PyExc_RuntimeError,\n16691\t \"Unexpected error in an Op's C code. \"\n16692\t \"No Python exception was set.\");\n16693\t }\n16694\t goto __label_248;}\n16695\t }\n16696\t if (!PyArray_Check(py_V247)) {\n16697\t PyErr_SetString(PyExc_ValueError, \"expected an ndarray\");\n16698\t {\n16699\t __failure = 248;\n16700\t if (!PyErr_Occurred()) {\n16701\t PyErr_SetString(PyExc_RuntimeError,\n16702\t \"Unexpected error in an Op's C code. \"\n16703\t \"No Python exception was set.\");\n16704\t }\n16705\t goto __label_248;}\n16706\t }\n16707\t // We expect NPY_FLOAT64\n16708\t if (!PyArray_ISALIGNED((PyArrayObject*) py_V247)) {\n16709\t PyArrayObject * tmp = (PyArrayObject*) py_V247;\n16710\t PyErr_Format(PyExc_NotImplementedError,\n16711\t
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment