Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace the SimilaritySurface hierarchy with categories #220

Merged
merged 259 commits into from
Jun 22, 2023

Conversation

saraedum
Copy link
Member

@saraedum saraedum commented Apr 3, 2023

Fixes #132 and hopefully gets rid of all of the boilerplate that is currently necessary to expose functionality in both surface hierarchies.

Checklist

  • Added an entry in doc/news/.
  • Added a test for this change.
  • Added new .py files to the documentation in doc/geometry or doc/graphical.
Dependencies
TODO
  • We cannot compute the stratum of some half-translation surfaces. See https://sagemath.zulipchat.com/#narrow/stream/271193-polygon/topic/category/near/355786162.2E01. This now shows as an error when printing these surfaces. (postponed as Cannot compute stratum of some translation surfaces #227)
  • __eq__ should be a very strict notion of equality always (same type & indistinguishable); make sure this is always the case and documented
  • labels() does not work for non-connected surfaces; this is not a new problem. There is only a single base label so how should we iterate non-connected surfaces?
  • Make sure that all the example constructions still work (except for the ones defining infinite surfaces.)
  • Make sure that there are no new #TODO markers in the code anymore.
  • Speed up doctests (we are now doctesting much more through categories, and tests take about 55 seconds on my machine which is annoying.)
  • Document what's at the bottom of surface.py.
Fix Speed Regressions

Generically, some tests deteriorated:

  • similarity_surface.py + rational_similarity_surface.py 3s → 11.2s → 5.6s → 3s
  • delaunay.py 2.16s → 15.03s → 4s
  • fundamental_group.py 0.29s → 0.97s → 0.19s
  • mappings.py 0.37s → 0.82s → 0.4s

There are specific problems with performance:

  • is_rational_surface() (which is new) is very slow. (but it's not called automatically anymore.)
  • printing of surfaces is sometimes very slow

@saraedum saraedum mentioned this pull request Apr 4, 2023
3 tasks
mamba segfaults in some situations in CI
@saraedum saraedum enabled auto-merge June 22, 2023 22:22
@github-actions
Copy link

Documentation preview for this PR is ready! 🎉
Built with commit: 03eef30

@saraedum saraedum merged commit d0c7d97 into flatsurf:master Jun 22, 2023
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

Compute the category of a polygon gluing
2 participants