physdes-py 0.7__tar.gz → 0.8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- physdes_py-0.8/CHANGELOG.md +39 -0
- {physdes_py-0.7/src/physdes_py.egg-info → physdes_py-0.8}/PKG-INFO +1 -1
- {physdes_py-0.7 → physdes_py-0.8}/alpha10.svg +16 -16
- {physdes_py-0.7 → physdes_py-0.8}/alpha12.svg +13 -13
- {physdes_py-0.7 → physdes_py-0.8}/alpha14.svg +10 -10
- {physdes_py-0.7 → physdes_py-0.8}/alpha8.svg +13 -13
- {physdes_py-0.7 → physdes_py-0.8}/alpha9998.svg +16 -16
- {physdes_py-0.7 → physdes_py-0.8}/demo_overlap.py +0 -49
- {physdes_py-0.7 → physdes_py-0.8}/docs/requirements.txt +2 -0
- {physdes_py-0.7 → physdes_py-0.8}/example_route3d_with_constraint_and_keepouts.svg +10 -16
- {physdes_py-0.7 → physdes_py-0.8}/example_route3d_with_steiner_and_keepouts.svg +10 -16
- {physdes_py-0.7/outputs → physdes_py-0.8}/example_route_with_delay_constraint.svg +16 -16
- {physdes_py-0.7 → physdes_py-0.8}/example_route_with_keepouts.svg +10 -10
- {physdes_py-0.7/outputs → physdes_py-0.8}/example_route_with_steiner.svg +10 -10
- {physdes_py-0.7 → physdes_py-0.8}/example_route_with_steiner_and_keepouts.svg +10 -10
- {physdes_py-0.7/outputs → physdes_py-0.8}/example_route_with_steiner_special.svg +13 -13
- {physdes_py-0.7/outputs → physdes_py-0.8}/neg_specical10.svg +28 -28
- {physdes_py-0.7 → physdes_py-0.8}/setup.cfg +0 -2
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/cts/clk_tree_vis.py +103 -18
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/cts/dme_algorithm.py +24 -14
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/generic.py +0 -44
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/interval.py +0 -39
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/manhattan_arc.py +0 -21
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/point.py +0 -19
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/polygon.py +5 -5
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/recti.py +0 -19
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/router/routing_tree.py +49 -56
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/router/routing_visualizer.py +0 -15
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/rpolygon.py +3 -43
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/rpolygon_cut.py +125 -130
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/steiner_forest/steiner_forest_grid.py +0 -10
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/vector2.py +0 -20
- {physdes_py-0.7 → physdes_py-0.8/src/physdes_py.egg-info}/PKG-INFO +1 -1
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes_py.egg-info/SOURCES.txt +0 -2
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes_py.egg-info/scm_file_list.json +201 -203
- physdes_py-0.8/src/physdes_py.egg-info/scm_version.json +8 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_clk_tree_vis.py +46 -0
- physdes_py-0.7/.benchmarks/test_area.py +0 -29
- physdes_py-0.7/CHANGELOG.md +0 -16
- physdes_py-0.7/src/physdes/skeleton.py +0 -3
- physdes_py-0.7/src/physdes_py.egg-info/scm_version.json +0 -8
- {physdes_py-0.7 → physdes_py-0.8}/.coveragerc +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/.flake8 +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/.github/ISSUE_TEMPLATE/documentation.md +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/.github/workflows/jekyll-gh-pages.yml +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/.github/workflows/multi-platforms.yml +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/.github/workflows/python-app.yml +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/.github/workflows/python-publish.yml +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/.gitignore +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/.gitpod.Dockerfile +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/.gitpod.yml +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/.hadolint.yaml +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/.isort.cfg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/.markdownlint.yaml +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/.pre-commit-config.yaml +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/.readthedocs.yml +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/.shellcheckrc +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/AGENTS.md +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/AUTHORS.rst +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/CHANGELOG.rst +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/CONTRIBUTING.rst +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/GEMINI.md +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/LICENSE +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/README.md +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/_config.yml +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/changelog/1.misc.rst +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/changelog/README.md +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/coverage.json +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/demo_overlap.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/diagram.bob +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/dme_algorithm-slides.html +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/dme_algorithm-slides.md +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/Makefile +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/_static/.gitignore +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/authors.rst +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/build_from_md.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/build_remark.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/build_slides.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/changelog.rst +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/conf.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/contributing.md +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/contributing.rst +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/essays/essay.md +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/essays/polygon_vs_rpolygon_comparison.html +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/essays/polygon_vs_rpolygon_comparison.md +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/examples/plot_cts.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/examples/plot_global_router.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/examples/plot_rectangles.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/examples/plot_rpolygon.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/figures_demo.rst +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/index.rst +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/license.rst +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/misc/note.md +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/misc/report.md +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/my_congestion.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/proposals/fyproj2026.md +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/proposals/fyproj2026.md.bad +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/proposals/fyproj2026_cts.md +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/proposals/fyproj2026_cts_2d.md +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/proposals/mulit-fpga-routing.md +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/readme.rst +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/slides_content.md +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/docs/steiner_forest_diagonal.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/environment.yml +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/examples/steiner_forest_grid_example.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/examples/steiner_forest_grid_large_example.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/examples/steiner_forest_simple_example.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/experimental/distance_comparison.png +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/experimental/rectilinear_distance_field.png +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/experimental/rectilinear_voronoi.ipynb +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/experimental/rectilinear_voronoi.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/experimental/rectilinear_voronoi_diamond.png +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/experimental/rectilinear_voronoi_grid.png +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/experimental/rectilinear_voronoi_random.png +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/experimental/steiner_trees_demo.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/global_router-slides.html +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/global_router-slides.md +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/my_congestion.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/mypy.ini +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/oryx-build-commands.txt +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/comparison.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/convex_hull.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/delay_model_comparison.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/delay_model_comparison3d.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/elmore_model_clock_tree.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/elmore_model_clock_tree3d.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/example_route3d_with_constraint.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/example_route3d_with_constraint_and_keepouts.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/example_route3d_with_steiner.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/example_route3d_with_steiner_and_keepouts.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/example_route_with_constraint.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/example_route_with_constraint_specical.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8/outputs}/example_route_with_delay_constraint.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/example_route_with_keepouts.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8/outputs}/example_route_with_steiner.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/example_route_with_steiner_and_keepouts.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8/outputs}/example_route_with_steiner_special.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/linear_model_clock_tree.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/linear_model_clock_tree3d.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/my_congestion.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8/outputs}/neg_specical10.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/polygon_convex_hull.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/polygon_convex_hull13.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/rectilinear-shapes-for-vlsi-physical-desgin.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/rpolygon_convex_cut.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/rpolygon_cut_explicit.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/rpolyon_convex_hull.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/rpolyon_convex_hull13.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/rpolyon_cut_convex.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/rpolyon_cut_convex2.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/rpolyon_xmono.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/rpolyon_xmono_hull.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/rpolyon_ymono_hull.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/steiner_forest.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/steiner_forest_diagonal.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/test.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/outputs/xmono_hull.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/plot_alpha.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/presentation_overlap_detection.html +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/presentation_overlap_detection.md +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/pyproject.toml +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/requirements/README.md +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/requirements/default.txt +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/requirements/dev.txt +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/requirements/doc.txt +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/requirements/extras.txt +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/requirements/test.txt +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/requirements.txt +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/rpolygon-slides.html +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/rpolygon-slides.md +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/setup.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/__init__.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/cts/clk_tree3d_vis.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/generic.tpy +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/manhattan_arc_3d.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/manhattan_arc_3d.tpy +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/point.tpy +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/py.typed +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/rdllist.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/router/global_router.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/router/global_router3d.tpy +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/router/routing_tree3d.tpy +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/router/steiner_forest.md +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/steiner_forest/congestion_map.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/steiner_forest/my_congestion.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/steiner_forest/steiner_forest.md +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/steiner_forest/steiner_forest.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/steiner_forest/steiner_forest_diagonal.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/to_polygon.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes/vector2.tpy +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes_py.egg-info/dependency_links.txt +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes_py.egg-info/not-zip-safe +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes_py.egg-info/requires.txt +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/src/physdes_py.egg-info/top_level.txt +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/svgo.config.js +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/test.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/__init__.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/conftest.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/golden.txt +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/mysvg.css +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/pnrpoly.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/run_failing_tests.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_alpha.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_dme_algorithm.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_generic_functions.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_global_router.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_global_router3d.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_global_router3d.tpy +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_global_router3d_with_keepouts.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_global_router3d_with_keepouts2.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_global_router_logic.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_global_router_logic3d.tpy +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_global_router_with_keepouts.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_global_router_with_keepouts2.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_interval.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_manhattan_arc_3d.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_manhattan_arc_3d.tpy +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_merge.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_merge3d.tpy +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_nearest_point_to.tpy +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_overlap.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_point.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_point_extended.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_point_hypothesis.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_polygon.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_polygon.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_polygon_convex_decomposition.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_polygon_hypothesis.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_rdllist.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_rect3d.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_recti.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_recti_hypothesis.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_routing_tree.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_routing_tree3d.tpy +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_routing_visualizer.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_rpolygon.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_rpolygon_convex_cut.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_rpolygon_convex_hull.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_rpolygon_cut.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_steiner_forest_grid.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_to_polygon.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_vector2.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/test_vector2_hypothesis.py +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/xmono_polygon.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/xmono_polygon2.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/ymono_polygon.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tests/ymono_rpolygon.svg +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/tox.ini +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/wirelength_vs_alpha.png +0 -0
- {physdes_py-0.7 → physdes_py-0.8}/wirelength_vs_alpha_small.png +0 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## Version 0.8 (2026-09-04)
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
- **Builder pattern for ClockTreeVisualizer**: Added fluent `ClockTreeVisualizerBuilder` (`builder().margin(..).node_radius(..)...build()`) mirroring the C++/Rust siblings; `create_interactive_svg` and `create_comparison_visualization` now use it. (#311848a)
|
|
7
|
+
|
|
8
|
+
### Refactoring
|
|
9
|
+
- **Template Method in rpolygon cut decomposition**: Collapsed the duplicated convex/explicit recursive decomposers into one `rpolygon_cut_recur` Template Method plus shared `rpolygon_cut_impl`; public entry points unchanged. (#3666c82)
|
|
10
|
+
- **Factory Method in global routing tree**: Concentrated 5 duplicated ID-generation/registration sites behind a single `_create_node` factory, preserving the `insert_node_on_branch` ValueError contract and ordering constraints. (#2e03732)
|
|
11
|
+
- **Module-level logging**: Replaced `skeleton._logger` with standard module-level `logging`. (#6c863fd)
|
|
12
|
+
|
|
13
|
+
### Testing & Code Quality
|
|
14
|
+
- **Builder tests**: Added tests for builder output, default-equivalence and fluent reuse, plus a doctest on the builder class. (#311848a)
|
|
15
|
+
- **mypy fixes**: Resolved None checks and type annotations. (#2a5f7b2)
|
|
16
|
+
|
|
17
|
+
### Code Cleanup
|
|
18
|
+
- **Removed AI slop**: Stripped boilerplate from docstrings and comments. (#587ad95)
|
|
19
|
+
- **Deduped route3d legends**: Removed duplicated legend entries in example SVGs. (#678aa21)
|
|
20
|
+
- **Stripped empty `entry_points`**: Removed dead section from setup.cfg. (#fd06baf)
|
|
21
|
+
- **EOF newlines in example SVGs**: Added trailing newlines to 15 figures and formatted sources. (#23aaf16)
|
|
22
|
+
|
|
23
|
+
### Build & CI
|
|
24
|
+
- **RTD doc build**: Added matplotlib and numpy to `docs/requirements.txt`. (#41cad71)
|
|
25
|
+
|
|
26
|
+
## Version 0.7 (2026-07-16)
|
|
27
|
+
|
|
28
|
+
### Performance
|
|
29
|
+
- **`__slots__` on core geometry classes**: Added `__slots__` to `Point`, `ManhattanArc`, `Polygon`, `RPolygon`, `TreeNode`, `Sink` — saving ~176 bytes per instance. Most impactful on `Point` which is used everywhere in the codebase. (#64242a6)
|
|
30
|
+
|
|
31
|
+
### Bug Fixes
|
|
32
|
+
- **DME alignment with Rust**: Fixed elongation calculation with `raw_extend_left` to match Rust/C++. Replaced `sorted()` with median-partition in `build_merging_tree` (matches Rust `nth_element`). (#0267be3)
|
|
33
|
+
- **NodeType rename**: Changed `ALL_CAPS` enum values to `PascalCase` to align with Rust naming conventions. (#0267be3)
|
|
34
|
+
|
|
35
|
+
### Documentation
|
|
36
|
+
- **Doc build scripts**: Updated remark and slide build scripts. Updated example plot scripts for RPolygon, CTS, and global router. (#0a613b3)
|
|
37
|
+
|
|
38
|
+
### Code Cleanup
|
|
39
|
+
- **Removed PyScaffold boilerplate**: Deleted `skeleton.py`/`test_skeleton.py`, removed Python < 3.9 compat, unused mypy ignores, stale files. (#e594991)
|
|
@@ -26,36 +26,36 @@
|
|
|
26
26
|
<circle cx="455.64903846153845" cy="357.6923076923077" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
27
27
|
<text x="463.64903846153845" y="361.6923076923077" font-family="Arial" font-size="10" fill="black">T2</text>
|
|
28
28
|
<text x="455.64903846153845" y="346.6923076923077" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1377,1216)</text>
|
|
29
|
-
<circle cx="455.64903846153845" cy="396.15384615384613" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
30
|
-
<text x="463.64903846153845" y="400.15384615384613" font-family="Arial" font-size="10" fill="black">S1</text>
|
|
31
|
-
<text x="455.64903846153845" y="385.15384615384613" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1377,1344)</text>
|
|
32
29
|
<circle cx="601.6826923076923" cy="550.0" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
33
30
|
<text x="609.6826923076923" y="554.0" font-family="Arial" font-size="10" fill="black">T3</text>
|
|
34
31
|
<text x="601.6826923076923" y="539.0" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1863,1856)</text>
|
|
35
|
-
<circle cx="
|
|
36
|
-
<text x="
|
|
37
|
-
<text x="
|
|
32
|
+
<circle cx="455.64903846153845" cy="396.15384615384613" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
33
|
+
<text x="463.64903846153845" y="400.15384615384613" font-family="Arial" font-size="10" fill="black">S1</text>
|
|
34
|
+
<text x="455.64903846153845" y="385.15384615384613" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1377,1344)</text>
|
|
38
35
|
<circle cx="382.63221153846155" cy="242.3076923076923" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
39
36
|
<text x="390.63221153846155" y="246.3076923076923" font-family="Arial" font-size="10" fill="black">T4</text>
|
|
40
37
|
<text x="382.63221153846155" y="231.3076923076923" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1134,832)</text>
|
|
41
|
-
<circle cx="
|
|
42
|
-
<text x="
|
|
43
|
-
<text x="
|
|
38
|
+
<circle cx="382.63221153846155" cy="396.15384615384613" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
39
|
+
<text x="390.63221153846155" y="400.15384615384613" font-family="Arial" font-size="10" fill="black">S2</text>
|
|
40
|
+
<text x="382.63221153846155" y="385.15384615384613" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1134,1344)</text>
|
|
44
41
|
<circle cx="236.59855769230768" cy="50.0" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
45
42
|
<text x="244.59855769230768" y="54.0" font-family="Arial" font-size="10" fill="black">T5</text>
|
|
46
43
|
<text x="236.59855769230768" y="39.0" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(648,192)</text>
|
|
47
|
-
<circle cx="236.59855769230768" cy="
|
|
48
|
-
<text x="244.59855769230768" y="
|
|
49
|
-
<text x="236.59855769230768" y="
|
|
44
|
+
<circle cx="236.59855769230768" cy="396.15384615384613" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
45
|
+
<text x="244.59855769230768" y="400.15384615384613" font-family="Arial" font-size="10" fill="black">S3</text>
|
|
46
|
+
<text x="236.59855769230768" y="385.15384615384613" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(648,1344)</text>
|
|
50
47
|
<circle cx="528.6658653846154" cy="88.46153846153845" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
51
48
|
<text x="536.6658653846154" y="92.46153846153845" font-family="Arial" font-size="10" fill="black">T6</text>
|
|
52
49
|
<text x="528.6658653846154" y="77.46153846153845" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1620,320)</text>
|
|
53
|
-
<circle cx="
|
|
54
|
-
<text x="
|
|
55
|
-
<text x="
|
|
50
|
+
<circle cx="236.59855769230768" cy="88.46153846153845" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
51
|
+
<text x="244.59855769230768" y="92.46153846153845" font-family="Arial" font-size="10" fill="black">S4</text>
|
|
52
|
+
<text x="236.59855769230768" y="77.46153846153845" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(648,320)</text>
|
|
56
53
|
<circle cx="674.6995192307692" cy="203.84615384615384" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
57
54
|
<text x="682.6995192307692" y="207.84615384615384" font-family="Arial" font-size="10" fill="black">T7</text>
|
|
58
55
|
<text x="674.6995192307692" y="192.84615384615384" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(2106,704)</text>
|
|
56
|
+
<circle cx="601.6826923076923" cy="396.15384615384613" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
57
|
+
<text x="609.6826923076923" y="400.15384615384613" font-family="Arial" font-size="10" fill="black">S5</text>
|
|
58
|
+
<text x="601.6826923076923" y="385.15384615384613" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1863,1344)</text>
|
|
59
59
|
<text x="20" y="20" font-family="Arial" font-size="12" font-weight="bold">Legend:</text>
|
|
60
60
|
<circle cx="20" cy="36" r="4" fill="red" stroke="black"/>
|
|
61
61
|
<text x="30" y="40" font-family="Arial" font-size="10">Source</text>
|
|
@@ -68,4 +68,4 @@
|
|
|
68
68
|
<text x="20" y="140" font-family="Arial" font-size="9">Terminals: 7</text>
|
|
69
69
|
<text x="20" y="155" font-family="Arial" font-size="9">Steiner: 5</text>
|
|
70
70
|
<text x="20" y="170" font-family="Arial" font-size="9">Wirelength: 6379.00</text>
|
|
71
|
-
</svg>
|
|
71
|
+
</svg>
|
|
@@ -25,33 +25,33 @@
|
|
|
25
25
|
<circle cx="455.64903846153845" cy="357.6923076923077" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
26
26
|
<text x="463.64903846153845" y="361.6923076923077" font-family="Arial" font-size="10" fill="black">T2</text>
|
|
27
27
|
<text x="455.64903846153845" y="346.6923076923077" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1377,1216)</text>
|
|
28
|
-
<circle cx="455.64903846153845" cy="396.15384615384613" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
29
|
-
<text x="463.64903846153845" y="400.15384615384613" font-family="Arial" font-size="10" fill="black">S1</text>
|
|
30
|
-
<text x="455.64903846153845" y="385.15384615384613" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1377,1344)</text>
|
|
31
28
|
<circle cx="601.6826923076923" cy="550.0" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
32
29
|
<text x="609.6826923076923" y="554.0" font-family="Arial" font-size="10" fill="black">T3</text>
|
|
33
30
|
<text x="601.6826923076923" y="539.0" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1863,1856)</text>
|
|
34
|
-
<circle cx="
|
|
35
|
-
<text x="
|
|
36
|
-
<text x="
|
|
31
|
+
<circle cx="455.64903846153845" cy="396.15384615384613" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
32
|
+
<text x="463.64903846153845" y="400.15384615384613" font-family="Arial" font-size="10" fill="black">S1</text>
|
|
33
|
+
<text x="455.64903846153845" y="385.15384615384613" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1377,1344)</text>
|
|
37
34
|
<circle cx="382.63221153846155" cy="242.3076923076923" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
38
35
|
<text x="390.63221153846155" y="246.3076923076923" font-family="Arial" font-size="10" fill="black">T4</text>
|
|
39
36
|
<text x="382.63221153846155" y="231.3076923076923" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1134,832)</text>
|
|
37
|
+
<circle cx="382.63221153846155" cy="396.15384615384613" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
38
|
+
<text x="390.63221153846155" y="400.15384615384613" font-family="Arial" font-size="10" fill="black">S2</text>
|
|
39
|
+
<text x="382.63221153846155" y="385.15384615384613" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1134,1344)</text>
|
|
40
40
|
<circle cx="236.59855769230768" cy="50.0" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
41
41
|
<text x="244.59855769230768" y="54.0" font-family="Arial" font-size="10" fill="black">T5</text>
|
|
42
42
|
<text x="236.59855769230768" y="39.0" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(648,192)</text>
|
|
43
|
-
<circle cx="382.63221153846155" cy="88.46153846153845" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
44
|
-
<text x="390.63221153846155" y="92.46153846153845" font-family="Arial" font-size="10" fill="black">S3</text>
|
|
45
|
-
<text x="382.63221153846155" y="77.46153846153845" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1134,320)</text>
|
|
46
43
|
<circle cx="528.6658653846154" cy="88.46153846153845" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
47
44
|
<text x="536.6658653846154" y="92.46153846153845" font-family="Arial" font-size="10" fill="black">T6</text>
|
|
48
45
|
<text x="528.6658653846154" y="77.46153846153845" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1620,320)</text>
|
|
49
|
-
<circle cx="
|
|
50
|
-
<text x="
|
|
51
|
-
<text x="
|
|
46
|
+
<circle cx="382.63221153846155" cy="88.46153846153845" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
47
|
+
<text x="390.63221153846155" y="92.46153846153845" font-family="Arial" font-size="10" fill="black">S3</text>
|
|
48
|
+
<text x="382.63221153846155" y="77.46153846153845" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1134,320)</text>
|
|
52
49
|
<circle cx="674.6995192307692" cy="203.84615384615384" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
53
50
|
<text x="682.6995192307692" y="207.84615384615384" font-family="Arial" font-size="10" fill="black">T7</text>
|
|
54
51
|
<text x="674.6995192307692" y="192.84615384615384" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(2106,704)</text>
|
|
52
|
+
<circle cx="601.6826923076923" cy="396.15384615384613" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
53
|
+
<text x="609.6826923076923" y="400.15384615384613" font-family="Arial" font-size="10" fill="black">S4</text>
|
|
54
|
+
<text x="601.6826923076923" y="385.15384615384613" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1863,1344)</text>
|
|
55
55
|
<text x="20" y="20" font-family="Arial" font-size="12" font-weight="bold">Legend:</text>
|
|
56
56
|
<circle cx="20" cy="36" r="4" fill="red" stroke="black"/>
|
|
57
57
|
<text x="30" y="40" font-family="Arial" font-size="10">Source</text>
|
|
@@ -64,4 +64,4 @@
|
|
|
64
64
|
<text x="20" y="140" font-family="Arial" font-size="9">Terminals: 7</text>
|
|
65
65
|
<text x="20" y="155" font-family="Arial" font-size="9">Steiner: 4</text>
|
|
66
66
|
<text x="20" y="170" font-family="Arial" font-size="9">Wirelength: 5867.00</text>
|
|
67
|
-
</svg>
|
|
67
|
+
</svg>
|
|
@@ -24,27 +24,27 @@
|
|
|
24
24
|
<circle cx="455.64903846153845" cy="357.6923076923077" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
25
25
|
<text x="463.64903846153845" y="361.6923076923077" font-family="Arial" font-size="10" fill="black">T2</text>
|
|
26
26
|
<text x="455.64903846153845" y="346.6923076923077" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1377,1216)</text>
|
|
27
|
-
<circle cx="455.64903846153845" cy="396.15384615384613" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
28
|
-
<text x="463.64903846153845" y="400.15384615384613" font-family="Arial" font-size="10" fill="black">S1</text>
|
|
29
|
-
<text x="455.64903846153845" y="385.15384615384613" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1377,1344)</text>
|
|
30
27
|
<circle cx="601.6826923076923" cy="550.0" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
31
28
|
<text x="609.6826923076923" y="554.0" font-family="Arial" font-size="10" fill="black">T3</text>
|
|
32
29
|
<text x="601.6826923076923" y="539.0" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1863,1856)</text>
|
|
33
|
-
<circle cx="
|
|
34
|
-
<text x="
|
|
35
|
-
<text x="
|
|
30
|
+
<circle cx="455.64903846153845" cy="396.15384615384613" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
31
|
+
<text x="463.64903846153845" y="400.15384615384613" font-family="Arial" font-size="10" fill="black">S1</text>
|
|
32
|
+
<text x="455.64903846153845" y="385.15384615384613" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1377,1344)</text>
|
|
36
33
|
<circle cx="382.63221153846155" cy="242.3076923076923" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
37
34
|
<text x="390.63221153846155" y="246.3076923076923" font-family="Arial" font-size="10" fill="black">T4</text>
|
|
38
35
|
<text x="382.63221153846155" y="231.3076923076923" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1134,832)</text>
|
|
36
|
+
<circle cx="382.63221153846155" cy="396.15384615384613" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
37
|
+
<text x="390.63221153846155" y="400.15384615384613" font-family="Arial" font-size="10" fill="black">S2</text>
|
|
38
|
+
<text x="382.63221153846155" y="385.15384615384613" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1134,1344)</text>
|
|
39
39
|
<circle cx="236.59855769230768" cy="50.0" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
40
40
|
<text x="244.59855769230768" y="54.0" font-family="Arial" font-size="10" fill="black">T5</text>
|
|
41
41
|
<text x="236.59855769230768" y="39.0" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(648,192)</text>
|
|
42
|
-
<circle cx="382.63221153846155" cy="88.46153846153845" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
43
|
-
<text x="390.63221153846155" y="92.46153846153845" font-family="Arial" font-size="10" fill="black">S3</text>
|
|
44
|
-
<text x="382.63221153846155" y="77.46153846153845" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1134,320)</text>
|
|
45
42
|
<circle cx="528.6658653846154" cy="88.46153846153845" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
46
43
|
<text x="536.6658653846154" y="92.46153846153845" font-family="Arial" font-size="10" fill="black">T6</text>
|
|
47
44
|
<text x="528.6658653846154" y="77.46153846153845" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1620,320)</text>
|
|
45
|
+
<circle cx="382.63221153846155" cy="88.46153846153845" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
46
|
+
<text x="390.63221153846155" y="92.46153846153845" font-family="Arial" font-size="10" fill="black">S3</text>
|
|
47
|
+
<text x="382.63221153846155" y="77.46153846153845" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1134,320)</text>
|
|
48
48
|
<circle cx="674.6995192307692" cy="203.84615384615384" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
49
49
|
<text x="682.6995192307692" y="207.84615384615384" font-family="Arial" font-size="10" fill="black">T7</text>
|
|
50
50
|
<text x="674.6995192307692" y="192.84615384615384" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(2106,704)</text>
|
|
@@ -60,4 +60,4 @@
|
|
|
60
60
|
<text x="20" y="140" font-family="Arial" font-size="9">Terminals: 7</text>
|
|
61
61
|
<text x="20" y="155" font-family="Arial" font-size="9">Steiner: 3</text>
|
|
62
62
|
<text x="20" y="170" font-family="Arial" font-size="9">Wirelength: 5854.00</text>
|
|
63
|
-
</svg>
|
|
63
|
+
</svg>
|
|
@@ -25,30 +25,30 @@
|
|
|
25
25
|
<circle cx="455.64903846153845" cy="357.6923076923077" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
26
26
|
<text x="463.64903846153845" y="361.6923076923077" font-family="Arial" font-size="10" fill="black">T2</text>
|
|
27
27
|
<text x="455.64903846153845" y="346.6923076923077" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1377,1216)</text>
|
|
28
|
-
<circle cx="163.58173076923077" cy="511.53846153846155" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
29
|
-
<text x="171.58173076923077" y="515.5384615384615" font-family="Arial" font-size="10" fill="black">S1</text>
|
|
30
|
-
<text x="163.58173076923077" y="500.53846153846155" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(405,1728)</text>
|
|
31
28
|
<circle cx="601.6826923076923" cy="550.0" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
32
29
|
<text x="609.6826923076923" y="554.0" font-family="Arial" font-size="10" fill="black">T3</text>
|
|
33
30
|
<text x="601.6826923076923" y="539.0" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1863,1856)</text>
|
|
34
|
-
<circle cx="
|
|
35
|
-
<text x="
|
|
36
|
-
<text x="
|
|
31
|
+
<circle cx="163.58173076923077" cy="511.53846153846155" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
32
|
+
<text x="171.58173076923077" y="515.5384615384615" font-family="Arial" font-size="10" fill="black">S1</text>
|
|
33
|
+
<text x="163.58173076923077" y="500.53846153846155" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(405,1728)</text>
|
|
37
34
|
<circle cx="382.63221153846155" cy="242.3076923076923" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
38
35
|
<text x="390.63221153846155" y="246.3076923076923" font-family="Arial" font-size="10" fill="black">T4</text>
|
|
39
36
|
<text x="382.63221153846155" y="231.3076923076923" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1134,832)</text>
|
|
40
|
-
<circle cx="
|
|
41
|
-
<text x="
|
|
42
|
-
<text x="
|
|
37
|
+
<circle cx="382.63221153846155" cy="357.6923076923077" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
38
|
+
<text x="390.63221153846155" y="361.6923076923077" font-family="Arial" font-size="10" fill="black">S2</text>
|
|
39
|
+
<text x="382.63221153846155" y="346.6923076923077" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1134,1216)</text>
|
|
43
40
|
<circle cx="236.59855769230768" cy="50.0" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
44
41
|
<text x="244.59855769230768" y="54.0" font-family="Arial" font-size="10" fill="black">T5</text>
|
|
45
42
|
<text x="236.59855769230768" y="39.0" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(648,192)</text>
|
|
46
|
-
<circle cx="236.59855769230768" cy="
|
|
47
|
-
<text x="244.59855769230768" y="
|
|
48
|
-
<text x="236.59855769230768" y="
|
|
43
|
+
<circle cx="236.59855769230768" cy="357.6923076923077" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
44
|
+
<text x="244.59855769230768" y="361.6923076923077" font-family="Arial" font-size="10" fill="black">S3</text>
|
|
45
|
+
<text x="236.59855769230768" y="346.6923076923077" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(648,1216)</text>
|
|
49
46
|
<circle cx="528.6658653846154" cy="88.46153846153845" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
50
47
|
<text x="536.6658653846154" y="92.46153846153845" font-family="Arial" font-size="10" fill="black">T6</text>
|
|
51
48
|
<text x="528.6658653846154" y="77.46153846153845" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1620,320)</text>
|
|
49
|
+
<circle cx="236.59855769230768" cy="88.46153846153845" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
50
|
+
<text x="244.59855769230768" y="92.46153846153845" font-family="Arial" font-size="10" fill="black">S4</text>
|
|
51
|
+
<text x="236.59855769230768" y="77.46153846153845" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(648,320)</text>
|
|
52
52
|
<circle cx="674.6995192307692" cy="203.84615384615384" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
53
53
|
<text x="682.6995192307692" y="207.84615384615384" font-family="Arial" font-size="10" fill="black">T7</text>
|
|
54
54
|
<text x="674.6995192307692" y="192.84615384615384" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(2106,704)</text>
|
|
@@ -64,4 +64,4 @@
|
|
|
64
64
|
<text x="20" y="140" font-family="Arial" font-size="9">Terminals: 7</text>
|
|
65
65
|
<text x="20" y="155" font-family="Arial" font-size="9">Steiner: 4</text>
|
|
66
66
|
<text x="20" y="170" font-family="Arial" font-size="9">Wirelength: 6928.00</text>
|
|
67
|
-
</svg>
|
|
67
|
+
</svg>
|
|
@@ -26,36 +26,36 @@
|
|
|
26
26
|
<circle cx="455.64903846153845" cy="357.6923076923077" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
27
27
|
<text x="463.64903846153845" y="361.6923076923077" font-family="Arial" font-size="10" fill="black">T2</text>
|
|
28
28
|
<text x="455.64903846153845" y="346.6923076923077" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1377,1216)</text>
|
|
29
|
-
<circle cx="455.64903846153845" cy="396.15384615384613" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
30
|
-
<text x="463.64903846153845" y="400.15384615384613" font-family="Arial" font-size="10" fill="black">S1</text>
|
|
31
|
-
<text x="455.64903846153845" y="385.15384615384613" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1377,1344)</text>
|
|
32
29
|
<circle cx="601.6826923076923" cy="550.0" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
33
30
|
<text x="609.6826923076923" y="554.0" font-family="Arial" font-size="10" fill="black">T3</text>
|
|
34
31
|
<text x="601.6826923076923" y="539.0" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1863,1856)</text>
|
|
35
|
-
<circle cx="
|
|
36
|
-
<text x="
|
|
37
|
-
<text x="
|
|
32
|
+
<circle cx="455.64903846153845" cy="396.15384615384613" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
33
|
+
<text x="463.64903846153845" y="400.15384615384613" font-family="Arial" font-size="10" fill="black">S1</text>
|
|
34
|
+
<text x="455.64903846153845" y="385.15384615384613" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1377,1344)</text>
|
|
38
35
|
<circle cx="382.63221153846155" cy="242.3076923076923" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
39
36
|
<text x="390.63221153846155" y="246.3076923076923" font-family="Arial" font-size="10" fill="black">T4</text>
|
|
40
37
|
<text x="382.63221153846155" y="231.3076923076923" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1134,832)</text>
|
|
41
|
-
<circle cx="
|
|
42
|
-
<text x="
|
|
43
|
-
<text x="
|
|
38
|
+
<circle cx="382.63221153846155" cy="396.15384615384613" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
39
|
+
<text x="390.63221153846155" y="400.15384615384613" font-family="Arial" font-size="10" fill="black">S2</text>
|
|
40
|
+
<text x="382.63221153846155" y="385.15384615384613" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1134,1344)</text>
|
|
44
41
|
<circle cx="236.59855769230768" cy="50.0" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
45
42
|
<text x="244.59855769230768" y="54.0" font-family="Arial" font-size="10" fill="black">T5</text>
|
|
46
43
|
<text x="236.59855769230768" y="39.0" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(648,192)</text>
|
|
47
|
-
<circle cx="236.59855769230768" cy="
|
|
48
|
-
<text x="244.59855769230768" y="
|
|
49
|
-
<text x="236.59855769230768" y="
|
|
44
|
+
<circle cx="236.59855769230768" cy="396.15384615384613" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
45
|
+
<text x="244.59855769230768" y="400.15384615384613" font-family="Arial" font-size="10" fill="black">S3</text>
|
|
46
|
+
<text x="236.59855769230768" y="385.15384615384613" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(648,1344)</text>
|
|
50
47
|
<circle cx="528.6658653846154" cy="88.46153846153845" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
51
48
|
<text x="536.6658653846154" y="92.46153846153845" font-family="Arial" font-size="10" fill="black">T6</text>
|
|
52
49
|
<text x="528.6658653846154" y="77.46153846153845" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1620,320)</text>
|
|
53
|
-
<circle cx="
|
|
54
|
-
<text x="
|
|
55
|
-
<text x="
|
|
50
|
+
<circle cx="236.59855769230768" cy="88.46153846153845" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
51
|
+
<text x="244.59855769230768" y="92.46153846153845" font-family="Arial" font-size="10" fill="black">S4</text>
|
|
52
|
+
<text x="236.59855769230768" y="77.46153846153845" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(648,320)</text>
|
|
56
53
|
<circle cx="674.6995192307692" cy="203.84615384615384" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
57
54
|
<text x="682.6995192307692" y="207.84615384615384" font-family="Arial" font-size="10" fill="black">T7</text>
|
|
58
55
|
<text x="674.6995192307692" y="192.84615384615384" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(2106,704)</text>
|
|
56
|
+
<circle cx="601.6826923076923" cy="396.15384615384613" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
57
|
+
<text x="609.6826923076923" y="400.15384615384613" font-family="Arial" font-size="10" fill="black">S5</text>
|
|
58
|
+
<text x="601.6826923076923" y="385.15384615384613" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1863,1344)</text>
|
|
59
59
|
<text x="20" y="20" font-family="Arial" font-size="12" font-weight="bold">Legend:</text>
|
|
60
60
|
<circle cx="20" cy="36" r="4" fill="red" stroke="black"/>
|
|
61
61
|
<text x="30" y="40" font-family="Arial" font-size="10">Source</text>
|
|
@@ -68,4 +68,4 @@
|
|
|
68
68
|
<text x="20" y="140" font-family="Arial" font-size="9">Terminals: 7</text>
|
|
69
69
|
<text x="20" y="155" font-family="Arial" font-size="9">Steiner: 5</text>
|
|
70
70
|
<text x="20" y="170" font-family="Arial" font-size="9">Wirelength: 6379.00</text>
|
|
71
|
-
</svg>
|
|
71
|
+
</svg>
|
|
@@ -9,7 +9,6 @@ from typing import Generator
|
|
|
9
9
|
|
|
10
10
|
from lds_gen.ilds import Halton
|
|
11
11
|
|
|
12
|
-
# from physdes.interval import Interval
|
|
13
12
|
from physdes.point import Point
|
|
14
13
|
from physdes.recti import detect_overlap_gen
|
|
15
14
|
|
|
@@ -59,24 +58,6 @@ def visualize_overlap_svg(
|
|
|
59
58
|
f'<svg xmlns="http://www.w3.org/2000/svg" width="{width}" height="{height}" style="background-color:#f8f9fa;">',
|
|
60
59
|
]
|
|
61
60
|
|
|
62
|
-
# legend_y = 30
|
|
63
|
-
# svg_parts.append(f'<text x="{margin}" y="{legend_y}" font-size="14" fill="#333">Rectangles</text>')
|
|
64
|
-
# legend_y += 20
|
|
65
|
-
# svg_parts.append(f'<rect x="{margin}" y="{legend_y - 12}" width="16" height="12" fill="#4a90d9" stroke="#333"/>')
|
|
66
|
-
# svg_parts.append(f'<text x="{margin + 20}" y="{legend_y}" font-size="12" fill="#333">Non-overlapping</text>')
|
|
67
|
-
# legend_y += 20
|
|
68
|
-
# svg_parts.append(f'<rect x="{margin}" y="{legend_y - 12}" width="16" height="12" fill="#e74c3c" stroke="#c0392b"/>')
|
|
69
|
-
# svg_parts.append(f'<text x="{margin + 20}" y="{legend_y}" font-size="12" fill="#333">Overlapping</text>')
|
|
70
|
-
# if overlapping_pair:
|
|
71
|
-
# legend_y += 20
|
|
72
|
-
# svg_parts.append(f'<text x="{margin + 20}" y="{legend_y}" font-size="12" fill="#e74c3c">Overlap detected!</text>')
|
|
73
|
-
# legend_y += 20
|
|
74
|
-
# pair1_str = f"({overlapping_pair[0].xcoord}, {overlapping_pair[0].ycoord})"
|
|
75
|
-
# svg_parts.append(f'<text x="{margin + 20}" y="{legend_y}" font-size="11" fill="#666">{pair1_str}</text>')
|
|
76
|
-
# legend_y += 15
|
|
77
|
-
# pair2_str = f"({overlapping_pair[1].xcoord}, {overlapping_pair[1].ycoord})"
|
|
78
|
-
# svg_parts.append(f'<text x="{margin + 20}" y="{legend_y}" font-size="11" fill="#666">{pair2_str}</text>')
|
|
79
|
-
|
|
80
61
|
for idx, r in enumerate(rectangles):
|
|
81
62
|
x1 = to_svg_x(r.xcoord.lb)
|
|
82
63
|
y1 = to_svg_y(r.ycoord.ub)
|
|
@@ -96,10 +77,6 @@ def visualize_overlap_svg(
|
|
|
96
77
|
f'<rect x="{x1}" y="{y1}" width="{w}" height="{h}" fill="{fill}" stroke="{stroke}" stroke-width="2" opacity="{opacity}"/>'
|
|
97
78
|
)
|
|
98
79
|
|
|
99
|
-
# cx = x1 + w / 2
|
|
100
|
-
# cy = y1 + h / 2
|
|
101
|
-
# svg_parts.append(f'<text x="{cx}" y="{cy + 4}" text-anchor="middle" font-size="11" fill="white" font-weight="bold">{idx + 1}</text>')
|
|
102
|
-
|
|
103
80
|
svg_parts.append("</svg>")
|
|
104
81
|
return "\n".join(svg_parts)
|
|
105
82
|
|
|
@@ -111,38 +88,12 @@ def demo() -> None:
|
|
|
111
88
|
coords = [hgen.pop() for _ in range(500)]
|
|
112
89
|
svg_rects = [Point(coord[0], coord[1]).enlarge_with(10) for coord in coords]
|
|
113
90
|
|
|
114
|
-
# svg_rects = [
|
|
115
|
-
# Rectangle(Interval(0, 4), Interval(0, 4)),
|
|
116
|
-
# Rectangle(Interval(2, 6), Interval(2, 6)),
|
|
117
|
-
# Rectangle(Interval(5, 9), Interval(5, 9)),
|
|
118
|
-
# Rectangle(Interval(8, 12), Interval(8, 12)),
|
|
119
|
-
# Rectangle(Interval(11, 15), Interval(11, 15)),
|
|
120
|
-
# Rectangle(Interval(3, 7), Interval(10, 14)),
|
|
121
|
-
# Rectangle(Interval(14, 18), Interval(14, 18)),
|
|
122
|
-
# Rectangle(Interval(16, 20), Interval(4, 8)),
|
|
123
|
-
# Rectangle(Interval(6, 10), Interval(6, 10)),
|
|
124
|
-
# Rectangle(Interval(9, 13), Interval(12, 16)),
|
|
125
|
-
# Rectangle(Interval(0, 3), Interval(8, 11)),
|
|
126
|
-
# ]
|
|
127
|
-
|
|
128
|
-
# print(f"Testing with {len(svg_rects)} rectangles:")
|
|
129
|
-
# for i, r in enumerate(svg_rects):
|
|
130
|
-
# print(f" {i + 1}: ({r.xcoord}, {r.ycoord})")
|
|
131
|
-
|
|
132
91
|
print()
|
|
133
92
|
print("=" * 50)
|
|
134
93
|
print("Overlap Detection Result")
|
|
135
94
|
print("=" * 50)
|
|
136
95
|
overlap_result_gen = detect_overlap_gen(svg_rects)
|
|
137
96
|
|
|
138
|
-
# for overlap_result in overlap_result_gen:
|
|
139
|
-
# r1, r2 = overlap_result
|
|
140
|
-
# print("OVERLAP DETECTED between:")
|
|
141
|
-
# print(f" Rect A: ({r1.xcoord}, {r1.ycoord})")
|
|
142
|
-
# print(f" Rect B: ({r2.xcoord}, {r2.ycoord})")
|
|
143
|
-
# else:
|
|
144
|
-
# print("No overlap found")
|
|
145
|
-
|
|
146
97
|
svg = visualize_overlap_svg(svg_rects, overlap_result_gen)
|
|
147
98
|
|
|
148
99
|
with open("demo_overlap.svg", "w") as f:
|
|
@@ -24,27 +24,27 @@
|
|
|
24
24
|
<circle cx="455.64903846153845" cy="357.6923076923077" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
25
25
|
<text x="463.64903846153845" y="361.6923076923077" font-family="Arial" font-size="10" fill="black">T2</text>
|
|
26
26
|
<text x="455.64903846153845" y="346.6923076923077" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(377,216)</text>
|
|
27
|
-
<circle cx="163.58173076923077" cy="396.15384615384613" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
28
|
-
<text x="171.58173076923077" y="400.15384615384613" font-family="Arial" font-size="10" fill="black">S1</text>
|
|
29
|
-
<text x="163.58173076923077" y="385.15384615384613" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(-595,344)</text>
|
|
30
27
|
<circle cx="236.59855769230768" cy="50.0" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
31
28
|
<text x="244.59855769230768" y="54.0" font-family="Arial" font-size="10" fill="black">T3</text>
|
|
32
29
|
<text x="236.59855769230768" y="39.0" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(-352,-808)</text>
|
|
33
|
-
<circle cx="
|
|
34
|
-
<text x="
|
|
35
|
-
<text x="
|
|
30
|
+
<circle cx="163.58173076923077" cy="396.15384615384613" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
31
|
+
<text x="171.58173076923077" y="400.15384615384613" font-family="Arial" font-size="10" fill="black">S1</text>
|
|
32
|
+
<text x="163.58173076923077" y="385.15384615384613" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(-595,344)</text>
|
|
36
33
|
<circle cx="382.63221153846155" cy="242.3076923076923" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
37
34
|
<text x="390.63221153846155" y="246.3076923076923" font-family="Arial" font-size="10" fill="black">T4</text>
|
|
38
35
|
<text x="382.63221153846155" y="231.3076923076923" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(134,-168)</text>
|
|
36
|
+
<circle cx="382.63221153846155" cy="357.6923076923077" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
37
|
+
<text x="390.63221153846155" y="361.6923076923077" font-family="Arial" font-size="10" fill="black">S2</text>
|
|
38
|
+
<text x="382.63221153846155" y="346.6923076923077" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(134,216)</text>
|
|
39
39
|
<circle cx="601.6826923076923" cy="550.0" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
40
40
|
<text x="609.6826923076923" y="554.0" font-family="Arial" font-size="10" fill="black">T5</text>
|
|
41
41
|
<text x="601.6826923076923" y="539.0" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(863,856)</text>
|
|
42
|
-
<circle cx="236.59855769230768" cy="88.46153846153845" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
43
|
-
<text x="244.59855769230768" y="92.46153846153845" font-family="Arial" font-size="10" fill="black">S3</text>
|
|
44
|
-
<text x="236.59855769230768" y="77.46153846153845" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(-352,-680)</text>
|
|
45
42
|
<circle cx="528.6658653846154" cy="88.46153846153845" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
46
43
|
<text x="536.6658653846154" y="92.46153846153845" font-family="Arial" font-size="10" fill="black">T6</text>
|
|
47
44
|
<text x="528.6658653846154" y="77.46153846153845" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(620,-680)</text>
|
|
45
|
+
<circle cx="236.59855769230768" cy="88.46153846153845" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
46
|
+
<text x="244.59855769230768" y="92.46153846153845" font-family="Arial" font-size="10" fill="black">S3</text>
|
|
47
|
+
<text x="236.59855769230768" y="77.46153846153845" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(-352,-680)</text>
|
|
48
48
|
<circle cx="674.6995192307692" cy="203.84615384615384" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
49
49
|
<text x="682.6995192307692" y="207.84615384615384" font-family="Arial" font-size="10" fill="black">T7</text>
|
|
50
50
|
<text x="674.6995192307692" y="192.84615384615384" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1106,-296)</text>
|
|
@@ -57,15 +57,9 @@
|
|
|
57
57
|
<text x="30" y="60" font-family="Arial" font-size="10">Steiner</text>
|
|
58
58
|
<circle cx="20" cy="76" r="4" fill="green" stroke="black"/>
|
|
59
59
|
<text x="30" y="80" font-family="Arial" font-size="10">Terminal</text>
|
|
60
|
-
<circle cx="20" cy="36" r="4" fill="red" stroke="black"/>
|
|
61
|
-
<text x="30" y="40" font-family="Arial" font-size="10">Source</text>
|
|
62
|
-
<circle cx="20" cy="56" r="4" fill="blue" stroke="black"/>
|
|
63
|
-
<text x="30" y="60" font-family="Arial" font-size="10">Steiner</text>
|
|
64
|
-
<circle cx="20" cy="76" r="4" fill="green" stroke="black"/>
|
|
65
|
-
<text x="30" y="80" font-family="Arial" font-size="10">Terminal</text>
|
|
66
60
|
<text x="20" y="110" font-family="Arial" font-size="10" font-weight="bold">Statistics:</text>
|
|
67
61
|
<text x="20" y="125" font-family="Arial" font-size="9">Total Nodes: 11</text>
|
|
68
62
|
<text x="20" y="140" font-family="Arial" font-size="9">Terminals: 7</text>
|
|
69
63
|
<text x="20" y="155" font-family="Arial" font-size="9">Steiner: 3</text>
|
|
70
64
|
<text x="20" y="170" font-family="Arial" font-size="9">Wirelength: 7239.00</text>
|
|
71
|
-
</svg>
|
|
65
|
+
</svg>
|
|
@@ -24,27 +24,27 @@
|
|
|
24
24
|
<circle cx="455.64903846153845" cy="357.6923076923077" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
25
25
|
<text x="463.64903846153845" y="361.6923076923077" font-family="Arial" font-size="10" fill="black">T2</text>
|
|
26
26
|
<text x="455.64903846153845" y="346.6923076923077" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(377,216)</text>
|
|
27
|
-
<circle cx="163.58173076923077" cy="396.15384615384613" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
28
|
-
<text x="171.58173076923077" y="400.15384615384613" font-family="Arial" font-size="10" fill="black">S1</text>
|
|
29
|
-
<text x="163.58173076923077" y="385.15384615384613" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(-595,344)</text>
|
|
30
27
|
<circle cx="236.59855769230768" cy="50.0" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
31
28
|
<text x="244.59855769230768" y="54.0" font-family="Arial" font-size="10" fill="black">T3</text>
|
|
32
29
|
<text x="236.59855769230768" y="39.0" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(-352,-808)</text>
|
|
33
|
-
<circle cx="
|
|
34
|
-
<text x="
|
|
35
|
-
<text x="
|
|
30
|
+
<circle cx="163.58173076923077" cy="396.15384615384613" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
31
|
+
<text x="171.58173076923077" y="400.15384615384613" font-family="Arial" font-size="10" fill="black">S1</text>
|
|
32
|
+
<text x="163.58173076923077" y="385.15384615384613" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(-595,344)</text>
|
|
36
33
|
<circle cx="382.63221153846155" cy="242.3076923076923" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
37
34
|
<text x="390.63221153846155" y="246.3076923076923" font-family="Arial" font-size="10" fill="black">T4</text>
|
|
38
35
|
<text x="382.63221153846155" y="231.3076923076923" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(134,-168)</text>
|
|
36
|
+
<circle cx="382.63221153846155" cy="357.6923076923077" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
37
|
+
<text x="390.63221153846155" y="361.6923076923077" font-family="Arial" font-size="10" fill="black">S2</text>
|
|
38
|
+
<text x="382.63221153846155" y="346.6923076923077" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(134,216)</text>
|
|
39
39
|
<circle cx="601.6826923076923" cy="550.0" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
40
40
|
<text x="609.6826923076923" y="554.0" font-family="Arial" font-size="10" fill="black">T5</text>
|
|
41
41
|
<text x="601.6826923076923" y="539.0" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(863,856)</text>
|
|
42
|
-
<circle cx="236.59855769230768" cy="88.46153846153845" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
43
|
-
<text x="244.59855769230768" y="92.46153846153845" font-family="Arial" font-size="10" fill="black">S3</text>
|
|
44
|
-
<text x="236.59855769230768" y="77.46153846153845" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(-352,-680)</text>
|
|
45
42
|
<circle cx="528.6658653846154" cy="88.46153846153845" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
46
43
|
<text x="536.6658653846154" y="92.46153846153845" font-family="Arial" font-size="10" fill="black">T6</text>
|
|
47
44
|
<text x="528.6658653846154" y="77.46153846153845" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(620,-680)</text>
|
|
45
|
+
<circle cx="236.59855769230768" cy="88.46153846153845" r="6" fill="blue" stroke="black" stroke-width="1"/>
|
|
46
|
+
<text x="244.59855769230768" y="92.46153846153845" font-family="Arial" font-size="10" fill="black">S3</text>
|
|
47
|
+
<text x="236.59855769230768" y="77.46153846153845" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(-352,-680)</text>
|
|
48
48
|
<circle cx="674.6995192307692" cy="203.84615384615384" r="6" fill="green" stroke="black" stroke-width="1"/>
|
|
49
49
|
<text x="682.6995192307692" y="207.84615384615384" font-family="Arial" font-size="10" fill="black">T7</text>
|
|
50
50
|
<text x="674.6995192307692" y="192.84615384615384" font-family="Arial" font-size="8" fill="gray" text-anchor="middle">(1106,-296)</text>
|
|
@@ -57,15 +57,9 @@
|
|
|
57
57
|
<text x="30" y="60" font-family="Arial" font-size="10">Steiner</text>
|
|
58
58
|
<circle cx="20" cy="76" r="4" fill="green" stroke="black"/>
|
|
59
59
|
<text x="30" y="80" font-family="Arial" font-size="10">Terminal</text>
|
|
60
|
-
<circle cx="20" cy="36" r="4" fill="red" stroke="black"/>
|
|
61
|
-
<text x="30" y="40" font-family="Arial" font-size="10">Source</text>
|
|
62
|
-
<circle cx="20" cy="56" r="4" fill="blue" stroke="black"/>
|
|
63
|
-
<text x="30" y="60" font-family="Arial" font-size="10">Steiner</text>
|
|
64
|
-
<circle cx="20" cy="76" r="4" fill="green" stroke="black"/>
|
|
65
|
-
<text x="30" y="80" font-family="Arial" font-size="10">Terminal</text>
|
|
66
60
|
<text x="20" y="110" font-family="Arial" font-size="10" font-weight="bold">Statistics:</text>
|
|
67
61
|
<text x="20" y="125" font-family="Arial" font-size="9">Total Nodes: 11</text>
|
|
68
62
|
<text x="20" y="140" font-family="Arial" font-size="9">Terminals: 7</text>
|
|
69
63
|
<text x="20" y="155" font-family="Arial" font-size="9">Steiner: 3</text>
|
|
70
64
|
<text x="20" y="170" font-family="Arial" font-size="9">Wirelength: 7239.00</text>
|
|
71
|
-
</svg>
|
|
65
|
+
</svg>
|