works now

This commit is contained in:
Daniel Knüttel 2019-11-06 15:51:29 +01:00
parent 67c07bf2f3
commit a3e47849de

View File

@ -109,17 +109,19 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"siZ = Dagger(S)\n",
"from sympy import exp,pi, I as i\n",
"\n",
"siZ = exp(i*pi/4)*Dagger(S)\n",
"smiX = simplify(M([[1, -i], [-i, 1]]) / sqrt(2))"
]
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
@ -138,7 +140,72 @@
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAHQAAAA1CAYAAACQns/uAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFf0lEQVR4Ae2cj3XUOBDGszwKyDs6WDoIUMGFDoAOODo4XirgcR1ABzzSQaCCu6QD6ICQDsL3WzR7slZreW3Z1u5K7ykrj0fyzHyakfxnsri/vz+p5XAs8GAMVRaLxfUY49Yx0xZYiOU0xibPvYvRK60MC8hporjhoXjTz6C+7yO2LvJC9W+q31/H56rXqj+D3w8+X23vZIHP4g5x+2wh97k8cuHVNzsN3WT+rsPHTdLJicZ+ItpH9/uOX9Uh1wkvcVTHsl0DMym/suXDnFbQRS7lgVca860/ruhfRF96tGdeuzYzWsA8NMuQAo24vhSAN2qfB4MCMmBTzhzv76P6N5sFcnvonYACTNbQj4GU13iqozU8OODbu0Ppa3uOHxKe5ea9dGXpmbxkBRTppcjLmBairwFW+zLGs480gcmmkj3BSicdE6XYALLGTQ5qtpArBe771n0EEpml71/6OTUwoanN7R7gzrKDzwaoFPF3yTu1McSeFqLRTUT2f0XjVi16rxjhz0bKBmhKIil3NYeCKbkGnmfjdxsZAy+lhBvD39QR/3ZaQx0QF5KDRZ/Cwv/WhZcVoe2P+hOalm08+3au4+T8Y2q9kh4qwZllLPyfBOA/VLVZHwA4WdT/hZhsd5vk3yMGA8u80RfdvHbykNvqoQIDr+Le8Y2A9NcKQLZ7Sl+RRlv9z0S4U9/vajfOHcnBo6n1bAVUwthO7VSAcG9pAl4JpFavEz+z86n41rcrUys38vXMC2OXMe+1JSrGMwotBSieeClQCLO7FpSyiUBfvP1CQH/AYyHsc5EOPERBhVhYNdrkeibXUAncSyhAcxPhUD0UMIlSTNSwmIe2RrGwU47jFKBbwdTsZLOTLMxkgFXl3pSd8dYxk4OVx8ArrKcRsXizdCNd7yLnRiWlAOUZJWF3XVgbCZsi+Juk9fljaggwos+tP7mxj2ivVF/PYYvWNRSBHYAAu17gRa/vMf9HC29kb2Chl1eDf8pGs0z4VkCRWYL12RDR9SiK7ENYLebtUSrkHgUoh6RkBfSQ0JQuFdAK6IFZ4MDUqR5aAT0wCxyYOtVDZwRU9668lsxaKqBZzbnbYLqH5aFE1lIBzWrOboPJM0dLGamAdsNgDC5eUmRPGUk++htDk2MfU6F2tJSR6qEzzC5eeOiyo6SMVEBnANQ90LeUkf8CEQaljGQNuZp5xeR4BEbKeig9+b7qsYDp/RpRfUdJGckGqJTknqqYHI+sCG4OBpBF5udkAVRgRnM8RLccj+ebNtlfirxrY3faVRvZpPd/KdF1k9/C5lpDi8vx6GrgqfkApW/tImsuQM91sdh3qvaRFOdr6WABefCgHKDBIVcCsAVPFfusMcVX7HmnJ0sL4fabvGzj0xzHQ4qIfX81eQ5QDg81sMwbfVDMa7uA7vcrsX3hQOTTzY28HoFJFGJjOGsO0GAP7Wh5S6HoyF4Wm8BaSiJyPinsFxrfFrvzReQA5QDUvHClbfDHvNdCUHB6ukMXDr/qirtEi5fySj7HvNWv3aYQdsOv/IrJARoMqBQtMscjnCrIKVqv11WuLyn4li0QpncQbovIAcqxhmK74nI8EGqEwtoJcLH9QiMMd722xsqaA5QL0OJyPLoatCufC9ln4v9EHx3bY04Ot4LpeTV8WwuTRHVwDlAWQCVIcTkeWy3X/8QqKUm68uqLTdI3byjAJeyuCxNAlbWVNXiyMngN9SQtKsfDkytLU0Dy7+2oPJjHm9brKG0HIMCuN4Ci935431fobIBKeNaVcPfXV64i+0nHrc+kdW7jQcMcSmQJuXMIXq8Zt4B56JKQ4bM4j/NJtV2QBUK8JNoKP17HsLizyPuF/2s7efz3BajtdgsIUJ5MNTZiOv7yCyjWjW+RDHHDAAAAAElFTkSuQmCC\n",
"text/latex": [
"$\\displaystyle \\left[\\begin{matrix}e^{\\frac{i \\pi}{4}} & 0\\\\0 & - i e^{\\frac{i \\pi}{4}}\\end{matrix}\\right]$"
],
"text/plain": [
"⎡ ⅈ⋅π ⎤\n",
"⎢ ─── ⎥\n",
"⎢ 4 ⎥\n",
"⎢ℯ 0 ⎥\n",
"⎢ ⎥\n",
"⎢ ⅈ⋅π⎥\n",
"⎢ ───⎥\n",
"⎢ 4 ⎥\n",
"⎣ 0 -ⅈ⋅ℯ ⎦"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"eval_str(\"s\")"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAEIAAAAzCAYAAAAjKt6MAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADZElEQVRoBe1bi5HTMBC1GQq4gQ5CB3wqINcBRwdABzCpgDk6ODpgSAc5KmDuOjg6IJMOwntm90ZyZEtrK87EI80osWVpd9/TriJrJ3VVVReoB2W/3+8OGmfQUNd1EC+hPaDuW/UGRFRzrMC5aWEl9s0TfLBcAnTt1E//m+f3CYweViBssCoR80NsRPTU2L9CjH3GmBdg9uReA1uuxf6/tAn1Gnb9kTbTl5kISCcBa5OWI3QGCXcQ+xXAG1tkEbzDN13fTIaZCCgh8yctAPsRBlwoCTQG1zu0k5Qb1Eu2Wcq5rhFXAHkfAPobbUvxjsDj7qZzJWIJSNsALN378LmpJIWGMEx3ZFg8wA2/mbRk7Jw428+sKlM9YiXgf0LByqokc38FqbPvilcv6dw9up3d6ygRmIEFBjD2WBib5hW5GTntx3OruigRELh1VmeGxw+rksz9ddZDYtVbuK8wlSgR/FmiRHjGO5H83aQhc2e1B2JD7q9tZq+NEuHg4NqwdgxxHk1+eQuNDNl2UY/gc1NJIkJW6peQ3IQF7nVra1KWsTMX7dcBea/Qdj9kspKIUKVQsJbFk6/uJyuwg+G5dcKVocuweI/6YYhhSfsIKL6FIla+cO3EkCH6co7h7K9gk4bIG9y/hW2hHWdUbxIRlAIF5v17VPuIDrCHi/iXESK8oamh4Q2a400hQma1EFGI8AO8eETxiOIRPgPFI3w+yhpRPML3iKQtNvbz+rY5OpHiq5/mTt6RepNSUSIgJGsiZRroB1qiSaleIkBC9kTKgYkTNOAFLZqUii2W2RMpE+AepCJGxBJSQ4elfAVm4fNZlM7QQFjoQWgfUD0j7Otzkmdif3JSqs8jFKTOvgtIvSSFLHfclNempFQfESlGmxMpKULH9oE3LCDDlJTqDA0I0lkP2aXeYk6khISF2sS1f+GZxeuu5MyynZSKHul1EsEzQRhDG0OGaJs5kRICHWqTM0ke0JqLjDUlpWKhkT2RYkY1bkByUipGRPZEyjhc6aMltJKTUr1EwMWyJ1LSoYzu2WTCgCEpKdW5RjhmZE2kOHKPegkCTEmpKBGy8ERX3aOiGigcticnpXpDY6D+sxxWiJBpK0QUIvwILh4hfOivxkI2II80ya/F4/1cLto4gUtfF8ofV0DG5h8Y3m3ea2xiTwAAAABJRU5ErkJggg==\n",
"text/latex": [
"$\\displaystyle \\left[\\begin{matrix}i & 0\\\\0 & - i\\end{matrix}\\right]$"
],
"text/plain": [
"⎡ⅈ 0 ⎤\n",
"⎢ ⎥\n",
"⎣0 -ⅈ⎦"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"eval_str(\"ss\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
@ -153,150 +220,68 @@
},
{
"cell_type": "code",
"execution_count": 7,
"execution_count": 27,
"metadata": {},
"outputs": [
{
"ename": "KeyboardInterrupt",
"evalue": "",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/assumptions.py\u001b[0m in \u001b[0;36mgetit\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 243\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 244\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_assumptions\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfact\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 245\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mKeyError\u001b[0m: 'zero'",
"\nDuring handling of the above exception, another exception occurred:\n",
"\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/assumptions.py\u001b[0m in \u001b[0;36mgetit\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 243\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 244\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_assumptions\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfact\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 245\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mKeyError\u001b[0m: 'zero'",
"\nDuring handling of the above exception, another exception occurred:\n",
"\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/assumptions.py\u001b[0m in \u001b[0;36mgetit\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 243\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 244\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_assumptions\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfact\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 245\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mKeyError\u001b[0m: 'zero'",
"\nDuring handling of the above exception, another exception occurred:\n",
"\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/assumptions.py\u001b[0m in \u001b[0;36mgetit\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 243\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 244\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_assumptions\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfact\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 245\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mKeyError\u001b[0m: 'integer'",
"\nDuring handling of the above exception, another exception occurred:\n",
"\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/assumptions.py\u001b[0m in \u001b[0;36mgetit\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 243\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 244\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_assumptions\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfact\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 245\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mKeyError\u001b[0m: 'rational'",
"\nDuring handling of the above exception, another exception occurred:\n",
"\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-7-f355587f2748>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 20\u001b[0m \u001b[0ms\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0mm\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 21\u001b[0m \u001b[0mstrs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 22\u001b[0;31m \u001b[0mresults\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mget_product_index\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0meval_str\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 23\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 24\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m<ipython-input-4-f05fcde8b41e>\u001b[0m in \u001b[0;36mget_product_index\u001b[0;34m(a)\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mc\u001b[0m \u001b[0;32min\u001b[0m \u001b[0menumerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mC_L\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mtest\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mc\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mDagger\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0;32mif\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msimplify\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgetitem\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtest\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 5\u001b[0m \u001b[0;32mcontinue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;32mif\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msimplify\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgetitem\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtest\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0mgetitem\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtest\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/simplify/simplify.py\u001b[0m in \u001b[0;36msimplify\u001b[0;34m(expr, ratio, measure, rational, inverse)\u001b[0m\n\u001b[1;32m 558\u001b[0m \u001b[0mexpr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mbottom_up\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mexpr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mw\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mgetattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mw\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'normal'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mlambda\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mw\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 559\u001b[0m \u001b[0mexpr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mMul\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mpowsimp\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mexpr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mas_content_primitive\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 560\u001b[0;31m \u001b[0m_e\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcancel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mexpr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 561\u001b[0m \u001b[0mexpr1\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mshorter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_e\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_mexpand\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_e\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcancel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# issue 6829\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 562\u001b[0m \u001b[0mexpr2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mshorter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtogether\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mexpr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdeep\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtogether\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mexpr1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdeep\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/polys/polytools.py\u001b[0m in \u001b[0;36mcancel\u001b[0;34m(f, *gens, **args)\u001b[0m\n\u001b[1;32m 6604\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_Number\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mRelational\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mExpr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6605\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 6606\u001b[0;31m \u001b[0mf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfactor_terms\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mradical\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6607\u001b[0m \u001b[0mp\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mq\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mas_numer_denom\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6608\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/exprtools.py\u001b[0m in \u001b[0;36mfactor_terms\u001b[0;34m(expr, radical, clear, fraction, sign)\u001b[0m\n\u001b[1;32m 1200\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mrv\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1201\u001b[0m \u001b[0mexpr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msympify\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mexpr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1202\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mdo\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mexpr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1203\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1204\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/exprtools.py\u001b[0m in \u001b[0;36mdo\u001b[0;34m(expr)\u001b[0m\n\u001b[1;32m 1173\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mfactor_sum\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mexpr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mradical\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mradical\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mclear\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mclear\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfraction\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfraction\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msign\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msign\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1174\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1175\u001b[0;31m \u001b[0mcont\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mp\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mexpr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mas_content_primitive\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mradical\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mradical\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mclear\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mclear\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1176\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_Add\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1177\u001b[0m \u001b[0mlist_args\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mdo\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0ma\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mAdd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmake_args\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mp\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/add.py\u001b[0m in \u001b[0;36mas_content_primitive\u001b[0;34m(self, radical, clear)\u001b[0m\n\u001b[1;32m 1034\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mG\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1035\u001b[0m \u001b[0mG\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mMul\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mG\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1036\u001b[0;31m \u001b[0margs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mai\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0mG\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mai\u001b[0m \u001b[0;32min\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1037\u001b[0m \u001b[0mprim\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mG\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mprim\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1038\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/add.py\u001b[0m in \u001b[0;36m<listcomp>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 1034\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mG\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1035\u001b[0m \u001b[0mG\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mMul\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mG\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1036\u001b[0;31m \u001b[0margs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mai\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0mG\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mai\u001b[0m \u001b[0;32min\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1037\u001b[0m \u001b[0mprim\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mG\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mprim\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1038\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/decorators.py\u001b[0m in \u001b[0;36m__sympifyit_wrapper\u001b[0;34m(a, b)\u001b[0m\n\u001b[1;32m 89\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mhasattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'_op_priority'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 90\u001b[0m \u001b[0mb\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msympify\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstrict\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 91\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 92\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mSympifyError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 93\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mretval\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/decorators.py\u001b[0m in \u001b[0;36mbinary_op_wrapper\u001b[0;34m(self, other)\u001b[0m\n\u001b[1;32m 127\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mf\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 128\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 129\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mother\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 130\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mbinary_op_wrapper\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 131\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mpriority_decorator\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/expr.py\u001b[0m in \u001b[0;36m__div__\u001b[0;34m(self, other)\u001b[0m\n\u001b[1;32m 186\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mcall_highest_priority\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'__rdiv__'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 187\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__div__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mother\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 188\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mMul\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mPow\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mother\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mNegativeOne\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 189\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 190\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0m_sympifyit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'other'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mNotImplemented\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/cache.py\u001b[0m in \u001b[0;36mwrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 92\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mwrapper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 93\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 94\u001b[0;31m \u001b[0mretval\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 95\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mTypeError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 96\u001b[0m \u001b[0mretval\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/operations.py\u001b[0m in \u001b[0;36m__new__\u001b[0;34m(cls, *args, **options)\u001b[0m\n\u001b[1;32m 45\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 46\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 47\u001b[0;31m \u001b[0mc_part\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnc_part\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder_symbols\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcls\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mflatten\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 48\u001b[0m \u001b[0mis_commutative\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mnc_part\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 49\u001b[0m \u001b[0mobj\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcls\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_from_args\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mc_part\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mnc_part\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mis_commutative\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/mul.py\u001b[0m in \u001b[0;36mflatten\u001b[0;34m(cls, seq)\u001b[0m\n\u001b[1;32m 183\u001b[0m \u001b[0mseq\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mb\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 184\u001b[0m \u001b[0;32massert\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0ma\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0mS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mOne\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 185\u001b[0;31m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_zero\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_Rational\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 186\u001b[0m \u001b[0mr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mb\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mb\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mas_coeff_Mul\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 187\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mb\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_Add\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/assumptions.py\u001b[0m in \u001b[0;36mgetit\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 246\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_assumptions\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdefault_assumptions\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 247\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_assumptions\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdefault_assumptions\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 248\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_ask\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfact\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 249\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 250\u001b[0m \u001b[0mgetit\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfunc_name\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mas_property\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfact\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/assumptions.py\u001b[0m in \u001b[0;36m_ask\u001b[0;34m(fact, obj)\u001b[0m\n\u001b[1;32m 289\u001b[0m \u001b[0;32mpass\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 290\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 291\u001b[0;31m \u001b[0ma\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mevaluate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 292\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0ma\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 293\u001b[0m \u001b[0massumptions\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdeduce_all_facts\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfact\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/mul.py\u001b[0m in \u001b[0;36m_eval_is_zero\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1129\u001b[0m \u001b[0mzero\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0minfinite\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1130\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0ma\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1131\u001b[0;31m \u001b[0mz\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_zero\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1132\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mz\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1133\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0minfinite\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/assumptions.py\u001b[0m in \u001b[0;36mgetit\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 246\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_assumptions\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdefault_assumptions\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 247\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_assumptions\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdefault_assumptions\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 248\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_ask\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfact\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 249\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 250\u001b[0m \u001b[0mgetit\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfunc_name\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mas_property\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfact\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/assumptions.py\u001b[0m in \u001b[0;36m_ask\u001b[0;34m(fact, obj)\u001b[0m\n\u001b[1;32m 301\u001b[0m \u001b[0;32mcontinue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 302\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mpk\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mhandler_map\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 303\u001b[0;31m \u001b[0m_ask\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 304\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 305\u001b[0m \u001b[0;31m# we might have found the value of fact\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/assumptions.py\u001b[0m in \u001b[0;36m_ask\u001b[0;34m(fact, obj)\u001b[0m\n\u001b[1;32m 301\u001b[0m \u001b[0;32mcontinue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 302\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mpk\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mhandler_map\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 303\u001b[0;31m \u001b[0m_ask\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 304\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 305\u001b[0m \u001b[0;31m# we might have found the value of fact\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/assumptions.py\u001b[0m in \u001b[0;36m_ask\u001b[0;34m(fact, obj)\u001b[0m\n\u001b[1;32m 301\u001b[0m \u001b[0;32mcontinue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 302\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mpk\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mhandler_map\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 303\u001b[0;31m \u001b[0m_ask\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 304\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 305\u001b[0m \u001b[0;31m# we might have found the value of fact\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/assumptions.py\u001b[0m in \u001b[0;36m_ask\u001b[0;34m(fact, obj)\u001b[0m\n\u001b[1;32m 289\u001b[0m \u001b[0;32mpass\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 290\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 291\u001b[0;31m \u001b[0ma\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mevaluate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 292\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0ma\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 293\u001b[0m \u001b[0massumptions\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdeduce_all_facts\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfact\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/add.py\u001b[0m in \u001b[0;36m_eval_is_negative\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 679\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0msympy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcore\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexprtools\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0m_monotonic_sign\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 680\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_number\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 681\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mAdd\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_eval_is_negative\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 682\u001b[0m \u001b[0mc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mas_coeff_Add\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 683\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_zero\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/expr.py\u001b[0m in \u001b[0;36m_eval_is_negative\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 816\u001b[0m \u001b[0;31m# check to see that we can get a value\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 817\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 818\u001b[0;31m \u001b[0mn2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_eval_evalf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 819\u001b[0m \u001b[0;31m# XXX: This shouldn't be caught here\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 820\u001b[0m \u001b[0;31m# Catches ValueError: hypsum() failed to converge to the requested\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/operations.py\u001b[0m in \u001b[0;36m_eval_evalf\u001b[0;34m(self, prec)\u001b[0m\n\u001b[1;32m 336\u001b[0m \u001b[0margs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 337\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0ma\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 338\u001b[0;31m \u001b[0mnewa\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_eval_evalf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprec\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 339\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mnewa\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 340\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/mul.py\u001b[0m in \u001b[0;36m_eval_evalf\u001b[0;34m(self, prec)\u001b[0m\n\u001b[1;32m 658\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mc\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0mS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mNegativeOne\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 659\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mm\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_Mul\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 660\u001b[0;31m \u001b[0mrv\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0mAssocOp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_eval_evalf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mprec\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 661\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 662\u001b[0m \u001b[0mmnew\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mm\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_eval_evalf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprec\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/operations.py\u001b[0m in \u001b[0;36m_eval_evalf\u001b[0;34m(self, prec)\u001b[0m\n\u001b[1;32m 308\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0;34m.\u001b[0m\u001b[0mfunction\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mAppliedUndef\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 309\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mMul\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mAdd\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 310\u001b[0;31m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtail\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mas_independent\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mSymbol\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mAppliedUndef\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 311\u001b[0m \u001b[0;31m# if x is an AssocOp Function then the _evalf below will\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 312\u001b[0m \u001b[0;31m# call _eval_evalf (here) so we must break the recursion\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/expr.py\u001b[0m in \u001b[0;36mas_independent\u001b[0;34m(self, *deps, **hint)\u001b[0m\n\u001b[1;32m 1743\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0msympy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mutilities\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0miterables\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0msift\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1744\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1745\u001b[0;31m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_zero\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1746\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mZero\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mZero\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1747\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/assumptions.py\u001b[0m in \u001b[0;36mgetit\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 246\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_assumptions\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdefault_assumptions\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 247\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_assumptions\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdefault_assumptions\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 248\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_ask\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfact\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 249\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 250\u001b[0m \u001b[0mgetit\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfunc_name\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mas_property\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfact\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/assumptions.py\u001b[0m in \u001b[0;36m_ask\u001b[0;34m(fact, obj)\u001b[0m\n\u001b[1;32m 301\u001b[0m \u001b[0;32mcontinue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 302\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mpk\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mhandler_map\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 303\u001b[0;31m \u001b[0m_ask\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 304\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 305\u001b[0m \u001b[0;31m# we might have found the value of fact\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/assumptions.py\u001b[0m in \u001b[0;36m_ask\u001b[0;34m(fact, obj)\u001b[0m\n\u001b[1;32m 301\u001b[0m \u001b[0;32mcontinue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 302\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mpk\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mhandler_map\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 303\u001b[0;31m \u001b[0m_ask\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 304\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 305\u001b[0m \u001b[0;31m# we might have found the value of fact\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/assumptions.py\u001b[0m in \u001b[0;36m_ask\u001b[0;34m(fact, obj)\u001b[0m\n\u001b[1;32m 289\u001b[0m \u001b[0;32mpass\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 290\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 291\u001b[0;31m \u001b[0ma\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mevaluate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 292\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0ma\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 293\u001b[0m \u001b[0massumptions\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdeduce_all_facts\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfact\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/mul.py\u001b[0m in \u001b[0;36m_eval_is_composite\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1354\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1355\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_eval_is_composite\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1356\u001b[0;31m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_integer\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_positive\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1357\u001b[0m \"\"\"\n\u001b[1;32m 1358\u001b[0m \u001b[0mHere\u001b[0m \u001b[0mwe\u001b[0m \u001b[0mcount\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mnumber\u001b[0m \u001b[0mof\u001b[0m \u001b[0marguments\u001b[0m \u001b[0mthat\u001b[0m \u001b[0mhave\u001b[0m \u001b[0ma\u001b[0m \u001b[0mminimum\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/assumptions.py\u001b[0m in \u001b[0;36mgetit\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 246\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_assumptions\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdefault_assumptions\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 247\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_assumptions\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdefault_assumptions\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 248\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_ask\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfact\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 249\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 250\u001b[0m \u001b[0mgetit\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfunc_name\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mas_property\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfact\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/assumptions.py\u001b[0m in \u001b[0;36m_ask\u001b[0;34m(fact, obj)\u001b[0m\n\u001b[1;32m 289\u001b[0m \u001b[0;32mpass\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 290\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 291\u001b[0;31m \u001b[0ma\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mevaluate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 292\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0ma\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 293\u001b[0m \u001b[0massumptions\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdeduce_all_facts\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfact\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/mul.py\u001b[0m in \u001b[0;36m_eval_is_integer\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1144\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1145\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_eval_is_integer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1146\u001b[0;31m \u001b[0mis_rational\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_rational\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1147\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1148\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mis_rational\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/assumptions.py\u001b[0m in \u001b[0;36mgetit\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 246\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_assumptions\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdefault_assumptions\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 247\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_assumptions\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdefault_assumptions\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 248\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_ask\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfact\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 249\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 250\u001b[0m \u001b[0mgetit\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfunc_name\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mas_property\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfact\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/assumptions.py\u001b[0m in \u001b[0;36m_ask\u001b[0;34m(fact, obj)\u001b[0m\n\u001b[1;32m 301\u001b[0m \u001b[0;32mcontinue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 302\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mpk\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mhandler_map\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 303\u001b[0;31m \u001b[0m_ask\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 304\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 305\u001b[0m \u001b[0;31m# we might have found the value of fact\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/assumptions.py\u001b[0m in \u001b[0;36m_ask\u001b[0;34m(fact, obj)\u001b[0m\n\u001b[1;32m 301\u001b[0m \u001b[0;32mcontinue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 302\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mpk\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mhandler_map\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 303\u001b[0;31m \u001b[0m_ask\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 304\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 305\u001b[0m \u001b[0;31m# we might have found the value of fact\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/assumptions.py\u001b[0m in \u001b[0;36m_ask\u001b[0;34m(fact, obj)\u001b[0m\n\u001b[1;32m 301\u001b[0m \u001b[0;32mcontinue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 302\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mpk\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mhandler_map\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 303\u001b[0;31m \u001b[0m_ask\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 304\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 305\u001b[0m \u001b[0;31m# we might have found the value of fact\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/assumptions.py\u001b[0m in \u001b[0;36m_ask\u001b[0;34m(fact, obj)\u001b[0m\n\u001b[1;32m 301\u001b[0m \u001b[0;32mcontinue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 302\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mpk\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mhandler_map\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 303\u001b[0;31m \u001b[0m_ask\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 304\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 305\u001b[0m \u001b[0;31m# we might have found the value of fact\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/assumptions.py\u001b[0m in \u001b[0;36m_ask\u001b[0;34m(fact, obj)\u001b[0m\n\u001b[1;32m 301\u001b[0m \u001b[0;32mcontinue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 302\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mpk\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mhandler_map\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 303\u001b[0;31m \u001b[0m_ask\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 304\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 305\u001b[0m \u001b[0;31m# we might have found the value of fact\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.local/lib/python3.7/site-packages/sympy/core/assumptions.py\u001b[0m in \u001b[0;36m_ask\u001b[0;34m(fact, obj)\u001b[0m\n\u001b[1;32m 296\u001b[0m \u001b[0;31m# Try assumption's prerequisites\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 297\u001b[0m \u001b[0mprereq\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_assume_rules\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprereq\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfact\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 298\u001b[0;31m \u001b[0mshuffle\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprereq\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 299\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mpk\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mprereq\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 300\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mpk\u001b[0m \u001b[0;32min\u001b[0m \u001b[0massumptions\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/lib/python3.7/random.py\u001b[0m in \u001b[0;36mshuffle\u001b[0;34m(self, x, random)\u001b[0m\n\u001b[1;32m 275\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mreversed\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 276\u001b[0m \u001b[0;31m# pick an element in x[:i+1] with which to exchange x[i]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 277\u001b[0;31m \u001b[0mj\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mrandbelow\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 278\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mj\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mj\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 279\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/lib/python3.7/random.py\u001b[0m in \u001b[0;36m_randbelow\u001b[0;34m(self, n, int, maxsize, type, Method, BuiltinMethod)\u001b[0m\n\u001b[1;32m 233\u001b[0m \u001b[0mk\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbit_length\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# don't use (n-1) here because n can be 1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 234\u001b[0m \u001b[0mr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgetrandbits\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# 0 <= r < 2**k\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 235\u001b[0;31m \u001b[0;32mwhile\u001b[0m \u001b[0mr\u001b[0m \u001b[0;34m>=\u001b[0m \u001b[0mn\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 236\u001b[0m \u001b[0mr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgetrandbits\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 237\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mKeyboardInterrupt\u001b[0m: "
]
}
],
"outputs": [],
"source": [
"from itertools import product\n",
"from collections import defaultdict\n",
"\n",
"results = defaultdict(list)\n",
"results = defaultdict(set)\n",
"\n",
"strs = [\"\"]\n",
"def recursive_xs_products(length):\n",
" if(length == 1):\n",
" yield \"x\"\n",
" yield \"s\"\n",
" else:\n",
"\n",
"#for repeat in range(1, 6):\n",
" for p in recursive_xs_products(length - 1):\n",
" yield p\n",
" yield p + \"x\"\n",
" yield p + \"s\"\n",
" \n",
"def have_all(dct):\n",
" for i in range(24):\n",
" if(i not in dct):\n",
" return False\n",
" return True\n",
"\n",
"for s in strs:\n",
" for m in \"sx\":\n",
" if(have_all(results)):\n",
" break\n",
" s += m\n",
" strs.append(s)\n",
" results[get_product_index(eval_str(s))].append(s)\n",
" \n",
" \n",
"for p in recursive_xs_products(5):\n",
" results[get_product_index(eval_str(p))] |= {p}\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 8,
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"defaultdict(list,\n",
" {8: ['s'],\n",
" None: ['sx',\n",
" 'ssx',\n",
" 'sxs',\n",
" 'sxsx',\n",
" 'sssx',\n",
" 'ssxs',\n",
" 'ssxsx',\n",
" 'sxss',\n",
" 'sxsxs',\n",
" 'sxsxsx',\n",
" 'ssssx',\n",
" 'sssxs',\n",
" 'sssxsx',\n",
" 'ssxss',\n",
" 'ssxsxs',\n",
" 'ssxsxsx',\n",
" 'sxsss',\n",
" 'sxsssx',\n",
" 'sxssxsx',\n",
" 'sxsxss',\n",
" 'sxsxssx',\n",
" 'sxsxsxs'],\n",
" 5: ['ss'],\n",
" 1: ['sss', 'sxssx'],\n",
" 2: ['ssss', 'ssxssx', 'sxssxs']})"
"defaultdict(set,\n",
" {12: {'ssssx', 'x', 'xssss', 'xxxxx'},\n",
" 14: {'sxxs', 'xx'},\n",
" 22: {'xs'},\n",
" 6: {'ssxss', 'sxsxs', 'sxxsx', 'xsxxs', 'xxx'},\n",
" 16: {'sssxx', 'sxxss', 'xxs'},\n",
" 20: {'sxs', 'xsx'},\n",
" 19: {'ssxxx', 'xss', 'xxssx'},\n",
" 2: {'ssss', 'xxxx'},\n",
" 3: {'xxxs'},\n",
" 17: {'sxss', 'xsxs', 'xxsx'},\n",
" 21: {'ssxx', 'xxss'},\n",
" 9: {'ssxs', 'sxsx', 'xsxx'},\n",
" 5: {'ss', 'xssx'},\n",
" 15: {'xsss'},\n",
" 8: {'s', 'sssss', 'sxxxx', 'xxxxs'},\n",
" 13: {'sxsss', 'xsxss', 'xxsxs', 'xxxsx'},\n",
" 11: {'ssx', 'xssxx', 'xxxss'},\n",
" 1: {'sss', 'sxssx', 'xssxs', 'xsxsx', 'xxsxx'},\n",
" 18: {'ssxxs', 'sxx', 'xxsss'},\n",
" 7: {'sssxs', 'ssxsx', 'sxsxx', 'xsxxx'},\n",
" 0: {'sxxxs', 'xsssx'},\n",
" 23: {'sx'},\n",
" 4: {'sxxx'},\n",
" 10: {'sssx'}})"
]
},
"execution_count": 8,
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
@ -304,6 +289,157 @@
"source": [
"results"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [],
"source": [
"lookup_table = [min(v) for k,v in sorted(results.items(), key=lambda x:x[0])]"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['sxxxs',\n",
" 'sss',\n",
" 'ssss',\n",
" 'xxxs',\n",
" 'sxxx',\n",
" 'ss',\n",
" 'ssxss',\n",
" 'sssxs',\n",
" 's',\n",
" 'ssxs',\n",
" 'sssx',\n",
" 'ssx',\n",
" 'ssssx',\n",
" 'sxsss',\n",
" 'sxxs',\n",
" 'xsss',\n",
" 'sssxx',\n",
" 'sxss',\n",
" 'ssxxs',\n",
" 'ssxxx',\n",
" 'sxs',\n",
" 'ssxx',\n",
" 'xs',\n",
" 'sx']"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lookup_table"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle \\left[\\begin{matrix}- \\frac{\\sqrt{2} i}{2} & - \\frac{\\sqrt{2} i}{2}\\\\- \\frac{\\sqrt{2} i}{2} & \\frac{\\sqrt{2} i}{2}\\end{matrix}\\right]$"
],
"text/plain": [
"⎡-√2⋅ -√2⋅ ⎤\n",
"⎢────── ──────⎥\n",
"⎢ 2 2 ⎥\n",
"⎢ ⎥\n",
"⎢-√2⋅ √2⋅ ⎥\n",
"⎢────── ──── ⎥\n",
"⎣ 2 2 ⎦"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"eval_str(\"sxxxs\")"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle \\left[\\begin{matrix}\\frac{i e^{\\frac{i \\pi}{4}}}{2} + \\frac{e^{\\frac{i \\pi}{4}}}{2} & \\frac{i e^{\\frac{i \\pi}{4}}}{2} + \\frac{e^{\\frac{i \\pi}{4}}}{2}\\\\\\frac{i e^{\\frac{i \\pi}{4}}}{2} + \\frac{e^{\\frac{i \\pi}{4}}}{2} & - \\frac{e^{\\frac{i \\pi}{4}}}{2} - \\frac{i e^{\\frac{i \\pi}{4}}}{2}\\end{matrix}\\right]$"
],
"text/plain": [
"⎡ ⅈ⋅π ⅈ⋅π ⅈ⋅π ⅈ⋅π ⎤\n",
"⎢ ─── ─── ─── ─── ⎥\n",
"⎢ 4 4 4 4 ⎥\n",
"⎢ⅈ⋅ℯ ⅈ⋅ℯ ⎥\n",
"⎢────── + ──── ────── + ──── ⎥\n",
"⎢ 2 2 2 2 ⎥\n",
"⎢ ⎥\n",
"⎢ ⅈ⋅π ⅈ⋅π ⅈ⋅π ⅈ⋅π⎥\n",
"⎢ ─── ─── ─── ───⎥\n",
"⎢ 4 4 4 4 ⎥\n",
"⎢ⅈ⋅ℯ ⅈ⋅ℯ ⎥\n",
"⎢────── + ──── - ──── - ──────⎥\n",
"⎣ 2 2 2 2 ⎦"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"eval_str(\"xsssx\")"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"lookup_table_lengths = [len(l) for l in lookup_table]"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle \\left[ 5, \\ 3, \\ 4, \\ 4, \\ 4, \\ 2, \\ 5, \\ 5, \\ 1, \\ 4, \\ 4, \\ 3, \\ 5, \\ 5, \\ 4, \\ 4, \\ 5, \\ 4, \\ 5, \\ 5, \\ 3, \\ 4, \\ 2, \\ 2\\right]$"
],
"text/plain": [
"[5, 3, 4, 4, 4, 2, 5, 5, 1, 4, 4, 3, 5, 5, 4, 4, 5, 4, 5, 5, 3, 4, 2, 2]"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lookup_table_lengths"
]
}
],
"metadata": {