diff options
| author | J08nY | 2024-01-18 13:53:27 +0100 |
|---|---|---|
| committer | J08nY | 2024-01-18 14:00:11 +0100 |
| commit | 1c30c7a7088c8434c3a46d8855341c550d56e142 (patch) | |
| tree | 593e0a5aa02626574ba220c594989bef85aa0d68 | |
| parent | 27eb06e6d68ec9a154e73182c6aaeb50832b8abd (diff) | |
| download | pyecsca-notebook-1c30c7a7088c8434c3a46d8855341c550d56e142.tar.gz pyecsca-notebook-1c30c7a7088c8434c3a46d8855341c550d56e142.tar.zst pyecsca-notebook-1c30c7a7088c8434c3a46d8855341c550d56e142.zip | |
Add different scalars.
| -rw-r--r-- | re/zvp.ipynb | 1841 |
1 files changed, 83 insertions, 1758 deletions
diff --git a/re/zvp.ipynb b/re/zvp.ipynb index e3e607e..2b8c738 100644 --- a/re/zvp.ipynb +++ b/re/zvp.ipynb @@ -10,7 +10,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "17a9e580-5f1e-45c9-8afd-fc35e833b0b0", "metadata": {}, "outputs": [], @@ -24,7 +24,7 @@ "from itertools import product\n", "from IPython.display import HTML, display\n", "from tqdm.notebook import tqdm\n", - "from anytree import RenderTree\n", + "from anytree import RenderTree, PreOrderIter\n", "from concurrent.futures import ProcessPoolExecutor, as_completed\n", "\n", "from pyecsca.ec.model import ShortWeierstrassModel\n", @@ -34,7 +34,7 @@ "from pyecsca.ec.formula import FormulaAction, AdditionFormula, DoublingFormula\n", "from pyecsca.ec.point import Point\n", "from pyecsca.ec.mod import Mod, gcd, SymbolicMod\n", - "from pyecsca.sca.re.tree import build_distinguishing_tree\n", + "from pyecsca.sca.re.tree import build_distinguishing_tree, expand_tree\n", "from pyecsca.sca.re.rpa import MultipleContext\n", "from pyecsca.sca.re.zvp import zvp_points, compute_factor_set\n", "from pyecsca.ec.context import DefaultContext, local\n", @@ -46,7 +46,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "c2240ed4-5279-487a-ad90-f6a6798f403c", "metadata": {}, "outputs": [], @@ -66,7 +66,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "8de124f1-9498-4e55-8b7f-1bd291ccf3fe", "metadata": {}, "outputs": [], @@ -79,7 +79,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "2193ab53-9dc9-4ba4-89d3-e331e5cc20de", "metadata": {}, "outputs": [], @@ -119,7 +119,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "d8ea0c4d-86e1-46af-ac20-569e6ef5439d", "metadata": {}, "outputs": [], @@ -139,7 +139,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "0252f8fa-012c-453c-ba23-b40f9686fcce", "metadata": {}, "outputs": [], @@ -172,15 +172,15 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "7ab00a5c-2873-40c0-a81c-873350897e46", "metadata": {}, "outputs": [], "source": [ - "scalar = 123456789\n", + "scalars = [123456789, 98765432, 0b10000000, 0b1010101010, 0b1010101, 77777, 66666, 55555, 44444, 33333, 22222, 11111, 0b1111111111]\n", "\n", "chains = []\n", - "for i, params in enumerate(curves):\n", + "for i, (scalar, params) in enumerate(zip(scalars, curves)):\n", " chain = addition_chain(scalar, params, LTRMultiplier, lambda add,dbl: LTRMultiplier(add, dbl, None, False, AccumulationOrder.PeqRP, True, True))\n", " chains.append(chain)" ] @@ -195,28 +195,13 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "91bc36bb-80e8-41d8-8612-7f9e24bdf278", "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "1632e60f52e54563a2243cf3d179da3b", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Compute: 0%| | 0/745 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ - "bound = 5\n", - "chain_bound = 5\n", + "bound = 15\n", + "chain_bound = 10\n", "\n", "formula_classes = [AdditionFormula, DoublingFormula]\n", "point_chains = {}\n", @@ -251,25 +236,10 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "b7c7b341-5b15-44fb-b9cf-462b64e7536e", "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "7bc93ed3bb94436e9fc5d20f86c83cb0", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Accumulate for coord systems: 0%| | 0/11 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "point_map = {}\n", "for coord_name, coords in tqdm(model.coordinates.items(), desc=\"Accumulate for coord systems\"):\n", @@ -289,7 +259,8 @@ " for point in poly_points:\n", " points.add((point, affine_params))\n", " point_map[formulas] = points\n", - "all_points = set().union(*point_map.values())" + "all_points = set().union(*point_map.values())\n", + "print(len(all_points))" ] }, { @@ -302,41 +273,23 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "id": "8afea2a8-49a1-4969-a19e-9e17e26fb1e8", "metadata": {}, "outputs": [], "source": [ - "tree = build_distinguishing_tree(point_map)" + "tree = build_distinguishing_tree(set(point_map.keys()), point_map)" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "id": "49ee4c6f", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "4, 37, 4, 27, 2, 4, 12, 17, 4, 6, 2, 67, 1, 4, 2, 8, 2, 6, 1, 3, 4, 1, 6, 3, 3, 6, 2, 4, " - ] - } - ], + "outputs": [], "source": [ "def print_leaf_sizes(tree):\n", - " leaves = []\n", - " nodes = [tree]\n", - " while nodes:\n", - " new_nodes = []\n", - " for node in nodes:\n", - " if node.children:\n", - " new_nodes.extend(node.children)\n", - " else:\n", - " leaves.append(node)\n", - " nodes = new_nodes \n", - " leaf_sizes = [len(leaf.cfgs) for leaf in leaves]\n", + " leaf_sizes = [len(leaf.cfgs) for leaf in tree.leaves]\n", " print(sorted(leaf_sizes))\n", "\n", "print_leaf_sizes(tree)" @@ -344,315 +297,12 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "id": "ab09b767-71ca-4d28-abf0-532307efefbd", "metadata": { "scrolled": true }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[x=7523181643117586774, y=861591372171155399]\n", - "DomainParameters(EllipticCurve)\n", - "├── [x=4173724707785958223, y=6577250203972113290]\n", - "│ DomainParameters(EllipticCurve)\n", - "│ ├── [x=198756535338419930, y=10649610515976041289]\n", - "│ │ DomainParameters(EllipticCurve)\n", - "│ │ ├── shortw/projective/add-1998-cmo-2, shortw/projective/dbl-2015-rcb\n", - "│ │ │ shortw/projective/add-1998-cmo-2, shortw/projective/dbl-2016-rcb\n", - "│ │ │ shortw/projective/add-1998-cmo, shortw/projective/dbl-2015-rcb\n", - "│ │ │ shortw/projective/add-1998-cmo, shortw/projective/dbl-2016-rcb\n", - "│ │ └── [x=710459779677453253, y=8718793080546575443]\n", - "│ │ DomainParameters(EllipticCurve)\n", - "│ │ ├── shortw/jacobian/add-1998-cmo-2, shortw/jacobian/dbl-1998-hnm\n", - "│ │ │ shortw/jacobian/add-1998-cmo, shortw/jacobian/dbl-1998-hnm\n", - "│ │ │ shortw/jacobian/add-2007-bl, shortw/jacobian/dbl-1998-hnm\n", - "│ │ │ shortw/jacobian/add-bc-r1rv76-jac, shortw/jacobian/dbl-1998-hnm\n", - "│ │ └── shortw/projective/add-1998-cmo-2, shortw/projective/dbl-2007-bl\n", - "│ │ shortw/projective/add-1998-cmo-2, shortw/projective/dbl-1998-cmo-2\n", - "│ │ shortw/projective/add-1998-cmo-2, shortw/projective/dbl-1998-cmo\n", - "│ │ shortw/projective/add-1998-cmo, shortw/projective/dbl-2007-bl\n", - "│ │ shortw/projective/add-1998-cmo, shortw/projective/dbl-1998-cmo-2\n", - "│ │ shortw/projective/add-1998-cmo, shortw/projective/dbl-1998-cmo\n", - "│ │ shortw/jacobian/add-1998-cmo-2, shortw/jacobian/dbl-1986-cc\n", - "│ │ shortw/jacobian/add-1998-cmo-2, shortw/jacobian/dbl-2007-bl\n", - "│ │ shortw/jacobian/add-1998-cmo-2, shortw/jacobian/dbl-1998-cmo-2\n", - "│ │ shortw/jacobian/add-1998-cmo-2, shortw/jacobian/dbl-1998-cmo\n", - "│ │ shortw/jacobian/add-1998-cmo, shortw/jacobian/dbl-1986-cc\n", - "│ │ shortw/jacobian/add-1998-cmo, shortw/jacobian/dbl-2007-bl\n", - "│ │ shortw/jacobian/add-1998-cmo, shortw/jacobian/dbl-1998-cmo-2\n", - "│ │ shortw/jacobian/add-1998-cmo, shortw/jacobian/dbl-1998-cmo\n", - "│ │ shortw/jacobian/add-2007-bl, shortw/jacobian/dbl-1986-cc\n", - "│ │ shortw/jacobian/add-2007-bl, shortw/jacobian/dbl-2007-bl\n", - "│ │ shortw/jacobian/add-2007-bl, shortw/jacobian/dbl-1998-cmo-2\n", - "│ │ shortw/jacobian/add-2007-bl, shortw/jacobian/dbl-1998-cmo\n", - "│ │ shortw/jacobian/add-bc-r1rv76-jac, shortw/jacobian/dbl-1986-cc\n", - "│ │ shortw/jacobian/add-bc-r1rv76-jac, shortw/jacobian/dbl-2007-bl\n", - "│ │ shortw/jacobian/add-bc-r1rv76-jac, shortw/jacobian/dbl-1998-cmo-2\n", - "│ │ shortw/jacobian/add-bc-r1rv76-jac, shortw/jacobian/dbl-1998-cmo\n", - "│ │ shortw/xyzz/add-2008-s, shortw/xyzz/dbl-2008-s-1\n", - "│ │ shortw/modified/add-1998-cmo-2, shortw/modified/dbl-2009-bl\n", - "│ │ shortw/modified/add-1998-cmo-2, shortw/modified/dbl-1998-cmo-2\n", - "│ │ shortw/modified/add-2009-bl, shortw/modified/dbl-2009-bl\n", - "│ │ shortw/modified/add-2009-bl, shortw/modified/dbl-1998-cmo-2\n", - "│ └── [x=161110322234615011, y=6188535790273537383]\n", - "│ DomainParameters(EllipticCurve)\n", - "│ ├── [x=7018390556762767964, y=8234992169006142300]\n", - "│ │ DomainParameters(EllipticCurve)\n", - "│ │ ├── shortw/projective-3/add-1998-cmo-2, shortw/projective-3/dbl-2015-rcb\n", - "│ │ │ shortw/projective-3/add-1998-cmo, shortw/projective-3/dbl-2015-rcb\n", - "│ │ └── shortw/projective-3/add-1998-cmo-2, shortw/projective-3/dbl-2015-rcb-3\n", - "│ │ shortw/projective-3/add-1998-cmo-2, shortw/projective-3/dbl-2016-rcb\n", - "│ │ shortw/projective-3/add-1998-cmo, shortw/projective-3/dbl-2015-rcb-3\n", - "│ │ shortw/projective-3/add-1998-cmo, shortw/projective-3/dbl-2016-rcb\n", - "│ └── shortw/projective-3/add-1998-cmo-2, shortw/projective-3/dbl-2007-bl\n", - "│ shortw/projective-3/add-1998-cmo-2, shortw/projective-3/dbl-1998-cmo-2\n", - "│ shortw/projective-3/add-1998-cmo-2, shortw/projective-3/dbl-2007-bl-2\n", - "│ shortw/projective-3/add-1998-cmo-2, shortw/projective-3/dbl-1998-cmo\n", - "│ shortw/projective-3/add-1998-cmo, shortw/projective-3/dbl-2007-bl\n", - "│ shortw/projective-3/add-1998-cmo, shortw/projective-3/dbl-1998-cmo-2\n", - "│ shortw/projective-3/add-1998-cmo, shortw/projective-3/dbl-2007-bl-2\n", - "│ shortw/projective-3/add-1998-cmo, shortw/projective-3/dbl-1998-cmo\n", - "│ shortw/xyzz-3/add-2008-s, shortw/xyzz-3/dbl-2008-s-1\n", - "│ shortw/xyzz-3/add-2008-s, shortw/xyzz-3/dbl-2008-s-2\n", - "│ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-1986-cc\n", - "│ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-1998-hnm-2\n", - "│ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-1998-hnm\n", - "│ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-2007-bl\n", - "│ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-2004-hmv\n", - "│ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-1998-cmo-2\n", - "│ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-2001-b\n", - "│ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-1998-cmo\n", - "│ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-1986-cc-2\n", - "│ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-1986-cc\n", - "│ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-1998-hnm-2\n", - "│ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-1998-hnm\n", - "│ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-2007-bl\n", - "│ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-2004-hmv\n", - "│ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-1998-cmo-2\n", - "│ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-2001-b\n", - "│ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-1998-cmo\n", - "│ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-1986-cc-2\n", - "│ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-1986-cc\n", - "│ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-1998-hnm-2\n", - "│ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-1998-hnm\n", - "│ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-2007-bl\n", - "│ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-2004-hmv\n", - "│ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-1998-cmo-2\n", - "│ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-2001-b\n", - "│ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-1998-cmo\n", - "│ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-1986-cc-2\n", - "└── [x=3271642899270608132, y=4094231858049384691]\n", - " DomainParameters(EllipticCurve)\n", - " ├── [x=8462011093657406711, y=9385955884972991198]\n", - " │ DomainParameters(EllipticCurve)\n", - " │ ├── [x=3909394990548410378, y=1271934111897046201]\n", - " │ │ DomainParameters(EllipticCurve)\n", - " │ │ ├── [x=198756535338419930, y=10649610515976041289]\n", - " │ │ │ DomainParameters(EllipticCurve)\n", - " │ │ │ ├── shortw/projective/add-2002-bj, shortw/projective/dbl-2015-rcb\n", - " │ │ │ │ shortw/projective/add-2002-bj, shortw/projective/dbl-2016-rcb\n", - " │ │ │ │ shortw/projective/add-2007-bl, shortw/projective/dbl-2015-rcb\n", - " │ │ │ │ shortw/projective/add-2007-bl, shortw/projective/dbl-2016-rcb\n", - " │ │ │ └── shortw/projective/add-2002-bj, shortw/projective/dbl-2007-bl\n", - " │ │ │ shortw/projective/add-2002-bj, shortw/projective/dbl-1998-cmo-2\n", - " │ │ │ shortw/projective/add-2002-bj, shortw/projective/dbl-1998-cmo\n", - " │ │ │ shortw/projective/add-2007-bl, shortw/projective/dbl-2007-bl\n", - " │ │ │ shortw/projective/add-2007-bl, shortw/projective/dbl-1998-cmo-2\n", - " │ │ │ shortw/projective/add-2007-bl, shortw/projective/dbl-1998-cmo\n", - " │ │ └── [x=9280663850407308169, y=3970590255664920732]\n", - " │ │ DomainParameters(EllipticCurve)\n", - " │ │ ├── [x=710459779677453253, y=8718793080546575443]\n", - " │ │ │ DomainParameters(EllipticCurve)\n", - " │ │ │ ├── shortw/jacobian/add-1998-hnm, shortw/jacobian/dbl-1998-hnm\n", - " │ │ │ └── shortw/jacobian/add-1998-hnm, shortw/jacobian/dbl-1986-cc\n", - " │ │ │ shortw/jacobian/add-1998-hnm, shortw/jacobian/dbl-2007-bl\n", - " │ │ │ shortw/jacobian/add-1998-hnm, shortw/jacobian/dbl-1998-cmo-2\n", - " │ │ │ shortw/jacobian/add-1998-hnm, shortw/jacobian/dbl-1998-cmo\n", - " │ │ └── [x=710459779677453253, y=8718793080546575443]\n", - " │ │ DomainParameters(EllipticCurve)\n", - " │ │ ├── shortw/jacobian/add-1986-cc, shortw/jacobian/dbl-1998-hnm\n", - " │ │ │ shortw/jacobian/add-2001-b, shortw/jacobian/dbl-1998-hnm\n", - " │ │ └── shortw/jacobian/add-1986-cc, shortw/jacobian/dbl-1986-cc\n", - " │ │ shortw/jacobian/add-1986-cc, shortw/jacobian/dbl-2007-bl\n", - " │ │ shortw/jacobian/add-1986-cc, shortw/jacobian/dbl-1998-cmo-2\n", - " │ │ shortw/jacobian/add-1986-cc, shortw/jacobian/dbl-1998-cmo\n", - " │ │ shortw/jacobian/add-2001-b, shortw/jacobian/dbl-1986-cc\n", - " │ │ shortw/jacobian/add-2001-b, shortw/jacobian/dbl-2007-bl\n", - " │ │ shortw/jacobian/add-2001-b, shortw/jacobian/dbl-1998-cmo-2\n", - " │ │ shortw/jacobian/add-2001-b, shortw/jacobian/dbl-1998-cmo\n", - " │ └── [x=3760330877114905034, y=14518154872986670897]\n", - " │ DomainParameters(EllipticCurve)\n", - " │ ├── [x=9185172264551501167, y=1489984362467478237]\n", - " │ │ DomainParameters(EllipticCurve)\n", - " │ │ ├── [x=5290749974607723184, y=9066658054269062673]\n", - " │ │ │ DomainParameters(EllipticCurve)\n", - " │ │ │ ├── shortw/projective-1/add-2002-bj, shortw/projective-1/dbl-2015-rcb\n", - " │ │ │ │ shortw/projective-1/add-2007-bl, shortw/projective-1/dbl-2015-rcb\n", - " │ │ │ └── shortw/projective-1/add-2002-bj, shortw/projective-1/dbl-2007-bl\n", - " │ │ │ shortw/projective-1/add-2002-bj, shortw/projective-1/dbl-1998-cmo-2\n", - " │ │ │ shortw/projective-1/add-2002-bj, shortw/projective-1/dbl-1998-cmo\n", - " │ │ │ shortw/projective-1/add-2007-bl, shortw/projective-1/dbl-2007-bl\n", - " │ │ │ shortw/projective-1/add-2007-bl, shortw/projective-1/dbl-1998-cmo-2\n", - " │ │ │ shortw/projective-1/add-2007-bl, shortw/projective-1/dbl-1998-cmo\n", - " │ │ └── [x=9023895164928322279, y=3383060556063092686]\n", - " │ │ DomainParameters(EllipticCurve)\n", - " │ │ ├── shortw/projective-1/add-2002-bj-2, shortw/projective-1/dbl-2015-rcb\n", - " │ │ └── shortw/projective-1/add-2002-bj-2, shortw/projective-1/dbl-2007-bl\n", - " │ │ shortw/projective-1/add-2002-bj-2, shortw/projective-1/dbl-1998-cmo-2\n", - " │ │ shortw/projective-1/add-2002-bj-2, shortw/projective-1/dbl-1998-cmo\n", - " │ └── [x=9023895164928322279, y=11600196812807098545]\n", - " │ DomainParameters(EllipticCurve)\n", - " │ ├── [x=8976497402921340665, y=14893197716203064256]\n", - " │ │ DomainParameters(EllipticCurve)\n", - " │ │ ├── shortw/projective/add-2016-rcb, shortw/projective/dbl-2015-rcb\n", - " │ │ │ shortw/projective/add-2016-rcb, shortw/projective/dbl-2016-rcb\n", - " │ │ │ shortw/projective/add-2015-rcb, shortw/projective/dbl-2015-rcb\n", - " │ │ │ shortw/projective/add-2015-rcb, shortw/projective/dbl-2016-rcb\n", - " │ │ └── shortw/projective-1/add-2015-rcb, shortw/projective-1/dbl-2015-rcb\n", - " │ └── [x=8976497402921340665, y=14893197716203064256]\n", - " │ DomainParameters(EllipticCurve)\n", - " │ ├── shortw/projective/add-2016-rcb, shortw/projective/dbl-2007-bl\n", - " │ │ shortw/projective/add-2016-rcb, shortw/projective/dbl-1998-cmo-2\n", - " │ │ shortw/projective/add-2016-rcb, shortw/projective/dbl-1998-cmo\n", - " │ │ shortw/projective/add-2015-rcb, shortw/projective/dbl-2007-bl\n", - " │ │ shortw/projective/add-2015-rcb, shortw/projective/dbl-1998-cmo-2\n", - " │ │ shortw/projective/add-2015-rcb, shortw/projective/dbl-1998-cmo\n", - " │ └── shortw/projective-1/add-2015-rcb, shortw/projective-1/dbl-2007-bl\n", - " │ shortw/projective-1/add-2015-rcb, shortw/projective-1/dbl-1998-cmo-2\n", - " │ shortw/projective-1/add-2015-rcb, shortw/projective-1/dbl-1998-cmo\n", - " └── [x=3261882760552750749, y=5224146365954570556]\n", - " DomainParameters(EllipticCurve)\n", - " ├── [x=161110322234615011, y=6188535790273537383]\n", - " │ DomainParameters(EllipticCurve)\n", - " │ ├── [x=6741014024306303479, y=8089192144272372943]\n", - " │ │ DomainParameters(EllipticCurve)\n", - " │ │ ├── [x=7018390556762767964, y=8234992169006142300]\n", - " │ │ │ DomainParameters(EllipticCurve)\n", - " │ │ │ ├── shortw/projective-3/add-2016-rcb, shortw/projective-3/dbl-2015-rcb\n", - " │ │ │ │ shortw/projective-3/add-2015-rcb, shortw/projective-3/dbl-2015-rcb\n", - " │ │ │ │ shortw/projective-3/add-2015-rcb-3, shortw/projective-3/dbl-2015-rcb\n", - " │ │ │ └── shortw/projective-3/add-2016-rcb, shortw/projective-3/dbl-2015-rcb-3\n", - " │ │ │ shortw/projective-3/add-2016-rcb, shortw/projective-3/dbl-2016-rcb\n", - " │ │ │ shortw/projective-3/add-2015-rcb, shortw/projective-3/dbl-2015-rcb-3\n", - " │ │ │ shortw/projective-3/add-2015-rcb, shortw/projective-3/dbl-2016-rcb\n", - " │ │ │ shortw/projective-3/add-2015-rcb-3, shortw/projective-3/dbl-2015-rcb-3\n", - " │ │ │ shortw/projective-3/add-2015-rcb-3, shortw/projective-3/dbl-2016-rcb\n", - " │ │ └── [x=7018390556762767964, y=8234992169006142300]\n", - " │ │ DomainParameters(EllipticCurve)\n", - " │ │ ├── shortw/projective-3/add-2002-bj, shortw/projective-3/dbl-2015-rcb\n", - " │ │ │ shortw/projective-3/add-2007-bl, shortw/projective-3/dbl-2015-rcb\n", - " │ │ └── shortw/projective-3/add-2002-bj, shortw/projective-3/dbl-2015-rcb-3\n", - " │ │ shortw/projective-3/add-2002-bj, shortw/projective-3/dbl-2016-rcb\n", - " │ │ shortw/projective-3/add-2007-bl, shortw/projective-3/dbl-2015-rcb-3\n", - " │ │ shortw/projective-3/add-2007-bl, shortw/projective-3/dbl-2016-rcb\n", - " │ └── shortw/projective-3/add-2016-rcb, shortw/projective-3/dbl-2007-bl\n", - " │ shortw/projective-3/add-2016-rcb, shortw/projective-3/dbl-1998-cmo-2\n", - " │ shortw/projective-3/add-2016-rcb, shortw/projective-3/dbl-2007-bl-2\n", - " │ shortw/projective-3/add-2016-rcb, shortw/projective-3/dbl-1998-cmo\n", - " │ shortw/projective-3/add-2015-rcb, shortw/projective-3/dbl-2007-bl\n", - " │ shortw/projective-3/add-2015-rcb, shortw/projective-3/dbl-1998-cmo-2\n", - " │ shortw/projective-3/add-2015-rcb, shortw/projective-3/dbl-2007-bl-2\n", - " │ shortw/projective-3/add-2015-rcb, shortw/projective-3/dbl-1998-cmo\n", - " │ shortw/projective-3/add-2015-rcb-3, shortw/projective-3/dbl-2007-bl\n", - " │ shortw/projective-3/add-2015-rcb-3, shortw/projective-3/dbl-1998-cmo-2\n", - " │ shortw/projective-3/add-2015-rcb-3, shortw/projective-3/dbl-2007-bl-2\n", - " │ shortw/projective-3/add-2015-rcb-3, shortw/projective-3/dbl-1998-cmo\n", - " └── [x=8583585759655994824, y=5121594309025134149]\n", - " DomainParameters(EllipticCurve)\n", - " ├── shortw/projective-3/add-2002-bj, shortw/projective-3/dbl-2007-bl\n", - " │ shortw/projective-3/add-2002-bj, shortw/projective-3/dbl-1998-cmo-2\n", - " │ shortw/projective-3/add-2002-bj, shortw/projective-3/dbl-2007-bl-2\n", - " │ shortw/projective-3/add-2002-bj, shortw/projective-3/dbl-1998-cmo\n", - " │ shortw/projective-3/add-2007-bl, shortw/projective-3/dbl-2007-bl\n", - " │ shortw/projective-3/add-2007-bl, shortw/projective-3/dbl-1998-cmo-2\n", - " │ shortw/projective-3/add-2007-bl, shortw/projective-3/dbl-2007-bl-2\n", - " │ shortw/projective-3/add-2007-bl, shortw/projective-3/dbl-1998-cmo\n", - " │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-1986-cc\n", - " │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-1998-hnm-2\n", - " │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-1998-hnm\n", - " │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-2007-bl\n", - " │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-2004-hmv\n", - " │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-1998-cmo-2\n", - " │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-2001-b\n", - " │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-1998-cmo\n", - " │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-1986-cc-2\n", - " └── [x=9023895164928322279, y=3383060556063092686]\n", - " DomainParameters(EllipticCurve)\n", - " ├── shortw/projective-1/add-1998-cmo-2, shortw/projective-1/dbl-2015-rcb\n", - " │ shortw/projective-1/add-1998-cmo, shortw/projective-1/dbl-2015-rcb\n", - " └── shortw/jacobian-0/add-1998-cmo-2, shortw/jacobian-0/dbl-1986-cc\n", - " shortw/jacobian-0/add-1998-cmo-2, shortw/jacobian-0/dbl-1998-hnm\n", - " shortw/jacobian-0/add-1998-cmo-2, shortw/jacobian-0/dbl-2007-bl\n", - " shortw/jacobian-0/add-1998-cmo-2, shortw/jacobian-0/dbl-2009-l\n", - " shortw/jacobian-0/add-1998-cmo-2, shortw/jacobian-0/dbl-1998-cmo-2\n", - " shortw/jacobian-0/add-1998-cmo-2, shortw/jacobian-0/dbl-1998-cmo\n", - " shortw/jacobian-0/add-1998-cmo-2, shortw/jacobian-0/dbl-2009-alnr\n", - " shortw/jacobian-0/add-1998-cmo, shortw/jacobian-0/dbl-1986-cc\n", - " shortw/jacobian-0/add-1998-cmo, shortw/jacobian-0/dbl-1998-hnm\n", - " shortw/jacobian-0/add-1998-cmo, shortw/jacobian-0/dbl-2007-bl\n", - " shortw/jacobian-0/add-1998-cmo, shortw/jacobian-0/dbl-2009-l\n", - " shortw/jacobian-0/add-1998-cmo, shortw/jacobian-0/dbl-1998-cmo-2\n", - " shortw/jacobian-0/add-1998-cmo, shortw/jacobian-0/dbl-1998-cmo\n", - " shortw/jacobian-0/add-1998-cmo, shortw/jacobian-0/dbl-2009-alnr\n", - " shortw/jacobian-0/add-1998-hnm, shortw/jacobian-0/dbl-1986-cc\n", - " shortw/jacobian-0/add-1998-hnm, shortw/jacobian-0/dbl-1998-hnm\n", - " shortw/jacobian-0/add-1998-hnm, shortw/jacobian-0/dbl-2007-bl\n", - " shortw/jacobian-0/add-1998-hnm, shortw/jacobian-0/dbl-2009-l\n", - " shortw/jacobian-0/add-1998-hnm, shortw/jacobian-0/dbl-1998-cmo-2\n", - " shortw/jacobian-0/add-1998-hnm, shortw/jacobian-0/dbl-1998-cmo\n", - " shortw/jacobian-0/add-1998-hnm, shortw/jacobian-0/dbl-2009-alnr\n", - " shortw/jacobian-0/add-1986-cc, shortw/jacobian-0/dbl-1986-cc\n", - " shortw/jacobian-0/add-1986-cc, shortw/jacobian-0/dbl-1998-hnm\n", - " shortw/jacobian-0/add-1986-cc, shortw/jacobian-0/dbl-2007-bl\n", - " shortw/jacobian-0/add-1986-cc, shortw/jacobian-0/dbl-2009-l\n", - " shortw/jacobian-0/add-1986-cc, shortw/jacobian-0/dbl-1998-cmo-2\n", - " shortw/jacobian-0/add-1986-cc, shortw/jacobian-0/dbl-1998-cmo\n", - " shortw/jacobian-0/add-1986-cc, shortw/jacobian-0/dbl-2009-alnr\n", - " shortw/jacobian-0/add-2001-b, shortw/jacobian-0/dbl-1986-cc\n", - " shortw/jacobian-0/add-2001-b, shortw/jacobian-0/dbl-1998-hnm\n", - " shortw/jacobian-0/add-2001-b, shortw/jacobian-0/dbl-2007-bl\n", - " shortw/jacobian-0/add-2001-b, shortw/jacobian-0/dbl-2009-l\n", - " shortw/jacobian-0/add-2001-b, shortw/jacobian-0/dbl-1998-cmo-2\n", - " shortw/jacobian-0/add-2001-b, shortw/jacobian-0/dbl-1998-cmo\n", - " shortw/jacobian-0/add-2001-b, shortw/jacobian-0/dbl-2009-alnr\n", - " shortw/jacobian-0/add-2007-bl, shortw/jacobian-0/dbl-1986-cc\n", - " shortw/jacobian-0/add-2007-bl, shortw/jacobian-0/dbl-1998-hnm\n", - " shortw/jacobian-0/add-2007-bl, shortw/jacobian-0/dbl-2007-bl\n", - " shortw/jacobian-0/add-2007-bl, shortw/jacobian-0/dbl-2009-l\n", - " shortw/jacobian-0/add-2007-bl, shortw/jacobian-0/dbl-1998-cmo-2\n", - " shortw/jacobian-0/add-2007-bl, shortw/jacobian-0/dbl-1998-cmo\n", - " shortw/jacobian-0/add-2007-bl, shortw/jacobian-0/dbl-2009-alnr\n", - " shortw/w12-0/add-2010-cln, shortw/w12-0/dbl-2010-cln\n", - " shortw/projective-1/add-1998-cmo-2, shortw/projective-1/dbl-2007-bl\n", - " shortw/projective-1/add-1998-cmo-2, shortw/projective-1/dbl-1998-cmo-2\n", - " shortw/projective-1/add-1998-cmo-2, shortw/projective-1/dbl-1998-cmo\n", - " shortw/projective-1/add-1998-cmo, shortw/projective-1/dbl-2007-bl\n", - " shortw/projective-1/add-1998-cmo, shortw/projective-1/dbl-1998-cmo-2\n", - " shortw/projective-1/add-1998-cmo, shortw/projective-1/dbl-1998-cmo\n", - " shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-1986-cc\n", - " shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-1998-hnm-2\n", - " shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-1998-hnm\n", - " shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-2007-bl\n", - " shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-2004-hmv\n", - " shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-1998-cmo-2\n", - " shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-2001-b\n", - " shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-1998-cmo\n", - " shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-1986-cc-2\n", - " shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-1986-cc\n", - " shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-1998-hnm-2\n", - " shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-1998-hnm\n", - " shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-2007-bl\n", - " shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-2004-hmv\n", - " shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-1998-cmo-2\n", - " shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-2001-b\n", - " shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-1998-cmo\n", - " shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-1986-cc-2\n" - ] - } - ], + "outputs": [], "source": [ "print(RenderTree(tree).by_attr(lambda n: n.name if n.name is not None else \"\\n\".join((\", \".join(str(formula) for formula in cfg) for cfg in n.cfgs))))" ] @@ -667,25 +317,10 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "id": "ca932717-2b0a-4dea-ae84-988b7d9af233", "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "4655629a073d4e158f00d150dbf363b5", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Remap: 0%| | 0/242 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "def remap(coords, formulas, points, scalar):\n", " mult = LTRMultiplier(*formulas, None, False, AccumulationOrder.PeqRP, True, True)\n", @@ -715,8 +350,6 @@ " hit_zero = any(int(value) == 0 for value in trace)\n", " if hit_zero:\n", " new_points.add((point, params))\n", - " #hit_zero = sum(int(value) == 0 for value in trace)\n", - " #new_points.add((point, hit_zero, params))\n", " return new_points\n", "\n", "remapped_point_map = {}\n", @@ -748,261 +381,12 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "id": "cc87dfd1-f058-4338-aaca-fc05105fc9f1", "metadata": { "scrolled": true }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "shortw/jacobian-0/add-1998-cmo-2 shortw/jacobian-0/dbl-1986-cc 0 32 0 32\n", - "shortw/jacobian-0/add-1998-cmo-2 shortw/jacobian-0/dbl-1998-hnm 0 32 0 32\n", - "shortw/jacobian-0/add-1998-cmo-2 shortw/jacobian-0/dbl-2007-bl 0 32 0 32\n", - "shortw/jacobian-0/add-1998-cmo-2 shortw/jacobian-0/dbl-2009-l 0 0 0 0\n", - "shortw/jacobian-0/add-1998-cmo-2 shortw/jacobian-0/dbl-1998-cmo-2 0 32 0 32\n", - "shortw/jacobian-0/add-1998-cmo-2 shortw/jacobian-0/dbl-1998-cmo 0 32 0 32\n", - "shortw/jacobian-0/add-1998-cmo-2 shortw/jacobian-0/dbl-2009-alnr 0 3 0 3\n", - "shortw/jacobian-0/add-1998-cmo shortw/jacobian-0/dbl-1986-cc 0 32 0 32\n", - "shortw/jacobian-0/add-1998-cmo shortw/jacobian-0/dbl-1998-hnm 0 32 0 32\n", - "shortw/jacobian-0/add-1998-cmo shortw/jacobian-0/dbl-2007-bl 0 32 0 32\n", - "shortw/jacobian-0/add-1998-cmo shortw/jacobian-0/dbl-2009-l 0 0 0 0\n", - "shortw/jacobian-0/add-1998-cmo shortw/jacobian-0/dbl-1998-cmo-2 0 32 0 32\n", - "shortw/jacobian-0/add-1998-cmo shortw/jacobian-0/dbl-1998-cmo 0 32 0 32\n", - "shortw/jacobian-0/add-1998-cmo shortw/jacobian-0/dbl-2009-alnr 0 3 0 3\n", - "shortw/jacobian-0/add-1998-hnm shortw/jacobian-0/dbl-1986-cc 0 32 0 32\n", - "shortw/jacobian-0/add-1998-hnm shortw/jacobian-0/dbl-1998-hnm 0 32 0 32\n", - "shortw/jacobian-0/add-1998-hnm shortw/jacobian-0/dbl-2007-bl 0 32 0 32\n", - "shortw/jacobian-0/add-1998-hnm shortw/jacobian-0/dbl-2009-l 0 0 0 0\n", - "shortw/jacobian-0/add-1998-hnm shortw/jacobian-0/dbl-1998-cmo-2 0 32 0 32\n", - "shortw/jacobian-0/add-1998-hnm shortw/jacobian-0/dbl-1998-cmo 0 32 0 32\n", - "shortw/jacobian-0/add-1998-hnm shortw/jacobian-0/dbl-2009-alnr 0 3 0 3\n", - "shortw/jacobian-0/add-1986-cc shortw/jacobian-0/dbl-1986-cc 0 32 0 32\n", - "shortw/jacobian-0/add-1986-cc shortw/jacobian-0/dbl-1998-hnm 0 32 0 32\n", - "shortw/jacobian-0/add-1986-cc shortw/jacobian-0/dbl-2007-bl 0 32 0 32\n", - "shortw/jacobian-0/add-1986-cc shortw/jacobian-0/dbl-2009-l 0 0 0 0\n", - "shortw/jacobian-0/add-1986-cc shortw/jacobian-0/dbl-1998-cmo-2 0 32 0 32\n", - "shortw/jacobian-0/add-1986-cc shortw/jacobian-0/dbl-1998-cmo 0 32 0 32\n", - "shortw/jacobian-0/add-1986-cc shortw/jacobian-0/dbl-2009-alnr 0 3 0 3\n", - "shortw/jacobian-0/add-2001-b shortw/jacobian-0/dbl-1986-cc 0 32 0 32\n", - "shortw/jacobian-0/add-2001-b shortw/jacobian-0/dbl-1998-hnm 0 32 0 32\n", - "shortw/jacobian-0/add-2001-b shortw/jacobian-0/dbl-2007-bl 0 32 0 32\n", - "shortw/jacobian-0/add-2001-b shortw/jacobian-0/dbl-2009-l 0 0 0 0\n", - "shortw/jacobian-0/add-2001-b shortw/jacobian-0/dbl-1998-cmo-2 0 32 0 32\n", - "shortw/jacobian-0/add-2001-b shortw/jacobian-0/dbl-1998-cmo 0 32 0 32\n", - "shortw/jacobian-0/add-2001-b shortw/jacobian-0/dbl-2009-alnr 0 3 0 3\n", - "shortw/jacobian-0/add-2007-bl shortw/jacobian-0/dbl-1986-cc 0 32 0 32\n", - "shortw/jacobian-0/add-2007-bl shortw/jacobian-0/dbl-1998-hnm 0 32 0 32\n", - "shortw/jacobian-0/add-2007-bl shortw/jacobian-0/dbl-2007-bl 0 32 0 32\n", - "shortw/jacobian-0/add-2007-bl shortw/jacobian-0/dbl-2009-l 0 3 0 3\n", - "shortw/jacobian-0/add-2007-bl shortw/jacobian-0/dbl-1998-cmo-2 0 32 0 32\n", - "shortw/jacobian-0/add-2007-bl shortw/jacobian-0/dbl-1998-cmo 0 32 0 32\n", - "shortw/jacobian-0/add-2007-bl shortw/jacobian-0/dbl-2009-alnr 0 3 0 3\n", - "shortw/w12-0/add-2010-cln shortw/w12-0/dbl-2010-cln 0 0 0 0\n", - "shortw/projective-1/add-1998-cmo-2 shortw/projective-1/dbl-2015-rcb 6 6 0 0\n", - "shortw/projective-1/add-1998-cmo-2 shortw/projective-1/dbl-2007-bl 0 0 0 0\n", - "shortw/projective-1/add-1998-cmo-2 shortw/projective-1/dbl-1998-cmo-2 0 0 0 0\n", - "shortw/projective-1/add-1998-cmo-2 shortw/projective-1/dbl-1998-cmo 0 0 0 0\n", - "shortw/projective-1/add-2002-bj-2 shortw/projective-1/dbl-2015-rcb 10 10 0 0\n", - "shortw/projective-1/add-2002-bj-2 shortw/projective-1/dbl-2007-bl 4 4 0 0\n", - "shortw/projective-1/add-2002-bj-2 shortw/projective-1/dbl-1998-cmo-2 4 4 0 0\n", - "shortw/projective-1/add-2002-bj-2 shortw/projective-1/dbl-1998-cmo 4 4 0 0\n", - "shortw/projective-1/add-1998-cmo shortw/projective-1/dbl-2015-rcb 6 6 0 0\n", - "shortw/projective-1/add-1998-cmo shortw/projective-1/dbl-2007-bl 0 0 0 0\n", - "shortw/projective-1/add-1998-cmo shortw/projective-1/dbl-1998-cmo-2 0 0 0 0\n", - "shortw/projective-1/add-1998-cmo shortw/projective-1/dbl-1998-cmo 0 0 0 0\n", - "shortw/projective-1/add-2015-rcb shortw/projective-1/dbl-2015-rcb 23 23 0 0\n", - "shortw/projective-1/add-2015-rcb shortw/projective-1/dbl-2007-bl 19 19 0 0\n", - "shortw/projective-1/add-2015-rcb shortw/projective-1/dbl-1998-cmo-2 19 19 0 0\n", - "shortw/projective-1/add-2015-rcb shortw/projective-1/dbl-1998-cmo 19 19 0 0\n", - "shortw/projective-1/add-2002-bj shortw/projective-1/dbl-2015-rcb 16 16 0 0\n", - "shortw/projective-1/add-2002-bj shortw/projective-1/dbl-2007-bl 10 10 0 0\n", - "shortw/projective-1/add-2002-bj shortw/projective-1/dbl-1998-cmo-2 10 10 0 0\n", - "shortw/projective-1/add-2002-bj shortw/projective-1/dbl-1998-cmo 10 10 0 0\n", - "shortw/projective-1/add-2007-bl shortw/projective-1/dbl-2015-rcb 16 16 0 0\n", - "shortw/projective-1/add-2007-bl shortw/projective-1/dbl-2007-bl 10 10 0 0\n", - "shortw/projective-1/add-2007-bl shortw/projective-1/dbl-1998-cmo-2 10 10 0 0\n", - "shortw/projective-1/add-2007-bl shortw/projective-1/dbl-1998-cmo 10 10 0 0\n", - "shortw/projective/add-2016-rcb shortw/projective/dbl-2015-rcb 474 474 0 0\n", - "shortw/projective/add-2016-rcb shortw/projective/dbl-2007-bl 320 320 0 0\n", - "shortw/projective/add-2016-rcb shortw/projective/dbl-1998-cmo-2 320 320 0 0\n", - "shortw/projective/add-2016-rcb shortw/projective/dbl-2016-rcb 474 474 0 0\n", - "shortw/projective/add-2016-rcb shortw/projective/dbl-1998-cmo 320 320 0 0\n", - "shortw/projective/add-1998-cmo-2 shortw/projective/dbl-2015-rcb 232 264 0 32\n", - "shortw/projective/add-1998-cmo-2 shortw/projective/dbl-2007-bl 64 96 0 32\n", - "shortw/projective/add-1998-cmo-2 shortw/projective/dbl-1998-cmo-2 64 96 0 32\n", - "shortw/projective/add-1998-cmo-2 shortw/projective/dbl-2016-rcb 232 264 0 32\n", - "shortw/projective/add-1998-cmo-2 shortw/projective/dbl-1998-cmo 64 96 0 32\n", - "shortw/projective/add-1998-cmo shortw/projective/dbl-2015-rcb 232 264 0 32\n", - "shortw/projective/add-1998-cmo shortw/projective/dbl-2007-bl 64 96 0 32\n", - "shortw/projective/add-1998-cmo shortw/projective/dbl-1998-cmo-2 64 96 0 32\n", - "shortw/projective/add-1998-cmo shortw/projective/dbl-2016-rcb 232 264 0 32\n", - "shortw/projective/add-1998-cmo shortw/projective/dbl-1998-cmo 64 96 0 32\n", - "shortw/projective/add-2015-rcb shortw/projective/dbl-2015-rcb 474 474 0 0\n", - "shortw/projective/add-2015-rcb shortw/projective/dbl-2007-bl 320 320 0 0\n", - "shortw/projective/add-2015-rcb shortw/projective/dbl-1998-cmo-2 320 320 0 0\n", - "shortw/projective/add-2015-rcb shortw/projective/dbl-2016-rcb 474 474 0 0\n", - "shortw/projective/add-2015-rcb shortw/projective/dbl-1998-cmo 320 320 0 0\n", - "shortw/projective/add-2002-bj shortw/projective/dbl-2015-rcb 246 278 0 32\n", - "shortw/projective/add-2002-bj shortw/projective/dbl-2007-bl 78 110 0 32\n", - "shortw/projective/add-2002-bj shortw/projective/dbl-1998-cmo-2 78 110 0 32\n", - "shortw/projective/add-2002-bj shortw/projective/dbl-2016-rcb 246 278 0 32\n", - "shortw/projective/add-2002-bj shortw/projective/dbl-1998-cmo 78 110 0 32\n", - "shortw/projective/add-2007-bl shortw/projective/dbl-2015-rcb 246 278 0 32\n", - "shortw/projective/add-2007-bl shortw/projective/dbl-2007-bl 78 110 0 32\n", - "shortw/projective/add-2007-bl shortw/projective/dbl-1998-cmo-2 78 110 0 32\n", - "shortw/projective/add-2007-bl shortw/projective/dbl-2016-rcb 246 278 0 32\n", - "shortw/projective/add-2007-bl shortw/projective/dbl-1998-cmo 78 110 0 32\n", - "shortw/jacobian/add-1998-cmo-2 shortw/jacobian/dbl-1986-cc 64 96 0 32\n", - "shortw/jacobian/add-1998-cmo-2 shortw/jacobian/dbl-1998-hnm 160 192 0 32\n", - "shortw/jacobian/add-1998-cmo-2 shortw/jacobian/dbl-2007-bl 64 111 0 47\n", - "shortw/jacobian/add-1998-cmo-2 shortw/jacobian/dbl-1998-cmo-2 64 96 0 32\n", - "shortw/jacobian/add-1998-cmo-2 shortw/jacobian/dbl-1998-cmo 64 96 0 32\n", - "shortw/jacobian/add-1998-cmo shortw/jacobian/dbl-1986-cc 64 96 0 32\n", - "shortw/jacobian/add-1998-cmo shortw/jacobian/dbl-1998-hnm 160 192 0 32\n", - "shortw/jacobian/add-1998-cmo shortw/jacobian/dbl-2007-bl 64 111 0 47\n", - "shortw/jacobian/add-1998-cmo shortw/jacobian/dbl-1998-cmo-2 64 96 0 32\n", - "shortw/jacobian/add-1998-cmo shortw/jacobian/dbl-1998-cmo 64 96 0 32\n", - "shortw/jacobian/add-1998-hnm shortw/jacobian/dbl-1986-cc 80 112 0 32\n", - "shortw/jacobian/add-1998-hnm shortw/jacobian/dbl-1998-hnm 168 200 0 32\n", - "shortw/jacobian/add-1998-hnm shortw/jacobian/dbl-2007-bl 80 127 0 47\n", - "shortw/jacobian/add-1998-hnm shortw/jacobian/dbl-1998-cmo-2 80 112 0 32\n", - "shortw/jacobian/add-1998-hnm shortw/jacobian/dbl-1998-cmo 80 112 0 32\n", - "shortw/jacobian/add-1986-cc shortw/jacobian/dbl-1986-cc 54 86 0 32\n", - "shortw/jacobian/add-1986-cc shortw/jacobian/dbl-1998-hnm 142 174 0 32\n", - "shortw/jacobian/add-1986-cc shortw/jacobian/dbl-2007-bl 54 101 0 47\n", - "shortw/jacobian/add-1986-cc shortw/jacobian/dbl-1998-cmo-2 54 86 0 32\n", - "shortw/jacobian/add-1986-cc shortw/jacobian/dbl-1998-cmo 54 86 0 32\n", - "shortw/jacobian/add-2001-b shortw/jacobian/dbl-1986-cc 54 86 0 32\n", - "shortw/jacobian/add-2001-b shortw/jacobian/dbl-1998-hnm 142 174 0 32\n", - "shortw/jacobian/add-2001-b shortw/jacobian/dbl-2007-bl 54 101 0 47\n", - "shortw/jacobian/add-2001-b shortw/jacobian/dbl-1998-cmo-2 54 86 0 32\n", - "shortw/jacobian/add-2001-b shortw/jacobian/dbl-1998-cmo 54 86 0 32\n", - "shortw/jacobian/add-2007-bl shortw/jacobian/dbl-1986-cc 64 111 0 47\n", - "shortw/jacobian/add-2007-bl shortw/jacobian/dbl-1998-hnm 160 207 0 47\n", - "shortw/jacobian/add-2007-bl shortw/jacobian/dbl-2007-bl 64 111 0 47\n", - "shortw/jacobian/add-2007-bl shortw/jacobian/dbl-1998-cmo-2 64 111 0 47\n", - "shortw/jacobian/add-2007-bl shortw/jacobian/dbl-1998-cmo 64 111 0 47\n", - "shortw/jacobian/add-bc-r1rv76-jac shortw/jacobian/dbl-1986-cc 64 96 0 32\n", - "shortw/jacobian/add-bc-r1rv76-jac shortw/jacobian/dbl-1998-hnm 160 192 0 32\n", - "shortw/jacobian/add-bc-r1rv76-jac shortw/jacobian/dbl-2007-bl 64 111 0 47\n", - "shortw/jacobian/add-bc-r1rv76-jac shortw/jacobian/dbl-1998-cmo-2 64 96 0 32\n", - "shortw/jacobian/add-bc-r1rv76-jac shortw/jacobian/dbl-1998-cmo 64 96 0 32\n", - "shortw/xyzz/add-2008-s shortw/xyzz/dbl-2008-s-1 64 96 0 32\n", - "shortw/modified/add-1998-cmo-2 shortw/modified/dbl-2009-bl 64 96 0 32\n", - "shortw/modified/add-1998-cmo-2 shortw/modified/dbl-1998-cmo-2 64 96 0 32\n", - "shortw/modified/add-2009-bl shortw/modified/dbl-2009-bl 64 111 0 47\n", - "shortw/modified/add-2009-bl shortw/modified/dbl-1998-cmo-2 64 111 0 47\n", - "shortw/projective-3/add-2016-rcb shortw/projective-3/dbl-2015-rcb 28 28 0 0\n", - "shortw/projective-3/add-2016-rcb shortw/projective-3/dbl-2007-bl 12 12 0 0\n", - "shortw/projective-3/add-2016-rcb shortw/projective-3/dbl-2015-rcb-3 28 28 0 0\n", - "shortw/projective-3/add-2016-rcb shortw/projective-3/dbl-1998-cmo-2 12 12 0 0\n", - "shortw/projective-3/add-2016-rcb shortw/projective-3/dbl-2007-bl-2 12 12 0 0\n", - "shortw/projective-3/add-2016-rcb shortw/projective-3/dbl-2016-rcb 28 28 0 0\n", - "shortw/projective-3/add-2016-rcb shortw/projective-3/dbl-1998-cmo 12 12 0 0\n", - "shortw/projective-3/add-1998-cmo-2 shortw/projective-3/dbl-2015-rcb 20 20 0 0\n", - "shortw/projective-3/add-1998-cmo-2 shortw/projective-3/dbl-2007-bl 2 2 0 0\n", - "shortw/projective-3/add-1998-cmo-2 shortw/projective-3/dbl-2015-rcb-3 20 20 0 0\n", - "shortw/projective-3/add-1998-cmo-2 shortw/projective-3/dbl-1998-cmo-2 2 2 0 0\n", - "shortw/projective-3/add-1998-cmo-2 shortw/projective-3/dbl-2007-bl-2 2 2 0 0\n", - "shortw/projective-3/add-1998-cmo-2 shortw/projective-3/dbl-2016-rcb 20 20 0 0\n", - "shortw/projective-3/add-1998-cmo-2 shortw/projective-3/dbl-1998-cmo 2 2 0 0\n", - "shortw/projective-3/add-1998-cmo shortw/projective-3/dbl-2015-rcb 20 20 0 0\n", - "shortw/projective-3/add-1998-cmo shortw/projective-3/dbl-2007-bl 2 2 0 0\n", - "shortw/projective-3/add-1998-cmo shortw/projective-3/dbl-2015-rcb-3 20 20 0 0\n", - "shortw/projective-3/add-1998-cmo shortw/projective-3/dbl-1998-cmo-2 2 2 0 0\n", - "shortw/projective-3/add-1998-cmo shortw/projective-3/dbl-2007-bl-2 2 2 0 0\n", - "shortw/projective-3/add-1998-cmo shortw/projective-3/dbl-2016-rcb 20 20 0 0\n", - "shortw/projective-3/add-1998-cmo shortw/projective-3/dbl-1998-cmo 2 2 0 0\n", - "shortw/projective-3/add-2015-rcb shortw/projective-3/dbl-2015-rcb 28 28 0 0\n", - "shortw/projective-3/add-2015-rcb shortw/projective-3/dbl-2007-bl 12 12 0 0\n", - "shortw/projective-3/add-2015-rcb shortw/projective-3/dbl-2015-rcb-3 28 28 0 0\n", - "shortw/projective-3/add-2015-rcb shortw/projective-3/dbl-1998-cmo-2 12 12 0 0\n", - "shortw/projective-3/add-2015-rcb shortw/projective-3/dbl-2007-bl-2 12 12 0 0\n", - "shortw/projective-3/add-2015-rcb shortw/projective-3/dbl-2016-rcb 28 28 0 0\n", - "shortw/projective-3/add-2015-rcb shortw/projective-3/dbl-1998-cmo 12 12 0 0\n", - "shortw/projective-3/add-2002-bj shortw/projective-3/dbl-2015-rcb 20 20 0 0\n", - "shortw/projective-3/add-2002-bj shortw/projective-3/dbl-2007-bl 2 2 0 0\n", - "shortw/projective-3/add-2002-bj shortw/projective-3/dbl-2015-rcb-3 20 20 0 0\n", - "shortw/projective-3/add-2002-bj shortw/projective-3/dbl-1998-cmo-2 2 2 0 0\n", - "shortw/projective-3/add-2002-bj shortw/projective-3/dbl-2007-bl-2 2 2 0 0\n", - "shortw/projective-3/add-2002-bj shortw/projective-3/dbl-2016-rcb 20 20 0 0\n", - "shortw/projective-3/add-2002-bj shortw/projective-3/dbl-1998-cmo 2 2 0 0\n", - "shortw/projective-3/add-2015-rcb-3 shortw/projective-3/dbl-2015-rcb 28 28 0 0\n", - "shortw/projective-3/add-2015-rcb-3 shortw/projective-3/dbl-2007-bl 12 12 0 0\n", - "shortw/projective-3/add-2015-rcb-3 shortw/projective-3/dbl-2015-rcb-3 28 28 0 0\n", - "shortw/projective-3/add-2015-rcb-3 shortw/projective-3/dbl-1998-cmo-2 12 12 0 0\n", - "shortw/projective-3/add-2015-rcb-3 shortw/projective-3/dbl-2007-bl-2 12 12 0 0\n", - "shortw/projective-3/add-2015-rcb-3 shortw/projective-3/dbl-2016-rcb 28 28 0 0\n", - "shortw/projective-3/add-2015-rcb-3 shortw/projective-3/dbl-1998-cmo 12 12 0 0\n", - "shortw/projective-3/add-2007-bl shortw/projective-3/dbl-2015-rcb 20 20 0 0\n", - "shortw/projective-3/add-2007-bl shortw/projective-3/dbl-2007-bl 2 2 0 0\n", - "shortw/projective-3/add-2007-bl shortw/projective-3/dbl-2015-rcb-3 20 20 0 0\n", - "shortw/projective-3/add-2007-bl shortw/projective-3/dbl-1998-cmo-2 2 2 0 0\n", - "shortw/projective-3/add-2007-bl shortw/projective-3/dbl-2007-bl-2 2 2 0 0\n", - "shortw/projective-3/add-2007-bl shortw/projective-3/dbl-2016-rcb 20 20 0 0\n", - "shortw/projective-3/add-2007-bl shortw/projective-3/dbl-1998-cmo 2 2 0 0\n", - "shortw/xyzz-3/add-2008-s shortw/xyzz-3/dbl-2008-s-1 2 2 0 0\n", - "shortw/xyzz-3/add-2008-s shortw/xyzz-3/dbl-2008-s-2 2 2 0 0\n", - "shortw/jacobian-3/add-1998-cmo-2 shortw/jacobian-3/dbl-1986-cc 2 2 0 0\n", - "shortw/jacobian-3/add-1998-cmo-2 shortw/jacobian-3/dbl-1998-hnm-2 2 2 0 0\n", - "shortw/jacobian-3/add-1998-cmo-2 shortw/jacobian-3/dbl-1998-hnm 2 2 0 0\n", - "shortw/jacobian-3/add-1998-cmo-2 shortw/jacobian-3/dbl-2007-bl 2 3 0 1\n", - "shortw/jacobian-3/add-1998-cmo-2 shortw/jacobian-3/dbl-2004-hmv 2 2 0 0\n", - "shortw/jacobian-3/add-1998-cmo-2 shortw/jacobian-3/dbl-1998-cmo-2 2 2 0 0\n", - "shortw/jacobian-3/add-1998-cmo-2 shortw/jacobian-3/dbl-2001-b 2 3 0 1\n", - "shortw/jacobian-3/add-1998-cmo-2 shortw/jacobian-3/dbl-1998-cmo 2 2 0 0\n", - "shortw/jacobian-3/add-1998-cmo-2 shortw/jacobian-3/dbl-1986-cc-2 2 2 0 0\n", - "shortw/jacobian-3/add-1998-cmo shortw/jacobian-3/dbl-1986-cc 2 2 0 0\n", - "shortw/jacobian-3/add-1998-cmo shortw/jacobian-3/dbl-1998-hnm-2 2 2 0 0\n", - "shortw/jacobian-3/add-1998-cmo shortw/jacobian-3/dbl-1998-hnm 2 2 0 0\n", - "shortw/jacobian-3/add-1998-cmo shortw/jacobian-3/dbl-2007-bl 2 3 0 1\n", - "shortw/jacobian-3/add-1998-cmo shortw/jacobian-3/dbl-2004-hmv 2 2 0 0\n", - "shortw/jacobian-3/add-1998-cmo shortw/jacobian-3/dbl-1998-cmo-2 2 2 0 0\n", - "shortw/jacobian-3/add-1998-cmo shortw/jacobian-3/dbl-2001-b 2 3 0 1\n", - "shortw/jacobian-3/add-1998-cmo shortw/jacobian-3/dbl-1998-cmo 2 2 0 0\n", - "shortw/jacobian-3/add-1998-cmo shortw/jacobian-3/dbl-1986-cc-2 2 2 0 0\n", - "shortw/jacobian-3/add-1998-hnm shortw/jacobian-3/dbl-1986-cc 2 2 0 0\n", - "shortw/jacobian-3/add-1998-hnm shortw/jacobian-3/dbl-1998-hnm-2 2 2 0 0\n", - "shortw/jacobian-3/add-1998-hnm shortw/jacobian-3/dbl-1998-hnm 2 2 0 0\n", - "shortw/jacobian-3/add-1998-hnm shortw/jacobian-3/dbl-2007-bl 2 3 0 1\n", - "shortw/jacobian-3/add-1998-hnm shortw/jacobian-3/dbl-2004-hmv 2 2 0 0\n", - "shortw/jacobian-3/add-1998-hnm shortw/jacobian-3/dbl-1998-cmo-2 2 2 0 0\n", - "shortw/jacobian-3/add-1998-hnm shortw/jacobian-3/dbl-2001-b 2 3 0 1\n", - "shortw/jacobian-3/add-1998-hnm shortw/jacobian-3/dbl-1998-cmo 2 2 0 0\n", - "shortw/jacobian-3/add-1998-hnm shortw/jacobian-3/dbl-1986-cc-2 2 2 0 0\n", - "shortw/jacobian-3/add-1986-cc shortw/jacobian-3/dbl-1986-cc 0 0 0 0\n", - "shortw/jacobian-3/add-1986-cc shortw/jacobian-3/dbl-1998-hnm-2 0 0 0 0\n", - "shortw/jacobian-3/add-1986-cc shortw/jacobian-3/dbl-1998-hnm 0 0 0 0\n", - "shortw/jacobian-3/add-1986-cc shortw/jacobian-3/dbl-2007-bl 0 1 0 1\n", - "shortw/jacobian-3/add-1986-cc shortw/jacobian-3/dbl-2004-hmv 0 0 0 0\n", - "shortw/jacobian-3/add-1986-cc shortw/jacobian-3/dbl-1998-cmo-2 0 0 0 0\n", - "shortw/jacobian-3/add-1986-cc shortw/jacobian-3/dbl-2001-b 0 1 0 1\n", - "shortw/jacobian-3/add-1986-cc shortw/jacobian-3/dbl-1998-cmo 0 0 0 0\n", - "shortw/jacobian-3/add-1986-cc shortw/jacobian-3/dbl-1986-cc-2 0 0 0 0\n", - "shortw/jacobian-3/add-2001-b shortw/jacobian-3/dbl-1986-cc 0 0 0 0\n", - "shortw/jacobian-3/add-2001-b shortw/jacobian-3/dbl-1998-hnm-2 0 0 0 0\n", - "shortw/jacobian-3/add-2001-b shortw/jacobian-3/dbl-1998-hnm 0 0 0 0\n", - "shortw/jacobian-3/add-2001-b shortw/jacobian-3/dbl-2007-bl 0 1 0 1\n", - "shortw/jacobian-3/add-2001-b shortw/jacobian-3/dbl-2004-hmv 0 0 0 0\n", - "shortw/jacobian-3/add-2001-b shortw/jacobian-3/dbl-1998-cmo-2 0 0 0 0\n", - "shortw/jacobian-3/add-2001-b shortw/jacobian-3/dbl-2001-b 0 1 0 1\n", - "shortw/jacobian-3/add-2001-b shortw/jacobian-3/dbl-1998-cmo 0 0 0 0\n", - "shortw/jacobian-3/add-2001-b shortw/jacobian-3/dbl-1986-cc-2 0 0 0 0\n", - "shortw/jacobian-3/add-2007-bl shortw/jacobian-3/dbl-1986-cc 2 3 0 1\n", - "shortw/jacobian-3/add-2007-bl shortw/jacobian-3/dbl-1998-hnm-2 2 3 0 1\n", - "shortw/jacobian-3/add-2007-bl shortw/jacobian-3/dbl-1998-hnm 2 3 0 1\n", - "shortw/jacobian-3/add-2007-bl shortw/jacobian-3/dbl-2007-bl 2 3 0 1\n", - "shortw/jacobian-3/add-2007-bl shortw/jacobian-3/dbl-2004-hmv 2 3 0 1\n", - "shortw/jacobian-3/add-2007-bl shortw/jacobian-3/dbl-1998-cmo-2 2 3 0 1\n", - "shortw/jacobian-3/add-2007-bl shortw/jacobian-3/dbl-2001-b 2 3 0 1\n", - "shortw/jacobian-3/add-2007-bl shortw/jacobian-3/dbl-1998-cmo 2 3 0 1\n", - "shortw/jacobian-3/add-2007-bl shortw/jacobian-3/dbl-1986-cc-2 2 3 0 1\n" - ] - } - ], + "outputs": [], "source": [ "for pair in point_map.keys():\n", " print(pair[0], pair[1],\n", @@ -1026,369 +410,33 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "id": "5ffc5564-a42b-4837-94bb-4ecb890b38b2", "metadata": {}, "outputs": [], "source": [ - "remapped_tree = build_distinguishing_tree(remapped_point_map)\n", + "remapped_tree = build_distinguishing_tree(set(remapped_point_map.keys()), remapped_point_map)\n", "print_leaf_sizes(remapped_tree)" ] }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "id": "5d2bbf5b-76e6-4137-9c32-cbd09a5c3600", "metadata": { "scrolled": true }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[x=8976497402921340665, y=14893197716203064256]\n", - "DomainParameters(EllipticCurve)\n", - "├── [x=8462011093657406711, y=9385955884972991198]\n", - "│ DomainParameters(EllipticCurve)\n", - "│ ├── [x=5303842224313800291, y=9121975806275757870]\n", - "│ │ DomainParameters(EllipticCurve)\n", - "│ │ ├── [x=7673299449516259275, y=4079088229980719011]\n", - "│ │ │ DomainParameters(EllipticCurve)\n", - "│ │ │ ├── [x=3909394990548410378, y=1271934111897046201]\n", - "│ │ │ │ DomainParameters(EllipticCurve)\n", - "│ │ │ │ ├── [x=198756535338419930, y=10649610515976041289]\n", - "│ │ │ │ │ DomainParameters(EllipticCurve)\n", - "│ │ │ │ │ ├── shortw/projective/add-2002-bj, shortw/projective/dbl-2016-rcb\n", - "│ │ │ │ │ │ shortw/projective/add-2007-bl, shortw/projective/dbl-2016-rcb\n", - "│ │ │ │ │ │ shortw/projective/add-2002-bj, shortw/projective/dbl-2015-rcb\n", - "│ │ │ │ │ │ shortw/projective/add-2007-bl, shortw/projective/dbl-2015-rcb\n", - "│ │ │ │ │ └── shortw/projective/add-2002-bj, shortw/projective/dbl-1998-cmo-2\n", - "│ │ │ │ │ shortw/projective/add-2002-bj, shortw/projective/dbl-2007-bl\n", - "│ │ │ │ │ shortw/projective/add-2002-bj, shortw/projective/dbl-1998-cmo\n", - "│ │ │ │ │ shortw/projective/add-2007-bl, shortw/projective/dbl-2007-bl\n", - "│ │ │ │ │ shortw/projective/add-2007-bl, shortw/projective/dbl-1998-cmo-2\n", - "│ │ │ │ │ shortw/projective/add-2007-bl, shortw/projective/dbl-1998-cmo\n", - "│ │ │ │ └── [x=4046881022602480857, y=16958156996739198810]\n", - "│ │ │ │ DomainParameters(EllipticCurve)\n", - "│ │ │ │ ├── shortw/jacobian/add-1998-hnm, shortw/jacobian/dbl-2007-bl\n", - "│ │ │ │ └── [x=4986377720346872951, y=8332168605444176038]\n", - "│ │ │ │ DomainParameters(EllipticCurve)\n", - "│ │ │ │ ├── shortw/jacobian/add-1998-hnm, shortw/jacobian/dbl-1998-hnm\n", - "│ │ │ │ └── shortw/jacobian/add-1998-hnm, shortw/jacobian/dbl-1986-cc\n", - "│ │ │ │ shortw/jacobian/add-1998-hnm, shortw/jacobian/dbl-1998-cmo-2\n", - "│ │ │ │ shortw/jacobian/add-1998-hnm, shortw/jacobian/dbl-1998-cmo\n", - "│ │ │ └── [x=4986377720346872951, y=8332168605444176038]\n", - "│ │ │ DomainParameters(EllipticCurve)\n", - "│ │ │ ├── [x=4173724707785958223, y=6577250203972113290]\n", - "│ │ │ │ DomainParameters(EllipticCurve)\n", - "│ │ │ │ ├── [x=4046881022602480857, y=16958156996739198810]\n", - "│ │ │ │ │ DomainParameters(EllipticCurve)\n", - "│ │ │ │ │ ├── shortw/jacobian/add-2007-bl, shortw/jacobian/dbl-1998-hnm\n", - "│ │ │ │ │ └── shortw/jacobian/add-1998-cmo-2, shortw/jacobian/dbl-1998-hnm\n", - "│ │ │ │ │ shortw/jacobian/add-1998-cmo, shortw/jacobian/dbl-1998-hnm\n", - "│ │ │ │ │ shortw/jacobian/add-bc-r1rv76-jac, shortw/jacobian/dbl-1998-hnm\n", - "│ │ │ │ └── shortw/jacobian/add-1986-cc, shortw/jacobian/dbl-1998-hnm\n", - "│ │ │ │ shortw/jacobian/add-2001-b, shortw/jacobian/dbl-1998-hnm\n", - "│ │ │ └── [x=4046881022602480857, y=16958156996739198810]\n", - "│ │ │ DomainParameters(EllipticCurve)\n", - "│ │ │ ├── shortw/jacobian/add-1986-cc, shortw/jacobian/dbl-2007-bl\n", - "│ │ │ │ shortw/jacobian/add-2001-b, shortw/jacobian/dbl-2007-bl\n", - "│ │ │ └── shortw/jacobian/add-1986-cc, shortw/jacobian/dbl-1986-cc\n", - "│ │ │ shortw/jacobian/add-1986-cc, shortw/jacobian/dbl-1998-cmo-2\n", - "│ │ │ shortw/jacobian/add-1986-cc, shortw/jacobian/dbl-1998-cmo\n", - "│ │ │ shortw/jacobian/add-2001-b, shortw/jacobian/dbl-1986-cc\n", - "│ │ │ shortw/jacobian/add-2001-b, shortw/jacobian/dbl-1998-cmo-2\n", - "│ │ │ shortw/jacobian/add-2001-b, shortw/jacobian/dbl-1998-cmo\n", - "│ │ └── [x=4046881022602480857, y=16958156996739198810]\n", - "│ │ DomainParameters(EllipticCurve)\n", - "│ │ ├── shortw/jacobian/add-1998-cmo-2, shortw/jacobian/dbl-2007-bl\n", - "│ │ │ shortw/jacobian/add-1998-cmo, shortw/jacobian/dbl-2007-bl\n", - "│ │ │ shortw/jacobian/add-2007-bl, shortw/jacobian/dbl-1986-cc\n", - "│ │ │ shortw/jacobian/add-2007-bl, shortw/jacobian/dbl-2007-bl\n", - "│ │ │ shortw/jacobian/add-2007-bl, shortw/jacobian/dbl-1998-cmo-2\n", - "│ │ │ shortw/jacobian/add-2007-bl, shortw/jacobian/dbl-1998-cmo\n", - "│ │ │ shortw/jacobian/add-bc-r1rv76-jac, shortw/jacobian/dbl-2007-bl\n", - "│ │ │ shortw/modified/add-2009-bl, shortw/modified/dbl-1998-cmo-2\n", - "│ │ │ shortw/modified/add-2009-bl, shortw/modified/dbl-2009-bl\n", - "│ │ └── [x=198756535338419930, y=10649610515976041289]\n", - "│ │ DomainParameters(EllipticCurve)\n", - "│ │ ├── shortw/projective/add-1998-cmo-2, shortw/projective/dbl-2016-rcb\n", - "│ │ │ shortw/projective/add-1998-cmo, shortw/projective/dbl-2016-rcb\n", - "│ │ │ shortw/projective/add-1998-cmo-2, shortw/projective/dbl-2015-rcb\n", - "│ │ │ shortw/projective/add-1998-cmo, shortw/projective/dbl-2015-rcb\n", - "│ │ └── shortw/projective/add-1998-cmo-2, shortw/projective/dbl-2007-bl\n", - "│ │ shortw/projective/add-1998-cmo-2, shortw/projective/dbl-1998-cmo-2\n", - "│ │ shortw/projective/add-1998-cmo-2, shortw/projective/dbl-1998-cmo\n", - "│ │ shortw/projective/add-1998-cmo, shortw/projective/dbl-1998-cmo\n", - "│ │ shortw/projective/add-1998-cmo, shortw/projective/dbl-2007-bl\n", - "│ │ shortw/projective/add-1998-cmo, shortw/projective/dbl-1998-cmo-2\n", - "│ │ shortw/jacobian/add-1998-cmo-2, shortw/jacobian/dbl-1986-cc\n", - "│ │ shortw/jacobian/add-1998-cmo-2, shortw/jacobian/dbl-1998-cmo-2\n", - "│ │ shortw/jacobian/add-1998-cmo-2, shortw/jacobian/dbl-1998-cmo\n", - "│ │ shortw/jacobian/add-1998-cmo, shortw/jacobian/dbl-1986-cc\n", - "│ │ shortw/jacobian/add-1998-cmo, shortw/jacobian/dbl-1998-cmo-2\n", - "│ │ shortw/jacobian/add-1998-cmo, shortw/jacobian/dbl-1998-cmo\n", - "│ │ shortw/jacobian/add-bc-r1rv76-jac, shortw/jacobian/dbl-1986-cc\n", - "│ │ shortw/jacobian/add-bc-r1rv76-jac, shortw/jacobian/dbl-1998-cmo-2\n", - "│ │ shortw/jacobian/add-bc-r1rv76-jac, shortw/jacobian/dbl-1998-cmo\n", - "│ │ shortw/xyzz/add-2008-s, shortw/xyzz/dbl-2008-s-1\n", - "│ │ shortw/modified/add-1998-cmo-2, shortw/modified/dbl-1998-cmo-2\n", - "│ │ shortw/modified/add-1998-cmo-2, shortw/modified/dbl-2009-bl\n", - "│ └── [x=933295826993298997, y=5255086850954974764]\n", - "│ DomainParameters(EllipticCurve)\n", - "│ ├── [x=5343745049373992004, y=1215580168733194775]\n", - "│ │ DomainParameters(EllipticCurve)\n", - "│ │ ├── shortw/projective/add-2016-rcb, shortw/projective/dbl-2016-rcb\n", - "│ │ │ shortw/projective/add-2015-rcb, shortw/projective/dbl-2016-rcb\n", - "│ │ │ shortw/projective/add-2016-rcb, shortw/projective/dbl-2015-rcb\n", - "│ │ │ shortw/projective/add-2015-rcb, shortw/projective/dbl-2015-rcb\n", - "│ │ └── shortw/projective/add-2016-rcb, shortw/projective/dbl-1998-cmo-2\n", - "│ │ shortw/projective/add-2016-rcb, shortw/projective/dbl-2007-bl\n", - "│ │ shortw/projective/add-2016-rcb, shortw/projective/dbl-1998-cmo\n", - "│ │ shortw/projective/add-2015-rcb, shortw/projective/dbl-1998-cmo-2\n", - "│ │ shortw/projective/add-2015-rcb, shortw/projective/dbl-2007-bl\n", - "│ │ shortw/projective/add-2015-rcb, shortw/projective/dbl-1998-cmo\n", - "│ └── [x=4504164893371726562, y=9004797292574688026]\n", - "│ DomainParameters(EllipticCurve)\n", - "│ ├── shortw/jacobian-0/add-1998-cmo-2, shortw/jacobian-0/dbl-1998-cmo-2\n", - "│ │ shortw/jacobian-0/add-1998-cmo-2, shortw/jacobian-0/dbl-2007-bl\n", - "│ │ shortw/jacobian-0/add-1998-cmo-2, shortw/jacobian-0/dbl-1986-cc\n", - "│ │ shortw/jacobian-0/add-1998-cmo-2, shortw/jacobian-0/dbl-1998-cmo\n", - "│ │ shortw/jacobian-0/add-1998-cmo, shortw/jacobian-0/dbl-1986-cc\n", - "│ │ shortw/jacobian-0/add-1998-cmo, shortw/jacobian-0/dbl-1998-cmo\n", - "│ │ shortw/jacobian-0/add-1998-cmo, shortw/jacobian-0/dbl-2007-bl\n", - "│ │ shortw/jacobian-0/add-1998-cmo, shortw/jacobian-0/dbl-1998-cmo-2\n", - "│ │ shortw/jacobian-0/add-1986-cc, shortw/jacobian-0/dbl-1986-cc\n", - "│ │ shortw/jacobian-0/add-1986-cc, shortw/jacobian-0/dbl-2007-bl\n", - "│ │ shortw/jacobian-0/add-1986-cc, shortw/jacobian-0/dbl-1998-cmo-2\n", - "│ │ shortw/jacobian-0/add-1986-cc, shortw/jacobian-0/dbl-1998-cmo\n", - "│ │ shortw/jacobian-0/add-2001-b, shortw/jacobian-0/dbl-1986-cc\n", - "│ │ shortw/jacobian-0/add-2001-b, shortw/jacobian-0/dbl-2007-bl\n", - "│ │ shortw/jacobian-0/add-2001-b, shortw/jacobian-0/dbl-1998-cmo-2\n", - "│ │ shortw/jacobian-0/add-1998-hnm, shortw/jacobian-0/dbl-1986-cc\n", - "│ │ shortw/jacobian-0/add-2001-b, shortw/jacobian-0/dbl-1998-cmo\n", - "│ │ shortw/jacobian-0/add-1998-hnm, shortw/jacobian-0/dbl-1998-cmo-2\n", - "│ │ shortw/jacobian-0/add-1998-hnm, shortw/jacobian-0/dbl-2007-bl\n", - "│ │ shortw/jacobian-0/add-2007-bl, shortw/jacobian-0/dbl-1986-cc\n", - "│ │ shortw/jacobian-0/add-1998-hnm, shortw/jacobian-0/dbl-1998-cmo\n", - "│ │ shortw/jacobian-0/add-2007-bl, shortw/jacobian-0/dbl-1998-cmo-2\n", - "│ │ shortw/jacobian-0/add-2007-bl, shortw/jacobian-0/dbl-1998-cmo\n", - "│ │ shortw/jacobian-0/add-2007-bl, shortw/jacobian-0/dbl-2007-bl\n", - "│ │ shortw/jacobian-0/add-1998-cmo, shortw/jacobian-0/dbl-1998-hnm\n", - "│ │ shortw/jacobian-0/add-1998-cmo-2, shortw/jacobian-0/dbl-1998-hnm\n", - "│ │ shortw/jacobian-0/add-1986-cc, shortw/jacobian-0/dbl-1998-hnm\n", - "│ │ shortw/jacobian-0/add-2001-b, shortw/jacobian-0/dbl-1998-hnm\n", - "│ │ shortw/jacobian-0/add-1998-hnm, shortw/jacobian-0/dbl-1998-hnm\n", - "│ │ shortw/jacobian-0/add-2007-bl, shortw/jacobian-0/dbl-1998-hnm\n", - "│ └── shortw/jacobian-0/add-1998-cmo-2, shortw/jacobian-0/dbl-2009-alnr\n", - "│ shortw/jacobian-0/add-1998-cmo, shortw/jacobian-0/dbl-2009-alnr\n", - "│ shortw/jacobian-0/add-1986-cc, shortw/jacobian-0/dbl-2009-alnr\n", - "│ shortw/jacobian-0/add-2001-b, shortw/jacobian-0/dbl-2009-alnr\n", - "│ shortw/jacobian-0/add-1998-hnm, shortw/jacobian-0/dbl-2009-alnr\n", - "│ shortw/jacobian-0/add-2007-bl, shortw/jacobian-0/dbl-2009-l\n", - "│ shortw/jacobian-0/add-2007-bl, shortw/jacobian-0/dbl-2009-alnr\n", - "└── [x=7523181643117586774, y=861591372171155399]\n", - " DomainParameters(EllipticCurve)\n", - " ├── [x=3987108553814416983, y=10194401568277669542]\n", - " │ DomainParameters(EllipticCurve)\n", - " │ ├── shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-2007-bl\n", - " │ │ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-2001-b\n", - " │ │ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-2007-bl\n", - " │ │ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-2001-b\n", - " │ │ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-1986-cc\n", - " │ │ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-2007-bl\n", - " │ │ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-1998-cmo-2\n", - " │ │ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-2001-b\n", - " │ │ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-1986-cc-2\n", - " │ │ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-1998-cmo\n", - " │ │ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-1998-hnm-2\n", - " │ │ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-1998-hnm\n", - " │ │ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-2004-hmv\n", - " │ └── [x=161110322234615011, y=6188535790273537383]\n", - " │ DomainParameters(EllipticCurve)\n", - " │ ├── [x=7956235823516658822, y=9732780824814402521]\n", - " │ │ DomainParameters(EllipticCurve)\n", - " │ │ ├── shortw/projective-3/add-1998-cmo-2, shortw/projective-3/dbl-2015-rcb-3\n", - " │ │ │ shortw/projective-3/add-1998-cmo-2, shortw/projective-3/dbl-2016-rcb\n", - " │ │ │ shortw/projective-3/add-1998-cmo, shortw/projective-3/dbl-2015-rcb-3\n", - " │ │ │ shortw/projective-3/add-1998-cmo, shortw/projective-3/dbl-2016-rcb\n", - " │ │ └── shortw/projective-3/add-1998-cmo-2, shortw/projective-3/dbl-2015-rcb\n", - " │ │ shortw/projective-3/add-1998-cmo, shortw/projective-3/dbl-2015-rcb\n", - " │ └── shortw/projective-3/add-1998-cmo-2, shortw/projective-3/dbl-2007-bl\n", - " │ shortw/projective-3/add-1998-cmo-2, shortw/projective-3/dbl-1998-cmo-2\n", - " │ shortw/projective-3/add-1998-cmo-2, shortw/projective-3/dbl-2007-bl-2\n", - " │ shortw/projective-3/add-1998-cmo-2, shortw/projective-3/dbl-1998-cmo\n", - " │ shortw/projective-3/add-1998-cmo, shortw/projective-3/dbl-2007-bl\n", - " │ shortw/projective-3/add-1998-cmo, shortw/projective-3/dbl-1998-cmo-2\n", - " │ shortw/projective-3/add-1998-cmo, shortw/projective-3/dbl-1998-cmo\n", - " │ shortw/projective-3/add-1998-cmo, shortw/projective-3/dbl-2007-bl-2\n", - " │ shortw/xyzz-3/add-2008-s, shortw/xyzz-3/dbl-2008-s-1\n", - " │ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-1986-cc\n", - " │ shortw/xyzz-3/add-2008-s, shortw/xyzz-3/dbl-2008-s-2\n", - " │ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-1998-cmo-2\n", - " │ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-1998-cmo\n", - " │ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-1986-cc-2\n", - " │ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-1986-cc\n", - " │ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-1998-cmo-2\n", - " │ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-1998-cmo\n", - " │ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-1998-hnm\n", - " │ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-1986-cc-2\n", - " │ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-1998-hnm-2\n", - " │ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-2004-hmv\n", - " │ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-1998-hnm-2\n", - " │ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-1998-hnm\n", - " │ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-2004-hmv\n", - " └── [x=3261882760552750749, y=4970255202323098987]\n", - " DomainParameters(EllipticCurve)\n", - " ├── [x=161110322234615011, y=6188535790273537383]\n", - " │ DomainParameters(EllipticCurve)\n", - " │ ├── [x=6741014024306303479, y=8089192144272372943]\n", - " │ │ DomainParameters(EllipticCurve)\n", - " │ │ ├── [x=7956235823516658822, y=9732780824814402521]\n", - " │ │ │ DomainParameters(EllipticCurve)\n", - " │ │ │ ├── shortw/projective-3/add-2016-rcb, shortw/projective-3/dbl-2015-rcb-3\n", - " │ │ │ │ shortw/projective-3/add-2016-rcb, shortw/projective-3/dbl-2016-rcb\n", - " │ │ │ │ shortw/projective-3/add-2015-rcb, shortw/projective-3/dbl-2015-rcb-3\n", - " │ │ │ │ shortw/projective-3/add-2015-rcb-3, shortw/projective-3/dbl-2015-rcb-3\n", - " │ │ │ │ shortw/projective-3/add-2015-rcb, shortw/projective-3/dbl-2016-rcb\n", - " │ │ │ │ shortw/projective-3/add-2015-rcb-3, shortw/projective-3/dbl-2016-rcb\n", - " │ │ │ └── shortw/projective-3/add-2016-rcb, shortw/projective-3/dbl-2015-rcb\n", - " │ │ │ shortw/projective-3/add-2015-rcb, shortw/projective-3/dbl-2015-rcb\n", - " │ │ │ shortw/projective-3/add-2015-rcb-3, shortw/projective-3/dbl-2015-rcb\n", - " │ │ └── [x=7956235823516658822, y=9732780824814402521]\n", - " │ │ DomainParameters(EllipticCurve)\n", - " │ │ ├── shortw/projective-3/add-2002-bj, shortw/projective-3/dbl-2015-rcb-3\n", - " │ │ │ shortw/projective-3/add-2002-bj, shortw/projective-3/dbl-2016-rcb\n", - " │ │ │ shortw/projective-3/add-2007-bl, shortw/projective-3/dbl-2015-rcb-3\n", - " │ │ │ shortw/projective-3/add-2007-bl, shortw/projective-3/dbl-2016-rcb\n", - " │ │ └── shortw/projective-3/add-2002-bj, shortw/projective-3/dbl-2015-rcb\n", - " │ │ shortw/projective-3/add-2007-bl, shortw/projective-3/dbl-2015-rcb\n", - " │ └── shortw/projective-3/add-2016-rcb, shortw/projective-3/dbl-2007-bl\n", - " │ shortw/projective-3/add-2016-rcb, shortw/projective-3/dbl-1998-cmo-2\n", - " │ shortw/projective-3/add-2016-rcb, shortw/projective-3/dbl-2007-bl-2\n", - " │ shortw/projective-3/add-2016-rcb, shortw/projective-3/dbl-1998-cmo\n", - " │ shortw/projective-3/add-2015-rcb, shortw/projective-3/dbl-1998-cmo-2\n", - " │ shortw/projective-3/add-2015-rcb, shortw/projective-3/dbl-2007-bl\n", - " │ shortw/projective-3/add-2015-rcb, shortw/projective-3/dbl-2007-bl-2\n", - " │ shortw/projective-3/add-2015-rcb-3, shortw/projective-3/dbl-2007-bl\n", - " │ shortw/projective-3/add-2015-rcb-3, shortw/projective-3/dbl-1998-cmo-2\n", - " │ shortw/projective-3/add-2015-rcb, shortw/projective-3/dbl-1998-cmo\n", - " │ shortw/projective-3/add-2015-rcb-3, shortw/projective-3/dbl-2007-bl-2\n", - " │ shortw/projective-3/add-2015-rcb-3, shortw/projective-3/dbl-1998-cmo\n", - " └── [x=8583585759655994824, y=5121594309025134149]\n", - " DomainParameters(EllipticCurve)\n", - " ├── [x=3987108553814416983, y=10194401568277669542]\n", - " │ DomainParameters(EllipticCurve)\n", - " │ ├── shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-2007-bl\n", - " │ │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-2001-b\n", - " │ └── shortw/projective-3/add-2002-bj, shortw/projective-3/dbl-2007-bl\n", - " │ shortw/projective-3/add-2002-bj, shortw/projective-3/dbl-1998-cmo-2\n", - " │ shortw/projective-3/add-2002-bj, shortw/projective-3/dbl-2007-bl-2\n", - " │ shortw/projective-3/add-2002-bj, shortw/projective-3/dbl-1998-cmo\n", - " │ shortw/projective-3/add-2007-bl, shortw/projective-3/dbl-2007-bl\n", - " │ shortw/projective-3/add-2007-bl, shortw/projective-3/dbl-1998-cmo-2\n", - " │ shortw/projective-3/add-2007-bl, shortw/projective-3/dbl-2007-bl-2\n", - " │ shortw/projective-3/add-2007-bl, shortw/projective-3/dbl-1998-cmo\n", - " │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-1986-cc\n", - " │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-1998-cmo-2\n", - " │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-1998-cmo\n", - " │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-1986-cc-2\n", - " │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-1998-hnm-2\n", - " │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-1998-hnm\n", - " │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-2004-hmv\n", - " └── [x=3271642899270608132, y=4094231858049384691]\n", - " DomainParameters(EllipticCurve)\n", - " ├── [x=9185172264551501167, y=1489984362467478237]\n", - " │ DomainParameters(EllipticCurve)\n", - " │ ├── [x=9023895164928322279, y=3383060556063092686]\n", - " │ │ DomainParameters(EllipticCurve)\n", - " │ │ ├── shortw/projective-1/add-2002-bj, shortw/projective-1/dbl-2015-rcb\n", - " │ │ │ shortw/projective-1/add-2007-bl, shortw/projective-1/dbl-2015-rcb\n", - " │ │ └── shortw/projective-1/add-2002-bj, shortw/projective-1/dbl-2007-bl\n", - " │ │ shortw/projective-1/add-2002-bj, shortw/projective-1/dbl-1998-cmo-2\n", - " │ │ shortw/projective-1/add-2002-bj, shortw/projective-1/dbl-1998-cmo\n", - " │ │ shortw/projective-1/add-2007-bl, shortw/projective-1/dbl-2007-bl\n", - " │ │ shortw/projective-1/add-2007-bl, shortw/projective-1/dbl-1998-cmo-2\n", - " │ │ shortw/projective-1/add-2007-bl, shortw/projective-1/dbl-1998-cmo\n", - " │ └── [x=3760330877114905034, y=14518154872986670897]\n", - " │ DomainParameters(EllipticCurve)\n", - " │ ├── [x=9023895164928322279, y=3383060556063092686]\n", - " │ │ DomainParameters(EllipticCurve)\n", - " │ │ ├── shortw/projective-1/add-2002-bj-2, shortw/projective-1/dbl-2015-rcb\n", - " │ │ └── shortw/projective-1/add-2002-bj-2, shortw/projective-1/dbl-2007-bl\n", - " │ │ shortw/projective-1/add-2002-bj-2, shortw/projective-1/dbl-1998-cmo-2\n", - " │ │ shortw/projective-1/add-2002-bj-2, shortw/projective-1/dbl-1998-cmo\n", - " │ └── [x=9023895164928322279, y=11600196812807098545]\n", - " │ DomainParameters(EllipticCurve)\n", - " │ ├── shortw/projective-1/add-2015-rcb, shortw/projective-1/dbl-2015-rcb\n", - " │ └── shortw/projective-1/add-2015-rcb, shortw/projective-1/dbl-2007-bl\n", - " │ shortw/projective-1/add-2015-rcb, shortw/projective-1/dbl-1998-cmo\n", - " │ shortw/projective-1/add-2015-rcb, shortw/projective-1/dbl-1998-cmo-2\n", - " └── [x=3987108553814416983, y=10194401568277669542]\n", - " DomainParameters(EllipticCurve)\n", - " ├── shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-2007-bl\n", - " │ shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-2001-b\n", - " │ shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-2007-bl\n", - " │ shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-2001-b\n", - " └── [x=9023895164928322279, y=3383060556063092686]\n", - " DomainParameters(EllipticCurve)\n", - " ├── shortw/projective-1/add-1998-cmo-2, shortw/projective-1/dbl-2015-rcb\n", - " │ shortw/projective-1/add-1998-cmo, shortw/projective-1/dbl-2015-rcb\n", - " └── shortw/jacobian-0/add-1998-cmo-2, shortw/jacobian-0/dbl-2009-l\n", - " shortw/jacobian-0/add-1998-cmo, shortw/jacobian-0/dbl-2009-l\n", - " shortw/jacobian-0/add-1986-cc, shortw/jacobian-0/dbl-2009-l\n", - " shortw/jacobian-0/add-2001-b, shortw/jacobian-0/dbl-2009-l\n", - " shortw/jacobian-0/add-1998-hnm, shortw/jacobian-0/dbl-2009-l\n", - " shortw/w12-0/add-2010-cln, shortw/w12-0/dbl-2010-cln\n", - " shortw/projective-1/add-1998-cmo-2, shortw/projective-1/dbl-2007-bl\n", - " shortw/projective-1/add-1998-cmo-2, shortw/projective-1/dbl-1998-cmo-2\n", - " shortw/projective-1/add-1998-cmo-2, shortw/projective-1/dbl-1998-cmo\n", - " shortw/projective-1/add-1998-cmo, shortw/projective-1/dbl-2007-bl\n", - " shortw/projective-1/add-1998-cmo, shortw/projective-1/dbl-1998-cmo-2\n", - " shortw/projective-1/add-1998-cmo, shortw/projective-1/dbl-1998-cmo\n", - " shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-1986-cc\n", - " shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-1998-cmo-2\n", - " shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-1998-cmo\n", - " shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-1986-cc-2\n", - " shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-1986-cc\n", - " shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-1998-cmo-2\n", - " shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-1998-cmo\n", - " shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-1986-cc-2\n", - " shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-1998-hnm-2\n", - " shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-1998-hnm\n", - " shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-2004-hmv\n", - " shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-1998-hnm-2\n", - " shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-1998-hnm\n", - " shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-2004-hmv\n" - ] - } - ], + "outputs": [], "source": [ "print(RenderTree(remapped_tree).by_attr(lambda n: n.name if n.name is not None else \"\\n\".join((\", \".join(str(formula) for formula in cfg) for cfg in n.cfgs))))" ] }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "id": "3ea9912e", "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "73994b6863b341ce9f96974b8880392e", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Remap: 0%| | 0/242 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "def remap(coords, formulas, points, scalar):\n", " mult = LTRMultiplier(*formulas, None, False, AccumulationOrder.PeqRP, True, True)\n", @@ -1443,459 +491,21 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "id": "10b5059c", "metadata": {}, "outputs": [], "source": [ "remapped_tree_dupl = build_distinguishing_tree(remapped_point_map_dupl)\n", - "print_leaf_sizes(remapped_tree_dupl)\n" + "print_leaf_sizes(remapped_tree_dupl)" ] }, { "cell_type": "code", - "execution_count": 26, + "execution_count": null, "id": "c5d52e7a", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[x=3261882760552750749, y=5224146365954570556]\n", - "0\n", - "DomainParameters(EllipticCurve)\n", - "├── [x=7523181643117586774, y=9332810196106514144]\n", - "│ 1\n", - "│ DomainParameters(EllipticCurve)\n", - "│ ├── [x=813939388429964455, y=6661172451039539927]\n", - "│ │ 3\n", - "│ │ DomainParameters(EllipticCurve)\n", - "│ │ ├── [x=6292247451345142082, y=7536413344159771043]\n", - "│ │ │ 4\n", - "│ │ │ DomainParameters(EllipticCurve)\n", - "│ │ │ ├── [x=3174880782688558524, y=15311888883183151212]\n", - "│ │ │ │ 0\n", - "│ │ │ │ DomainParameters(EllipticCurve)\n", - "│ │ │ │ ├── shortw/projective/add-1998-cmo-2, shortw/projective/dbl-2007-bl\n", - "│ │ │ │ │ shortw/projective/add-1998-cmo-2, shortw/projective/dbl-1998-cmo-2\n", - "│ │ │ │ │ shortw/projective/add-1998-cmo-2, shortw/projective/dbl-1998-cmo\n", - "│ │ │ │ │ shortw/projective/add-1998-cmo, shortw/projective/dbl-1998-cmo-2\n", - "│ │ │ │ │ shortw/projective/add-1998-cmo, shortw/projective/dbl-2007-bl\n", - "│ │ │ │ │ shortw/projective/add-1998-cmo, shortw/projective/dbl-1998-cmo\n", - "│ │ │ │ └── [x=2931798833210310726, y=14893197716203064256]\n", - "│ │ │ │ 27\n", - "│ │ │ │ DomainParameters(EllipticCurve)\n", - "│ │ │ │ ├── [x=4701374179218306695, y=10529574804216309365]\n", - "│ │ │ │ │ 0\n", - "│ │ │ │ │ DomainParameters(EllipticCurve)\n", - "│ │ │ │ │ ├── shortw/jacobian/add-2007-bl, shortw/jacobian/dbl-1986-cc\n", - "│ │ │ │ │ │ shortw/jacobian/add-2007-bl, shortw/jacobian/dbl-1998-cmo-2\n", - "│ │ │ │ │ │ shortw/jacobian/add-2007-bl, shortw/jacobian/dbl-1998-cmo\n", - "│ │ │ │ │ └── shortw/jacobian/add-2007-bl, shortw/jacobian/dbl-1998-hnm\n", - "│ │ │ │ └── [x=6510762087270099859, y=8382435628932964398]\n", - "│ │ │ │ 26\n", - "│ │ │ │ DomainParameters(EllipticCurve)\n", - "│ │ │ │ ├── shortw/jacobian/add-2007-bl, shortw/jacobian/dbl-2007-bl\n", - "│ │ │ │ └── shortw/modified/add-2009-bl, shortw/modified/dbl-1998-cmo-2\n", - "│ │ │ │ shortw/modified/add-2009-bl, shortw/modified/dbl-2009-bl\n", - "│ │ │ └── [x=2931798833210310726, y=14893197716203064256]\n", - "│ │ │ 26\n", - "│ │ │ DomainParameters(EllipticCurve)\n", - "│ │ │ ├── [x=4701374179218306695, y=10529574804216309365]\n", - "│ │ │ │ 0\n", - "│ │ │ │ DomainParameters(EllipticCurve)\n", - "│ │ │ │ ├── shortw/jacobian/add-1998-cmo-2, shortw/jacobian/dbl-1986-cc\n", - "│ │ │ │ │ shortw/jacobian/add-1998-cmo-2, shortw/jacobian/dbl-1998-cmo-2\n", - "│ │ │ │ │ shortw/jacobian/add-1998-cmo-2, shortw/jacobian/dbl-1998-cmo\n", - "│ │ │ │ │ shortw/jacobian/add-1998-cmo, shortw/jacobian/dbl-1986-cc\n", - "│ │ │ │ │ shortw/jacobian/add-1998-cmo, shortw/jacobian/dbl-1998-cmo\n", - "│ │ │ │ │ shortw/jacobian/add-1998-cmo, shortw/jacobian/dbl-1998-cmo-2\n", - "│ │ │ │ │ shortw/jacobian/add-bc-r1rv76-jac, shortw/jacobian/dbl-1986-cc\n", - "│ │ │ │ │ shortw/xyzz/add-2008-s, shortw/xyzz/dbl-2008-s-1\n", - "│ │ │ │ │ shortw/jacobian/add-bc-r1rv76-jac, shortw/jacobian/dbl-1998-cmo\n", - "│ │ │ │ │ shortw/jacobian/add-bc-r1rv76-jac, shortw/jacobian/dbl-1998-cmo-2\n", - "│ │ │ │ └── shortw/jacobian/add-1998-cmo-2, shortw/jacobian/dbl-1998-hnm\n", - "│ │ │ │ shortw/jacobian/add-1998-cmo, shortw/jacobian/dbl-1998-hnm\n", - "│ │ │ │ shortw/jacobian/add-bc-r1rv76-jac, shortw/jacobian/dbl-1998-hnm\n", - "│ │ │ └── [x=2695787092446081872, y=11530949965125792502]\n", - "│ │ │ 2\n", - "│ │ │ DomainParameters(EllipticCurve)\n", - "│ │ │ ├── shortw/jacobian/add-1998-cmo-2, shortw/jacobian/dbl-2007-bl\n", - "│ │ │ │ shortw/jacobian/add-1998-cmo, shortw/jacobian/dbl-2007-bl\n", - "│ │ │ │ shortw/jacobian/add-bc-r1rv76-jac, shortw/jacobian/dbl-2007-bl\n", - "│ │ │ └── shortw/modified/add-1998-cmo-2, shortw/modified/dbl-2009-bl\n", - "│ │ │ shortw/modified/add-1998-cmo-2, shortw/modified/dbl-1998-cmo-2\n", - "│ │ └── [x=3987108553814416983, y=10194401568277669542]\n", - "│ │ 0\n", - "│ │ DomainParameters(EllipticCurve)\n", - "│ │ ├── shortw/projective-3/add-1998-cmo-2, shortw/projective-3/dbl-2007-bl\n", - "│ │ │ shortw/projective-3/add-1998-cmo-2, shortw/projective-3/dbl-2007-bl-2\n", - "│ │ │ shortw/projective-3/add-1998-cmo-2, shortw/projective-3/dbl-1998-cmo-2\n", - "│ │ │ shortw/projective-3/add-1998-cmo-2, shortw/projective-3/dbl-1998-cmo\n", - "│ │ │ shortw/projective-3/add-1998-cmo, shortw/projective-3/dbl-2007-bl\n", - "│ │ │ shortw/projective-3/add-1998-cmo, shortw/projective-3/dbl-1998-cmo-2\n", - "│ │ │ shortw/projective-3/add-1998-cmo, shortw/projective-3/dbl-2007-bl-2\n", - "│ │ │ shortw/projective-3/add-1998-cmo, shortw/projective-3/dbl-1998-cmo\n", - "│ │ │ shortw/xyzz-3/add-2008-s, shortw/xyzz-3/dbl-2008-s-1\n", - "│ │ │ shortw/xyzz-3/add-2008-s, shortw/xyzz-3/dbl-2008-s-2\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-1986-cc\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-1998-cmo-2\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-1998-cmo\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-1986-cc\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-1986-cc-2\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-1998-cmo-2\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-1998-hnm-2\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-1998-cmo\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-1986-cc-2\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-1998-hnm\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-2004-hmv\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-1998-hnm-2\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-1998-hnm\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-2004-hmv\n", - "│ │ └── [x=3987108553814416983, y=10194401568277669542]\n", - "│ │ 1\n", - "│ │ DomainParameters(EllipticCurve)\n", - "│ │ ├── shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-1986-cc\n", - "│ │ │ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-1998-cmo-2\n", - "│ │ │ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-1998-cmo\n", - "│ │ │ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-1986-cc-2\n", - "│ │ │ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-1998-hnm-2\n", - "│ │ │ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-1998-hnm\n", - "│ │ │ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-2004-hmv\n", - "│ │ └── [x=3987108553814416983, y=10194401568277669542]\n", - "│ │ 2\n", - "│ │ DomainParameters(EllipticCurve)\n", - "│ │ ├── shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-2007-bl\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-2001-b\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-2007-bl\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-2001-b\n", - "│ │ └── shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-2007-bl\n", - "│ │ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-2001-b\n", - "│ └── [x=8583585759655994824, y=5072807259252535394]\n", - "│ 2\n", - "│ DomainParameters(EllipticCurve)\n", - "│ ├── [x=813939388429964455, y=6661172451039539927]\n", - "│ │ 3\n", - "│ │ DomainParameters(EllipticCurve)\n", - "│ │ ├── [x=9207640209484078691, y=13054112271424076721]\n", - "│ │ │ 41\n", - "│ │ │ DomainParameters(EllipticCurve)\n", - "│ │ │ ├── [x=6292247451345142082, y=7536413344159771043]\n", - "│ │ │ │ 3\n", - "│ │ │ │ DomainParameters(EllipticCurve)\n", - "│ │ │ │ ├── [x=7904229027765000239, y=3153037537088752648]\n", - "│ │ │ │ │ 962\n", - "│ │ │ │ │ DomainParameters(EllipticCurve)\n", - "│ │ │ │ │ ├── shortw/projective/add-2002-bj, shortw/projective/dbl-1998-cmo-2\n", - "│ │ │ │ │ └── [x=5610676601755833088, y=2256671746760711811]\n", - "│ │ │ │ │ 1012\n", - "│ │ │ │ │ DomainParameters(EllipticCurve)\n", - "│ │ │ │ │ ├── shortw/projective/add-2002-bj, shortw/projective/dbl-2007-bl\n", - "│ │ │ │ │ └── shortw/projective/add-2002-bj, shortw/projective/dbl-1998-cmo\n", - "│ │ │ │ └── [x=5610676601755833088, y=9274278218365080692]\n", - "│ │ │ │ 1085\n", - "│ │ │ │ DomainParameters(EllipticCurve)\n", - "│ │ │ │ ├── shortw/projective/add-2007-bl, shortw/projective/dbl-2007-bl\n", - "│ │ │ │ └── [x=9979302445253644651, y=5489702477279405897]\n", - "│ │ │ │ 1035\n", - "│ │ │ │ DomainParameters(EllipticCurve)\n", - "│ │ │ │ ├── shortw/projective/add-2007-bl, shortw/projective/dbl-1998-cmo-2\n", - "│ │ │ │ └── shortw/projective/add-2007-bl, shortw/projective/dbl-1998-cmo\n", - "│ │ │ └── [x=4701374179218306695, y=10529574804216309365]\n", - "│ │ │ 0\n", - "│ │ │ DomainParameters(EllipticCurve)\n", - "│ │ │ ├── [x=3174880782688558524, y=15311888883183151212]\n", - "│ │ │ │ 0\n", - "│ │ │ │ DomainParameters(EllipticCurve)\n", - "│ │ │ │ ├── shortw/jacobian/add-1998-hnm, shortw/jacobian/dbl-1986-cc\n", - "│ │ │ │ │ shortw/jacobian/add-1998-hnm, shortw/jacobian/dbl-1998-cmo-2\n", - "│ │ │ │ │ shortw/jacobian/add-1998-hnm, shortw/jacobian/dbl-1998-cmo\n", - "│ │ │ │ └── shortw/jacobian/add-1998-hnm, shortw/jacobian/dbl-2007-bl\n", - "│ │ │ └── shortw/jacobian/add-1998-hnm, shortw/jacobian/dbl-1998-hnm\n", - "│ │ └── [x=3987108553814416983, y=10194401568277669542]\n", - "│ │ 0\n", - "│ │ DomainParameters(EllipticCurve)\n", - "│ │ ├── shortw/projective-3/add-2002-bj, shortw/projective-3/dbl-2007-bl\n", - "│ │ │ shortw/projective-3/add-2002-bj, shortw/projective-3/dbl-1998-cmo-2\n", - "│ │ │ shortw/projective-3/add-2002-bj, shortw/projective-3/dbl-2007-bl-2\n", - "│ │ │ shortw/projective-3/add-2002-bj, shortw/projective-3/dbl-1998-cmo\n", - "│ │ │ shortw/projective-3/add-2007-bl, shortw/projective-3/dbl-2007-bl\n", - "│ │ │ shortw/projective-3/add-2007-bl, shortw/projective-3/dbl-2007-bl-2\n", - "│ │ │ shortw/projective-3/add-2007-bl, shortw/projective-3/dbl-1998-cmo-2\n", - "│ │ │ shortw/projective-3/add-2007-bl, shortw/projective-3/dbl-1998-cmo\n", - "│ │ │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-1986-cc\n", - "│ │ │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-1998-cmo-2\n", - "│ │ │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-1998-cmo\n", - "│ │ │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-1986-cc-2\n", - "│ │ │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-1998-hnm-2\n", - "│ │ │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-1998-hnm\n", - "│ │ │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-2004-hmv\n", - "│ │ └── shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-2007-bl\n", - "│ │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-2001-b\n", - "│ └── [x=813939388429964455, y=6661172451039539927]\n", - "│ 3\n", - "│ DomainParameters(EllipticCurve)\n", - "│ ├── [x=5303842224313800291, y=2978129968532308991]\n", - "│ │ 2\n", - "│ │ DomainParameters(EllipticCurve)\n", - "│ │ ├── [x=4701374179218306695, y=10529574804216309365]\n", - "│ │ │ 0\n", - "│ │ │ DomainParameters(EllipticCurve)\n", - "│ │ │ ├── [x=3174880782688558524, y=15311888883183151212]\n", - "│ │ │ │ 0\n", - "│ │ │ │ DomainParameters(EllipticCurve)\n", - "│ │ │ │ ├── shortw/jacobian/add-1986-cc, shortw/jacobian/dbl-1986-cc\n", - "│ │ │ │ │ shortw/jacobian/add-1986-cc, shortw/jacobian/dbl-1998-cmo-2\n", - "│ │ │ │ │ shortw/jacobian/add-1986-cc, shortw/jacobian/dbl-1998-cmo\n", - "│ │ │ │ └── shortw/jacobian/add-1986-cc, shortw/jacobian/dbl-2007-bl\n", - "│ │ │ └── shortw/jacobian/add-2001-b, shortw/jacobian/dbl-1998-hnm\n", - "│ │ └── [x=4701374179218306695, y=10529574804216309365]\n", - "│ │ 0\n", - "│ │ DomainParameters(EllipticCurve)\n", - "│ │ ├── [x=3174880782688558524, y=15311888883183151212]\n", - "│ │ │ 0\n", - "│ │ │ DomainParameters(EllipticCurve)\n", - "│ │ │ ├── shortw/jacobian/add-2001-b, shortw/jacobian/dbl-1986-cc\n", - "│ │ │ │ shortw/jacobian/add-2001-b, shortw/jacobian/dbl-1998-cmo-2\n", - "│ │ │ │ shortw/jacobian/add-2001-b, shortw/jacobian/dbl-1998-cmo\n", - "│ │ │ └── shortw/jacobian/add-2001-b, shortw/jacobian/dbl-2007-bl\n", - "│ │ └── shortw/jacobian/add-1986-cc, shortw/jacobian/dbl-1998-hnm\n", - "│ └── [x=3987108553814416983, y=10194401568277669542]\n", - "│ 0\n", - "│ DomainParameters(EllipticCurve)\n", - "│ ├── shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-1986-cc\n", - "│ │ shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-1998-cmo-2\n", - "│ │ shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-1998-cmo\n", - "│ │ shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-1986-cc-2\n", - "│ │ shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-1986-cc\n", - "│ │ shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-1998-cmo-2\n", - "│ │ shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-1998-hnm-2\n", - "│ │ shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-1986-cc-2\n", - "│ │ shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-1998-cmo\n", - "│ │ shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-1998-hnm\n", - "│ │ shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-2004-hmv\n", - "│ │ shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-1998-hnm\n", - "│ │ shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-1998-hnm-2\n", - "│ │ shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-2004-hmv\n", - "│ └── shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-2007-bl\n", - "│ shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-2001-b\n", - "│ shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-2007-bl\n", - "│ shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-2001-b\n", - "└── [x=330803148782512684, y=3479385230159377146]\n", - " 0\n", - " DomainParameters(EllipticCurve)\n", - " ├── [x=5290749974607723184, y=5916599314601128558]\n", - " │ 3\n", - " │ DomainParameters(EllipticCurve)\n", - " │ ├── [x=8583585759655994824, y=5121594309025134149]\n", - " │ │ 0\n", - " │ │ DomainParameters(EllipticCurve)\n", - " │ │ ├── [x=5121176033986057907, y=12787271129661728530]\n", - " │ │ │ 2\n", - " │ │ │ DomainParameters(EllipticCurve)\n", - " │ │ │ ├── shortw/projective/add-2016-rcb, shortw/projective/dbl-1998-cmo-2\n", - " │ │ │ │ shortw/projective/add-2016-rcb, shortw/projective/dbl-2007-bl\n", - " │ │ │ │ shortw/projective/add-2016-rcb, shortw/projective/dbl-1998-cmo\n", - " │ │ │ │ shortw/projective/add-2015-rcb, shortw/projective/dbl-1998-cmo-2\n", - " │ │ │ │ shortw/projective/add-2015-rcb, shortw/projective/dbl-2007-bl\n", - " │ │ │ │ shortw/projective/add-2015-rcb, shortw/projective/dbl-1998-cmo\n", - " │ │ │ └── shortw/projective/add-1998-cmo-2, shortw/projective/dbl-2016-rcb\n", - " │ │ │ shortw/projective/add-1998-cmo, shortw/projective/dbl-2016-rcb\n", - " │ │ │ shortw/projective/add-1998-cmo-2, shortw/projective/dbl-2015-rcb\n", - " │ │ │ shortw/projective/add-1998-cmo, shortw/projective/dbl-2015-rcb\n", - " │ │ └── [x=9185172264551501167, y=1489984362467478237]\n", - " │ │ 0\n", - " │ │ DomainParameters(EllipticCurve)\n", - " │ │ ├── [x=5121176033986057907, y=12787271129661728530]\n", - " │ │ │ 2\n", - " │ │ │ DomainParameters(EllipticCurve)\n", - " │ │ │ ├── shortw/projective-1/add-2015-rcb, shortw/projective-1/dbl-2007-bl\n", - " │ │ │ │ shortw/projective-1/add-2015-rcb, shortw/projective-1/dbl-1998-cmo\n", - " │ │ │ │ shortw/projective-1/add-2015-rcb, shortw/projective-1/dbl-1998-cmo-2\n", - " │ │ │ └── [x=3271642899270608132, y=4094231858049384691]\n", - " │ │ │ 0\n", - " │ │ │ DomainParameters(EllipticCurve)\n", - " │ │ │ ├── shortw/projective-1/add-1998-cmo-2, shortw/projective-1/dbl-2015-rcb\n", - " │ │ │ │ shortw/projective-1/add-1998-cmo, shortw/projective-1/dbl-2015-rcb\n", - " │ │ │ └── shortw/projective-1/add-2002-bj-2, shortw/projective-1/dbl-2015-rcb\n", - " │ │ └── [x=4810169051756113129, y=9663791351713124974]\n", - " │ │ 1\n", - " │ │ DomainParameters(EllipticCurve)\n", - " │ │ ├── [x=6292247451345142082, y=7536413344159771043]\n", - " │ │ │ 3\n", - " │ │ │ DomainParameters(EllipticCurve)\n", - " │ │ │ ├── shortw/projective/add-2002-bj, shortw/projective/dbl-2016-rcb\n", - " │ │ │ │ shortw/projective/add-2002-bj, shortw/projective/dbl-2015-rcb\n", - " │ │ │ └── shortw/projective/add-2007-bl, shortw/projective/dbl-2016-rcb\n", - " │ │ │ shortw/projective/add-2007-bl, shortw/projective/dbl-2015-rcb\n", - " │ │ └── shortw/projective-1/add-2002-bj, shortw/projective-1/dbl-2015-rcb\n", - " │ │ shortw/projective-1/add-2007-bl, shortw/projective-1/dbl-2015-rcb\n", - " │ └── [x=3760330877114905034, y=465102495883520334]\n", - " │ 0\n", - " │ DomainParameters(EllipticCurve)\n", - " │ ├── [x=3271642899270608132, y=4094231858049384691]\n", - " │ │ 0\n", - " │ │ DomainParameters(EllipticCurve)\n", - " │ │ ├── shortw/projective-1/add-1998-cmo-2, shortw/projective-1/dbl-1998-cmo-2\n", - " │ │ │ shortw/projective-1/add-1998-cmo-2, shortw/projective-1/dbl-1998-cmo\n", - " │ │ │ shortw/projective-1/add-1998-cmo-2, shortw/projective-1/dbl-2007-bl\n", - " │ │ │ shortw/projective-1/add-1998-cmo, shortw/projective-1/dbl-1998-cmo-2\n", - " │ │ │ shortw/projective-1/add-1998-cmo, shortw/projective-1/dbl-2007-bl\n", - " │ │ │ shortw/projective-1/add-1998-cmo, shortw/projective-1/dbl-1998-cmo\n", - " │ │ └── [x=4810169051756113129, y=9663791351713124974]\n", - " │ │ 1\n", - " │ │ DomainParameters(EllipticCurve)\n", - " │ │ ├── shortw/projective/add-2016-rcb, shortw/projective/dbl-2016-rcb\n", - " │ │ │ shortw/projective/add-2015-rcb, shortw/projective/dbl-2016-rcb\n", - " │ │ │ shortw/projective/add-2016-rcb, shortw/projective/dbl-2015-rcb\n", - " │ │ │ shortw/projective/add-2015-rcb, shortw/projective/dbl-2015-rcb\n", - " │ │ └── shortw/projective-1/add-2015-rcb, shortw/projective-1/dbl-2015-rcb\n", - " │ └── [x=9185172264551501167, y=1489984362467478237]\n", - " │ 0\n", - " │ DomainParameters(EllipticCurve)\n", - " │ ├── shortw/projective-1/add-2002-bj-2, shortw/projective-1/dbl-2007-bl\n", - " │ │ shortw/projective-1/add-2002-bj-2, shortw/projective-1/dbl-1998-cmo\n", - " │ │ shortw/projective-1/add-2002-bj-2, shortw/projective-1/dbl-1998-cmo-2\n", - " │ └── shortw/projective-1/add-2002-bj, shortw/projective-1/dbl-2007-bl\n", - " │ shortw/projective-1/add-2002-bj, shortw/projective-1/dbl-1998-cmo-2\n", - " │ shortw/projective-1/add-2002-bj, shortw/projective-1/dbl-1998-cmo\n", - " │ shortw/projective-1/add-2007-bl, shortw/projective-1/dbl-2007-bl\n", - " │ shortw/projective-1/add-2007-bl, shortw/projective-1/dbl-1998-cmo-2\n", - " │ shortw/projective-1/add-2007-bl, shortw/projective-1/dbl-1998-cmo\n", - " └── [x=9207640209484078691, y=13054112271424076721]\n", - " 26\n", - " DomainParameters(EllipticCurve)\n", - " ├── [x=2931798833210310726, y=14893197716203064256]\n", - " │ 26\n", - " │ DomainParameters(EllipticCurve)\n", - " │ ├── shortw/jacobian-0/add-1998-cmo-2, shortw/jacobian-0/dbl-1986-cc\n", - " │ │ shortw/jacobian-0/add-1998-cmo-2, shortw/jacobian-0/dbl-1998-cmo\n", - " │ │ shortw/jacobian-0/add-1998-cmo-2, shortw/jacobian-0/dbl-1998-cmo-2\n", - " │ │ shortw/jacobian-0/add-1998-cmo, shortw/jacobian-0/dbl-1986-cc\n", - " │ │ shortw/jacobian-0/add-1998-cmo, shortw/jacobian-0/dbl-1998-cmo-2\n", - " │ │ shortw/jacobian-0/add-1998-cmo, shortw/jacobian-0/dbl-1998-cmo\n", - " │ │ shortw/jacobian-0/add-1986-cc, shortw/jacobian-0/dbl-1986-cc\n", - " │ │ shortw/jacobian-0/add-1986-cc, shortw/jacobian-0/dbl-1998-cmo-2\n", - " │ │ shortw/jacobian-0/add-1986-cc, shortw/jacobian-0/dbl-1998-cmo\n", - " │ │ shortw/jacobian-0/add-2001-b, shortw/jacobian-0/dbl-1986-cc\n", - " │ │ shortw/jacobian-0/add-2001-b, shortw/jacobian-0/dbl-1998-cmo-2\n", - " │ │ shortw/jacobian-0/add-2001-b, shortw/jacobian-0/dbl-1998-cmo\n", - " │ │ shortw/jacobian-0/add-1998-hnm, shortw/jacobian-0/dbl-1998-cmo-2\n", - " │ │ shortw/jacobian-0/add-1998-hnm, shortw/jacobian-0/dbl-1986-cc\n", - " │ │ shortw/jacobian-0/add-1998-hnm, shortw/jacobian-0/dbl-1998-cmo\n", - " │ │ shortw/jacobian-0/add-1998-cmo, shortw/jacobian-0/dbl-1998-hnm\n", - " │ │ shortw/jacobian-0/add-1986-cc, shortw/jacobian-0/dbl-1998-hnm\n", - " │ │ shortw/jacobian-0/add-1998-cmo-2, shortw/jacobian-0/dbl-1998-hnm\n", - " │ │ shortw/jacobian-0/add-2001-b, shortw/jacobian-0/dbl-1998-hnm\n", - " │ │ shortw/jacobian-0/add-1998-hnm, shortw/jacobian-0/dbl-1998-hnm\n", - " │ └── [x=2984901480071412866, y=14893197716203064256]\n", - " │ 28\n", - " │ DomainParameters(EllipticCurve)\n", - " │ ├── shortw/jacobian-0/add-1998-cmo-2, shortw/jacobian-0/dbl-2007-bl\n", - " │ │ shortw/jacobian-0/add-1998-cmo, shortw/jacobian-0/dbl-2007-bl\n", - " │ │ shortw/jacobian-0/add-1986-cc, shortw/jacobian-0/dbl-2007-bl\n", - " │ │ shortw/jacobian-0/add-2001-b, shortw/jacobian-0/dbl-2007-bl\n", - " │ │ shortw/jacobian-0/add-1998-hnm, shortw/jacobian-0/dbl-2007-bl\n", - " │ └── [x=8976497402921340665, y=14893197716203064256]\n", - " │ 27\n", - " │ DomainParameters(EllipticCurve)\n", - " │ ├── shortw/jacobian-0/add-2007-bl, shortw/jacobian-0/dbl-1986-cc\n", - " │ │ shortw/jacobian-0/add-2007-bl, shortw/jacobian-0/dbl-1998-cmo-2\n", - " │ │ shortw/jacobian-0/add-2007-bl, shortw/jacobian-0/dbl-1998-cmo\n", - " │ │ shortw/jacobian-0/add-2007-bl, shortw/jacobian-0/dbl-1998-hnm\n", - " │ └── shortw/jacobian-0/add-2007-bl, shortw/jacobian-0/dbl-2007-bl\n", - " └── [x=3261882760552750749, y=5224146365954570556]\n", - " 3\n", - " DomainParameters(EllipticCurve)\n", - " ├── [x=7820832125962317615, y=9334214407275119717]\n", - " │ 0\n", - " │ DomainParameters(EllipticCurve)\n", - " │ ├── [x=6741014024306303479, y=2105209424005296600]\n", - " │ │ 5\n", - " │ │ DomainParameters(EllipticCurve)\n", - " │ │ ├── shortw/projective-3/add-2016-rcb, shortw/projective-3/dbl-2007-bl\n", - " │ │ │ shortw/projective-3/add-2016-rcb, shortw/projective-3/dbl-2007-bl-2\n", - " │ │ │ shortw/projective-3/add-2016-rcb, shortw/projective-3/dbl-1998-cmo-2\n", - " │ │ │ shortw/projective-3/add-2016-rcb, shortw/projective-3/dbl-1998-cmo\n", - " │ │ │ shortw/projective-3/add-2015-rcb-3, shortw/projective-3/dbl-2007-bl\n", - " │ │ │ shortw/projective-3/add-2015-rcb-3, shortw/projective-3/dbl-1998-cmo-2\n", - " │ │ │ shortw/projective-3/add-2015-rcb-3, shortw/projective-3/dbl-2007-bl-2\n", - " │ │ │ shortw/projective-3/add-2015-rcb-3, shortw/projective-3/dbl-1998-cmo\n", - " │ │ └── shortw/projective-3/add-2015-rcb, shortw/projective-3/dbl-2007-bl\n", - " │ │ shortw/projective-3/add-2015-rcb, shortw/projective-3/dbl-1998-cmo-2\n", - " │ │ shortw/projective-3/add-2015-rcb, shortw/projective-3/dbl-2007-bl-2\n", - " │ │ shortw/projective-3/add-2015-rcb, shortw/projective-3/dbl-1998-cmo\n", - " │ └── [x=8583585759655994824, y=5072807259252535394]\n", - " │ 0\n", - " │ DomainParameters(EllipticCurve)\n", - " │ ├── [x=7018390556762767964, y=1959409399271527243]\n", - " │ │ 0\n", - " │ │ DomainParameters(EllipticCurve)\n", - " │ │ ├── shortw/projective-3/add-1998-cmo-2, shortw/projective-3/dbl-2015-rcb-3\n", - " │ │ │ shortw/projective-3/add-1998-cmo-2, shortw/projective-3/dbl-2016-rcb\n", - " │ │ │ shortw/projective-3/add-1998-cmo, shortw/projective-3/dbl-2015-rcb-3\n", - " │ │ │ shortw/projective-3/add-1998-cmo, shortw/projective-3/dbl-2016-rcb\n", - " │ │ └── shortw/projective-3/add-1998-cmo-2, shortw/projective-3/dbl-2015-rcb\n", - " │ │ shortw/projective-3/add-1998-cmo, shortw/projective-3/dbl-2015-rcb\n", - " │ └── [x=7018390556762767964, y=1959409399271527243]\n", - " │ 0\n", - " │ DomainParameters(EllipticCurve)\n", - " │ ├── shortw/projective-3/add-2002-bj, shortw/projective-3/dbl-2015-rcb-3\n", - " │ │ shortw/projective-3/add-2002-bj, shortw/projective-3/dbl-2016-rcb\n", - " │ │ shortw/projective-3/add-2007-bl, shortw/projective-3/dbl-2015-rcb-3\n", - " │ │ shortw/projective-3/add-2007-bl, shortw/projective-3/dbl-2016-rcb\n", - " │ └── shortw/projective-3/add-2002-bj, shortw/projective-3/dbl-2015-rcb\n", - " │ shortw/projective-3/add-2007-bl, shortw/projective-3/dbl-2015-rcb\n", - " └── [x=5643623786928772539, y=13627860160399064610]\n", - " 0\n", - " DomainParameters(EllipticCurve)\n", - " ├── [x=2931798833210310726, y=14893197716203064256]\n", - " │ 0\n", - " │ DomainParameters(EllipticCurve)\n", - " │ ├── shortw/jacobian-0/add-1998-cmo-2, shortw/jacobian-0/dbl-2009-l\n", - " │ │ shortw/jacobian-0/add-1998-cmo, shortw/jacobian-0/dbl-2009-l\n", - " │ │ shortw/jacobian-0/add-1986-cc, shortw/jacobian-0/dbl-2009-l\n", - " │ │ shortw/jacobian-0/add-2001-b, shortw/jacobian-0/dbl-2009-l\n", - " │ │ shortw/jacobian-0/add-1998-hnm, shortw/jacobian-0/dbl-2009-l\n", - " │ └── [x=2931798833210310726, y=14893197716203064256]\n", - " │ 2\n", - " │ DomainParameters(EllipticCurve)\n", - " │ ├── shortw/jacobian-0/add-1998-cmo-2, shortw/jacobian-0/dbl-2009-alnr\n", - " │ │ shortw/jacobian-0/add-1998-cmo, shortw/jacobian-0/dbl-2009-alnr\n", - " │ │ shortw/jacobian-0/add-1986-cc, shortw/jacobian-0/dbl-2009-alnr\n", - " │ │ shortw/jacobian-0/add-1998-hnm, shortw/jacobian-0/dbl-2009-alnr\n", - " │ │ shortw/jacobian-0/add-2001-b, shortw/jacobian-0/dbl-2009-alnr\n", - " │ └── [x=8976497402921340665, y=14893197716203064256]\n", - " │ 1\n", - " │ DomainParameters(EllipticCurve)\n", - " │ ├── shortw/jacobian-0/add-2007-bl, shortw/jacobian-0/dbl-2009-l\n", - " │ └── shortw/jacobian-0/add-2007-bl, shortw/jacobian-0/dbl-2009-alnr\n", - " └── [x=7018390556762767964, y=1959409399271527243]\n", - " 0\n", - " DomainParameters(EllipticCurve)\n", - " ├── [x=6741014024306303479, y=2105209424005296600]\n", - " │ 5\n", - " │ DomainParameters(EllipticCurve)\n", - " │ ├── shortw/projective-3/add-2016-rcb, shortw/projective-3/dbl-2015-rcb-3\n", - " │ │ shortw/projective-3/add-2016-rcb, shortw/projective-3/dbl-2016-rcb\n", - " │ │ shortw/projective-3/add-2015-rcb-3, shortw/projective-3/dbl-2015-rcb-3\n", - " │ │ shortw/projective-3/add-2015-rcb-3, shortw/projective-3/dbl-2016-rcb\n", - " │ └── shortw/projective-3/add-2015-rcb, shortw/projective-3/dbl-2015-rcb-3\n", - " │ shortw/projective-3/add-2015-rcb, shortw/projective-3/dbl-2016-rcb\n", - " └── [x=6741014024306303479, y=2105209424005296600]\n", - " 5\n", - " DomainParameters(EllipticCurve)\n", - " ├── shortw/projective-3/add-2016-rcb, shortw/projective-3/dbl-2015-rcb\n", - " │ shortw/projective-3/add-2015-rcb-3, shortw/projective-3/dbl-2015-rcb\n", - " └── [x=8583585759655994824, y=5072807259252535394]\n", - " 0\n", - " DomainParameters(EllipticCurve)\n", - " ├── shortw/projective-3/add-2015-rcb, shortw/projective-3/dbl-2015-rcb\n", - " └── shortw/w12-0/add-2010-cln, shortw/w12-0/dbl-2010-cln\n" - ] - } - ], + "outputs": [], "source": [ "print(RenderTree(remapped_tree_dupl).by_attr(lambda n: n.name if n.name is not None else \"\\n\".join((\", \".join(str(formula) for formula in cfg) for cfg in n.cfgs))))" ] @@ -1981,7 +591,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "id": "d258bc29-b24f-4d57-a183-cb5d58e3f20f", "metadata": {}, "outputs": [], @@ -2004,353 +614,68 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": null, "id": "085c37db-ffbf-4f9e-87d3-5c13ecfeadca", "metadata": {}, "outputs": [], "source": [ - "fset_tree = build_distinguishing_tree(fset_map)\n", + "fset_tree = build_distinguishing_tree(set(fset_map.keys()), fset_map)\n", "print_leaf_sizes(fset_tree)" ] }, { "cell_type": "code", - "execution_count": 30, + "execution_count": null, "id": "9f0dc435-e08a-45d0-846d-ee865d6a4b7c", "metadata": { "scrolled": true }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Poly(x1 + 1, x1, domain='ZZ')\n", - "├── Poly(2*x1**3 - 3*x1**2*x2 + x2**3 - y1**2 + 2*y1*y2 - y2**2, x1, x2, y1, y2, domain='ZZ')\n", - "│ ├── Poly(x1**3 - 3*x1**2*x2 + 3*x1*x2**2 - x2**3 + y1**2 - 2*y1*y2 + y2**2, x1, x2, y1, y2, domain='ZZ')\n", - "│ │ ├── Poly(-6*x1 - y1**2 + 3*b, x1, y1, b, domain='ZZ')\n", - "│ │ │ ├── Poly(x1**2 + 3, x1, domain='ZZ')\n", - "│ │ │ │ ├── shortw/projective-3/add-1998-cmo-2, shortw/projective-3/dbl-2015-rcb\n", - "│ │ │ │ │ shortw/projective-3/add-1998-cmo, shortw/projective-3/dbl-2015-rcb\n", - "│ │ │ │ └── shortw/projective-3/add-1998-cmo-2, shortw/projective-3/dbl-2015-rcb-3\n", - "│ │ │ │ shortw/projective-3/add-1998-cmo-2, shortw/projective-3/dbl-2016-rcb\n", - "│ │ │ │ shortw/projective-3/add-1998-cmo, shortw/projective-3/dbl-2015-rcb-3\n", - "│ │ │ │ shortw/projective-3/add-1998-cmo, shortw/projective-3/dbl-2016-rcb\n", - "│ │ │ └── Poly(9*x1**4 - 18*x1**2 - 4*x1*y1**2 + 9, x1, y1, domain='ZZ')\n", - "│ │ │ ├── Poly(x1**2 - 3, x1, domain='ZZ')\n", - "│ │ │ │ ├── shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-1998-hnm\n", - "│ │ │ │ │ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-1998-hnm\n", - "│ │ │ │ │ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-1998-hnm\n", - "│ │ │ │ └── shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-1998-hnm-2\n", - "│ │ │ │ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-1998-hnm-2\n", - "│ │ │ │ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-1998-hnm-2\n", - "│ │ │ └── shortw/projective-3/add-1998-cmo-2, shortw/projective-3/dbl-2007-bl\n", - "│ │ │ shortw/projective-3/add-1998-cmo-2, shortw/projective-3/dbl-1998-cmo-2\n", - "│ │ │ shortw/projective-3/add-1998-cmo-2, shortw/projective-3/dbl-2007-bl-2\n", - "│ │ │ shortw/projective-3/add-1998-cmo-2, shortw/projective-3/dbl-1998-cmo\n", - "│ │ │ shortw/projective-3/add-1998-cmo, shortw/projective-3/dbl-2007-bl\n", - "│ │ │ shortw/projective-3/add-1998-cmo, shortw/projective-3/dbl-1998-cmo-2\n", - "│ │ │ shortw/projective-3/add-1998-cmo, shortw/projective-3/dbl-2007-bl-2\n", - "│ │ │ shortw/projective-3/add-1998-cmo, shortw/projective-3/dbl-1998-cmo\n", - "│ │ │ shortw/xyzz-3/add-2008-s, shortw/xyzz-3/dbl-2008-s-1\n", - "│ │ │ shortw/xyzz-3/add-2008-s, shortw/xyzz-3/dbl-2008-s-2\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-1986-cc\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-2007-bl\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-2004-hmv\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-1998-cmo-2\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-2001-b\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-1998-cmo\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo-2, shortw/jacobian-3/dbl-1986-cc-2\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-1986-cc\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-2007-bl\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-2004-hmv\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-1998-cmo-2\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-2001-b\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-1998-cmo\n", - "│ │ │ shortw/jacobian-3/add-1998-cmo, shortw/jacobian-3/dbl-1986-cc-2\n", - "│ │ │ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-1986-cc\n", - "│ │ │ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-2007-bl\n", - "│ │ │ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-2004-hmv\n", - "│ │ │ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-1998-cmo-2\n", - "│ │ │ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-2001-b\n", - "│ │ │ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-1998-cmo\n", - "│ │ │ shortw/jacobian-3/add-2007-bl, shortw/jacobian-3/dbl-1986-cc-2\n", - "│ │ └── Poly(9*x1**4 - 18*x1**2 - 4*x1*y1**2 + 9, x1, y1, domain='ZZ')\n", - "│ │ ├── Poly(x1**2 - 3, x1, domain='ZZ')\n", - "│ │ │ ├── shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-1998-hnm\n", - "│ │ │ │ shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-1998-hnm\n", - "│ │ │ └── shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-1998-hnm-2\n", - "│ │ │ shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-1998-hnm-2\n", - "│ │ └── shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-1986-cc\n", - "│ │ shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-2007-bl\n", - "│ │ shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-2004-hmv\n", - "│ │ shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-1998-cmo-2\n", - "│ │ shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-2001-b\n", - "│ │ shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-1998-cmo\n", - "│ │ shortw/jacobian-3/add-1986-cc, shortw/jacobian-3/dbl-1986-cc-2\n", - "│ │ shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-1986-cc\n", - "│ │ shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-2007-bl\n", - "│ │ shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-2004-hmv\n", - "│ │ shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-1998-cmo-2\n", - "│ │ shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-2001-b\n", - "│ │ shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-1998-cmo\n", - "│ │ shortw/jacobian-3/add-2001-b, shortw/jacobian-3/dbl-1986-cc-2\n", - "│ └── Poly(3*x1**4 - 6*x1**2 - 4*x1*y1**2 + 3, x1, y1, domain='ZZ')\n", - "│ ├── Poly(x1*y2 + x2*y1, x1, x2, y1, y2, domain='ZZ')\n", - "│ │ ├── Poly(x1*b + x2*b - 3, x1, x2, b, domain='ZZ')\n", - "│ │ │ ├── shortw/projective-3/add-2016-rcb, shortw/projective-3/dbl-2007-bl\n", - "│ │ │ │ shortw/projective-3/add-2016-rcb, shortw/projective-3/dbl-1998-cmo-2\n", - "│ │ │ │ shortw/projective-3/add-2016-rcb, shortw/projective-3/dbl-2007-bl-2\n", - "│ │ │ │ shortw/projective-3/add-2016-rcb, shortw/projective-3/dbl-1998-cmo\n", - "│ │ │ │ shortw/projective-3/add-2015-rcb-3, shortw/projective-3/dbl-2007-bl\n", - "│ │ │ │ shortw/projective-3/add-2015-rcb-3, shortw/projective-3/dbl-1998-cmo-2\n", - "│ │ │ │ shortw/projective-3/add-2015-rcb-3, shortw/projective-3/dbl-2007-bl-2\n", - "│ │ │ │ shortw/projective-3/add-2015-rcb-3, shortw/projective-3/dbl-1998-cmo\n", - "│ │ │ └── shortw/projective-3/add-2015-rcb, shortw/projective-3/dbl-2007-bl\n", - "│ │ │ shortw/projective-3/add-2015-rcb, shortw/projective-3/dbl-1998-cmo-2\n", - "│ │ │ shortw/projective-3/add-2015-rcb, shortw/projective-3/dbl-2007-bl-2\n", - "│ │ │ shortw/projective-3/add-2015-rcb, shortw/projective-3/dbl-1998-cmo\n", - "│ │ └── Poly(x1**2 + x1*x2 + x2**2 - 3, x1, x2, domain='ZZ')\n", - "│ │ ├── shortw/projective-3/add-2002-bj, shortw/projective-3/dbl-2007-bl\n", - "│ │ │ shortw/projective-3/add-2002-bj, shortw/projective-3/dbl-1998-cmo-2\n", - "│ │ │ shortw/projective-3/add-2002-bj, shortw/projective-3/dbl-2007-bl-2\n", - "│ │ │ shortw/projective-3/add-2002-bj, shortw/projective-3/dbl-1998-cmo\n", - "│ │ │ shortw/projective-3/add-2007-bl, shortw/projective-3/dbl-2007-bl\n", - "│ │ │ shortw/projective-3/add-2007-bl, shortw/projective-3/dbl-1998-cmo-2\n", - "│ │ │ shortw/projective-3/add-2007-bl, shortw/projective-3/dbl-2007-bl-2\n", - "│ │ │ shortw/projective-3/add-2007-bl, shortw/projective-3/dbl-1998-cmo\n", - "│ │ └── Poly(9*x1**4 - 18*x1**2 - 4*x1*y1**2 + 9, x1, y1, domain='ZZ')\n", - "│ │ ├── Poly(x1**2 - 3, x1, domain='ZZ')\n", - "│ │ │ ├── shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-1998-hnm\n", - "│ │ │ └── shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-1998-hnm-2\n", - "│ │ └── shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-1986-cc\n", - "│ │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-2007-bl\n", - "│ │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-2004-hmv\n", - "│ │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-1998-cmo-2\n", - "│ │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-2001-b\n", - "│ │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-1998-cmo\n", - "│ │ shortw/jacobian-3/add-1998-hnm, shortw/jacobian-3/dbl-1986-cc-2\n", - "│ └── Poly(-6*x1 - y1**2 + 3*b, x1, y1, b, domain='ZZ')\n", - "│ ├── Poly(x1*y2 + x2*y1, x1, x2, y1, y2, domain='ZZ')\n", - "│ │ ├── Poly(x1*b + x2*b - 3, x1, x2, b, domain='ZZ')\n", - "│ │ │ ├── Poly(x1**2 + 3, x1, domain='ZZ')\n", - "│ │ │ │ ├── shortw/projective-3/add-2016-rcb, shortw/projective-3/dbl-2015-rcb\n", - "│ │ │ │ │ shortw/projective-3/add-2015-rcb-3, shortw/projective-3/dbl-2015-rcb\n", - "│ │ │ │ └── shortw/projective-3/add-2016-rcb, shortw/projective-3/dbl-2015-rcb-3\n", - "│ │ │ │ shortw/projective-3/add-2016-rcb, shortw/projective-3/dbl-2016-rcb\n", - "│ │ │ │ shortw/projective-3/add-2015-rcb-3, shortw/projective-3/dbl-2015-rcb-3\n", - "│ │ │ │ shortw/projective-3/add-2015-rcb-3, shortw/projective-3/dbl-2016-rcb\n", - "│ │ │ └── Poly(x1**2 + 3, x1, domain='ZZ')\n", - "│ │ │ ├── shortw/projective-3/add-2015-rcb, shortw/projective-3/dbl-2015-rcb\n", - "│ │ │ └── shortw/projective-3/add-2015-rcb, shortw/projective-3/dbl-2015-rcb-3\n", - "│ │ │ shortw/projective-3/add-2015-rcb, shortw/projective-3/dbl-2016-rcb\n", - "│ │ └── Poly(x1**2 + 3, x1, domain='ZZ')\n", - "│ │ ├── shortw/projective-3/add-2002-bj, shortw/projective-3/dbl-2015-rcb\n", - "│ │ │ shortw/projective-3/add-2007-bl, shortw/projective-3/dbl-2015-rcb\n", - "│ │ └── shortw/projective-3/add-2002-bj, shortw/projective-3/dbl-2015-rcb-3\n", - "│ │ shortw/projective-3/add-2002-bj, shortw/projective-3/dbl-2016-rcb\n", - "│ │ shortw/projective-3/add-2007-bl, shortw/projective-3/dbl-2015-rcb-3\n", - "│ │ shortw/projective-3/add-2007-bl, shortw/projective-3/dbl-2016-rcb\n", - "│ └── Poly(9*x1**4 + 6*x1**2*a - 12*x1*y1**2 + a**2, x1, y1, a, domain='ZZ')\n", - "│ ├── shortw/projective/add-2016-rcb, shortw/projective/dbl-2007-bl\n", - "│ │ shortw/projective/add-2016-rcb, shortw/projective/dbl-1998-cmo-2\n", - "│ │ shortw/projective/add-2016-rcb, shortw/projective/dbl-1998-cmo\n", - "│ │ shortw/projective/add-2015-rcb, shortw/projective/dbl-2007-bl\n", - "│ │ shortw/projective/add-2015-rcb, shortw/projective/dbl-1998-cmo-2\n", - "│ │ shortw/projective/add-2015-rcb, shortw/projective/dbl-1998-cmo\n", - "│ └── Poly(-x1 - x2 + 3*b, x1, x2, b, domain='ZZ')\n", - "│ ├── Poly(x1**2 + 1, x1, domain='ZZ')\n", - "│ │ ├── shortw/projective-1/add-2015-rcb, shortw/projective-1/dbl-2015-rcb\n", - "│ │ └── shortw/projective-1/add-2015-rcb, shortw/projective-1/dbl-2007-bl\n", - "│ │ shortw/projective-1/add-2015-rcb, shortw/projective-1/dbl-1998-cmo-2\n", - "│ │ shortw/projective-1/add-2015-rcb, shortw/projective-1/dbl-1998-cmo\n", - "│ └── shortw/projective/add-2016-rcb, shortw/projective/dbl-2015-rcb\n", - "│ shortw/projective/add-2016-rcb, shortw/projective/dbl-2016-rcb\n", - "│ shortw/projective/add-2015-rcb, shortw/projective/dbl-2015-rcb\n", - "│ shortw/projective/add-2015-rcb, shortw/projective/dbl-2016-rcb\n", - "└── Poly(3*x1**2 + a, x1, a, domain='ZZ')\n", - " ├── Poly(x1**3 - 3*x1**2*x2 + 3*x1*x2**2 - x2**3 + y1**2 - 2*y1*y2 + y2**2, x1, x2, y1, y2, domain='ZZ')\n", - " │ ├── Poly(2*x1*a + y1**2 + 3*b, x1, y1, a, b, domain='ZZ')\n", - " │ │ ├── shortw/projective/add-1998-cmo-2, shortw/projective/dbl-2015-rcb\n", - " │ │ │ shortw/projective/add-1998-cmo-2, shortw/projective/dbl-2016-rcb\n", - " │ │ │ shortw/projective/add-1998-cmo, shortw/projective/dbl-2015-rcb\n", - " │ │ │ shortw/projective/add-1998-cmo, shortw/projective/dbl-2016-rcb\n", - " │ │ └── Poly(x1**2 + a, x1, a, domain='ZZ')\n", - " │ │ ├── shortw/jacobian/add-1998-cmo-2, shortw/jacobian/dbl-1998-hnm\n", - " │ │ │ shortw/jacobian/add-1998-cmo, shortw/jacobian/dbl-1998-hnm\n", - " │ │ │ shortw/jacobian/add-2007-bl, shortw/jacobian/dbl-1998-hnm\n", - " │ │ │ shortw/jacobian/add-bc-r1rv76-jac, shortw/jacobian/dbl-1998-hnm\n", - " │ │ └── shortw/projective/add-1998-cmo-2, shortw/projective/dbl-2007-bl\n", - " │ │ shortw/projective/add-1998-cmo-2, shortw/projective/dbl-1998-cmo-2\n", - " │ │ shortw/projective/add-1998-cmo-2, shortw/projective/dbl-1998-cmo\n", - " │ │ shortw/projective/add-1998-cmo, shortw/projective/dbl-2007-bl\n", - " │ │ shortw/projective/add-1998-cmo, shortw/projective/dbl-1998-cmo-2\n", - " │ │ shortw/projective/add-1998-cmo, shortw/projective/dbl-1998-cmo\n", - " │ │ shortw/jacobian/add-1998-cmo-2, shortw/jacobian/dbl-1986-cc\n", - " │ │ shortw/jacobian/add-1998-cmo-2, shortw/jacobian/dbl-2007-bl\n", - " │ │ shortw/jacobian/add-1998-cmo-2, shortw/jacobian/dbl-1998-cmo-2\n", - " │ │ shortw/jacobian/add-1998-cmo-2, shortw/jacobian/dbl-1998-cmo\n", - " │ │ shortw/jacobian/add-1998-cmo, shortw/jacobian/dbl-1986-cc\n", - " │ │ shortw/jacobian/add-1998-cmo, shortw/jacobian/dbl-2007-bl\n", - " │ │ shortw/jacobian/add-1998-cmo, shortw/jacobian/dbl-1998-cmo-2\n", - " │ │ shortw/jacobian/add-1998-cmo, shortw/jacobian/dbl-1998-cmo\n", - " │ │ shortw/jacobian/add-2007-bl, shortw/jacobian/dbl-1986-cc\n", - " │ │ shortw/jacobian/add-2007-bl, shortw/jacobian/dbl-2007-bl\n", - " │ │ shortw/jacobian/add-2007-bl, shortw/jacobian/dbl-1998-cmo-2\n", - " │ │ shortw/jacobian/add-2007-bl, shortw/jacobian/dbl-1998-cmo\n", - " │ │ shortw/jacobian/add-bc-r1rv76-jac, shortw/jacobian/dbl-1986-cc\n", - " │ │ shortw/jacobian/add-bc-r1rv76-jac, shortw/jacobian/dbl-2007-bl\n", - " │ │ shortw/jacobian/add-bc-r1rv76-jac, shortw/jacobian/dbl-1998-cmo-2\n", - " │ │ shortw/jacobian/add-bc-r1rv76-jac, shortw/jacobian/dbl-1998-cmo\n", - " │ │ shortw/xyzz/add-2008-s, shortw/xyzz/dbl-2008-s-1\n", - " │ │ shortw/modified/add-1998-cmo-2, shortw/modified/dbl-2009-bl\n", - " │ │ shortw/modified/add-1998-cmo-2, shortw/modified/dbl-1998-cmo-2\n", - " │ │ shortw/modified/add-2009-bl, shortw/modified/dbl-2009-bl\n", - " │ │ shortw/modified/add-2009-bl, shortw/modified/dbl-1998-cmo-2\n", - " │ └── Poly(x1**2 + x1*x2 + x2**2 + a, x1, x2, a, domain='ZZ')\n", - " │ ├── Poly(2*x1*a + y1**2 + 3*b, x1, y1, a, b, domain='ZZ')\n", - " │ │ ├── shortw/projective/add-2002-bj, shortw/projective/dbl-2015-rcb\n", - " │ │ │ shortw/projective/add-2002-bj, shortw/projective/dbl-2016-rcb\n", - " │ │ │ shortw/projective/add-2007-bl, shortw/projective/dbl-2015-rcb\n", - " │ │ │ shortw/projective/add-2007-bl, shortw/projective/dbl-2016-rcb\n", - " │ │ └── shortw/projective/add-2002-bj, shortw/projective/dbl-2007-bl\n", - " │ │ shortw/projective/add-2002-bj, shortw/projective/dbl-1998-cmo-2\n", - " │ │ shortw/projective/add-2002-bj, shortw/projective/dbl-1998-cmo\n", - " │ │ shortw/projective/add-2007-bl, shortw/projective/dbl-2007-bl\n", - " │ │ shortw/projective/add-2007-bl, shortw/projective/dbl-1998-cmo-2\n", - " │ │ shortw/projective/add-2007-bl, shortw/projective/dbl-1998-cmo\n", - " │ └── Poly(3*x1**3 - 3*x1**2*x2 - 3*x1*x2**2 + 3*x2**3 - 2*y1**2 + 4*y1*y2 - 2*y2**2, x1, x2, y1, y2, domain='ZZ')\n", - " │ ├── Poly(x1**2 + a, x1, a, domain='ZZ')\n", - " │ │ ├── shortw/jacobian/add-1998-hnm, shortw/jacobian/dbl-1998-hnm\n", - " │ │ └── shortw/jacobian/add-1998-hnm, shortw/jacobian/dbl-1986-cc\n", - " │ │ shortw/jacobian/add-1998-hnm, shortw/jacobian/dbl-2007-bl\n", - " │ │ shortw/jacobian/add-1998-hnm, shortw/jacobian/dbl-1998-cmo-2\n", - " │ │ shortw/jacobian/add-1998-hnm, shortw/jacobian/dbl-1998-cmo\n", - " │ └── Poly(x1**2 + a, x1, a, domain='ZZ')\n", - " │ ├── shortw/jacobian/add-1986-cc, shortw/jacobian/dbl-1998-hnm\n", - " │ │ shortw/jacobian/add-2001-b, shortw/jacobian/dbl-1998-hnm\n", - " │ └── shortw/jacobian/add-1986-cc, shortw/jacobian/dbl-1986-cc\n", - " │ shortw/jacobian/add-1986-cc, shortw/jacobian/dbl-2007-bl\n", - " │ shortw/jacobian/add-1986-cc, shortw/jacobian/dbl-1998-cmo-2\n", - " │ shortw/jacobian/add-1986-cc, shortw/jacobian/dbl-1998-cmo\n", - " │ shortw/jacobian/add-2001-b, shortw/jacobian/dbl-1986-cc\n", - " │ shortw/jacobian/add-2001-b, shortw/jacobian/dbl-2007-bl\n", - " │ shortw/jacobian/add-2001-b, shortw/jacobian/dbl-1998-cmo-2\n", - " │ shortw/jacobian/add-2001-b, shortw/jacobian/dbl-1998-cmo\n", - " └── Poly(x1**3 - 3*x1**2*x2 + 3*x1*x2**2 - x2**3 + y1**2 - 2*y1*y2 + y2**2, x1, x2, y1, y2, domain='ZZ')\n", - " ├── Poly(3*x1**3 - 4*y1**2, x1, y1, domain='ZZ')\n", - " │ ├── Poly(9*x1**3 - 4*y1**2, x1, y1, domain='ZZ')\n", - " │ │ ├── shortw/jacobian-0/add-1998-cmo-2, shortw/jacobian-0/dbl-1998-hnm\n", - " │ │ │ shortw/jacobian-0/add-1998-cmo, shortw/jacobian-0/dbl-1998-hnm\n", - " │ │ │ shortw/jacobian-0/add-2007-bl, shortw/jacobian-0/dbl-1998-hnm\n", - " │ │ └── shortw/jacobian-0/add-1998-cmo-2, shortw/jacobian-0/dbl-1986-cc\n", - " │ │ shortw/jacobian-0/add-1998-cmo-2, shortw/jacobian-0/dbl-2007-bl\n", - " │ │ shortw/jacobian-0/add-1998-cmo-2, shortw/jacobian-0/dbl-2009-l\n", - " │ │ shortw/jacobian-0/add-1998-cmo-2, shortw/jacobian-0/dbl-1998-cmo-2\n", - " │ │ shortw/jacobian-0/add-1998-cmo-2, shortw/jacobian-0/dbl-1998-cmo\n", - " │ │ shortw/jacobian-0/add-1998-cmo-2, shortw/jacobian-0/dbl-2009-alnr\n", - " │ │ shortw/jacobian-0/add-1998-cmo, shortw/jacobian-0/dbl-1986-cc\n", - " │ │ shortw/jacobian-0/add-1998-cmo, shortw/jacobian-0/dbl-2007-bl\n", - " │ │ shortw/jacobian-0/add-1998-cmo, shortw/jacobian-0/dbl-2009-l\n", - " │ │ shortw/jacobian-0/add-1998-cmo, shortw/jacobian-0/dbl-1998-cmo-2\n", - " │ │ shortw/jacobian-0/add-1998-cmo, shortw/jacobian-0/dbl-1998-cmo\n", - " │ │ shortw/jacobian-0/add-1998-cmo, shortw/jacobian-0/dbl-2009-alnr\n", - " │ │ shortw/jacobian-0/add-2007-bl, shortw/jacobian-0/dbl-1986-cc\n", - " │ │ shortw/jacobian-0/add-2007-bl, shortw/jacobian-0/dbl-2007-bl\n", - " │ │ shortw/jacobian-0/add-2007-bl, shortw/jacobian-0/dbl-2009-l\n", - " │ │ shortw/jacobian-0/add-2007-bl, shortw/jacobian-0/dbl-1998-cmo-2\n", - " │ │ shortw/jacobian-0/add-2007-bl, shortw/jacobian-0/dbl-1998-cmo\n", - " │ │ shortw/jacobian-0/add-2007-bl, shortw/jacobian-0/dbl-2009-alnr\n", - " │ └── Poly(-2*x1 + 3*b, x1, b, domain='ZZ')\n", - " │ ├── shortw/projective-1/add-1998-cmo-2, shortw/projective-1/dbl-2015-rcb\n", - " │ │ shortw/projective-1/add-1998-cmo, shortw/projective-1/dbl-2015-rcb\n", - " │ └── shortw/projective-1/add-1998-cmo-2, shortw/projective-1/dbl-2007-bl\n", - " │ shortw/projective-1/add-1998-cmo-2, shortw/projective-1/dbl-1998-cmo-2\n", - " │ shortw/projective-1/add-1998-cmo-2, shortw/projective-1/dbl-1998-cmo\n", - " │ shortw/projective-1/add-1998-cmo, shortw/projective-1/dbl-2007-bl\n", - " │ shortw/projective-1/add-1998-cmo, shortw/projective-1/dbl-1998-cmo-2\n", - " │ shortw/projective-1/add-1998-cmo, shortw/projective-1/dbl-1998-cmo\n", - " └── Poly(2*x1**3 - 3*x1**2*x2 + x2**3 - y1**2 + 2*y1*y2 - y2**2, x1, x2, y1, y2, domain='ZZ')\n", - " ├── Poly(9*x1**3 - 4*y1**2, x1, y1, domain='ZZ')\n", - " │ ├── shortw/jacobian-0/add-1986-cc, shortw/jacobian-0/dbl-1998-hnm\n", - " │ │ shortw/jacobian-0/add-2001-b, shortw/jacobian-0/dbl-1998-hnm\n", - " │ └── Poly(3*x1**3 - 4*y1**2, x1, y1, domain='ZZ')\n", - " │ ├── shortw/jacobian-0/add-1986-cc, shortw/jacobian-0/dbl-1986-cc\n", - " │ │ shortw/jacobian-0/add-1986-cc, shortw/jacobian-0/dbl-2007-bl\n", - " │ │ shortw/jacobian-0/add-1986-cc, shortw/jacobian-0/dbl-2009-l\n", - " │ │ shortw/jacobian-0/add-1986-cc, shortw/jacobian-0/dbl-1998-cmo-2\n", - " │ │ shortw/jacobian-0/add-1986-cc, shortw/jacobian-0/dbl-1998-cmo\n", - " │ │ shortw/jacobian-0/add-1986-cc, shortw/jacobian-0/dbl-2009-alnr\n", - " │ │ shortw/jacobian-0/add-2001-b, shortw/jacobian-0/dbl-1986-cc\n", - " │ │ shortw/jacobian-0/add-2001-b, shortw/jacobian-0/dbl-2007-bl\n", - " │ │ shortw/jacobian-0/add-2001-b, shortw/jacobian-0/dbl-2009-l\n", - " │ │ shortw/jacobian-0/add-2001-b, shortw/jacobian-0/dbl-1998-cmo-2\n", - " │ │ shortw/jacobian-0/add-2001-b, shortw/jacobian-0/dbl-1998-cmo\n", - " │ │ shortw/jacobian-0/add-2001-b, shortw/jacobian-0/dbl-2009-alnr\n", - " │ └── shortw/w12-0/add-2010-cln, shortw/w12-0/dbl-2010-cln\n", - " └── Poly(9*x1**4 - 6*x1**2 - 12*x1*y1**2 + 1, x1, y1, domain='ZZ')\n", - " ├── Poly(x1 + x2 - 1, x1, x2, domain='ZZ')\n", - " │ ├── shortw/projective-1/add-2002-bj-2, shortw/projective-1/dbl-2007-bl\n", - " │ │ shortw/projective-1/add-2002-bj-2, shortw/projective-1/dbl-1998-cmo-2\n", - " │ │ shortw/projective-1/add-2002-bj-2, shortw/projective-1/dbl-1998-cmo\n", - " │ └── shortw/projective-1/add-2002-bj, shortw/projective-1/dbl-2007-bl\n", - " │ shortw/projective-1/add-2002-bj, shortw/projective-1/dbl-1998-cmo-2\n", - " │ shortw/projective-1/add-2002-bj, shortw/projective-1/dbl-1998-cmo\n", - " │ shortw/projective-1/add-2007-bl, shortw/projective-1/dbl-2007-bl\n", - " │ shortw/projective-1/add-2007-bl, shortw/projective-1/dbl-1998-cmo-2\n", - " │ shortw/projective-1/add-2007-bl, shortw/projective-1/dbl-1998-cmo\n", - " └── Poly(3*x1**3 - 3*x1**2*x2 - 3*x1*x2**2 + 3*x2**3 - 2*y1**2 + 4*y1*y2 - 2*y2**2, x1, x2, y1, y2, domain='ZZ')\n", - " ├── Poly(9*x1**3 - 4*y1**2, x1, y1, domain='ZZ')\n", - " │ ├── shortw/jacobian-0/add-1998-hnm, shortw/jacobian-0/dbl-1998-hnm\n", - " │ └── shortw/jacobian-0/add-1998-hnm, shortw/jacobian-0/dbl-1986-cc\n", - " │ shortw/jacobian-0/add-1998-hnm, shortw/jacobian-0/dbl-2007-bl\n", - " │ shortw/jacobian-0/add-1998-hnm, shortw/jacobian-0/dbl-2009-l\n", - " │ shortw/jacobian-0/add-1998-hnm, shortw/jacobian-0/dbl-1998-cmo-2\n", - " │ shortw/jacobian-0/add-1998-hnm, shortw/jacobian-0/dbl-1998-cmo\n", - " │ shortw/jacobian-0/add-1998-hnm, shortw/jacobian-0/dbl-2009-alnr\n", - " └── Poly(x1 + x2 - 1, x1, x2, domain='ZZ')\n", - " ├── shortw/projective-1/add-2002-bj-2, shortw/projective-1/dbl-2015-rcb\n", - " └── shortw/projective-1/add-2002-bj, shortw/projective-1/dbl-2015-rcb\n", - " shortw/projective-1/add-2007-bl, shortw/projective-1/dbl-2015-rcb\n" - ] - } - ], + "outputs": [], "source": [ "print(RenderTree(fset_tree).by_attr(lambda n: n.name if n.name is not None else \"\\n\".join((\", \".join(str(formula) for formula in cfg) for cfg in n.cfgs))))" ] }, { "cell_type": "code", - "execution_count": 20, - "id": "6db4910f-c492-462b-9d0e-effe3e7bfed9", + "execution_count": null, + "id": "24c98d6a-fc16-495a-bd70-35cb022b7b17", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "expanded = expand_tree(remapped_tree, fset_map)\n", + "print(RenderTree(expanded).by_attr(lambda n: n.name if n.name is not None else \"\\n\".join((\", \".join(str(formula) for formula in cfg) for cfg in n.cfgs))))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1066e690-d036-47b6-995f-c54c412595f9", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "-------------- filter_nonhomo=True affine=True --------------\n" - ] - }, - { - "ename": "NameError", - "evalue": "name 'dbls' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[20], line 4\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[39mfor\u001b[39;00m affine \u001b[39min\u001b[39;00m (\u001b[39mTrue\u001b[39;00m, \u001b[39mFalse\u001b[39;00m):\n\u001b[1;32m 3\u001b[0m \u001b[39mprint\u001b[39m(\u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m-------------- filter_nonhomo=\u001b[39m\u001b[39m{\u001b[39;00mfilter_nonhomo\u001b[39m}\u001b[39;00m\u001b[39m affine=\u001b[39m\u001b[39m{\u001b[39;00maffine\u001b[39m}\u001b[39;00m\u001b[39m --------------\u001b[39m\u001b[39m\"\u001b[39m)\n\u001b[0;32m----> 4\u001b[0m fset_map \u001b[39m=\u001b[39m {dbl: compute_factor_set(dbl, filter_nonhomo\u001b[39m=\u001b[39mfilter_nonhomo, affine\u001b[39m=\u001b[39maffine) \u001b[39mfor\u001b[39;00m dbl \u001b[39min\u001b[39;00m dbls}\n\u001b[1;32m 5\u001b[0m fset_tree \u001b[39m=\u001b[39m build_distinguishing_tree(fset_map)\n\u001b[1;32m 6\u001b[0m \u001b[39mprint\u001b[39m(RenderTree(fset_tree)\u001b[39m.\u001b[39mby_attr(\u001b[39mlambda\u001b[39;00m n: n\u001b[39m.\u001b[39mname \u001b[39mif\u001b[39;00m n\u001b[39m.\u001b[39mname \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m \u001b[39melse\u001b[39;00m n\u001b[39m.\u001b[39mcfgs))\n", - "\u001b[0;31mNameError\u001b[0m: name 'dbls' is not defined" - ] - } - ], + "outputs": [], + "source": [ + "polys = set()\n", + "for node in PreOrderIter(expanded):\n", + " if not node.name:\n", + " continue\n", + " _, elem = node.name\n", + " if isinstance(elem, Poly):\n", + " polys.add(elem)\n", + "for poly in polys:\n", + " print(poly)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4a4de408-84b7-4559-92a5-94563ba1c1bf", + "metadata": {}, + "outputs": [], "source": [ - "for filter_nonhomo in (True, False):\n", - " for affine in (True, False):\n", - " print(f\"-------------- filter_nonhomo={filter_nonhomo} affine={affine} --------------\")\n", - " fset_map = {dbl: compute_factor_set(dbl, filter_nonhomo=filter_nonhomo, affine=affine) for dbl in dbls}\n", - " fset_tree = build_distinguishing_tree(fset_map)\n", - " print(RenderTree(fset_tree).by_attr(lambda n: n.name if n.name is not None else n.cfgs))" + "print_leaf_sizes(tree)\n", + "print_leaf_sizes(fset_tree)\n", + "print_leaf_sizes(expanded)" ] }, { @@ -2399,7 +724,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.11.5" } }, "nbformat": 4, |
