aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJ08nY2024-01-18 13:53:27 +0100
committerJ08nY2024-01-18 14:00:11 +0100
commit1c30c7a7088c8434c3a46d8855341c550d56e142 (patch)
tree593e0a5aa02626574ba220c594989bef85aa0d68
parent27eb06e6d68ec9a154e73182c6aaeb50832b8abd (diff)
downloadpyecsca-notebook-1c30c7a7088c8434c3a46d8855341c550d56e142.tar.gz
pyecsca-notebook-1c30c7a7088c8434c3a46d8855341c550d56e142.tar.zst
pyecsca-notebook-1c30c7a7088c8434c3a46d8855341c550d56e142.zip
Add different scalars.
-rw-r--r--re/zvp.ipynb1841
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,