From 3c4c435ec4acc09b956202b03c1ec64d02443283 Mon Sep 17 00:00:00 2001 From: Andrew Luo Date: Mon, 15 Jan 2024 12:27:58 -0500 Subject: [PATCH 01/17] Add msolve solutions solver --- examples/Sage-ACSV-Tests.ipynb | 84 ++++++++++++++++++++++++++++++---- sage_acsv/asymptotics.py | 12 +++-- sage_acsv/kronecker.py | 29 +++++++++++- sage_acsv/msolve.py | 34 ++++++++++++++ 4 files changed, 145 insertions(+), 14 deletions(-) create mode 100644 sage_acsv/msolve.py diff --git a/examples/Sage-ACSV-Tests.ipynb b/examples/Sage-ACSV-Tests.ipynb index 2a0814c..b9791ff 100644 --- a/examples/Sage-ACSV-Tests.ipynb +++ b/examples/Sage-ACSV-Tests.ipynb @@ -35,6 +35,14 @@ "execution_count": 3, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2*u_ - 17\n", + "[1, 1, 2, 1]\n" + ] + }, { "data": { "text/plain": [ @@ -49,7 +57,7 @@ "source": [ "# Binomial coefficients\n", "F1 = 1/(1-x-y)\n", - "diagonal_asy(F1, as_symbolic=True)" + "diagonal_asy(F1, as_symbolic=True, use_msolve=False)" ] }, { @@ -57,10 +65,18 @@ "execution_count": 4, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2*u_ - 1\n", + "[1, 1, 2, -2*u_]\n" + ] + }, { "data": { "text/plain": [ - "4*4^n/(pi^1.0*n^1.0)" + "4^n/(sqrt(pi)*sqrt(n))" ] }, "execution_count": 4, @@ -68,6 +84,36 @@ "output_type": "execute_result" } ], + "source": [ + "# Binomial coefficients\n", + "F1 = 1/(1-x-y)\n", + "diagonal_asy(F1, as_symbolic=True, use_msolve=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "u_^8 + 120*u_^7 + 7118*u_^6 + 262620*u_^5 + 5708481*u_^4 + 61978860*u_^3 - 288730156*u_^2 - 15678691680*u_ + 31916262400\n", + "[-8*u_^6 - 720*u_^5 - 28380*u_^4 - 622800*u_^3 - 18113604*u_^2 - 360348120*u_ - 3172580200, -32*u_^6 - 2880*u_^5 - 113520*u_^4 - 2491200*u_^3 - 72454416*u_^2 - 1441392480*u_ - 12690320800, -32*u_^6 - 2880*u_^5 - 113520*u_^4 - 2491200*u_^3 - 72454416*u_^2 - 1441392480*u_ - 12690320800, 84*u_^6 + 7560*u_^5 + 171024*u_^4 - 1078560*u_^3 - 201505332*u_^2 - 4539207960*u_ + 25774845600, 8*u_^7 + 840*u_^6 + 42708*u_^5 + 1313100*u_^4 + 22833924*u_^3 + 185936580*u_^2 - 577460312*u_ - 15678691680]\n" + ] + }, + { + "data": { + "text/plain": [ + "4*4^n/(pi*n)" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Lattice paths enumeration sequence (on main diagonal)\n", "F2 = (1+x)*(1+y)/(1-w*x*y*(x+y+1/x+1/y))\n", @@ -278,12 +324,34 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn [5], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m#Does not finish computing (hangs on computing GB for critical point system)\u001b[39;00m\n\u001b[1;32m 2\u001b[0m F \u001b[38;5;241m=\u001b[39m (Integer(\u001b[38;5;241m1\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m6\u001b[39m)\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m2\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m2\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m))\u001b[38;5;241m/\u001b[39m(Integer(\u001b[38;5;241m1\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m-\u001b[39my\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m2\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m6\u001b[39m)\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m6\u001b[39m))\n\u001b[0;32m----> 3\u001b[0m \u001b[43mdiagonal_asy\u001b[49m\u001b[43m(\u001b[49m\u001b[43mF\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mas_symbolic\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/.sage/local/lib/python3.11/site-packages/sage_acsv/asymptotics.py:165\u001b[0m, in \u001b[0;36mdiagonal_asy\u001b[0;34m(F, r, linear_form, M, return_points, output_format, as_symbolic)\u001b[0m\n\u001b[1;32m 162\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m _ \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(MAX_MIN_CRIT_RETRIES):\n\u001b[1;32m 163\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 164\u001b[0m \u001b[38;5;66;03m# Find minimal critical points in Kronecker Representation\u001b[39;00m\n\u001b[0;32m--> 165\u001b[0m min_crit_pts \u001b[38;5;241m=\u001b[39m \u001b[43mMinimalCriticalCombinatorial\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 166\u001b[0m \u001b[43m \u001b[49m\u001b[43mG\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mH\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mall_variables\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 167\u001b[0m \u001b[43m \u001b[49m\u001b[43mr\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mr\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 168\u001b[0m \u001b[43m \u001b[49m\u001b[43mlinear_form\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlinear_form\u001b[49m\n\u001b[1;32m 169\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 170\u001b[0m \u001b[38;5;28;01mbreak\u001b[39;00m\n\u001b[1;32m 171\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n", + "File \u001b[0;32m~/.sage/local/lib/python3.11/site-packages/sage_acsv/asymptotics.py:391\u001b[0m, in \u001b[0;36mMinimalCriticalCombinatorial\u001b[0;34m(G, H, variables, r, linear_form)\u001b[0m\n\u001b[1;32m 389\u001b[0m \u001b[38;5;66;03m# Compute the Kronecker representation of our system\u001b[39;00m\n\u001b[1;32m 390\u001b[0m timer\u001b[38;5;241m.\u001b[39mcheckpoint()\n\u001b[0;32m--> 391\u001b[0m P, Qs \u001b[38;5;241m=\u001b[39m \u001b[43m_kronecker_representation\u001b[49m\u001b[43m(\u001b[49m\u001b[43msystem\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mu_\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvsT\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlambda_\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlinear_form\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 392\u001b[0m timer\u001b[38;5;241m.\u001b[39mcheckpoint(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mKronecker\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 394\u001b[0m Qt \u001b[38;5;241m=\u001b[39m Qs[\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m2\u001b[39m] \u001b[38;5;66;03m# Qs ordering is H.variables() + [t, lambda_]\u001b[39;00m\n", + "File \u001b[0;32m~/.sage/local/lib/python3.11/site-packages/sage_acsv/kronecker.py:69\u001b[0m, in \u001b[0;36m_kronecker_representation\u001b[0;34m(system, u_, vs, lambda_, linear_form)\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m:\n\u001b[1;32m 67\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m ACSVException(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTrouble computing Groebner basis. System may be too large.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 69\u001b[0m ideal \u001b[38;5;241m=\u001b[39m \u001b[43mideal\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mradical\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 70\u001b[0m gb \u001b[38;5;241m=\u001b[39m ideal\u001b[38;5;241m.\u001b[39mtransformed_basis(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mfglm\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 72\u001b[0m rabinowitsch_R \u001b[38;5;241m=\u001b[39m rabinowitsch_R\u001b[38;5;241m.\u001b[39mchange_ring(order\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mlex\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/polynomial/multi_polynomial_ideal.py:304\u001b[0m, in \u001b[0;36mRequireField.__call__\u001b[0;34m(self, *args, **kwds)\u001b[0m\n\u001b[1;32m 302\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m R\u001b[38;5;241m.\u001b[39mbase_ring()\u001b[38;5;241m.\u001b[39mis_field():\n\u001b[1;32m 303\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCoefficient ring must be a field for function \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m.\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m%\u001b[39m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mf\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__name__\u001b[39m))\n\u001b[0;32m--> 304\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mf\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_instance\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwds\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/libs/singular/standard_options.py:143\u001b[0m, in \u001b[0;36mlibsingular_gb_standard_options..wrapper\u001b[0;34m(*args, **kwds)\u001b[0m\n\u001b[1;32m 139\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 140\u001b[0m \u001b[38;5;124;03mExecute function in ``LibSingularGBDefaultContext``.\u001b[39;00m\n\u001b[1;32m 141\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 142\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m LibSingularGBDefaultContext():\n\u001b[0;32m--> 143\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwds\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/polynomial/multi_polynomial_ideal.py:1767\u001b[0m, in \u001b[0;36mMPolynomialIdeal_singular_repr.radical\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1765\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01msage\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mlibs\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01msingular\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mfunction_factory\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m ff\n\u001b[1;32m 1766\u001b[0m radical \u001b[38;5;241m=\u001b[39m ff\u001b[38;5;241m.\u001b[39mprimdec__lib\u001b[38;5;241m.\u001b[39mradical\n\u001b[0;32m-> 1767\u001b[0m r \u001b[38;5;241m=\u001b[39m \u001b[43mradical\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1769\u001b[0m S \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mring()\n\u001b[1;32m 1771\u001b[0m \u001b[38;5;66;03m#I = self._singular_()\u001b[39;00m\n\u001b[1;32m 1772\u001b[0m \u001b[38;5;66;03m#I.parent().lib('primdec.lib')\u001b[39;00m\n\u001b[1;32m 1773\u001b[0m \u001b[38;5;66;03m#r = I.radical()\u001b[39;00m\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/libs/singular/function.pyx:1298\u001b[0m, in \u001b[0;36msage.libs.singular.function.SingularFunction.__call__ (build/cythonized/sage/libs/singular/function.cpp:21315)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1296\u001b[0m if not (isinstance(ring, MPolynomialRing_libsingular) or isinstance(ring, NCPolynomialRing_plural)):\n\u001b[1;32m 1297\u001b[0m raise TypeError(\"cannot call Singular function '%s' with ring parameter of type '%s'\" % (self._name,type(ring)))\n\u001b[0;32m-> 1298\u001b[0m return call_function(self, args, ring, interruptible, attributes)\n\u001b[1;32m 1299\u001b[0m \n\u001b[1;32m 1300\u001b[0m def _instancedoc_(self):\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/libs/singular/function.pyx:1477\u001b[0m, in \u001b[0;36msage.libs.singular.function.call_function (build/cythonized/sage/libs/singular/function.cpp:23302)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1475\u001b[0m error_messages.pop()\n\u001b[1;32m 1476\u001b[0m \n\u001b[0;32m-> 1477\u001b[0m with opt_ctx: # we are preserving the global options state here\n\u001b[1;32m 1478\u001b[0m if signal_handler:\n\u001b[1;32m 1479\u001b[0m sig_on()\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/libs/singular/function.pyx:1479\u001b[0m, in \u001b[0;36msage.libs.singular.function.call_function (build/cythonized/sage/libs/singular/function.cpp:23214)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1477\u001b[0m with opt_ctx: # we are preserving the global options state here\n\u001b[1;32m 1478\u001b[0m if signal_handler:\n\u001b[0;32m-> 1479\u001b[0m sig_on()\n\u001b[1;32m 1480\u001b[0m _res = self.call_handler.handle_call(argument_list, si_ring)\n\u001b[1;32m 1481\u001b[0m sig_off()\n", + "\u001b[0;31mKeyboardInterrupt\u001b[0m: " + ] + } + ], "source": [ - "# Does not finish computing (hangs on computing GB for critical point system)\n", - "#F = (1-x^3*y^6+x^3*y^4+x^2*y^4+x^2*y^3)/(1-x-y+x^2*y^3-x^3*y^3-x^4*y^4-x^3*y^6+x^4*y^6)" + "#Does not finish computing (hangs on computing GB for critical point system)\n", + "F = (1-x^3*y^6+x^3*y^4+x^2*y^4+x^2*y^3)/(1-x-y+x^2*y^3-x^3*y^3-x^4*y^4-x^3*y^6+x^4*y^6)\n", + "diagonal_asy(F, as_symbolic=True)" ] }, { @@ -307,7 +375,7 @@ "lastKernelId": null }, "kernelspec": { - "display_name": "SageMath 9.7", + "display_name": "SageMath 10.2", "language": "sage", "name": "sagemath" }, @@ -321,7 +389,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.9" + "version": "3.11.1" } }, "nbformat": 4, diff --git a/sage_acsv/asymptotics.py b/sage_acsv/asymptotics.py index 8743e60..62c9bcf 100644 --- a/sage_acsv/asymptotics.py +++ b/sage_acsv/asymptotics.py @@ -4,7 +4,7 @@ from sage.all import AA, PolynomialRing, QQ, QQbar, SR, gcd, prod, pi -from sage_acsv.kronecker import _kronecker_representation +from sage_acsv.kronecker import _kronecker_representation, _msolve_kronecker_representation from sage_acsv.helpers import ACSVException, RationalFunctionReduce, DetHessianWithLog, OutputFormat from sage_acsv.debug import Timer, acsv_logger @@ -12,7 +12,7 @@ MAX_MIN_CRIT_RETRIES = 3 -def diagonal_asy(F, r=None, linear_form=None, return_points=False, output_format=None, as_symbolic=False): +def diagonal_asy(F, r=None, linear_form=None, return_points=False, output_format=None, as_symbolic=False, use_msolve=False): r"""Asymptotics in a given direction r of the multivariate rational function F. INPUT: @@ -161,7 +161,8 @@ def diagonal_asy(F, r=None, linear_form=None, return_points=False, output_format min_crit_pts = MinimalCriticalCombinatorial( G, H, all_variables, r=r, - linear_form=linear_form + linear_form=linear_form, + use_msolve=use_msolve ) break except Exception as e: @@ -245,7 +246,7 @@ def diagonal_asy(F, r=None, linear_form=None, return_points=False, output_format return result -def MinimalCriticalCombinatorial(G, H, variables, r=None, linear_form=None): +def MinimalCriticalCombinatorial(G, H, variables, r=None, linear_form=None, use_msolve=False): r"""Compute minimal critical points of a combinatorial multivariate rational function F=G/H admitting a finite number of critical points. @@ -304,7 +305,8 @@ def MinimalCriticalCombinatorial(G, H, variables, r=None, linear_form=None): # Compute the Kronecker representation of our system timer.checkpoint() - P, Qs = _kronecker_representation(system, u_, vsT, lambda_, linear_form) + P, Qs = _msolve_kronecker_representation(system, u_, vsT) if use_msolve else \ + _kronecker_representation(system, u_, vsT, lambda_, linear_form) timer.checkpoint("Kronecker") Qt = Qs[-2] # Qs ordering is H.variables() + [t, lambda_] diff --git a/sage_acsv/kronecker.py b/sage_acsv/kronecker.py index f23e8ef..49a6e60 100644 --- a/sage_acsv/kronecker.py +++ b/sage_acsv/kronecker.py @@ -3,6 +3,7 @@ from sage_acsv.helpers import ACSVException, GenerateLinearForm from sage_acsv.debug import acsv_logger +from sage_acsv.msolve import get_parametrization def _kronecker_representation(system, u_, vs, lambda_=None, linear_form=None): @@ -130,8 +131,32 @@ def _kronecker_representation(system, u_, vs, lambda_=None, linear_form=None): return P, Qs +def _msolve_kronecker_representation(system, u_, vs): + result = get_parametrization(vs, system) -def kronecker(system, vs, linear_form=None): + _, nvars, _, _, _, param = result[1] + + R = PolynomialRing(QQ, u_) + u_ = R(u_) + + P_coeffs = param[1][0][1] + P = sum([c * u_**i for (i, c) in enumerate(P_coeffs)]) + + Qs = [] + for Q_param in param[1][2]: + Q_coeffs = Q_param[0][1] + Q = -sum([c * u_**i for (i, c) in enumerate(Q_coeffs)]) + Qs.append(Q) + + # Check if no new variable was created by msolve + # If so, the linear_form used is just zd + # i.e. u_ = zd and Qd = zd * P'(zd) + if nvars == len(vs): + Qs.append(-u_ * P.derivative()) + + return P, Qs + +def kronecker(system, vs, linear_form=None, use_msolve=False): r"""Computes the Kronecker Representation of a system of polynomials INPUT: @@ -159,4 +184,6 @@ def kronecker(system, vs, linear_form=None): system = [R(f) for f in system] vs = [R(v) for v in vs] u_ = R(u_) + if use_msolve: + return _msolve_kronecker_representation(system, u_, vs) return _kronecker_representation(system, u_, vs, linear_form=linear_form) diff --git a/sage_acsv/msolve.py b/sage_acsv/msolve.py new file mode 100644 index 0000000..ca2ff21 --- /dev/null +++ b/sage_acsv/msolve.py @@ -0,0 +1,34 @@ +import os +import tempfile +import subprocess +import ast + +from sage.features.msolve import msolve +from sage_acsv.helpers import ACSVException + +def get_parametrization(vs, system): + filename = msolve().absolute_filename() + msolve_in = tempfile.NamedTemporaryFile(mode='w', + encoding='ascii', delete=False) + command = [filename, "-f", msolve_in.name, "-P", "2"] + + system = list(str(e) for e in system) + try: + print(",".join([str(v) for v in vs]), file=msolve_in) + print(0, file=msolve_in) + print(*(pol.replace(" ", "") for pol in system), + sep=',\n', file=msolve_in) + msolve_in.close() + msolve_out = subprocess.run(command, capture_output=True, text=True) + finally: + os.unlink(msolve_in.name) + + msolve_out.check_returncode() + + result = msolve_out.stdout + result = ast.literal_eval(result[:-2]) + + if result[0] != 0: + raise ACSVException("Issue with msolve parametrization - system does not have finitely many solutions") + + return result \ No newline at end of file From 49cf1b81bdca56fcad0c9cc8f6248b812a8ac9d8 Mon Sep 17 00:00:00 2001 From: Andrew Luo Date: Mon, 15 Jan 2024 12:35:19 -0500 Subject: [PATCH 02/17] Add tests for timing --- examples/Sage-ACSV-Tests.ipynb | 361 ++++++++++++++++++++++++++++----- 1 file changed, 311 insertions(+), 50 deletions(-) diff --git a/examples/Sage-ACSV-Tests.ipynb b/examples/Sage-ACSV-Tests.ipynb index b9791ff..fe5afde 100644 --- a/examples/Sage-ACSV-Tests.ipynb +++ b/examples/Sage-ACSV-Tests.ipynb @@ -2,16 +2,18 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 20, "metadata": {}, "outputs": [], "source": [ - "from sage_acsv import diagonal_asy" + "from sage_acsv import diagonal_asy, acsv_logger\n", + "import logging\n", + "acsv_logger.setLevel(logging.INFO)" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 21, "metadata": {}, "outputs": [ { @@ -20,7 +22,7 @@ "(x, y, w, z, n)" ] }, - "execution_count": 2, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -32,15 +34,16 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 22, "metadata": {}, "outputs": [ { - "name": "stdout", + "name": "stderr", "output_type": "stream", "text": [ - "2*u_ - 17\n", - "[1, 1, 2, 1]\n" + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.04013662500074133 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.007297832999029197 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.003776709010708146 seconds.\n" ] }, { @@ -49,7 +52,7 @@ "4^n/(sqrt(pi)*sqrt(n))" ] }, - "execution_count": 3, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -62,15 +65,16 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 23, "metadata": {}, "outputs": [ { - "name": "stdout", + "name": "stderr", "output_type": "stream", "text": [ - "2*u_ - 1\n", - "[1, 1, 2, -2*u_]\n" + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.03666433300531935 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.005753334000473842 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.003914458997314796 seconds.\n" ] }, { @@ -79,7 +83,7 @@ "4^n/(sqrt(pi)*sqrt(n))" ] }, - "execution_count": 4, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } @@ -92,15 +96,16 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 24, "metadata": {}, "outputs": [ { - "name": "stdout", + "name": "stderr", "output_type": "stream", "text": [ - "u_^8 + 120*u_^7 + 7118*u_^6 + 262620*u_^5 + 5708481*u_^4 + 61978860*u_^3 - 288730156*u_^2 - 15678691680*u_ + 31916262400\n", - "[-8*u_^6 - 720*u_^5 - 28380*u_^4 - 622800*u_^3 - 18113604*u_^2 - 360348120*u_ - 3172580200, -32*u_^6 - 2880*u_^5 - 113520*u_^4 - 2491200*u_^3 - 72454416*u_^2 - 1441392480*u_ - 12690320800, -32*u_^6 - 2880*u_^5 - 113520*u_^4 - 2491200*u_^3 - 72454416*u_^2 - 1441392480*u_ - 12690320800, 84*u_^6 + 7560*u_^5 + 171024*u_^4 - 1078560*u_^3 - 201505332*u_^2 - 4539207960*u_ + 25774845600, 8*u_^7 + 840*u_^6 + 42708*u_^5 + 1313100*u_^4 + 22833924*u_^3 + 185936580*u_^2 - 577460312*u_ - 15678691680]\n" + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.07788224999967497 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.011859416990773752 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.007484458008548245 seconds.\n" ] }, { @@ -109,7 +114,7 @@ "4*4^n/(pi*n)" ] }, - "execution_count": 6, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -122,16 +127,25 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 25, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.06467729099676944 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.04026362499280367 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.10719695799343754 seconds.\n" + ] + }, { "data": { "text/plain": [ - "1.225275868941647?*33.97056274847714?^n/(pi^1.5*n^1.5)" + "1.225275868941647?*33.97056274847714?^n/(pi^(3/2)*n^(3/2))" ] }, - "execution_count": 5, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -144,19 +158,59 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.04431166600261349 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.04433395899832249 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.10632091699517332 seconds.\n" + ] + }, + { + "data": { + "text/plain": [ + "1.225275868941647?*33.97056274847714?^n/(pi^(3/2)*n^(3/2))" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Apéry sequence (on main diagonal)\n", + "F3 = 1/(1 - w*(1 + x)*(1 + y)*(1 + z)*(x*y*z + y*z + y + z + 1))\n", + "diagonal_asy(F3, as_symbolic=True, use_msolve=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.061815875000320375 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.04037587500351947 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.10591870799544267 seconds.\n" + ] + }, { "data": { "text/html": [ - "\\(\\displaystyle \\frac{{\\left(12 \\, \\sqrt{2} + 17\\right)}^{n} \\sqrt{\\frac{17}{2} \\, \\sqrt{2} + 12}}{4 \\, \\pi^{1.5} n^{1.5}}\\)" + "\\(\\displaystyle \\frac{{\\left(12 \\, \\sqrt{2} + 17\\right)}^{n} \\sqrt{\\frac{17}{2} \\, \\sqrt{2} + 12}}{4 \\, \\pi^{\\frac{3}{2}} n^{\\frac{3}{2}}}\\)" ], "text/latex": [ - "$\\displaystyle \\frac{{\\left(12 \\, \\sqrt{2} + 17\\right)}^{n} \\sqrt{\\frac{17}{2} \\, \\sqrt{2} + 12}}{4 \\, \\pi^{1.5} n^{1.5}}$" + "$\\displaystyle \\frac{{\\left(12 \\, \\sqrt{2} + 17\\right)}^{n} \\sqrt{\\frac{17}{2} \\, \\sqrt{2} + 12}}{4 \\, \\pi^{\\frac{3}{2}} n^{\\frac{3}{2}}}$" ], "text/plain": [ - "1/4*(12*sqrt(2) + 17)^n*sqrt(17/2*sqrt(2) + 12)/(pi^1.5*n^1.5)" + "1/4*(12*sqrt(2) + 17)^n*sqrt(17/2*sqrt(2) + 12)/(pi^(3/2)*n^(3/2))" ] }, "metadata": {}, @@ -171,16 +225,25 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 28, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.05899550000322051 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.0526745000097435 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.004523666008026339 seconds.\n" + ] + }, { "data": { "text/plain": [ "0.09677555757474702?*5.884442204019508?^n/(sqrt(pi)*sqrt(n))" ] }, - "execution_count": 7, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } @@ -193,9 +256,47 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 29, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.02756754199799616 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.06255091699131299 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.004529750003712252 seconds.\n" + ] + }, + { + "data": { + "text/plain": [ + "-0.00002590995235243959?*0.003868798293240966?^n/(sqrt(pi)*sqrt(n))" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Example with two critical points with positive coords, neither of which is obviously non-minimal\n", + "F4 = -1/(1-(1-x-y)*(20-x-40*y))\n", + "diagonal_asy(F4, as_symbolic=True, use_msolve=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.056058374990243465 seconds.\n" + ] + }, { "name": "stdout", "output_type": "stream", @@ -215,9 +316,16 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 31, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.5564668329898268 seconds.\n" + ] + }, { "name": "stdout", "output_type": "stream", @@ -237,16 +345,25 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 32, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.04802370800462086 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.01800454201293178 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.0030805839924141765 seconds.\n" + ] + }, { "data": { "text/plain": [ "1.015051765128218?*5.828427124746190?^n/(sqrt(pi)*sqrt(n))" ] }, - "execution_count": 10, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" } @@ -259,16 +376,56 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 33, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.024817500001518056 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.02446258399868384 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.004260208996129222 seconds.\n" + ] + }, + { + "data": { + "text/plain": [ + "1.015051765128218?*5.828427124746190?^n/(sqrt(pi)*sqrt(n))" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Delannoy generating function\n", + "F7 = 1/(1 - x - y - x*y)\n", + "diagonal_asy(F7, as_symbolic=True, use_msolve=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.23029041700647213 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.11095762500190176 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.003585332990041934 seconds.\n" + ] + }, { "data": { "text/plain": [ "1/7*(0.6234898018587335? + 0.7818314824680299?*I)^n + 1/7*(0.6234898018587335? - 0.7818314824680299?*I)^n + 1/7*(-0.2225209339563144? + 0.9749279121818236?*I)^n + 1/7*(-0.2225209339563144? - 0.9749279121818236?*I)^n + 1/7*(-0.9009688679024191? + 0.4338837391175581?*I)^n + 1/7*(-0.9009688679024191? - 0.4338837391175581?*I)^n + 1/7" ] }, - "execution_count": 11, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -281,16 +438,56 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.04297991700877901 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.1282324170024367 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.003678082997794263 seconds.\n" + ] + }, + { + "data": { + "text/plain": [ + "1/7*(0.6234898018587335? + 0.7818314824680299?*I)^n + 1/7*(0.6234898018587335? - 0.7818314824680299?*I)^n + 1/7*(-0.2225209339563144? + 0.9749279121818236?*I)^n + 1/7*(-0.2225209339563144? - 0.9749279121818236?*I)^n + 1/7*(-0.9009688679024191? + 0.4338837391175581?*I)^n + 1/7*(-0.9009688679024191? - 0.4338837391175581?*I)^n + 1/7" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# One variable example with many minimal critical points on same torus\n", + "F8 = 1/(1 - x^7)\n", + "diagonal_asy(F8, as_symbolic=True, use_msolve=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 36, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.05497991699667182 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.01876987499417737 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.0016644999996060506 seconds.\n" + ] + }, { "data": { "text/plain": [ "([(1.285654384750451?, 1, 1, 0.03396226416457560?)], [[0.7778140158516262?]])" ] }, - "execution_count": 12, + "execution_count": 36, "metadata": {}, "output_type": "execute_result" } @@ -303,16 +500,25 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 37, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.11754975000803825 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.04100229199684691 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.006802667005104013 seconds.\n" + ] + }, { "data": { "text/plain": [ "0.9430514023983397?*4.518911369262258?^n/(sqrt(pi)*sqrt(n))" ] }, - "execution_count": 13, + "execution_count": 37, "metadata": {}, "output_type": "execute_result" } @@ -324,26 +530,81 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 38, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.04006791699794121 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.05256475000351202 seconds.\n", + "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.0075699579901993275 seconds.\n" + ] + }, + { + "data": { + "text/plain": [ + "0.9430514023983397?*4.518911369262258?^n/(sqrt(pi)*sqrt(n))" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "F10 = (x^2*y^2 - x*y + 1)/(1-x-y-x*y+x*y^2+x^2*y-x^2*y^3-x^3*y^2)\n", + "diagonal_asy(F10, as_symbolic=True, use_msolve=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "35184372088832*u_^210 + 49064606877876224*u_^209 + 29245799836051046400*u_^208 + 9438167044037537693696*u_^207 + 1652412560318401098022912*u_^206 + 102804965908926253712277504*u_^205 - 15582284625714877325113294848*u_^204 - 3304926727665550995914137534464*u_^203 - 93288812879980974309386737418240*u_^202 + 27940506484702947574784398555348992*u_^201 + 2233582380189119928016812280987516928*u_^200 - 120110972497207488975534993057140178944*u_^199 - 17323633031494567802991270085315264512000*u_^198 + 302550699518672846731900169817867459493888*u_^197 + 82561634103305093521913781604131155020349440*u_^196 - 629893223470329699590619461137221797323341824*u_^195 - 275000914705807382154207926585312707730065350656*u_^194 + 2478584457513248973250621597749298859012533424128*u_^193 + 650074486603855067110129050888015781785136978588672*u_^192 - 11295589776499153912350758288814557762771882366321408*u_^191 - 1006132775745507453924987117462945691638827418824421600*u_^190 + 32955727228721929118518876812957229692930729157492869424*u_^189 + 699154827239816662057287937238958402786932870945618390400*u_^188 - 54164673000911388165204399011462403915734171458249372794657*u_^187 + 671190890531452287787806063837179247453172526492121562118059*u_^186 + 35877106482250095497070044207118800947595761592024465844155606*u_^185 - 1863304370317162536856329736389288235349546841559815087058033370*u_^184 + 27504676232881280854007916877271088304589021197395105523267538405*u_^183 + 872610838073527222682123593666961745581248971037162203991189056503*u_^182 - 56957352708635859935032110175462000593225121264496866955549943509542*u_^181 + 1281651318082287048059062841024854857381250836834973923651046321172832*u_^180 + 1937122814711451813602324256356926523230165991903960316627614261281766*u_^179 - 1149572062714506173610403070414570717656253812325074009789890482757173078*u_^178 + 42257680770785491177034574326155606404770894721947092445634741888132035937*u_^177 - 724214888144100286686218946660621850762450803561443733290777937043627079635*u_^176 - 3906284617653101427030059955779887864917106615311120564299812320329836597301*u_^175 + 681763930070408945404918563281916021627647853717177777549041010797846034020091*u_^174 - 23978684836669308719259753014717255566635495640385577641756919429824858520738174*u_^173 + 478837782379351102009138952377698923225198023008311965156494694377555986603074932*u_^172 - 3100890364578423406275346084958992022920379626384742942300970705161206576601492987*u_^171 - 182147100729281634225397403523631182815517792424005945674900575294590427957296314639*u_^170 + 9121939197997430715910452426551246819426105710168295716255660235071176844729825336110*u_^169 - 253501475792720786716477300431704939526167101174221685087096167516347168215712758528376*u_^168 + 4826185878504549968921592132510860356988646234268117849025664255509331852298965148591944*u_^167 - 51274735485419004007892808260509769202079950066988088217148779549248169455657985798038948*u_^166 - 536249664355677902920811356555893972150984851946492111946009569423618292730619488020383702*u_^165 + 47354330329655376794710174575848658961714820089273034978220764612131150839117575819556728852*u_^164 - 1599709908554082574385811697821037048890521169531976028431683493636195696311975010922229345555*u_^163 + 40419337726511824736823208826492894257503817635537064567154388068510167281960592682460925651351*u_^162 - 856964512297538048927065142229505092534964167802471380217667227459269470942877142464999792113546*u_^161 + 15893129348542518645178347643489409966650154223550180299437416950166217868949726460600115967304010*u_^160 - 262629090877002125984284104224308360224212824657470067111379573411017204174388120044164547678221168*u_^159 + 3896995683277713958521466149244759559592865775457000490657606356759472280729784052441117240420573728*u_^158 - 51967668984922635017150811953104543600867670878797800001117331605445965078364445478091032218907597591*u_^157 + 619297083510973306752997945343460298176843628657620850357981256297827474226937102031522564521592523219*u_^156 - 6499959922432861876204068001956936547329998200041886194144745771669665429919758107010929841911558005190*u_^155 + 58212868958893810356084495984654417863113716106494111142998954833210119531309088213225229268821608230352*u_^154 - 411405690049362860493736337287309101727735617417969139997840720850388981509882360446736719215237662981437*u_^153 + 1693447938401123711420076704363125464681490873821931085889790978742644819364407396110793057435578122484109*u_^152 + 8050842578597503708432057085772890351084643132447391286843542987077520771230507102887977283511086386434210*u_^151 - 263434262191548764395729364764697448277987320405866245992065156227762925563426617433655109786785907052889874*u_^150 + 3248730247475477102761845080169100067613136046948914958139002265416725593881843618601965614191634805588498753*u_^149 - 25726210345611758004215805055252274106618478598636434695018834785360249122042658986364433618510543620822710421*u_^148 + 106350218997911408752628124118242434938475497775730853511870190931823739196424713128818101705205399158235731895*u_^147 + 497608531208705549245902861289064797323275018752320042834226254016494269064240819790669897729430243748174891859*u_^146 - 13980673535568170581622408448090232845751691375309349888445362906812930451058587531107930937219503600751498178600*u_^145 + 135151582778500389167041910699869041421814238501213654462856126786519096003364326154669750192516497052163360395614*u_^144 - 607257101024366068477727689968908005827534345239697508910386711584384685120347182860121514573748914278598247773779*u_^143 - 2556472692283297945675066689585860740119993430899111207441237692213602422665362508589019011052570042313147173654949*u_^142 + 71175805801190194507246951063814412488905001656563490677283085827287292532207398881532721167298603383666590976279214*u_^141 - 595222200118458023854813850548202152088101255002091147702550350255826186676500655484883178537291556559271342320739272*u_^140 + 1351139703575095852112619748654750044549608521190110852455084583876750323921999957590471214958307030125555770486292286*u_^139 + 27358922728124978776148188316358728841166087177916976790653410352883544415208601898766403436466579982829374342335283688*u_^138 - 370666051352417182565723483777544373197789362176415369281779909343798761387464210909894018146547241158373498823943551415*u_^137 + 1794925037631545240150291698659622482911924244912923754629865817608562831384735216618327574822718078236676973777858093905*u_^136 + 7810836660241733861686530344287799368698279063105317688166266438057664835457706717012752364643940023025878265402266308741*u_^135 - 194128836824004729464506044634544812510802793159650555109096839066624717245638658126416042937439844696830346791484527384609*u_^134 + 1265786998503690139178498968791485067686004720819014065552160484237827298234211979925100953373084606069024985544507293871803*u_^133 + 1384445002070385802767366480689190853967345607726358309615879353713398452931324179570739096007046829119600368521085775696345*u_^132 - 93932602287842453380156377326023902926958840737310875035351037145371800398347369817169112462049079190128936394621020048501752*u_^131 + 709721825911300025554900451633420382488023238887570176239844817707952097718841362076007043199165503794394318326086423329488026*u_^130 + 34606674983607202206413622308561094098917333345634752286272461479778623383694462389388035818408277063430080560825310192897137*u_^129 - 44216758772795382200165699849005147324314521215038929793062036119891189240424823659416547672603291670472839090292113686428343093*u_^128 + 344093287404001294505905105904393721299321709421606847299268991297518261794251900018037910534117917746532833933712281741348451289*u_^127 + 30761796059204786969817713933187306430997051946503529158272260768000008865548854258123968570613747576160429941141469157727867275*u_^126 - 20514746936380805201310370746976654382849135284109980982645394616115477204219052482614669481498646131314705912536404803029946796265*u_^125 + 145906685686696484475422993709552773546631077080675442407739227763171588466671043681710349246741473425972587662263460940432479434983*u_^124 + 146865167882106944884366257211143899732114720076370019953871055720874950118354987865080887105531580292910011356468616663778563076750*u_^123 - 9156992828024818845166602789362598561300066951764139505235072839058819697560596170711920984769368147511287687957819019376358842705812*u_^122 + 52479850529154716317665045369598273209635539280727184630691722675992937890551064276034019260930711054518434489734683759326746678176070*u_^121 + 156048642622348739334366191140849794235672770244910425141609010124128364082605467190547663941775580354194730008825144808835344774145506*u_^120 - 3748073618530001081432728370247918882300594521393258551585530914346306498353335807635633593573611721608209532602927824769055934209639666*u_^119 + 14660064909428818517611814380832299079126835179666762246701067520424266935697656577538947227625752471940507322309430424335728983817330638*u_^118 + 104047853509782713382545752086595521396484372622599363587474672404781942333657112991495568632469096660603196466397248209459254138065663653*u_^117 - 1327436262829887517443727257808194451517172858793037961202642985952656407991896262683053710471643470751989801890611117933275735019447328769*u_^116 + 2318192662134035876183482543815893297753827519596958079514420026815798797254517700082867513964254038707273906309649213603722649815286982497*u_^115 + 50994327464964560782599712704824414370149249427776454809711113800005738342966410230357114388750949275588907873582950607487946806728876402317*u_^114 - 377661234767418450536553038640999878835739183044987457910961753525859605635694769373231081533445574751484775912390123683591122416973883817365*u_^113 - 407146360161166619984149347217012295595899857303784537577827819896131740460917028966901299934579369357627179232708223665150876548821086510691*u_^112 + 19035029254392787146062367095919172834250412832685787315205344136511590851539168726570491445902008640147145439831114944725827530438437867432712*u_^111 - 74433014503684648537940199802404303610251616493828798516912142464975864845583293405363971276231653694114890963813942584976638687520014114414028*u_^110 - 470363844998240804534312589789997859593323742904479852338869749732580273704358266491337309615987625925726629903875689292267152789878457493766297*u_^109 + 5307978287421001146325843735745205453881073096335745538498504729276768183571043902892754406018180018880027950800817154995674951410698346397799563*u_^108 - 4275284240264390680183368341354344219668442191989830770616742539125189537471770668262879002850701427160314473613681899577545407346199138531615178*u_^107 - 196408329288472070330225284080464323079120461999330135981193878514374325770446574365118763496544553064128172565529274975912628128817395464107801282*u_^106 + 1002223877822074025891693639296127647825111426935321213683412699410578889499160338293652416879322564427581756360247079048705182480203073267506344451*u_^105 + 3483314044994779801367190916677383191904740864627823588517841938461344518812606525342700420050007342792380708437053928183518852717698912816563394085*u_^104 - 52079631134854634761273492303247012846797485631838933191477877441096440724000068039751331852745911250511859716855236419058378735239614994323707612010*u_^103 + 74821705734378989150674084909286429246557965845140923751258990405562072432273277299908586741595254469840033971984783038573418832455489279708125564660*u_^102 + 1607677670304805669474763525429630618959099761881215377355030900063574857282095294922876830223855462746641504885653963784124617891860352084136468163991*u_^101 - 8663938458624258831486620464082932397851362889745176072622858454016155858141578476605090087536509317885234907173229700778609900297930961482033468060875*u_^100 - 24371187256383966755114709239684568542462348633122158937104858877137330142676840805487738675455715567490998341789790056415182727842385968724795978703919*u_^99 + 381746653106609560762868990038927627018605559126903595487133089129501653037416174690113911311697445416847455922068553318223395952245796418618945822438717*u_^98 - 518473140475521944409897549815881736822539936204836017314743675859805100009938733167305851317043921494666020446651181845861066670045421750722356270793348*u_^97 - 10656267837601522628246982958488813329874825772593690173411027189045871458788645926328676024862633490459293953719382620995103474746405989944697633519310936*u_^96 + 52070947025881213024659076585501958487596474897939349343693530291785108775506662793084367250151507638790395686597583900005648324754841400168560115883242654*u_^95 + 160809381573088605432277933198570845770502687997962920185925489410250958675647062701247213916624757321341289219668927847640453334085917605347040586801181402*u_^94 - 2097461318802481737206078326404263958378081140665590868611846015089865610183675690173900239666982810453713342943779388145028670659893194745378549843323656758*u_^93 + 1843804935502959308307563231095604040014979422460976928464244074837395273457868208624429165248873738716832613943629103660149686396051531765225011769075324518*u_^92 + 55024039093649299746459413200629165056498641420061394822657118445841647012718887313473397698024407620997699650997334727252958497818618227213483028173817822171*u_^91 - 219828313751818524650613031322299911766386065610226134406617137233827969996980167264072392513292214877315782749624797972277609879695976000781158060868251398953*u_^90 - 858628544259109927068326581147791627415844287923924235239484007973963627669143090008721155083881105463229076414235476978647068783155518224473223916415608186951*u_^89 + 8458952415394266506792187635076663932644070049223383881168782919547691871549006338644792103536969212419966880261147231707811241840926993624816563067077824377849*u_^88 - 2107574091959870522210898761794670077465490303301145912780883572233340396832135854335135252084702650028452949342032370630473939483375217215722962404471336468967*u_^87 - 210864985581379057088642505313632211333965008876981835884780943228059627661755591839354396721658779370313220946448522241942015305086204523827672030795386532148467*u_^86 + 652723575329279049867769922258207004188901116601577684202781830931776643696536050574496875650782635252160250367498181923674260564438603739577980736563397562800130*u_^85 + 3313092511752409808309286574030255854973093430283905600132258131058149696673704436968198552663854168459326089034636908685726886543490973816138042811340475019116256*u_^84 - 24784222979249723009901230050603806710719587409185756002156059039559222168947856267393881909224189137462410430752521616765783293969612572427117429838857620337970193*u_^83 - 8697438489501045427960348262029554793095788901756537540272262915868913693967604971939540584389611003911875833070699747901293890656805454788464355690186066569966973*u_^82 + 586436255135699174229011495928666618219157394599161844804824135815189769964863210716759370686427484585400285085351398688907822323623636295473236547408020158470695771*u_^81 - 1397253147719185646884950052670633316500224066108784281286519367285664602216612977340992980234296880787430045778905277110125576497583798539682141161412220501404026303*u_^80 - 8922783164238465693620605732891792762126051979928401776209969418435294620401446547007359065295598313342446440680120824734704137834756807038649508445232034512054587106*u_^79 + 53306973700828855397102889954504049338442046562078082117473334193614907119419849945396394721530425958780345551106954009025901535972905511497242435599994985170744778388*u_^78 + 42436916242907373901369161330694797456298676524911886545442247020320297172671224261743268579517905188729448534856915589449205233537478047818970296479357657105075903989*u_^77 - 1182523291566319094735844651406587636264659306475693718634928209880100273431098336361979086536199937370926121291673413888335116844139235099164192562417263478408838111731*u_^76 + 2259920169486147722509663486778382712912276513414151968079458020253886246629800825025641163601003972139718622623146998542293730164976082661503719823310636109918618535533*u_^75 + 16723329175729644580586569848635828611272278408228792632519387274071363931578728019231930823806625533131419689061915552790246080655352108831651976929406329295202641893117*u_^74 - 85236302801043793012343865855808243295304482278489786660950123736897471124416667955787634305132817971409199873895537326972991169132233417704432243702131280517732874188304*u_^73 - 84986922010463210856255584824190089823132976580312155665938788006162911995883908985167587490446800865274503208445073723774957152685313428299192482461335154642806286990334*u_^72 + 1723546625901899877062843520774840732026012425030820185972718044092332954274636444784825053293103774530728908639438979241341230743131907532631250186448088695933225570626560*u_^71 - 2901486697962541440597349530053229303570993737271703748407122267625429499630611336996714127492540328427498720700005604079594994119951538597448177539291804638385708818311980*u_^70 - 21586657814301360395349698998361349137717830529895447223701875738200876838472447287952983313447088430732192484067852816570509315202071521620680644094397453932762103678210197*u_^69 + 101372082306965826337768096629913297017640535334481740412442336017772796218118005646385685316359576214109868477860035312749382034467350378064705488611319701105571116303413525*u_^68 + 90286584792362183116327991161176658918450975491052477554885822280278545629152151550531597667320992279525398759539881443287313121874311597231906071860136856818243038207730666*u_^67 - 1788719161716798059700882997893250570352036930692231456164380788461293540540852977091215890911382327792025904000628490720526918841097997131615971574676599498049471342880657110*u_^66 + 3050838382698336900003619053913418861054671030295403515904306351993996825090559305510302311789237641584400450569546544335115301721308704563554850528091875960064478710759418165*u_^65 + 18632662973801575604440685303741833623078466888315023800872009818889687723626908740415735472757635500558165771344602859662256998302582331242872643146913489654679428168366707171*u_^64 - 88739697629212468591714138022887735117895899894360857423771711951437116160449771154028460217876982229662234881206106518752193978434462429626300006062311145773484463921868209368*u_^63 - 41512450236225576756513352729027118395797625837136383443284528391826482288921359068365355347846597094051960904783456988231632117389402796632180118322071288579933599727111398224*u_^62 + 1289353503674541608374180448210639644205664553918736788614638079778748329748566086002153774462389349367565710255601672341402460860697593783955350568613382849118202403127249725992*u_^61 - 2559974957987582010100279404331855790150094035659243360235427427434709716966813505526188483211904893397206787415797315306372226059818292488143389091644290824580186362978417962622*u_^60 - 10177297666685701530604534319559064325624691488641706344717863611841831800853728603178573159888274197202662660449871997398173692872957095551854877515153016897546182748177014426253*u_^59 + 55659026813528102840185298639185275780363200549117025513882423316680036348550403453999468510650772436211219209902872515850764167170958226186113496355280552347954671152655599701211*u_^58 - 10446303983709754814410386344702955738578548204842280020831917058867854699824996588730484428004638281123541387390747772193459561016330320268676387567494446347668886295838427375013*u_^57 - 619309823448286480802642054588679912228380359992128264062453253742150952270492304270699125298214408559907790522799655001095127808273055092770048447499204891271593714950745229979043*u_^56 + 1565218014380831140483639950655495768401019625858112021270156652875708865178860449417377270512822994480137531572462001417734403180220709501303446047964537944594562473374541020062457*u_^55 + 3104344775498021970446872057131360614800145314070159307899148948425611675742591075695195780848767584407427760381560461426388393208506284856997656580005468306753621097586374331654331*u_^54 - 23650881791097937578492896716183274971880728775625466630100355015417824938498710304116400225281541460469593673895718799467634033618310344347755555102324692568524351623068970540204501*u_^53 + 22353253034377174537890606743861623404125779394283786747309462317524580213047591500989268283324844114361645496171454227771231953875652297189996169220589697018893709853257924920941353*u_^52 + 182827717525066592938006854899840974143100119538072954890321579607642696115741708359677144763606779788653496049275195331796802253679248432464361018580789377932494476017680056038652188*u_^51 - 623333734064082426198660127598378438100088344391433743907323118737732315787940098936591301830186025721970993447513388469548180661087432029042197113965499179540093539607373614707019286*u_^50 - 298217096629413890387005116699698884880214149475650507145596198978542971513459045799556807893075458297461952349462880689202425954713690064456463783659653678331750073215393578679871030*u_^49 + 6189359746915928804557249419482106980536416866635145595819551911513602627047793488728254711506738029013652648741574827637522135917951809785470620799091883098253952301373580773362725330*u_^48 - 10935762191621504531615875136662188841717821899571182044309316477683345180391543004698486519788444770136434276295258848346357664212739551080054992074502906599401093625340536457297331818*u_^47 - 27324127690699376450705806095577006440099628948955550409698458723547285070776626561655278364545129335103544531642696661920576445411846528168636954904747813352116412671484293415026097992*u_^46 + 144935054272708465738572210455094520015061333551286200530494818886545531224900169771238312886252228062698665669686646575602180591520054040935610851312154162804672014545453595384149059587*u_^45 - 99607736655167347759394743251825429860960950967128532534463896760344714871590158402318777982071865811397189910470181992402484829956861598743923693919137127759477453736975234839726383545*u_^44 - 847548152573677165031475452166340087719513542286281106593195405873970331668379493580172779954875636803972312780976390889283094334361639188936902875457051700009030464655577413313362238624*u_^43 + 2463879464408845913259306361741302314430794557012574262797722456165629790505029641732969475573573083358156646388118263173490918897912908606598083387174353621146350089976880643512085119544*u_^42 + 579744695544092114232119279775079251813053697323372667867520225248966871396402085358441295533887844804742472776665643552238823466696077384604648449822980987261581835666290322422508239672*u_^41 - 16982610348288996431466815497989497532354258620360930801247620875344903614232951522328368409225465032803420786184379990601129374068347638584135807134847997350704630290152678105705128920010*u_^40 + 31060817709740665761716437540240536955110933917751471897403517272969649701283234100683805026517448099662967807145909888831283832599199361243025426919996195335235037603213284821970662740288*u_^39 + 36261142087134170515265355349959547947337665412236643454792935652069110360688917393656426438128812996383021779687494422914371580160920668351924186039296256853467374383663489780953357342256*u_^38 - 245134606596233850892961979830726803402343097480732194538774424245538462599851908217125942126052882378639308868138155070157864922245716977575098114837234128849776585396123173037866233585258*u_^37 + 299543065691460184222518358803120798207668394445093091890179636275350052090596886161903669645331103586286257864631570137671358751598562745681124806589632261214981256998110063315933396539564*u_^36 + 616703234837058198076515453336772275602082358138284319198063614183464714356976049252462185572336748782738422387888408079955285161933010395351086711295075446741821838408589558090551920559200*u_^35 - 2625609368180732247464479141278992873588110645203907873842963381741991320090154406824987923142521276412243476056259271355958371878139752219211113868596758476019493831774626392796880940669896*u_^34 + 2638892794761129818025903771759538949039398333121921893255636929604458810774865381682078302804182635109861242359234992241705581852772621707055754292775379415525003063393013345529401644998252*u_^33 + 5160802707703786725854990571195472301201944035498386313868083507209568423993166168883422171271322837705323978932146972578598112085118392416952743382779622429064437653456941045916594680410964*u_^32 - 21551192879294765893186247681758631898970917522282188022339296070828609716185920892852150789267469036565611038207970013420159792442832480771677832655268087294146719587654331224280271503249412*u_^31 + 32719011427600485563613838638360075323569831322766502912023479061578434641086574088598440050830567446677554628776119563033244719985874865102825116364170821871631765699632971011402869558788268*u_^30 - 1367673689106554657103790143478734474047800272620366253350409190951354044663444616929574946038207773952064084984498932532188936805118250843357516581073527683828907320194053862571715986830936*u_^29 - 158716591969389338143209623488991245099633457701368812451658883199574046145824965777014982199794382631471866996835825666051075267484447079594215713421261490351907272720929870635937136303434296*u_^28 + 526064416040400691863446762093585063326805698987776814758846619485616969185553178420837903744856218393753089926900005378376114885899800270795678290877323893314319432336583422197839371653485080*u_^27 - 632364202952799274308908243846307292593414360211885531821060050300634397084399419153138082828204635763266714983084372226473696324885929046484798895418323183348608771839626167199156488266018840*u_^26 - 1415565431380991991646293545112044264042039509580044689561164777080724842999479163161118907567265610887823450045250346036572549869791696825391635910484310536717827879252412634533583367310481736*u_^25 + 7156592232874802152644852998510572651820074284318194237819525469300215822316928896999741023276889302521175156294164945563303378155990427324800395064750812814689645671338045226872786638037310176*u_^24 - 9230259786947581639089800277022935643386727621520451623337304187872143581520536576715786825419591930713182077593893994037840631203394078496399064265182000894662307979325965790931376044625630104*u_^23 - 14771333727534911035064314847222983431433660282184140916261276388780958102239706189242910252173176506558489867437983174265192732882117039232232644752141394089255010292119741461058932852707963296*u_^22 + 72389590176539567343135679181029311574281733987748457955140524152470462508082071688666315001568757306965447091396102000396103039934391197856312743656732639673190800189832916445893418564601319808*u_^21 - 80555801139907028356731588346020287026831547807559499879510940250890358937497573319941849248110874340750081323824974502877792046545597697252057176122736664548923308641593965503127552455215406688*u_^20 - 132795047659226304646301834287782059433848126704579352646181404802606265074376258782348426998441772988954595673793075955389652030132859514169600787377089549113547975530919331423373002571683180672*u_^19 + 541083188309485248325655172021066587537939300251602303733967734406609958522937951340414289054012238882352190474106444705998045411460308933850740936798218976037144308107516488436598938115913500160*u_^18 - 502711865657890268852732382451580773053009570655337498930108497685519403813236990031461477625310084023294804341025639761586084551773108009369096199571616841839674256845117519957644772479058437312*u_^17 - 881546147545478390974688633421443048968790991746986680823692916819473605852149644233173016950658235666074663117151131967475342787980663550588757272042307685992049631266395478918168174307697659936*u_^16 + 2993564352061522305891122347626732789004072417075750065247637925817993379603407296715768243949194597308397079211510903029777597340001343479442851471510970442086625505417263694030283886411244441152*u_^15 - 2387257459653160506293881777202379690232815053029285468644517643450558602540942919695398403426348868109886424874454116084459179261755945769487055576411807650377711779046947670533303319475382174016*u_^14 - 4069857284116176831845349377690561825597710777359003443917507358458530601496030454705282332978180022712591604656832474827883686877903940979606985513233242772210700000180208873942920683509849333632*u_^13 + 12039907496714114684069278286500102057428619936570545034002701171709550010294465597290761385087606867370790745315438382853958164759654701131961693634169358214652340679221515689448683145146576010496*u_^12 - 8774215901928459542916233171702790432069680405124561368406749101743962632454390697290575035193843347734519474744229467100380724466948494682923465064816060199633287909107381587206037554719178931968*u_^11 - 12161840725557399149743334974944820523070089766327513508992355164347051836925104134135765901657736244118077298637733962122578321789800000718920749597149877909466230140511602966069256597853943973504*u_^10 + 33343210863065079191956059995913203093241045147063673056809134732338483836727307414513595427267061307923745610107307892101505631150741947749553630643652313227642646518731263513299417996506708423424*u_^9 - 23902190924228173281800371823142121280092154452727998149005404662060281100431291928050742979103198295787564588792106318156066832866084839737603131345060178669094065489537085522237118068965036358400*u_^8 - 19875380006733509549528995659469077203328138398974807263331612799139597997175977284215889299499355231453310427068613564048231336832472929131544753649770824043377368664981370526146104068821167176320*u_^7 + 56067520867612358833229250602126295420765996446472328171483309381523285225511026788185044603896822903964127585714431758487228523869556238018635352695240139052245423744193347122265802271027279816448*u_^6 - 42212313692162726471220787608756026938912751213483629352749977060769799357389470542206928588338227236930587446049066920733021634254791939190943875410461854334555463590672498753830583431088332013312*u_^5 - 7826596646555556187361938154554079875516625396971767153629218754289561128827850348504880661669814770965438307082765920853108518756395115769859258982485445540728515845638913834909426188938796000000*u_^4 + 41332402959688114075809700864007484967914613653626205278178744303867318914174979465283502309692224967865897125013412346384277728573817687095235843638536244641526754760243747894226312062168574241792*u_^3 - 35578340803810504603669144503165604447261856650648478624102544710754228634950991776695017147333720682449583785660987734501302653245818064477853903165692376802698885289275703853762901959387483782144*u_^2 + 14387466564121191103750076104962204271107204675039750204761577858872058050009081639676114706257470809052452929178779793148554029503113866999254788645559679496014547810664142683462469676938093063168*u_ - 2372635456382143025532360584794824544992676807103657648667396748113097753837490502209540969033423660066224085410629758279945242854239112547334027404550369200849125089315763866137173959653096142848\n", + "[1055531162664960*u_^209 + 1295629317799149568*u_^208 + 640654889868148604928*u_^207 + 147117546781934130036736*u_^206 + 7081390292223476604338176*u_^205 - 4213118110558535615567101952*u_^204 - 955316782930804581461909307392*u_^203 - 47834563465552522908226937683968*u_^202 + 9291038812332588164903944111259648*u_^201 + 1298637085147641720620324995819634688*u_^200 - 11712762553680619986561451292027256832*u_^199 - 11024430268890790657596637447303842496512*u_^198 - 310978306211220304927473575293275651178496*u_^197 + 54330668700332640256655950447604454729449472*u_^196 + 2508691243316211082360072769405429298819497984*u_^195 - 187600402327903799357123015912285520265253224448*u_^194 - 9973816685928594790527450952417077606347836243968*u_^193 + 507567544651578564561183381282540233897720150884352*u_^192 + 24008854094202846570884158623069398225631983812854784*u_^191 - 1120661043585713149446797009654108094602749118939854848*u_^190 - 33724972728101244644533519513540003180743626870895439744*u_^189 + 1906882440446566984147213308808587117795198174075849310144*u_^188 + 16646606701194409602699902806421973836111755254110555556352*u_^187 - 2132023178765586023604885440389946316829268820378076675879188*u_^186 + 27423668700806883187869627291781310273780200421242724641180936*u_^185 + 949703576503124040336337802260885002117898499565941494614030474*u_^184 - 49409209599081019145669663533432991617094416350294961406496440198*u_^183 + 852853295659878550439528521593563458063654749949078509917383190774*u_^182 + 13509280252084114463024246625540207987318021866561752300166345933790*u_^181 - 1112570225876984650923943890060883300799811031813209267985144851179008*u_^180 + 26335586214502534360204728876271946793788108981723714477562390470768842*u_^179 - 134205835309841983080543645095687098214979207657968970430878411206851168*u_^178 - 12355938954868033039287691295909978556804785434395194936093331229063793836*u_^177 + 515322957188606821640487240440972490976108823235950718683763727298992728508*u_^176 - 10823068364926370583839895625272291433225580413346233471618305252850046804232*u_^175 + 100333067366884002368917202072674838354720898902789088267812322881718655483690*u_^174 + 1922763100284627039172845421754915905695653752017268390013534549089761219632746*u_^173 - 117864165934091741620572055897453190872683652609532438615096060353762513940886604*u_^172 + 3535452603785433297150599979872992179073492171288503534032113564625668309271154518*u_^171 - 85507640290293842268499358966829423450114563538563342874909157219852275696561531900*u_^170 + 1870747297034455756171127691272541076553050947661364943066031328478239970907028270012*u_^169 - 35647952520128077268834357220750666522517491383872560134211457885887794378858447148548*u_^168 + 438693595600982500668131362260241348615272424504741930453066809288641901702448420550974*u_^167 + 4874469299924050153354281959671788771206441675708907649248483693000344219348119178669940*u_^166 - 562265098270167588017916998470000205196138010592733585264312280680898958127222092587196132*u_^165 + 23340816748768378465000205187561207355072561114336734982040455203317362980902663261227722104*u_^164 - 712301440733569894684457640809265403264469015399703974506673011552865522431206488282535584542*u_^163 + 17928846319362046841206175918257032646024535921537929817716062894085631789378638520000772497694*u_^162 - 387708274216582539579968439213542974907220756302421675195787776706378741128797458078837849929916*u_^161 + 7329585850696727683526029300648127555678266872539072335332482404519625763409331530220097364686188*u_^160 - 121808045881203560911221771892066949509562382598943823340129354818009011236518944006179489255421606*u_^159 + 1772169664505000930028629556486706749739978492454365786815197899005314649739467241181946948445685952*u_^158 - 22191667982741437817381322732018540559054933644596060336110730196124035420346688188429894518136337536*u_^157 + 228941544701322747051635657383565228070358178854039555791933130938092415237907813813679778406298138856*u_^156 - 1704552542323515769695302657567366247652353699508209429888991631301198982404295710841136908376466645908*u_^155 + 3344668145862593769679191540762457850880882809613755451199144336620796670444443067706807100081998259418*u_^154 + 163227264931327819200544742927110822114833286280237819676119568334145955555622269548973185278331701860670*u_^153 - 3615792314782002104176013041999227735291679538098437536178832064686544004916874708079146812266665358107316*u_^152 + 47802714305106178312830586822901853535993983900814973338387636366924905515985021759383677511625893492946386*u_^151 - 439726183885852784611673826464261045219015568866205677112598486035728334455072713874566759940112245982491172*u_^150 + 2298823179984987425811607111994941761556013591191690381526223815675040165414035505194943366935803571131043978*u_^149 + 8498178889904067842314519626278796375701676734153195362152567997270517612809182687161465601801187751894012390*u_^148 - 371168085609266637562423708593239170297662684433841315614173232141400180620892017844331242012903279101887477954*u_^147 + 4906329776823721321553625026624576975793834758849107738974410754541330229935176993143593980353955184730671599186*u_^146 - 38087243611663465972180988549965666073289772916139003421317244737945491184303831252367327550304644421337794337364*u_^145 + 101311464271954989150444096938892076467007489602507323152413125024836399257072248352933772535578175657179483981992*u_^144 + 1922438503243345200937183248393890604540316458016352624430142693620339171919588028281173895664780815292692783067508*u_^143 - 33862692026005239851475345381923149027409747795256327743527016797449694882623779941864353106590731827144562438918454*u_^142 + 271944502417146247802108074910097407292269207486298285589413545449782428672446989183709552212691591160512098734718592*u_^141 - 615019380946786650500342131612042036283648903273615932563374422597787850870717547042089147968564350868143924914131072*u_^140 - 14058174133389859996057296915659701238240167706114936009834895658470695761397454857498797774877255814498173734810895734*u_^139 + 207775862650843230413314200007928171186116035869627462346020304286899884495635553729836029885982972176523057325056780436*u_^138 - 1231245455930696112103410167446409885325932762647305008047057891735290285272623280734082119121289177770145585321043864308*u_^137 - 2305066741836115258917693071772456410705709608773216064636460323583371058795416936670090720958472206490298956910148556408*u_^136 + 114371858994750228817365942760135843035762077393943941485860956972416998306668581000468722610218116534267403599758321034840*u_^135 - 986478013663739960538762802498899352474750601551668407084279935150427119211537073130718433582954857166645719794465576385694*u_^134 + 1508387430885575147772229839206586731390001548938523218051092747433134942115029929536486007328828298000951974490826278770966*u_^133 + 54863374050210146346311280918626075735920512606881051619022481264512521668948554599945644174879754291612806258491421253873832*u_^132 - 610795284560632532712330527293028077572746897437827614177822079953705790457620844476184051739918442175262626641228898760951358*u_^131 + 1753996339674055958413726484612979478122583263168849629447025155199333156961129310476150593513261649531491598396651705091209866*u_^130 + 25468978213997916546229091338087860355308932798357748333043702277033871290520169609176450952097638775641076325052078956753754856*u_^129 - 330210227558088924929598089058933973052706501510348884799223421066140922969425667017814889314365700214644992093202153158598333932*u_^128 + 1070743396163761629152092957274179444744827370847247905120036045593622420529680223627745221214075987443544205400782827377556796966*u_^127 + 12326180707619835646072614551193652924510896244764438105168589096598776505977702705537453625365285369830788265348819921096067647066*u_^126 - 161645040923193608726409929103284856078577120026550457346302989448656284898521948236317470466880955345534102483338154013313255866980*u_^125 + 463848976369479467258599985250126885902972688159547631150803909867870826095591217043993219931496044942936987659975479508236733585698*u_^124 + 6254775911560053047163427539066032722703398336491691849194273177071833802370180178718648657188902575691982714002919968510896943460860*u_^123 - 71328600593490251671682209519628046682956285435693654682439717810402122746068586542575045564043991335916627546991851009012951741307774*u_^122 + 131554977841396670843958268322366050477004517472557155987529496713215445863503749069146028594964403561155654913705034909557915727565310*u_^121 + 3124702995675945473310272442882013570461439575076843385731060495663887521386015664462895409234656806183022779959155404765577241667605410*u_^120 - 27454780537508145446189877620310336551697277359764857899393813776343213876125604333515669820836457134358298775815969963001688796352672228*u_^119 + 4368532553899596463758208421993461905914293265430602248539334544036113928675970430947287328412979184426254463564167214824400178761011642*u_^118 + 1420844609589180193046796698189962527851856078705477334682517648583398403659155352922472104108178649397362976255132401515346035964486993342*u_^117 - 8654507562674847597522884517126417641936301361531866632141484225161701607740152090329765543569771614216719521241793335237248226557495519464*u_^116 - 21937676359618059361778194947263868382406421340957875642367797396189885707718127875889096903385047856139623111390738746070878212473699326226*u_^115 + 551233462883522338263002883352742332242684044327205271918499524594824661614892088327787943413243111572646331103741877290397470923783615072064*u_^114 - 1939161796861313562135068604593107515168970387843140741016763317261951828739081111944939504974996277892558361010978690236029347693846219978200*u_^113 - 15872993039758353373478961655648221236606858229845414465698730646274952165628849309169061822944659490014829551567062060999350572458259102953022*u_^112 + 171721598047580499694328812006804006964731598413214580907343306852047509432633405538532458085683736777072692996060861740051384719141445614815040*u_^111 - 138881988627370040669361792916722641752534311797535284960373554464811945190803975309687409945830095085452030050340578057785732187917404826170694*u_^110 - 6955734573293531052090670921342119865081149172978708220349716064516688925928442265160351836256650127691014346193012189799401880219283170353540946*u_^109 + 38998987289964997583700625475999044590732670265712990232206550108404172501821444378391941292999417279170220229944139681030378195157344860418819760*u_^108 + 116127644497542782686454315347601853413885330021611710855704973673070111978748483081587902827684588545807774315849667422048143171640899994555550470*u_^107 - 2144450659131003504247266353298061037166039907043859719539460749185513725760884046089312383155785146616138870869235545367099132723815666507745417716*u_^106 + 4640538499849528531178355434363727731768854075075526850782985606171255321393142255420652761506488021378312249713705571505369112208491289989273825974*u_^105 + 65665992246249596480120597737347845206768707407713977571153126118986365880149269582770424934923396539274998309679471830368351507564152329383830519208*u_^104 - 452914551694518153151677718410559263189370901323572655982124435489969398155289152442658801324774151598033771459877058060265705604218946524506655712152*u_^103 - 672407381503541644670819285384384558829530150430937121362722417442638177211237840844507956825367350967663811087041842476838419921664801941237673036260*u_^102 + 19518960264017943031034809178658622736005140548159708435951638747024723404271368072642957789962241802652359544203506878720625662708135333196158351871096*u_^101 - 50466691271977549241159568839203338382066331021484597991720029752929583054217385632249752985122979887890152228415290941261531793821426950867955439878150*u_^100 - 505797047274735191756295499876914750853111778433946985777450640311396792417717766239741038608671220307291194959857550283804172386702351553650661293414584*u_^99 + 3606756630807361403913190108191556473405428341767709108938553258418794717095721137642410097860698255064692200630421306667761325565184009479478912707791510*u_^98 + 4303583599371049265293778052639433271959332081458644847913601477256058382336777398041583975186975828752527546445626173035195429155662039487530820059433960*u_^97 - 134841991129624702800347384287939447069847016436759193416023843758124922128780477010968015994139176819518203826347856379571010645468071361806238575814169352*u_^96 + 321456636264092118201970390014904843616400566002169527522007288975758763897669808603306560227529157896760317214748883016129734457021601673612534568053763054*u_^95 + 3195073542884419305653397270763069523353728007732563172883068821041431138510574028708373000332619745479827453952125668485165709422385957023844073969536976918*u_^94 - 20420419121537600084646250002215832741047571172695209729940485869152816968871391798298615730041355024725532603670118615016897302900355089078301007940611967348*u_^93 - 30726657956793282299800759314188273230735157006643198303551971791876007811268092600355180520993944659469485405697859058549997846910604224532175918600387509424*u_^92 + 698240674294327374019460487409715851001815768489009397903331482629449436427863115131519445391896140033491444687524646362443524716419558582186912523708380002486*u_^91 - 1283248121651216014280849655364875235175660529431506694369865841304833975569186146699834934156916109723588827568342033340183968385180961761032887843621740806348*u_^90 - 15644703541266259189531580886715369271851016734674068705149989723577810407240548580482712395859589725147690444083449270807490159979776399972499394088142064671658*u_^89 + 82017554085276178511904890609293636295901154319701316071453277971767487947102723762803637792118719227732962521156761275036290495494839994685929485064801085845212*u_^88 + 174107242049511028056560638963865448516304936024580454621980204556040846499595732170639511002314233888981960585293013697506250054923732826005135844867357731889878*u_^87 - 2637754383414563596641439139436149352862675371763912996052599181445409092681056218513522228872485222082898349032137071161871746847373627926646286942818817142083106*u_^86 + 3187181266487077419879158494265665577300859075755052439669418835184464600193024522711619713135297477151969070111862972865655786965152293365152650454400427781725236*u_^85 + 56048159490744613182035879596946936779297721432159667932971163366528225919098634893534175334965905596855373572217853384842771494498906458636993181988407662061796662*u_^84 - 234432213743664755427705418443388140794256067240979564301408729689598777616300702173752920691685284889338240806343548917094527673773347991873511110886649554914681882*u_^83 - 662526387646136351212653298378934563310101573017395206687710021803327137848745698507289332638622179112532033820410528969493589884040742264344961387282280222825944372*u_^82 + 7193071499229450800750125750899334437774330578268094949513722876840313352218557785568073668306404090091389630364662717050709817313840377497586284178814925488749742000*u_^81 - 4880965467885567528357463310216142492500142035229226734347909678807277003746377676200202060914763023067475091638054362190317649087748334479401542110201603730725375912*u_^80 - 143313614637933581791297612461901118308546640549745372185294606217676719587658962438238251960879365277630616107895980475608518470625944122417561736169091507463946398330*u_^79 + 489034816927864572275759695744294790411237707530014493803355958462610198386315459291402987214650572929886702865285221248468816729937915771314841168704467125021521722038*u_^78 + 1660371369101802962303084868982305544807101631227878688901291604711581843412868996401024250634859195334416931751440944187818345763016115459989324256110135972859578646626*u_^77 - 14263886716024520507714737089117444668929675662333334773255341066419769725238506767356508525626491442370132298350808583574977491900810208061952229336045860871128045955876*u_^76 + 4859300987173423017631734965456132642169585091594933300966229779670521548441091030501771543939250141744703479114304894010444693473932532896559906668138826171371859474822*u_^75 + 260651720679561552517167648668385513695669747637184043951629779102097417261920108667908339334822020198766495288090126538879210317780427864977949424923085630670158885571284*u_^74 - 766437047147386555333208948185050109661151077507446191240833338484732325242871024068384861375334567416686698704511284701405931330848247880955319915522407716909392521072502*u_^73 - 2766427593532802982757377131824482417101641066881873568632964568108151703365633709606504539812171888640461035412679185020900960530459384912206427827614000303363370474120970*u_^72 + 20642478527988676241066373925372634397360545111062378500605863252578835594404082697071064866702725032873021924006649947711978299163316930615645589877137577521069113053287814*u_^71 - 4754488599471044859460647542410597932091656820971419541906326630865630645532899089941174416401526691794575429884389668527292716394150277726190924314924714120579385504815586*u_^70 - 334111167700573515834529676551330663560000652807403862731227871448432037632113297389070348921079796308461401451845105648085425546304110334019386984035190171717682851329250412*u_^69 + 915142880710825346153468963689035153328230361364536567184340209713849968832790386286786977688076411488066048405775980269581093067523793566385441804153859831879356713976131266*u_^68 + 3018410556392205072330567284035594482948838755463699777928994978482969749615262272197519022855633656337989256156772388446222063303739395724122701298387378240376153941004220508*u_^67 - 21582534121242267870159160470829350729877723007874369574929487596455193734089595998579427292399831200133536950931389724635753294058294963603178607984325048480019766381072159884*u_^66 + 7917409676769616655172600345065653021951836795294690515245121519255944320883332620043104446745543180394712235144733990442526868460074772434370986816565594308753164600924150384*u_^65 + 294766660352622998819301543631684984078474758162320277514032488134664324791352014056628361357361468877791486561139354060300052915725624780923631838409975363803825209743053407126*u_^64 - 829633240273447894894076876233592842185999497824661445956048391845221558333840151127861918092343131704880122075161910230329919110982437133476523082848249747017102762495919418808*u_^63 - 2038414863371303932345691342154937287538327082438955720199598085978954573633496586021775881317009197977821270514625079971099009338492616326887285650048584022590085379990589651066*u_^62 + 15971856540718411633235606684143560761377438336113361838914273237449438426279935846044423230583266396685475350686278725785235922556150810732702608026075441899259779451496865229152*u_^61 - 11885633896480468123124263493107766880967513937314868899909114877332541942009876101330391893658370816438882586211211726671198729379035611415806935904119048358875829455487946276410*u_^60 - 172343600528146382958506561377838032767680183301067399729419605639577156711231475993730826464399003233576400559991738034174785220207736994168340286221211412589876703478615873125366*u_^59 + 553363859793938907309538815910027143282979034150440505217304237686837149410498352226342471766365848916408481079648274152760027483101601028226742672611523935436702563882562299391534*u_^58 + 735040401903262922166669333774468598469849225467956104068691116855369696648772790381535127830695478381976929231187806010197729047728530397722476508096918936958338274898829428165702*u_^57 - 8070253280041799439810889914419597305245665657083904306845698826255695687844802483884492918674434076066689384508983625476987056340520518124345128334442539545152352907435946826754600*u_^56 + 10587783873111199985789188014952312184672165504116569410346038683224817966528067810995369417282290697213415974635909108618844324898481696569410451670164865291334290888307485440327448*u_^55 + 62571870733826056281707981622426985338156005305395839264992800862416662154515869547923857224117090173464192830571083921609384959772720590613191297811895135047547945992471537758490216*u_^54 - 253787855583280809425634304342934403439164670939245864133085431453744727671953717517993075720765081327968292293761997461220022291186231301412074948384358157360319500724546255601731660*u_^53 - 56493616081048325269335428940640562616690045349837589355553113350228547697386406135651538916963402586572319943853280847118000308588818126745352485484237361399617546743852632855396638*u_^52 + 2606636037243421774488034152777083490589079260479172994228357711256475156293853052804747700336839939030289202313459988730847073978148528507014396416755802098741902195505383951785642108*u_^51 - 5264866688072590506888886974528239174702670676289531915603115645147158679303149393331125429996219797315161586206516068261343624521026747625078072353565940723679608556168915699305505692*u_^50 - 12149999331437189254133708239173013862613549015079378156610805823151890632790089525658966253163771022773496339439789130739874700719693458958224329759302363608777590116114656832686735574*u_^49 + 72648812131422895515320482700036460208690973090087024720143535165391043300164655017277767797445790329993374904311286435076161155964564834714814391102164375545993888381765549185340417432*u_^48 - 53740714145009994572447363703919768670005719364449929060490442130572614588454088797998030264362663068937975130184435800617965346506528117193153281242425513000500935614373582162421053348*u_^47 - 475631885894694917599001593323686229782753032207711676065722141057511220357511673172712965080275677060439113743848320316068023483295261670413943047992215636821425367856039518914731365426*u_^46 + 1420829734185988064869628361513749238753793632038484020943786636005565377275880358570606787632062774119709686991943679642438704261791894564256612462071642839186172761089051511972944819876*u_^45 + 597941942451164950733181388638592905838289261809308764022324483866057273069362793977293703834572470867645412817180204890018845969215124699356712195205383972914650214295723636717919089306*u_^44 - 11422227371723133104864850003819156646512911405288238849019523804519044822331944291035994879395922408466216284314317116886087182354392527831966094820007124725136776675463114225986216581298*u_^43 + 19233109543044997452480352807077072886498972263195979309857374526636601100873499037298878057266396640389542112213631911801784218375445687218319760375611333614481279502676461626101077364032*u_^42 + 36045172074471507739332359533918181305952039731907868861402744345614162849930224746708669099664317599367588807841663709681676531196885084554312375732281445383399074451897233246849166775612*u_^41 - 192779814348086430357828046883104132616942696824667348021172781555819936348800542588517321187226215885901119081159760379112605584618014610774801271296192901816355520433204114465043895662086*u_^40 + 167553629770311160508667673535733468945590693302561322007147600045842626348795427489964364402807362698960388030059197945567858058560972059785299737570091180830132377929573796321179693308260*u_^39 + 764266312686460747977517232699139391677282186099369981564433064270985530141093260387490946810296707642206385774053999501075563629436886193743013315434526813230525045325046371611525530093548*u_^38 - 2386991166256569013479492230617497686969456130482534082113946743331268033415057572870612275319698341279844542934185190667792574428413716322003279197322518810297747219802064320229963119507160*u_^37 + 734812093643153654975469852184682094254653250414844090456038152828943278952053348361430153606769570178988905085647709256441046729518415252847493727192320009814302677333053863009064811015664*u_^36 + 9879609010445716634470994738151114571709996564809735902807255136523914879521179381431317162550174409772278710410393834144908973792393726863345181707129715649937333341496011332342677145865004*u_^35 - 21999084675964337271659458148761068373475300573795401434821243626852692791448145812996011314962040500935798654654576926687647916577072038889335431655208405105309151795888834778453816970990548*u_^34 + 2437050974024325046903308339031856020678625017729525377313652952307733195932801923982896301107342506069822733081462354039593334305078501664800489104210643144494605122080407927533626325678444*u_^33 + 74638696614535809106751979958147802645652555677963996833943729371901265088925672312688894771893213917587331455502651377970325155766507893538531340271701458005069508202336586785611339685357144*u_^32 - 162824720886759690249791550506267582452192954438776483951378112570512990839798159101740052666694313891614992075696042323577245153776793488824363190105848510723682705452757360099546559625605864*u_^31 + 161087601296264262357829095318008962401778792355305261683568676859177082016490782038611727902908674611010812778984743447198536584841559018805248213674355528473136752892088250972059816356126112*u_^30 + 102585422492952619758518118061251341400791218247294358407209468410722480517933031108842953119650013687074859668022372006844423519431642838288668278062436891927198758980672809232133006405864176*u_^29 - 1365887619839448997394292455696515097888922276143145005804368185213734024320455829841077914086544199181825501263658645890538399748091953061973998213925736181268014562571665233334091226387913960*u_^28 + 4596318837286886037929350934128029614932955308947735160373190924619033205204672537444166566368892078176530662390821703714656029208876854831083557713736279609500969892215035273723957086162374832*u_^27 - 5008105475386839587263989685850020590736615998660881799630733817380771000401065704590406842229512189783721895401257505786056447735808796607459748311149240217493449872269023593100952793468727784*u_^26 - 16481257932164187821403605601653274053344205687687048694656269279669713069012973544693036676915672153262376277677838604009064070241556868018020347470303942005946501447129548183147297482839680560*u_^25 + 70324598967162870659013470164696500894436079469843903430485482523822469267216028204755662651348227286483041368593542619249013187791513898714511515307748337085797787743685338560306513149849414176*u_^24 - 70908256734963666757845971033984639798021261892067586785476861570768369185719443601830146004516855895219586361583749870342501541569298393991714752798641224304985486006553583135316356024191279200*u_^23 - 194479388214846992392741839287497680628074985611142249230809065767170054970963395771501648720171870528893369216146049556316695517915667924288420654656206285575522217211808688168459663784871665488*u_^22 + 714062539678980907981418725246111654911650823495561410294596264402492054753945477950353836978036134562950642590584322951772960723997655352341733211416610198271286009270010656307093652172822479936*u_^21 - 567113865101505670572396781808296228322163361572625368351739877932337650996956882860993876582791601611392507882082472803470920747681676829390677648621692112218608376459916300277451423756894255920*u_^20 - 1734083286655870768362035362463285163634057267214501370882203129089488654622208705154083045425649063176560559584642765528097322075502699932668627918553285796228658911866820884823046517749892337968*u_^19 + 5217331911334157614673154751202454072739258165772166345992911379871530681173708967932202202572233038069707228223537912540519088164009645990671978195567724351797910794768105179592882975303268200352*u_^18 - 3266613579599291288160068816634214383869787387278158219040549470172899893209876173740279514887615499950202154778493758791799948799964602030907168311677145027323334288471095878236548249721479132832*u_^17 - 11063374521832781464327438312765658729243898292866860201248966357216253999852586362944298890115137218677952492840746396155051580053959758595531557683319474613764250744007113017805923388190479168992*u_^16 + 28202801525216439533905635706799184070739540778033082753954587026612427639316345182860634501170807664774243838937291350384295736483137541425446930350443201927787510600994711908309101582612930366432*u_^15 - 15028629689300974031220074847291502540172179169030463458780599378751952064741296814988942814862949089377091568246450863909536262554989729177071670967900884493525409613107878100412415309714862830528*u_^14 - 49278289034345233238159563269608644250695680129942656990633535174856444745650824451736055556220853774984169789030920125770117740840702312687477422423134593791689379444140226548875839595183443108224*u_^13 + 111913939000881202575135025858627166021716430535555080868422838964878702552766040844787223623514216319530743610005897992964451442610218859283422456440985383043526935837524309241984929644408958229248*u_^12 - 57831252310327685459241261248357366354179259381893321400839055683849307684640152021981546479205947875645705252716281319904916355725893239614009561530244967630899832666259024865186495055690672505600*u_^11 - 144547965155403486627538480079416124220305894919424586829662075060155293966688771224823573973842815904313030017593921890279253828501791952293412888316342157546607862753662284203354630789026716934400*u_^10 + 310207469877407431875073334783341377125144447666464941754090288355057113502847707314099882064627306026581055104147709551637038019245499827259964620777850186716820079100558546129674093010604739817088*u_^9 - 175375878267507827403619238120892350413087268544574108336482619057266555576778557672117487534766634930724087345182604808050149733892834374803848252111314580316142937277945005294094081450610541147648*u_^8 - 239956256574225054120195217223324633678805826193046986430207324100943921114768602557904298601192340055004662873267586846481532715433288123621073470871102294412768765706715112833293852421416515927552*u_^7 + 530096085821206277464206579928499221370614636552742776619117942307300068216764965119354837125301406030307870485871316603514879647444170384671534025009384157757363457760757923115347595938392854440448*u_^6 - 350008062547488490107407310408530044068817861134562539925292391671364386998778474945021611363772084433540289780300880450902468792683885521610478181425691696962602665785893863095656847361554594309888*u_^5 - 121105354074480599298144018546147374554538802155590005022998356156669475850633228935982672015298858241908980020029978071251874289093167706556267335661202806568827883867659439624176565019471512395776*u_^4 + 404057307610479918983282039232030664796370159966529326508418750802876667457596546965237732886848881198908879030429740173531324074764245367986281092604036276765529023635185936518000512305172872758272*u_^3 - 328802395617456014229679329358961404506087969555172427905705851211101325246543118779572645062359632283724623595257058702539494300243359543828318219369936934773563615700567896054059719737625224539648*u_^2 + 129349429402900959620471520432248997364892798200031317921432823449034489343329387738389888134074009305804774239472263472010473845581626283943847375397246024822521148299582201454138246746039026470912*u_ - 20975262370678285040945493432422339672364865190786346673734445917308689107742533133403711280118364425406610196273463937949996166508459122659291044602609695279401459918440416096803848421366355250176, 3166593487994880*u_^209 + 4253473926190989312*u_^208 + 2437946947549771333632*u_^207 + 754222462663958017867776*u_^206 + 125537821190113259467833344*u_^205 + 6982742955517722188002099200*u_^204 - 1227695074122230057568781205504*u_^203 - 235747794814408169332441186566144*u_^202 - 5584761224944641850448011486822400*u_^201 + 1959937790226575754096198475097047040*u_^200 + 147033887112092636350195327342015938560*u_^199 - 8073060713539624123736192705331856408576*u_^198 - 1122967079852534295163060936160012419465216*u_^197 + 17678683423442337212091389494680016570548224*u_^196 + 5219667288319449524779822301946770727628701696*u_^195 - 21513991416385514947205130619025248611095674880*u_^194 - 17112370285399700903824144467171257411997392551936*u_^193 + 70335597560730304669834575366416337034605591552000*u_^192 + 40895179886147446400956181180927460984703385190823936*u_^191 - 476421635199483644973211758847731870593900683402380544*u_^190 - 67126394648659945887299590684850938363743905693365465536*u_^189 + 1736536315305142093700901392429098278935980132281763876288*u_^188 + 57212393441367590266282514004098856072936847804918253752544*u_^187 - 3351787206244630468191723168312892093084098923954717522053869*u_^186 + 26195084251546372802074794312077180486231613525146876655861722*u_^185 + 2787594444150962049468165369140322111720753855640482267652362492*u_^184 - 121446437330393767275469623062622390072493140083286996658629686316*u_^183 + 1298903215874652477550260975957005002624301046038173451480919662681*u_^182 + 78508841606635626071969280613099374411914066761027222970349345312818*u_^181 - 4135100463427450302238928126473773955659463174087994231308962151213636*u_^180 + 79974431988807956689986091014292174470915461521114901370663672905090224*u_^179 + 712022956827655442818932557535220560447188935869654095195555293517406326*u_^178 - 97819912155236262037092029027778594576590056862600388127405208944242056534*u_^177 + 3224237646548590606424942971861371208530066696496802464072712683209412603375*u_^176 - 47160322010091467446877019223962444520810859286227134730429782145663579060200*u_^175 - 673863019480409682545872296657086966751991639841516091441410228667383678211749*u_^174 + 63062650552240238286386614176464715687674126187546232892039228902574192165281850*u_^173 - 2043541273269456333618129855905558572760645078997717960176384833572962843477036312*u_^172 + 37678825348883728297849079003963562234226618129116652272012368221399552817367711424*u_^171 - 120557608963093302742076068018869208449366700012212731002365416561077130935386486043*u_^170 - 20170426938042578480533877363329231039321648130287348722471008028989298133571597993898*u_^169 + 898416258121739343947940150514434480782718007240369565054973775535582258870044271024464*u_^168 - 24078509181834079027950128235339768525333605553554638527021108068950545044147013680938176*u_^167 + 442982581667362419978127137652840035444822673601658252570695294036831352194338397356948016*u_^166 - 4137904527018419186033312661048661237841652472895554613422006682706207418983756707635753788*u_^165 - 77894599439833570501345091033226021780026309097269926699729705224482713039394882848832527422*u_^164 + 5366734175639710322503710840806988065003498622629596244491932528867876166629357417820568470332*u_^163 - 176863886117344814849870368314359465579717092686401932747011843086200148646749841807848680613735*u_^162 + 4477921103067552376544934909286557587437040511219152496650514676719612427307298973843900576792876*u_^161 - 96103119674123663362615715118974867725747468045150024413806782430341427454627448907796437171379362*u_^160 + 1815185415360342152958324254069660908467878175872320026496594759664623323476406541682735359371019772*u_^159 - 30701978454095440494441771617116086632014631951989714305879961493623130580087475338518075871723364224*u_^158 + 468702080032250247591254887781189746234085156194956879444333948158660712786696431509645620599156920824*u_^157 - 6470571314092892846112324791545696032898405398800731788390837662344919460760397920375221343554407894007*u_^156 + 80516029979153063780608081386911466675934497810028038542940568137885552480767382821854057702393702928888*u_^155 - 894438496785725677712582695734815527176249686047711451864802730569250539694792143354223427900635517377654*u_^154 + 8694034487904825938231269835862008154442475344131147108676391191120898341737300995009182472204827595895810*u_^153 - 70803579054951351913747695232739803077485876515427338238488147637410202563016462885584305667432678217817687*u_^152 + 429313573441353455698735061025876108468914081375787332427472360890023941329706473862345763323307826963275248*u_^151 - 971105380287358212715565021114034253326940832245218570308116455395564707307079940651662528494017494110202094*u_^150 - 19657627285568601596130610925272251556742171038512196961267117632618070004642454276948146251163090234164956496*u_^149 + 366257105681723988738968993049224800525702906156756110681701511664501406661799299317444151180415092525065718825*u_^148 - 3710380772411980200880155943972589652073274129094422126565651572830832041580355610208566467218022778635234978366*u_^147 + 23588333246354188960838000211761276451197439218539652867269447994039618904214012544314775104954236989169526405229*u_^146 - 41487361289394661888608721387612330412311613928736176009770577661420661206642338861728288713560792869934591093446*u_^145 - 1152690685761030711756397510457126428035291666884611931273559135550840997120936631951892146744903526985659751128658*u_^144 + 16995771901417448748424910873343300429349796937112858474166911740167083147299381015139073982971270735583947385757582*u_^143 - 120371973033693957392137160967580319293610721404302188200127675977098014237993961225328546545146762944489646799258381*u_^142 + 196411568864517592260256696886203583474210935982785569647183044711632893451169802047571616842668737220079963880713314*u_^141 + 6209120231115120851770243700012695101753101659988081646320510621943351987751198133813661356641156999420115400614192880*u_^140 - 81711136057528195753208025197064258446515879751165849310852553752684381145876817551951669859340433002263271013067243744*u_^139 + 442390957610782450872395277363185449072086530017860511048443457868209825687093107645712855918673678292343729902278149610*u_^138 + 1033465263970458480550968505412264781998084330609780329069304865914951722515038215419847051789860470172979868940330129506*u_^137 - 41039242848359721477568188376739684897506023990253685091176549978087368841344804517601573199255137363990432537715202417445*u_^136 + 339662669416716150443086678025819706597645698640100573311870848601215061413786840254287712231892965865534258156586282079866*u_^135 - 540197079558833856084861992447242127151604106912576145891380770554408322446085243614931416704526942891096196017379055957505*u_^134 - 17566727820575339025267642110298514832412955792281296535740613208764033015743303244651605107852095209440081033514125907564952*u_^133 + 198786709368660352179518834871894718343717525807411055312226205251065211038537385865220965748716826197015855312177785106182211*u_^132 - 652999299374042338162794512617902933251937383069218652928311533636230105917687657147168320062693003088195310026347271398854930*u_^131 - 7039403673779249089326505966894751004237226408274209635586746140923246673217188921796985711016831446877037851713170407430170858*u_^130 + 101941901034552077348666105750765238713598757728873134197191780664338551243098975725196765071112504963985497946244210125694194988*u_^129 - 412504678266899690629983225848446712734406014814923101518866911602407728439150987323007003683797542539156423508405301038479361123*u_^128 - 2922248551012775236348520631972599437147785357986000217817524454028525347390254555235161218046985711000049161046245504227515547618*u_^127 + 48193906041025087297714024912330017490985750732626333889723886741822278803667231464367169813893895791522883876345088332169814702159*u_^126 - 197395316804955426688205562298551436087963173874278497345622583143734861329751815385412282083992795245348066108189452157444060931842*u_^125 - 1347191659004520203690405943808397151235563289262662031355800437027980342729671922302469105620658447191465281718908483892584567083203*u_^124 + 21224674697436749712568330876958038075803365054314894192707955059271498364207702914145958164433640168413277545683681946787841281623378*u_^123 - 74343361373093887767127607847874936803647494162753950170025881980151623631860910847632117590317783406108133610103952388576328155199488*u_^122 - 668361449254638359963956380029558779760800228471683912219655279811157677471843110245130726271593419587615652065493267105034782351920878*u_^121 + 8552178763329082024742810643739212747511554588308890195642891445254465491948980004570155333040999727404541036777331422486325216689526028*u_^120 - 19982272202619062055203750983996466637199031942447634285576397972030907235750203664593846900989828111359908578988371143886126450457869678*u_^119 - 323374569504041548717156650633033820701669320342622162911246778959891009423045632512956640157467411674861914364026626781005813710481181724*u_^118 + 3028411512340662701376840492795812932219701352170204492488489259437947622226155316822590115325403301238880105652847211222482468349564203398*u_^117 - 1801432080778540205720573893383164608516046207503602748215796074706227211022537489059883660009778112921852693878422023817081162958656954181*u_^116 - 139896181053907982861010380016248066102738626348982956063216899826671799296088411753165076282485606841897364626735645226324703425737621523094*u_^115 + 882167382064749859767652352529202575357674628028273158840029035842485640842468833558762118626355382529085546572352028286304028284503529936983*u_^114 + 1803120374295964146543213261620071408979974886050257467945548960670872705178107751716389990059922001721565162003496502697402260884612632959788*u_^113 - 50943977783459385374782110138131732712616278085818697047012669192129593441034208711214600769625769384658946783909714697719424372524352559353797*u_^112 + 183759545864537034715963926367966356955497396097690820298616494442164005720058519707310773118635849334474646497144946228723795155901208197697130*u_^111 + 1351225039098584811858699639717116387498985058738443012325222407981095772066567086435242241875914673445771986509253738232604963875635936935959446*u_^110 - 14765534070527081969889169161816633799384716065888029770644337876261050573125605144213130907139262465225599398735873098171642363320253120224933494*u_^109 + 13000842212824863683514342132890463672114654409772490794295509475584101086612173364740168560854264230552779377739978237932369064453083804265087213*u_^108 + 561081671648425786448520185991511416981436499712389478378166651669206431459743053491502543300454481013905962806276530366115619271611242728990547790*u_^107 - 3098023324015764648449950813112287717397924425797101403235555048323962881700053725731328249238080356794134519303385058767328373268945533874396461620*u_^106 - 8874470163287105662523549538207438348774606281900280663156104939749001621512496938363737900950000997815901507209455361517773272521766553171328832622*u_^105 + 160820215089534023975129757440872579998952079028064510571386307242895903352933121480426176748752023691642571973644855555860944575279210185979044376557*u_^104 - 335447479309807146401614736037546277197750601910091408901338566420823385021997753564563393813282110965537696096836446597579343013674113005239430879978*u_^103 - 4704221922603929759350763811742241624256078507550935854796803958274533743103348240964934741331953635088989483581492049344260861379347696098629065893268*u_^102 + 31280958353006632526034220295584743856279531017591982970282933881896132222287666527156744144530407905766885959270923764500509605798322879010265417588808*u_^101 + 47939996926462229817130296947840970116246400970566869118005410669857017591670386118575166223753999789822777323053885971768052906573633806315437196788331*u_^100 - 1291001944728846157066916447491485395833151631162930797235814188817564776428428513815296044547479017640921829234200698439572869559712850263070528559434798*u_^99 + 3157025578372219347199318339859293729994528870756592999025922807648886581414516294184156348858982461567866652703125225107080326982431866536892655468525143*u_^98 + 32205809930170498040174812926833294544605982951768748064038329612943349723740981689053563535135778654349409748746537053100176022665972453003312500533165274*u_^97 - 219471639378198878166577894978667087904535091581708286493717200866686357799516749393271212742780987382388451924226392370559925691404481462479788212945814474*u_^96 - 275052239299964083598747593667532142451548380319248830269231866902865755461601636943590031294561295228636084753841793805711380573731626386336924594042165308*u_^95 + 7880720484828853905291570623123710574034698598324311927077345505910183365454711988809055461074414567321996581103593184157152264271126239442979773015004142442*u_^94 - 17980716107008817520307591409043493971820359877242182926492616754930088218096343018940045870689187258389200745876439318203296500003646639106154495789823591176*u_^93 - 178374000844811295664682639105723645317583435307339182564844594495627355077106038150878833148790906102485515378411288811722254572671161994563250928073620630418*u_^92 + 1107546428035000566744141373277300331450955697025815882953790231223975080038536371742936165356315280294882158189894111458784158964258941065007904718340352792930*u_^91 + 1596826869168467837763095153825191446090941045883653127809316163177436572503773759741499946448721191901600603916759209583815599026004516700349253281271114755761*u_^90 - 36082427177967567005831747197569934553106036080159655769301006193696296599838040852260708122968414699621843033784196438853670249926007198109635432579502294397862*u_^89 + 67860546266044514990956487453135200708609165970242615632681170671346586883385596909316711830444491582605103826213256122892283938369870445893466637022122228848551*u_^88 + 757016084148853950124958942547115577897982411655339636451054315528836845230085954378780177039551086499457957036682804988663837496567739312439863148195186808556834*u_^87 - 4048826444224587696943651886523469762908564096284426175780405849889959076419134185151855093426773937774447220125882102972934211438644987738523227553029445688514365*u_^86 - 7211201943375943798605110171747270168512272398067186496593281490668084817699123829063579897376343382675043894187835425675343066101112298152098963885518425143944612*u_^85 + 121752812368845343982694477982896136217252210914589715797111192300011692689403046947582553133811210756196042411753922215240879569534941331806920230839904758878998006*u_^84 - 179954180071774783816030175894880288309631456826660352280278847018783091779971072574747738748291881761685519551261806020012392057099878593406582900038935616725354596*u_^83 - 2360662885851783526950741204087483186182514902317697762010783116489977563350720043037806545601756548361471323982357286936336216409354446233391071504555428382803034961*u_^82 + 10907988137622267142745067288912770407302549640622179135117351434707190160773226165139073061619320748851742728569146512083308644774514710667357980062134159255636875718*u_^81 + 22269094681554909422131395840269766615030969199411118804674587667168231543369271680805891516318398584780360571364225655596947884892066794477226043987809901213246076789*u_^80 - 302720835189637548095523873329534565172863402416678371144472874760048073183157129034295440427082502330523639325054021025452050291918956099223747721062162294016936814440*u_^79 + 367301054324804339422405614271511748521503128080434287970301499178446150717319001180078519158421744451969578473129780352241183162590296189371936204831203577055998592002*u_^78 + 5328654662754794986760046444525702257403093892323455578207859833829030348616986281123697807457516755335234273755142602872266934587486731820763260328359970841792456070590*u_^77 - 22190259329860013601473853678499648221234336959920625335519721116875590216342609152065882038208031808484884044006068726754806433231374488149406294518065159623812917298901*u_^76 - 45696174603794751292638121686225973603980629930332323228316582170837941265004850174569982389624301878162830128393628992542363517515534678706544470027074387306588296026282*u_^75 + 556255838071036804841338840104897527986985019064439113462958938404542607109826655137522557066630042118424757850311103219221300076102301610769807022160216717720612150837263*u_^74 - 633259403351773849238734813108784169220673439202550417371642289258671221190851537820760881006211802291244622204970323040581016821286048893613944531033068087365186212275554*u_^73 - 8598728288103334265964696413249849231536844871444032007914790861391774661668658282508842957602306856771308129374756990770850084582377999638136542429534521357012679174859170*u_^72 + 34326387345417131601480871096877893215033550297735757097218611181007388532129695220685265330132163172056901727840319404893692623525118501902109582190535085258674178895369016*u_^71 + 60216256315765478190154557013527363249898292188743785979682966533716273256893142602756397982212079650598733131089058572768966967737716520387959875968149408116461137812183984*u_^70 - 745752610072430106222736722407274323079743673003850704146161610745608672422322803426250960978949579058364588670013619599197455163563495052684070897234182344984230452041072650*u_^69 + 947709841726803091205480670647965008710339520093032799906232310711943482017334850833205555592369572277193311911667678652052969994250313150388721670231313544901185461651117917*u_^68 + 9623664006924135088698645557704447393401663220791218810871541421095991135760829908651727278417928905061010694028599336903098257238009576104088615199012358064214533608135801810*u_^67 - 39841431137235328568709321593388422184080785033926322243821836317854999783369168625908781802022434125061434058137166637866035861435409034273413193467312296759954664341211583412*u_^66 - 45120049521880451887130271772740211493908388959066220968030487862591219287956934553626738064279546269844216469565692978521083957801851691838024261570414484905146686878356630624*u_^65 + 709951214356683911093804354633447718064609392567342647330858286343317486040355740258437090096351936247495732501151549429267011786269339291541974749699060531471840724201518923997*u_^64 - 1154028709801339501771489500871787514088551383533967785916149235110638365492809259978932628863958204139545427230060744128158769723487924529504689413520206357172869402448553088204*u_^63 - 7087679973703519174417469791975412850862983092853143265644438415356090477247950821832493283104609433143679418566604211975813542152808972798243733474566798530435068176993170250180*u_^62 + 33702976939134335645146885317665834696722356113372001271331452074162237358718659082109395747802460477946705458821144239644709907149841706949045131511931199289250137456912175476942*u_^61 + 9830266496029411062336057851338109909842934506880838122769335270630566987543983123683785412712981078513991223951739515985444715051401658873198492313109511737264959447030596162434*u_^60 - 460939274357640642775084421326543796138320972087751707554103138907462257084084666646948291055709702185419348682653624643001382283738256487788849617142689887610565928296527619363752*u_^59 + 1021497515818449906126825131712533459524191397249173564594666881998070749274113506497576878992236512759941966327760539810346513148174577539324200044055445608039026836613378128892927*u_^58 + 3108382746332304958824793685432036365299886113278877013254083881584566825499732502437093300681597939005386881172782458980038490009423769563590001631778521340981206199216620627540276*u_^57 - 19747577247301397373784670206883311387726497639667965696047605614033425086480041810273353871148941705589976443752345333393781718900765735480623361584033688061795565311950021097347749*u_^56 + 12360941315854922871186937702765902010518573247892797451290098181818410912111455159017135575343758198176143448329962390659390673920050495841942043566795326832047631973447550686729774*u_^55 + 190573719556255477441602322662898364044797850370474075519790590234090404076993814473074395389611203249616317772118504362430789971155319116542042972213485003149948520220435283260018647*u_^54 - 591127354827298095826924335887698613094497123715160394718397306836809144549777910213180799608179689093954023745376781397674379200507409029194372906402301751346715546856767362216403196*u_^53 - 590761710472123393652306237245266779658838499307224374797239572168310949283188275124645069678419824269340825692462327144644417291307691197333663393571146666484014848836255850243978529*u_^52 + 7384453483125878336699213755362436998461317186098692655919392801565682864487965014586576524996946763886763722335609770088624033951155571721536872350599798729042345671107310659197475488*u_^51 - 11442311549931115869509323431261148415875931486439814690563048795532064621996632880891759689953056101496261378503435510875580531943923410266880713962690126224357620117552455952479798940*u_^50 - 43411307674671218727602961535073351638729384240971159911584636729479083440748734228609286289644494317489488945830397033074102370408926732763975900037021271466107306305978403187969083562*u_^49 + 203601290731592576766259179628594685230946067259819337380468679947603226058884914320106048528485238748210614910295399556621239781284853169635392786909837655599333916508652881717613218272*u_^48 - 79318418542288011504842066621541082519223650092711512289162946067428117691168659982411045050995246681460454486272758271659576130215624947665355693306407260953654423082881951703421817634*u_^47 - 1544073475947553691366510027504222896280312679553708518418332089345855355348676929285210485639692831973389322892483618116333585878776266327496086900820179916558120063318530355467924501252*u_^46 + 4072056345844662209258059052893344761779748653450961206064401474135258462121327749780079007440045828903318365694140436829252513050257862765612686208851533878551103839648660276426794157120*u_^45 + 3111836697992347400487032597601613423461270266125708009505764671519361508575444020842589264834702760922460588495446530649952805214130307379077464549684893894280321499079180030711103051207*u_^44 - 37345303711290057009982977956892856546670447316734088365775821028213961442708281455467520905922077069949047193010675527770892368091121434209371978359422031025788208031771596528181060777998*u_^43 + 58311260950556935141954324426349083276859442109577940469576123689324969740375462785074257799300918278216654384980881964452336603026496994863859328988100460980836800079550666849239793498974*u_^42 + 132906843334758715621417132933355738320258358961521904414487517427108929552182042230736712958005947030423641832100059242380168495839254421661814433711011006714234942235268125600104519236050*u_^41 - 668053380983941200070446169395845998918471713484424368207240093725008596055456147433326381207445661812264739742626304074946364549893003952381418495880097102140606247612897702761467724689170*u_^40 + 566556551887553794644023076179251212600212068520636782865389269087839507788205845168906736984967212348434244346458775742400314739605599915232409902216118265902445380421871233244903105891768*u_^39 + 2848597869738795952672620091528088382273572082444861779635441227039083719146303862100656445510436788309439205269724288394316332172847192755429724223045738534043593700895484343815649908130804*u_^38 - 9144240757560392688571091029217572652225805013656885581388181741830944941625677182378810789149706940135721209422267176812947677991518097308069959493740154106376304262873723864138059286868236*u_^37 + 3249789158791523755885922363306385319227703805977639351791451639483157470331350923593442927944081136111688514158693201907988882987016216402847126396404349993119266292547389601875523507443282*u_^36 + 40350819707983429015514293285638973377166820503489485265880791134572016456565237400998750632344387460372734619449392997677804071443437484790724124301264669316853882541518395167509251207366756*u_^35 - 97649139709018622116129882821375567251135934654869263653253597732182510458491197889452177657035391669204564019788826648246131860885290516562968748557477135601818778022289156502673074850707160*u_^34 + 17413043226964007449799732381181461804897460105482019835387867591066493790027247059768141121146681785025237290372139606680820549011072654171747248550752041103781025571243404492396100070887868*u_^33 + 373421547087706519380844484303244912504650193279837674161023809978412787546955318806464426171314448722988755902332727895032121173801973984851638846084790525573878105254982661831627601054219892*u_^32 - 873439764588608392152455863185391780301216254255625908278489353497342319115860795109513473284250814130728926555257039648280832168093013123769759648438053088490471886546817683842048983645725112*u_^31 + 626810974872459488541978348682997925078491344479736305894557118477976639383144513051642865062454637016162980827526329735519365605552945106006683174803031623731342256204348626410940417703992244*u_^30 + 1726694278798640171095591201998606716057267302032678406421875958558445410904169086232003682840729983433580496185763950997056570296268696570201209690067998231803118054446747253162771536007741080*u_^29 - 8022288211092455088607051220610461385935200507240196609595356347847829719045849046500709255657093502635245949341421799341618686498968881319960133453183958568747533828424364454759616542777111360*u_^28 + 17291989009815579562743165024360116095664438988984221107866078954835256516519517990712823333155897639687396643000984199986187648027698533196501620740664689084652746717345709970897211349991321224*u_^27 - 7051927992782080485746118738893890136768372604760616931702925725017149952109922512870413305635155081043344197808901315018957898617907813883487802083915963929789110457797609294984935971327164192*u_^26 - 87082174403859957147284489848807336693216428770336523784172895415874218937556881149735380741477266355261671884254491848818841803016165600377272858211052857772300209180286660518736901677623037216*u_^25 + 277732786640738509642038997357283126320019392645534423853824154611987200137652102301249899664927749243266351794065236930471967478452017783724610765102620463589298035480982445923406231889640240136*u_^24 - 207578279811564267601473662295016262500317655213705443068152631952705067604655433378449792420281448284132727117451175168420463476823915379954950683188531478838018143423119223168052684603461359664*u_^23 - 937229338606556029889047230266087561845588774696559533246652706048664181191929553610110452272320200706395859972711256463341009263802228078742554508578830718674282461688295359790769431344511614392*u_^22 + 3007242995778115753980673035034991270897422736306587041499749926499062889814041810843738951335248379712796231147597222174007709916390020235445213727373266674260771966014843837360753988886692628304*u_^21 - 2080355054952442099236830076457620826411175303320542402345304562490254662928780668243729113778204609467094855681460157634629972628489784616417141474071472892724454009950808863398699647915408109088*u_^20 - 8189779701749549803865228298960132680833084001946279877180817907493506023987769157610250119205440167561432900790265793768342719435178283086786864987426692853733090662595062008898924317901407456720*u_^19 + 23521865008680562922167917201172573235692301903452036819666051363292433362455111665404795998159534445452907401371662795602255463462604972112417039049063807425225919961778579461964866098440648814816*u_^18 - 14051323409454757238864917577670591513412385835893268313258084246814680778317576529719538773415163250855815123054245606584203435603637131852793541788373612282797247078861758455697688674179220472736*u_^17 - 53346332532707451055249062604648921969136849487517567536646458639347207769793697492802678683896820901122911678919961003860070582224824242472163479142816722225310298337387972074644290552439330828704*u_^16 + 135921219917392823424758819903408936547253025478095833386838909938088346503776256957120870563245972253886151511693478958654411608331624335301707830635368326520518242896362767787160013892924254107936*u_^15 - 73341437450612105502409194828013826798478609838280529253937274549889223663300387179259524440306571958334280945008926977676137656533161100368789885032439324972571426481473433890265230349257900183744*u_^14 - 246995443084323944238074457974157705382628474256963563706758509865186143081749567911222545642959812988794399163291674047226871937194416708225732646535663301897103746679795030695629469397431087393088*u_^13 + 573163665994715295485386737936138882947309340215717044636907259845783991942749191112243538747986035498506521669785428192391138443409548611413416267660235613845877225213187392429542871868609971409088*u_^12 - 307289368880702235342205216085671770390146081428062843019384293907129220659080069417083073274462949856335458006678588880884261433843619086048438682684799572885055766675578935514839892547497941979648*u_^11 - 757756427933337568714722578462378582686967413290432558972249633635209806193706435665783982640634677189865099112753561139071984378430546716070418523150118225245254490586113808585201482571295252594688*u_^10 + 1672364111380748615845627236436296112140135557933148205072818733252322092195642490233072734271895188971936719159478227078324836173756127820378829801690314273650883953587383089216742581769834069936768*u_^9 - 973633153987590482763250766342859564522495899614189629315955543932052745172385662147394055410682181406618102371016843850100756214686044283000084209923817829340389797793927380990876335239734129846528*u_^8 - 1317253286297620441687322698629188129111293564947402415872705683339151300304228619370076518733253898172904816256685169692411772859654531966980391967155164598505757911877286507805958609041911956846336*u_^7 + 2974535773808508941388512957234782058973868088889654291990175315298125579448572217344044421100810597396458015807514823822025475471391614384664638563687286959913569385192726795352274964057867753481856*u_^6 - 1986346852476003390277124848747132588666132885271745840980426611343652488841472609464681853948055794415693048058919525315664891111344120695971117162387537842772721679131737783490395345984566612365568*u_^5 - 700709927129856813859251694350659382323899206980932413118358381629682568375263840748693837723938722171869705533010679450267151602383283141118230435432088803572038371304986352770147576940796796631808*u_^4 + 2333371025289032862006574397454220408998876556782624571782935105860785442147679101280653840890266469782390746568405238850670166723811938512230946277500303191879201621678401637345470009236756207546880*u_^3 - 1896130402026357252895390785553144818436222756661594566418887753903224312419524263580054235253274337322627012427381245994585596936317423016003192104240291483830933044005017654356861942231894296095744*u_^2 + 740173724778485774694782180815700882000870841537305793057294624528632674530993686490556836959373936249420594595623972375210891064218081161948028350293415013928516191758995698196551605912994356536320*u_ - 117926036431896663111449535330477319976143383438699985098113214355724889159249997310384777018362318073593404204093262477192590896305135806699377179514334280222352822798801801779637071098791081160704, 158329674399744*u_^209 + 213920982300098560*u_^208 + 122602595466069671936*u_^207 + 37462141530436968382464*u_^206 + 5943691603976030666096640*u_^205 + 227805636620676106280763392*u_^204 - 81095368663028934852401430528*u_^203 - 12448676505198812813177254838272*u_^202 - 26841338678912751475469315997696*u_^201 + 129332829840522724307066945603108864*u_^200 + 6659872088513332524631574011902427136*u_^199 - 716643344634411856863532549728859324416*u_^198 - 61538848597774279396753942156751157592064*u_^197 + 2706781528381954201876660298627661720190976*u_^196 + 314331295923594505512399592815468801703936000*u_^195 - 8737463485871611095271854873960160817432363008*u_^194 - 1061268164566410505354808953437459437243880255488*u_^193 + 28340764770841461253468355843728119061000168570880*u_^192 + 2404530072329745755992735362433744776587737171687168*u_^191 - 83710135067543250076492681270560617656918045078390016*u_^190 - 3228761384083826400792115507747323461320968768100171856*u_^189 + 182632913522202347361664408851309112420182107752990379488*u_^188 + 878211461279313205161740098010977487109842863413301506393*u_^187 - 241260479238750628738522090155895767403905318683407908065041*u_^186 + 5214722804502363178667284859981527797405924169832674361812596*u_^185 + 104949445009313562665462224166379446257187642088457930864716918*u_^184 - 8610064548879863875817512297696297715181584387101171226260020989*u_^183 + 177391986199805580241980814421514646028215649266101960898216693529*u_^182 + 2296429390272437098209607857144718453953258377394731417383468820340*u_^181 - 242404935577734717809772901806167055478236142458326485861036247865074*u_^180 + 6515005234892650200501848166997228715441323840454914053203064423249870*u_^179 - 28878889467390190640534148256307215948465290064578028342124907153438974*u_^178 - 4263460359357122396837557978805379079800792691857516352272203964759261987*u_^177 + 180402834808917336579020437442605131323324747280521261079098146837826029125*u_^176 - 3504452718851545635103478071530957387642648112225897086631495949155937041913*u_^175 + 147831485970668456550774910460643599250428697243956686949861236486499064405*u_^174 + 2463884691994110846479014202553284561924991471142964813493297762878080219707686*u_^173 - 94063596988011007803231056800222442952891043633140460059065314362596702785879846*u_^172 + 1986695170077059768089049734461295668335280543954321142928384895525907372483548169*u_^171 - 16822108639453000285561286173997504390330158792048257284573156529704492460928094885*u_^170 - 564980640204994068366267255397545450940255012723647060574576382084646771431285633824*u_^169 + 31719892740909972825071947936057309426909724432308843827540744605449587155753490413844*u_^168 - 904743889727027883625592007169614265442087444643181394330146746100538507630057190372410*u_^167 + 17598791004334857246165862703441930506911461447206445762009747447694567155840364046839790*u_^166 - 202508042500890488917069241861925815071562195283341843940921122464220051888150870349879872*u_^165 - 1129978846638210338806747904279332402694047414368370642156475319809306214589205231296174964*u_^164 + 142764083092563074573030848109799106030724996275863753866433388263079646173940154447312261549*u_^163 - 4966190690801381012542764395885400559210658681280371033605578240501208182631186193369815196645*u_^162 + 126227468839807976545693566313489112796632829480468347435386811503241126164502666055370812521822*u_^161 - 2680345843865261088667289598562033897287895077188760212801214888917815083389440717086025191535708*u_^160 + 49846484157159772412397960935442166303076963781661489696923191342257742038371905941053999175912908*u_^159 - 829753783078489723940130470189089047068622577787096632456401305539586132107004027556216053816335308*u_^158 + 12499068918660244900323476192712843305965471285980115580979494545161352523785885541111231162639184853*u_^157 - 171205992696856758015740877534202214996552106592402883578351766302289221820690714867851591641088163235*u_^156 + 2133206244067726723647704207017254280211007763551624200314402035480501595647391998940056281807537367744*u_^155 - 24079769125996721555077610026794031441072452546723736442414986704864893186809916707267324116447521764122*u_^154 + 243789936113138108491762897931309572909905641563706984286720011595449001681121252496699572384901611943383*u_^153 - 2168583570768618664244729210010071314731625006187091608570516968479191754020538162527827920473545176598881*u_^152 + 16202918579976510001925455587767019255425834026614625046763878771455827224042827406398801675313915025712980*u_^151 - 89592092715350709206403611741577774302283853892016861825801077711480225677238384170686939343406628118106424*u_^150 + 157285102639553520265051460422691104972390534679928484908203189684274909668255159024461902825362375356404133*u_^149 + 4258120730772823295436049224886198699339799992047599836548125433833586488547220506703290488032050961440879823*u_^148 - 73497285582612545706050744412994172174888411219733163107528006668674924473398518186612561131194670936842916877*u_^147 + 745327433389722413503890638426085218102219557155438213864402938819732155036870594460097060691773286642780334599*u_^146 - 5301541280635373808551024836022979236994947493045127744545315766572320785935426075761808025210367652003558415386*u_^145 + 22459663629439574684006726803278090537493780978135933284262802391683531504700216513399543487132563898494415100000*u_^144 + 34768429510340818324933668789361069103494520145730549787292349340596342404925168108704696438494270506139976106775*u_^143 - 1652606254420667879884754045045434916125909595662374356885062334658465787677931843523118060442221826643368950275093*u_^142 + 16192760735268209550224086419506962440402447614500410561774649168231680656742457980496261965076098225066622367227278*u_^141 - 80975404951276593671360335243713818785845241719707647694963216235260889026959832638080378670202616129094572920968400*u_^140 - 37082316712790003087208226107953193712385249993430763475639074719453704799029446389824218379563619603342190836552150*u_^139 + 4359159479743816413235661421387127549987182067487697347394617833681845052761944123705127198005276646352940358589682802*u_^138 - 34089945812597195685172480280785006428597748865575137144102020186967060678004501736715998866084897249825968131155304381*u_^137 + 27181346908101556803310957608430520236592069628488422961217803801380914487195307481800629450333053605210774146684174529*u_^136 + 1912268371119154374487474660254454350492176043943260527442977637294205226853696316249884006772432865096332841251569630569*u_^135 - 18506339836054386842628911175735054283774407518135903802690244558185405036326981274093440504616585113908826532565944797853*u_^134 + 37947331187749818419927016527497737449237216272827170642645000320412065342507236773754622687266002765490437783367145892545*u_^133 + 879580739657591856312774115094923605895661019283452847718235265867942448184388284937423431438417742417467914465465692155705*u_^132 - 10282619643809405680681250777099251807058691905944793338816224631745831794749650751084344875105220568360260678486627139740924*u_^131 + 35169013524946889780372214994651220938963376952702270870674187993852299221466252670191823174753470957536823487415904700820480*u_^130 + 318098076950298486843654361767628432462619327840732461036907712628528590314200019675891946489588776190777407174518560643850013*u_^129 - 4676523450896376407635230267693267355598925492908056522466159437544211022631089260435584632007880369194003376138964825378070445*u_^128 + 19892053473960324267700256769196846824376394212267014959763120704651603635079384257175040559801192610870483542418073165275664505*u_^127 + 96364958165566657085254303585767493632436901949688895551570013090970787044921034170239655237190616591306074012013684488193530315*u_^126 - 1775611012944244029493031686237662992623148291257493363590015950723152518713183952216032035783597294760809600338837086501503348981*u_^125 + 8582408155599175496532045001348522164165950735361789470818136569097655413032412870665711360678270779904724080149359811390841698913*u_^124 + 20782878992293901975616008581304788108774928725393248352395385035550856255824634996006345308252806476267725877684853006005240705426*u_^123 - 540758015292529341521065424284172292283513290736785848843560699794595058377420645362915951241299782229255154819210150282654251676438*u_^122 + 3074167474759018082932315550940560134286850783962134536133803425597269381917028107750132140351526490475980252349259619309064640009494*u_^121 - 591498898792123849290440291102620694815416326857798270637308329632496899141287792904104651507246143320065149420842152177032698103638*u_^120 - 121172169679041716922162512757023759503654929510937031337841396050508753490445484688627629582169808296722757102501592829005472310900082*u_^119 + 1051866523199323178846105278136743264136428586586905291485026001417213177478834336680578691553059483895719643001692175534358714888421830*u_^118 - 3981218038897979303956581604022440594019304938767036762282849436922488772698075002936883174798395673584566424748286116900764449480870653*u_^117 - 19185493802028927159269476129366200431684529016493761832582575580117173479574152747419232775081993414920461267883782199137197939817736251*u_^116 + 437744674764825663937793106882545403657035289521916829100886517589772811167107459532393838250287778391674683112864719066534395558920022437*u_^115 - 2787869564971898192473854389778462751313948081184478061305863895426217994747775165996871766818889075303174082083737112333591741933023632089*u_^114 - 4836283678420168934119982976647851111383114530607719097380663091438084463340607971676746481274975736759101957589970755269323401319246504163*u_^113 + 212486886469671011670456387133501922662650097451979142868873070276200801459474616311875681819326232908105593875634530819355445188883064726929*u_^112 - 1230686400000135093650805199708238399690756668173543613133926549155137625962263112012249752707840835592761896698701211807332610830757182537468*u_^111 - 3984260727963587958153259635441444392068229790074007653775190720499379281648878548055013766681673082743934504584468707466047081147420132444710*u_^110 + 92955809260213019308954271176561613416235608868034083869097556281548712691614295787798092798291005332900197408655267920169260991645567837833487*u_^109 - 350764819178268429359698450021564925260667907570541516569291020591179349276983869366596846519262462184332928650647543319700773441335399449031147*u_^108 - 2648850411039139371950806283649755314807159708412612798376574889388787979162401331795770472259466396397172734071936145431187674076988674766036438*u_^107 + 31452367186572297837709860427198872465041624335865500185754114026612336907440417054296670876322093553842728704234273512041521172658842658978871468*u_^106 - 45206683824993945452632691315503903041024324245617890267354227094621172074197932611302142329583548065854549179163795515599682548638522404435950341*u_^105 - 1146354624550862488734636423388378051045279940585395740699129691415574179234219459115939958639482058936716303170804163829561757895030624301073553711*u_^104 + 7485549237070234435294689121726810291270121459722851515772969439644170384287236912242202198419586116539367853322782580260251307134608966207440300808*u_^103 + 10539896664423803293952582742812706833806357844661313342308258624309302531364816103672357477246414290677010214969056478961976003468093257950380183878*u_^102 - 330428922410168546760310477509636419759762787281567939150334875573034182934104912466569323511436113562522156138321832148505026966852983642145889178911*u_^101 + 1033881848201965900481193409266930540221919276443447798464883166123396630093196422557674071732181058679731970877359829130067032196503854645856603910149*u_^100 + 7032879422857329148716982210056357347526982033704448385253972863024706280627508640530581906361013032375760224752312804894068428996555950196355571713787*u_^99 - 60063655471129188656917695450618267551657698637558555245899359137856763146849588192994432963861831797071731678023932717374828727167324905089823011156697*u_^98 + 3903872470156289758301430219998235769978764953661360050358777279584473712898492084213719541242448967953942960430129887169612863924611478363305136756230*u_^97 + 1663900108322759890079081396267002699779379988778377583024084041440182707079920009434357246744088347550818009220735186046780666037206172434974756963209640*u_^96 - 5013054676991882397981833136383876242887795740811740899998294463510383971705465118771475559034699520611749637462682785125010702289352988103762003959496974*u_^95 - 25985183552599952975759171902518452666617065812136452887245933032835437769963961526188921666852906279958969853678255746250237985764830134022190533845295524*u_^94 + 151390378792849475223659767179523474921994678178887065305156388970865049728885397369824103783025025320911124818346277883268072327354323266146224855106558112*u_^93 + 330307682957276899823926019957223201216767807844342816476131230623146890950940481253932893163332980155279025249643912538588712475725786590410064103395208544*u_^92 - 2254483894845494911775984671666643997077331131411817024545886574179196643201253042015539245994463020283406767467281720464193525879346688428650406540608727597*u_^91 - 17214812266478246386401798134008094056605439071572173652930873172981684389916851674471297540295769822035528432405511452772332852186565288221439215258162778389*u_^90 + 61124217801948209959206635845212718936931208252346166571585285120037369334443671230187893012739020379849967957651026762149833280737946702562291121592706751211*u_^89 + 968088318941442944303129102854705921500384429466981681086036580310158013930995152582775181112241160897773319497676203522563476286692508820911143315285835094729*u_^88 - 5097017092623943571377709902614355348734816090514411594095289096379723283787060882310390387506221950964004632966513495382099667493415083575579371372581600747691*u_^87 - 28972107277171056686585441074050601992356584135129874803402127171263492253951846581132310122488593558718291673465941157061345008462037113595640484346069354028997*u_^86 + 287502083523060877965848123591957337480908031329430402348575059197549250698497811814949978363265519054354917829490664162896079934937699257671764805857878408587238*u_^85 + 205252791959734406536835617357018625950715329646350233544548002382974911914174940445643226524554538855949012080094560538676704130756072961749258490969084509236526*u_^84 - 10415563558089215492059135497203424923133752497893720539818639870609062137743364177142420875472985603117516844075114436296512757621817758190854173822478439959044081*u_^83 + 24044054041436412282415896543200411214081954796926797898107479827272544300282355331197611472092618186355061212861820359380194989634197167639313035864424188962324269*u_^82 + 246819135611433739197393697598217994958243310835016341783996737474720706732322650877470965388314548533298671954577760569630482657564422896083194006488296761980460379*u_^81 - 1403009242879015138027281174593863777951693469540260171009859650075189847154930372236916619144451835563678335974199690270220005337370935659916845728848381005203049099*u_^80 - 2848398492650059570144514971096096820132411820875675592624706770301784760830186624850188753966278187404306899628022910654648838527813940047816451582140345947609487486*u_^79 + 45047297495402275757911543800224372462016151621960782874556017054135690900220240996715162469825438292915167859714684385350666060345812147365103748372143029103557830340*u_^78 - 52272050564240290236609184630884495563539575873245494704581080269917174927761727110926179484282217924934875166745839510982214598939066650881817791710344306005879278291*u_^77 - 952906231840648175288095815969804856473683143101921949751359362344198878306157284074098328734418657241105289240380285880022830004906234748295437516226595474695011179453*u_^76 + 3801605937459639402120131564446345383602556832772576242844951792609478062033991288033555324961789093185049788484074289741946301710702124026701963071644984491339951744435*u_^75 + 11219477931651548594967056209849273346283134794090856954692583164448198436771561850881324582234302995453128343891490417223502471565893489994545288763098288599838765819857*u_^74 - 112091910524032572674823962498707665655780727865136661006390522451587930255492586740674533455597724914267025837546635987502517889368120604188709472750041478145461166218076*u_^73 + 62315414793920256282692043232686859735267519139378529226392796235197937447824448142982866212731023169847712959982591153074192381304478676952615359143360688424590597386222*u_^72 + 2086374453925690444472843096037514732521141644847180416882736172462412616086239742166144248214239628159833362205990764406555081170691598010478572149919250248476108869413354*u_^71 - 6642598813077583645024959406291876188152457980523202343979914200375399567136126878792012247203921047836895980481702562230461662956055182025296025644370755559778019660094930*u_^70 - 21735400820649092259241572007921280978721078915855957492294134316700980610561552982222706045493513252934156445002884221315830089323683404889308488905273063438258245977051159*u_^69 + 175695792237467565595665458699417644720335381298341914799209139825393452027468229818435375628942856961570332934784458476589944613232220576931537382414516112214736710666776121*u_^68 - 72456120413444527141942722314106939042921153057826371246111535782009363934713840931745272753860745858461867806199618471023383587361833588677665989841609278289438822371288474*u_^67 - 2769463001820814330793684598162888425766916049914458583048702605737229982176929232996465661548192056150916119164711349423129105368352046995153027283381274685512440078966598492*u_^66 + 8225432537114107177015295638058551627590795035265415625836769954479052795358915137621814021077587734984345886316934844816544482626299678756227078929054660679875678802135225177*u_^65 + 22720482636048382820886565066188057854829380883034512716080755432376859960347907164899163052523364245771513246919566505515551247163372048425393341530053818173822089499435490463*u_^64 - 182760162528109422404435116408288102835889054778420076851470861423824293850186234943220857704391065868018294879413370569724341894126846966317164281380737277031246623735213242558*u_^63 + 125123711638022307579582948201824878219294539085234523229625134804157621912616611575859299401713899780473107458106602554152831547904519813455312148602143922524069076195791273396*u_^62 + 2301338077547653102199842930911265205177946284071333695288712332475648757994107289600769982590019391057622711706519665413107839577317027786594617597585901585856758903825132106060*u_^61 - 7496439002649838523229488777601718090188608999886087624746447994946571412202965522915924639092259937859907507266975520745332832186967997470988238712236294594490850818360409289418*u_^60 - 12311011983511244914541217213758323737512008199427816009641711054632547930564579569487329468386353309822261830613824114006400058462086695766723547505695237060103622157310113236595*u_^59 + 128487423966022018122408521989293192101850874068151801827724700061523648322587373889652706741026974463963465729328718047762300294340305259163655771456577383580563116395634925410411*u_^58 - 160584395999882180325205507185419804729457242732273463150597994613347725869268227563542770388679838111308732026329570602547234492318911281960895648433443387218930915382565833733453*u_^57 - 1186489357811118436054029782295755880643529280641602785603124562314466416839555625912230249459333100637133804105805232646593036295972108775536248870935947453870933480689628714511141*u_^56 + 4790244043423769822000888833263009178335544578283867787873567524469850581177856966109436292562980696212978820074636068452145617187382516119033489786090688157089068373462516759031081*u_^55 + 2163863335853835943154451049260173473388857944520374742932185834658621992676600217323603260997685203404461001054141238879817310049604523455511449842614009217648518884971868294705279*u_^54 - 58471785582582004437697436419390067014175842554711985300329252312615754136905153690414328788730315664712568466104387803772529321268981551505247445804920338742506066610720351002592783*u_^53 + 114220673230773908490658831189349369399966636131433562092695198822443120288189254664237711437566144042036220353157744996562929009897141351143249446264327505188597727395719674357878813*u_^52 + 338936308374122076142353544516798314196516187984769786229113761261528121160977039852392585947790362770929657831008369739070825122101683681254053731660871517585019468537028501025904316*u_^51 - 1914536040820878841931034683378940237130040244392628443666064301006290471321666588005321057149587254214839374034630373864437152061371418485861596594347659237416309394905018843281586436*u_^50 + 1133138833487712953610193679782037673229462383134997313994737026893404589012597689367536622996641497194979224597890393236270900834126574298604039264665686966930266237969526687903268960*u_^49 + 14917990418796254279566944451109935474422475101368214198403937893551823683274371432066253402344193465788345639935016558861163911855542141169618435102130831104619593123206614562099723432*u_^48 - 43484381073011124470189994968820870918516932199279916749595938750922936508578099433179151075978181083523796114499200095050130028607774679630256513981403664741743730757938989221331011852*u_^47 - 26955310355140918781860771351863811429085952489312521318494394216052736887844429738666872410822919929420960613174610709413471352756492537563606619679513365442978737461188017900601454724*u_^46 + 408226629054120062002972710493320256632743455177566058579290036022139443809689012109043046400086098207841875397742254391230402000468161736383654439059762369465120963028976802537801629375*u_^45 - 717643439483296280573515082282846389831259410840389238431574126199625355138788973928166181481395764456042589458179234960311438571850224918549314966623753256078412364784742506905103670303*u_^44 - 1355698742209071330455841449821012539991221962676425280957682022918497858370851778765266535773932687336534865982898468106546201018363559156185481195325786719040046820591260135373922436002*u_^43 + 8202878996184848791657190644727627106015381695905709331481938043813171939524180495984140651638816045891468262205787551247835328465303054572702319848138310775022464610727616632012729105682*u_^42 - 10087566770340458734194935741380592246365456056274992349981250462865857822886900481205451425859671048053934526291533533210958991786081751894775325558802784320124322474604978425920664564228*u_^41 - 29920308636365714018144097084531317798736766608441072927110000440465886809916102152159363435832436264150050277602396649391824388019794481085476405279012932619989626777542212880831127142428*u_^40 + 138483755882697273169034343043466878902394915016113273608552345243829667725650254723613386986108477866168521395243057849813093094408814434959708123840174289199448880707006062056670446734564*u_^39 - 160241426874970595418570758356732445740703217444027659827801622445763003332031238771317618354318619512834419582092947960966576937795219138645571325394966333255418075980755959447813922608728*u_^38 - 448929158452830512100254743592648032749043509316951793602342956246110053054324567938629246462374763082318738730979828140997094377589095744527541871998936596746594768996422080939759197447818*u_^37 + 2193841084623941808210895626904336841479384939625011812920474102300389892835257768997370010897200339478987430593145621876966344679218443544989429138387951482042374609137984476640714342588894*u_^36 - 3196611641979181729270509388164083101237880245203299240458914425070504917313303375330846937966512594837347500696718434898164095882511966331926829046694159978602218631548752051258421411548820*u_^35 - 5020713992991328266502435971858688128631208046927745074222208739504391623479955119233343632473533684259415122911040798390644490807298809293848299443712822922710705471028065286227969189052992*u_^34 + 35001517919585344976450447318401414324463909600415273202687742823797208804186382899724214493193450712230468052660519583797877598302232062527464511023656482701238903198567045959565257102984220*u_^33 - 65783615234884890310415975470615523473871234243742062010523892649833449926367102776524404470473695280648767382443703484821481808300190108367857088618560550017964357305349603707904690109460868*u_^32 - 49149485827198068035466450524899702313737063807845432293452418794480296008174613238951319832278244386972965655425276365093725366308319266725862873132221404804277386441660891128979171979163644*u_^31 + 561318975865705183231445611439933580487178875325007946417543959330836331847221473166730241339277676666577811694872091876495688547723965125733999766880837938570480480479795202494247209973857396*u_^30 - 1132586002161201587634594882458555227404812569883531926812232591941425944665794786052703581699888002425905777990620333444085192637358142706526717786500031864927886128323287964549429662329469912*u_^29 - 649264455224798198084143070314475888021815744830129994387121393827696571061435628581168542093651113306998557161055478753196075207858666993171575706434117536008976941780988188117221318825597608*u_^28 + 8181648445648176503179642576465613803906112265409613028348188144581303805129645200611841896325671348076478767807324563606889649833679249506995847747898019681211909221695345202607225055200212616*u_^27 - 14947238072915969913463544086345938989882043777704678213285827677811648403522376767811761242899315399580137806424696995027945570803438542229694468012138664245163129667604267679349040641623973496*u_^26 - 10770078380758789163768689807637019114216159963738203420511404567336984896062266576110971601096836316134034753815744353750242950546071004123175879713049334539628971863174550950183577924110347704*u_^25 + 98159222352900061435919560387453677309061690934849771471291040383647966324188437644316040531170344884286844007107822036595582651026617830867933781016784842119386272883255277242831598030843572200*u_^24 - 149771783228284740352906177743803482475180693533713614757876115983088083755940034160629354602729916678988803257895074956294699700902724941029764203822510082659079724750115637921542032399868603464*u_^23 - 146297912575549529398088717882030985164230714996654674120193208563010543071411878301781225745445293805427686780046006645745133595996720770219149051324729882796091802129193330925321363503200667112*u_^22 + 925924246715223902817155320730425151711898789361681686589477353446362936937616725687793432003587062863256897455068271521658038292150148818952080210417222638705157460393385891059336452875875534576*u_^21 - 1155597744211853994409901703760940795992612027828102007030202488539525913487297952795369033796421413209250158783886160621061881718613555768355741364933099148076115210377184894107948775698442978288*u_^20 - 1422401041012192029666761628964366529533968662457731833499133484811987515188760587899933179967913405320529676322588323750228054787464532989378756333196775052498887211954751385034973333919648958272*u_^19 + 6747768005805872437152063925518605196580928800614407119731328790838034754107089206854429647354830856788290949196242106010906599472972585518081487582797404526188501912348684920089272435858914081856*u_^18 - 7002140001232698891913853956979438106437887745962605874994997936062732773378856728651820472827593609244504509579835485145083829403818883127934636927869163712461647640617810321649486884000180176896*u_^17 - 9691030640006255868313253965243292138753165569632143344767212703450195935987043354963644450445317250125420269394462551674977877408520915882441307946256053780356157274054695215117096404961582237952*u_^16 + 37425703473155071844293886324586783014178201104706530575706018154959353997202878981900749996880461392203617429859944525568980840507533649750377487790463610192257374844941032187056646763025795551104*u_^15 - 33775433474381379953205717922639523748165626900594890091064782935698062331340852533012615079793185277789613426817605261864679397898338884346397280424161149514141253579333534670080001707389678922560*u_^14 - 45212443362061251261159729419717517242671533930262795613292653337632115235192230451253260027100978427654442711996676321892960822600203462066337785763751512253207758039588503811115526130979640464896*u_^13 + 153417651632345056750016181085809694455115444775288404793103797836785725940918250453453257722490938332532786472078050869995551581769098684453281708566327756106770592312613992772804266100319089191296*u_^12 - 128354253566927313512278234729357759475013390693477256209137318359066721973853881487683250430162478370580172243759033552271473346913334325849948874733311103775094576622970071942364374871550354072320*u_^11 - 134376981830690064092899038969838240903310070897574235353595246081151425496055267995994676426952474830996057958550908508128793432398828675243031309928407716735406478618587554189334968947412185310464*u_^10 + 436173661496160242959363670132141553843736284248582155032183238636174606096756363430515641451805083236084853446438356573342413386338592009464055909846391059814364109806134192336376496688547905356416*u_^9 - 360416007646480318061008591684266503151219587437376663147322493085189548492318334431865969505466705987110043621489352328713663536724784423703336173718723202646705352903921839680942890217787972221952*u_^8 - 207465695823098930473901795453687003443814644021968320754340723723885634839366329254447685544451382879444390005477888512498372127084153767210500962491605862330083049966622959190391179454830366633344*u_^7 + 753455520769665334430243461749260181748697773826603154844627105224797297729787296763073900670610790442560557370804159124021040892213855628794857446313202964155717685277665559008364323023366768568448*u_^6 - 647628089904212915063817666219474566264007044184977529647828619618203125831434087981034799471673555864065358599258580136275816796388697176880125912402621773113289661331878096549358463313534496410368*u_^5 - 30456534317246445966574247777909075650136149499514748929168620117641767871929266980537842524372903734281247099502822649695472733723672480516435782065870910925032389307976753785547502072834323628544*u_^4 + 567921590329965597973189471952606687787259941087585891392957605994602724656202555075536009096462511501856249451219940300310586439754095927673950202263991261051089042593216050350292537101406433854464*u_^3 - 548267537699344456019352628457567839518102562110584808009233720595130494638696401984110375580723827940391020750838286091524008215794392101689346975441022407035852082250879585423446230069663026710528*u_^2 + 244134246574395300532859804507332589937785605603654510080521485320132166162298181932293293510687365709855732626900881807892040772107481799033267827917122523310279955078386913421869478428872135156736*u_ - 44770142303032275186046623536929891862025852623091339321278201478823935395423344700037853299780923990411629172493671998964618731237832013783855902791973119392298136032732661967411182221576325909504, 92534898593628160*u_^209 + 109710624817814700032*u_^208 + 52664540346007018274816*u_^207 + 12095918643258508569477120*u_^206 + 876461674106750263114072064*u_^205 - 185999533516220531070788960256*u_^204 - 42968454810007816852600522801152*u_^203 - 1136306731323784748174938227081216*u_^202 + 489985483002290347369710235892580352*u_^201 + 39855769983579493916385263261807804416*u_^200 - 2779369501120322818888105420038850215936*u_^199 - 384211984815279598119133949348169088237568*u_^198 + 9734319576956017478840920386324619983847424*u_^197 + 2179972171011671092484429273928528091099955200*u_^196 - 29762509070908951688243350860505220848375824384*u_^195 - 8385839547541899893082658778538490036585624371200*u_^194 + 123454411541840176586109798602356492705606961971200*u_^193 + 22260529301333212059665507782349615101312884998729728*u_^192 - 522954359726180479724038784126886941974474357080121344*u_^191 - 37360147037314301712979693557820758370439861741537993728*u_^190 + 1525174406479351110955743686871629238750963721586057204544*u_^189 + 24847245375309252373802012410765278983258305625667765922048*u_^188 - 2583836987808238891481408154340235338843151931119437116432256*u_^187 + 40315517267763013586693229293589180139302728473699521671609159*u_^186 + 1702383456850339909318353591740337190751184216893925617545931514*u_^185 - 101788727743668289172000911714237839246647361900059665645627592516*u_^184 + 1722737502201904699434871486097519737184852286217414960180589682560*u_^183 + 45506813152523503731285641597362696541741900533612549030394467732881*u_^182 - 3413646717992228605426299379755265261701513660589758473827345698374514*u_^181 + 83744129871274111923250132171699166111090607732729501158064103619671720*u_^180 - 25574000375488313368055141206701081049104035667426618801282498493658156*u_^179 - 73958465521001586206442573477363757862120543929229296724202539553255903034*u_^178 + 2920065641655528990593624433103479332564680264763613912116029243948602540022*u_^177 - 53862301624342458417526846700550812304975588479707920287371336150449691533821*u_^176 - 197624559058069800007340430287023208381650146734407043654057477873413015058580*u_^175 + 49559904186844144410049072898988769560034694452278249985062838637875887818562111*u_^174 - 1846258624050326559282912056514158028553942094022399444789064931333549405578587590*u_^173 + 38859068259944345585160296462006028005526844220114773109418304355699936258764264044*u_^172 - 290592569333725740117805373059433515716833774417612251125409080144276817155793569784*u_^171 - 14246550951519943750181594923589971561111167249247039722670715979507043569333339431507*u_^170 + 765557907860172973809581255468781478981036724494212161690452237412038613002465790282542*u_^169 - 22184684105151849219244508568208262686789538971971863679757710420347867974543706073938640*u_^168 + 440062595321477467121121972921092505060010811740889652470982393916376877553713233999488232*u_^167 - 5000105824992752587471734553903927163784094085742440722502304356652060087042618114035394900*u_^166 - 42595018983450475922969736948317944215211583790536584603308387759129200906741251288324627384*u_^165 + 4390071313963867899362294237444738896353032729910452416016272089773532476705584942188188487526*u_^164 - 154600390864441458674547156850585538066245000520387662475789701684090699867440475776839680306516*u_^163 + 4031194996605358657927571592612934050126455831217445013625612128356007360501471834670835628541333*u_^162 - 87937481697472732045328769101977948931642353102217441102461101037321745349780669351366946129104196*u_^161 + 1676117574514712594690733000063743677073982146809467430112485942415759592989560313341539889555479402*u_^160 - 28459429561366471426357655263035864084924615453299702204570898920636875610867700710057268242390561512*u_^159 + 434104697752124669768497252965975845424329960770183227025553429409676790740720090365142807086204330648*u_^158 - 5957889794305887173575125261731659973419879344630291790052508627034007645300206046892657709092367960104*u_^157 + 73239185229269077997364313328940682209849905149300510282625650613238680290435170741888001938355980450417*u_^156 - 796368928850256292070960364701074262947351607942722349439713423829907354998426967169254179059527224943460*u_^155 + 7455750022142100693164843082988173475025369029449271861863117356625272120234140970514570140041386686186486*u_^154 - 56408317555621123889901827568332086541453813585467518676355912527924432148337377130028513978068387803387734*u_^153 + 278812291680582943975318077442880955080585426967342402491202599237888473127162546575650249795440161495386725*u_^152 + 392674585062986605266735590273987207376234172398145642649762681308362044195437665946870597757120749598642800*u_^151 - 29582369529496086527135803874237981900988938770942285870862903164441569240039491955296443247353253604035387594*u_^150 + 411090500912327726240922393561067194072487960514536584121356540002739962308062794417949140643020204622986908140*u_^149 - 3581819787778935763537229957602836779896477205840075603261438411911380505997801820014363432055388978933751595455*u_^148 + 17999839108532576070248248488883603139266289040143658626504698107860773390518450536501534888362098972650397986798*u_^147 + 28802244327933233872522534703137693218389654549748220709833885133349522766064717213683589722321377267849955885153*u_^146 - 1689222628549869834160840350092140648914838824043111047156401479215224673490495525526044461973944651081077466619054*u_^145 + 18745157356720292954137028075355499561705768607883527807497216016538321808041482754635632540111659658759875525185722*u_^144 - 102282637304189873962964655163543476557527021155556491016593601178396501982074929911175114120060175420513778105792534*u_^143 - 156277716555982747756951709962159573475637070416139531811056491899735593903891916372003096623936855502522506039427589*u_^142 + 9049575105394900335035158227260976600529335982421378751515506410217985257335072349275532275889003150954752148641926478*u_^141 - 88148238675903117703100777843049484683948289070294195164160884380092920642665935142336967298584440983723626329847492016*u_^140 + 301763486865397106751489039789574073636465395672378323906095634129563226075193780137575826369933670148295222273415644124*u_^139 + 3073023870978040399239844117333840906583623587727953827418817788705857111006150570069566924764537341589334180026709774986*u_^138 - 52620037957936780519569431841479353485366270185340663953826851806265056193183557443322777465211009529255567590331690298718*u_^137 + 311243919207684444424040124006691864149409047315655856059747176023718648174902059835490634456033691248788801022365129079143*u_^136 + 599394574887805162426186038776569603934587653949922675886461247888012256837824612664187929230716938789620008771733882900466*u_^135 - 26957417410690296327757273364654300560973370435214699608917398408155323650395262682790683361611186566466007423634206064135969*u_^134 + 209405256065996970526372169592719046318379205267986761853385852285882342928896873820496670667274935942537043982819862314495592*u_^133 - 94299198625415643353057773951822943808443958254428167945630459132535980615516699621951801984253864922418746168802177989611465*u_^132 - 12946196053696181419115889548753619070447948274738354787623875726161611112516455783511014655711014183464930865684342844463037322*u_^131 + 117016565113189247481722380829026750804197851350042334033326518287809211395866615727665427789507281813002071940118862920564194326*u_^130 - 147909772269104140657372590336489319045117253979277265914976861883939214016609212075820589065704819183373532359843704909240068532*u_^129 - 6169270258453572387522724910735142967636564610444947501899927851052377039006406580264805866730395130250711196360819107567816097375*u_^128 + 57860463360801546217489181784015204589696781591853707029336578676820008756906550742459613843162805696815670216156082472205693538650*u_^127 - 67871015634649487693100386681113390846864912299041994992574465152177771900300271428417729655235738171572120324954988724840055354721*u_^126 - 2963270358507505752022751543108434770853989287788802368284308490797137388553016842282014524765447941797562114855645382158017376001286*u_^125 + 25498278828066158247952896801348523385121831269349019284243703519419556595979844175727331313475843245013066936147974087007715879331057*u_^124 - 8221253067054835200966689217513674544039750291460680915827728488054026360865944653051193813065455961783436449419352290324175674601450*u_^123 - 1393548659141708666955787933192117972034684691894873721688780380673807207529912000821790052698520428319586734066850072703071616175055000*u_^122 + 9740516552811866486654553288071438189853343483928084195435455315860275191499090997025393833246628127188633720906158387207461730332111730*u_^121 + 13288353915139384356521139756431928315376295738275015154925884002420129993946255336388441567312305616271104935191725517877236424717661508*u_^120 - 607015220955466760439328732134990049319107306372573832241526918094209430205324813688682872228570251336024183288907549852420665038369404914*u_^119 + 3009985714684746316672521869305916440920905549697271401224194481627049471379104833244867198000673789175271313455830106078062428945571152172*u_^118 + 13490762457378357560290989162139073873010718408099856538941330209558541822061153143756515208447088170185757617436272724940048258300636990682*u_^117 - 230409199218286560024335842588045824591976479464490813169932951682909539929014507409199844355969487173188950096537113912765986171702814342961*u_^116 + 623352650229081266731552867022030438633464627175276908797490526678873796567548815601623310065963394351775303682124743865040694524471706805102*u_^115 + 7811852304571344930350434428871157244728241069612764576910117492359819233766793304346221700720978433389298451112258207995254000243739556427931*u_^114 - 71181403758095676088496125582834537170552669392030327382443841183980856372098049570289987304635820996250976763070043175331482667587215160563872*u_^113 + 2464303498448092581505848620626761403708322319063798327418131644485275039033220419416318264698879504777467569681757919709842823494171679710547*u_^112 + 3244194423210074091003028745009838327096002661284012993523622883981346239271354603300606116504010069531700288390691491770501951654288112689424702*u_^111 - 15952095441124847262191709495093648937260103274328984130479353410605646092238320059792551649697221875932358250162192161697429142841509109901534238*u_^110 - 66522405091050924480478540675431817335136852872595552128846114553249884288681108748291898148373519727054951544278302295107857261779920088484443582*u_^109 + 992530283479485911858275925907176489588680252526434701628124937121250622056791861807331041373894149987001147983039737105763966179897359938946446413*u_^108 - 1668747813315897553195301082438410522431291931888692813239872412296358124178099974653239882598549219307751947534250464232323884180056087906082302522*u_^107 - 33528912584097563567417795289882567153657135104647578442145358412348094100845946484143343133484260574419933089996701592512383054422759074962493112540*u_^106 + 210150820873873581928327768304297796734592346436657917615641509057817300117698279334412044207253930580983154941792258409766322734044706404177985416066*u_^105 + 448603087205961825931942794266813722373406129338776926533488190855767551233509361644917342349281704019665574201993241885967472701534715920966881238469*u_^104 - 9918735578634188855078146558279649566220709763575740685142224273873164474372012975881388424421633765681011476097075596120902797733434820663435567267474*u_^103 + 22189445330908027098650099557431254045504046715273927001109574203512599137834122187226860676212770473928410423274350757671872217026126797882158773564592*u_^102 + 280815711090225454450915230845776758444313461550756688299511194589059808222534581445677627911368471594821287329671270247294415823144669176223459716776860*u_^101 - 1855140838976248006062830048186213281959857413224423304708523977379798933534569272552310827655004452066153616386088557918799301448868599139918602498244829*u_^100 - 3121873290484638737353391968384772033582320172589703412017071147010178342971649629804561027999069423792248933172922219126777488105885243586925567269433626*u_^99 + 75260838766835857833170790603378618310465575087409511282706581358797607791068963737502528455167572465270722535935435970274187372644593162084973029364477839*u_^98 - 157995714621320868586915818150941430081958630226886300393098320866330588038086487165116281322244141467584893348501816756109507174135411070598353268124842302*u_^97 - 1943801245552344395253197613773437462566789911673691441377997478802402855960893407806599603431109271498395797889538602829275206591914353866168744591755159510*u_^96 + 11618482892078442607662358094575940659851712066322583606074725844988944013976205392383924329492419135398129957516713690345001047757880651054088206118999443568*u_^95 + 23088879321464063849641633681223623503347703133362232116065722261250847645814186423515930010250995452829445549662703251017601966363564391217889876251486580034*u_^94 - 432287175007282407767069556499481653756399474049473434999408691815734560726598755679895026958868130388970478545264392833466153973265359399688116601376901271724*u_^93 + 674304666171181703225221228232748298820155357405727448656557877279758361453797239624446611403186331798286425030004187567540398831009080367039885414569381818426*u_^92 + 10596202495454569014697829962996342537986244086233600923081032766775796429419235084684724674481690379476154282907356824343461301135491773224284531752692746333990*u_^91 - 51754696301769525232575719764179403611559064855331767649351835670340518051860807906370261686244429003366139751825215633344529367678303702789318533771891643335007*u_^90 - 140538521885808413385558536938455326175700110544586564081497314859087355220282377111344762401637111412943912506209192501888239742199551305673010549259976171003386*u_^89 + 1830152558281721269753921256081274114421740848541926455867423232594134937852504511889239735486114075470605343276197793456695951127253250991548093494584693077466723*u_^88 - 1613499760684756267559205896071106603289633266135553617050921505217560829282408717121881690282003962282493294479475768568008727384338678232366824846684687842207090*u_^87 - 42912236998573949154383640270236918738204694193408983381933265453435483413826236460818726215554655714779998293182145388390819400511062404090255581229896641292081245*u_^86 + 163442729075675429669857577500583775386174017334292641863252751434848218040050091803634659427074876203302458510179673632536804473410583247800945317505851203463352164*u_^85 + 600639676027353232534100308244120428425470459993342459103186433988819629210344851500443845014499119424131486856378682882799399442165459006662381676659141452796232130*u_^84 - 5625542902054146918859353149077303484778364105628775102584905409908843659624696286641507583060335618168855214559041357931714483748391383302952513709612643959371622500*u_^83 + 1411083299748915775253366852679385463342032179908960969280288893979644844791939856573467598331075253212385055931355568693831770190025340000955493150703507408618730079*u_^82 + 125512784417706350728444859763688112227774910387755354241931836376981702372259721326893755308089532996932154218813033394414228914777573852777398092798528597128342228442*u_^81 - 372986963667014012279448920565014416364185555378156058128454084503676094417886029692589829017117157872249865618655089599308522465413615874515945970276887262106436065547*u_^80 - 1742724327579673180910190573822120708246804111583320798666700486894042108665043568155455753250672968835127482118089628282514099202479811219971667116086167041318253235700*u_^79 + 12637575773847479789345414854628518951080689446004228837686834776902397550236449983828333387956658686220437905569106266762957856753689303008540176959414252199770463797674*u_^78 + 2743366420783441126871199100736271767485229952593839854486356824692839362343344833919815492393092070047834923347406734567549395205328331280867825606349582614450335653814*u_^77 - 264292396914183166421726847088291339246887639564694777812627638273463345856102416890083299444771731207700841286980028456409004237186507632806101978505216539898109582374349*u_^76 + 638552806515788511530743530056584350038751004703418335522147884494827228634100908294422442824093295886027351701446560231456888671689807683466025082841378515659191678181678*u_^75 + 3448747300505000318853938748967578280195168943111242680769669675609777150882204025055983299174659456504882150310566693227520208283460829281494541275265937012034511141308279*u_^74 - 20964429648791387180127418610015158943058891094358485423234243892778595355902588260446932128938315737212968694158291063172201665080513170587112431466806004384383913940738586*u_^73 - 9449437829306746477412474821043024444915109569237132877071171084563281517359682074470367842562128451103228111250690169255384553260458694101932957792852702094524296281003518*u_^72 + 399361868691482300850911193635707532028434530349013136768219806226578676335238591551021681255516756825420024301498435399962102762397534734917129645587919916671672085893412328*u_^71 - 849838356920179824548441211531026620009288309021831591761904719806354472728126265024369980352912476131035432106358443253540056562623736408170475687051263767503744796609717352*u_^70 - 4629991756518108309078335898012122244679241072980145772490723335896772559541557631033904223479982739285322576043424894934883660452165086566530479791504973193742800590601599762*u_^69 + 25660284187554905765222389927470505748202441029574024513260292419257043802207661520529884367619711535630736573119461472676429452432965165933353678722246729680892824719232508409*u_^68 + 10306390371733928192193910790949101969463480564838042956460036865661752142815588572268762154232329065924198574498661215926675936185288416433346450735895245061629545082009304598*u_^67 - 426605693191076348223239291661883263766016572889858680815563450354612692459863438313209608872559629766473120153851636541527951965947520118435323349504135712347228669488340147516*u_^66 + 897577496076630705223804005441383271900677724083613028298115546993380304331734637636284571547512200498562230891810853165186378754808627112887734783225818003346587826192469147352*u_^65 + 4095812088016033402122499536663421616007694660729934722063542093638388959755301769499902619129107963668362673115354644460480823392306707772678786689319620083739257702476581774757*u_^64 - 22910655587584011629595443092573444720529066080201961251057695572073782081311370687163269123598406176235354793935384010784877737926025461581040137640341296452134864218118435143256*u_^63 - 1373422992752688295978265827910389375655049068231783839627836086274954376831011513511818736027392710301004683136262101706857209013278061978017634545873422689093244734642206868784*u_^62 + 313977977919346934179487989018995127343454911714042170667424724560054590537805948275242042615642994058101680072562557335696535905071105563631054886687534202777741101964364248198250*u_^61 - 739058608094043400799712374609475877012558899330251933144086437756485255369162351533047697310783187589078447261734559613064049409864882187542624870573686073204587507792859273817378*u_^60 - 2243295395958125963721389385997100917189951474481053177072569038480351537490149260386544491364978392282987449991996594274884702406555138989001195724979707916148420610381078764640732*u_^59 + 14535144067974171506425610978801149706936561753245217577535531930775938705219037691286271191230812661087524779864758720607241138116912910646473505959813639667704661833237529730671327*u_^58 - 7453863777154251415717299560089238408785705829431979981464836746082174305205190584224606250535048533570526940124067748086538104791240085797328137946758773022846700124775706593158752*u_^57 - 152486363099065002961699243212999395206836263362456525450290349761408744003462871685508530384433561777453976660040370690696357460774349979292788805834964444451808726116628358653666013*u_^56 + 442100587309132791063161293304007143467782090603321054746019251794262000197923434606160206863940827303813701749712167694696294427776641024185238348389700329095420016249120161133914838*u_^55 + 648510382259767592888096893818711830149757761119583200528893908280549870460309661613331767264974732331763835803677909281623984170253991530703820385439202820026788332471626696109741635*u_^54 - 6210730245245728676093181751469200787169370684843320428266284800471666922521099382862554062111233535508136668338146151105177604130731613390166226607349094722964279728116356174199161232*u_^53 + 7538935555035859381183091163808122161796031606337709041472745493561649151424621492380081502167865081496693001664032934821463857313397170660576658945717310636876466801162026042256481727*u_^52 + 44863615998610210516326190708199229169473329930080621438287926568628687945408238058476474937260748605302610301044965628482923284518345005425593031261257876220837054374430122255470827448*u_^51 - 173665677892788321816422074084405592952486916877454662641241989308235378128894566816144563921414858026474454604218555915128275726439258506804743024610442411306280476654659231668592188324*u_^50 - 30580876444101101375965656923447736913931398626299541704065201749094781299030094846265146591591544203136225481012853073841871187237747698671764857312113859673021569513088068857382454870*u_^49 + 1626617662168730056320514777981315185096626101147057357827971193264918291137722123129160435600117915060649402193482238610061282120491319249088222699587342054933719666126442961357029506920*u_^48 - 3291289865490280227716658510584851200703740986040034142535501463894351308922409983086941197719356060078093577096614354497916831652908863110785752132533881934966612766033507790608004224634*u_^47 - 6413066014102170111703269642493935133648687646309663621194329301430526233375344377114961142948912395960853134772275024942652498544205886495861734972593644858407255082293862811029969999824*u_^46 + 40098398837668915230725568253273707852417417244041384809952735414369357199924589533369264576958891687132138180523081065052128869626839858141858360921896529429688073512114969571320902608088*u_^45 - 35942202273443644196925419969919149169314365689150219862129279111286670681804524250510678599588915623129533285489548891986992583554538157723674925388001681744099311838776920257125893226153*u_^44 - 220179927020453707239888440159384394378638809070954472976397032878817043973124877260707664768666675430972202975241007859264394372840153880919250430012567413888874320171082510795761648887818*u_^43 + 714680262012355599224897526215119094386858821128443634547779996441427093788519137770637448575609212357561958052588015535741373052990742813371052528654983066945329341925873072854593193728382*u_^42 + 11131653150882320978764336045545870673380623382512304301891330941545262925715214089410009584838851410952005403312667925335118757082413069015482641982199244853630214265353493736846261350318*u_^41 - 4660633891465413297876326811985312261250617290572075262320385439899686986466314080676965508683095145040795988842538578672428762688069574982504200576817810328226277756617520198486526062505202*u_^40 + 9444168333537737028507594529424611730351756114713017414815213747688436101901768852837799079306168356606042926846837894647136853703381008640392270381602049598688774962603912459113363271201080*u_^39 + 8417185236612378399460769200173182219737426882053858925340065753622245191312559678084807592293918706187576354558851690008009518019226183047437311794393052863598969148396175316504881802635620*u_^38 - 70000492475317720669234260043793609885547907435077481977595189647970606944984318779128282142900444154149153095623204439844094247493494352799852346101299943661557710306587921204624212899721076*u_^37 + 95133891345302429427177735542001614585572821080835044819238037274079994313621743226031433779623203092599976551375506543734829179751809901498510460565627133925980856569852835752769740181115874*u_^36 + 162129317748053870500865144682257260142617772205697153128744792406733813643960627825162073868806150983715850796884199031813055979413352632519319519331140625700113531481593431602015409519720876*u_^35 - 772525760552687797915042986667590411247665995215460014921382607908284265383386951448484861394260949257514711996883201418894630225451160568232975870990739391901003336228545533632465443945009152*u_^34 + 841877868331256608084662691506828785464764480583388733217104813936702041224036728408273356482932384607265060933313083771208013561655814301741459770835998020300603042228588412050814315401168012*u_^33 + 1446114054095539717430860150067278668379679240489143983929174245144057941069494698243704886198437444226229452451393698556651120033567538145242189294878473243198851397581714384359266806020290740*u_^32 - 6417938872771002281037704804821863869998512182228153571229317577129313385582753339850173764275557984402583909660953587778794432486270789481390452315671782331758133542044596391993236751308025368*u_^31 + 9707219984739776423180454147610744105628732596355578326231670071310233003680597648433111614752176941232579436584163042309060283324230958041931862755188077315968858928919754030761478570799817220*u_^30 - 161790994918715021215009705143300823654528297448775853324677838621428646776612527672788556146085220126565858304956641699227427183868503639020531675541425307347807765671764440779139411393328440*u_^29 - 45720247115636769604564380677360369858509902054111501122425497978714261887270655579488251352707671150242865520657390493813503760953468615542043238391435516484792730433288801613818875981245949248*u_^28 + 149691652695100948577060362880704730244268311691827396716429025638499880184724309835201832512072351439920215409848125233856379042126516157238557822797167257286962407290023061600849634392459043160*u_^27 - 185747411597242433458477047452155274376370792400482138752614049795231469367102178790680065004886495701111087512314238662695358311861619397548609758783451158617185758499438237689404664840382366368*u_^26 - 382174362581261125791499531024068454667217458471429507123122724409980577042099928978270598502385992734440182569500970269194387607231506480735239974301435487722145159522497815992027193413355148576*u_^25 + 2047551881348562026951980256984349543750052700311446482811486274152752214581436515684510354629037926953071035595961393507387697517940157721936245606335615545064882033002889146866994175098853172584*u_^24 - 2803178800580334451196607343755985423579914564383381060973293179203763726000706290788335479072152388654180590663707528948457530108301423307655341438747234241837554619331453540526565179238404533904*u_^23 - 3935237541365777475713474037950696876788856090189083604565582667472614869165449425398658053613559837090954218191586304656247800072049001283561780506264461122142373369466723391379827266697537919704*u_^22 + 21076048518165431080127465603441014890933973485347843871775220967437061954857856880195833581294495487467727689308824145028857241146514244211653376531204005448252463566415205484454098018435210230096*u_^21 - 25085426159585509346356576523891614195155262084750612801104967999904354604351787522021447779745501610376650714040092886609865400126246875143871747425458877115276956100180695639018969886155771963936*u_^20 - 36224959848738772974964478416117310636560848539858566424897805499299134894802023111138816543412192177225042174784227042633853602349639585481905867287121393210187143742572978055113522961142484967504*u_^19 + 160323879467881712331233231501474877840236015460390100882729078307426659839791465299741027298727037495654337385845651934398142599264189195468760549124722021617064668937274171898324815315745770682208*u_^18 - 159457949572826906178141936501412281904433958170585478085692701047324543760414435817640391614524110963746566023864992853514257644973215589445993980767177871187747052205175791848181123235294017710240*u_^17 - 247184762391260089977648742606853079294759927585315257530914034965275651429161105033852565211837665599707312086064260303860303504586711866200328611150447603151364142557849857279758921492643238412576*u_^16 + 900311867389857853116379851608244916994499733415967465400418670767785508268514140432505975580837382582432986843201301471052298200287557239329355406972096521653175933324498584693919205116183626106272*u_^15 - 764855360406062104995940876295456959196109278809948667355022877053829719740584938645333533913509915606407787615648974275883429293168512414223197998136865205960158264520047227417804836850882828524352*u_^14 - 1167546862064636758510354611457271330916135143902072887988887012342497793946000321436680062383799451554689468069445128139633143565817924488231789229304462138264117778423749804917898548453123382911680*u_^13 + 3663976521437621600755745049629027810840760404044531817505109130547868955146490602818417007054695974676199553310960273691856288752655077949370006081456203960855854627458256216562557262119978033906240*u_^12 - 2812477548332314664795416594296608569915201419660771426386549100501135847740779361085236196913949850049551537948574109280714487498723426666827183540584880243757004002570700742578061314376253219787776*u_^11 - 3549129968317434989741736373417040896293836561606575200258177789820997489650847139546885877220869238986747644390050362913143249815688212316424992919220333189977208882874027701057121957097404532317184*u_^10 + 10238844392824277869651834872089845669405003127356354170191906375165284970969526948912161580456598678288077199002487413296521524737673951501493688655809433150799091569129199366197522273427557425932672*u_^9 - 7611268207572615232154843790596239725506120787324020079914617715255388611263662492577139194066543248255889729567650194411422617721976993373977212001820418787047916079615321480042845421285343532207872*u_^8 - 5857307091641536466233255513761233941194689684606338718670833017461866374640948294396870568572196879928241111375680986593210340209294593478763629147926373649619750134758473781761989579146988151617792*u_^7 + 17333909526995590238780121205077227666460033640512363739047524817299180060666822188470596301697268754475169183450622382185691921188071278700005802393325515529576401216361311866284748524597743165611136*u_^6 - 13325429456407311652580948117586829235622445301617462054500821960992830222027785186988046045599726092130636508062078991010517407754975408975334663568245195494243233738808442786290113239411471331651840*u_^5 - 2220724114467578244804430292677508625979600553261226146272545792588994129256685511002275965804681439513510422746023278499318864079617824181918378029897767324220389610746973760393087878717375483319552*u_^4 + 12834286004140955331465698737875603662550513293710393977580312322345325804093164193265168631355691881512560406223848111604736991876711901353876230399117647014079638716605706017127637085687874915329536*u_^3 - 11150319505725211721732909412130688143576328546676658069377891702158071159949609273997706856751386546128168553715398961969829301781867388515748701223065818582472971840430780185853493373258722454775808*u_^2 + 4526819947069579586366086981179337328716583905021938136529136302941554279361547299552692746966726111903183716068359690601079664032705299077786242896921793919139962586342677713738745268697306220612608*u_ - 747090045901182287158157676344644525851999439917080855352168125059510918446164257950739300815877042322584232930836964126555181306982709190294620435607655154790880522811472865869545930669623936516096]\n" + ] + }, { "ename": "KeyboardInterrupt", "evalue": "", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/qqbar.py:4564\u001b[0m, in \u001b[0;36mAlgebraicNumber_base.minpoly\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 4563\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 4564\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_minimal_polynomial\u001b[49m\n\u001b[1;32m 4565\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mAttributeError\u001b[39;00m:\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/structure/element.pyx:489\u001b[0m, in \u001b[0;36msage.structure.element.Element.__getattr__ (build/cythonized/sage/structure/element.c:11576)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 488\u001b[0m \"\"\"\n\u001b[0;32m--> 489\u001b[0m return self.getattr_from_category(name)\n\u001b[1;32m 490\u001b[0m \n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/structure/element.pyx:502\u001b[0m, in \u001b[0;36msage.structure.element.Element.getattr_from_category (build/cythonized/sage/structure/element.c:11686)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 501\u001b[0m cls = P._abstract_element_class\n\u001b[0;32m--> 502\u001b[0m return getattr_from_other_class(self, cls, name)\n\u001b[1;32m 503\u001b[0m \n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/cpython/getattr.pyx:362\u001b[0m, in \u001b[0;36msage.cpython.getattr.getattr_from_other_class (build/cythonized/sage/cpython/getattr.c:4424)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 361\u001b[0m dummy_error_message.name = name\n\u001b[0;32m--> 362\u001b[0m raise AttributeError(dummy_error_message)\n\u001b[1;32m 363\u001b[0m attribute = attr\n", + "\u001b[0;31mAttributeError\u001b[0m: 'MatrixSpace_with_category' object has no attribute 'product_by_coercion'", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/qqbar.py:7890\u001b[0m, in \u001b[0;36mANExtensionElement.minpoly\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 7889\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 7890\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_minpoly\u001b[49m\n\u001b[1;32m 7891\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mAttributeError\u001b[39;00m:\n", + "\u001b[0;31mAttributeError\u001b[0m: 'ANExtensionElement' object has no attribute '_minpoly'", + "\nDuring handling of the above exception, another exception occurred:\n", "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn [5], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m#Does not finish computing (hangs on computing GB for critical point system)\u001b[39;00m\n\u001b[1;32m 2\u001b[0m F \u001b[38;5;241m=\u001b[39m (Integer(\u001b[38;5;241m1\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m6\u001b[39m)\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m2\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m2\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m))\u001b[38;5;241m/\u001b[39m(Integer(\u001b[38;5;241m1\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m-\u001b[39my\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m2\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m6\u001b[39m)\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m6\u001b[39m))\n\u001b[0;32m----> 3\u001b[0m \u001b[43mdiagonal_asy\u001b[49m\u001b[43m(\u001b[49m\u001b[43mF\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mas_symbolic\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/.sage/local/lib/python3.11/site-packages/sage_acsv/asymptotics.py:165\u001b[0m, in \u001b[0;36mdiagonal_asy\u001b[0;34m(F, r, linear_form, M, return_points, output_format, as_symbolic)\u001b[0m\n\u001b[1;32m 162\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m _ \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(MAX_MIN_CRIT_RETRIES):\n\u001b[1;32m 163\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 164\u001b[0m \u001b[38;5;66;03m# Find minimal critical points in Kronecker Representation\u001b[39;00m\n\u001b[0;32m--> 165\u001b[0m min_crit_pts \u001b[38;5;241m=\u001b[39m \u001b[43mMinimalCriticalCombinatorial\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 166\u001b[0m \u001b[43m \u001b[49m\u001b[43mG\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mH\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mall_variables\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 167\u001b[0m \u001b[43m \u001b[49m\u001b[43mr\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mr\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 168\u001b[0m \u001b[43m \u001b[49m\u001b[43mlinear_form\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlinear_form\u001b[49m\n\u001b[1;32m 169\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 170\u001b[0m \u001b[38;5;28;01mbreak\u001b[39;00m\n\u001b[1;32m 171\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n", - "File \u001b[0;32m~/.sage/local/lib/python3.11/site-packages/sage_acsv/asymptotics.py:391\u001b[0m, in \u001b[0;36mMinimalCriticalCombinatorial\u001b[0;34m(G, H, variables, r, linear_form)\u001b[0m\n\u001b[1;32m 389\u001b[0m \u001b[38;5;66;03m# Compute the Kronecker representation of our system\u001b[39;00m\n\u001b[1;32m 390\u001b[0m timer\u001b[38;5;241m.\u001b[39mcheckpoint()\n\u001b[0;32m--> 391\u001b[0m P, Qs \u001b[38;5;241m=\u001b[39m \u001b[43m_kronecker_representation\u001b[49m\u001b[43m(\u001b[49m\u001b[43msystem\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mu_\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvsT\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlambda_\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlinear_form\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 392\u001b[0m timer\u001b[38;5;241m.\u001b[39mcheckpoint(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mKronecker\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 394\u001b[0m Qt \u001b[38;5;241m=\u001b[39m Qs[\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m2\u001b[39m] \u001b[38;5;66;03m# Qs ordering is H.variables() + [t, lambda_]\u001b[39;00m\n", - "File \u001b[0;32m~/.sage/local/lib/python3.11/site-packages/sage_acsv/kronecker.py:69\u001b[0m, in \u001b[0;36m_kronecker_representation\u001b[0;34m(system, u_, vs, lambda_, linear_form)\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m:\n\u001b[1;32m 67\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m ACSVException(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTrouble computing Groebner basis. System may be too large.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 69\u001b[0m ideal \u001b[38;5;241m=\u001b[39m \u001b[43mideal\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mradical\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 70\u001b[0m gb \u001b[38;5;241m=\u001b[39m ideal\u001b[38;5;241m.\u001b[39mtransformed_basis(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mfglm\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 72\u001b[0m rabinowitsch_R \u001b[38;5;241m=\u001b[39m rabinowitsch_R\u001b[38;5;241m.\u001b[39mchange_ring(order\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mlex\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/polynomial/multi_polynomial_ideal.py:304\u001b[0m, in \u001b[0;36mRequireField.__call__\u001b[0;34m(self, *args, **kwds)\u001b[0m\n\u001b[1;32m 302\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m R\u001b[38;5;241m.\u001b[39mbase_ring()\u001b[38;5;241m.\u001b[39mis_field():\n\u001b[1;32m 303\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCoefficient ring must be a field for function \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m.\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m%\u001b[39m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mf\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__name__\u001b[39m))\n\u001b[0;32m--> 304\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mf\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_instance\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwds\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/libs/singular/standard_options.py:143\u001b[0m, in \u001b[0;36mlibsingular_gb_standard_options..wrapper\u001b[0;34m(*args, **kwds)\u001b[0m\n\u001b[1;32m 139\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 140\u001b[0m \u001b[38;5;124;03mExecute function in ``LibSingularGBDefaultContext``.\u001b[39;00m\n\u001b[1;32m 141\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 142\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m LibSingularGBDefaultContext():\n\u001b[0;32m--> 143\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwds\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/polynomial/multi_polynomial_ideal.py:1767\u001b[0m, in \u001b[0;36mMPolynomialIdeal_singular_repr.radical\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1765\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01msage\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mlibs\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01msingular\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mfunction_factory\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m ff\n\u001b[1;32m 1766\u001b[0m radical \u001b[38;5;241m=\u001b[39m ff\u001b[38;5;241m.\u001b[39mprimdec__lib\u001b[38;5;241m.\u001b[39mradical\n\u001b[0;32m-> 1767\u001b[0m r \u001b[38;5;241m=\u001b[39m \u001b[43mradical\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1769\u001b[0m S \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mring()\n\u001b[1;32m 1771\u001b[0m \u001b[38;5;66;03m#I = self._singular_()\u001b[39;00m\n\u001b[1;32m 1772\u001b[0m \u001b[38;5;66;03m#I.parent().lib('primdec.lib')\u001b[39;00m\n\u001b[1;32m 1773\u001b[0m \u001b[38;5;66;03m#r = I.radical()\u001b[39;00m\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/libs/singular/function.pyx:1298\u001b[0m, in \u001b[0;36msage.libs.singular.function.SingularFunction.__call__ (build/cythonized/sage/libs/singular/function.cpp:21315)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1296\u001b[0m if not (isinstance(ring, MPolynomialRing_libsingular) or isinstance(ring, NCPolynomialRing_plural)):\n\u001b[1;32m 1297\u001b[0m raise TypeError(\"cannot call Singular function '%s' with ring parameter of type '%s'\" % (self._name,type(ring)))\n\u001b[0;32m-> 1298\u001b[0m return call_function(self, args, ring, interruptible, attributes)\n\u001b[1;32m 1299\u001b[0m \n\u001b[1;32m 1300\u001b[0m def _instancedoc_(self):\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/libs/singular/function.pyx:1477\u001b[0m, in \u001b[0;36msage.libs.singular.function.call_function (build/cythonized/sage/libs/singular/function.cpp:23302)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1475\u001b[0m error_messages.pop()\n\u001b[1;32m 1476\u001b[0m \n\u001b[0;32m-> 1477\u001b[0m with opt_ctx: # we are preserving the global options state here\n\u001b[1;32m 1478\u001b[0m if signal_handler:\n\u001b[1;32m 1479\u001b[0m sig_on()\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/libs/singular/function.pyx:1479\u001b[0m, in \u001b[0;36msage.libs.singular.function.call_function (build/cythonized/sage/libs/singular/function.cpp:23214)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1477\u001b[0m with opt_ctx: # we are preserving the global options state here\n\u001b[1;32m 1478\u001b[0m if signal_handler:\n\u001b[0;32m-> 1479\u001b[0m sig_on()\n\u001b[1;32m 1480\u001b[0m _res = self.call_handler.handle_call(argument_list, si_ring)\n\u001b[1;32m 1481\u001b[0m sig_off()\n", + "Cell \u001b[0;32mIn [7], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m#Does not finish computing (hangs on computing GB for critical point system)\u001b[39;00m\n\u001b[1;32m 2\u001b[0m F \u001b[38;5;241m=\u001b[39m (Integer(\u001b[38;5;241m1\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m6\u001b[39m)\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m2\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m2\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m))\u001b[38;5;241m/\u001b[39m(Integer(\u001b[38;5;241m1\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m-\u001b[39my\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m2\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m6\u001b[39m)\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m6\u001b[39m))\n\u001b[0;32m----> 3\u001b[0m \u001b[43mdiagonal_asy\u001b[49m\u001b[43m(\u001b[49m\u001b[43mF\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mas_symbolic\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43muse_msolve\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/.sage/local/lib/python3.11/site-packages/sage_acsv/asymptotics.py:161\u001b[0m, in \u001b[0;36mdiagonal_asy\u001b[0;34m(F, r, linear_form, return_points, output_format, as_symbolic, use_msolve)\u001b[0m\n\u001b[1;32m 158\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m _ \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(MAX_MIN_CRIT_RETRIES):\n\u001b[1;32m 159\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 160\u001b[0m \u001b[38;5;66;03m# Find minimal critical points in Kronecker Representation\u001b[39;00m\n\u001b[0;32m--> 161\u001b[0m min_crit_pts \u001b[38;5;241m=\u001b[39m \u001b[43mMinimalCriticalCombinatorial\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 162\u001b[0m \u001b[43m \u001b[49m\u001b[43mG\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mH\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mall_variables\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 163\u001b[0m \u001b[43m \u001b[49m\u001b[43mr\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mr\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 164\u001b[0m \u001b[43m \u001b[49m\u001b[43mlinear_form\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlinear_form\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 165\u001b[0m \u001b[43m \u001b[49m\u001b[43muse_msolve\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43muse_msolve\u001b[49m\n\u001b[1;32m 166\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 167\u001b[0m \u001b[38;5;28;01mbreak\u001b[39;00m\n\u001b[1;32m 168\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n", + "File \u001b[0;32m~/.sage/local/lib/python3.11/site-packages/sage_acsv/asymptotics.py:321\u001b[0m, in \u001b[0;36mMinimalCriticalCombinatorial\u001b[0;34m(G, H, variables, r, linear_form, use_msolve)\u001b[0m\n\u001b[1;32m 316\u001b[0m one_minus_t \u001b[38;5;241m=\u001b[39m gcd(Pd \u001b[38;5;241m-\u001b[39m Qt, P)\n\u001b[1;32m 317\u001b[0m Pt, _ \u001b[38;5;241m=\u001b[39m P\u001b[38;5;241m.\u001b[39mquo_rem(one_minus_t)\n\u001b[1;32m 318\u001b[0m rts_t_zo \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(\n\u001b[1;32m 319\u001b[0m \u001b[38;5;28mfilter\u001b[39m(\n\u001b[1;32m 320\u001b[0m \u001b[38;5;28;01mlambda\u001b[39;00m k: (Qt\u001b[38;5;241m/\u001b[39mPd)\u001b[38;5;241m.\u001b[39msubs(u_\u001b[38;5;241m=\u001b[39mk) \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m0\u001b[39m \u001b[38;5;129;01mand\u001b[39;00m (Qt\u001b[38;5;241m/\u001b[39mPd)\u001b[38;5;241m.\u001b[39msubs(u_\u001b[38;5;241m=\u001b[39mk) \u001b[38;5;241m<\u001b[39m \u001b[38;5;241m1\u001b[39m,\n\u001b[0;32m--> 321\u001b[0m Pt\u001b[38;5;241m.\u001b[39mroots(AA, multiplicities\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[1;32m 322\u001b[0m )\n\u001b[1;32m 323\u001b[0m )\n\u001b[1;32m 324\u001b[0m non_min \u001b[38;5;241m=\u001b[39m [[(q\u001b[38;5;241m/\u001b[39mPd)\u001b[38;5;241m.\u001b[39msubs(u_\u001b[38;5;241m=\u001b[39mu) \u001b[38;5;28;01mfor\u001b[39;00m q \u001b[38;5;129;01min\u001b[39;00m Qs[\u001b[38;5;241m0\u001b[39m:\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m2\u001b[39m]] \u001b[38;5;28;01mfor\u001b[39;00m u \u001b[38;5;129;01min\u001b[39;00m rts_t_zo]\n\u001b[1;32m 326\u001b[0m \u001b[38;5;66;03m# Filter the real roots for minimal points with positive coords\u001b[39;00m\n", + "File \u001b[0;32m~/.sage/local/lib/python3.11/site-packages/sage_acsv/asymptotics.py:323\u001b[0m, in \u001b[0;36m\u001b[0;34m(k)\u001b[0m\n\u001b[1;32m 316\u001b[0m one_minus_t \u001b[38;5;241m=\u001b[39m gcd(Pd \u001b[38;5;241m-\u001b[39m Qt, P)\n\u001b[1;32m 317\u001b[0m Pt, _ \u001b[38;5;241m=\u001b[39m P\u001b[38;5;241m.\u001b[39mquo_rem(one_minus_t)\n\u001b[1;32m 318\u001b[0m rts_t_zo \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(\n\u001b[1;32m 319\u001b[0m \u001b[38;5;28mfilter\u001b[39m(\n\u001b[1;32m 320\u001b[0m \u001b[38;5;28;01mlambda\u001b[39;00m k: (Qt\u001b[38;5;241m/\u001b[39mPd)\u001b[38;5;241m.\u001b[39msubs(u_\u001b[38;5;241m=\u001b[39mk) \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m0\u001b[39m \u001b[38;5;129;01mand\u001b[39;00m (Qt\u001b[38;5;241m/\u001b[39mPd)\u001b[38;5;241m.\u001b[39msubs(u_\u001b[38;5;241m=\u001b[39mk) \u001b[38;5;241m<\u001b[39m \u001b[38;5;241m1\u001b[39m,\n\u001b[1;32m 321\u001b[0m Pt\u001b[38;5;241m.\u001b[39mroots(AA, multiplicities\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[1;32m 322\u001b[0m )\n\u001b[0;32m--> 323\u001b[0m )\n\u001b[1;32m 324\u001b[0m non_min \u001b[38;5;241m=\u001b[39m [[(q\u001b[38;5;241m/\u001b[39mPd)\u001b[38;5;241m.\u001b[39msubs(u_\u001b[38;5;241m=\u001b[39mu) \u001b[38;5;28;01mfor\u001b[39;00m q \u001b[38;5;129;01min\u001b[39;00m Qs[\u001b[38;5;241m0\u001b[39m:\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m2\u001b[39m]] \u001b[38;5;28;01mfor\u001b[39;00m u \u001b[38;5;129;01min\u001b[39;00m rts_t_zo]\n\u001b[1;32m 326\u001b[0m \u001b[38;5;66;03m# Filter the real roots for minimal points with positive coords\u001b[39;00m\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/structure/element.pyx:828\u001b[0m, in \u001b[0;36msage.structure.element.Element.subs (build/cythonized/sage/structure/element.c:15303)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 826\u001b[0m else:\n\u001b[1;32m 827\u001b[0m variables.append(gen)\n\u001b[0;32m--> 828\u001b[0m return self(*variables)\n\u001b[1;32m 829\u001b[0m \n\u001b[1;32m 830\u001b[0m def numerical_approx(self, prec=None, digits=None, algorithm=None):\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/fraction_field_element.pyx:447\u001b[0m, in \u001b[0;36msage.rings.fraction_field_element.FractionFieldElement.__call__ (build/cythonized/sage/rings/fraction_field_element.c:9170)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 445\u001b[0m (-2*x1*x2 + x1 + 1)/(x1 + x2)\n\u001b[1;32m 446\u001b[0m \"\"\"\n\u001b[0;32m--> 447\u001b[0m return self._numerator(*x, **kwds) / self._denominator(*x, **kwds)\n\u001b[1;32m 448\u001b[0m \n\u001b[1;32m 449\u001b[0m def _is_atomic(self):\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/structure/element.pyx:1737\u001b[0m, in \u001b[0;36msage.structure.element.Element.__truediv__ (build/cythonized/sage/structure/element.c:21070)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1735\u001b[0m cdef int cl = classify_elements(left, right)\n\u001b[1;32m 1736\u001b[0m if HAVE_SAME_PARENT(cl):\n\u001b[0;32m-> 1737\u001b[0m return (left)._div_(right)\n\u001b[1;32m 1738\u001b[0m if BOTH_ARE_ELEMENT(cl):\n\u001b[1;32m 1739\u001b[0m return coercion_model.bin_op(left, right, truediv)\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/structure/element.pyx:2748\u001b[0m, in \u001b[0;36msage.structure.element.RingElement._div_ (build/cythonized/sage/structure/element.c:28891)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 2746\u001b[0m return l\n\u001b[1;32m 2747\u001b[0m \n\u001b[0;32m-> 2748\u001b[0m cpdef _div_(self, other) noexcept:\n\u001b[1;32m 2749\u001b[0m \"\"\"\n\u001b[1;32m 2750\u001b[0m Default implementation of division using the fraction field.\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/qqbar.py:3849\u001b[0m, in \u001b[0;36mAlgebraicNumber_base._div_\u001b[0;34m(self, other)\u001b[0m\n\u001b[1;32m 3836\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_div_\u001b[39m(\u001b[38;5;28mself\u001b[39m, other):\n\u001b[1;32m 3837\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 3838\u001b[0m \u001b[38;5;124;03m TESTS::\u001b[39;00m\n\u001b[1;32m 3839\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 3847\u001b[0m \u001b[38;5;124;03m ZeroDivisionError: division by zero in algebraic field\u001b[39;00m\n\u001b[1;32m 3848\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m-> 3849\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m other:\n\u001b[1;32m 3850\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mZeroDivisionError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdivision by zero in algebraic field\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 3851\u001b[0m sk \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtype\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_descr)\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/qqbar.py:4112\u001b[0m, in \u001b[0;36mAlgebraicNumber_base.__bool__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 4109\u001b[0m left \u001b[38;5;241m=\u001b[39m sd\u001b[38;5;241m.\u001b[39m_left\n\u001b[1;32m 4110\u001b[0m right \u001b[38;5;241m=\u001b[39m sd\u001b[38;5;241m.\u001b[39m_right \u001b[38;5;28;01mif\u001b[39;00m op \u001b[38;5;129;01mis\u001b[39;00m operator\u001b[38;5;241m.\u001b[39msub \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;241m-\u001b[39msd\u001b[38;5;241m.\u001b[39m_right\n\u001b[0;32m-> 4112\u001b[0m lp \u001b[38;5;241m=\u001b[39m \u001b[43mleft\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mminpoly\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 4113\u001b[0m rp \u001b[38;5;241m=\u001b[39m right\u001b[38;5;241m.\u001b[39mminpoly()\n\u001b[1;32m 4114\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m lp \u001b[38;5;241m!=\u001b[39m rp:\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/qqbar.py:4567\u001b[0m, in \u001b[0;36mAlgebraicNumber_base.minpoly\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 4565\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mAttributeError\u001b[39;00m:\n\u001b[1;32m 4566\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mexactify()\n\u001b[0;32m-> 4567\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_minimal_polynomial \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_descr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mminpoly\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 4568\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_minimal_polynomial\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/qqbar.py:7892\u001b[0m, in \u001b[0;36mANExtensionElement.minpoly\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 7890\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_minpoly\n\u001b[1;32m 7891\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mAttributeError\u001b[39;00m:\n\u001b[0;32m-> 7892\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_minpoly \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_value\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mminpoly\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 7893\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_minpoly\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/number_field/number_field_element.pyx:4842\u001b[0m, in \u001b[0;36msage.rings.number_field.number_field_element.NumberFieldElement_absolute.minpoly (build/cythonized/sage/rings/number_field/number_field_element.cpp:52168)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 4840\u001b[0m True\n\u001b[1;32m 4841\u001b[0m \"\"\"\n\u001b[0;32m-> 4842\u001b[0m return self.charpoly(var, algorithm).radical() # square free part of charpoly\n\u001b[1;32m 4843\u001b[0m \n\u001b[1;32m 4844\u001b[0m def list(self):\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/number_field/number_field_element.pyx:4810\u001b[0m, in \u001b[0;36msage.rings.number_field.number_field_element.NumberFieldElement_absolute.charpoly (build/cythonized/sage/rings/number_field/number_field_element.cpp:51938)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 4808\u001b[0m return R(self.__pari__('x').charpoly())\n\u001b[1;32m 4809\u001b[0m if algorithm == 'sage':\n\u001b[0;32m-> 4810\u001b[0m return R(self.matrix().charpoly())\n\u001b[1;32m 4811\u001b[0m \n\u001b[1;32m 4812\u001b[0m def minpoly(self, var='x', algorithm=None):\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/matrix/matrix_rational_dense.pyx:1042\u001b[0m, in \u001b[0;36msage.matrix.matrix_rational_dense.Matrix_rational_dense.charpoly (build/cythonized/sage/matrix/matrix_rational_dense.cpp:19579)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1040\u001b[0m if algorithm == 'flint' or algorithm == 'linbox':\n\u001b[1;32m 1041\u001b[0m A, denom = self._clear_denom()\n\u001b[0;32m-> 1042\u001b[0m f = A.charpoly(var, algorithm=algorithm)\n\u001b[1;32m 1043\u001b[0m x = f.parent().gen()\n\u001b[1;32m 1044\u001b[0m g = f(x * denom) / denom ** f.degree()\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/matrix/matrix_integer_dense.pyx:1377\u001b[0m, in \u001b[0;36msage.matrix.matrix_integer_dense.Matrix_integer_dense.charpoly (build/cythonized/sage/matrix/matrix_integer_dense.cpp:24372)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1375\u001b[0m elif algorithm == 'linbox':\n\u001b[1;32m 1376\u001b[0m g = ( PolynomialRing(ZZ, names=var).gen())._new()\n\u001b[0;32m-> 1377\u001b[0m sig_on()\n\u001b[1;32m 1378\u001b[0m linbox_fmpz_mat_charpoly(g._poly, self._matrix)\n\u001b[1;32m 1379\u001b[0m sig_off()\n", "\u001b[0;31mKeyboardInterrupt\u001b[0m: " ] } @@ -351,7 +612,7 @@ "source": [ "#Does not finish computing (hangs on computing GB for critical point system)\n", "F = (1-x^3*y^6+x^3*y^4+x^2*y^4+x^2*y^3)/(1-x-y+x^2*y^3-x^3*y^3-x^4*y^4-x^3*y^6+x^4*y^6)\n", - "diagonal_asy(F, as_symbolic=True)" + "diagonal_asy(F, as_symbolic=True, use_msolve=True)" ] }, { From 58d2783970aaccc894a955ffbb4dc872b7f3c968 Mon Sep 17 00:00:00 2001 From: Andrew Luo Date: Tue, 16 Jan 2024 09:57:52 -0500 Subject: [PATCH 03/17] Resolve issue with msolve format --- examples/Sage-ACSV-Tests.ipynb | 283 +++++---------------------------- sage_acsv/asymptotics.py | 1 + sage_acsv/kronecker.py | 3 +- 3 files changed, 47 insertions(+), 240 deletions(-) diff --git a/examples/Sage-ACSV-Tests.ipynb b/examples/Sage-ACSV-Tests.ipynb index fe5afde..923d423 100644 --- a/examples/Sage-ACSV-Tests.ipynb +++ b/examples/Sage-ACSV-Tests.ipynb @@ -2,27 +2,25 @@ "cells": [ { "cell_type": "code", - "execution_count": 20, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ - "from sage_acsv import diagonal_asy, acsv_logger\n", - "import logging\n", - "acsv_logger.setLevel(logging.INFO)" + "from sage_acsv import diagonal_asy" ] }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(x, y, w, z, n)" + "(x, y, w, z, n, t, lambda_)" ] }, - "execution_count": 21, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -34,25 +32,16 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 3, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.04013662500074133 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.007297832999029197 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.003776709010708146 seconds.\n" - ] - }, { "data": { "text/plain": [ "4^n/(sqrt(pi)*sqrt(n))" ] }, - "execution_count": 22, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -65,25 +54,16 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 4, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.03666433300531935 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.005753334000473842 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.003914458997314796 seconds.\n" - ] - }, { "data": { "text/plain": [ "4^n/(sqrt(pi)*sqrt(n))" ] }, - "execution_count": 23, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -96,25 +76,16 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 5, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.07788224999967497 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.011859416990773752 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.007484458008548245 seconds.\n" - ] - }, { "data": { "text/plain": [ "4*4^n/(pi*n)" ] }, - "execution_count": 24, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -127,25 +98,16 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 6, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.06467729099676944 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.04026362499280367 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.10719695799343754 seconds.\n" - ] - }, { "data": { "text/plain": [ "1.225275868941647?*33.97056274847714?^n/(pi^(3/2)*n^(3/2))" ] }, - "execution_count": 25, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -158,25 +120,16 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 7, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.04431166600261349 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.04433395899832249 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.10632091699517332 seconds.\n" - ] - }, { "data": { "text/plain": [ "1.225275868941647?*33.97056274847714?^n/(pi^(3/2)*n^(3/2))" ] }, - "execution_count": 26, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -189,18 +142,9 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 8, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.061815875000320375 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.04037587500351947 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.10591870799544267 seconds.\n" - ] - }, { "data": { "text/html": [ @@ -225,25 +169,17 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 9, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.05899550000322051 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.0526745000097435 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.004523666008026339 seconds.\n" - ] - }, { "data": { "text/plain": [ - "0.09677555757474702?*5.884442204019508?^n/(sqrt(pi)*sqrt(n))" + "(0.09677555757474702?*5.884442204019508?^n/(sqrt(pi)*sqrt(n)),\n", + " [[0.548232473567013?, 0.3099773361396642?]])" ] }, - "execution_count": 28, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -251,30 +187,22 @@ "source": [ "# Example with two critical points with positive coords, neither of which is obviously non-minimal\n", "F4 = -1/(1-(1-x-y)*(20-x-40*y))\n", - "diagonal_asy(F4, as_symbolic=True)" + "diagonal_asy(F4, as_symbolic=True, return_points=True)" ] }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 10, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.02756754199799616 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.06255091699131299 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.004529750003712252 seconds.\n" - ] - }, { "data": { "text/plain": [ - "-0.00002590995235243959?*0.003868798293240966?^n/(sqrt(pi)*sqrt(n))" + "(0.09677555757474702?*5.884442204019508?^n/(sqrt(pi)*sqrt(n)),\n", + " [[0.548232473567013?, 0.3099773361396642?]])" ] }, - "execution_count": 29, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -282,21 +210,14 @@ "source": [ "# Example with two critical points with positive coords, neither of which is obviously non-minimal\n", "F4 = -1/(1-(1-x-y)*(20-x-40*y))\n", - "diagonal_asy(F4, as_symbolic=True, use_msolve=True)" + "diagonal_asy(F4, as_symbolic=True, use_msolve=True, return_points=True)" ] }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 11, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.056058374990243465 seconds.\n" - ] - }, { "name": "stdout", "output_type": "stream", @@ -316,16 +237,9 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 12, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.5564668329898268 seconds.\n" - ] - }, { "name": "stdout", "output_type": "stream", @@ -345,25 +259,16 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 13, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.04802370800462086 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.01800454201293178 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.0030805839924141765 seconds.\n" - ] - }, { "data": { "text/plain": [ "1.015051765128218?*5.828427124746190?^n/(sqrt(pi)*sqrt(n))" ] }, - "execution_count": 32, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -376,25 +281,16 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 14, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.024817500001518056 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.02446258399868384 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.004260208996129222 seconds.\n" - ] - }, { "data": { "text/plain": [ "1.015051765128218?*5.828427124746190?^n/(sqrt(pi)*sqrt(n))" ] }, - "execution_count": 33, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -407,25 +303,16 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 15, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.23029041700647213 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.11095762500190176 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.003585332990041934 seconds.\n" - ] - }, { "data": { "text/plain": [ "1/7*(0.6234898018587335? + 0.7818314824680299?*I)^n + 1/7*(0.6234898018587335? - 0.7818314824680299?*I)^n + 1/7*(-0.2225209339563144? + 0.9749279121818236?*I)^n + 1/7*(-0.2225209339563144? - 0.9749279121818236?*I)^n + 1/7*(-0.9009688679024191? + 0.4338837391175581?*I)^n + 1/7*(-0.9009688679024191? - 0.4338837391175581?*I)^n + 1/7" ] }, - "execution_count": 34, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -438,25 +325,16 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 16, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.04297991700877901 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.1282324170024367 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.003678082997794263 seconds.\n" - ] - }, { "data": { "text/plain": [ "1/7*(0.6234898018587335? + 0.7818314824680299?*I)^n + 1/7*(0.6234898018587335? - 0.7818314824680299?*I)^n + 1/7*(-0.2225209339563144? + 0.9749279121818236?*I)^n + 1/7*(-0.2225209339563144? - 0.9749279121818236?*I)^n + 1/7*(-0.9009688679024191? + 0.4338837391175581?*I)^n + 1/7*(-0.9009688679024191? - 0.4338837391175581?*I)^n + 1/7" ] }, - "execution_count": 35, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -469,25 +347,16 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 17, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.05497991699667182 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.01876987499417737 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.0016644999996060506 seconds.\n" - ] - }, { "data": { "text/plain": [ "([(1.285654384750451?, 1, 1, 0.03396226416457560?)], [[0.7778140158516262?]])" ] }, - "execution_count": 36, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -500,25 +369,16 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 18, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.11754975000803825 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.04100229199684691 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.006802667005104013 seconds.\n" - ] - }, { "data": { "text/plain": [ "0.9430514023983397?*4.518911369262258?^n/(sqrt(pi)*sqrt(n))" ] }, - "execution_count": 37, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -530,25 +390,16 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 19, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Kronecker in 0.04006791699794121 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Minimal Points in 0.05256475000351202 seconds.\n", - "INFO:sage_acsv:\u001b[94mTimer:\u001b[0m Executed Final Asymptotics in 0.0075699579901993275 seconds.\n" - ] - }, { "data": { "text/plain": [ "0.9430514023983397?*4.518911369262258?^n/(sqrt(pi)*sqrt(n))" ] }, - "execution_count": 38, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } @@ -560,55 +411,9 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "35184372088832*u_^210 + 49064606877876224*u_^209 + 29245799836051046400*u_^208 + 9438167044037537693696*u_^207 + 1652412560318401098022912*u_^206 + 102804965908926253712277504*u_^205 - 15582284625714877325113294848*u_^204 - 3304926727665550995914137534464*u_^203 - 93288812879980974309386737418240*u_^202 + 27940506484702947574784398555348992*u_^201 + 2233582380189119928016812280987516928*u_^200 - 120110972497207488975534993057140178944*u_^199 - 17323633031494567802991270085315264512000*u_^198 + 302550699518672846731900169817867459493888*u_^197 + 82561634103305093521913781604131155020349440*u_^196 - 629893223470329699590619461137221797323341824*u_^195 - 275000914705807382154207926585312707730065350656*u_^194 + 2478584457513248973250621597749298859012533424128*u_^193 + 650074486603855067110129050888015781785136978588672*u_^192 - 11295589776499153912350758288814557762771882366321408*u_^191 - 1006132775745507453924987117462945691638827418824421600*u_^190 + 32955727228721929118518876812957229692930729157492869424*u_^189 + 699154827239816662057287937238958402786932870945618390400*u_^188 - 54164673000911388165204399011462403915734171458249372794657*u_^187 + 671190890531452287787806063837179247453172526492121562118059*u_^186 + 35877106482250095497070044207118800947595761592024465844155606*u_^185 - 1863304370317162536856329736389288235349546841559815087058033370*u_^184 + 27504676232881280854007916877271088304589021197395105523267538405*u_^183 + 872610838073527222682123593666961745581248971037162203991189056503*u_^182 - 56957352708635859935032110175462000593225121264496866955549943509542*u_^181 + 1281651318082287048059062841024854857381250836834973923651046321172832*u_^180 + 1937122814711451813602324256356926523230165991903960316627614261281766*u_^179 - 1149572062714506173610403070414570717656253812325074009789890482757173078*u_^178 + 42257680770785491177034574326155606404770894721947092445634741888132035937*u_^177 - 724214888144100286686218946660621850762450803561443733290777937043627079635*u_^176 - 3906284617653101427030059955779887864917106615311120564299812320329836597301*u_^175 + 681763930070408945404918563281916021627647853717177777549041010797846034020091*u_^174 - 23978684836669308719259753014717255566635495640385577641756919429824858520738174*u_^173 + 478837782379351102009138952377698923225198023008311965156494694377555986603074932*u_^172 - 3100890364578423406275346084958992022920379626384742942300970705161206576601492987*u_^171 - 182147100729281634225397403523631182815517792424005945674900575294590427957296314639*u_^170 + 9121939197997430715910452426551246819426105710168295716255660235071176844729825336110*u_^169 - 253501475792720786716477300431704939526167101174221685087096167516347168215712758528376*u_^168 + 4826185878504549968921592132510860356988646234268117849025664255509331852298965148591944*u_^167 - 51274735485419004007892808260509769202079950066988088217148779549248169455657985798038948*u_^166 - 536249664355677902920811356555893972150984851946492111946009569423618292730619488020383702*u_^165 + 47354330329655376794710174575848658961714820089273034978220764612131150839117575819556728852*u_^164 - 1599709908554082574385811697821037048890521169531976028431683493636195696311975010922229345555*u_^163 + 40419337726511824736823208826492894257503817635537064567154388068510167281960592682460925651351*u_^162 - 856964512297538048927065142229505092534964167802471380217667227459269470942877142464999792113546*u_^161 + 15893129348542518645178347643489409966650154223550180299437416950166217868949726460600115967304010*u_^160 - 262629090877002125984284104224308360224212824657470067111379573411017204174388120044164547678221168*u_^159 + 3896995683277713958521466149244759559592865775457000490657606356759472280729784052441117240420573728*u_^158 - 51967668984922635017150811953104543600867670878797800001117331605445965078364445478091032218907597591*u_^157 + 619297083510973306752997945343460298176843628657620850357981256297827474226937102031522564521592523219*u_^156 - 6499959922432861876204068001956936547329998200041886194144745771669665429919758107010929841911558005190*u_^155 + 58212868958893810356084495984654417863113716106494111142998954833210119531309088213225229268821608230352*u_^154 - 411405690049362860493736337287309101727735617417969139997840720850388981509882360446736719215237662981437*u_^153 + 1693447938401123711420076704363125464681490873821931085889790978742644819364407396110793057435578122484109*u_^152 + 8050842578597503708432057085772890351084643132447391286843542987077520771230507102887977283511086386434210*u_^151 - 263434262191548764395729364764697448277987320405866245992065156227762925563426617433655109786785907052889874*u_^150 + 3248730247475477102761845080169100067613136046948914958139002265416725593881843618601965614191634805588498753*u_^149 - 25726210345611758004215805055252274106618478598636434695018834785360249122042658986364433618510543620822710421*u_^148 + 106350218997911408752628124118242434938475497775730853511870190931823739196424713128818101705205399158235731895*u_^147 + 497608531208705549245902861289064797323275018752320042834226254016494269064240819790669897729430243748174891859*u_^146 - 13980673535568170581622408448090232845751691375309349888445362906812930451058587531107930937219503600751498178600*u_^145 + 135151582778500389167041910699869041421814238501213654462856126786519096003364326154669750192516497052163360395614*u_^144 - 607257101024366068477727689968908005827534345239697508910386711584384685120347182860121514573748914278598247773779*u_^143 - 2556472692283297945675066689585860740119993430899111207441237692213602422665362508589019011052570042313147173654949*u_^142 + 71175805801190194507246951063814412488905001656563490677283085827287292532207398881532721167298603383666590976279214*u_^141 - 595222200118458023854813850548202152088101255002091147702550350255826186676500655484883178537291556559271342320739272*u_^140 + 1351139703575095852112619748654750044549608521190110852455084583876750323921999957590471214958307030125555770486292286*u_^139 + 27358922728124978776148188316358728841166087177916976790653410352883544415208601898766403436466579982829374342335283688*u_^138 - 370666051352417182565723483777544373197789362176415369281779909343798761387464210909894018146547241158373498823943551415*u_^137 + 1794925037631545240150291698659622482911924244912923754629865817608562831384735216618327574822718078236676973777858093905*u_^136 + 7810836660241733861686530344287799368698279063105317688166266438057664835457706717012752364643940023025878265402266308741*u_^135 - 194128836824004729464506044634544812510802793159650555109096839066624717245638658126416042937439844696830346791484527384609*u_^134 + 1265786998503690139178498968791485067686004720819014065552160484237827298234211979925100953373084606069024985544507293871803*u_^133 + 1384445002070385802767366480689190853967345607726358309615879353713398452931324179570739096007046829119600368521085775696345*u_^132 - 93932602287842453380156377326023902926958840737310875035351037145371800398347369817169112462049079190128936394621020048501752*u_^131 + 709721825911300025554900451633420382488023238887570176239844817707952097718841362076007043199165503794394318326086423329488026*u_^130 + 34606674983607202206413622308561094098917333345634752286272461479778623383694462389388035818408277063430080560825310192897137*u_^129 - 44216758772795382200165699849005147324314521215038929793062036119891189240424823659416547672603291670472839090292113686428343093*u_^128 + 344093287404001294505905105904393721299321709421606847299268991297518261794251900018037910534117917746532833933712281741348451289*u_^127 + 30761796059204786969817713933187306430997051946503529158272260768000008865548854258123968570613747576160429941141469157727867275*u_^126 - 20514746936380805201310370746976654382849135284109980982645394616115477204219052482614669481498646131314705912536404803029946796265*u_^125 + 145906685686696484475422993709552773546631077080675442407739227763171588466671043681710349246741473425972587662263460940432479434983*u_^124 + 146865167882106944884366257211143899732114720076370019953871055720874950118354987865080887105531580292910011356468616663778563076750*u_^123 - 9156992828024818845166602789362598561300066951764139505235072839058819697560596170711920984769368147511287687957819019376358842705812*u_^122 + 52479850529154716317665045369598273209635539280727184630691722675992937890551064276034019260930711054518434489734683759326746678176070*u_^121 + 156048642622348739334366191140849794235672770244910425141609010124128364082605467190547663941775580354194730008825144808835344774145506*u_^120 - 3748073618530001081432728370247918882300594521393258551585530914346306498353335807635633593573611721608209532602927824769055934209639666*u_^119 + 14660064909428818517611814380832299079126835179666762246701067520424266935697656577538947227625752471940507322309430424335728983817330638*u_^118 + 104047853509782713382545752086595521396484372622599363587474672404781942333657112991495568632469096660603196466397248209459254138065663653*u_^117 - 1327436262829887517443727257808194451517172858793037961202642985952656407991896262683053710471643470751989801890611117933275735019447328769*u_^116 + 2318192662134035876183482543815893297753827519596958079514420026815798797254517700082867513964254038707273906309649213603722649815286982497*u_^115 + 50994327464964560782599712704824414370149249427776454809711113800005738342966410230357114388750949275588907873582950607487946806728876402317*u_^114 - 377661234767418450536553038640999878835739183044987457910961753525859605635694769373231081533445574751484775912390123683591122416973883817365*u_^113 - 407146360161166619984149347217012295595899857303784537577827819896131740460917028966901299934579369357627179232708223665150876548821086510691*u_^112 + 19035029254392787146062367095919172834250412832685787315205344136511590851539168726570491445902008640147145439831114944725827530438437867432712*u_^111 - 74433014503684648537940199802404303610251616493828798516912142464975864845583293405363971276231653694114890963813942584976638687520014114414028*u_^110 - 470363844998240804534312589789997859593323742904479852338869749732580273704358266491337309615987625925726629903875689292267152789878457493766297*u_^109 + 5307978287421001146325843735745205453881073096335745538498504729276768183571043902892754406018180018880027950800817154995674951410698346397799563*u_^108 - 4275284240264390680183368341354344219668442191989830770616742539125189537471770668262879002850701427160314473613681899577545407346199138531615178*u_^107 - 196408329288472070330225284080464323079120461999330135981193878514374325770446574365118763496544553064128172565529274975912628128817395464107801282*u_^106 + 1002223877822074025891693639296127647825111426935321213683412699410578889499160338293652416879322564427581756360247079048705182480203073267506344451*u_^105 + 3483314044994779801367190916677383191904740864627823588517841938461344518812606525342700420050007342792380708437053928183518852717698912816563394085*u_^104 - 52079631134854634761273492303247012846797485631838933191477877441096440724000068039751331852745911250511859716855236419058378735239614994323707612010*u_^103 + 74821705734378989150674084909286429246557965845140923751258990405562072432273277299908586741595254469840033971984783038573418832455489279708125564660*u_^102 + 1607677670304805669474763525429630618959099761881215377355030900063574857282095294922876830223855462746641504885653963784124617891860352084136468163991*u_^101 - 8663938458624258831486620464082932397851362889745176072622858454016155858141578476605090087536509317885234907173229700778609900297930961482033468060875*u_^100 - 24371187256383966755114709239684568542462348633122158937104858877137330142676840805487738675455715567490998341789790056415182727842385968724795978703919*u_^99 + 381746653106609560762868990038927627018605559126903595487133089129501653037416174690113911311697445416847455922068553318223395952245796418618945822438717*u_^98 - 518473140475521944409897549815881736822539936204836017314743675859805100009938733167305851317043921494666020446651181845861066670045421750722356270793348*u_^97 - 10656267837601522628246982958488813329874825772593690173411027189045871458788645926328676024862633490459293953719382620995103474746405989944697633519310936*u_^96 + 52070947025881213024659076585501958487596474897939349343693530291785108775506662793084367250151507638790395686597583900005648324754841400168560115883242654*u_^95 + 160809381573088605432277933198570845770502687997962920185925489410250958675647062701247213916624757321341289219668927847640453334085917605347040586801181402*u_^94 - 2097461318802481737206078326404263958378081140665590868611846015089865610183675690173900239666982810453713342943779388145028670659893194745378549843323656758*u_^93 + 1843804935502959308307563231095604040014979422460976928464244074837395273457868208624429165248873738716832613943629103660149686396051531765225011769075324518*u_^92 + 55024039093649299746459413200629165056498641420061394822657118445841647012718887313473397698024407620997699650997334727252958497818618227213483028173817822171*u_^91 - 219828313751818524650613031322299911766386065610226134406617137233827969996980167264072392513292214877315782749624797972277609879695976000781158060868251398953*u_^90 - 858628544259109927068326581147791627415844287923924235239484007973963627669143090008721155083881105463229076414235476978647068783155518224473223916415608186951*u_^89 + 8458952415394266506792187635076663932644070049223383881168782919547691871549006338644792103536969212419966880261147231707811241840926993624816563067077824377849*u_^88 - 2107574091959870522210898761794670077465490303301145912780883572233340396832135854335135252084702650028452949342032370630473939483375217215722962404471336468967*u_^87 - 210864985581379057088642505313632211333965008876981835884780943228059627661755591839354396721658779370313220946448522241942015305086204523827672030795386532148467*u_^86 + 652723575329279049867769922258207004188901116601577684202781830931776643696536050574496875650782635252160250367498181923674260564438603739577980736563397562800130*u_^85 + 3313092511752409808309286574030255854973093430283905600132258131058149696673704436968198552663854168459326089034636908685726886543490973816138042811340475019116256*u_^84 - 24784222979249723009901230050603806710719587409185756002156059039559222168947856267393881909224189137462410430752521616765783293969612572427117429838857620337970193*u_^83 - 8697438489501045427960348262029554793095788901756537540272262915868913693967604971939540584389611003911875833070699747901293890656805454788464355690186066569966973*u_^82 + 586436255135699174229011495928666618219157394599161844804824135815189769964863210716759370686427484585400285085351398688907822323623636295473236547408020158470695771*u_^81 - 1397253147719185646884950052670633316500224066108784281286519367285664602216612977340992980234296880787430045778905277110125576497583798539682141161412220501404026303*u_^80 - 8922783164238465693620605732891792762126051979928401776209969418435294620401446547007359065295598313342446440680120824734704137834756807038649508445232034512054587106*u_^79 + 53306973700828855397102889954504049338442046562078082117473334193614907119419849945396394721530425958780345551106954009025901535972905511497242435599994985170744778388*u_^78 + 42436916242907373901369161330694797456298676524911886545442247020320297172671224261743268579517905188729448534856915589449205233537478047818970296479357657105075903989*u_^77 - 1182523291566319094735844651406587636264659306475693718634928209880100273431098336361979086536199937370926121291673413888335116844139235099164192562417263478408838111731*u_^76 + 2259920169486147722509663486778382712912276513414151968079458020253886246629800825025641163601003972139718622623146998542293730164976082661503719823310636109918618535533*u_^75 + 16723329175729644580586569848635828611272278408228792632519387274071363931578728019231930823806625533131419689061915552790246080655352108831651976929406329295202641893117*u_^74 - 85236302801043793012343865855808243295304482278489786660950123736897471124416667955787634305132817971409199873895537326972991169132233417704432243702131280517732874188304*u_^73 - 84986922010463210856255584824190089823132976580312155665938788006162911995883908985167587490446800865274503208445073723774957152685313428299192482461335154642806286990334*u_^72 + 1723546625901899877062843520774840732026012425030820185972718044092332954274636444784825053293103774530728908639438979241341230743131907532631250186448088695933225570626560*u_^71 - 2901486697962541440597349530053229303570993737271703748407122267625429499630611336996714127492540328427498720700005604079594994119951538597448177539291804638385708818311980*u_^70 - 21586657814301360395349698998361349137717830529895447223701875738200876838472447287952983313447088430732192484067852816570509315202071521620680644094397453932762103678210197*u_^69 + 101372082306965826337768096629913297017640535334481740412442336017772796218118005646385685316359576214109868477860035312749382034467350378064705488611319701105571116303413525*u_^68 + 90286584792362183116327991161176658918450975491052477554885822280278545629152151550531597667320992279525398759539881443287313121874311597231906071860136856818243038207730666*u_^67 - 1788719161716798059700882997893250570352036930692231456164380788461293540540852977091215890911382327792025904000628490720526918841097997131615971574676599498049471342880657110*u_^66 + 3050838382698336900003619053913418861054671030295403515904306351993996825090559305510302311789237641584400450569546544335115301721308704563554850528091875960064478710759418165*u_^65 + 18632662973801575604440685303741833623078466888315023800872009818889687723626908740415735472757635500558165771344602859662256998302582331242872643146913489654679428168366707171*u_^64 - 88739697629212468591714138022887735117895899894360857423771711951437116160449771154028460217876982229662234881206106518752193978434462429626300006062311145773484463921868209368*u_^63 - 41512450236225576756513352729027118395797625837136383443284528391826482288921359068365355347846597094051960904783456988231632117389402796632180118322071288579933599727111398224*u_^62 + 1289353503674541608374180448210639644205664553918736788614638079778748329748566086002153774462389349367565710255601672341402460860697593783955350568613382849118202403127249725992*u_^61 - 2559974957987582010100279404331855790150094035659243360235427427434709716966813505526188483211904893397206787415797315306372226059818292488143389091644290824580186362978417962622*u_^60 - 10177297666685701530604534319559064325624691488641706344717863611841831800853728603178573159888274197202662660449871997398173692872957095551854877515153016897546182748177014426253*u_^59 + 55659026813528102840185298639185275780363200549117025513882423316680036348550403453999468510650772436211219209902872515850764167170958226186113496355280552347954671152655599701211*u_^58 - 10446303983709754814410386344702955738578548204842280020831917058867854699824996588730484428004638281123541387390747772193459561016330320268676387567494446347668886295838427375013*u_^57 - 619309823448286480802642054588679912228380359992128264062453253742150952270492304270699125298214408559907790522799655001095127808273055092770048447499204891271593714950745229979043*u_^56 + 1565218014380831140483639950655495768401019625858112021270156652875708865178860449417377270512822994480137531572462001417734403180220709501303446047964537944594562473374541020062457*u_^55 + 3104344775498021970446872057131360614800145314070159307899148948425611675742591075695195780848767584407427760381560461426388393208506284856997656580005468306753621097586374331654331*u_^54 - 23650881791097937578492896716183274971880728775625466630100355015417824938498710304116400225281541460469593673895718799467634033618310344347755555102324692568524351623068970540204501*u_^53 + 22353253034377174537890606743861623404125779394283786747309462317524580213047591500989268283324844114361645496171454227771231953875652297189996169220589697018893709853257924920941353*u_^52 + 182827717525066592938006854899840974143100119538072954890321579607642696115741708359677144763606779788653496049275195331796802253679248432464361018580789377932494476017680056038652188*u_^51 - 623333734064082426198660127598378438100088344391433743907323118737732315787940098936591301830186025721970993447513388469548180661087432029042197113965499179540093539607373614707019286*u_^50 - 298217096629413890387005116699698884880214149475650507145596198978542971513459045799556807893075458297461952349462880689202425954713690064456463783659653678331750073215393578679871030*u_^49 + 6189359746915928804557249419482106980536416866635145595819551911513602627047793488728254711506738029013652648741574827637522135917951809785470620799091883098253952301373580773362725330*u_^48 - 10935762191621504531615875136662188841717821899571182044309316477683345180391543004698486519788444770136434276295258848346357664212739551080054992074502906599401093625340536457297331818*u_^47 - 27324127690699376450705806095577006440099628948955550409698458723547285070776626561655278364545129335103544531642696661920576445411846528168636954904747813352116412671484293415026097992*u_^46 + 144935054272708465738572210455094520015061333551286200530494818886545531224900169771238312886252228062698665669686646575602180591520054040935610851312154162804672014545453595384149059587*u_^45 - 99607736655167347759394743251825429860960950967128532534463896760344714871590158402318777982071865811397189910470181992402484829956861598743923693919137127759477453736975234839726383545*u_^44 - 847548152573677165031475452166340087719513542286281106593195405873970331668379493580172779954875636803972312780976390889283094334361639188936902875457051700009030464655577413313362238624*u_^43 + 2463879464408845913259306361741302314430794557012574262797722456165629790505029641732969475573573083358156646388118263173490918897912908606598083387174353621146350089976880643512085119544*u_^42 + 579744695544092114232119279775079251813053697323372667867520225248966871396402085358441295533887844804742472776665643552238823466696077384604648449822980987261581835666290322422508239672*u_^41 - 16982610348288996431466815497989497532354258620360930801247620875344903614232951522328368409225465032803420786184379990601129374068347638584135807134847997350704630290152678105705128920010*u_^40 + 31060817709740665761716437540240536955110933917751471897403517272969649701283234100683805026517448099662967807145909888831283832599199361243025426919996195335235037603213284821970662740288*u_^39 + 36261142087134170515265355349959547947337665412236643454792935652069110360688917393656426438128812996383021779687494422914371580160920668351924186039296256853467374383663489780953357342256*u_^38 - 245134606596233850892961979830726803402343097480732194538774424245538462599851908217125942126052882378639308868138155070157864922245716977575098114837234128849776585396123173037866233585258*u_^37 + 299543065691460184222518358803120798207668394445093091890179636275350052090596886161903669645331103586286257864631570137671358751598562745681124806589632261214981256998110063315933396539564*u_^36 + 616703234837058198076515453336772275602082358138284319198063614183464714356976049252462185572336748782738422387888408079955285161933010395351086711295075446741821838408589558090551920559200*u_^35 - 2625609368180732247464479141278992873588110645203907873842963381741991320090154406824987923142521276412243476056259271355958371878139752219211113868596758476019493831774626392796880940669896*u_^34 + 2638892794761129818025903771759538949039398333121921893255636929604458810774865381682078302804182635109861242359234992241705581852772621707055754292775379415525003063393013345529401644998252*u_^33 + 5160802707703786725854990571195472301201944035498386313868083507209568423993166168883422171271322837705323978932146972578598112085118392416952743382779622429064437653456941045916594680410964*u_^32 - 21551192879294765893186247681758631898970917522282188022339296070828609716185920892852150789267469036565611038207970013420159792442832480771677832655268087294146719587654331224280271503249412*u_^31 + 32719011427600485563613838638360075323569831322766502912023479061578434641086574088598440050830567446677554628776119563033244719985874865102825116364170821871631765699632971011402869558788268*u_^30 - 1367673689106554657103790143478734474047800272620366253350409190951354044663444616929574946038207773952064084984498932532188936805118250843357516581073527683828907320194053862571715986830936*u_^29 - 158716591969389338143209623488991245099633457701368812451658883199574046145824965777014982199794382631471866996835825666051075267484447079594215713421261490351907272720929870635937136303434296*u_^28 + 526064416040400691863446762093585063326805698987776814758846619485616969185553178420837903744856218393753089926900005378376114885899800270795678290877323893314319432336583422197839371653485080*u_^27 - 632364202952799274308908243846307292593414360211885531821060050300634397084399419153138082828204635763266714983084372226473696324885929046484798895418323183348608771839626167199156488266018840*u_^26 - 1415565431380991991646293545112044264042039509580044689561164777080724842999479163161118907567265610887823450045250346036572549869791696825391635910484310536717827879252412634533583367310481736*u_^25 + 7156592232874802152644852998510572651820074284318194237819525469300215822316928896999741023276889302521175156294164945563303378155990427324800395064750812814689645671338045226872786638037310176*u_^24 - 9230259786947581639089800277022935643386727621520451623337304187872143581520536576715786825419591930713182077593893994037840631203394078496399064265182000894662307979325965790931376044625630104*u_^23 - 14771333727534911035064314847222983431433660282184140916261276388780958102239706189242910252173176506558489867437983174265192732882117039232232644752141394089255010292119741461058932852707963296*u_^22 + 72389590176539567343135679181029311574281733987748457955140524152470462508082071688666315001568757306965447091396102000396103039934391197856312743656732639673190800189832916445893418564601319808*u_^21 - 80555801139907028356731588346020287026831547807559499879510940250890358937497573319941849248110874340750081323824974502877792046545597697252057176122736664548923308641593965503127552455215406688*u_^20 - 132795047659226304646301834287782059433848126704579352646181404802606265074376258782348426998441772988954595673793075955389652030132859514169600787377089549113547975530919331423373002571683180672*u_^19 + 541083188309485248325655172021066587537939300251602303733967734406609958522937951340414289054012238882352190474106444705998045411460308933850740936798218976037144308107516488436598938115913500160*u_^18 - 502711865657890268852732382451580773053009570655337498930108497685519403813236990031461477625310084023294804341025639761586084551773108009369096199571616841839674256845117519957644772479058437312*u_^17 - 881546147545478390974688633421443048968790991746986680823692916819473605852149644233173016950658235666074663117151131967475342787980663550588757272042307685992049631266395478918168174307697659936*u_^16 + 2993564352061522305891122347626732789004072417075750065247637925817993379603407296715768243949194597308397079211510903029777597340001343479442851471510970442086625505417263694030283886411244441152*u_^15 - 2387257459653160506293881777202379690232815053029285468644517643450558602540942919695398403426348868109886424874454116084459179261755945769487055576411807650377711779046947670533303319475382174016*u_^14 - 4069857284116176831845349377690561825597710777359003443917507358458530601496030454705282332978180022712591604656832474827883686877903940979606985513233242772210700000180208873942920683509849333632*u_^13 + 12039907496714114684069278286500102057428619936570545034002701171709550010294465597290761385087606867370790745315438382853958164759654701131961693634169358214652340679221515689448683145146576010496*u_^12 - 8774215901928459542916233171702790432069680405124561368406749101743962632454390697290575035193843347734519474744229467100380724466948494682923465064816060199633287909107381587206037554719178931968*u_^11 - 12161840725557399149743334974944820523070089766327513508992355164347051836925104134135765901657736244118077298637733962122578321789800000718920749597149877909466230140511602966069256597853943973504*u_^10 + 33343210863065079191956059995913203093241045147063673056809134732338483836727307414513595427267061307923745610107307892101505631150741947749553630643652313227642646518731263513299417996506708423424*u_^9 - 23902190924228173281800371823142121280092154452727998149005404662060281100431291928050742979103198295787564588792106318156066832866084839737603131345060178669094065489537085522237118068965036358400*u_^8 - 19875380006733509549528995659469077203328138398974807263331612799139597997175977284215889299499355231453310427068613564048231336832472929131544753649770824043377368664981370526146104068821167176320*u_^7 + 56067520867612358833229250602126295420765996446472328171483309381523285225511026788185044603896822903964127585714431758487228523869556238018635352695240139052245423744193347122265802271027279816448*u_^6 - 42212313692162726471220787608756026938912751213483629352749977060769799357389470542206928588338227236930587446049066920733021634254791939190943875410461854334555463590672498753830583431088332013312*u_^5 - 7826596646555556187361938154554079875516625396971767153629218754289561128827850348504880661669814770965438307082765920853108518756395115769859258982485445540728515845638913834909426188938796000000*u_^4 + 41332402959688114075809700864007484967914613653626205278178744303867318914174979465283502309692224967865897125013412346384277728573817687095235843638536244641526754760243747894226312062168574241792*u_^3 - 35578340803810504603669144503165604447261856650648478624102544710754228634950991776695017147333720682449583785660987734501302653245818064477853903165692376802698885289275703853762901959387483782144*u_^2 + 14387466564121191103750076104962204271107204675039750204761577858872058050009081639676114706257470809052452929178779793148554029503113866999254788645559679496014547810664142683462469676938093063168*u_ - 2372635456382143025532360584794824544992676807103657648667396748113097753837490502209540969033423660066224085410629758279945242854239112547334027404550369200849125089315763866137173959653096142848\n", - "[1055531162664960*u_^209 + 1295629317799149568*u_^208 + 640654889868148604928*u_^207 + 147117546781934130036736*u_^206 + 7081390292223476604338176*u_^205 - 4213118110558535615567101952*u_^204 - 955316782930804581461909307392*u_^203 - 47834563465552522908226937683968*u_^202 + 9291038812332588164903944111259648*u_^201 + 1298637085147641720620324995819634688*u_^200 - 11712762553680619986561451292027256832*u_^199 - 11024430268890790657596637447303842496512*u_^198 - 310978306211220304927473575293275651178496*u_^197 + 54330668700332640256655950447604454729449472*u_^196 + 2508691243316211082360072769405429298819497984*u_^195 - 187600402327903799357123015912285520265253224448*u_^194 - 9973816685928594790527450952417077606347836243968*u_^193 + 507567544651578564561183381282540233897720150884352*u_^192 + 24008854094202846570884158623069398225631983812854784*u_^191 - 1120661043585713149446797009654108094602749118939854848*u_^190 - 33724972728101244644533519513540003180743626870895439744*u_^189 + 1906882440446566984147213308808587117795198174075849310144*u_^188 + 16646606701194409602699902806421973836111755254110555556352*u_^187 - 2132023178765586023604885440389946316829268820378076675879188*u_^186 + 27423668700806883187869627291781310273780200421242724641180936*u_^185 + 949703576503124040336337802260885002117898499565941494614030474*u_^184 - 49409209599081019145669663533432991617094416350294961406496440198*u_^183 + 852853295659878550439528521593563458063654749949078509917383190774*u_^182 + 13509280252084114463024246625540207987318021866561752300166345933790*u_^181 - 1112570225876984650923943890060883300799811031813209267985144851179008*u_^180 + 26335586214502534360204728876271946793788108981723714477562390470768842*u_^179 - 134205835309841983080543645095687098214979207657968970430878411206851168*u_^178 - 12355938954868033039287691295909978556804785434395194936093331229063793836*u_^177 + 515322957188606821640487240440972490976108823235950718683763727298992728508*u_^176 - 10823068364926370583839895625272291433225580413346233471618305252850046804232*u_^175 + 100333067366884002368917202072674838354720898902789088267812322881718655483690*u_^174 + 1922763100284627039172845421754915905695653752017268390013534549089761219632746*u_^173 - 117864165934091741620572055897453190872683652609532438615096060353762513940886604*u_^172 + 3535452603785433297150599979872992179073492171288503534032113564625668309271154518*u_^171 - 85507640290293842268499358966829423450114563538563342874909157219852275696561531900*u_^170 + 1870747297034455756171127691272541076553050947661364943066031328478239970907028270012*u_^169 - 35647952520128077268834357220750666522517491383872560134211457885887794378858447148548*u_^168 + 438693595600982500668131362260241348615272424504741930453066809288641901702448420550974*u_^167 + 4874469299924050153354281959671788771206441675708907649248483693000344219348119178669940*u_^166 - 562265098270167588017916998470000205196138010592733585264312280680898958127222092587196132*u_^165 + 23340816748768378465000205187561207355072561114336734982040455203317362980902663261227722104*u_^164 - 712301440733569894684457640809265403264469015399703974506673011552865522431206488282535584542*u_^163 + 17928846319362046841206175918257032646024535921537929817716062894085631789378638520000772497694*u_^162 - 387708274216582539579968439213542974907220756302421675195787776706378741128797458078837849929916*u_^161 + 7329585850696727683526029300648127555678266872539072335332482404519625763409331530220097364686188*u_^160 - 121808045881203560911221771892066949509562382598943823340129354818009011236518944006179489255421606*u_^159 + 1772169664505000930028629556486706749739978492454365786815197899005314649739467241181946948445685952*u_^158 - 22191667982741437817381322732018540559054933644596060336110730196124035420346688188429894518136337536*u_^157 + 228941544701322747051635657383565228070358178854039555791933130938092415237907813813679778406298138856*u_^156 - 1704552542323515769695302657567366247652353699508209429888991631301198982404295710841136908376466645908*u_^155 + 3344668145862593769679191540762457850880882809613755451199144336620796670444443067706807100081998259418*u_^154 + 163227264931327819200544742927110822114833286280237819676119568334145955555622269548973185278331701860670*u_^153 - 3615792314782002104176013041999227735291679538098437536178832064686544004916874708079146812266665358107316*u_^152 + 47802714305106178312830586822901853535993983900814973338387636366924905515985021759383677511625893492946386*u_^151 - 439726183885852784611673826464261045219015568866205677112598486035728334455072713874566759940112245982491172*u_^150 + 2298823179984987425811607111994941761556013591191690381526223815675040165414035505194943366935803571131043978*u_^149 + 8498178889904067842314519626278796375701676734153195362152567997270517612809182687161465601801187751894012390*u_^148 - 371168085609266637562423708593239170297662684433841315614173232141400180620892017844331242012903279101887477954*u_^147 + 4906329776823721321553625026624576975793834758849107738974410754541330229935176993143593980353955184730671599186*u_^146 - 38087243611663465972180988549965666073289772916139003421317244737945491184303831252367327550304644421337794337364*u_^145 + 101311464271954989150444096938892076467007489602507323152413125024836399257072248352933772535578175657179483981992*u_^144 + 1922438503243345200937183248393890604540316458016352624430142693620339171919588028281173895664780815292692783067508*u_^143 - 33862692026005239851475345381923149027409747795256327743527016797449694882623779941864353106590731827144562438918454*u_^142 + 271944502417146247802108074910097407292269207486298285589413545449782428672446989183709552212691591160512098734718592*u_^141 - 615019380946786650500342131612042036283648903273615932563374422597787850870717547042089147968564350868143924914131072*u_^140 - 14058174133389859996057296915659701238240167706114936009834895658470695761397454857498797774877255814498173734810895734*u_^139 + 207775862650843230413314200007928171186116035869627462346020304286899884495635553729836029885982972176523057325056780436*u_^138 - 1231245455930696112103410167446409885325932762647305008047057891735290285272623280734082119121289177770145585321043864308*u_^137 - 2305066741836115258917693071772456410705709608773216064636460323583371058795416936670090720958472206490298956910148556408*u_^136 + 114371858994750228817365942760135843035762077393943941485860956972416998306668581000468722610218116534267403599758321034840*u_^135 - 986478013663739960538762802498899352474750601551668407084279935150427119211537073130718433582954857166645719794465576385694*u_^134 + 1508387430885575147772229839206586731390001548938523218051092747433134942115029929536486007328828298000951974490826278770966*u_^133 + 54863374050210146346311280918626075735920512606881051619022481264512521668948554599945644174879754291612806258491421253873832*u_^132 - 610795284560632532712330527293028077572746897437827614177822079953705790457620844476184051739918442175262626641228898760951358*u_^131 + 1753996339674055958413726484612979478122583263168849629447025155199333156961129310476150593513261649531491598396651705091209866*u_^130 + 25468978213997916546229091338087860355308932798357748333043702277033871290520169609176450952097638775641076325052078956753754856*u_^129 - 330210227558088924929598089058933973052706501510348884799223421066140922969425667017814889314365700214644992093202153158598333932*u_^128 + 1070743396163761629152092957274179444744827370847247905120036045593622420529680223627745221214075987443544205400782827377556796966*u_^127 + 12326180707619835646072614551193652924510896244764438105168589096598776505977702705537453625365285369830788265348819921096067647066*u_^126 - 161645040923193608726409929103284856078577120026550457346302989448656284898521948236317470466880955345534102483338154013313255866980*u_^125 + 463848976369479467258599985250126885902972688159547631150803909867870826095591217043993219931496044942936987659975479508236733585698*u_^124 + 6254775911560053047163427539066032722703398336491691849194273177071833802370180178718648657188902575691982714002919968510896943460860*u_^123 - 71328600593490251671682209519628046682956285435693654682439717810402122746068586542575045564043991335916627546991851009012951741307774*u_^122 + 131554977841396670843958268322366050477004517472557155987529496713215445863503749069146028594964403561155654913705034909557915727565310*u_^121 + 3124702995675945473310272442882013570461439575076843385731060495663887521386015664462895409234656806183022779959155404765577241667605410*u_^120 - 27454780537508145446189877620310336551697277359764857899393813776343213876125604333515669820836457134358298775815969963001688796352672228*u_^119 + 4368532553899596463758208421993461905914293265430602248539334544036113928675970430947287328412979184426254463564167214824400178761011642*u_^118 + 1420844609589180193046796698189962527851856078705477334682517648583398403659155352922472104108178649397362976255132401515346035964486993342*u_^117 - 8654507562674847597522884517126417641936301361531866632141484225161701607740152090329765543569771614216719521241793335237248226557495519464*u_^116 - 21937676359618059361778194947263868382406421340957875642367797396189885707718127875889096903385047856139623111390738746070878212473699326226*u_^115 + 551233462883522338263002883352742332242684044327205271918499524594824661614892088327787943413243111572646331103741877290397470923783615072064*u_^114 - 1939161796861313562135068604593107515168970387843140741016763317261951828739081111944939504974996277892558361010978690236029347693846219978200*u_^113 - 15872993039758353373478961655648221236606858229845414465698730646274952165628849309169061822944659490014829551567062060999350572458259102953022*u_^112 + 171721598047580499694328812006804006964731598413214580907343306852047509432633405538532458085683736777072692996060861740051384719141445614815040*u_^111 - 138881988627370040669361792916722641752534311797535284960373554464811945190803975309687409945830095085452030050340578057785732187917404826170694*u_^110 - 6955734573293531052090670921342119865081149172978708220349716064516688925928442265160351836256650127691014346193012189799401880219283170353540946*u_^109 + 38998987289964997583700625475999044590732670265712990232206550108404172501821444378391941292999417279170220229944139681030378195157344860418819760*u_^108 + 116127644497542782686454315347601853413885330021611710855704973673070111978748483081587902827684588545807774315849667422048143171640899994555550470*u_^107 - 2144450659131003504247266353298061037166039907043859719539460749185513725760884046089312383155785146616138870869235545367099132723815666507745417716*u_^106 + 4640538499849528531178355434363727731768854075075526850782985606171255321393142255420652761506488021378312249713705571505369112208491289989273825974*u_^105 + 65665992246249596480120597737347845206768707407713977571153126118986365880149269582770424934923396539274998309679471830368351507564152329383830519208*u_^104 - 452914551694518153151677718410559263189370901323572655982124435489969398155289152442658801324774151598033771459877058060265705604218946524506655712152*u_^103 - 672407381503541644670819285384384558829530150430937121362722417442638177211237840844507956825367350967663811087041842476838419921664801941237673036260*u_^102 + 19518960264017943031034809178658622736005140548159708435951638747024723404271368072642957789962241802652359544203506878720625662708135333196158351871096*u_^101 - 50466691271977549241159568839203338382066331021484597991720029752929583054217385632249752985122979887890152228415290941261531793821426950867955439878150*u_^100 - 505797047274735191756295499876914750853111778433946985777450640311396792417717766239741038608671220307291194959857550283804172386702351553650661293414584*u_^99 + 3606756630807361403913190108191556473405428341767709108938553258418794717095721137642410097860698255064692200630421306667761325565184009479478912707791510*u_^98 + 4303583599371049265293778052639433271959332081458644847913601477256058382336777398041583975186975828752527546445626173035195429155662039487530820059433960*u_^97 - 134841991129624702800347384287939447069847016436759193416023843758124922128780477010968015994139176819518203826347856379571010645468071361806238575814169352*u_^96 + 321456636264092118201970390014904843616400566002169527522007288975758763897669808603306560227529157896760317214748883016129734457021601673612534568053763054*u_^95 + 3195073542884419305653397270763069523353728007732563172883068821041431138510574028708373000332619745479827453952125668485165709422385957023844073969536976918*u_^94 - 20420419121537600084646250002215832741047571172695209729940485869152816968871391798298615730041355024725532603670118615016897302900355089078301007940611967348*u_^93 - 30726657956793282299800759314188273230735157006643198303551971791876007811268092600355180520993944659469485405697859058549997846910604224532175918600387509424*u_^92 + 698240674294327374019460487409715851001815768489009397903331482629449436427863115131519445391896140033491444687524646362443524716419558582186912523708380002486*u_^91 - 1283248121651216014280849655364875235175660529431506694369865841304833975569186146699834934156916109723588827568342033340183968385180961761032887843621740806348*u_^90 - 15644703541266259189531580886715369271851016734674068705149989723577810407240548580482712395859589725147690444083449270807490159979776399972499394088142064671658*u_^89 + 82017554085276178511904890609293636295901154319701316071453277971767487947102723762803637792118719227732962521156761275036290495494839994685929485064801085845212*u_^88 + 174107242049511028056560638963865448516304936024580454621980204556040846499595732170639511002314233888981960585293013697506250054923732826005135844867357731889878*u_^87 - 2637754383414563596641439139436149352862675371763912996052599181445409092681056218513522228872485222082898349032137071161871746847373627926646286942818817142083106*u_^86 + 3187181266487077419879158494265665577300859075755052439669418835184464600193024522711619713135297477151969070111862972865655786965152293365152650454400427781725236*u_^85 + 56048159490744613182035879596946936779297721432159667932971163366528225919098634893534175334965905596855373572217853384842771494498906458636993181988407662061796662*u_^84 - 234432213743664755427705418443388140794256067240979564301408729689598777616300702173752920691685284889338240806343548917094527673773347991873511110886649554914681882*u_^83 - 662526387646136351212653298378934563310101573017395206687710021803327137848745698507289332638622179112532033820410528969493589884040742264344961387282280222825944372*u_^82 + 7193071499229450800750125750899334437774330578268094949513722876840313352218557785568073668306404090091389630364662717050709817313840377497586284178814925488749742000*u_^81 - 4880965467885567528357463310216142492500142035229226734347909678807277003746377676200202060914763023067475091638054362190317649087748334479401542110201603730725375912*u_^80 - 143313614637933581791297612461901118308546640549745372185294606217676719587658962438238251960879365277630616107895980475608518470625944122417561736169091507463946398330*u_^79 + 489034816927864572275759695744294790411237707530014493803355958462610198386315459291402987214650572929886702865285221248468816729937915771314841168704467125021521722038*u_^78 + 1660371369101802962303084868982305544807101631227878688901291604711581843412868996401024250634859195334416931751440944187818345763016115459989324256110135972859578646626*u_^77 - 14263886716024520507714737089117444668929675662333334773255341066419769725238506767356508525626491442370132298350808583574977491900810208061952229336045860871128045955876*u_^76 + 4859300987173423017631734965456132642169585091594933300966229779670521548441091030501771543939250141744703479114304894010444693473932532896559906668138826171371859474822*u_^75 + 260651720679561552517167648668385513695669747637184043951629779102097417261920108667908339334822020198766495288090126538879210317780427864977949424923085630670158885571284*u_^74 - 766437047147386555333208948185050109661151077507446191240833338484732325242871024068384861375334567416686698704511284701405931330848247880955319915522407716909392521072502*u_^73 - 2766427593532802982757377131824482417101641066881873568632964568108151703365633709606504539812171888640461035412679185020900960530459384912206427827614000303363370474120970*u_^72 + 20642478527988676241066373925372634397360545111062378500605863252578835594404082697071064866702725032873021924006649947711978299163316930615645589877137577521069113053287814*u_^71 - 4754488599471044859460647542410597932091656820971419541906326630865630645532899089941174416401526691794575429884389668527292716394150277726190924314924714120579385504815586*u_^70 - 334111167700573515834529676551330663560000652807403862731227871448432037632113297389070348921079796308461401451845105648085425546304110334019386984035190171717682851329250412*u_^69 + 915142880710825346153468963689035153328230361364536567184340209713849968832790386286786977688076411488066048405775980269581093067523793566385441804153859831879356713976131266*u_^68 + 3018410556392205072330567284035594482948838755463699777928994978482969749615262272197519022855633656337989256156772388446222063303739395724122701298387378240376153941004220508*u_^67 - 21582534121242267870159160470829350729877723007874369574929487596455193734089595998579427292399831200133536950931389724635753294058294963603178607984325048480019766381072159884*u_^66 + 7917409676769616655172600345065653021951836795294690515245121519255944320883332620043104446745543180394712235144733990442526868460074772434370986816565594308753164600924150384*u_^65 + 294766660352622998819301543631684984078474758162320277514032488134664324791352014056628361357361468877791486561139354060300052915725624780923631838409975363803825209743053407126*u_^64 - 829633240273447894894076876233592842185999497824661445956048391845221558333840151127861918092343131704880122075161910230329919110982437133476523082848249747017102762495919418808*u_^63 - 2038414863371303932345691342154937287538327082438955720199598085978954573633496586021775881317009197977821270514625079971099009338492616326887285650048584022590085379990589651066*u_^62 + 15971856540718411633235606684143560761377438336113361838914273237449438426279935846044423230583266396685475350686278725785235922556150810732702608026075441899259779451496865229152*u_^61 - 11885633896480468123124263493107766880967513937314868899909114877332541942009876101330391893658370816438882586211211726671198729379035611415806935904119048358875829455487946276410*u_^60 - 172343600528146382958506561377838032767680183301067399729419605639577156711231475993730826464399003233576400559991738034174785220207736994168340286221211412589876703478615873125366*u_^59 + 553363859793938907309538815910027143282979034150440505217304237686837149410498352226342471766365848916408481079648274152760027483101601028226742672611523935436702563882562299391534*u_^58 + 735040401903262922166669333774468598469849225467956104068691116855369696648772790381535127830695478381976929231187806010197729047728530397722476508096918936958338274898829428165702*u_^57 - 8070253280041799439810889914419597305245665657083904306845698826255695687844802483884492918674434076066689384508983625476987056340520518124345128334442539545152352907435946826754600*u_^56 + 10587783873111199985789188014952312184672165504116569410346038683224817966528067810995369417282290697213415974635909108618844324898481696569410451670164865291334290888307485440327448*u_^55 + 62571870733826056281707981622426985338156005305395839264992800862416662154515869547923857224117090173464192830571083921609384959772720590613191297811895135047547945992471537758490216*u_^54 - 253787855583280809425634304342934403439164670939245864133085431453744727671953717517993075720765081327968292293761997461220022291186231301412074948384358157360319500724546255601731660*u_^53 - 56493616081048325269335428940640562616690045349837589355553113350228547697386406135651538916963402586572319943853280847118000308588818126745352485484237361399617546743852632855396638*u_^52 + 2606636037243421774488034152777083490589079260479172994228357711256475156293853052804747700336839939030289202313459988730847073978148528507014396416755802098741902195505383951785642108*u_^51 - 5264866688072590506888886974528239174702670676289531915603115645147158679303149393331125429996219797315161586206516068261343624521026747625078072353565940723679608556168915699305505692*u_^50 - 12149999331437189254133708239173013862613549015079378156610805823151890632790089525658966253163771022773496339439789130739874700719693458958224329759302363608777590116114656832686735574*u_^49 + 72648812131422895515320482700036460208690973090087024720143535165391043300164655017277767797445790329993374904311286435076161155964564834714814391102164375545993888381765549185340417432*u_^48 - 53740714145009994572447363703919768670005719364449929060490442130572614588454088797998030264362663068937975130184435800617965346506528117193153281242425513000500935614373582162421053348*u_^47 - 475631885894694917599001593323686229782753032207711676065722141057511220357511673172712965080275677060439113743848320316068023483295261670413943047992215636821425367856039518914731365426*u_^46 + 1420829734185988064869628361513749238753793632038484020943786636005565377275880358570606787632062774119709686991943679642438704261791894564256612462071642839186172761089051511972944819876*u_^45 + 597941942451164950733181388638592905838289261809308764022324483866057273069362793977293703834572470867645412817180204890018845969215124699356712195205383972914650214295723636717919089306*u_^44 - 11422227371723133104864850003819156646512911405288238849019523804519044822331944291035994879395922408466216284314317116886087182354392527831966094820007124725136776675463114225986216581298*u_^43 + 19233109543044997452480352807077072886498972263195979309857374526636601100873499037298878057266396640389542112213631911801784218375445687218319760375611333614481279502676461626101077364032*u_^42 + 36045172074471507739332359533918181305952039731907868861402744345614162849930224746708669099664317599367588807841663709681676531196885084554312375732281445383399074451897233246849166775612*u_^41 - 192779814348086430357828046883104132616942696824667348021172781555819936348800542588517321187226215885901119081159760379112605584618014610774801271296192901816355520433204114465043895662086*u_^40 + 167553629770311160508667673535733468945590693302561322007147600045842626348795427489964364402807362698960388030059197945567858058560972059785299737570091180830132377929573796321179693308260*u_^39 + 764266312686460747977517232699139391677282186099369981564433064270985530141093260387490946810296707642206385774053999501075563629436886193743013315434526813230525045325046371611525530093548*u_^38 - 2386991166256569013479492230617497686969456130482534082113946743331268033415057572870612275319698341279844542934185190667792574428413716322003279197322518810297747219802064320229963119507160*u_^37 + 734812093643153654975469852184682094254653250414844090456038152828943278952053348361430153606769570178988905085647709256441046729518415252847493727192320009814302677333053863009064811015664*u_^36 + 9879609010445716634470994738151114571709996564809735902807255136523914879521179381431317162550174409772278710410393834144908973792393726863345181707129715649937333341496011332342677145865004*u_^35 - 21999084675964337271659458148761068373475300573795401434821243626852692791448145812996011314962040500935798654654576926687647916577072038889335431655208405105309151795888834778453816970990548*u_^34 + 2437050974024325046903308339031856020678625017729525377313652952307733195932801923982896301107342506069822733081462354039593334305078501664800489104210643144494605122080407927533626325678444*u_^33 + 74638696614535809106751979958147802645652555677963996833943729371901265088925672312688894771893213917587331455502651377970325155766507893538531340271701458005069508202336586785611339685357144*u_^32 - 162824720886759690249791550506267582452192954438776483951378112570512990839798159101740052666694313891614992075696042323577245153776793488824363190105848510723682705452757360099546559625605864*u_^31 + 161087601296264262357829095318008962401778792355305261683568676859177082016490782038611727902908674611010812778984743447198536584841559018805248213674355528473136752892088250972059816356126112*u_^30 + 102585422492952619758518118061251341400791218247294358407209468410722480517933031108842953119650013687074859668022372006844423519431642838288668278062436891927198758980672809232133006405864176*u_^29 - 1365887619839448997394292455696515097888922276143145005804368185213734024320455829841077914086544199181825501263658645890538399748091953061973998213925736181268014562571665233334091226387913960*u_^28 + 4596318837286886037929350934128029614932955308947735160373190924619033205204672537444166566368892078176530662390821703714656029208876854831083557713736279609500969892215035273723957086162374832*u_^27 - 5008105475386839587263989685850020590736615998660881799630733817380771000401065704590406842229512189783721895401257505786056447735808796607459748311149240217493449872269023593100952793468727784*u_^26 - 16481257932164187821403605601653274053344205687687048694656269279669713069012973544693036676915672153262376277677838604009064070241556868018020347470303942005946501447129548183147297482839680560*u_^25 + 70324598967162870659013470164696500894436079469843903430485482523822469267216028204755662651348227286483041368593542619249013187791513898714511515307748337085797787743685338560306513149849414176*u_^24 - 70908256734963666757845971033984639798021261892067586785476861570768369185719443601830146004516855895219586361583749870342501541569298393991714752798641224304985486006553583135316356024191279200*u_^23 - 194479388214846992392741839287497680628074985611142249230809065767170054970963395771501648720171870528893369216146049556316695517915667924288420654656206285575522217211808688168459663784871665488*u_^22 + 714062539678980907981418725246111654911650823495561410294596264402492054753945477950353836978036134562950642590584322951772960723997655352341733211416610198271286009270010656307093652172822479936*u_^21 - 567113865101505670572396781808296228322163361572625368351739877932337650996956882860993876582791601611392507882082472803470920747681676829390677648621692112218608376459916300277451423756894255920*u_^20 - 1734083286655870768362035362463285163634057267214501370882203129089488654622208705154083045425649063176560559584642765528097322075502699932668627918553285796228658911866820884823046517749892337968*u_^19 + 5217331911334157614673154751202454072739258165772166345992911379871530681173708967932202202572233038069707228223537912540519088164009645990671978195567724351797910794768105179592882975303268200352*u_^18 - 3266613579599291288160068816634214383869787387278158219040549470172899893209876173740279514887615499950202154778493758791799948799964602030907168311677145027323334288471095878236548249721479132832*u_^17 - 11063374521832781464327438312765658729243898292866860201248966357216253999852586362944298890115137218677952492840746396155051580053959758595531557683319474613764250744007113017805923388190479168992*u_^16 + 28202801525216439533905635706799184070739540778033082753954587026612427639316345182860634501170807664774243838937291350384295736483137541425446930350443201927787510600994711908309101582612930366432*u_^15 - 15028629689300974031220074847291502540172179169030463458780599378751952064741296814988942814862949089377091568246450863909536262554989729177071670967900884493525409613107878100412415309714862830528*u_^14 - 49278289034345233238159563269608644250695680129942656990633535174856444745650824451736055556220853774984169789030920125770117740840702312687477422423134593791689379444140226548875839595183443108224*u_^13 + 111913939000881202575135025858627166021716430535555080868422838964878702552766040844787223623514216319530743610005897992964451442610218859283422456440985383043526935837524309241984929644408958229248*u_^12 - 57831252310327685459241261248357366354179259381893321400839055683849307684640152021981546479205947875645705252716281319904916355725893239614009561530244967630899832666259024865186495055690672505600*u_^11 - 144547965155403486627538480079416124220305894919424586829662075060155293966688771224823573973842815904313030017593921890279253828501791952293412888316342157546607862753662284203354630789026716934400*u_^10 + 310207469877407431875073334783341377125144447666464941754090288355057113502847707314099882064627306026581055104147709551637038019245499827259964620777850186716820079100558546129674093010604739817088*u_^9 - 175375878267507827403619238120892350413087268544574108336482619057266555576778557672117487534766634930724087345182604808050149733892834374803848252111314580316142937277945005294094081450610541147648*u_^8 - 239956256574225054120195217223324633678805826193046986430207324100943921114768602557904298601192340055004662873267586846481532715433288123621073470871102294412768765706715112833293852421416515927552*u_^7 + 530096085821206277464206579928499221370614636552742776619117942307300068216764965119354837125301406030307870485871316603514879647444170384671534025009384157757363457760757923115347595938392854440448*u_^6 - 350008062547488490107407310408530044068817861134562539925292391671364386998778474945021611363772084433540289780300880450902468792683885521610478181425691696962602665785893863095656847361554594309888*u_^5 - 121105354074480599298144018546147374554538802155590005022998356156669475850633228935982672015298858241908980020029978071251874289093167706556267335661202806568827883867659439624176565019471512395776*u_^4 + 404057307610479918983282039232030664796370159966529326508418750802876667457596546965237732886848881198908879030429740173531324074764245367986281092604036276765529023635185936518000512305172872758272*u_^3 - 328802395617456014229679329358961404506087969555172427905705851211101325246543118779572645062359632283724623595257058702539494300243359543828318219369936934773563615700567896054059719737625224539648*u_^2 + 129349429402900959620471520432248997364892798200031317921432823449034489343329387738389888134074009305804774239472263472010473845581626283943847375397246024822521148299582201454138246746039026470912*u_ - 20975262370678285040945493432422339672364865190786346673734445917308689107742533133403711280118364425406610196273463937949996166508459122659291044602609695279401459918440416096803848421366355250176, 3166593487994880*u_^209 + 4253473926190989312*u_^208 + 2437946947549771333632*u_^207 + 754222462663958017867776*u_^206 + 125537821190113259467833344*u_^205 + 6982742955517722188002099200*u_^204 - 1227695074122230057568781205504*u_^203 - 235747794814408169332441186566144*u_^202 - 5584761224944641850448011486822400*u_^201 + 1959937790226575754096198475097047040*u_^200 + 147033887112092636350195327342015938560*u_^199 - 8073060713539624123736192705331856408576*u_^198 - 1122967079852534295163060936160012419465216*u_^197 + 17678683423442337212091389494680016570548224*u_^196 + 5219667288319449524779822301946770727628701696*u_^195 - 21513991416385514947205130619025248611095674880*u_^194 - 17112370285399700903824144467171257411997392551936*u_^193 + 70335597560730304669834575366416337034605591552000*u_^192 + 40895179886147446400956181180927460984703385190823936*u_^191 - 476421635199483644973211758847731870593900683402380544*u_^190 - 67126394648659945887299590684850938363743905693365465536*u_^189 + 1736536315305142093700901392429098278935980132281763876288*u_^188 + 57212393441367590266282514004098856072936847804918253752544*u_^187 - 3351787206244630468191723168312892093084098923954717522053869*u_^186 + 26195084251546372802074794312077180486231613525146876655861722*u_^185 + 2787594444150962049468165369140322111720753855640482267652362492*u_^184 - 121446437330393767275469623062622390072493140083286996658629686316*u_^183 + 1298903215874652477550260975957005002624301046038173451480919662681*u_^182 + 78508841606635626071969280613099374411914066761027222970349345312818*u_^181 - 4135100463427450302238928126473773955659463174087994231308962151213636*u_^180 + 79974431988807956689986091014292174470915461521114901370663672905090224*u_^179 + 712022956827655442818932557535220560447188935869654095195555293517406326*u_^178 - 97819912155236262037092029027778594576590056862600388127405208944242056534*u_^177 + 3224237646548590606424942971861371208530066696496802464072712683209412603375*u_^176 - 47160322010091467446877019223962444520810859286227134730429782145663579060200*u_^175 - 673863019480409682545872296657086966751991639841516091441410228667383678211749*u_^174 + 63062650552240238286386614176464715687674126187546232892039228902574192165281850*u_^173 - 2043541273269456333618129855905558572760645078997717960176384833572962843477036312*u_^172 + 37678825348883728297849079003963562234226618129116652272012368221399552817367711424*u_^171 - 120557608963093302742076068018869208449366700012212731002365416561077130935386486043*u_^170 - 20170426938042578480533877363329231039321648130287348722471008028989298133571597993898*u_^169 + 898416258121739343947940150514434480782718007240369565054973775535582258870044271024464*u_^168 - 24078509181834079027950128235339768525333605553554638527021108068950545044147013680938176*u_^167 + 442982581667362419978127137652840035444822673601658252570695294036831352194338397356948016*u_^166 - 4137904527018419186033312661048661237841652472895554613422006682706207418983756707635753788*u_^165 - 77894599439833570501345091033226021780026309097269926699729705224482713039394882848832527422*u_^164 + 5366734175639710322503710840806988065003498622629596244491932528867876166629357417820568470332*u_^163 - 176863886117344814849870368314359465579717092686401932747011843086200148646749841807848680613735*u_^162 + 4477921103067552376544934909286557587437040511219152496650514676719612427307298973843900576792876*u_^161 - 96103119674123663362615715118974867725747468045150024413806782430341427454627448907796437171379362*u_^160 + 1815185415360342152958324254069660908467878175872320026496594759664623323476406541682735359371019772*u_^159 - 30701978454095440494441771617116086632014631951989714305879961493623130580087475338518075871723364224*u_^158 + 468702080032250247591254887781189746234085156194956879444333948158660712786696431509645620599156920824*u_^157 - 6470571314092892846112324791545696032898405398800731788390837662344919460760397920375221343554407894007*u_^156 + 80516029979153063780608081386911466675934497810028038542940568137885552480767382821854057702393702928888*u_^155 - 894438496785725677712582695734815527176249686047711451864802730569250539694792143354223427900635517377654*u_^154 + 8694034487904825938231269835862008154442475344131147108676391191120898341737300995009182472204827595895810*u_^153 - 70803579054951351913747695232739803077485876515427338238488147637410202563016462885584305667432678217817687*u_^152 + 429313573441353455698735061025876108468914081375787332427472360890023941329706473862345763323307826963275248*u_^151 - 971105380287358212715565021114034253326940832245218570308116455395564707307079940651662528494017494110202094*u_^150 - 19657627285568601596130610925272251556742171038512196961267117632618070004642454276948146251163090234164956496*u_^149 + 366257105681723988738968993049224800525702906156756110681701511664501406661799299317444151180415092525065718825*u_^148 - 3710380772411980200880155943972589652073274129094422126565651572830832041580355610208566467218022778635234978366*u_^147 + 23588333246354188960838000211761276451197439218539652867269447994039618904214012544314775104954236989169526405229*u_^146 - 41487361289394661888608721387612330412311613928736176009770577661420661206642338861728288713560792869934591093446*u_^145 - 1152690685761030711756397510457126428035291666884611931273559135550840997120936631951892146744903526985659751128658*u_^144 + 16995771901417448748424910873343300429349796937112858474166911740167083147299381015139073982971270735583947385757582*u_^143 - 120371973033693957392137160967580319293610721404302188200127675977098014237993961225328546545146762944489646799258381*u_^142 + 196411568864517592260256696886203583474210935982785569647183044711632893451169802047571616842668737220079963880713314*u_^141 + 6209120231115120851770243700012695101753101659988081646320510621943351987751198133813661356641156999420115400614192880*u_^140 - 81711136057528195753208025197064258446515879751165849310852553752684381145876817551951669859340433002263271013067243744*u_^139 + 442390957610782450872395277363185449072086530017860511048443457868209825687093107645712855918673678292343729902278149610*u_^138 + 1033465263970458480550968505412264781998084330609780329069304865914951722515038215419847051789860470172979868940330129506*u_^137 - 41039242848359721477568188376739684897506023990253685091176549978087368841344804517601573199255137363990432537715202417445*u_^136 + 339662669416716150443086678025819706597645698640100573311870848601215061413786840254287712231892965865534258156586282079866*u_^135 - 540197079558833856084861992447242127151604106912576145891380770554408322446085243614931416704526942891096196017379055957505*u_^134 - 17566727820575339025267642110298514832412955792281296535740613208764033015743303244651605107852095209440081033514125907564952*u_^133 + 198786709368660352179518834871894718343717525807411055312226205251065211038537385865220965748716826197015855312177785106182211*u_^132 - 652999299374042338162794512617902933251937383069218652928311533636230105917687657147168320062693003088195310026347271398854930*u_^131 - 7039403673779249089326505966894751004237226408274209635586746140923246673217188921796985711016831446877037851713170407430170858*u_^130 + 101941901034552077348666105750765238713598757728873134197191780664338551243098975725196765071112504963985497946244210125694194988*u_^129 - 412504678266899690629983225848446712734406014814923101518866911602407728439150987323007003683797542539156423508405301038479361123*u_^128 - 2922248551012775236348520631972599437147785357986000217817524454028525347390254555235161218046985711000049161046245504227515547618*u_^127 + 48193906041025087297714024912330017490985750732626333889723886741822278803667231464367169813893895791522883876345088332169814702159*u_^126 - 197395316804955426688205562298551436087963173874278497345622583143734861329751815385412282083992795245348066108189452157444060931842*u_^125 - 1347191659004520203690405943808397151235563289262662031355800437027980342729671922302469105620658447191465281718908483892584567083203*u_^124 + 21224674697436749712568330876958038075803365054314894192707955059271498364207702914145958164433640168413277545683681946787841281623378*u_^123 - 74343361373093887767127607847874936803647494162753950170025881980151623631860910847632117590317783406108133610103952388576328155199488*u_^122 - 668361449254638359963956380029558779760800228471683912219655279811157677471843110245130726271593419587615652065493267105034782351920878*u_^121 + 8552178763329082024742810643739212747511554588308890195642891445254465491948980004570155333040999727404541036777331422486325216689526028*u_^120 - 19982272202619062055203750983996466637199031942447634285576397972030907235750203664593846900989828111359908578988371143886126450457869678*u_^119 - 323374569504041548717156650633033820701669320342622162911246778959891009423045632512956640157467411674861914364026626781005813710481181724*u_^118 + 3028411512340662701376840492795812932219701352170204492488489259437947622226155316822590115325403301238880105652847211222482468349564203398*u_^117 - 1801432080778540205720573893383164608516046207503602748215796074706227211022537489059883660009778112921852693878422023817081162958656954181*u_^116 - 139896181053907982861010380016248066102738626348982956063216899826671799296088411753165076282485606841897364626735645226324703425737621523094*u_^115 + 882167382064749859767652352529202575357674628028273158840029035842485640842468833558762118626355382529085546572352028286304028284503529936983*u_^114 + 1803120374295964146543213261620071408979974886050257467945548960670872705178107751716389990059922001721565162003496502697402260884612632959788*u_^113 - 50943977783459385374782110138131732712616278085818697047012669192129593441034208711214600769625769384658946783909714697719424372524352559353797*u_^112 + 183759545864537034715963926367966356955497396097690820298616494442164005720058519707310773118635849334474646497144946228723795155901208197697130*u_^111 + 1351225039098584811858699639717116387498985058738443012325222407981095772066567086435242241875914673445771986509253738232604963875635936935959446*u_^110 - 14765534070527081969889169161816633799384716065888029770644337876261050573125605144213130907139262465225599398735873098171642363320253120224933494*u_^109 + 13000842212824863683514342132890463672114654409772490794295509475584101086612173364740168560854264230552779377739978237932369064453083804265087213*u_^108 + 561081671648425786448520185991511416981436499712389478378166651669206431459743053491502543300454481013905962806276530366115619271611242728990547790*u_^107 - 3098023324015764648449950813112287717397924425797101403235555048323962881700053725731328249238080356794134519303385058767328373268945533874396461620*u_^106 - 8874470163287105662523549538207438348774606281900280663156104939749001621512496938363737900950000997815901507209455361517773272521766553171328832622*u_^105 + 160820215089534023975129757440872579998952079028064510571386307242895903352933121480426176748752023691642571973644855555860944575279210185979044376557*u_^104 - 335447479309807146401614736037546277197750601910091408901338566420823385021997753564563393813282110965537696096836446597579343013674113005239430879978*u_^103 - 4704221922603929759350763811742241624256078507550935854796803958274533743103348240964934741331953635088989483581492049344260861379347696098629065893268*u_^102 + 31280958353006632526034220295584743856279531017591982970282933881896132222287666527156744144530407905766885959270923764500509605798322879010265417588808*u_^101 + 47939996926462229817130296947840970116246400970566869118005410669857017591670386118575166223753999789822777323053885971768052906573633806315437196788331*u_^100 - 1291001944728846157066916447491485395833151631162930797235814188817564776428428513815296044547479017640921829234200698439572869559712850263070528559434798*u_^99 + 3157025578372219347199318339859293729994528870756592999025922807648886581414516294184156348858982461567866652703125225107080326982431866536892655468525143*u_^98 + 32205809930170498040174812926833294544605982951768748064038329612943349723740981689053563535135778654349409748746537053100176022665972453003312500533165274*u_^97 - 219471639378198878166577894978667087904535091581708286493717200866686357799516749393271212742780987382388451924226392370559925691404481462479788212945814474*u_^96 - 275052239299964083598747593667532142451548380319248830269231866902865755461601636943590031294561295228636084753841793805711380573731626386336924594042165308*u_^95 + 7880720484828853905291570623123710574034698598324311927077345505910183365454711988809055461074414567321996581103593184157152264271126239442979773015004142442*u_^94 - 17980716107008817520307591409043493971820359877242182926492616754930088218096343018940045870689187258389200745876439318203296500003646639106154495789823591176*u_^93 - 178374000844811295664682639105723645317583435307339182564844594495627355077106038150878833148790906102485515378411288811722254572671161994563250928073620630418*u_^92 + 1107546428035000566744141373277300331450955697025815882953790231223975080038536371742936165356315280294882158189894111458784158964258941065007904718340352792930*u_^91 + 1596826869168467837763095153825191446090941045883653127809316163177436572503773759741499946448721191901600603916759209583815599026004516700349253281271114755761*u_^90 - 36082427177967567005831747197569934553106036080159655769301006193696296599838040852260708122968414699621843033784196438853670249926007198109635432579502294397862*u_^89 + 67860546266044514990956487453135200708609165970242615632681170671346586883385596909316711830444491582605103826213256122892283938369870445893466637022122228848551*u_^88 + 757016084148853950124958942547115577897982411655339636451054315528836845230085954378780177039551086499457957036682804988663837496567739312439863148195186808556834*u_^87 - 4048826444224587696943651886523469762908564096284426175780405849889959076419134185151855093426773937774447220125882102972934211438644987738523227553029445688514365*u_^86 - 7211201943375943798605110171747270168512272398067186496593281490668084817699123829063579897376343382675043894187835425675343066101112298152098963885518425143944612*u_^85 + 121752812368845343982694477982896136217252210914589715797111192300011692689403046947582553133811210756196042411753922215240879569534941331806920230839904758878998006*u_^84 - 179954180071774783816030175894880288309631456826660352280278847018783091779971072574747738748291881761685519551261806020012392057099878593406582900038935616725354596*u_^83 - 2360662885851783526950741204087483186182514902317697762010783116489977563350720043037806545601756548361471323982357286936336216409354446233391071504555428382803034961*u_^82 + 10907988137622267142745067288912770407302549640622179135117351434707190160773226165139073061619320748851742728569146512083308644774514710667357980062134159255636875718*u_^81 + 22269094681554909422131395840269766615030969199411118804674587667168231543369271680805891516318398584780360571364225655596947884892066794477226043987809901213246076789*u_^80 - 302720835189637548095523873329534565172863402416678371144472874760048073183157129034295440427082502330523639325054021025452050291918956099223747721062162294016936814440*u_^79 + 367301054324804339422405614271511748521503128080434287970301499178446150717319001180078519158421744451969578473129780352241183162590296189371936204831203577055998592002*u_^78 + 5328654662754794986760046444525702257403093892323455578207859833829030348616986281123697807457516755335234273755142602872266934587486731820763260328359970841792456070590*u_^77 - 22190259329860013601473853678499648221234336959920625335519721116875590216342609152065882038208031808484884044006068726754806433231374488149406294518065159623812917298901*u_^76 - 45696174603794751292638121686225973603980629930332323228316582170837941265004850174569982389624301878162830128393628992542363517515534678706544470027074387306588296026282*u_^75 + 556255838071036804841338840104897527986985019064439113462958938404542607109826655137522557066630042118424757850311103219221300076102301610769807022160216717720612150837263*u_^74 - 633259403351773849238734813108784169220673439202550417371642289258671221190851537820760881006211802291244622204970323040581016821286048893613944531033068087365186212275554*u_^73 - 8598728288103334265964696413249849231536844871444032007914790861391774661668658282508842957602306856771308129374756990770850084582377999638136542429534521357012679174859170*u_^72 + 34326387345417131601480871096877893215033550297735757097218611181007388532129695220685265330132163172056901727840319404893692623525118501902109582190535085258674178895369016*u_^71 + 60216256315765478190154557013527363249898292188743785979682966533716273256893142602756397982212079650598733131089058572768966967737716520387959875968149408116461137812183984*u_^70 - 745752610072430106222736722407274323079743673003850704146161610745608672422322803426250960978949579058364588670013619599197455163563495052684070897234182344984230452041072650*u_^69 + 947709841726803091205480670647965008710339520093032799906232310711943482017334850833205555592369572277193311911667678652052969994250313150388721670231313544901185461651117917*u_^68 + 9623664006924135088698645557704447393401663220791218810871541421095991135760829908651727278417928905061010694028599336903098257238009576104088615199012358064214533608135801810*u_^67 - 39841431137235328568709321593388422184080785033926322243821836317854999783369168625908781802022434125061434058137166637866035861435409034273413193467312296759954664341211583412*u_^66 - 45120049521880451887130271772740211493908388959066220968030487862591219287956934553626738064279546269844216469565692978521083957801851691838024261570414484905146686878356630624*u_^65 + 709951214356683911093804354633447718064609392567342647330858286343317486040355740258437090096351936247495732501151549429267011786269339291541974749699060531471840724201518923997*u_^64 - 1154028709801339501771489500871787514088551383533967785916149235110638365492809259978932628863958204139545427230060744128158769723487924529504689413520206357172869402448553088204*u_^63 - 7087679973703519174417469791975412850862983092853143265644438415356090477247950821832493283104609433143679418566604211975813542152808972798243733474566798530435068176993170250180*u_^62 + 33702976939134335645146885317665834696722356113372001271331452074162237358718659082109395747802460477946705458821144239644709907149841706949045131511931199289250137456912175476942*u_^61 + 9830266496029411062336057851338109909842934506880838122769335270630566987543983123683785412712981078513991223951739515985444715051401658873198492313109511737264959447030596162434*u_^60 - 460939274357640642775084421326543796138320972087751707554103138907462257084084666646948291055709702185419348682653624643001382283738256487788849617142689887610565928296527619363752*u_^59 + 1021497515818449906126825131712533459524191397249173564594666881998070749274113506497576878992236512759941966327760539810346513148174577539324200044055445608039026836613378128892927*u_^58 + 3108382746332304958824793685432036365299886113278877013254083881584566825499732502437093300681597939005386881172782458980038490009423769563590001631778521340981206199216620627540276*u_^57 - 19747577247301397373784670206883311387726497639667965696047605614033425086480041810273353871148941705589976443752345333393781718900765735480623361584033688061795565311950021097347749*u_^56 + 12360941315854922871186937702765902010518573247892797451290098181818410912111455159017135575343758198176143448329962390659390673920050495841942043566795326832047631973447550686729774*u_^55 + 190573719556255477441602322662898364044797850370474075519790590234090404076993814473074395389611203249616317772118504362430789971155319116542042972213485003149948520220435283260018647*u_^54 - 591127354827298095826924335887698613094497123715160394718397306836809144549777910213180799608179689093954023745376781397674379200507409029194372906402301751346715546856767362216403196*u_^53 - 590761710472123393652306237245266779658838499307224374797239572168310949283188275124645069678419824269340825692462327144644417291307691197333663393571146666484014848836255850243978529*u_^52 + 7384453483125878336699213755362436998461317186098692655919392801565682864487965014586576524996946763886763722335609770088624033951155571721536872350599798729042345671107310659197475488*u_^51 - 11442311549931115869509323431261148415875931486439814690563048795532064621996632880891759689953056101496261378503435510875580531943923410266880713962690126224357620117552455952479798940*u_^50 - 43411307674671218727602961535073351638729384240971159911584636729479083440748734228609286289644494317489488945830397033074102370408926732763975900037021271466107306305978403187969083562*u_^49 + 203601290731592576766259179628594685230946067259819337380468679947603226058884914320106048528485238748210614910295399556621239781284853169635392786909837655599333916508652881717613218272*u_^48 - 79318418542288011504842066621541082519223650092711512289162946067428117691168659982411045050995246681460454486272758271659576130215624947665355693306407260953654423082881951703421817634*u_^47 - 1544073475947553691366510027504222896280312679553708518418332089345855355348676929285210485639692831973389322892483618116333585878776266327496086900820179916558120063318530355467924501252*u_^46 + 4072056345844662209258059052893344761779748653450961206064401474135258462121327749780079007440045828903318365694140436829252513050257862765612686208851533878551103839648660276426794157120*u_^45 + 3111836697992347400487032597601613423461270266125708009505764671519361508575444020842589264834702760922460588495446530649952805214130307379077464549684893894280321499079180030711103051207*u_^44 - 37345303711290057009982977956892856546670447316734088365775821028213961442708281455467520905922077069949047193010675527770892368091121434209371978359422031025788208031771596528181060777998*u_^43 + 58311260950556935141954324426349083276859442109577940469576123689324969740375462785074257799300918278216654384980881964452336603026496994863859328988100460980836800079550666849239793498974*u_^42 + 132906843334758715621417132933355738320258358961521904414487517427108929552182042230736712958005947030423641832100059242380168495839254421661814433711011006714234942235268125600104519236050*u_^41 - 668053380983941200070446169395845998918471713484424368207240093725008596055456147433326381207445661812264739742626304074946364549893003952381418495880097102140606247612897702761467724689170*u_^40 + 566556551887553794644023076179251212600212068520636782865389269087839507788205845168906736984967212348434244346458775742400314739605599915232409902216118265902445380421871233244903105891768*u_^39 + 2848597869738795952672620091528088382273572082444861779635441227039083719146303862100656445510436788309439205269724288394316332172847192755429724223045738534043593700895484343815649908130804*u_^38 - 9144240757560392688571091029217572652225805013656885581388181741830944941625677182378810789149706940135721209422267176812947677991518097308069959493740154106376304262873723864138059286868236*u_^37 + 3249789158791523755885922363306385319227703805977639351791451639483157470331350923593442927944081136111688514158693201907988882987016216402847126396404349993119266292547389601875523507443282*u_^36 + 40350819707983429015514293285638973377166820503489485265880791134572016456565237400998750632344387460372734619449392997677804071443437484790724124301264669316853882541518395167509251207366756*u_^35 - 97649139709018622116129882821375567251135934654869263653253597732182510458491197889452177657035391669204564019788826648246131860885290516562968748557477135601818778022289156502673074850707160*u_^34 + 17413043226964007449799732381181461804897460105482019835387867591066493790027247059768141121146681785025237290372139606680820549011072654171747248550752041103781025571243404492396100070887868*u_^33 + 373421547087706519380844484303244912504650193279837674161023809978412787546955318806464426171314448722988755902332727895032121173801973984851638846084790525573878105254982661831627601054219892*u_^32 - 873439764588608392152455863185391780301216254255625908278489353497342319115860795109513473284250814130728926555257039648280832168093013123769759648438053088490471886546817683842048983645725112*u_^31 + 626810974872459488541978348682997925078491344479736305894557118477976639383144513051642865062454637016162980827526329735519365605552945106006683174803031623731342256204348626410940417703992244*u_^30 + 1726694278798640171095591201998606716057267302032678406421875958558445410904169086232003682840729983433580496185763950997056570296268696570201209690067998231803118054446747253162771536007741080*u_^29 - 8022288211092455088607051220610461385935200507240196609595356347847829719045849046500709255657093502635245949341421799341618686498968881319960133453183958568747533828424364454759616542777111360*u_^28 + 17291989009815579562743165024360116095664438988984221107866078954835256516519517990712823333155897639687396643000984199986187648027698533196501620740664689084652746717345709970897211349991321224*u_^27 - 7051927992782080485746118738893890136768372604760616931702925725017149952109922512870413305635155081043344197808901315018957898617907813883487802083915963929789110457797609294984935971327164192*u_^26 - 87082174403859957147284489848807336693216428770336523784172895415874218937556881149735380741477266355261671884254491848818841803016165600377272858211052857772300209180286660518736901677623037216*u_^25 + 277732786640738509642038997357283126320019392645534423853824154611987200137652102301249899664927749243266351794065236930471967478452017783724610765102620463589298035480982445923406231889640240136*u_^24 - 207578279811564267601473662295016262500317655213705443068152631952705067604655433378449792420281448284132727117451175168420463476823915379954950683188531478838018143423119223168052684603461359664*u_^23 - 937229338606556029889047230266087561845588774696559533246652706048664181191929553610110452272320200706395859972711256463341009263802228078742554508578830718674282461688295359790769431344511614392*u_^22 + 3007242995778115753980673035034991270897422736306587041499749926499062889814041810843738951335248379712796231147597222174007709916390020235445213727373266674260771966014843837360753988886692628304*u_^21 - 2080355054952442099236830076457620826411175303320542402345304562490254662928780668243729113778204609467094855681460157634629972628489784616417141474071472892724454009950808863398699647915408109088*u_^20 - 8189779701749549803865228298960132680833084001946279877180817907493506023987769157610250119205440167561432900790265793768342719435178283086786864987426692853733090662595062008898924317901407456720*u_^19 + 23521865008680562922167917201172573235692301903452036819666051363292433362455111665404795998159534445452907401371662795602255463462604972112417039049063807425225919961778579461964866098440648814816*u_^18 - 14051323409454757238864917577670591513412385835893268313258084246814680778317576529719538773415163250855815123054245606584203435603637131852793541788373612282797247078861758455697688674179220472736*u_^17 - 53346332532707451055249062604648921969136849487517567536646458639347207769793697492802678683896820901122911678919961003860070582224824242472163479142816722225310298337387972074644290552439330828704*u_^16 + 135921219917392823424758819903408936547253025478095833386838909938088346503776256957120870563245972253886151511693478958654411608331624335301707830635368326520518242896362767787160013892924254107936*u_^15 - 73341437450612105502409194828013826798478609838280529253937274549889223663300387179259524440306571958334280945008926977676137656533161100368789885032439324972571426481473433890265230349257900183744*u_^14 - 246995443084323944238074457974157705382628474256963563706758509865186143081749567911222545642959812988794399163291674047226871937194416708225732646535663301897103746679795030695629469397431087393088*u_^13 + 573163665994715295485386737936138882947309340215717044636907259845783991942749191112243538747986035498506521669785428192391138443409548611413416267660235613845877225213187392429542871868609971409088*u_^12 - 307289368880702235342205216085671770390146081428062843019384293907129220659080069417083073274462949856335458006678588880884261433843619086048438682684799572885055766675578935514839892547497941979648*u_^11 - 757756427933337568714722578462378582686967413290432558972249633635209806193706435665783982640634677189865099112753561139071984378430546716070418523150118225245254490586113808585201482571295252594688*u_^10 + 1672364111380748615845627236436296112140135557933148205072818733252322092195642490233072734271895188971936719159478227078324836173756127820378829801690314273650883953587383089216742581769834069936768*u_^9 - 973633153987590482763250766342859564522495899614189629315955543932052745172385662147394055410682181406618102371016843850100756214686044283000084209923817829340389797793927380990876335239734129846528*u_^8 - 1317253286297620441687322698629188129111293564947402415872705683339151300304228619370076518733253898172904816256685169692411772859654531966980391967155164598505757911877286507805958609041911956846336*u_^7 + 2974535773808508941388512957234782058973868088889654291990175315298125579448572217344044421100810597396458015807514823822025475471391614384664638563687286959913569385192726795352274964057867753481856*u_^6 - 1986346852476003390277124848747132588666132885271745840980426611343652488841472609464681853948055794415693048058919525315664891111344120695971117162387537842772721679131737783490395345984566612365568*u_^5 - 700709927129856813859251694350659382323899206980932413118358381629682568375263840748693837723938722171869705533010679450267151602383283141118230435432088803572038371304986352770147576940796796631808*u_^4 + 2333371025289032862006574397454220408998876556782624571782935105860785442147679101280653840890266469782390746568405238850670166723811938512230946277500303191879201621678401637345470009236756207546880*u_^3 - 1896130402026357252895390785553144818436222756661594566418887753903224312419524263580054235253274337322627012427381245994585596936317423016003192104240291483830933044005017654356861942231894296095744*u_^2 + 740173724778485774694782180815700882000870841537305793057294624528632674530993686490556836959373936249420594595623972375210891064218081161948028350293415013928516191758995698196551605912994356536320*u_ - 117926036431896663111449535330477319976143383438699985098113214355724889159249997310384777018362318073593404204093262477192590896305135806699377179514334280222352822798801801779637071098791081160704, 158329674399744*u_^209 + 213920982300098560*u_^208 + 122602595466069671936*u_^207 + 37462141530436968382464*u_^206 + 5943691603976030666096640*u_^205 + 227805636620676106280763392*u_^204 - 81095368663028934852401430528*u_^203 - 12448676505198812813177254838272*u_^202 - 26841338678912751475469315997696*u_^201 + 129332829840522724307066945603108864*u_^200 + 6659872088513332524631574011902427136*u_^199 - 716643344634411856863532549728859324416*u_^198 - 61538848597774279396753942156751157592064*u_^197 + 2706781528381954201876660298627661720190976*u_^196 + 314331295923594505512399592815468801703936000*u_^195 - 8737463485871611095271854873960160817432363008*u_^194 - 1061268164566410505354808953437459437243880255488*u_^193 + 28340764770841461253468355843728119061000168570880*u_^192 + 2404530072329745755992735362433744776587737171687168*u_^191 - 83710135067543250076492681270560617656918045078390016*u_^190 - 3228761384083826400792115507747323461320968768100171856*u_^189 + 182632913522202347361664408851309112420182107752990379488*u_^188 + 878211461279313205161740098010977487109842863413301506393*u_^187 - 241260479238750628738522090155895767403905318683407908065041*u_^186 + 5214722804502363178667284859981527797405924169832674361812596*u_^185 + 104949445009313562665462224166379446257187642088457930864716918*u_^184 - 8610064548879863875817512297696297715181584387101171226260020989*u_^183 + 177391986199805580241980814421514646028215649266101960898216693529*u_^182 + 2296429390272437098209607857144718453953258377394731417383468820340*u_^181 - 242404935577734717809772901806167055478236142458326485861036247865074*u_^180 + 6515005234892650200501848166997228715441323840454914053203064423249870*u_^179 - 28878889467390190640534148256307215948465290064578028342124907153438974*u_^178 - 4263460359357122396837557978805379079800792691857516352272203964759261987*u_^177 + 180402834808917336579020437442605131323324747280521261079098146837826029125*u_^176 - 3504452718851545635103478071530957387642648112225897086631495949155937041913*u_^175 + 147831485970668456550774910460643599250428697243956686949861236486499064405*u_^174 + 2463884691994110846479014202553284561924991471142964813493297762878080219707686*u_^173 - 94063596988011007803231056800222442952891043633140460059065314362596702785879846*u_^172 + 1986695170077059768089049734461295668335280543954321142928384895525907372483548169*u_^171 - 16822108639453000285561286173997504390330158792048257284573156529704492460928094885*u_^170 - 564980640204994068366267255397545450940255012723647060574576382084646771431285633824*u_^169 + 31719892740909972825071947936057309426909724432308843827540744605449587155753490413844*u_^168 - 904743889727027883625592007169614265442087444643181394330146746100538507630057190372410*u_^167 + 17598791004334857246165862703441930506911461447206445762009747447694567155840364046839790*u_^166 - 202508042500890488917069241861925815071562195283341843940921122464220051888150870349879872*u_^165 - 1129978846638210338806747904279332402694047414368370642156475319809306214589205231296174964*u_^164 + 142764083092563074573030848109799106030724996275863753866433388263079646173940154447312261549*u_^163 - 4966190690801381012542764395885400559210658681280371033605578240501208182631186193369815196645*u_^162 + 126227468839807976545693566313489112796632829480468347435386811503241126164502666055370812521822*u_^161 - 2680345843865261088667289598562033897287895077188760212801214888917815083389440717086025191535708*u_^160 + 49846484157159772412397960935442166303076963781661489696923191342257742038371905941053999175912908*u_^159 - 829753783078489723940130470189089047068622577787096632456401305539586132107004027556216053816335308*u_^158 + 12499068918660244900323476192712843305965471285980115580979494545161352523785885541111231162639184853*u_^157 - 171205992696856758015740877534202214996552106592402883578351766302289221820690714867851591641088163235*u_^156 + 2133206244067726723647704207017254280211007763551624200314402035480501595647391998940056281807537367744*u_^155 - 24079769125996721555077610026794031441072452546723736442414986704864893186809916707267324116447521764122*u_^154 + 243789936113138108491762897931309572909905641563706984286720011595449001681121252496699572384901611943383*u_^153 - 2168583570768618664244729210010071314731625006187091608570516968479191754020538162527827920473545176598881*u_^152 + 16202918579976510001925455587767019255425834026614625046763878771455827224042827406398801675313915025712980*u_^151 - 89592092715350709206403611741577774302283853892016861825801077711480225677238384170686939343406628118106424*u_^150 + 157285102639553520265051460422691104972390534679928484908203189684274909668255159024461902825362375356404133*u_^149 + 4258120730772823295436049224886198699339799992047599836548125433833586488547220506703290488032050961440879823*u_^148 - 73497285582612545706050744412994172174888411219733163107528006668674924473398518186612561131194670936842916877*u_^147 + 745327433389722413503890638426085218102219557155438213864402938819732155036870594460097060691773286642780334599*u_^146 - 5301541280635373808551024836022979236994947493045127744545315766572320785935426075761808025210367652003558415386*u_^145 + 22459663629439574684006726803278090537493780978135933284262802391683531504700216513399543487132563898494415100000*u_^144 + 34768429510340818324933668789361069103494520145730549787292349340596342404925168108704696438494270506139976106775*u_^143 - 1652606254420667879884754045045434916125909595662374356885062334658465787677931843523118060442221826643368950275093*u_^142 + 16192760735268209550224086419506962440402447614500410561774649168231680656742457980496261965076098225066622367227278*u_^141 - 80975404951276593671360335243713818785845241719707647694963216235260889026959832638080378670202616129094572920968400*u_^140 - 37082316712790003087208226107953193712385249993430763475639074719453704799029446389824218379563619603342190836552150*u_^139 + 4359159479743816413235661421387127549987182067487697347394617833681845052761944123705127198005276646352940358589682802*u_^138 - 34089945812597195685172480280785006428597748865575137144102020186967060678004501736715998866084897249825968131155304381*u_^137 + 27181346908101556803310957608430520236592069628488422961217803801380914487195307481800629450333053605210774146684174529*u_^136 + 1912268371119154374487474660254454350492176043943260527442977637294205226853696316249884006772432865096332841251569630569*u_^135 - 18506339836054386842628911175735054283774407518135903802690244558185405036326981274093440504616585113908826532565944797853*u_^134 + 37947331187749818419927016527497737449237216272827170642645000320412065342507236773754622687266002765490437783367145892545*u_^133 + 879580739657591856312774115094923605895661019283452847718235265867942448184388284937423431438417742417467914465465692155705*u_^132 - 10282619643809405680681250777099251807058691905944793338816224631745831794749650751084344875105220568360260678486627139740924*u_^131 + 35169013524946889780372214994651220938963376952702270870674187993852299221466252670191823174753470957536823487415904700820480*u_^130 + 318098076950298486843654361767628432462619327840732461036907712628528590314200019675891946489588776190777407174518560643850013*u_^129 - 4676523450896376407635230267693267355598925492908056522466159437544211022631089260435584632007880369194003376138964825378070445*u_^128 + 19892053473960324267700256769196846824376394212267014959763120704651603635079384257175040559801192610870483542418073165275664505*u_^127 + 96364958165566657085254303585767493632436901949688895551570013090970787044921034170239655237190616591306074012013684488193530315*u_^126 - 1775611012944244029493031686237662992623148291257493363590015950723152518713183952216032035783597294760809600338837086501503348981*u_^125 + 8582408155599175496532045001348522164165950735361789470818136569097655413032412870665711360678270779904724080149359811390841698913*u_^124 + 20782878992293901975616008581304788108774928725393248352395385035550856255824634996006345308252806476267725877684853006005240705426*u_^123 - 540758015292529341521065424284172292283513290736785848843560699794595058377420645362915951241299782229255154819210150282654251676438*u_^122 + 3074167474759018082932315550940560134286850783962134536133803425597269381917028107750132140351526490475980252349259619309064640009494*u_^121 - 591498898792123849290440291102620694815416326857798270637308329632496899141287792904104651507246143320065149420842152177032698103638*u_^120 - 121172169679041716922162512757023759503654929510937031337841396050508753490445484688627629582169808296722757102501592829005472310900082*u_^119 + 1051866523199323178846105278136743264136428586586905291485026001417213177478834336680578691553059483895719643001692175534358714888421830*u_^118 - 3981218038897979303956581604022440594019304938767036762282849436922488772698075002936883174798395673584566424748286116900764449480870653*u_^117 - 19185493802028927159269476129366200431684529016493761832582575580117173479574152747419232775081993414920461267883782199137197939817736251*u_^116 + 437744674764825663937793106882545403657035289521916829100886517589772811167107459532393838250287778391674683112864719066534395558920022437*u_^115 - 2787869564971898192473854389778462751313948081184478061305863895426217994747775165996871766818889075303174082083737112333591741933023632089*u_^114 - 4836283678420168934119982976647851111383114530607719097380663091438084463340607971676746481274975736759101957589970755269323401319246504163*u_^113 + 212486886469671011670456387133501922662650097451979142868873070276200801459474616311875681819326232908105593875634530819355445188883064726929*u_^112 - 1230686400000135093650805199708238399690756668173543613133926549155137625962263112012249752707840835592761896698701211807332610830757182537468*u_^111 - 3984260727963587958153259635441444392068229790074007653775190720499379281648878548055013766681673082743934504584468707466047081147420132444710*u_^110 + 92955809260213019308954271176561613416235608868034083869097556281548712691614295787798092798291005332900197408655267920169260991645567837833487*u_^109 - 350764819178268429359698450021564925260667907570541516569291020591179349276983869366596846519262462184332928650647543319700773441335399449031147*u_^108 - 2648850411039139371950806283649755314807159708412612798376574889388787979162401331795770472259466396397172734071936145431187674076988674766036438*u_^107 + 31452367186572297837709860427198872465041624335865500185754114026612336907440417054296670876322093553842728704234273512041521172658842658978871468*u_^106 - 45206683824993945452632691315503903041024324245617890267354227094621172074197932611302142329583548065854549179163795515599682548638522404435950341*u_^105 - 1146354624550862488734636423388378051045279940585395740699129691415574179234219459115939958639482058936716303170804163829561757895030624301073553711*u_^104 + 7485549237070234435294689121726810291270121459722851515772969439644170384287236912242202198419586116539367853322782580260251307134608966207440300808*u_^103 + 10539896664423803293952582742812706833806357844661313342308258624309302531364816103672357477246414290677010214969056478961976003468093257950380183878*u_^102 - 330428922410168546760310477509636419759762787281567939150334875573034182934104912466569323511436113562522156138321832148505026966852983642145889178911*u_^101 + 1033881848201965900481193409266930540221919276443447798464883166123396630093196422557674071732181058679731970877359829130067032196503854645856603910149*u_^100 + 7032879422857329148716982210056357347526982033704448385253972863024706280627508640530581906361013032375760224752312804894068428996555950196355571713787*u_^99 - 60063655471129188656917695450618267551657698637558555245899359137856763146849588192994432963861831797071731678023932717374828727167324905089823011156697*u_^98 + 3903872470156289758301430219998235769978764953661360050358777279584473712898492084213719541242448967953942960430129887169612863924611478363305136756230*u_^97 + 1663900108322759890079081396267002699779379988778377583024084041440182707079920009434357246744088347550818009220735186046780666037206172434974756963209640*u_^96 - 5013054676991882397981833136383876242887795740811740899998294463510383971705465118771475559034699520611749637462682785125010702289352988103762003959496974*u_^95 - 25985183552599952975759171902518452666617065812136452887245933032835437769963961526188921666852906279958969853678255746250237985764830134022190533845295524*u_^94 + 151390378792849475223659767179523474921994678178887065305156388970865049728885397369824103783025025320911124818346277883268072327354323266146224855106558112*u_^93 + 330307682957276899823926019957223201216767807844342816476131230623146890950940481253932893163332980155279025249643912538588712475725786590410064103395208544*u_^92 - 2254483894845494911775984671666643997077331131411817024545886574179196643201253042015539245994463020283406767467281720464193525879346688428650406540608727597*u_^91 - 17214812266478246386401798134008094056605439071572173652930873172981684389916851674471297540295769822035528432405511452772332852186565288221439215258162778389*u_^90 + 61124217801948209959206635845212718936931208252346166571585285120037369334443671230187893012739020379849967957651026762149833280737946702562291121592706751211*u_^89 + 968088318941442944303129102854705921500384429466981681086036580310158013930995152582775181112241160897773319497676203522563476286692508820911143315285835094729*u_^88 - 5097017092623943571377709902614355348734816090514411594095289096379723283787060882310390387506221950964004632966513495382099667493415083575579371372581600747691*u_^87 - 28972107277171056686585441074050601992356584135129874803402127171263492253951846581132310122488593558718291673465941157061345008462037113595640484346069354028997*u_^86 + 287502083523060877965848123591957337480908031329430402348575059197549250698497811814949978363265519054354917829490664162896079934937699257671764805857878408587238*u_^85 + 205252791959734406536835617357018625950715329646350233544548002382974911914174940445643226524554538855949012080094560538676704130756072961749258490969084509236526*u_^84 - 10415563558089215492059135497203424923133752497893720539818639870609062137743364177142420875472985603117516844075114436296512757621817758190854173822478439959044081*u_^83 + 24044054041436412282415896543200411214081954796926797898107479827272544300282355331197611472092618186355061212861820359380194989634197167639313035864424188962324269*u_^82 + 246819135611433739197393697598217994958243310835016341783996737474720706732322650877470965388314548533298671954577760569630482657564422896083194006488296761980460379*u_^81 - 1403009242879015138027281174593863777951693469540260171009859650075189847154930372236916619144451835563678335974199690270220005337370935659916845728848381005203049099*u_^80 - 2848398492650059570144514971096096820132411820875675592624706770301784760830186624850188753966278187404306899628022910654648838527813940047816451582140345947609487486*u_^79 + 45047297495402275757911543800224372462016151621960782874556017054135690900220240996715162469825438292915167859714684385350666060345812147365103748372143029103557830340*u_^78 - 52272050564240290236609184630884495563539575873245494704581080269917174927761727110926179484282217924934875166745839510982214598939066650881817791710344306005879278291*u_^77 - 952906231840648175288095815969804856473683143101921949751359362344198878306157284074098328734418657241105289240380285880022830004906234748295437516226595474695011179453*u_^76 + 3801605937459639402120131564446345383602556832772576242844951792609478062033991288033555324961789093185049788484074289741946301710702124026701963071644984491339951744435*u_^75 + 11219477931651548594967056209849273346283134794090856954692583164448198436771561850881324582234302995453128343891490417223502471565893489994545288763098288599838765819857*u_^74 - 112091910524032572674823962498707665655780727865136661006390522451587930255492586740674533455597724914267025837546635987502517889368120604188709472750041478145461166218076*u_^73 + 62315414793920256282692043232686859735267519139378529226392796235197937447824448142982866212731023169847712959982591153074192381304478676952615359143360688424590597386222*u_^72 + 2086374453925690444472843096037514732521141644847180416882736172462412616086239742166144248214239628159833362205990764406555081170691598010478572149919250248476108869413354*u_^71 - 6642598813077583645024959406291876188152457980523202343979914200375399567136126878792012247203921047836895980481702562230461662956055182025296025644370755559778019660094930*u_^70 - 21735400820649092259241572007921280978721078915855957492294134316700980610561552982222706045493513252934156445002884221315830089323683404889308488905273063438258245977051159*u_^69 + 175695792237467565595665458699417644720335381298341914799209139825393452027468229818435375628942856961570332934784458476589944613232220576931537382414516112214736710666776121*u_^68 - 72456120413444527141942722314106939042921153057826371246111535782009363934713840931745272753860745858461867806199618471023383587361833588677665989841609278289438822371288474*u_^67 - 2769463001820814330793684598162888425766916049914458583048702605737229982176929232996465661548192056150916119164711349423129105368352046995153027283381274685512440078966598492*u_^66 + 8225432537114107177015295638058551627590795035265415625836769954479052795358915137621814021077587734984345886316934844816544482626299678756227078929054660679875678802135225177*u_^65 + 22720482636048382820886565066188057854829380883034512716080755432376859960347907164899163052523364245771513246919566505515551247163372048425393341530053818173822089499435490463*u_^64 - 182760162528109422404435116408288102835889054778420076851470861423824293850186234943220857704391065868018294879413370569724341894126846966317164281380737277031246623735213242558*u_^63 + 125123711638022307579582948201824878219294539085234523229625134804157621912616611575859299401713899780473107458106602554152831547904519813455312148602143922524069076195791273396*u_^62 + 2301338077547653102199842930911265205177946284071333695288712332475648757994107289600769982590019391057622711706519665413107839577317027786594617597585901585856758903825132106060*u_^61 - 7496439002649838523229488777601718090188608999886087624746447994946571412202965522915924639092259937859907507266975520745332832186967997470988238712236294594490850818360409289418*u_^60 - 12311011983511244914541217213758323737512008199427816009641711054632547930564579569487329468386353309822261830613824114006400058462086695766723547505695237060103622157310113236595*u_^59 + 128487423966022018122408521989293192101850874068151801827724700061523648322587373889652706741026974463963465729328718047762300294340305259163655771456577383580563116395634925410411*u_^58 - 160584395999882180325205507185419804729457242732273463150597994613347725869268227563542770388679838111308732026329570602547234492318911281960895648433443387218930915382565833733453*u_^57 - 1186489357811118436054029782295755880643529280641602785603124562314466416839555625912230249459333100637133804105805232646593036295972108775536248870935947453870933480689628714511141*u_^56 + 4790244043423769822000888833263009178335544578283867787873567524469850581177856966109436292562980696212978820074636068452145617187382516119033489786090688157089068373462516759031081*u_^55 + 2163863335853835943154451049260173473388857944520374742932185834658621992676600217323603260997685203404461001054141238879817310049604523455511449842614009217648518884971868294705279*u_^54 - 58471785582582004437697436419390067014175842554711985300329252312615754136905153690414328788730315664712568466104387803772529321268981551505247445804920338742506066610720351002592783*u_^53 + 114220673230773908490658831189349369399966636131433562092695198822443120288189254664237711437566144042036220353157744996562929009897141351143249446264327505188597727395719674357878813*u_^52 + 338936308374122076142353544516798314196516187984769786229113761261528121160977039852392585947790362770929657831008369739070825122101683681254053731660871517585019468537028501025904316*u_^51 - 1914536040820878841931034683378940237130040244392628443666064301006290471321666588005321057149587254214839374034630373864437152061371418485861596594347659237416309394905018843281586436*u_^50 + 1133138833487712953610193679782037673229462383134997313994737026893404589012597689367536622996641497194979224597890393236270900834126574298604039264665686966930266237969526687903268960*u_^49 + 14917990418796254279566944451109935474422475101368214198403937893551823683274371432066253402344193465788345639935016558861163911855542141169618435102130831104619593123206614562099723432*u_^48 - 43484381073011124470189994968820870918516932199279916749595938750922936508578099433179151075978181083523796114499200095050130028607774679630256513981403664741743730757938989221331011852*u_^47 - 26955310355140918781860771351863811429085952489312521318494394216052736887844429738666872410822919929420960613174610709413471352756492537563606619679513365442978737461188017900601454724*u_^46 + 408226629054120062002972710493320256632743455177566058579290036022139443809689012109043046400086098207841875397742254391230402000468161736383654439059762369465120963028976802537801629375*u_^45 - 717643439483296280573515082282846389831259410840389238431574126199625355138788973928166181481395764456042589458179234960311438571850224918549314966623753256078412364784742506905103670303*u_^44 - 1355698742209071330455841449821012539991221962676425280957682022918497858370851778765266535773932687336534865982898468106546201018363559156185481195325786719040046820591260135373922436002*u_^43 + 8202878996184848791657190644727627106015381695905709331481938043813171939524180495984140651638816045891468262205787551247835328465303054572702319848138310775022464610727616632012729105682*u_^42 - 10087566770340458734194935741380592246365456056274992349981250462865857822886900481205451425859671048053934526291533533210958991786081751894775325558802784320124322474604978425920664564228*u_^41 - 29920308636365714018144097084531317798736766608441072927110000440465886809916102152159363435832436264150050277602396649391824388019794481085476405279012932619989626777542212880831127142428*u_^40 + 138483755882697273169034343043466878902394915016113273608552345243829667725650254723613386986108477866168521395243057849813093094408814434959708123840174289199448880707006062056670446734564*u_^39 - 160241426874970595418570758356732445740703217444027659827801622445763003332031238771317618354318619512834419582092947960966576937795219138645571325394966333255418075980755959447813922608728*u_^38 - 448929158452830512100254743592648032749043509316951793602342956246110053054324567938629246462374763082318738730979828140997094377589095744527541871998936596746594768996422080939759197447818*u_^37 + 2193841084623941808210895626904336841479384939625011812920474102300389892835257768997370010897200339478987430593145621876966344679218443544989429138387951482042374609137984476640714342588894*u_^36 - 3196611641979181729270509388164083101237880245203299240458914425070504917313303375330846937966512594837347500696718434898164095882511966331926829046694159978602218631548752051258421411548820*u_^35 - 5020713992991328266502435971858688128631208046927745074222208739504391623479955119233343632473533684259415122911040798390644490807298809293848299443712822922710705471028065286227969189052992*u_^34 + 35001517919585344976450447318401414324463909600415273202687742823797208804186382899724214493193450712230468052660519583797877598302232062527464511023656482701238903198567045959565257102984220*u_^33 - 65783615234884890310415975470615523473871234243742062010523892649833449926367102776524404470473695280648767382443703484821481808300190108367857088618560550017964357305349603707904690109460868*u_^32 - 49149485827198068035466450524899702313737063807845432293452418794480296008174613238951319832278244386972965655425276365093725366308319266725862873132221404804277386441660891128979171979163644*u_^31 + 561318975865705183231445611439933580487178875325007946417543959330836331847221473166730241339277676666577811694872091876495688547723965125733999766880837938570480480479795202494247209973857396*u_^30 - 1132586002161201587634594882458555227404812569883531926812232591941425944665794786052703581699888002425905777990620333444085192637358142706526717786500031864927886128323287964549429662329469912*u_^29 - 649264455224798198084143070314475888021815744830129994387121393827696571061435628581168542093651113306998557161055478753196075207858666993171575706434117536008976941780988188117221318825597608*u_^28 + 8181648445648176503179642576465613803906112265409613028348188144581303805129645200611841896325671348076478767807324563606889649833679249506995847747898019681211909221695345202607225055200212616*u_^27 - 14947238072915969913463544086345938989882043777704678213285827677811648403522376767811761242899315399580137806424696995027945570803438542229694468012138664245163129667604267679349040641623973496*u_^26 - 10770078380758789163768689807637019114216159963738203420511404567336984896062266576110971601096836316134034753815744353750242950546071004123175879713049334539628971863174550950183577924110347704*u_^25 + 98159222352900061435919560387453677309061690934849771471291040383647966324188437644316040531170344884286844007107822036595582651026617830867933781016784842119386272883255277242831598030843572200*u_^24 - 149771783228284740352906177743803482475180693533713614757876115983088083755940034160629354602729916678988803257895074956294699700902724941029764203822510082659079724750115637921542032399868603464*u_^23 - 146297912575549529398088717882030985164230714996654674120193208563010543071411878301781225745445293805427686780046006645745133595996720770219149051324729882796091802129193330925321363503200667112*u_^22 + 925924246715223902817155320730425151711898789361681686589477353446362936937616725687793432003587062863256897455068271521658038292150148818952080210417222638705157460393385891059336452875875534576*u_^21 - 1155597744211853994409901703760940795992612027828102007030202488539525913487297952795369033796421413209250158783886160621061881718613555768355741364933099148076115210377184894107948775698442978288*u_^20 - 1422401041012192029666761628964366529533968662457731833499133484811987515188760587899933179967913405320529676322588323750228054787464532989378756333196775052498887211954751385034973333919648958272*u_^19 + 6747768005805872437152063925518605196580928800614407119731328790838034754107089206854429647354830856788290949196242106010906599472972585518081487582797404526188501912348684920089272435858914081856*u_^18 - 7002140001232698891913853956979438106437887745962605874994997936062732773378856728651820472827593609244504509579835485145083829403818883127934636927869163712461647640617810321649486884000180176896*u_^17 - 9691030640006255868313253965243292138753165569632143344767212703450195935987043354963644450445317250125420269394462551674977877408520915882441307946256053780356157274054695215117096404961582237952*u_^16 + 37425703473155071844293886324586783014178201104706530575706018154959353997202878981900749996880461392203617429859944525568980840507533649750377487790463610192257374844941032187056646763025795551104*u_^15 - 33775433474381379953205717922639523748165626900594890091064782935698062331340852533012615079793185277789613426817605261864679397898338884346397280424161149514141253579333534670080001707389678922560*u_^14 - 45212443362061251261159729419717517242671533930262795613292653337632115235192230451253260027100978427654442711996676321892960822600203462066337785763751512253207758039588503811115526130979640464896*u_^13 + 153417651632345056750016181085809694455115444775288404793103797836785725940918250453453257722490938332532786472078050869995551581769098684453281708566327756106770592312613992772804266100319089191296*u_^12 - 128354253566927313512278234729357759475013390693477256209137318359066721973853881487683250430162478370580172243759033552271473346913334325849948874733311103775094576622970071942364374871550354072320*u_^11 - 134376981830690064092899038969838240903310070897574235353595246081151425496055267995994676426952474830996057958550908508128793432398828675243031309928407716735406478618587554189334968947412185310464*u_^10 + 436173661496160242959363670132141553843736284248582155032183238636174606096756363430515641451805083236084853446438356573342413386338592009464055909846391059814364109806134192336376496688547905356416*u_^9 - 360416007646480318061008591684266503151219587437376663147322493085189548492318334431865969505466705987110043621489352328713663536724784423703336173718723202646705352903921839680942890217787972221952*u_^8 - 207465695823098930473901795453687003443814644021968320754340723723885634839366329254447685544451382879444390005477888512498372127084153767210500962491605862330083049966622959190391179454830366633344*u_^7 + 753455520769665334430243461749260181748697773826603154844627105224797297729787296763073900670610790442560557370804159124021040892213855628794857446313202964155717685277665559008364323023366768568448*u_^6 - 647628089904212915063817666219474566264007044184977529647828619618203125831434087981034799471673555864065358599258580136275816796388697176880125912402621773113289661331878096549358463313534496410368*u_^5 - 30456534317246445966574247777909075650136149499514748929168620117641767871929266980537842524372903734281247099502822649695472733723672480516435782065870910925032389307976753785547502072834323628544*u_^4 + 567921590329965597973189471952606687787259941087585891392957605994602724656202555075536009096462511501856249451219940300310586439754095927673950202263991261051089042593216050350292537101406433854464*u_^3 - 548267537699344456019352628457567839518102562110584808009233720595130494638696401984110375580723827940391020750838286091524008215794392101689346975441022407035852082250879585423446230069663026710528*u_^2 + 244134246574395300532859804507332589937785605603654510080521485320132166162298181932293293510687365709855732626900881807892040772107481799033267827917122523310279955078386913421869478428872135156736*u_ - 44770142303032275186046623536929891862025852623091339321278201478823935395423344700037853299780923990411629172493671998964618731237832013783855902791973119392298136032732661967411182221576325909504, 92534898593628160*u_^209 + 109710624817814700032*u_^208 + 52664540346007018274816*u_^207 + 12095918643258508569477120*u_^206 + 876461674106750263114072064*u_^205 - 185999533516220531070788960256*u_^204 - 42968454810007816852600522801152*u_^203 - 1136306731323784748174938227081216*u_^202 + 489985483002290347369710235892580352*u_^201 + 39855769983579493916385263261807804416*u_^200 - 2779369501120322818888105420038850215936*u_^199 - 384211984815279598119133949348169088237568*u_^198 + 9734319576956017478840920386324619983847424*u_^197 + 2179972171011671092484429273928528091099955200*u_^196 - 29762509070908951688243350860505220848375824384*u_^195 - 8385839547541899893082658778538490036585624371200*u_^194 + 123454411541840176586109798602356492705606961971200*u_^193 + 22260529301333212059665507782349615101312884998729728*u_^192 - 522954359726180479724038784126886941974474357080121344*u_^191 - 37360147037314301712979693557820758370439861741537993728*u_^190 + 1525174406479351110955743686871629238750963721586057204544*u_^189 + 24847245375309252373802012410765278983258305625667765922048*u_^188 - 2583836987808238891481408154340235338843151931119437116432256*u_^187 + 40315517267763013586693229293589180139302728473699521671609159*u_^186 + 1702383456850339909318353591740337190751184216893925617545931514*u_^185 - 101788727743668289172000911714237839246647361900059665645627592516*u_^184 + 1722737502201904699434871486097519737184852286217414960180589682560*u_^183 + 45506813152523503731285641597362696541741900533612549030394467732881*u_^182 - 3413646717992228605426299379755265261701513660589758473827345698374514*u_^181 + 83744129871274111923250132171699166111090607732729501158064103619671720*u_^180 - 25574000375488313368055141206701081049104035667426618801282498493658156*u_^179 - 73958465521001586206442573477363757862120543929229296724202539553255903034*u_^178 + 2920065641655528990593624433103479332564680264763613912116029243948602540022*u_^177 - 53862301624342458417526846700550812304975588479707920287371336150449691533821*u_^176 - 197624559058069800007340430287023208381650146734407043654057477873413015058580*u_^175 + 49559904186844144410049072898988769560034694452278249985062838637875887818562111*u_^174 - 1846258624050326559282912056514158028553942094022399444789064931333549405578587590*u_^173 + 38859068259944345585160296462006028005526844220114773109418304355699936258764264044*u_^172 - 290592569333725740117805373059433515716833774417612251125409080144276817155793569784*u_^171 - 14246550951519943750181594923589971561111167249247039722670715979507043569333339431507*u_^170 + 765557907860172973809581255468781478981036724494212161690452237412038613002465790282542*u_^169 - 22184684105151849219244508568208262686789538971971863679757710420347867974543706073938640*u_^168 + 440062595321477467121121972921092505060010811740889652470982393916376877553713233999488232*u_^167 - 5000105824992752587471734553903927163784094085742440722502304356652060087042618114035394900*u_^166 - 42595018983450475922969736948317944215211583790536584603308387759129200906741251288324627384*u_^165 + 4390071313963867899362294237444738896353032729910452416016272089773532476705584942188188487526*u_^164 - 154600390864441458674547156850585538066245000520387662475789701684090699867440475776839680306516*u_^163 + 4031194996605358657927571592612934050126455831217445013625612128356007360501471834670835628541333*u_^162 - 87937481697472732045328769101977948931642353102217441102461101037321745349780669351366946129104196*u_^161 + 1676117574514712594690733000063743677073982146809467430112485942415759592989560313341539889555479402*u_^160 - 28459429561366471426357655263035864084924615453299702204570898920636875610867700710057268242390561512*u_^159 + 434104697752124669768497252965975845424329960770183227025553429409676790740720090365142807086204330648*u_^158 - 5957889794305887173575125261731659973419879344630291790052508627034007645300206046892657709092367960104*u_^157 + 73239185229269077997364313328940682209849905149300510282625650613238680290435170741888001938355980450417*u_^156 - 796368928850256292070960364701074262947351607942722349439713423829907354998426967169254179059527224943460*u_^155 + 7455750022142100693164843082988173475025369029449271861863117356625272120234140970514570140041386686186486*u_^154 - 56408317555621123889901827568332086541453813585467518676355912527924432148337377130028513978068387803387734*u_^153 + 278812291680582943975318077442880955080585426967342402491202599237888473127162546575650249795440161495386725*u_^152 + 392674585062986605266735590273987207376234172398145642649762681308362044195437665946870597757120749598642800*u_^151 - 29582369529496086527135803874237981900988938770942285870862903164441569240039491955296443247353253604035387594*u_^150 + 411090500912327726240922393561067194072487960514536584121356540002739962308062794417949140643020204622986908140*u_^149 - 3581819787778935763537229957602836779896477205840075603261438411911380505997801820014363432055388978933751595455*u_^148 + 17999839108532576070248248488883603139266289040143658626504698107860773390518450536501534888362098972650397986798*u_^147 + 28802244327933233872522534703137693218389654549748220709833885133349522766064717213683589722321377267849955885153*u_^146 - 1689222628549869834160840350092140648914838824043111047156401479215224673490495525526044461973944651081077466619054*u_^145 + 18745157356720292954137028075355499561705768607883527807497216016538321808041482754635632540111659658759875525185722*u_^144 - 102282637304189873962964655163543476557527021155556491016593601178396501982074929911175114120060175420513778105792534*u_^143 - 156277716555982747756951709962159573475637070416139531811056491899735593903891916372003096623936855502522506039427589*u_^142 + 9049575105394900335035158227260976600529335982421378751515506410217985257335072349275532275889003150954752148641926478*u_^141 - 88148238675903117703100777843049484683948289070294195164160884380092920642665935142336967298584440983723626329847492016*u_^140 + 301763486865397106751489039789574073636465395672378323906095634129563226075193780137575826369933670148295222273415644124*u_^139 + 3073023870978040399239844117333840906583623587727953827418817788705857111006150570069566924764537341589334180026709774986*u_^138 - 52620037957936780519569431841479353485366270185340663953826851806265056193183557443322777465211009529255567590331690298718*u_^137 + 311243919207684444424040124006691864149409047315655856059747176023718648174902059835490634456033691248788801022365129079143*u_^136 + 599394574887805162426186038776569603934587653949922675886461247888012256837824612664187929230716938789620008771733882900466*u_^135 - 26957417410690296327757273364654300560973370435214699608917398408155323650395262682790683361611186566466007423634206064135969*u_^134 + 209405256065996970526372169592719046318379205267986761853385852285882342928896873820496670667274935942537043982819862314495592*u_^133 - 94299198625415643353057773951822943808443958254428167945630459132535980615516699621951801984253864922418746168802177989611465*u_^132 - 12946196053696181419115889548753619070447948274738354787623875726161611112516455783511014655711014183464930865684342844463037322*u_^131 + 117016565113189247481722380829026750804197851350042334033326518287809211395866615727665427789507281813002071940118862920564194326*u_^130 - 147909772269104140657372590336489319045117253979277265914976861883939214016609212075820589065704819183373532359843704909240068532*u_^129 - 6169270258453572387522724910735142967636564610444947501899927851052377039006406580264805866730395130250711196360819107567816097375*u_^128 + 57860463360801546217489181784015204589696781591853707029336578676820008756906550742459613843162805696815670216156082472205693538650*u_^127 - 67871015634649487693100386681113390846864912299041994992574465152177771900300271428417729655235738171572120324954988724840055354721*u_^126 - 2963270358507505752022751543108434770853989287788802368284308490797137388553016842282014524765447941797562114855645382158017376001286*u_^125 + 25498278828066158247952896801348523385121831269349019284243703519419556595979844175727331313475843245013066936147974087007715879331057*u_^124 - 8221253067054835200966689217513674544039750291460680915827728488054026360865944653051193813065455961783436449419352290324175674601450*u_^123 - 1393548659141708666955787933192117972034684691894873721688780380673807207529912000821790052698520428319586734066850072703071616175055000*u_^122 + 9740516552811866486654553288071438189853343483928084195435455315860275191499090997025393833246628127188633720906158387207461730332111730*u_^121 + 13288353915139384356521139756431928315376295738275015154925884002420129993946255336388441567312305616271104935191725517877236424717661508*u_^120 - 607015220955466760439328732134990049319107306372573832241526918094209430205324813688682872228570251336024183288907549852420665038369404914*u_^119 + 3009985714684746316672521869305916440920905549697271401224194481627049471379104833244867198000673789175271313455830106078062428945571152172*u_^118 + 13490762457378357560290989162139073873010718408099856538941330209558541822061153143756515208447088170185757617436272724940048258300636990682*u_^117 - 230409199218286560024335842588045824591976479464490813169932951682909539929014507409199844355969487173188950096537113912765986171702814342961*u_^116 + 623352650229081266731552867022030438633464627175276908797490526678873796567548815601623310065963394351775303682124743865040694524471706805102*u_^115 + 7811852304571344930350434428871157244728241069612764576910117492359819233766793304346221700720978433389298451112258207995254000243739556427931*u_^114 - 71181403758095676088496125582834537170552669392030327382443841183980856372098049570289987304635820996250976763070043175331482667587215160563872*u_^113 + 2464303498448092581505848620626761403708322319063798327418131644485275039033220419416318264698879504777467569681757919709842823494171679710547*u_^112 + 3244194423210074091003028745009838327096002661284012993523622883981346239271354603300606116504010069531700288390691491770501951654288112689424702*u_^111 - 15952095441124847262191709495093648937260103274328984130479353410605646092238320059792551649697221875932358250162192161697429142841509109901534238*u_^110 - 66522405091050924480478540675431817335136852872595552128846114553249884288681108748291898148373519727054951544278302295107857261779920088484443582*u_^109 + 992530283479485911858275925907176489588680252526434701628124937121250622056791861807331041373894149987001147983039737105763966179897359938946446413*u_^108 - 1668747813315897553195301082438410522431291931888692813239872412296358124178099974653239882598549219307751947534250464232323884180056087906082302522*u_^107 - 33528912584097563567417795289882567153657135104647578442145358412348094100845946484143343133484260574419933089996701592512383054422759074962493112540*u_^106 + 210150820873873581928327768304297796734592346436657917615641509057817300117698279334412044207253930580983154941792258409766322734044706404177985416066*u_^105 + 448603087205961825931942794266813722373406129338776926533488190855767551233509361644917342349281704019665574201993241885967472701534715920966881238469*u_^104 - 9918735578634188855078146558279649566220709763575740685142224273873164474372012975881388424421633765681011476097075596120902797733434820663435567267474*u_^103 + 22189445330908027098650099557431254045504046715273927001109574203512599137834122187226860676212770473928410423274350757671872217026126797882158773564592*u_^102 + 280815711090225454450915230845776758444313461550756688299511194589059808222534581445677627911368471594821287329671270247294415823144669176223459716776860*u_^101 - 1855140838976248006062830048186213281959857413224423304708523977379798933534569272552310827655004452066153616386088557918799301448868599139918602498244829*u_^100 - 3121873290484638737353391968384772033582320172589703412017071147010178342971649629804561027999069423792248933172922219126777488105885243586925567269433626*u_^99 + 75260838766835857833170790603378618310465575087409511282706581358797607791068963737502528455167572465270722535935435970274187372644593162084973029364477839*u_^98 - 157995714621320868586915818150941430081958630226886300393098320866330588038086487165116281322244141467584893348501816756109507174135411070598353268124842302*u_^97 - 1943801245552344395253197613773437462566789911673691441377997478802402855960893407806599603431109271498395797889538602829275206591914353866168744591755159510*u_^96 + 11618482892078442607662358094575940659851712066322583606074725844988944013976205392383924329492419135398129957516713690345001047757880651054088206118999443568*u_^95 + 23088879321464063849641633681223623503347703133362232116065722261250847645814186423515930010250995452829445549662703251017601966363564391217889876251486580034*u_^94 - 432287175007282407767069556499481653756399474049473434999408691815734560726598755679895026958868130388970478545264392833466153973265359399688116601376901271724*u_^93 + 674304666171181703225221228232748298820155357405727448656557877279758361453797239624446611403186331798286425030004187567540398831009080367039885414569381818426*u_^92 + 10596202495454569014697829962996342537986244086233600923081032766775796429419235084684724674481690379476154282907356824343461301135491773224284531752692746333990*u_^91 - 51754696301769525232575719764179403611559064855331767649351835670340518051860807906370261686244429003366139751825215633344529367678303702789318533771891643335007*u_^90 - 140538521885808413385558536938455326175700110544586564081497314859087355220282377111344762401637111412943912506209192501888239742199551305673010549259976171003386*u_^89 + 1830152558281721269753921256081274114421740848541926455867423232594134937852504511889239735486114075470605343276197793456695951127253250991548093494584693077466723*u_^88 - 1613499760684756267559205896071106603289633266135553617050921505217560829282408717121881690282003962282493294479475768568008727384338678232366824846684687842207090*u_^87 - 42912236998573949154383640270236918738204694193408983381933265453435483413826236460818726215554655714779998293182145388390819400511062404090255581229896641292081245*u_^86 + 163442729075675429669857577500583775386174017334292641863252751434848218040050091803634659427074876203302458510179673632536804473410583247800945317505851203463352164*u_^85 + 600639676027353232534100308244120428425470459993342459103186433988819629210344851500443845014499119424131486856378682882799399442165459006662381676659141452796232130*u_^84 - 5625542902054146918859353149077303484778364105628775102584905409908843659624696286641507583060335618168855214559041357931714483748391383302952513709612643959371622500*u_^83 + 1411083299748915775253366852679385463342032179908960969280288893979644844791939856573467598331075253212385055931355568693831770190025340000955493150703507408618730079*u_^82 + 125512784417706350728444859763688112227774910387755354241931836376981702372259721326893755308089532996932154218813033394414228914777573852777398092798528597128342228442*u_^81 - 372986963667014012279448920565014416364185555378156058128454084503676094417886029692589829017117157872249865618655089599308522465413615874515945970276887262106436065547*u_^80 - 1742724327579673180910190573822120708246804111583320798666700486894042108665043568155455753250672968835127482118089628282514099202479811219971667116086167041318253235700*u_^79 + 12637575773847479789345414854628518951080689446004228837686834776902397550236449983828333387956658686220437905569106266762957856753689303008540176959414252199770463797674*u_^78 + 2743366420783441126871199100736271767485229952593839854486356824692839362343344833919815492393092070047834923347406734567549395205328331280867825606349582614450335653814*u_^77 - 264292396914183166421726847088291339246887639564694777812627638273463345856102416890083299444771731207700841286980028456409004237186507632806101978505216539898109582374349*u_^76 + 638552806515788511530743530056584350038751004703418335522147884494827228634100908294422442824093295886027351701446560231456888671689807683466025082841378515659191678181678*u_^75 + 3448747300505000318853938748967578280195168943111242680769669675609777150882204025055983299174659456504882150310566693227520208283460829281494541275265937012034511141308279*u_^74 - 20964429648791387180127418610015158943058891094358485423234243892778595355902588260446932128938315737212968694158291063172201665080513170587112431466806004384383913940738586*u_^73 - 9449437829306746477412474821043024444915109569237132877071171084563281517359682074470367842562128451103228111250690169255384553260458694101932957792852702094524296281003518*u_^72 + 399361868691482300850911193635707532028434530349013136768219806226578676335238591551021681255516756825420024301498435399962102762397534734917129645587919916671672085893412328*u_^71 - 849838356920179824548441211531026620009288309021831591761904719806354472728126265024369980352912476131035432106358443253540056562623736408170475687051263767503744796609717352*u_^70 - 4629991756518108309078335898012122244679241072980145772490723335896772559541557631033904223479982739285322576043424894934883660452165086566530479791504973193742800590601599762*u_^69 + 25660284187554905765222389927470505748202441029574024513260292419257043802207661520529884367619711535630736573119461472676429452432965165933353678722246729680892824719232508409*u_^68 + 10306390371733928192193910790949101969463480564838042956460036865661752142815588572268762154232329065924198574498661215926675936185288416433346450735895245061629545082009304598*u_^67 - 426605693191076348223239291661883263766016572889858680815563450354612692459863438313209608872559629766473120153851636541527951965947520118435323349504135712347228669488340147516*u_^66 + 897577496076630705223804005441383271900677724083613028298115546993380304331734637636284571547512200498562230891810853165186378754808627112887734783225818003346587826192469147352*u_^65 + 4095812088016033402122499536663421616007694660729934722063542093638388959755301769499902619129107963668362673115354644460480823392306707772678786689319620083739257702476581774757*u_^64 - 22910655587584011629595443092573444720529066080201961251057695572073782081311370687163269123598406176235354793935384010784877737926025461581040137640341296452134864218118435143256*u_^63 - 1373422992752688295978265827910389375655049068231783839627836086274954376831011513511818736027392710301004683136262101706857209013278061978017634545873422689093244734642206868784*u_^62 + 313977977919346934179487989018995127343454911714042170667424724560054590537805948275242042615642994058101680072562557335696535905071105563631054886687534202777741101964364248198250*u_^61 - 739058608094043400799712374609475877012558899330251933144086437756485255369162351533047697310783187589078447261734559613064049409864882187542624870573686073204587507792859273817378*u_^60 - 2243295395958125963721389385997100917189951474481053177072569038480351537490149260386544491364978392282987449991996594274884702406555138989001195724979707916148420610381078764640732*u_^59 + 14535144067974171506425610978801149706936561753245217577535531930775938705219037691286271191230812661087524779864758720607241138116912910646473505959813639667704661833237529730671327*u_^58 - 7453863777154251415717299560089238408785705829431979981464836746082174305205190584224606250535048533570526940124067748086538104791240085797328137946758773022846700124775706593158752*u_^57 - 152486363099065002961699243212999395206836263362456525450290349761408744003462871685508530384433561777453976660040370690696357460774349979292788805834964444451808726116628358653666013*u_^56 + 442100587309132791063161293304007143467782090603321054746019251794262000197923434606160206863940827303813701749712167694696294427776641024185238348389700329095420016249120161133914838*u_^55 + 648510382259767592888096893818711830149757761119583200528893908280549870460309661613331767264974732331763835803677909281623984170253991530703820385439202820026788332471626696109741635*u_^54 - 6210730245245728676093181751469200787169370684843320428266284800471666922521099382862554062111233535508136668338146151105177604130731613390166226607349094722964279728116356174199161232*u_^53 + 7538935555035859381183091163808122161796031606337709041472745493561649151424621492380081502167865081496693001664032934821463857313397170660576658945717310636876466801162026042256481727*u_^52 + 44863615998610210516326190708199229169473329930080621438287926568628687945408238058476474937260748605302610301044965628482923284518345005425593031261257876220837054374430122255470827448*u_^51 - 173665677892788321816422074084405592952486916877454662641241989308235378128894566816144563921414858026474454604218555915128275726439258506804743024610442411306280476654659231668592188324*u_^50 - 30580876444101101375965656923447736913931398626299541704065201749094781299030094846265146591591544203136225481012853073841871187237747698671764857312113859673021569513088068857382454870*u_^49 + 1626617662168730056320514777981315185096626101147057357827971193264918291137722123129160435600117915060649402193482238610061282120491319249088222699587342054933719666126442961357029506920*u_^48 - 3291289865490280227716658510584851200703740986040034142535501463894351308922409983086941197719356060078093577096614354497916831652908863110785752132533881934966612766033507790608004224634*u_^47 - 6413066014102170111703269642493935133648687646309663621194329301430526233375344377114961142948912395960853134772275024942652498544205886495861734972593644858407255082293862811029969999824*u_^46 + 40098398837668915230725568253273707852417417244041384809952735414369357199924589533369264576958891687132138180523081065052128869626839858141858360921896529429688073512114969571320902608088*u_^45 - 35942202273443644196925419969919149169314365689150219862129279111286670681804524250510678599588915623129533285489548891986992583554538157723674925388001681744099311838776920257125893226153*u_^44 - 220179927020453707239888440159384394378638809070954472976397032878817043973124877260707664768666675430972202975241007859264394372840153880919250430012567413888874320171082510795761648887818*u_^43 + 714680262012355599224897526215119094386858821128443634547779996441427093788519137770637448575609212357561958052588015535741373052990742813371052528654983066945329341925873072854593193728382*u_^42 + 11131653150882320978764336045545870673380623382512304301891330941545262925715214089410009584838851410952005403312667925335118757082413069015482641982199244853630214265353493736846261350318*u_^41 - 4660633891465413297876326811985312261250617290572075262320385439899686986466314080676965508683095145040795988842538578672428762688069574982504200576817810328226277756617520198486526062505202*u_^40 + 9444168333537737028507594529424611730351756114713017414815213747688436101901768852837799079306168356606042926846837894647136853703381008640392270381602049598688774962603912459113363271201080*u_^39 + 8417185236612378399460769200173182219737426882053858925340065753622245191312559678084807592293918706187576354558851690008009518019226183047437311794393052863598969148396175316504881802635620*u_^38 - 70000492475317720669234260043793609885547907435077481977595189647970606944984318779128282142900444154149153095623204439844094247493494352799852346101299943661557710306587921204624212899721076*u_^37 + 95133891345302429427177735542001614585572821080835044819238037274079994313621743226031433779623203092599976551375506543734829179751809901498510460565627133925980856569852835752769740181115874*u_^36 + 162129317748053870500865144682257260142617772205697153128744792406733813643960627825162073868806150983715850796884199031813055979413352632519319519331140625700113531481593431602015409519720876*u_^35 - 772525760552687797915042986667590411247665995215460014921382607908284265383386951448484861394260949257514711996883201418894630225451160568232975870990739391901003336228545533632465443945009152*u_^34 + 841877868331256608084662691506828785464764480583388733217104813936702041224036728408273356482932384607265060933313083771208013561655814301741459770835998020300603042228588412050814315401168012*u_^33 + 1446114054095539717430860150067278668379679240489143983929174245144057941069494698243704886198437444226229452451393698556651120033567538145242189294878473243198851397581714384359266806020290740*u_^32 - 6417938872771002281037704804821863869998512182228153571229317577129313385582753339850173764275557984402583909660953587778794432486270789481390452315671782331758133542044596391993236751308025368*u_^31 + 9707219984739776423180454147610744105628732596355578326231670071310233003680597648433111614752176941232579436584163042309060283324230958041931862755188077315968858928919754030761478570799817220*u_^30 - 161790994918715021215009705143300823654528297448775853324677838621428646776612527672788556146085220126565858304956641699227427183868503639020531675541425307347807765671764440779139411393328440*u_^29 - 45720247115636769604564380677360369858509902054111501122425497978714261887270655579488251352707671150242865520657390493813503760953468615542043238391435516484792730433288801613818875981245949248*u_^28 + 149691652695100948577060362880704730244268311691827396716429025638499880184724309835201832512072351439920215409848125233856379042126516157238557822797167257286962407290023061600849634392459043160*u_^27 - 185747411597242433458477047452155274376370792400482138752614049795231469367102178790680065004886495701111087512314238662695358311861619397548609758783451158617185758499438237689404664840382366368*u_^26 - 382174362581261125791499531024068454667217458471429507123122724409980577042099928978270598502385992734440182569500970269194387607231506480735239974301435487722145159522497815992027193413355148576*u_^25 + 2047551881348562026951980256984349543750052700311446482811486274152752214581436515684510354629037926953071035595961393507387697517940157721936245606335615545064882033002889146866994175098853172584*u_^24 - 2803178800580334451196607343755985423579914564383381060973293179203763726000706290788335479072152388654180590663707528948457530108301423307655341438747234241837554619331453540526565179238404533904*u_^23 - 3935237541365777475713474037950696876788856090189083604565582667472614869165449425398658053613559837090954218191586304656247800072049001283561780506264461122142373369466723391379827266697537919704*u_^22 + 21076048518165431080127465603441014890933973485347843871775220967437061954857856880195833581294495487467727689308824145028857241146514244211653376531204005448252463566415205484454098018435210230096*u_^21 - 25085426159585509346356576523891614195155262084750612801104967999904354604351787522021447779745501610376650714040092886609865400126246875143871747425458877115276956100180695639018969886155771963936*u_^20 - 36224959848738772974964478416117310636560848539858566424897805499299134894802023111138816543412192177225042174784227042633853602349639585481905867287121393210187143742572978055113522961142484967504*u_^19 + 160323879467881712331233231501474877840236015460390100882729078307426659839791465299741027298727037495654337385845651934398142599264189195468760549124722021617064668937274171898324815315745770682208*u_^18 - 159457949572826906178141936501412281904433958170585478085692701047324543760414435817640391614524110963746566023864992853514257644973215589445993980767177871187747052205175791848181123235294017710240*u_^17 - 247184762391260089977648742606853079294759927585315257530914034965275651429161105033852565211837665599707312086064260303860303504586711866200328611150447603151364142557849857279758921492643238412576*u_^16 + 900311867389857853116379851608244916994499733415967465400418670767785508268514140432505975580837382582432986843201301471052298200287557239329355406972096521653175933324498584693919205116183626106272*u_^15 - 764855360406062104995940876295456959196109278809948667355022877053829719740584938645333533913509915606407787615648974275883429293168512414223197998136865205960158264520047227417804836850882828524352*u_^14 - 1167546862064636758510354611457271330916135143902072887988887012342497793946000321436680062383799451554689468069445128139633143565817924488231789229304462138264117778423749804917898548453123382911680*u_^13 + 3663976521437621600755745049629027810840760404044531817505109130547868955146490602818417007054695974676199553310960273691856288752655077949370006081456203960855854627458256216562557262119978033906240*u_^12 - 2812477548332314664795416594296608569915201419660771426386549100501135847740779361085236196913949850049551537948574109280714487498723426666827183540584880243757004002570700742578061314376253219787776*u_^11 - 3549129968317434989741736373417040896293836561606575200258177789820997489650847139546885877220869238986747644390050362913143249815688212316424992919220333189977208882874027701057121957097404532317184*u_^10 + 10238844392824277869651834872089845669405003127356354170191906375165284970969526948912161580456598678288077199002487413296521524737673951501493688655809433150799091569129199366197522273427557425932672*u_^9 - 7611268207572615232154843790596239725506120787324020079914617715255388611263662492577139194066543248255889729567650194411422617721976993373977212001820418787047916079615321480042845421285343532207872*u_^8 - 5857307091641536466233255513761233941194689684606338718670833017461866374640948294396870568572196879928241111375680986593210340209294593478763629147926373649619750134758473781761989579146988151617792*u_^7 + 17333909526995590238780121205077227666460033640512363739047524817299180060666822188470596301697268754475169183450622382185691921188071278700005802393325515529576401216361311866284748524597743165611136*u_^6 - 13325429456407311652580948117586829235622445301617462054500821960992830222027785186988046045599726092130636508062078991010517407754975408975334663568245195494243233738808442786290113239411471331651840*u_^5 - 2220724114467578244804430292677508625979600553261226146272545792588994129256685511002275965804681439513510422746023278499318864079617824181918378029897767324220389610746973760393087878717375483319552*u_^4 + 12834286004140955331465698737875603662550513293710393977580312322345325804093164193265168631355691881512560406223848111604736991876711901353876230399117647014079638716605706017127637085687874915329536*u_^3 - 11150319505725211721732909412130688143576328546676658069377891702158071159949609273997706856751386546128168553715398961969829301781867388515748701223065818582472971840430780185853493373258722454775808*u_^2 + 4526819947069579586366086981179337328716583905021938136529136302941554279361547299552692746966726111903183716068359690601079664032705299077786242896921793919139962586342677713738745268697306220612608*u_ - 747090045901182287158157676344644525851999439917080855352168125059510918446164257950739300815877042322584232930836964126555181306982709190294620435607655154790880522811472865869545930669623936516096]\n" - ] - }, - { - "ename": "KeyboardInterrupt", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/qqbar.py:4564\u001b[0m, in \u001b[0;36mAlgebraicNumber_base.minpoly\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 4563\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 4564\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_minimal_polynomial\u001b[49m\n\u001b[1;32m 4565\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mAttributeError\u001b[39;00m:\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/structure/element.pyx:489\u001b[0m, in \u001b[0;36msage.structure.element.Element.__getattr__ (build/cythonized/sage/structure/element.c:11576)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 488\u001b[0m \"\"\"\n\u001b[0;32m--> 489\u001b[0m return self.getattr_from_category(name)\n\u001b[1;32m 490\u001b[0m \n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/structure/element.pyx:502\u001b[0m, in \u001b[0;36msage.structure.element.Element.getattr_from_category (build/cythonized/sage/structure/element.c:11686)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 501\u001b[0m cls = P._abstract_element_class\n\u001b[0;32m--> 502\u001b[0m return getattr_from_other_class(self, cls, name)\n\u001b[1;32m 503\u001b[0m \n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/cpython/getattr.pyx:362\u001b[0m, in \u001b[0;36msage.cpython.getattr.getattr_from_other_class (build/cythonized/sage/cpython/getattr.c:4424)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 361\u001b[0m dummy_error_message.name = name\n\u001b[0;32m--> 362\u001b[0m raise AttributeError(dummy_error_message)\n\u001b[1;32m 363\u001b[0m attribute = attr\n", - "\u001b[0;31mAttributeError\u001b[0m: 'MatrixSpace_with_category' object has no attribute 'product_by_coercion'", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/qqbar.py:7890\u001b[0m, in \u001b[0;36mANExtensionElement.minpoly\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 7889\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 7890\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_minpoly\u001b[49m\n\u001b[1;32m 7891\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mAttributeError\u001b[39;00m:\n", - "\u001b[0;31mAttributeError\u001b[0m: 'ANExtensionElement' object has no attribute '_minpoly'", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn [7], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m#Does not finish computing (hangs on computing GB for critical point system)\u001b[39;00m\n\u001b[1;32m 2\u001b[0m F \u001b[38;5;241m=\u001b[39m (Integer(\u001b[38;5;241m1\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m6\u001b[39m)\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m2\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m2\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m))\u001b[38;5;241m/\u001b[39m(Integer(\u001b[38;5;241m1\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m-\u001b[39my\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m2\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m6\u001b[39m)\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m6\u001b[39m))\n\u001b[0;32m----> 3\u001b[0m \u001b[43mdiagonal_asy\u001b[49m\u001b[43m(\u001b[49m\u001b[43mF\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mas_symbolic\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43muse_msolve\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/.sage/local/lib/python3.11/site-packages/sage_acsv/asymptotics.py:161\u001b[0m, in \u001b[0;36mdiagonal_asy\u001b[0;34m(F, r, linear_form, return_points, output_format, as_symbolic, use_msolve)\u001b[0m\n\u001b[1;32m 158\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m _ \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(MAX_MIN_CRIT_RETRIES):\n\u001b[1;32m 159\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 160\u001b[0m \u001b[38;5;66;03m# Find minimal critical points in Kronecker Representation\u001b[39;00m\n\u001b[0;32m--> 161\u001b[0m min_crit_pts \u001b[38;5;241m=\u001b[39m \u001b[43mMinimalCriticalCombinatorial\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 162\u001b[0m \u001b[43m \u001b[49m\u001b[43mG\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mH\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mall_variables\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 163\u001b[0m \u001b[43m \u001b[49m\u001b[43mr\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mr\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 164\u001b[0m \u001b[43m \u001b[49m\u001b[43mlinear_form\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlinear_form\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 165\u001b[0m \u001b[43m \u001b[49m\u001b[43muse_msolve\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43muse_msolve\u001b[49m\n\u001b[1;32m 166\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 167\u001b[0m \u001b[38;5;28;01mbreak\u001b[39;00m\n\u001b[1;32m 168\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n", - "File \u001b[0;32m~/.sage/local/lib/python3.11/site-packages/sage_acsv/asymptotics.py:321\u001b[0m, in \u001b[0;36mMinimalCriticalCombinatorial\u001b[0;34m(G, H, variables, r, linear_form, use_msolve)\u001b[0m\n\u001b[1;32m 316\u001b[0m one_minus_t \u001b[38;5;241m=\u001b[39m gcd(Pd \u001b[38;5;241m-\u001b[39m Qt, P)\n\u001b[1;32m 317\u001b[0m Pt, _ \u001b[38;5;241m=\u001b[39m P\u001b[38;5;241m.\u001b[39mquo_rem(one_minus_t)\n\u001b[1;32m 318\u001b[0m rts_t_zo \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(\n\u001b[1;32m 319\u001b[0m \u001b[38;5;28mfilter\u001b[39m(\n\u001b[1;32m 320\u001b[0m \u001b[38;5;28;01mlambda\u001b[39;00m k: (Qt\u001b[38;5;241m/\u001b[39mPd)\u001b[38;5;241m.\u001b[39msubs(u_\u001b[38;5;241m=\u001b[39mk) \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m0\u001b[39m \u001b[38;5;129;01mand\u001b[39;00m (Qt\u001b[38;5;241m/\u001b[39mPd)\u001b[38;5;241m.\u001b[39msubs(u_\u001b[38;5;241m=\u001b[39mk) \u001b[38;5;241m<\u001b[39m \u001b[38;5;241m1\u001b[39m,\n\u001b[0;32m--> 321\u001b[0m Pt\u001b[38;5;241m.\u001b[39mroots(AA, multiplicities\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[1;32m 322\u001b[0m )\n\u001b[1;32m 323\u001b[0m )\n\u001b[1;32m 324\u001b[0m non_min \u001b[38;5;241m=\u001b[39m [[(q\u001b[38;5;241m/\u001b[39mPd)\u001b[38;5;241m.\u001b[39msubs(u_\u001b[38;5;241m=\u001b[39mu) \u001b[38;5;28;01mfor\u001b[39;00m q \u001b[38;5;129;01min\u001b[39;00m Qs[\u001b[38;5;241m0\u001b[39m:\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m2\u001b[39m]] \u001b[38;5;28;01mfor\u001b[39;00m u \u001b[38;5;129;01min\u001b[39;00m rts_t_zo]\n\u001b[1;32m 326\u001b[0m \u001b[38;5;66;03m# Filter the real roots for minimal points with positive coords\u001b[39;00m\n", - "File \u001b[0;32m~/.sage/local/lib/python3.11/site-packages/sage_acsv/asymptotics.py:323\u001b[0m, in \u001b[0;36m\u001b[0;34m(k)\u001b[0m\n\u001b[1;32m 316\u001b[0m one_minus_t \u001b[38;5;241m=\u001b[39m gcd(Pd \u001b[38;5;241m-\u001b[39m Qt, P)\n\u001b[1;32m 317\u001b[0m Pt, _ \u001b[38;5;241m=\u001b[39m P\u001b[38;5;241m.\u001b[39mquo_rem(one_minus_t)\n\u001b[1;32m 318\u001b[0m rts_t_zo \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(\n\u001b[1;32m 319\u001b[0m \u001b[38;5;28mfilter\u001b[39m(\n\u001b[1;32m 320\u001b[0m \u001b[38;5;28;01mlambda\u001b[39;00m k: (Qt\u001b[38;5;241m/\u001b[39mPd)\u001b[38;5;241m.\u001b[39msubs(u_\u001b[38;5;241m=\u001b[39mk) \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m0\u001b[39m \u001b[38;5;129;01mand\u001b[39;00m (Qt\u001b[38;5;241m/\u001b[39mPd)\u001b[38;5;241m.\u001b[39msubs(u_\u001b[38;5;241m=\u001b[39mk) \u001b[38;5;241m<\u001b[39m \u001b[38;5;241m1\u001b[39m,\n\u001b[1;32m 321\u001b[0m Pt\u001b[38;5;241m.\u001b[39mroots(AA, multiplicities\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[1;32m 322\u001b[0m )\n\u001b[0;32m--> 323\u001b[0m )\n\u001b[1;32m 324\u001b[0m non_min \u001b[38;5;241m=\u001b[39m [[(q\u001b[38;5;241m/\u001b[39mPd)\u001b[38;5;241m.\u001b[39msubs(u_\u001b[38;5;241m=\u001b[39mu) \u001b[38;5;28;01mfor\u001b[39;00m q \u001b[38;5;129;01min\u001b[39;00m Qs[\u001b[38;5;241m0\u001b[39m:\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m2\u001b[39m]] \u001b[38;5;28;01mfor\u001b[39;00m u \u001b[38;5;129;01min\u001b[39;00m rts_t_zo]\n\u001b[1;32m 326\u001b[0m \u001b[38;5;66;03m# Filter the real roots for minimal points with positive coords\u001b[39;00m\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/structure/element.pyx:828\u001b[0m, in \u001b[0;36msage.structure.element.Element.subs (build/cythonized/sage/structure/element.c:15303)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 826\u001b[0m else:\n\u001b[1;32m 827\u001b[0m variables.append(gen)\n\u001b[0;32m--> 828\u001b[0m return self(*variables)\n\u001b[1;32m 829\u001b[0m \n\u001b[1;32m 830\u001b[0m def numerical_approx(self, prec=None, digits=None, algorithm=None):\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/fraction_field_element.pyx:447\u001b[0m, in \u001b[0;36msage.rings.fraction_field_element.FractionFieldElement.__call__ (build/cythonized/sage/rings/fraction_field_element.c:9170)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 445\u001b[0m (-2*x1*x2 + x1 + 1)/(x1 + x2)\n\u001b[1;32m 446\u001b[0m \"\"\"\n\u001b[0;32m--> 447\u001b[0m return self._numerator(*x, **kwds) / self._denominator(*x, **kwds)\n\u001b[1;32m 448\u001b[0m \n\u001b[1;32m 449\u001b[0m def _is_atomic(self):\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/structure/element.pyx:1737\u001b[0m, in \u001b[0;36msage.structure.element.Element.__truediv__ (build/cythonized/sage/structure/element.c:21070)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1735\u001b[0m cdef int cl = classify_elements(left, right)\n\u001b[1;32m 1736\u001b[0m if HAVE_SAME_PARENT(cl):\n\u001b[0;32m-> 1737\u001b[0m return (left)._div_(right)\n\u001b[1;32m 1738\u001b[0m if BOTH_ARE_ELEMENT(cl):\n\u001b[1;32m 1739\u001b[0m return coercion_model.bin_op(left, right, truediv)\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/structure/element.pyx:2748\u001b[0m, in \u001b[0;36msage.structure.element.RingElement._div_ (build/cythonized/sage/structure/element.c:28891)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 2746\u001b[0m return l\n\u001b[1;32m 2747\u001b[0m \n\u001b[0;32m-> 2748\u001b[0m cpdef _div_(self, other) noexcept:\n\u001b[1;32m 2749\u001b[0m \"\"\"\n\u001b[1;32m 2750\u001b[0m Default implementation of division using the fraction field.\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/qqbar.py:3849\u001b[0m, in \u001b[0;36mAlgebraicNumber_base._div_\u001b[0;34m(self, other)\u001b[0m\n\u001b[1;32m 3836\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_div_\u001b[39m(\u001b[38;5;28mself\u001b[39m, other):\n\u001b[1;32m 3837\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 3838\u001b[0m \u001b[38;5;124;03m TESTS::\u001b[39;00m\n\u001b[1;32m 3839\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 3847\u001b[0m \u001b[38;5;124;03m ZeroDivisionError: division by zero in algebraic field\u001b[39;00m\n\u001b[1;32m 3848\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m-> 3849\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m other:\n\u001b[1;32m 3850\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mZeroDivisionError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdivision by zero in algebraic field\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 3851\u001b[0m sk \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtype\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_descr)\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/qqbar.py:4112\u001b[0m, in \u001b[0;36mAlgebraicNumber_base.__bool__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 4109\u001b[0m left \u001b[38;5;241m=\u001b[39m sd\u001b[38;5;241m.\u001b[39m_left\n\u001b[1;32m 4110\u001b[0m right \u001b[38;5;241m=\u001b[39m sd\u001b[38;5;241m.\u001b[39m_right \u001b[38;5;28;01mif\u001b[39;00m op \u001b[38;5;129;01mis\u001b[39;00m operator\u001b[38;5;241m.\u001b[39msub \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;241m-\u001b[39msd\u001b[38;5;241m.\u001b[39m_right\n\u001b[0;32m-> 4112\u001b[0m lp \u001b[38;5;241m=\u001b[39m \u001b[43mleft\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mminpoly\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 4113\u001b[0m rp \u001b[38;5;241m=\u001b[39m right\u001b[38;5;241m.\u001b[39mminpoly()\n\u001b[1;32m 4114\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m lp \u001b[38;5;241m!=\u001b[39m rp:\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/qqbar.py:4567\u001b[0m, in \u001b[0;36mAlgebraicNumber_base.minpoly\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 4565\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mAttributeError\u001b[39;00m:\n\u001b[1;32m 4566\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mexactify()\n\u001b[0;32m-> 4567\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_minimal_polynomial \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_descr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mminpoly\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 4568\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_minimal_polynomial\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/qqbar.py:7892\u001b[0m, in \u001b[0;36mANExtensionElement.minpoly\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 7890\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_minpoly\n\u001b[1;32m 7891\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mAttributeError\u001b[39;00m:\n\u001b[0;32m-> 7892\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_minpoly \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_value\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mminpoly\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 7893\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_minpoly\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/number_field/number_field_element.pyx:4842\u001b[0m, in \u001b[0;36msage.rings.number_field.number_field_element.NumberFieldElement_absolute.minpoly (build/cythonized/sage/rings/number_field/number_field_element.cpp:52168)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 4840\u001b[0m True\n\u001b[1;32m 4841\u001b[0m \"\"\"\n\u001b[0;32m-> 4842\u001b[0m return self.charpoly(var, algorithm).radical() # square free part of charpoly\n\u001b[1;32m 4843\u001b[0m \n\u001b[1;32m 4844\u001b[0m def list(self):\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/number_field/number_field_element.pyx:4810\u001b[0m, in \u001b[0;36msage.rings.number_field.number_field_element.NumberFieldElement_absolute.charpoly (build/cythonized/sage/rings/number_field/number_field_element.cpp:51938)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 4808\u001b[0m return R(self.__pari__('x').charpoly())\n\u001b[1;32m 4809\u001b[0m if algorithm == 'sage':\n\u001b[0;32m-> 4810\u001b[0m return R(self.matrix().charpoly())\n\u001b[1;32m 4811\u001b[0m \n\u001b[1;32m 4812\u001b[0m def minpoly(self, var='x', algorithm=None):\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/matrix/matrix_rational_dense.pyx:1042\u001b[0m, in \u001b[0;36msage.matrix.matrix_rational_dense.Matrix_rational_dense.charpoly (build/cythonized/sage/matrix/matrix_rational_dense.cpp:19579)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1040\u001b[0m if algorithm == 'flint' or algorithm == 'linbox':\n\u001b[1;32m 1041\u001b[0m A, denom = self._clear_denom()\n\u001b[0;32m-> 1042\u001b[0m f = A.charpoly(var, algorithm=algorithm)\n\u001b[1;32m 1043\u001b[0m x = f.parent().gen()\n\u001b[1;32m 1044\u001b[0m g = f(x * denom) / denom ** f.degree()\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/matrix/matrix_integer_dense.pyx:1377\u001b[0m, in \u001b[0;36msage.matrix.matrix_integer_dense.Matrix_integer_dense.charpoly (build/cythonized/sage/matrix/matrix_integer_dense.cpp:24372)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1375\u001b[0m elif algorithm == 'linbox':\n\u001b[1;32m 1376\u001b[0m g = ( PolynomialRing(ZZ, names=var).gen())._new()\n\u001b[0;32m-> 1377\u001b[0m sig_on()\n\u001b[1;32m 1378\u001b[0m linbox_fmpz_mat_charpoly(g._poly, self._matrix)\n\u001b[1;32m 1379\u001b[0m sig_off()\n", - "\u001b[0;31mKeyboardInterrupt\u001b[0m: " - ] - } - ], + "outputs": [], "source": [ "#Does not finish computing (hangs on computing GB for critical point system)\n", "F = (1-x^3*y^6+x^3*y^4+x^2*y^4+x^2*y^3)/(1-x-y+x^2*y^3-x^3*y^3-x^4*y^4-x^3*y^6+x^4*y^6)\n", diff --git a/sage_acsv/asymptotics.py b/sage_acsv/asymptotics.py index 62c9bcf..ec2cbc6 100644 --- a/sage_acsv/asymptotics.py +++ b/sage_acsv/asymptotics.py @@ -305,6 +305,7 @@ def MinimalCriticalCombinatorial(G, H, variables, r=None, linear_form=None, use_ # Compute the Kronecker representation of our system timer.checkpoint() + P, Qs = _msolve_kronecker_representation(system, u_, vsT) if use_msolve else \ _kronecker_representation(system, u_, vsT, lambda_, linear_form) timer.checkpoint("Kronecker") diff --git a/sage_acsv/kronecker.py b/sage_acsv/kronecker.py index 49a6e60..0e1d6cc 100644 --- a/sage_acsv/kronecker.py +++ b/sage_acsv/kronecker.py @@ -145,7 +145,8 @@ def _msolve_kronecker_representation(system, u_, vs): Qs = [] for Q_param in param[1][2]: Q_coeffs = Q_param[0][1] - Q = -sum([c * u_**i for (i, c) in enumerate(Q_coeffs)]) + c_div = Q_param[1] + Q = -sum([c * u_**i for (i, c) in enumerate(Q_coeffs)])/c_div Qs.append(Q) # Check if no new variable was created by msolve From b7ef94997030c400615e39c41c024aa13c82f010 Mon Sep 17 00:00:00 2001 From: Andrew Luo Date: Fri, 26 Jan 2024 10:36:53 -0500 Subject: [PATCH 04/17] temp --- examples/Sage-ACSV-Tests.ipynb | 116 ++++++++++++++++++++++++--------- sage_acsv/asymptotics.py | 17 ++++- 2 files changed, 103 insertions(+), 30 deletions(-) diff --git a/examples/Sage-ACSV-Tests.ipynb b/examples/Sage-ACSV-Tests.ipynb index 923d423..c7e2b71 100644 --- a/examples/Sage-ACSV-Tests.ipynb +++ b/examples/Sage-ACSV-Tests.ipynb @@ -17,7 +17,7 @@ { "data": { "text/plain": [ - "(x, y, w, z, n, t, lambda_)" + "(x, y, w, z, n)" ] }, "execution_count": 2, @@ -57,6 +57,14 @@ "execution_count": 4, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[]\n", + "[]\n" + ] + }, { "data": { "text/plain": [ @@ -79,6 +87,14 @@ "execution_count": 5, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[]\n", + "[]\n" + ] + }, { "data": { "text/plain": [ @@ -101,6 +117,14 @@ "execution_count": 6, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[]\n", + "[]\n" + ] + }, { "data": { "text/plain": [ @@ -123,6 +147,14 @@ "execution_count": 7, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[]\n", + "[]\n" + ] + }, { "data": { "text/plain": [ @@ -145,6 +177,14 @@ "execution_count": 8, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[]\n", + "[]\n" + ] + }, { "data": { "text/html": [ @@ -169,7 +209,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -179,7 +219,7 @@ " [[0.548232473567013?, 0.3099773361396642?]])" ] }, - "execution_count": 9, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -192,21 +232,9 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(0.09677555757474702?*5.884442204019508?^n/(sqrt(pi)*sqrt(n)),\n", - " [[0.548232473567013?, 0.3099773361396642?]])" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Example with two critical points with positive coords, neither of which is obviously non-minimal\n", "F4 = -1/(1-(1-x-y)*(20-x-40*y))\n", @@ -215,17 +243,9 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "No result was computed: No smooth minimal critical points found.\n" - ] - } - ], + "outputs": [], "source": [ "# Example with no critical points in (1,1)-direction\n", "F5 = 1/(x^4*y + x^3*y + x^2*y + x*y - 1)\n", @@ -411,11 +431,49 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/qqbar.py:4564\u001b[0m, in \u001b[0;36mAlgebraicNumber_base.minpoly\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 4563\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 4564\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_minimal_polynomial\u001b[49m\n\u001b[1;32m 4565\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mAttributeError\u001b[39;00m:\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/structure/element.pyx:489\u001b[0m, in \u001b[0;36msage.structure.element.Element.__getattr__ (build/cythonized/sage/structure/element.c:11576)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 488\u001b[0m \"\"\"\n\u001b[0;32m--> 489\u001b[0m return self.getattr_from_category(name)\n\u001b[1;32m 490\u001b[0m \n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/structure/element.pyx:502\u001b[0m, in \u001b[0;36msage.structure.element.Element.getattr_from_category (build/cythonized/sage/structure/element.c:11686)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 501\u001b[0m cls = P._abstract_element_class\n\u001b[0;32m--> 502\u001b[0m return getattr_from_other_class(self, cls, name)\n\u001b[1;32m 503\u001b[0m \n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/cpython/getattr.pyx:362\u001b[0m, in \u001b[0;36msage.cpython.getattr.getattr_from_other_class (build/cythonized/sage/cpython/getattr.c:4424)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 361\u001b[0m dummy_error_message.name = name\n\u001b[0;32m--> 362\u001b[0m raise AttributeError(dummy_error_message)\n\u001b[1;32m 363\u001b[0m attribute = attr\n", + "\u001b[0;31mAttributeError\u001b[0m: 'MatrixSpace_with_category' object has no attribute 'product_by_coercion'", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/qqbar.py:7890\u001b[0m, in \u001b[0;36mANExtensionElement.minpoly\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 7889\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 7890\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_minpoly\u001b[49m\n\u001b[1;32m 7891\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mAttributeError\u001b[39;00m:\n", + "\u001b[0;31mAttributeError\u001b[0m: 'ANExtensionElement' object has no attribute '_minpoly'", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn [5], line 5\u001b[0m\n\u001b[1;32m 3\u001b[0m var(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mx,y,w,z,n\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 4\u001b[0m F \u001b[38;5;241m=\u001b[39m (Integer(\u001b[38;5;241m1\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m6\u001b[39m)\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m2\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m2\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m))\u001b[38;5;241m/\u001b[39m(Integer(\u001b[38;5;241m1\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m-\u001b[39my\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m2\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m6\u001b[39m)\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m6\u001b[39m))\n\u001b[0;32m----> 5\u001b[0m \u001b[43mdiagonal_asy\u001b[49m\u001b[43m(\u001b[49m\u001b[43mF\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mas_symbolic\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43muse_msolve\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/.sage/local/lib/python3.11/site-packages/sage_acsv/asymptotics.py:161\u001b[0m, in \u001b[0;36mdiagonal_asy\u001b[0;34m(F, r, linear_form, return_points, output_format, as_symbolic, use_msolve)\u001b[0m\n\u001b[1;32m 158\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m _ \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(MAX_MIN_CRIT_RETRIES):\n\u001b[1;32m 159\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 160\u001b[0m \u001b[38;5;66;03m# Find minimal critical points in Kronecker Representation\u001b[39;00m\n\u001b[0;32m--> 161\u001b[0m min_crit_pts \u001b[38;5;241m=\u001b[39m \u001b[43mMinimalCriticalCombinatorial\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 162\u001b[0m \u001b[43m \u001b[49m\u001b[43mG\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mH\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mall_variables\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 163\u001b[0m \u001b[43m \u001b[49m\u001b[43mr\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mr\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 164\u001b[0m \u001b[43m \u001b[49m\u001b[43mlinear_form\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlinear_form\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 165\u001b[0m \u001b[43m \u001b[49m\u001b[43muse_msolve\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43muse_msolve\u001b[49m\n\u001b[1;32m 166\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 167\u001b[0m \u001b[38;5;28;01mbreak\u001b[39;00m\n\u001b[1;32m 168\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n", + "File \u001b[0;32m~/.sage/local/lib/python3.11/site-packages/sage_acsv/asymptotics.py:349\u001b[0m, in \u001b[0;36mMinimalCriticalCombinatorial\u001b[0;34m(G, H, variables, r, linear_form, use_msolve)\u001b[0m\n\u001b[1;32m 347\u001b[0m \u001b[38;5;28;01mcontinue\u001b[39;00m\n\u001b[1;32m 348\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m pt \u001b[38;5;129;01min\u001b[39;00m non_min:\n\u001b[0;32m--> 349\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mall\u001b[39m(\u001b[43m[\u001b[49m\u001b[43ma\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m==\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mb\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mb\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mzip\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mv\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpt\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m):\n\u001b[1;32m 350\u001b[0m is_min \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[1;32m 351\u001b[0m \u001b[38;5;28;01mbreak\u001b[39;00m\n", + "File \u001b[0;32m~/.sage/local/lib/python3.11/site-packages/sage_acsv/asymptotics.py:349\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 347\u001b[0m \u001b[38;5;28;01mcontinue\u001b[39;00m\n\u001b[1;32m 348\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m pt \u001b[38;5;129;01min\u001b[39;00m non_min:\n\u001b[0;32m--> 349\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mall\u001b[39m([\u001b[43ma\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m==\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mb\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m (a, b) \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(v, pt)]):\n\u001b[1;32m 350\u001b[0m is_min \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[1;32m 351\u001b[0m \u001b[38;5;28;01mbreak\u001b[39;00m\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/structure/element.pyx:1105\u001b[0m, in \u001b[0;36msage.structure.element.Element.__richcmp__ (build/cythonized/sage/structure/element.c:18097)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1103\u001b[0m # an instance of Element. The explicit casts below make\n\u001b[1;32m 1104\u001b[0m # Cython generate optimized code for this call.\n\u001b[0;32m-> 1105\u001b[0m return (self)._richcmp_(other, op)\n\u001b[1;32m 1106\u001b[0m else:\n\u001b[1;32m 1107\u001b[0m return coercion_model.richcmp(self, other, op)\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/structure/element.pyx:1109\u001b[0m, in \u001b[0;36msage.structure.element.Element._richcmp_ (build/cythonized/sage/structure/element.c:18211)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1107\u001b[0m return coercion_model.richcmp(self, other, op)\n\u001b[1;32m 1108\u001b[0m \n\u001b[0;32m-> 1109\u001b[0m cpdef _richcmp_(left, right, int op) noexcept:\n\u001b[1;32m 1110\u001b[0m r\"\"\"\n\u001b[1;32m 1111\u001b[0m Basic default implementation of rich comparisons for elements with\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/qqbar.py:5572\u001b[0m, in \u001b[0;36mAlgebraicReal._richcmp_\u001b[0;34m(self, other, op)\u001b[0m\n\u001b[1;32m 5566\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_value\u001b[38;5;241m.\u001b[39moverlaps(other\u001b[38;5;241m.\u001b[39m_value):\n\u001b[1;32m 5567\u001b[0m \u001b[38;5;66;03m# NOTE: do not call richcmp here as self._value and other._value\u001b[39;00m\n\u001b[1;32m 5568\u001b[0m \u001b[38;5;66;03m# might have different precisions. See\u001b[39;00m\n\u001b[1;32m 5569\u001b[0m \u001b[38;5;66;03m# https://github.com/sagemath/sage/issues/29220\u001b[39;00m\n\u001b[1;32m 5570\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_value\u001b[38;5;241m.\u001b[39m_richcmp_(other\u001b[38;5;241m.\u001b[39m_value, op)\n\u001b[0;32m-> 5572\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m rich_to_bool(op, \u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mother\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msign\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m)\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/qqbar.py:5940\u001b[0m, in \u001b[0;36mAlgebraicReal.sign\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 5937\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;241m0\u001b[39m\n\u001b[1;32m 5938\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ret\u001b[38;5;241m.\u001b[39msign()\n\u001b[0;32m-> 5940\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m sd\u001b[38;5;241m.\u001b[39m_left\u001b[38;5;241m.\u001b[39mminpoly() \u001b[38;5;241m==\u001b[39m \u001b[43msd\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_right\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mminpoly\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m:\n\u001b[1;32m 5941\u001b[0m \u001b[38;5;66;03m# Negating the element does not change the minpoly\u001b[39;00m\n\u001b[1;32m 5942\u001b[0m right \u001b[38;5;241m=\u001b[39m sd\u001b[38;5;241m.\u001b[39m_right \u001b[38;5;28;01mif\u001b[39;00m sd\u001b[38;5;241m.\u001b[39m_op \u001b[38;5;129;01mis\u001b[39;00m operator\u001b[38;5;241m.\u001b[39msub \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;241m-\u001b[39msd\u001b[38;5;241m.\u001b[39m_right\n\u001b[1;32m 5943\u001b[0m c \u001b[38;5;241m=\u001b[39m cmp_elements_with_same_minpoly(sd\u001b[38;5;241m.\u001b[39m_left, right, sd\u001b[38;5;241m.\u001b[39m_left\u001b[38;5;241m.\u001b[39mminpoly())\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/qqbar.py:4567\u001b[0m, in \u001b[0;36mAlgebraicNumber_base.minpoly\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 4565\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mAttributeError\u001b[39;00m:\n\u001b[1;32m 4566\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mexactify()\n\u001b[0;32m-> 4567\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_minimal_polynomial \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_descr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mminpoly\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 4568\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_minimal_polynomial\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/qqbar.py:7892\u001b[0m, in \u001b[0;36mANExtensionElement.minpoly\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 7890\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_minpoly\n\u001b[1;32m 7891\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mAttributeError\u001b[39;00m:\n\u001b[0;32m-> 7892\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_minpoly \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_value\u001b[38;5;241m.\u001b[39mminpoly()\n\u001b[1;32m 7893\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_minpoly\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/number_field/number_field_element.pyx:4842\u001b[0m, in \u001b[0;36msage.rings.number_field.number_field_element.NumberFieldElement_absolute.minpoly (build/cythonized/sage/rings/number_field/number_field_element.cpp:52168)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 4840\u001b[0m True\n\u001b[1;32m 4841\u001b[0m \"\"\"\n\u001b[0;32m-> 4842\u001b[0m return self.charpoly(var, algorithm).radical() # square free part of charpoly\n\u001b[1;32m 4843\u001b[0m \n\u001b[1;32m 4844\u001b[0m def list(self):\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/number_field/number_field_element.pyx:4810\u001b[0m, in \u001b[0;36msage.rings.number_field.number_field_element.NumberFieldElement_absolute.charpoly (build/cythonized/sage/rings/number_field/number_field_element.cpp:51938)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 4808\u001b[0m return R(self.__pari__('x').charpoly())\n\u001b[1;32m 4809\u001b[0m if algorithm == 'sage':\n\u001b[0;32m-> 4810\u001b[0m return R(self.matrix().charpoly())\n\u001b[1;32m 4811\u001b[0m \n\u001b[1;32m 4812\u001b[0m def minpoly(self, var='x', algorithm=None):\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/matrix/matrix_rational_dense.pyx:1042\u001b[0m, in \u001b[0;36msage.matrix.matrix_rational_dense.Matrix_rational_dense.charpoly (build/cythonized/sage/matrix/matrix_rational_dense.cpp:19579)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1040\u001b[0m if algorithm == 'flint' or algorithm == 'linbox':\n\u001b[1;32m 1041\u001b[0m A, denom = self._clear_denom()\n\u001b[0;32m-> 1042\u001b[0m f = A.charpoly(var, algorithm=algorithm)\n\u001b[1;32m 1043\u001b[0m x = f.parent().gen()\n\u001b[1;32m 1044\u001b[0m g = f(x * denom) / denom ** f.degree()\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/matrix/matrix_integer_dense.pyx:1377\u001b[0m, in \u001b[0;36msage.matrix.matrix_integer_dense.Matrix_integer_dense.charpoly (build/cythonized/sage/matrix/matrix_integer_dense.cpp:24372)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1375\u001b[0m elif algorithm == 'linbox':\n\u001b[1;32m 1376\u001b[0m g = ( PolynomialRing(ZZ, names=var).gen())._new()\n\u001b[0;32m-> 1377\u001b[0m sig_on()\n\u001b[1;32m 1378\u001b[0m linbox_fmpz_mat_charpoly(g._poly, self._matrix)\n\u001b[1;32m 1379\u001b[0m sig_off()\n", + "\u001b[0;31mKeyboardInterrupt\u001b[0m: " + ] + } + ], "source": [ "#Does not finish computing (hangs on computing GB for critical point system)\n", + "from sage_acsv import diagonal_asy\n", + "var('x,y,w,z,n')\n", "F = (1-x^3*y^6+x^3*y^4+x^2*y^4+x^2*y^3)/(1-x-y+x^2*y^3-x^3*y^3-x^4*y^4-x^3*y^6+x^4*y^6)\n", "diagonal_asy(F, as_symbolic=True, use_msolve=True)" ] diff --git a/sage_acsv/asymptotics.py b/sage_acsv/asymptotics.py index ec2cbc6..ce9a518 100644 --- a/sage_acsv/asymptotics.py +++ b/sage_acsv/asymptotics.py @@ -2,7 +2,7 @@ of multivariate rational functions. """ -from sage.all import AA, PolynomialRing, QQ, QQbar, SR, gcd, prod, pi +from sage.all import AA, PolynomialRing, QQ, QQbar, SR, RIF, gcd, prod, pi from sage_acsv.kronecker import _kronecker_representation, _msolve_kronecker_representation from sage_acsv.helpers import ACSVException, RationalFunctionReduce, DetHessianWithLog, OutputFormat @@ -316,12 +316,26 @@ def MinimalCriticalCombinatorial(G, H, variables, r=None, linear_form=None, use_ # Solutions to Pt are solutions to the system where t is not 1 one_minus_t = gcd(Pd - Qt, P) Pt, _ = P.quo_rem(one_minus_t) + + """ rts_t_zo = list( filter( lambda k: (Qt/Pd).subs(u_=k) > 0 and (Qt/Pd).subs(u_=k) < 1, Pt.roots(AA, multiplicities=False) ) ) + """ + + rts_t_zo = list() + for k in Pt.roots(AA, multiplicities=False): + num = Qt.subs(u_=k) + denom = Pd.subs(u_=k) + RIF(num) + RIF(denom) + vt = num/denom + if vt > 0 and vt < 1: + rts_t_zo.append(k) + non_min = [[(q/Pd).subs(u_=u) for q in Qs[0:-2]] for u in rts_t_zo] # Filter the real roots for minimal points with positive coords @@ -352,6 +366,7 @@ def MinimalCriticalCombinatorial(G, H, variables, r=None, linear_form=None, use_ if len(pos_minimals) == 0: raise ACSVException("No smooth minimal critical points found.") elif len(pos_minimals) > 1: + print(pos_minimals) raise ACSVException( "More than one minimal point with positive real coordinates found." ) From a3ef485c5699e90779295991974b20772c111a4c Mon Sep 17 00:00:00 2001 From: Andrew Luo Date: Wed, 31 Jan 2024 14:45:39 -0500 Subject: [PATCH 05/17] Use precision checks on reduced system --- examples/Sage-ACSV-Tests.ipynb | 122 ++++++++++----------------------- sage_acsv/asymptotics.py | 23 ++++--- sage_acsv/helpers.py | 74 +++++++++++++++++++- 3 files changed, 123 insertions(+), 96 deletions(-) diff --git a/examples/Sage-ACSV-Tests.ipynb b/examples/Sage-ACSV-Tests.ipynb index c7e2b71..9e4610d 100644 --- a/examples/Sage-ACSV-Tests.ipynb +++ b/examples/Sage-ACSV-Tests.ipynb @@ -57,14 +57,6 @@ "execution_count": 4, "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[]\n", - "[]\n" - ] - }, { "data": { "text/plain": [ @@ -87,14 +79,6 @@ "execution_count": 5, "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[]\n", - "[]\n" - ] - }, { "data": { "text/plain": [ @@ -117,14 +101,6 @@ "execution_count": 6, "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[]\n", - "[]\n" - ] - }, { "data": { "text/plain": [ @@ -147,14 +123,6 @@ "execution_count": 7, "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[]\n", - "[]\n" - ] - }, { "data": { "text/plain": [ @@ -177,14 +145,6 @@ "execution_count": 8, "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[]\n", - "[]\n" - ] - }, { "data": { "text/html": [ @@ -209,7 +169,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -219,7 +179,7 @@ " [[0.548232473567013?, 0.3099773361396642?]])" ] }, - "execution_count": 4, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -232,9 +192,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(0.09677555757474702?*5.884442204019508?^n/(sqrt(pi)*sqrt(n)),\n", + " [[0.548232473567013?, 0.3099773361396642?]])" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Example with two critical points with positive coords, neither of which is obviously non-minimal\n", "F4 = -1/(1-(1-x-y)*(20-x-40*y))\n", @@ -243,9 +215,17 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "No result was computed: No smooth minimal critical points found.\n" + ] + } + ], "source": [ "# Example with no critical points in (1,1)-direction\n", "F5 = 1/(x^4*y + x^3*y + x^2*y + x*y - 1)\n", @@ -431,43 +411,18 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 20, "metadata": {}, "outputs": [ { - "ename": "KeyboardInterrupt", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/qqbar.py:4564\u001b[0m, in \u001b[0;36mAlgebraicNumber_base.minpoly\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 4563\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 4564\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_minimal_polynomial\u001b[49m\n\u001b[1;32m 4565\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mAttributeError\u001b[39;00m:\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/structure/element.pyx:489\u001b[0m, in \u001b[0;36msage.structure.element.Element.__getattr__ (build/cythonized/sage/structure/element.c:11576)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 488\u001b[0m \"\"\"\n\u001b[0;32m--> 489\u001b[0m return self.getattr_from_category(name)\n\u001b[1;32m 490\u001b[0m \n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/structure/element.pyx:502\u001b[0m, in \u001b[0;36msage.structure.element.Element.getattr_from_category (build/cythonized/sage/structure/element.c:11686)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 501\u001b[0m cls = P._abstract_element_class\n\u001b[0;32m--> 502\u001b[0m return getattr_from_other_class(self, cls, name)\n\u001b[1;32m 503\u001b[0m \n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/cpython/getattr.pyx:362\u001b[0m, in \u001b[0;36msage.cpython.getattr.getattr_from_other_class (build/cythonized/sage/cpython/getattr.c:4424)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 361\u001b[0m dummy_error_message.name = name\n\u001b[0;32m--> 362\u001b[0m raise AttributeError(dummy_error_message)\n\u001b[1;32m 363\u001b[0m attribute = attr\n", - "\u001b[0;31mAttributeError\u001b[0m: 'MatrixSpace_with_category' object has no attribute 'product_by_coercion'", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/qqbar.py:7890\u001b[0m, in \u001b[0;36mANExtensionElement.minpoly\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 7889\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 7890\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_minpoly\u001b[49m\n\u001b[1;32m 7891\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mAttributeError\u001b[39;00m:\n", - "\u001b[0;31mAttributeError\u001b[0m: 'ANExtensionElement' object has no attribute '_minpoly'", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn [5], line 5\u001b[0m\n\u001b[1;32m 3\u001b[0m var(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mx,y,w,z,n\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 4\u001b[0m F \u001b[38;5;241m=\u001b[39m (Integer(\u001b[38;5;241m1\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m6\u001b[39m)\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m2\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m2\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m))\u001b[38;5;241m/\u001b[39m(Integer(\u001b[38;5;241m1\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m-\u001b[39my\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m2\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m-\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m3\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m6\u001b[39m)\u001b[38;5;241m+\u001b[39mx\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m4\u001b[39m)\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mInteger(\u001b[38;5;241m6\u001b[39m))\n\u001b[0;32m----> 5\u001b[0m \u001b[43mdiagonal_asy\u001b[49m\u001b[43m(\u001b[49m\u001b[43mF\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mas_symbolic\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43muse_msolve\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/.sage/local/lib/python3.11/site-packages/sage_acsv/asymptotics.py:161\u001b[0m, in \u001b[0;36mdiagonal_asy\u001b[0;34m(F, r, linear_form, return_points, output_format, as_symbolic, use_msolve)\u001b[0m\n\u001b[1;32m 158\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m _ \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(MAX_MIN_CRIT_RETRIES):\n\u001b[1;32m 159\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 160\u001b[0m \u001b[38;5;66;03m# Find minimal critical points in Kronecker Representation\u001b[39;00m\n\u001b[0;32m--> 161\u001b[0m min_crit_pts \u001b[38;5;241m=\u001b[39m \u001b[43mMinimalCriticalCombinatorial\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 162\u001b[0m \u001b[43m \u001b[49m\u001b[43mG\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mH\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mall_variables\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 163\u001b[0m \u001b[43m \u001b[49m\u001b[43mr\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mr\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 164\u001b[0m \u001b[43m \u001b[49m\u001b[43mlinear_form\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlinear_form\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 165\u001b[0m \u001b[43m \u001b[49m\u001b[43muse_msolve\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43muse_msolve\u001b[49m\n\u001b[1;32m 166\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 167\u001b[0m \u001b[38;5;28;01mbreak\u001b[39;00m\n\u001b[1;32m 168\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n", - "File \u001b[0;32m~/.sage/local/lib/python3.11/site-packages/sage_acsv/asymptotics.py:349\u001b[0m, in \u001b[0;36mMinimalCriticalCombinatorial\u001b[0;34m(G, H, variables, r, linear_form, use_msolve)\u001b[0m\n\u001b[1;32m 347\u001b[0m \u001b[38;5;28;01mcontinue\u001b[39;00m\n\u001b[1;32m 348\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m pt \u001b[38;5;129;01min\u001b[39;00m non_min:\n\u001b[0;32m--> 349\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mall\u001b[39m(\u001b[43m[\u001b[49m\u001b[43ma\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m==\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mb\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mb\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mzip\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mv\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpt\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m):\n\u001b[1;32m 350\u001b[0m is_min \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[1;32m 351\u001b[0m \u001b[38;5;28;01mbreak\u001b[39;00m\n", - "File \u001b[0;32m~/.sage/local/lib/python3.11/site-packages/sage_acsv/asymptotics.py:349\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 347\u001b[0m \u001b[38;5;28;01mcontinue\u001b[39;00m\n\u001b[1;32m 348\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m pt \u001b[38;5;129;01min\u001b[39;00m non_min:\n\u001b[0;32m--> 349\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mall\u001b[39m([\u001b[43ma\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m==\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mb\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m (a, b) \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(v, pt)]):\n\u001b[1;32m 350\u001b[0m is_min \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[1;32m 351\u001b[0m \u001b[38;5;28;01mbreak\u001b[39;00m\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/structure/element.pyx:1105\u001b[0m, in \u001b[0;36msage.structure.element.Element.__richcmp__ (build/cythonized/sage/structure/element.c:18097)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1103\u001b[0m # an instance of Element. The explicit casts below make\n\u001b[1;32m 1104\u001b[0m # Cython generate optimized code for this call.\n\u001b[0;32m-> 1105\u001b[0m return (self)._richcmp_(other, op)\n\u001b[1;32m 1106\u001b[0m else:\n\u001b[1;32m 1107\u001b[0m return coercion_model.richcmp(self, other, op)\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/structure/element.pyx:1109\u001b[0m, in \u001b[0;36msage.structure.element.Element._richcmp_ (build/cythonized/sage/structure/element.c:18211)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1107\u001b[0m return coercion_model.richcmp(self, other, op)\n\u001b[1;32m 1108\u001b[0m \n\u001b[0;32m-> 1109\u001b[0m cpdef _richcmp_(left, right, int op) noexcept:\n\u001b[1;32m 1110\u001b[0m r\"\"\"\n\u001b[1;32m 1111\u001b[0m Basic default implementation of rich comparisons for elements with\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/qqbar.py:5572\u001b[0m, in \u001b[0;36mAlgebraicReal._richcmp_\u001b[0;34m(self, other, op)\u001b[0m\n\u001b[1;32m 5566\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_value\u001b[38;5;241m.\u001b[39moverlaps(other\u001b[38;5;241m.\u001b[39m_value):\n\u001b[1;32m 5567\u001b[0m \u001b[38;5;66;03m# NOTE: do not call richcmp here as self._value and other._value\u001b[39;00m\n\u001b[1;32m 5568\u001b[0m \u001b[38;5;66;03m# might have different precisions. See\u001b[39;00m\n\u001b[1;32m 5569\u001b[0m \u001b[38;5;66;03m# https://github.com/sagemath/sage/issues/29220\u001b[39;00m\n\u001b[1;32m 5570\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_value\u001b[38;5;241m.\u001b[39m_richcmp_(other\u001b[38;5;241m.\u001b[39m_value, op)\n\u001b[0;32m-> 5572\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m rich_to_bool(op, \u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mother\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msign\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m)\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/qqbar.py:5940\u001b[0m, in \u001b[0;36mAlgebraicReal.sign\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 5937\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;241m0\u001b[39m\n\u001b[1;32m 5938\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ret\u001b[38;5;241m.\u001b[39msign()\n\u001b[0;32m-> 5940\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m sd\u001b[38;5;241m.\u001b[39m_left\u001b[38;5;241m.\u001b[39mminpoly() \u001b[38;5;241m==\u001b[39m \u001b[43msd\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_right\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mminpoly\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m:\n\u001b[1;32m 5941\u001b[0m \u001b[38;5;66;03m# Negating the element does not change the minpoly\u001b[39;00m\n\u001b[1;32m 5942\u001b[0m right \u001b[38;5;241m=\u001b[39m sd\u001b[38;5;241m.\u001b[39m_right \u001b[38;5;28;01mif\u001b[39;00m sd\u001b[38;5;241m.\u001b[39m_op \u001b[38;5;129;01mis\u001b[39;00m operator\u001b[38;5;241m.\u001b[39msub \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;241m-\u001b[39msd\u001b[38;5;241m.\u001b[39m_right\n\u001b[1;32m 5943\u001b[0m c \u001b[38;5;241m=\u001b[39m cmp_elements_with_same_minpoly(sd\u001b[38;5;241m.\u001b[39m_left, right, sd\u001b[38;5;241m.\u001b[39m_left\u001b[38;5;241m.\u001b[39mminpoly())\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/qqbar.py:4567\u001b[0m, in \u001b[0;36mAlgebraicNumber_base.minpoly\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 4565\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mAttributeError\u001b[39;00m:\n\u001b[1;32m 4566\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mexactify()\n\u001b[0;32m-> 4567\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_minimal_polynomial \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_descr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mminpoly\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 4568\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_minimal_polynomial\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/qqbar.py:7892\u001b[0m, in \u001b[0;36mANExtensionElement.minpoly\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 7890\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_minpoly\n\u001b[1;32m 7891\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mAttributeError\u001b[39;00m:\n\u001b[0;32m-> 7892\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_minpoly \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_value\u001b[38;5;241m.\u001b[39mminpoly()\n\u001b[1;32m 7893\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_minpoly\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/number_field/number_field_element.pyx:4842\u001b[0m, in \u001b[0;36msage.rings.number_field.number_field_element.NumberFieldElement_absolute.minpoly (build/cythonized/sage/rings/number_field/number_field_element.cpp:52168)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 4840\u001b[0m True\n\u001b[1;32m 4841\u001b[0m \"\"\"\n\u001b[0;32m-> 4842\u001b[0m return self.charpoly(var, algorithm).radical() # square free part of charpoly\n\u001b[1;32m 4843\u001b[0m \n\u001b[1;32m 4844\u001b[0m def list(self):\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/number_field/number_field_element.pyx:4810\u001b[0m, in \u001b[0;36msage.rings.number_field.number_field_element.NumberFieldElement_absolute.charpoly (build/cythonized/sage/rings/number_field/number_field_element.cpp:51938)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 4808\u001b[0m return R(self.__pari__('x').charpoly())\n\u001b[1;32m 4809\u001b[0m if algorithm == 'sage':\n\u001b[0;32m-> 4810\u001b[0m return R(self.matrix().charpoly())\n\u001b[1;32m 4811\u001b[0m \n\u001b[1;32m 4812\u001b[0m def minpoly(self, var='x', algorithm=None):\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/matrix/matrix_rational_dense.pyx:1042\u001b[0m, in \u001b[0;36msage.matrix.matrix_rational_dense.Matrix_rational_dense.charpoly (build/cythonized/sage/matrix/matrix_rational_dense.cpp:19579)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1040\u001b[0m if algorithm == 'flint' or algorithm == 'linbox':\n\u001b[1;32m 1041\u001b[0m A, denom = self._clear_denom()\n\u001b[0;32m-> 1042\u001b[0m f = A.charpoly(var, algorithm=algorithm)\n\u001b[1;32m 1043\u001b[0m x = f.parent().gen()\n\u001b[1;32m 1044\u001b[0m g = f(x * denom) / denom ** f.degree()\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/matrix/matrix_integer_dense.pyx:1377\u001b[0m, in \u001b[0;36msage.matrix.matrix_integer_dense.Matrix_integer_dense.charpoly (build/cythonized/sage/matrix/matrix_integer_dense.cpp:24372)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1375\u001b[0m elif algorithm == 'linbox':\n\u001b[1;32m 1376\u001b[0m g = ( PolynomialRing(ZZ, names=var).gen())._new()\n\u001b[0;32m-> 1377\u001b[0m sig_on()\n\u001b[1;32m 1378\u001b[0m linbox_fmpz_mat_charpoly(g._poly, self._matrix)\n\u001b[1;32m 1379\u001b[0m sig_off()\n", - "\u001b[0;31mKeyboardInterrupt\u001b[0m: " - ] + "data": { + "text/plain": [ + "1.068693934883829?*3.910193204291776?^n/(sqrt(pi)*sqrt(n))" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -478,13 +433,6 @@ "diagonal_asy(F, as_symbolic=True, use_msolve=True)" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "code", "execution_count": null, diff --git a/sage_acsv/asymptotics.py b/sage_acsv/asymptotics.py index ce9a518..81dbeed 100644 --- a/sage_acsv/asymptotics.py +++ b/sage_acsv/asymptotics.py @@ -2,10 +2,10 @@ of multivariate rational functions. """ -from sage.all import AA, PolynomialRing, QQ, QQbar, SR, RIF, gcd, prod, pi +from sage.all import AA, PolynomialRing, QQ, QQbar, SR, RIF, gcd, prod, pi, xgcd from sage_acsv.kronecker import _kronecker_representation, _msolve_kronecker_representation -from sage_acsv.helpers import ACSVException, RationalFunctionReduce, DetHessianWithLog, OutputFormat +from sage_acsv.helpers import ACSVException, IntervalOperator, RationalFunctionReduce, DetHessianWithLog, OutputFormat from sage_acsv.debug import Timer, acsv_logger @@ -328,16 +328,23 @@ def MinimalCriticalCombinatorial(G, H, variables, r=None, linear_form=None, use_ rts_t_zo = list() for k in Pt.roots(AA, multiplicities=False): - num = Qt.subs(u_=k) - denom = Pd.subs(u_=k) - RIF(num) - RIF(denom) + num = Qt.subs(u_=k); RIF(num) + denom = Pd.subs(u_=k); RIF(denom) vt = num/denom if vt > 0 and vt < 1: rts_t_zo.append(k) non_min = [[(q/Pd).subs(u_=u) for q in Qs[0:-2]] for u in rts_t_zo] + # Change the equations to only deal with t=1 solutions + newP = one_minus_t + newPd = one_minus_t.derivative() + _, invPd, _ = xgcd(Pd, newP) + Qs = [(Q*newPd*invPd).quo_rem(newP)[1] for Q in Qs] + P = newP + Pd = newPd + iv = IntervalOperator(P, Qs, u_) + # Filter the real roots for minimal points with positive coords pos_minimals = [] for u in one_minus_t.roots(AA, multiplicities=False): @@ -346,7 +353,7 @@ def MinimalCriticalCombinatorial(G, H, variables, r=None, linear_form=None, use_ if any([k <= 0 for k in v]): continue for pt in non_min: - if all([a == b for (a, b) in zip(v, pt)]): + if all([iv.equals(a, b) for (a, b) in zip(v, pt)]): is_min = False break if is_min: @@ -377,7 +384,7 @@ def MinimalCriticalCombinatorial(G, H, variables, r=None, linear_form=None, use_ for u in one_minus_t.roots(QQbar, multiplicities=False): v = [(q/Pd).subs(u_=u) for q in Qs[0:-2]] - if all([a.abs() == b.abs() for (a, b) in zip(minCP, v)]): + if all([iv.modulus_equals(a,b) for (a, b) in zip(minCP, v)]): minimals.append(u) # Get minimal point coords, and make exact if possible diff --git a/sage_acsv/helpers.py b/sage_acsv/helpers.py index 9df9fb9..45e88a2 100644 --- a/sage_acsv/helpers.py +++ b/sage_acsv/helpers.py @@ -1,6 +1,8 @@ from enum import Enum -from sage.all import QQ, ceil, gcd, matrix, randint + +from sage.all import QQ, RIF, CIF, PolynomialRing, RealIntervalField, ComplexIntervalField +from sage.all import ceil, gcd, matrix, randint, sqrt, log, factorial class OutputFormat(Enum): @@ -112,6 +114,76 @@ def DetHessianWithLog(H, vs, r): # Return determinant return matrix(Hess).determinant() +class IntervalOperator(): + def __init__(self, P, Qs, u_): + self.P = P + self.Qs = Qs + deg = P.degree() + degQMax = max([Q.degree() for Q in Qs]) + norm = self._getNorm(self.P) + precision = ((deg+2)/2)*log(deg) + log(norm)*(deg-1) + + Pd = P.derivative(u_) + precisionByQ = [] + precisionModByQ = [] + for Q in Qs: + # Precision for Q depends on degree and height of annihilating polynomial + # In this case, the annihilating polynomial has the same degree as P + PdQDegree = max(Pd.degree(), Q.degree()) + PdQHeight = max(self._getHeight(Pd), self._getHeight(Q)) + h = PdQDegree + PdQHeight * deg + self._safeLog(factorial(deg + PdQDegree)) + PdQDegree + deg + precisionByQ.append(((deg+2)/2) * self._safeLog(deg) + (deg-1) * (h * self._safeLog(sqrt(deg))) + 5) + + # Bound the degree and height of the minimal polynomial of each coordinate + # Recall that Res(P, Pd*x-Q) is an annhilating polynomial + degMax = deg + heightMax = self._getHeight(P) * degQMax + self._getHeight(Q) * deg + \ + log(factorial(deg + degQMax)) + log(2) * deg + + # Determine precision needed for + mod_bound = (degMax**2-1)*log(degMax+1) + (2 * heightMax + log(degMax+1))*(degMax-1) + \ + 2 * heightMax * degMax + 2 * degMax * log(degMax) + degMax * log(sqrt(degMax**2+1)) + precisionModByQ.append(mod_bound) + + # Number of binary digits needed in approximation of Q_j/P' + self.coord_separation = max(precisionByQ+[precision]) + self.coord_separation = self._safeInt(self.coord_separation) + 1 + + # Number of binary digits needed in approximation of Q_j/P' + self.modulus_separation = max(precisionModByQ) + self.modulus_separation = self._safeInt(self.modulus_separation) + 1 + + def equals(self, x, y, separation = None, real=False): + separation = separation or self.coord_separation + Field = RIF if real else CIF + prec = Field.precision() + Field(x), Field(y) + while prec < separation: + if not (Field(x)-Field(y)).contains_zero(): + return False + prec = min(prec * 2, separation) + Field = RealIntervalField(prec) if real else ComplexIntervalField(prec) + Field(x), Field(y) + return True + + def modulus_equals(self, x, y): + return self.equals(x.abs(),y.abs(),separation=self.modulus_separation, real=True) + + def _getNorm(self, F): + return sqrt(sum([abs(x**2) for x in F.coefficients()])) + + def _getHeight(self, F): + return self._safeLog(max([abs(x) for x in F.coefficients()])) + + def _safeLog(self, x, base=2): + return log(max(x, 1), base) + + def _safeInt(self, x): + try: + return int(x) + except: + if type(x) == type(RIF(0)): + return int(x.center()) class ACSVException(Exception): def __init__(self, message, retry=False): From a2ffaba5e684c4237998520f12f83adbdd7be5ef Mon Sep 17 00:00:00 2001 From: Andrew Luo Date: Wed, 7 Feb 2024 13:28:28 -0500 Subject: [PATCH 06/17] Some code cleanup --- sage_acsv/asymptotics.py | 15 +++++---------- sage_acsv/helpers.py | 33 ++++++++++++++++----------------- 2 files changed, 21 insertions(+), 27 deletions(-) diff --git a/sage_acsv/asymptotics.py b/sage_acsv/asymptotics.py index 81dbeed..023a178 100644 --- a/sage_acsv/asymptotics.py +++ b/sage_acsv/asymptotics.py @@ -316,20 +316,15 @@ def MinimalCriticalCombinatorial(G, H, variables, r=None, linear_form=None, use_ # Solutions to Pt are solutions to the system where t is not 1 one_minus_t = gcd(Pd - Qt, P) Pt, _ = P.quo_rem(one_minus_t) - - """ - rts_t_zo = list( - filter( - lambda k: (Qt/Pd).subs(u_=k) > 0 and (Qt/Pd).subs(u_=k) < 1, - Pt.roots(AA, multiplicities=False) - ) - ) - """ + Ptd = Pt.derivative() + _, invPtd, _ = xgcd(Pd, Pt) + Qts = [(Q*Ptd*invPtd).quo_rem(Pt)[1] for Q in Qs] + Qt = Qts[-2] rts_t_zo = list() for k in Pt.roots(AA, multiplicities=False): num = Qt.subs(u_=k); RIF(num) - denom = Pd.subs(u_=k); RIF(denom) + denom = Ptd.subs(u_=k); RIF(denom) vt = num/denom if vt > 0 and vt < 1: rts_t_zo.append(k) diff --git a/sage_acsv/helpers.py b/sage_acsv/helpers.py index 45e88a2..c5cc580 100644 --- a/sage_acsv/helpers.py +++ b/sage_acsv/helpers.py @@ -119,37 +119,36 @@ def __init__(self, P, Qs, u_): self.P = P self.Qs = Qs deg = P.degree() - degQMax = max([Q.degree() for Q in Qs]) - norm = self._getNorm(self.P) - precision = ((deg+2)/2)*log(deg) + log(norm)*(deg-1) Pd = P.derivative(u_) precisionByQ = [] precisionModByQ = [] for Q in Qs: # Precision for Q depends on degree and height of annihilating polynomial - # In this case, the annihilating polynomial has the same degree as P + # Recall that Res(P, Pd*x-Q) is an annhilating polynomial PdQDegree = max(Pd.degree(), Q.degree()) PdQHeight = max(self._getHeight(Pd), self._getHeight(Q)) - h = PdQDegree + PdQHeight * deg + self._safeLog(factorial(deg + PdQDegree)) + PdQDegree + deg - precisionByQ.append(((deg+2)/2) * self._safeLog(deg) + (deg-1) * (h * self._safeLog(sqrt(deg))) + 5) - # Bound the degree and height of the minimal polynomial of each coordinate - # Recall that Res(P, Pd*x-Q) is an annhilating polynomial - degMax = deg - heightMax = self._getHeight(P) * degQMax + self._getHeight(Q) * deg + \ - log(factorial(deg + degQMax)) + log(2) * deg + degMax = PdQDegree + heightMax = 2 * PdQHeight * PdQDegree + \ + 2 * PdQDegree * self._safeLog(PdQDegree) + + # Determine precision needed for coordinate separation + precisionByQ.append(((degMax+2)/2) * self._safeLog(degMax) + \ + (degMax-1) * (heightMax * self._safeLog(sqrt(degMax+1)))) - # Determine precision needed for - mod_bound = (degMax**2-1)*log(degMax+1) + (2 * heightMax + log(degMax+1))*(degMax-1) + \ - 2 * heightMax * degMax + 2 * degMax * log(degMax) + degMax * log(sqrt(degMax**2+1)) + # Determine precision needed for modulus separation + mod_bound = (degMax**2-1)*self._safeLog(degMax+1) + \ + (2 * heightMax + self._safeLog(degMax+1))*(degMax-1) + \ + 2 * heightMax * degMax + 2 * degMax * self._safeLog(degMax) + \ + degMax * self._safeLog(sqrt(degMax**2+1)) precisionModByQ.append(mod_bound) - # Number of binary digits needed in approximation of Q_j/P' - self.coord_separation = max(precisionByQ+[precision]) + # Number of binary digits needed in approximation of Q_j/P' to separate all coordinates + self.coord_separation = max(precisionByQ) self.coord_separation = self._safeInt(self.coord_separation) + 1 - # Number of binary digits needed in approximation of Q_j/P' + # Number of binary digits needed in approximation of Q_j/P' to separate all moduli self.modulus_separation = max(precisionModByQ) self.modulus_separation = self._safeInt(self.modulus_separation) + 1 From fa207f06ceccbe147f39c6e40ef467e262ee6338 Mon Sep 17 00:00:00 2001 From: Andrew Luo Date: Wed, 7 Feb 2024 14:47:17 -0500 Subject: [PATCH 07/17] Fix incorrect bound --- sage_acsv/helpers.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sage_acsv/helpers.py b/sage_acsv/helpers.py index c5cc580..a098cca 100644 --- a/sage_acsv/helpers.py +++ b/sage_acsv/helpers.py @@ -126,13 +126,13 @@ def __init__(self, P, Qs, u_): for Q in Qs: # Precision for Q depends on degree and height of annihilating polynomial # Recall that Res(P, Pd*x-Q) is an annhilating polynomial - PdQDegree = max(Pd.degree(), Q.degree()) + PQDegree = max(P.degree(), Q.degree()) PdQHeight = max(self._getHeight(Pd), self._getHeight(Q)) - degMax = PdQDegree - heightMax = 2 * PdQHeight * PdQDegree + \ - 2 * PdQDegree * self._safeLog(PdQDegree) - + degMax = PQDegree + heightMax = PQDegree * (PdQHeight + self._getHeight(P)) + \ + 2 * PQDegree * self._safeLog(PQDegree) + # Determine precision needed for coordinate separation precisionByQ.append(((degMax+2)/2) * self._safeLog(degMax) + \ (degMax-1) * (heightMax * self._safeLog(sqrt(degMax+1)))) From cb735f24a96f2f6f5e25c5d0d1764bfc1ef68c22 Mon Sep 17 00:00:00 2001 From: Andrew Luo Date: Wed, 7 Feb 2024 14:58:27 -0500 Subject: [PATCH 08/17] Compute non minimal points with reduced system --- sage_acsv/asymptotics.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sage_acsv/asymptotics.py b/sage_acsv/asymptotics.py index 023a178..c3e201a 100644 --- a/sage_acsv/asymptotics.py +++ b/sage_acsv/asymptotics.py @@ -329,7 +329,7 @@ def MinimalCriticalCombinatorial(G, H, variables, r=None, linear_form=None, use_ if vt > 0 and vt < 1: rts_t_zo.append(k) - non_min = [[(q/Pd).subs(u_=u) for q in Qs[0:-2]] for u in rts_t_zo] + non_min = [[(q/Ptd).subs(u_=u) for q in Qts[0:-2]] for u in rts_t_zo] # Change the equations to only deal with t=1 solutions newP = one_minus_t From 7cc4487504885b72635df38e170028e7a601c4a7 Mon Sep 17 00:00:00 2001 From: Andrew Luo Date: Tue, 13 Feb 2024 11:49:55 -0500 Subject: [PATCH 09/17] Use inequality filter for non-min points --- sage_acsv/asymptotics.py | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/sage_acsv/asymptotics.py b/sage_acsv/asymptotics.py index c3e201a..5a6dc25 100644 --- a/sage_acsv/asymptotics.py +++ b/sage_acsv/asymptotics.py @@ -338,9 +338,36 @@ def MinimalCriticalCombinatorial(G, H, variables, r=None, linear_form=None, use_ Qs = [(Q*newPd*invPd).quo_rem(newP)[1] for Q in Qs] P = newP Pd = newPd - iv = IntervalOperator(P, Qs, u_) + #iv = IntervalOperator(P, Qs, u_) + + pos_minimals = list( + filter( + lambda v: not any([k <= 0 for k in v[:-2]]), + list([(q/Pd).subs(u_=u) for q in Qs] for u in one_minus_t.roots(AA, multiplicities=False)) + ) + ) + + PrecisionField = RIF + prec = PrecisionField.precision() + non_min_idx = set() + for pt in non_min: + idx = range(len(pos_minimals)) + # Each non minimal pt should correspond to one pos real point where t =1 + while len(idx) > 1: + idx = filter( + lambda i: all( + [(PrecisionField(v) - PrecisionField(w)).contains_zero() for (v, w) in zip(pos_minimals[i], pt)] + ), + idx + ) + prec *= 2 + PrecisionField = RealIntervalField(prec) + non_min_idx.add(idx[0]) + + pos_minimals = [pos_minimals[i] for i in range(len(pos_minimals)) if i not in non_min_idx] # Filter the real roots for minimal points with positive coords + """ pos_minimals = [] for u in one_minus_t.roots(AA, multiplicities=False): is_min = True @@ -353,10 +380,12 @@ def MinimalCriticalCombinatorial(G, H, variables, r=None, linear_form=None, use_ break if is_min: pos_minimals.append(u) + """ + # Remove non-smooth points and points with zero coordinates (where lambda=0) for i in range(len(pos_minimals)): - x = (Qs[-1]/Pd).subs(u_=pos_minimals[i]) + x = pos_minimals[i][-1] if x == 0: acsv_logger.warning( f"Removing critical point {pos_minimals[i]} because it either " @@ -374,12 +403,12 @@ def MinimalCriticalCombinatorial(G, H, variables, r=None, linear_form=None, use_ ) # Find all minimal critical points - minCP = [(q/Pd).subs(u_=pos_minimals[0]) for q in Qs[0:-2]] + minCP = pos_minimals[0][:-2] minimals = [] for u in one_minus_t.roots(QQbar, multiplicities=False): v = [(q/Pd).subs(u_=u) for q in Qs[0:-2]] - if all([iv.modulus_equals(a,b) for (a, b) in zip(minCP, v)]): + if all([a.abs() == b.abs() for (a, b) in zip(minCP, v)]): minimals.append(u) # Get minimal point coords, and make exact if possible From f8c1b8e558b2686d1677013436974b5ea1de6df0 Mon Sep 17 00:00:00 2001 From: Andrew Luo Date: Tue, 13 Feb 2024 11:49:55 -0500 Subject: [PATCH 10/17] Use inequality filter for non-min points --- sage_acsv/asymptotics.py | 59 ++++++++++++++++++++++----------- sage_acsv/helpers.py | 70 ---------------------------------------- 2 files changed, 41 insertions(+), 88 deletions(-) diff --git a/sage_acsv/asymptotics.py b/sage_acsv/asymptotics.py index c3e201a..e01370d 100644 --- a/sage_acsv/asymptotics.py +++ b/sage_acsv/asymptotics.py @@ -2,10 +2,10 @@ of multivariate rational functions. """ -from sage.all import AA, PolynomialRing, QQ, QQbar, SR, RIF, gcd, prod, pi, xgcd +from sage.all import AA, PolynomialRing, QQ, QQbar, SR, RIF, RealIntervalField, gcd, prod, pi, xgcd from sage_acsv.kronecker import _kronecker_representation, _msolve_kronecker_representation -from sage_acsv.helpers import ACSVException, IntervalOperator, RationalFunctionReduce, DetHessianWithLog, OutputFormat +from sage_acsv.helpers import ACSVException, RationalFunctionReduce, DetHessianWithLog, OutputFormat from sage_acsv.debug import Timer, acsv_logger @@ -338,25 +338,48 @@ def MinimalCriticalCombinatorial(G, H, variables, r=None, linear_form=None, use_ Qs = [(Q*newPd*invPd).quo_rem(newP)[1] for Q in Qs] P = newP Pd = newPd - iv = IntervalOperator(P, Qs, u_) + #iv = IntervalOperator(P, Qs, u_) + + pos_minimals = list( + filter( + lambda v: all([k > 0 for k in v[:-2]]), + list([(q/Pd).subs(u_=u) for q in Qs] for u in one_minus_t.roots(AA, multiplicities=False)) + ) + ) # Filter the real roots for minimal points with positive coords - pos_minimals = [] - for u in one_minus_t.roots(AA, multiplicities=False): - is_min = True - v = [(q/Pd).subs(u_=u) for q in Qs[0:-2]] - if any([k <= 0 for k in v]): - continue - for pt in non_min: - if all([iv.equals(a, b) for (a, b) in zip(v, pt)]): - is_min = False - break - if is_min: - pos_minimals.append(u) + prec_bound = 3 * P.degree()**3 * max([max([abs(x) for x in F.coefficients()]) for F in [P, Pd] + Qs]) + PrecisionField = RIF + prec = PrecisionField.precision() + non_min_idx = set() + for pt in non_min: + idx = range(len(pos_minimals)) + while len(idx) > 1: + if (prec > prec_bound): + raise ACSVException( + "Non-minimal point associated with multiple minimal candidates. This should never happen. " + \ + "If you are seeing this error, something has gone horribly wrong." + ) + + idx = list( + filter( + lambda i: all( + [(PrecisionField(v) - PrecisionField(w)).contains_zero() for (v, w) in zip(pos_minimals[i], pt)] + ), + idx + ) + ) + prec *= 2 + PrecisionField = RealIntervalField(prec) + + if len(idx) > 0: + non_min_idx.add(idx[0]) + + pos_minimals = [pos_minimals[i] for i in range(len(pos_minimals)) if i not in non_min_idx] # Remove non-smooth points and points with zero coordinates (where lambda=0) for i in range(len(pos_minimals)): - x = (Qs[-1]/Pd).subs(u_=pos_minimals[i]) + x = pos_minimals[i][-1] if x == 0: acsv_logger.warning( f"Removing critical point {pos_minimals[i]} because it either " @@ -374,12 +397,12 @@ def MinimalCriticalCombinatorial(G, H, variables, r=None, linear_form=None, use_ ) # Find all minimal critical points - minCP = [(q/Pd).subs(u_=pos_minimals[0]) for q in Qs[0:-2]] + minCP = pos_minimals[0][:-2] minimals = [] for u in one_minus_t.roots(QQbar, multiplicities=False): v = [(q/Pd).subs(u_=u) for q in Qs[0:-2]] - if all([iv.modulus_equals(a,b) for (a, b) in zip(minCP, v)]): + if all([a.abs() == b.abs() for (a, b) in zip(minCP, v)]): minimals.append(u) # Get minimal point coords, and make exact if possible diff --git a/sage_acsv/helpers.py b/sage_acsv/helpers.py index a098cca..400b9b6 100644 --- a/sage_acsv/helpers.py +++ b/sage_acsv/helpers.py @@ -114,76 +114,6 @@ def DetHessianWithLog(H, vs, r): # Return determinant return matrix(Hess).determinant() -class IntervalOperator(): - def __init__(self, P, Qs, u_): - self.P = P - self.Qs = Qs - deg = P.degree() - - Pd = P.derivative(u_) - precisionByQ = [] - precisionModByQ = [] - for Q in Qs: - # Precision for Q depends on degree and height of annihilating polynomial - # Recall that Res(P, Pd*x-Q) is an annhilating polynomial - PQDegree = max(P.degree(), Q.degree()) - PdQHeight = max(self._getHeight(Pd), self._getHeight(Q)) - - degMax = PQDegree - heightMax = PQDegree * (PdQHeight + self._getHeight(P)) + \ - 2 * PQDegree * self._safeLog(PQDegree) - - # Determine precision needed for coordinate separation - precisionByQ.append(((degMax+2)/2) * self._safeLog(degMax) + \ - (degMax-1) * (heightMax * self._safeLog(sqrt(degMax+1)))) - - # Determine precision needed for modulus separation - mod_bound = (degMax**2-1)*self._safeLog(degMax+1) + \ - (2 * heightMax + self._safeLog(degMax+1))*(degMax-1) + \ - 2 * heightMax * degMax + 2 * degMax * self._safeLog(degMax) + \ - degMax * self._safeLog(sqrt(degMax**2+1)) - precisionModByQ.append(mod_bound) - - # Number of binary digits needed in approximation of Q_j/P' to separate all coordinates - self.coord_separation = max(precisionByQ) - self.coord_separation = self._safeInt(self.coord_separation) + 1 - - # Number of binary digits needed in approximation of Q_j/P' to separate all moduli - self.modulus_separation = max(precisionModByQ) - self.modulus_separation = self._safeInt(self.modulus_separation) + 1 - - def equals(self, x, y, separation = None, real=False): - separation = separation or self.coord_separation - Field = RIF if real else CIF - prec = Field.precision() - Field(x), Field(y) - while prec < separation: - if not (Field(x)-Field(y)).contains_zero(): - return False - prec = min(prec * 2, separation) - Field = RealIntervalField(prec) if real else ComplexIntervalField(prec) - Field(x), Field(y) - return True - - def modulus_equals(self, x, y): - return self.equals(x.abs(),y.abs(),separation=self.modulus_separation, real=True) - - def _getNorm(self, F): - return sqrt(sum([abs(x**2) for x in F.coefficients()])) - - def _getHeight(self, F): - return self._safeLog(max([abs(x) for x in F.coefficients()])) - - def _safeLog(self, x, base=2): - return log(max(x, 1), base) - - def _safeInt(self, x): - try: - return int(x) - except: - if type(x) == type(RIF(0)): - return int(x.center()) - class ACSVException(Exception): def __init__(self, message, retry=False): super().__init__(message) From c8ea279e6c9fe1ffafdf739b76f08f9b3448935d Mon Sep 17 00:00:00 2001 From: Andrew Luo Date: Tue, 20 Feb 2024 14:06:48 -0500 Subject: [PATCH 11/17] Use Sturm's Theorem for finding t --- sage_acsv/asymptotics.py | 103 ++++++++++----------------------------- sage_acsv/helpers.py | 23 ++++++++- 2 files changed, 47 insertions(+), 79 deletions(-) diff --git a/sage_acsv/asymptotics.py b/sage_acsv/asymptotics.py index e01370d..a927e8b 100644 --- a/sage_acsv/asymptotics.py +++ b/sage_acsv/asymptotics.py @@ -5,7 +5,7 @@ from sage.all import AA, PolynomialRing, QQ, QQbar, SR, RIF, RealIntervalField, gcd, prod, pi, xgcd from sage_acsv.kronecker import _kronecker_representation, _msolve_kronecker_representation -from sage_acsv.helpers import ACSVException, RationalFunctionReduce, DetHessianWithLog, OutputFormat +from sage_acsv.helpers import ACSVException, RationalFunctionReduce, DetHessianWithLog, OutputFormat, CountRootsInInterval from sage_acsv.debug import Timer, acsv_logger @@ -137,14 +137,14 @@ def diagonal_asy(F, r=None, linear_form=None, return_points=False, output_format # Initialize variables vs = list(H.variables()) - RR, (t, lambda_, u_) = PolynomialRing(QQ, 't, lambda_, u_').objgens() - expanded_R, _ = PolynomialRing(QQ, len(vs)+3, vs + [t, lambda_, u_]).objgens() + RR, (lambda_, u_) = PolynomialRing(QQ, 'lambda_, u_').objgens() + expanded_R, _ = PolynomialRing(QQ, len(vs)+2, vs + [lambda_, u_]).objgens() vs = [expanded_R(v) for v in vs] - t, lambda_, u_ = expanded_R(t), expanded_R(lambda_), expanded_R(u_) - vsT = vs + [t, lambda_] + lambda_, u_ = expanded_R(lambda_), expanded_R(u_) + vsT = vs + [lambda_] - all_variables = (vs, lambda_, t, u_) + all_variables = (vs, lambda_, u_) d = len(vs) rd = r[-1] @@ -179,7 +179,7 @@ def diagonal_asy(F, r=None, linear_form=None, return_points=False, output_format timer = Timer() # Find det(zH_z Hess) where Hess is the Hessian of z_1...z_n * log(g(z_1, ..., z_n)) - Det = DetHessianWithLog(H, vsT[0:-2], r) + Det = DetHessianWithLog(H, vsT[0:-1], r) # Find exponential growth T = prod([vs[i]**r[i] for i in range(d)]) @@ -289,8 +289,8 @@ def MinimalCriticalCombinatorial(G, H, variables, r=None, linear_form=None, use_ timer = Timer() # Fetch the variables we need - vs, lambda_, t, u_ = variables - vsT = vs + [t, lambda_] + vs, lambda_, u_ = variables + vsT = vs + [lambda_] # If direction r is not given, default to the diagonal if r is None: @@ -301,7 +301,7 @@ def MinimalCriticalCombinatorial(G, H, variables, r=None, linear_form=None, use_ system = [ vsH[i]*H.derivative(vsH[i]) - r[i]*lambda_ for i in range(len(vsH)) - ] + [H, H.subs({z: z*t for z in vsH})] + ] + [H] # Compute the Kronecker representation of our system timer.checkpoint() @@ -310,72 +310,19 @@ def MinimalCriticalCombinatorial(G, H, variables, r=None, linear_form=None, use_ _kronecker_representation(system, u_, vsT, lambda_, linear_form) timer.checkpoint("Kronecker") - Qt = Qs[-2] # Qs ordering is H.variables() + [t, lambda_] Pd = P.derivative() + pos_minimals = [] - # Solutions to Pt are solutions to the system where t is not 1 - one_minus_t = gcd(Pd - Qt, P) - Pt, _ = P.quo_rem(one_minus_t) - Ptd = Pt.derivative() - _, invPtd, _ = xgcd(Pd, Pt) - Qts = [(Q*Ptd*invPtd).quo_rem(Pt)[1] for Q in Qs] - Qt = Qts[-2] - - rts_t_zo = list() - for k in Pt.roots(AA, multiplicities=False): - num = Qt.subs(u_=k); RIF(num) - denom = Ptd.subs(u_=k); RIF(denom) - vt = num/denom - if vt > 0 and vt < 1: - rts_t_zo.append(k) - - non_min = [[(q/Ptd).subs(u_=u) for q in Qts[0:-2]] for u in rts_t_zo] - - # Change the equations to only deal with t=1 solutions - newP = one_minus_t - newPd = one_minus_t.derivative() - _, invPd, _ = xgcd(Pd, newP) - Qs = [(Q*newPd*invPd).quo_rem(newP)[1] for Q in Qs] - P = newP - Pd = newPd - #iv = IntervalOperator(P, Qs, u_) - - pos_minimals = list( - filter( - lambda v: all([k > 0 for k in v[:-2]]), - list([(q/Pd).subs(u_=u) for q in Qs] for u in one_minus_t.roots(AA, multiplicities=False)) - ) - ) - - # Filter the real roots for minimal points with positive coords - prec_bound = 3 * P.degree()**3 * max([max([abs(x) for x in F.coefficients()]) for F in [P, Pd] + Qs]) - PrecisionField = RIF - prec = PrecisionField.precision() - non_min_idx = set() - for pt in non_min: - idx = range(len(pos_minimals)) - while len(idx) > 1: - if (prec > prec_bound): - raise ACSVException( - "Non-minimal point associated with multiple minimal candidates. This should never happen. " + \ - "If you are seeing this error, something has gone horribly wrong." - ) - - idx = list( - filter( - lambda i: all( - [(PrecisionField(v) - PrecisionField(w)).contains_zero() for (v, w) in zip(pos_minimals[i], pt)] - ), - idx - ) - ) - prec *= 2 - PrecisionField = RealIntervalField(prec) - - if len(idx) > 0: - non_min_idx.add(idx[0]) + Rt, t_ = PolynomialRing(AA, ['t_']).objgen() - pos_minimals = [pos_minimals[i] for i in range(len(pos_minimals)) if i not in non_min_idx] + for u in P.roots(AA, multiplicities=False): + pt = [(q/Pd).subs(u_=u) for q in Qs] + if any([k <= 0 for k in pt[:-1]]): + continue + ptt = [x * t_ for x in pt] + Htt = Rt(H.subs({v:xt for (v, xt) in zip(vs, ptt)}).radical()/(t_-1)) + if CountRootsInInterval(Htt, t_, 0, 1) == 0: + pos_minimals.append(pt) # Remove non-smooth points and points with zero coordinates (where lambda=0) for i in range(len(pos_minimals)): @@ -397,17 +344,17 @@ def MinimalCriticalCombinatorial(G, H, variables, r=None, linear_form=None, use_ ) # Find all minimal critical points - minCP = pos_minimals[0][:-2] + minCP = pos_minimals[0][:-1] minimals = [] - for u in one_minus_t.roots(QQbar, multiplicities=False): - v = [(q/Pd).subs(u_=u) for q in Qs[0:-2]] + for u in P.roots(QQbar, multiplicities=False): + v = [(q/Pd).subs(u_=u) for q in Qs[0:-1]] if all([a.abs() == b.abs() for (a, b) in zip(minCP, v)]): minimals.append(u) # Get minimal point coords, and make exact if possible - minimal_coords = [[(q/Pd).subs(u_=u) for q in Qs[0:-2]] for u in minimals] + minimal_coords = [[(q/Pd).subs(u_=u) for q in Qs[0:-1]] for u in minimals] [[a.exactify() for a in b] for b in minimal_coords] timer.checkpoint("Minimal Points") - return [[(q/Pd).subs(u_=u) for q in Qs[0:-2]] for u in minimals] + return [[(q/Pd).subs(u_=u) for q in Qs[0:-1]] for u in minimals] diff --git a/sage_acsv/helpers.py b/sage_acsv/helpers.py index 400b9b6..b72cfd0 100644 --- a/sage_acsv/helpers.py +++ b/sage_acsv/helpers.py @@ -1,7 +1,7 @@ from enum import Enum -from sage.all import QQ, RIF, CIF, PolynomialRing, RealIntervalField, ComplexIntervalField +from sage.all import QQ, AA, RIF, CIF, PolynomialRing, RealIntervalField, ComplexIntervalField from sage.all import ceil, gcd, matrix, randint, sqrt, log, factorial @@ -114,6 +114,27 @@ def DetHessianWithLog(H, vs, r): # Return determinant return matrix(Hess).determinant() +def CountRootsInInterval(F, t_, start, end): + R = PolynomialRing(AA, t_) + F_prev = R(F.radical()) + F_cur = F_prev.derivative(t_) + + ss = [F_prev.subs({t_:start})] + es = [F_prev.subs({t_:end})] + while F_cur != 0: + ss.append(F_cur.subs({t_:start})) + es.append(F_cur.subs({t_:end})) + + _, rem = F_prev.quo_rem(F_cur) + F_prev, F_cur = F_cur, -rem + + ss = list(filter(lambda x: x != 0, ss)) + es = list(filter(lambda x: x != 0, es)) + alt_s = len([_ for i in range(1, len(ss)) if ss[i] * ss[i-1] < 0 ]) + alt_e = len([_ for i in range(1, len(es)) if es[i] * es[i-1] < 0 ]) + + return alt_s - alt_e + class ACSVException(Exception): def __init__(self, message, retry=False): super().__init__(message) From 636088d5d62c6b0d5f560d590da3c45ec3ee9737 Mon Sep 17 00:00:00 2001 From: Andrew Luo Date: Tue, 20 Feb 2024 14:29:25 -0500 Subject: [PATCH 12/17] Fix doctests --- sage_acsv/asymptotics.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sage_acsv/asymptotics.py b/sage_acsv/asymptotics.py index a927e8b..ea20543 100644 --- a/sage_acsv/asymptotics.py +++ b/sage_acsv/asymptotics.py @@ -256,7 +256,7 @@ def MinimalCriticalCombinatorial(G, H, variables, r=None, linear_form=None, use_ * ``G, H`` -- Coprime polynomials with `F = G/H` * ``variables`` -- Tuple of variables of ``G`` and ``H``, followed - by ``lambda_, t, u_`` + by ``lambda_, u_`` * ``r`` -- (Optional) Length `d` vector of positive integers * ``linear_form`` -- (Optional) A linear combination of the input variables that separates the critical point solutions @@ -276,11 +276,11 @@ def MinimalCriticalCombinatorial(G, H, variables, r=None, linear_form=None, use_ Examples:: sage: from sage_acsv import MinimalCriticalCombinatorial - sage: R. = QQ[] + sage: R. = QQ[] sage: pts = MinimalCriticalCombinatorial( ....: 1, ....: 1 - w*(y + x + x^2*y + x*y^2), - ....: ([w, x, y], lambda_, t, u_) + ....: ([w, x, y], lambda_, u_) ....: ) sage: sorted(pts) [[-1/4, -1, -1], [1/4, 1, 1]] From f21854797f1843156b98d5c83d1e6c86f9913c3c Mon Sep 17 00:00:00 2001 From: Andrew Luo Date: Fri, 1 Mar 2024 10:17:14 -0500 Subject: [PATCH 13/17] Small changes --- examples/Sage-ACSV-Tests.ipynb | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/examples/Sage-ACSV-Tests.ipynb b/examples/Sage-ACSV-Tests.ipynb index 9e4610d..e4a90f9 100644 --- a/examples/Sage-ACSV-Tests.ipynb +++ b/examples/Sage-ACSV-Tests.ipynb @@ -124,14 +124,21 @@ "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "1.225275868941647?*33.97056274847714?^n/(pi^(3/2)*n^(3/2))" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" + "ename": "TypeError", + "evalue": "fraction must have unit denominator", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn [7], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m# Apéry sequence (on main diagonal)\u001b[39;00m\n\u001b[1;32m 2\u001b[0m F3 \u001b[38;5;241m=\u001b[39m Integer(\u001b[38;5;241m1\u001b[39m)\u001b[38;5;241m/\u001b[39m(Integer(\u001b[38;5;241m1\u001b[39m) \u001b[38;5;241m-\u001b[39m w\u001b[38;5;241m*\u001b[39m(Integer(\u001b[38;5;241m1\u001b[39m) \u001b[38;5;241m+\u001b[39m x)\u001b[38;5;241m*\u001b[39m(Integer(\u001b[38;5;241m1\u001b[39m) \u001b[38;5;241m+\u001b[39m y)\u001b[38;5;241m*\u001b[39m(Integer(\u001b[38;5;241m1\u001b[39m) \u001b[38;5;241m+\u001b[39m z)\u001b[38;5;241m*\u001b[39m(x\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39mz \u001b[38;5;241m+\u001b[39m y\u001b[38;5;241m*\u001b[39mz \u001b[38;5;241m+\u001b[39m y \u001b[38;5;241m+\u001b[39m z \u001b[38;5;241m+\u001b[39m Integer(\u001b[38;5;241m1\u001b[39m)))\n\u001b[0;32m----> 3\u001b[0m \u001b[43mdiagonal_asy\u001b[49m\u001b[43m(\u001b[49m\u001b[43mF3\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mas_symbolic\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43muse_msolve\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/.sage/local/lib/python3.11/site-packages/sage_acsv/asymptotics.py:176\u001b[0m, in \u001b[0;36mdiagonal_asy\u001b[0;34m(F, r, linear_form, return_points, output_format, as_symbolic, use_msolve)\u001b[0m\n\u001b[1;32m 174\u001b[0m \u001b[38;5;28;01mcontinue\u001b[39;00m\n\u001b[1;32m 175\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 176\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m e\n\u001b[1;32m 177\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 178\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m\n", + "File \u001b[0;32m~/.sage/local/lib/python3.11/site-packages/sage_acsv/asymptotics.py:161\u001b[0m, in \u001b[0;36mdiagonal_asy\u001b[0;34m(F, r, linear_form, return_points, output_format, as_symbolic, use_msolve)\u001b[0m\n\u001b[1;32m 158\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m _ \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(MAX_MIN_CRIT_RETRIES):\n\u001b[1;32m 159\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 160\u001b[0m \u001b[38;5;66;03m# Find minimal critical points in Kronecker Representation\u001b[39;00m\n\u001b[0;32m--> 161\u001b[0m min_crit_pts \u001b[38;5;241m=\u001b[39m \u001b[43mMinimalCriticalCombinatorial\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 162\u001b[0m \u001b[43m \u001b[49m\u001b[43mG\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mH\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mall_variables\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 163\u001b[0m \u001b[43m \u001b[49m\u001b[43mr\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mr\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 164\u001b[0m \u001b[43m \u001b[49m\u001b[43mlinear_form\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlinear_form\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 165\u001b[0m \u001b[43m \u001b[49m\u001b[43muse_msolve\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43muse_msolve\u001b[49m\n\u001b[1;32m 166\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 167\u001b[0m \u001b[38;5;28;01mbreak\u001b[39;00m\n\u001b[1;32m 168\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n", + "File \u001b[0;32m~/.sage/local/lib/python3.11/site-packages/sage_acsv/asymptotics.py:323\u001b[0m, in \u001b[0;36mMinimalCriticalCombinatorial\u001b[0;34m(G, H, variables, r, linear_form, use_msolve)\u001b[0m\n\u001b[1;32m 321\u001b[0m \u001b[38;5;28;01mcontinue\u001b[39;00m\n\u001b[1;32m 322\u001b[0m ptt \u001b[38;5;241m=\u001b[39m [x \u001b[38;5;241m*\u001b[39m t_ \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m pt]\n\u001b[0;32m--> 323\u001b[0m Htt \u001b[38;5;241m=\u001b[39m \u001b[43mRt\u001b[49m\u001b[43m(\u001b[49m\u001b[43mH\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msubs\u001b[49m\u001b[43m(\u001b[49m\u001b[43m{\u001b[49m\u001b[43mv\u001b[49m\u001b[43m:\u001b[49m\u001b[43mxt\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[43mv\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mxt\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mzip\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mvs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mptt\u001b[49m\u001b[43m)\u001b[49m\u001b[43m}\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mradical\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m/\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mt_\u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 324\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m CountRootsInInterval(Htt, t_, \u001b[38;5;241m0\u001b[39m, \u001b[38;5;241m1\u001b[39m) \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[1;32m 325\u001b[0m pos_minimals\u001b[38;5;241m.\u001b[39mappend(pt)\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/structure/parent.pyx:901\u001b[0m, in \u001b[0;36msage.structure.parent.Parent.__call__ (build/cythonized/sage/structure/parent.c:12658)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 899\u001b[0m if mor is not None:\n\u001b[1;32m 900\u001b[0m if no_extra_args:\n\u001b[0;32m--> 901\u001b[0m return mor._call_(x)\n\u001b[1;32m 902\u001b[0m else:\n\u001b[1;32m 903\u001b[0m return mor._call_with_args(x, args, kwds)\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/categories/map.pyx:819\u001b[0m, in \u001b[0;36msage.categories.map.Map._call_ (build/cythonized/sage/categories/map.c:10523)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 817\u001b[0m return self._call_with_args(x, args, kwds)\n\u001b[1;32m 818\u001b[0m \n\u001b[0;32m--> 819\u001b[0m cpdef Element _call_(self, x) noexcept:\n\u001b[1;32m 820\u001b[0m \"\"\"\n\u001b[1;32m 821\u001b[0m Call method with a single argument, not implemented in the base class.\n", + "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/fraction_field.py:1278\u001b[0m, in \u001b[0;36mFractionFieldEmbeddingSection._call_\u001b[0;34m(self, x, check)\u001b[0m\n\u001b[1;32m 1273\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m num\n\u001b[1;32m 1274\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m check \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m den\u001b[38;5;241m.\u001b[39mis_unit():\n\u001b[1;32m 1275\u001b[0m \u001b[38;5;66;03m# This should probably be a ValueError.\u001b[39;00m\n\u001b[1;32m 1276\u001b[0m \u001b[38;5;66;03m# However, too much existing code is expecting this to throw a\u001b[39;00m\n\u001b[1;32m 1277\u001b[0m \u001b[38;5;66;03m# TypeError, so we decided to keep it for the time being.\u001b[39;00m\n\u001b[0;32m-> 1278\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mfraction must have unit denominator\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 1279\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m num \u001b[38;5;241m*\u001b[39m den\u001b[38;5;241m.\u001b[39minverse_of_unit()\n", + "\u001b[0;31mTypeError\u001b[0m: fraction must have unit denominator" + ] } ], "source": [ From 8833e57bb3ed2c1bf4ca62a53256838f040a77b6 Mon Sep 17 00:00:00 2001 From: Andrew Luo Date: Fri, 1 Mar 2024 10:53:19 -0500 Subject: [PATCH 14/17] Fix variable ordering issue with msolve --- sage_acsv/kronecker.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/sage_acsv/kronecker.py b/sage_acsv/kronecker.py index 0e1d6cc..693862c 100644 --- a/sage_acsv/kronecker.py +++ b/sage_acsv/kronecker.py @@ -134,7 +134,18 @@ def _kronecker_representation(system, u_, vs, lambda_=None, linear_form=None): def _msolve_kronecker_representation(system, u_, vs): result = get_parametrization(vs, system) - _, nvars, _, _, _, param = result[1] + _, nvars, _, msvars, _, param = result[1] + + # msolve may reorder the variables, so order them back + Qparams = param[1][2] + vsExt = [str(v) for v in vs] + # Check if no new variable was created by msolve + # If so, the linear_form used is just zd + # i.e. u_ = zd and Qd = zd * P'(zd) + if nvars == len(vs): + Qparams.append([[1, [0, 1]], 1]) + pidx = [msvars.index(v) for v in vsExt] + Qparams = [Qparams[i] for i in pidx] R = PolynomialRing(QQ, u_) u_ = R(u_) @@ -143,18 +154,12 @@ def _msolve_kronecker_representation(system, u_, vs): P = sum([c * u_**i for (i, c) in enumerate(P_coeffs)]) Qs = [] - for Q_param in param[1][2]: + for Q_param in Qparams: Q_coeffs = Q_param[0][1] c_div = Q_param[1] Q = -sum([c * u_**i for (i, c) in enumerate(Q_coeffs)])/c_div Qs.append(Q) - # Check if no new variable was created by msolve - # If so, the linear_form used is just zd - # i.e. u_ = zd and Qd = zd * P'(zd) - if nvars == len(vs): - Qs.append(-u_ * P.derivative()) - return P, Qs def kronecker(system, vs, linear_form=None, use_msolve=False): From 491b92127b33126b71a7b2e88a59dbd5c0f8ba57 Mon Sep 17 00:00:00 2001 From: Andrew Luo Date: Fri, 1 Mar 2024 10:53:19 -0500 Subject: [PATCH 15/17] Fix variable ordering issue with msolve --- sage_acsv/kronecker.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/sage_acsv/kronecker.py b/sage_acsv/kronecker.py index 0e1d6cc..da738e2 100644 --- a/sage_acsv/kronecker.py +++ b/sage_acsv/kronecker.py @@ -133,8 +133,19 @@ def _kronecker_representation(system, u_, vs, lambda_=None, linear_form=None): def _msolve_kronecker_representation(system, u_, vs): result = get_parametrization(vs, system) + _, nvars, _, msvars, _, param = result[1] - _, nvars, _, _, _, param = result[1] + # msolve may reorder the variables, so order them back + Qparams = param[1][2] + vsExt = [str(v) for v in vs] + # Check if no new variable was created by msolve + # If so, the linear_form used is just zd + # i.e. u_ = zd and Qd = zd * P'(zd) + if nvars == len(vs): + Pdz = [0] + [-c for c in param[1][1][1]] + Qparams.append([[1, Pdz], 1]) + pidx = [msvars.index(v) for v in vsExt] + Qparams = [Qparams[i] for i in pidx] R = PolynomialRing(QQ, u_) u_ = R(u_) @@ -143,18 +154,12 @@ def _msolve_kronecker_representation(system, u_, vs): P = sum([c * u_**i for (i, c) in enumerate(P_coeffs)]) Qs = [] - for Q_param in param[1][2]: + for Q_param in Qparams: Q_coeffs = Q_param[0][1] c_div = Q_param[1] Q = -sum([c * u_**i for (i, c) in enumerate(Q_coeffs)])/c_div Qs.append(Q) - # Check if no new variable was created by msolve - # If so, the linear_form used is just zd - # i.e. u_ = zd and Qd = zd * P'(zd) - if nvars == len(vs): - Qs.append(-u_ * P.derivative()) - return P, Qs def kronecker(system, vs, linear_form=None, use_msolve=False): From c4dbd2736c7e2f69844bef67842292fef151e47b Mon Sep 17 00:00:00 2001 From: Andrew Luo Date: Fri, 1 Mar 2024 11:43:34 -0500 Subject: [PATCH 16/17] reset testing file --- examples/Sage-ACSV-Tests.ipynb | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/examples/Sage-ACSV-Tests.ipynb b/examples/Sage-ACSV-Tests.ipynb index e4a90f9..9ee549e 100644 --- a/examples/Sage-ACSV-Tests.ipynb +++ b/examples/Sage-ACSV-Tests.ipynb @@ -124,21 +124,14 @@ "metadata": {}, "outputs": [ { - "ename": "TypeError", - "evalue": "fraction must have unit denominator", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn [7], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m# Apéry sequence (on main diagonal)\u001b[39;00m\n\u001b[1;32m 2\u001b[0m F3 \u001b[38;5;241m=\u001b[39m Integer(\u001b[38;5;241m1\u001b[39m)\u001b[38;5;241m/\u001b[39m(Integer(\u001b[38;5;241m1\u001b[39m) \u001b[38;5;241m-\u001b[39m w\u001b[38;5;241m*\u001b[39m(Integer(\u001b[38;5;241m1\u001b[39m) \u001b[38;5;241m+\u001b[39m x)\u001b[38;5;241m*\u001b[39m(Integer(\u001b[38;5;241m1\u001b[39m) \u001b[38;5;241m+\u001b[39m y)\u001b[38;5;241m*\u001b[39m(Integer(\u001b[38;5;241m1\u001b[39m) \u001b[38;5;241m+\u001b[39m z)\u001b[38;5;241m*\u001b[39m(x\u001b[38;5;241m*\u001b[39my\u001b[38;5;241m*\u001b[39mz \u001b[38;5;241m+\u001b[39m y\u001b[38;5;241m*\u001b[39mz \u001b[38;5;241m+\u001b[39m y \u001b[38;5;241m+\u001b[39m z \u001b[38;5;241m+\u001b[39m Integer(\u001b[38;5;241m1\u001b[39m)))\n\u001b[0;32m----> 3\u001b[0m \u001b[43mdiagonal_asy\u001b[49m\u001b[43m(\u001b[49m\u001b[43mF3\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mas_symbolic\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43muse_msolve\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/.sage/local/lib/python3.11/site-packages/sage_acsv/asymptotics.py:176\u001b[0m, in \u001b[0;36mdiagonal_asy\u001b[0;34m(F, r, linear_form, return_points, output_format, as_symbolic, use_msolve)\u001b[0m\n\u001b[1;32m 174\u001b[0m \u001b[38;5;28;01mcontinue\u001b[39;00m\n\u001b[1;32m 175\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 176\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m e\n\u001b[1;32m 177\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 178\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m\n", - "File \u001b[0;32m~/.sage/local/lib/python3.11/site-packages/sage_acsv/asymptotics.py:161\u001b[0m, in \u001b[0;36mdiagonal_asy\u001b[0;34m(F, r, linear_form, return_points, output_format, as_symbolic, use_msolve)\u001b[0m\n\u001b[1;32m 158\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m _ \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(MAX_MIN_CRIT_RETRIES):\n\u001b[1;32m 159\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 160\u001b[0m \u001b[38;5;66;03m# Find minimal critical points in Kronecker Representation\u001b[39;00m\n\u001b[0;32m--> 161\u001b[0m min_crit_pts \u001b[38;5;241m=\u001b[39m \u001b[43mMinimalCriticalCombinatorial\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 162\u001b[0m \u001b[43m \u001b[49m\u001b[43mG\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mH\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mall_variables\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 163\u001b[0m \u001b[43m \u001b[49m\u001b[43mr\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mr\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 164\u001b[0m \u001b[43m \u001b[49m\u001b[43mlinear_form\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlinear_form\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 165\u001b[0m \u001b[43m \u001b[49m\u001b[43muse_msolve\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43muse_msolve\u001b[49m\n\u001b[1;32m 166\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 167\u001b[0m \u001b[38;5;28;01mbreak\u001b[39;00m\n\u001b[1;32m 168\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n", - "File \u001b[0;32m~/.sage/local/lib/python3.11/site-packages/sage_acsv/asymptotics.py:323\u001b[0m, in \u001b[0;36mMinimalCriticalCombinatorial\u001b[0;34m(G, H, variables, r, linear_form, use_msolve)\u001b[0m\n\u001b[1;32m 321\u001b[0m \u001b[38;5;28;01mcontinue\u001b[39;00m\n\u001b[1;32m 322\u001b[0m ptt \u001b[38;5;241m=\u001b[39m [x \u001b[38;5;241m*\u001b[39m t_ \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m pt]\n\u001b[0;32m--> 323\u001b[0m Htt \u001b[38;5;241m=\u001b[39m \u001b[43mRt\u001b[49m\u001b[43m(\u001b[49m\u001b[43mH\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msubs\u001b[49m\u001b[43m(\u001b[49m\u001b[43m{\u001b[49m\u001b[43mv\u001b[49m\u001b[43m:\u001b[49m\u001b[43mxt\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[43mv\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mxt\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mzip\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mvs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mptt\u001b[49m\u001b[43m)\u001b[49m\u001b[43m}\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mradical\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m/\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mt_\u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 324\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m CountRootsInInterval(Htt, t_, \u001b[38;5;241m0\u001b[39m, \u001b[38;5;241m1\u001b[39m) \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[1;32m 325\u001b[0m pos_minimals\u001b[38;5;241m.\u001b[39mappend(pt)\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/structure/parent.pyx:901\u001b[0m, in \u001b[0;36msage.structure.parent.Parent.__call__ (build/cythonized/sage/structure/parent.c:12658)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 899\u001b[0m if mor is not None:\n\u001b[1;32m 900\u001b[0m if no_extra_args:\n\u001b[0;32m--> 901\u001b[0m return mor._call_(x)\n\u001b[1;32m 902\u001b[0m else:\n\u001b[1;32m 903\u001b[0m return mor._call_with_args(x, args, kwds)\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/categories/map.pyx:819\u001b[0m, in \u001b[0;36msage.categories.map.Map._call_ (build/cythonized/sage/categories/map.c:10523)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 817\u001b[0m return self._call_with_args(x, args, kwds)\n\u001b[1;32m 818\u001b[0m \n\u001b[0;32m--> 819\u001b[0m cpdef Element _call_(self, x) noexcept:\n\u001b[1;32m 820\u001b[0m \"\"\"\n\u001b[1;32m 821\u001b[0m Call method with a single argument, not implemented in the base class.\n", - "File \u001b[0;32m/private/var/tmp/sage-10.2-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/rings/fraction_field.py:1278\u001b[0m, in \u001b[0;36mFractionFieldEmbeddingSection._call_\u001b[0;34m(self, x, check)\u001b[0m\n\u001b[1;32m 1273\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m num\n\u001b[1;32m 1274\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m check \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m den\u001b[38;5;241m.\u001b[39mis_unit():\n\u001b[1;32m 1275\u001b[0m \u001b[38;5;66;03m# This should probably be a ValueError.\u001b[39;00m\n\u001b[1;32m 1276\u001b[0m \u001b[38;5;66;03m# However, too much existing code is expecting this to throw a\u001b[39;00m\n\u001b[1;32m 1277\u001b[0m \u001b[38;5;66;03m# TypeError, so we decided to keep it for the time being.\u001b[39;00m\n\u001b[0;32m-> 1278\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mfraction must have unit denominator\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 1279\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m num \u001b[38;5;241m*\u001b[39m den\u001b[38;5;241m.\u001b[39minverse_of_unit()\n", - "\u001b[0;31mTypeError\u001b[0m: fraction must have unit denominator" - ] + "data": { + "text/plain": [ + "1.225275868941647?*33.97056274847714?^n/(pi^(3/2)*n^(3/2))" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -182,7 +175,7 @@ { "data": { "text/plain": [ - "(0.09677555757474702?*5.884442204019508?^n/(sqrt(pi)*sqrt(n)),\n", + "(0.09677555757474702?*5.88444220401951?^n/(sqrt(pi)*sqrt(n)),\n", " [[0.548232473567013?, 0.3099773361396642?]])" ] }, @@ -440,6 +433,13 @@ "diagonal_asy(F, as_symbolic=True, use_msolve=True)" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": null, From ecebbb86a33dd8b4ff894f62d0b4d8e5076e8853 Mon Sep 17 00:00:00 2001 From: Andrew Luo Date: Tue, 12 Mar 2024 13:35:10 -0400 Subject: [PATCH 17/17] use sage's built in string eval --- sage_acsv/msolve.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sage_acsv/msolve.py b/sage_acsv/msolve.py index ca2ff21..7999ca7 100644 --- a/sage_acsv/msolve.py +++ b/sage_acsv/msolve.py @@ -1,8 +1,8 @@ import os import tempfile import subprocess -import ast +from sage.misc.sage_eval import sage_eval from sage.features.msolve import msolve from sage_acsv.helpers import ACSVException @@ -26,7 +26,7 @@ def get_parametrization(vs, system): msolve_out.check_returncode() result = msolve_out.stdout - result = ast.literal_eval(result[:-2]) + result = sage_eval(result[:-2]) if result[0] != 0: raise ACSVException("Issue with msolve parametrization - system does not have finitely many solutions")