diff --git a/notebooks/binom_factor_table.ipynb b/notebooks/binom_factor_table.ipynb index 5c3c367..ee8a835 100644 --- a/notebooks/binom_factor_table.ipynb +++ b/notebooks/binom_factor_table.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 56, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -30,12 +30,12 @@ "B(i,j,a,b,s) = \\sum_{p=1}^{max} \\sum_{q=1}^{max} w^{i,j,s}_{p,q} a^p b^q\n", "$$\n", "\n", - "This notebook computes those weights. If max=4, that is a 5x5x5x25 array." + "This notebook computes those weights. If max=5, that is a 5x5x5x25 array." ] }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -55,12 +55,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "In fact, they are all small integers and it is sparse, so it could be less, but certainly tiny." + "In fact, they are all small integers and it is sparse, so it could be less, but certainly not a huge memory burden." ] }, { "cell_type": "code", - "execution_count": 58, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -142,7 +142,7 @@ "a**3 + 9*a**2*b + 9*a*b**2 + b**3" ] }, - "execution_count": 58, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -174,7 +174,7 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -198,7 +198,7 @@ " a: 0}" ] }, - "execution_count": 59, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -235,7 +235,7 @@ }, { "cell_type": "code", - "execution_count": 60, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -250,10 +250,10 @@ { "data": { "text/latex": [ - "$\\displaystyle \\left( 1, \\ a^{2} b^{2}, \\ a^{4} b^{4}, \\ a^{3} b, \\ a^{4}, \\ a^{4} b, \\ a^{2} b^{3}, \\ b^{4}, \\ a^{2} b^{4}, \\ a b, \\ a^{3}, \\ a b^{2}, \\ a, \\ a b^{3}, \\ a^{3} b^{2}, \\ b^{3}, \\ a b^{4}, \\ a^{3} b^{3}, \\ a^{2}, \\ a^{3} b^{4}, \\ a^{4} b^{2}, \\ b^{2}, \\ b, \\ a^{4} b^{3}, \\ a^{2} b\\right)$" + "$\\displaystyle \\left( 1, \\ a b^{2}, \\ b^{4}, \\ a b, \\ b, \\ a^{3} b^{2}, \\ a^{4} b^{3}, \\ a^{4}, \\ a^{4} b^{4}, \\ a^{2} b^{3}, \\ a^{2} b, \\ b^{3}, \\ a^{2} b^{4}, \\ a^{3}, \\ a^{3} b, \\ a, \\ a^{3} b^{3}, \\ a b^{3}, \\ a^{3} b^{4}, \\ a b^{4}, \\ a^{4} b^{2}, \\ b^{2}, \\ a^{2}, \\ a^{2} b^{2}, \\ a^{4} b\\right)$" ], "text/plain": [ - "(1, a**2*b**2, a**4*b**4, a**3*b, a**4, a**4*b, a**2*b**3, b**4, a**2*b**4, a*b, a**3, a*b**2, a, a*b**3, a**3*b**2, b**3, a*b**4, a**3*b**3, a**2, a**3*b**4, a**4*b**2, b**2, b, a**4*b**3, a**2*b)" + "(1, a*b**2, b**4, a*b, b, a**3*b**2, a**4*b**3, a**4, a**4*b**4, a**2*b**3, a**2*b, b**3, a**2*b**4, a**3, a**3*b, a, a**3*b**3, a*b**3, a**3*b**4, a*b**4, a**4*b**2, b**2, a**2, a**2*b**2, a**4*b)" ] }, "metadata": {}, @@ -268,126 +268,126 @@ "(0, 0, 2) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 0\n", "(0, 0, 3) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 0\n", "(0, 0, 4) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 0\n", - "(0, 1, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0] b\n", + "(0, 1, 0) [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] b\n", "(0, 1, 1) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 1\n", "(0, 1, 2) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 0\n", "(0, 1, 3) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 0\n", "(0, 1, 4) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 0\n", "(0, 2, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0] b**2\n", - "(0, 2, 1) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0] 2*b\n", + "(0, 2, 1) [0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 2*b\n", "(0, 2, 2) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 1\n", "(0, 2, 3) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 0\n", "(0, 2, 4) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 0\n", - "(0, 3, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0] b**3\n", + "(0, 3, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] b**3\n", "(0, 3, 1) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0] 3*b**2\n", - "(0, 3, 2) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0] 3*b\n", + "(0, 3, 2) [0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 3*b\n", "(0, 3, 3) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 1\n", "(0, 3, 4) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 0\n", - "(0, 4, 0) [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] b**4\n", - "(0, 4, 1) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0] 4*b**3\n", + "(0, 4, 0) [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] b**4\n", + "(0, 4, 1) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 4*b**3\n", "(0, 4, 2) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0] 6*b**2\n", - "(0, 4, 3) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0] 4*b\n", + "(0, 4, 3) [0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 4*b\n", "(0, 4, 4) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 1\n", - "(1, 0, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a\n", + "(1, 0, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0] a\n", "(1, 0, 1) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 1\n", "(1, 0, 2) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 0\n", "(1, 0, 3) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 0\n", "(1, 0, 4) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 0\n", - "(1, 1, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a*b\n", - "(1, 1, 1) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0] a + b\n", + "(1, 1, 0) [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a*b\n", + "(1, 1, 1) [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0] a + b\n", "(1, 1, 2) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 1\n", "(1, 1, 3) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 0\n", "(1, 1, 4) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 0\n", - "(1, 2, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a*b**2\n", - "(1, 2, 1) [0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0] 2*a*b + b**2\n", - "(1, 2, 2) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0] a + 2*b\n", + "(1, 2, 0) [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a*b**2\n", + "(1, 2, 1) [0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0] 2*a*b + b**2\n", + "(1, 2, 2) [0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0] a + 2*b\n", "(1, 2, 3) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 1\n", "(1, 2, 4) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 0\n", - "(1, 3, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a*b**3\n", - "(1, 3, 1) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0] 3*a*b**2 + b**3\n", - "(1, 3, 2) [0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0] 3*a*b + 3*b**2\n", - "(1, 3, 3) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0] a + 3*b\n", + "(1, 3, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0] a*b**3\n", + "(1, 3, 1) [0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 3*a*b**2 + b**3\n", + "(1, 3, 2) [0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0] 3*a*b + 3*b**2\n", + "(1, 3, 3) [0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0] a + 3*b\n", "(1, 3, 4) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 1\n", - "(1, 4, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0] a*b**4\n", - "(1, 4, 1) [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 4*a*b**3 + b**4\n", - "(1, 4, 2) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0] 6*a*b**2 + 4*b**3\n", - "(1, 4, 3) [0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0] 4*a*b + 6*b**2\n", - "(1, 4, 4) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0] a + 4*b\n", - "(2, 0, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0] a**2\n", - "(2, 0, 1) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 2*a\n", + "(1, 4, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0] a*b**4\n", + "(1, 4, 1) [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0] 4*a*b**3 + b**4\n", + "(1, 4, 2) [0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 6*a*b**2 + 4*b**3\n", + "(1, 4, 3) [0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0] 4*a*b + 6*b**2\n", + "(1, 4, 4) [0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0] a + 4*b\n", + "(2, 0, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0] a**2\n", + "(2, 0, 1) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0] 2*a\n", "(2, 0, 2) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 1\n", "(2, 0, 3) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 0\n", "(2, 0, 4) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 0\n", - "(2, 1, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1] a**2*b\n", - "(2, 1, 1) [0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0] a**2 + 2*a*b\n", - "(2, 1, 2) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0] 2*a + b\n", + "(2, 1, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a**2*b\n", + "(2, 1, 1) [0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0] a**2 + 2*a*b\n", + "(2, 1, 2) [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0] 2*a + b\n", "(2, 1, 3) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 1\n", "(2, 1, 4) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 0\n", - "(2, 2, 0) [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a**2*b**2\n", - "(2, 2, 1) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2] 2*a**2*b + 2*a*b**2\n", - "(2, 2, 2) [0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0] a**2 + 4*a*b + b**2\n", - "(2, 2, 3) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0] 2*a + 2*b\n", + "(2, 2, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0] a**2*b**2\n", + "(2, 2, 1) [0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 2*a**2*b + 2*a*b**2\n", + "(2, 2, 2) [0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0] a**2 + 4*a*b + b**2\n", + "(2, 2, 3) [0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0] 2*a + 2*b\n", "(2, 2, 4) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 1\n", - "(2, 3, 0) [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a**2*b**3\n", - "(2, 3, 1) [0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 3*a**2*b**2 + 2*a*b**3\n", - "(2, 3, 2) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 3] 3*a**2*b + 6*a*b**2 + b**3\n", - "(2, 3, 3) [0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0] a**2 + 6*a*b + 3*b**2\n", - "(2, 3, 4) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0] 2*a + 3*b\n", - "(2, 4, 0) [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a**2*b**4\n", - "(2, 4, 1) [0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0] 4*a**2*b**3 + 2*a*b**4\n", - "(2, 4, 2) [0, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 6*a**2*b**2 + 8*a*b**3 + b**4\n", - "(2, 4, 3) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 4] 4*a**2*b + 12*a*b**2 + 4*b**3\n", - "(2, 4, 4) [0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 6, 0, 0, 0] a**2 + 8*a*b + 6*b**2\n", - "(3, 0, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a**3\n", - "(3, 0, 1) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0] 3*a**2\n", - "(3, 0, 2) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 3*a\n", + "(2, 3, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a**2*b**3\n", + "(2, 3, 1) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 3, 0] 3*a**2*b**2 + 2*a*b**3\n", + "(2, 3, 2) [0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 3*a**2*b + 6*a*b**2 + b**3\n", + "(2, 3, 3) [0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0, 0] a**2 + 6*a*b + 3*b**2\n", + "(2, 3, 4) [0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0] 2*a + 3*b\n", + "(2, 4, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a**2*b**4\n", + "(2, 4, 1) [0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0] 4*a**2*b**3 + 2*a*b**4\n", + "(2, 4, 2) [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 6, 0] 6*a**2*b**2 + 8*a*b**3 + b**4\n", + "(2, 4, 3) [0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 4*a**2*b + 12*a*b**2 + 4*b**3\n", + "(2, 4, 4) [0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 1, 0, 0] a**2 + 8*a*b + 6*b**2\n", + "(3, 0, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a**3\n", + "(3, 0, 1) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0] 3*a**2\n", + "(3, 0, 2) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0] 3*a\n", "(3, 0, 3) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 1\n", "(3, 0, 4) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 0\n", - "(3, 1, 0) [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a**3*b\n", - "(3, 1, 1) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3] a**3 + 3*a**2*b\n", - "(3, 1, 2) [0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0] 3*a**2 + 3*a*b\n", - "(3, 1, 3) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0] 3*a + b\n", + "(3, 1, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a**3*b\n", + "(3, 1, 1) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a**3 + 3*a**2*b\n", + "(3, 1, 2) [0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0] 3*a**2 + 3*a*b\n", + "(3, 1, 3) [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0] 3*a + b\n", "(3, 1, 4) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 1\n", - "(3, 2, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a**3*b**2\n", - "(3, 2, 1) [0, 3, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 2*a**3*b + 3*a**2*b**2\n", - "(3, 2, 2) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6] a**3 + 6*a**2*b + 3*a*b**2\n", - "(3, 2, 3) [0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 1, 0, 0, 0] 3*a**2 + 6*a*b + b**2\n", - "(3, 2, 4) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0] 3*a + 2*b\n", - "(3, 3, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0] a**3*b**3\n", - "(3, 3, 1) [0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 3*a**3*b**2 + 3*a**2*b**3\n", - "(3, 3, 2) [0, 9, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 3*a**3*b + 9*a**2*b**2 + 3*a*b**3\n", - "(3, 3, 3) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 9, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9] a**3 + 9*a**2*b + 9*a*b**2 + b**3\n", - "(3, 3, 4) [0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 3, 0, 0, 0] 3*a**2 + 9*a*b + 3*b**2\n", - "(3, 4, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0] a**3*b**4\n", - "(3, 4, 1) [0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0] 4*a**3*b**3 + 3*a**2*b**4\n", - "(3, 4, 2) [0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 6, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0] 6*a**3*b**2 + 12*a**2*b**3 + 3*a*b**4\n", - "(3, 4, 3) [0, 18, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 4*a**3*b + 18*a**2*b**2 + 12*a*b**3 + b**4\n", - "(3, 4, 4) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 18, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 12] a**3 + 12*a**2*b + 18*a*b**2 + 4*b**3\n", - "(4, 0, 0) [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a**4\n", - "(4, 0, 1) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 4*a**3\n", - "(4, 0, 2) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0] 6*a**2\n", - "(4, 0, 3) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 4*a\n", + "(3, 2, 0) [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a**3*b**2\n", + "(3, 2, 1) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0] 2*a**3*b + 3*a**2*b**2\n", + "(3, 2, 2) [0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a**3 + 6*a**2*b + 3*a*b**2\n", + "(3, 2, 3) [0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0] 3*a**2 + 6*a*b + b**2\n", + "(3, 2, 4) [0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0] 3*a + 2*b\n", + "(3, 3, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0] a**3*b**3\n", + "(3, 3, 1) [0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 3*a**3*b**2 + 3*a**2*b**3\n", + "(3, 3, 2) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 3, 0, 0, 0, 0, 0, 9, 0] 3*a**3*b + 9*a**2*b**2 + 3*a*b**3\n", + "(3, 3, 3) [0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a**3 + 9*a**2*b + 9*a*b**2 + b**3\n", + "(3, 3, 4) [0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0] 3*a**2 + 9*a*b + 3*b**2\n", + "(3, 4, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0] a**3*b**4\n", + "(3, 4, 1) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0] 4*a**3*b**3 + 3*a**2*b**4\n", + "(3, 4, 2) [0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0] 6*a**3*b**2 + 12*a**2*b**3 + 3*a*b**4\n", + "(3, 4, 3) [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 12, 0, 0, 0, 0, 0, 18, 0] 4*a**3*b + 18*a**2*b**2 + 12*a*b**3 + b**4\n", + "(3, 4, 4) [0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a**3 + 12*a**2*b + 18*a*b**2 + 4*b**3\n", + "(4, 0, 0) [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a**4\n", + "(4, 0, 1) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 4*a**3\n", + "(4, 0, 2) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0] 6*a**2\n", + "(4, 0, 3) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0] 4*a\n", "(4, 0, 4) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 1\n", - "(4, 1, 0) [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a**4*b\n", - "(4, 1, 1) [0, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a**4 + 4*a**3*b\n", - "(4, 1, 2) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6] 4*a**3 + 6*a**2*b\n", - "(4, 1, 3) [0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0] 6*a**2 + 4*a*b\n", - "(4, 1, 4) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0] 4*a + b\n", + "(4, 1, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1] a**4*b\n", + "(4, 1, 1) [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a**4 + 4*a**3*b\n", + "(4, 1, 2) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 4*a**3 + 6*a**2*b\n", + "(4, 1, 3) [0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0] 6*a**2 + 4*a*b\n", + "(4, 1, 4) [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0] 4*a + b\n", "(4, 2, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0] a**4*b**2\n", - "(4, 2, 1) [0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 2*a**4*b + 4*a**3*b**2\n", - "(4, 2, 2) [0, 6, 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a**4 + 8*a**3*b + 6*a**2*b**2\n", - "(4, 2, 3) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12] 4*a**3 + 12*a**2*b + 4*a*b**2\n", - "(4, 2, 4) [0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 1, 0, 0, 0] 6*a**2 + 8*a*b + b**2\n", - "(4, 3, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0] a**4*b**3\n", - "(4, 3, 1) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 3, 0, 0, 0, 0] 3*a**4*b**2 + 4*a**3*b**3\n", - "(4, 3, 2) [0, 0, 0, 0, 0, 3, 6, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 3*a**4*b + 12*a**3*b**2 + 6*a**2*b**3\n", - "(4, 3, 3) [0, 18, 0, 12, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a**4 + 12*a**3*b + 18*a**2*b**2 + 4*a*b**3\n", - "(4, 3, 4) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 12, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 18] 4*a**3 + 18*a**2*b + 12*a*b**2 + b**3\n", - "(4, 4, 0) [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a**4*b**4\n", - "(4, 4, 1) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0] 4*a**4*b**3 + 4*a**3*b**4\n", - "(4, 4, 2) [0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 6, 0, 0, 0, 0] 6*a**4*b**2 + 16*a**3*b**3 + 6*a**2*b**4\n", - "(4, 4, 3) [0, 0, 0, 0, 0, 4, 24, 0, 0, 0, 0, 0, 0, 0, 24, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0] 4*a**4*b + 24*a**3*b**2 + 24*a**2*b**3 + 4*a*b**4\n", - "(4, 4, 4) [0, 36, 0, 16, 1, 0, 0, 1, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a**4 + 16*a**3*b + 36*a**2*b**2 + 16*a*b**3 + b**4\n" + "(4, 2, 1) [0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2] 2*a**4*b + 4*a**3*b**2\n", + "(4, 2, 2) [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0] a**4 + 8*a**3*b + 6*a**2*b**2\n", + "(4, 2, 3) [0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 4*a**3 + 12*a**2*b + 4*a*b**2\n", + "(4, 2, 4) [0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 6, 0, 0] 6*a**2 + 8*a*b + b**2\n", + "(4, 3, 0) [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a**4*b**3\n", + "(4, 3, 1) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 3, 0, 0, 0, 0] 3*a**4*b**2 + 4*a**3*b**3\n", + "(4, 3, 2) [0, 0, 0, 0, 0, 12, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3] 3*a**4*b + 12*a**3*b**2 + 6*a**2*b**3\n", + "(4, 3, 3) [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 12, 0, 0, 4, 0, 0, 0, 0, 0, 18, 0] a**4 + 12*a**3*b + 18*a**2*b**2 + 4*a*b**3\n", + "(4, 3, 4) [0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 18, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 4*a**3 + 18*a**2*b + 12*a*b**2 + b**3\n", + "(4, 4, 0) [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a**4*b**4\n", + "(4, 4, 1) [0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0] 4*a**4*b**3 + 4*a**3*b**4\n", + "(4, 4, 2) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 16, 0, 0, 0, 6, 0, 0, 0, 0] 6*a**4*b**2 + 16*a**3*b**3 + 6*a**2*b**4\n", + "(4, 4, 3) [0, 0, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 4] 4*a**4*b + 24*a**3*b**2 + 24*a**2*b**3 + 4*a*b**4\n", + "(4, 4, 4) [0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 16, 0, 0, 16, 0, 0, 0, 0, 0, 36, 0] a**4 + 16*a**3*b + 36*a**2*b**2 + 16*a*b**3 + b**4\n" ] } ], @@ -419,56 +419,80 @@ }, { "cell_type": "code", - "execution_count": 61, + "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", - " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", - " 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", - " 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n", - " 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n", - " 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n", - " 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n", - " 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]),\n", - " array([1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 0, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3,\n", - " 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 1, 1, 1, 1, 1, 2, 2,\n", - " 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4,\n", - " 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,\n", - " 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4,\n", - " 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1,\n", - " 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,\n", - " 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]),\n", - " array([0, 0, 1, 0, 1, 2, 0, 1, 2, 3, 0, 0, 1, 1, 0, 1, 1, 2, 2, 0, 1, 1,\n", - " 2, 2, 3, 3, 0, 1, 1, 2, 2, 3, 3, 4, 4, 0, 1, 0, 1, 1, 2, 2, 0, 1,\n", - " 1, 2, 2, 2, 3, 3, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 0, 1, 1, 2, 2,\n", - " 2, 3, 3, 3, 4, 4, 4, 0, 1, 2, 0, 1, 1, 2, 2, 3, 3, 0, 1, 1, 2, 2,\n", - " 2, 3, 3, 3, 4, 4, 0, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 0, 1, 1,\n", - " 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 0, 1, 2, 3, 0, 1, 1, 2, 2, 3, 3,\n", - " 4, 4, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 0, 1, 1, 2, 2, 2, 3, 3,\n", - " 3, 3, 4, 4, 4, 4, 0, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4]),\n", - " array([22, 21, 22, 15, 21, 22, 7, 15, 21, 22, 12, 9, 12, 22, 11, 9, 21,\n", - " 12, 22, 13, 11, 15, 9, 21, 12, 22, 16, 7, 13, 11, 15, 9, 21, 12,\n", - " 22, 18, 12, 24, 9, 18, 12, 22, 1, 11, 24, 9, 18, 21, 12, 22, 6,\n", - " 1, 13, 11, 15, 24, 9, 18, 21, 12, 22, 8, 6, 16, 1, 7, 13, 11,\n", - " 15, 24, 9, 18, 21, 10, 18, 12, 3, 10, 24, 9, 18, 12, 22, 14, 1,\n", - " 3, 10, 11, 24, 9, 18, 21, 12, 22, 17, 6, 14, 1, 3, 13, 10, 11,\n", - " 15, 24, 9, 18, 21, 19, 8, 17, 6, 14, 16, 1, 3, 7, 13, 10, 11,\n", - " 15, 24, 4, 10, 18, 12, 5, 3, 4, 10, 24, 9, 18, 12, 22, 20, 5,\n", - " 14, 1, 3, 4, 10, 11, 24, 9, 18, 21, 23, 17, 20, 5, 6, 14, 1,\n", - " 3, 4, 13, 10, 11, 15, 24, 2, 19, 23, 8, 17, 20, 5, 6, 14, 16,\n", - " 1, 3, 4, 7, 13]))" + "((array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", + " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", + " 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", + " 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n", + " 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n", + " 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n", + " 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n", + " 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]),\n", + " array([1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 0, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3,\n", + " 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 1, 1, 1, 1, 1, 2, 2,\n", + " 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4,\n", + " 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,\n", + " 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4,\n", + " 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1,\n", + " 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,\n", + " 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]),\n", + " array([0, 0, 1, 0, 1, 2, 0, 1, 2, 3, 0, 0, 1, 1, 0, 1, 1, 2, 2, 0, 1, 1,\n", + " 2, 2, 3, 3, 0, 1, 1, 2, 2, 3, 3, 4, 4, 0, 1, 0, 1, 1, 2, 2, 0, 1,\n", + " 1, 2, 2, 2, 3, 3, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 0, 1, 1, 2, 2,\n", + " 2, 3, 3, 3, 4, 4, 4, 0, 1, 2, 0, 1, 1, 2, 2, 3, 3, 0, 1, 1, 2, 2,\n", + " 2, 3, 3, 3, 4, 4, 0, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 0, 1, 1,\n", + " 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 0, 1, 2, 3, 0, 1, 1, 2, 2, 3, 3,\n", + " 4, 4, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 0, 1, 1, 2, 2, 2, 3, 3,\n", + " 3, 3, 4, 4, 4, 4, 0, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4]),\n", + " array([ 4, 21, 4, 11, 21, 4, 2, 11, 21, 4, 15, 3, 4, 15, 1, 3, 21,\n", + " 4, 15, 17, 1, 11, 3, 21, 4, 15, 19, 2, 17, 1, 11, 3, 21, 4,\n", + " 15, 22, 15, 10, 3, 22, 4, 15, 23, 1, 10, 3, 21, 22, 4, 15, 9,\n", + " 17, 23, 1, 10, 11, 3, 21, 22, 4, 15, 12, 9, 19, 2, 17, 23, 1,\n", + " 10, 11, 3, 21, 22, 13, 22, 15, 14, 10, 13, 3, 22, 4, 15, 5, 14,\n", + " 23, 1, 10, 13, 3, 21, 22, 4, 15, 16, 5, 9, 14, 17, 23, 1, 10,\n", + " 11, 13, 3, 21, 22, 18, 12, 16, 5, 9, 19, 2, 14, 17, 23, 1, 10,\n", + " 11, 13, 7, 13, 22, 15, 24, 7, 14, 10, 13, 3, 22, 4, 15, 20, 5,\n", + " 24, 7, 14, 23, 1, 10, 13, 3, 21, 22, 6, 16, 20, 5, 9, 24, 7,\n", + " 14, 17, 23, 1, 10, 11, 13, 8, 6, 18, 12, 16, 20, 5, 9, 19, 24,\n", + " 2, 7, 14, 17, 23])),\n", + " array([ 1., 1., 2., 1., 3., 3., 1., 4., 6., 4., 1., 1., 1.,\n", + " 1., 1., 2., 1., 2., 1., 1., 3., 1., 3., 3., 3., 1.,\n", + " 1., 1., 4., 6., 4., 4., 6., 4., 1., 1., 2., 1., 2.,\n", + " 1., 1., 2., 1., 2., 2., 4., 1., 1., 2., 2., 1., 2.,\n", + " 3., 6., 3., 1., 6., 3., 1., 3., 2., 1., 4., 2., 1.,\n", + " 8., 6., 12., 4., 4., 8., 6., 1., 1., 3., 3., 1., 3.,\n", + " 1., 3., 3., 1., 3., 1., 2., 3., 3., 6., 1., 6., 1.,\n", + " 3., 2., 3., 1., 3., 3., 3., 3., 9., 9., 9., 1., 1.,\n", + " 9., 3., 3., 1., 3., 4., 6., 12., 3., 1., 4., 12., 18.,\n", + " 18., 12., 4., 1., 1., 4., 6., 4., 1., 1., 4., 6., 4.,\n", + " 4., 6., 1., 4., 1., 4., 2., 1., 8., 6., 4., 12., 4.,\n", + " 8., 1., 6., 1., 4., 3., 12., 6., 3., 1., 12., 4., 18.,\n", + " 12., 18., 1., 4., 1., 4., 4., 6., 16., 6., 24., 24., 4.,\n", + " 4., 1., 1., 16., 16., 36.]))" ] }, - "execution_count": 61, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "np.nonzero(weights)" + "inds = np.nonzero(weights)\n", + "inds, weights[inds]\n", + "\n", + "with open(\"../pyscf_ipu/experimental/binom_factor_table.py\", \"w\") as f:\n", + " print(\"# AUTOGENERATED from notebooks/binom_factor_table.ipynb\", file=f)\n", + " print(\"from numpy import array\", file=f)\n", + " print(\"binom_factor_table = \", repr((inds, weights[inds])), file=f)\n", + "\n", + "import pyscf_ipu.experimental.binom_factor_table\n", + "\n", + "pyscf_ipu.experimental.binom_factor_table.binom_factor_table" ] } ], diff --git a/pyscf_ipu/experimental/binom_factor_table.py b/pyscf_ipu/experimental/binom_factor_table.py new file mode 100644 index 0000000..6fb1bde --- /dev/null +++ b/pyscf_ipu/experimental/binom_factor_table.py @@ -0,0 +1,47 @@ +# AUTOGENERATED from notebooks/binom_factor_table.ipynb +from numpy import array +binom_factor_table = ((array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]), array([1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 0, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, + 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 1, 1, 1, 1, 1, 2, 2, + 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]), array([0, 0, 1, 0, 1, 2, 0, 1, 2, 3, 0, 0, 1, 1, 0, 1, 1, 2, 2, 0, 1, 1, + 2, 2, 3, 3, 0, 1, 1, 2, 2, 3, 3, 4, 4, 0, 1, 0, 1, 1, 2, 2, 0, 1, + 1, 2, 2, 2, 3, 3, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 0, 1, 1, 2, 2, + 2, 3, 3, 3, 4, 4, 4, 0, 1, 2, 0, 1, 1, 2, 2, 3, 3, 0, 1, 1, 2, 2, + 2, 3, 3, 3, 4, 4, 0, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 0, 1, 1, + 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 0, 1, 2, 3, 0, 1, 1, 2, 2, 3, 3, + 4, 4, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 0, 1, 1, 2, 2, 2, 3, 3, + 3, 3, 4, 4, 4, 4, 0, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4]), array([ 4, 21, 4, 11, 21, 4, 2, 11, 21, 4, 15, 3, 4, 15, 1, 3, 21, + 4, 15, 17, 1, 11, 3, 21, 4, 15, 19, 2, 17, 1, 11, 3, 21, 4, + 15, 22, 15, 10, 3, 22, 4, 15, 23, 1, 10, 3, 21, 22, 4, 15, 9, + 17, 23, 1, 10, 11, 3, 21, 22, 4, 15, 12, 9, 19, 2, 17, 23, 1, + 10, 11, 3, 21, 22, 13, 22, 15, 14, 10, 13, 3, 22, 4, 15, 5, 14, + 23, 1, 10, 13, 3, 21, 22, 4, 15, 16, 5, 9, 14, 17, 23, 1, 10, + 11, 13, 3, 21, 22, 18, 12, 16, 5, 9, 19, 2, 14, 17, 23, 1, 10, + 11, 13, 7, 13, 22, 15, 24, 7, 14, 10, 13, 3, 22, 4, 15, 20, 5, + 24, 7, 14, 23, 1, 10, 13, 3, 21, 22, 6, 16, 20, 5, 9, 24, 7, + 14, 17, 23, 1, 10, 11, 13, 8, 6, 18, 12, 16, 20, 5, 9, 19, 24, + 2, 7, 14, 17, 23])), array([ 1., 1., 2., 1., 3., 3., 1., 4., 6., 4., 1., 1., 1., + 1., 1., 2., 1., 2., 1., 1., 3., 1., 3., 3., 3., 1., + 1., 1., 4., 6., 4., 4., 6., 4., 1., 1., 2., 1., 2., + 1., 1., 2., 1., 2., 2., 4., 1., 1., 2., 2., 1., 2., + 3., 6., 3., 1., 6., 3., 1., 3., 2., 1., 4., 2., 1., + 8., 6., 12., 4., 4., 8., 6., 1., 1., 3., 3., 1., 3., + 1., 3., 3., 1., 3., 1., 2., 3., 3., 6., 1., 6., 1., + 3., 2., 3., 1., 3., 3., 3., 3., 9., 9., 9., 1., 1., + 9., 3., 3., 1., 3., 4., 6., 12., 3., 1., 4., 12., 18., + 18., 12., 4., 1., 1., 4., 6., 4., 1., 1., 4., 6., 4., + 4., 6., 1., 4., 1., 4., 2., 1., 8., 6., 4., 12., 4., + 8., 1., 6., 1., 4., 3., 12., 6., 3., 1., 12., 4., 18., + 12., 18., 1., 4., 1., 4., 4., 6., 16., 6., 24., 24., 4., + 4., 1., 1., 16., 16., 36.]))