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

Hashing affine group elements #38508

Merged
merged 4 commits into from
Dec 8, 2024

Conversation

tscrim
Copy link
Collaborator

@tscrim tscrim commented Aug 14, 2024

Fixes #38381 and makes sure the defining parts of the group element are immutable.

📝 Checklist

  • The title is concise and informative.
  • The description explains in detail what this PR is about.
  • I have linked a relevant issue or discussion.
  • I have created tests covering the changes.
  • I have updated the documentation and checked the documentation preview.

⌛ Dependencies

Copy link

github-actions bot commented Aug 14, 2024

Documentation preview for this PR (built with commit b10beae; changes) is ready! 🎉
This preview will update shortly after each push to this PR.

@@ -45,6 +45,7 @@
from sage.structure.element import MultiplicativeGroupElement
from sage.structure.richcmp import richcmp, richcmp_not_equal

from copy import copy
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

imports from stdlib go to the top of the file, before from sage... imports

sage: hash(g) == hash(copy(g))
True
sage: f = g * h
sage: hash(f) == hash((f.A(), f.b()))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think it's a good idea to pin this implementation detail in a doctest

@tscrim tscrim force-pushed the groups/hashable_affine-38381 branch from bcb7cd4 to f3ec5b3 Compare November 28, 2024 09:00
@tscrim
Copy link
Collaborator Author

tscrim commented Nov 28, 2024

I've addressed the reviewer comments (although I disagree with the detail in the doctest; someone who is changing the hash will clearly see the doctest needs to be updated, doctests are not, and should not be, fixed forever).

@fchapoton Could you do the final review here? Should be quick.

Copy link
Contributor

@fchapoton fchapoton left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok, good to go

@tscrim
Copy link
Collaborator Author

tscrim commented Nov 28, 2024

Thank you.

@tscrim tscrim closed this Nov 28, 2024
@tscrim tscrim reopened this Nov 28, 2024
vbraun pushed a commit to vbraun/sage that referenced this pull request Dec 6, 2024
    
<!-- ^ Please provide a concise and informative title. -->
<!-- ^ Don't put issue numbers in the title, do this in the PR
description below. -->
<!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method
to calculate 1 + 2". -->
<!-- v Describe your changes below in detail. -->
<!-- v Why is this change required? What problem does it solve? -->
<!-- v If this PR resolves an open issue, please link to it here. For
example, "Fixes sagemath#12345". -->

Fixes sagemath#38381 and makes sure the defining parts of the group element are
immutable.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [x] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#38508
Reported by: Travis Scrimshaw
Reviewer(s): Frédéric Chapoton, Matthias Köppe, Travis Scrimshaw
vbraun pushed a commit to vbraun/sage that referenced this pull request Dec 8, 2024
    
<!-- ^ Please provide a concise and informative title. -->
<!-- ^ Don't put issue numbers in the title, do this in the PR
description below. -->
<!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method
to calculate 1 + 2". -->
<!-- v Describe your changes below in detail. -->
<!-- v Why is this change required? What problem does it solve? -->
<!-- v If this PR resolves an open issue, please link to it here. For
example, "Fixes sagemath#12345". -->

Fixes sagemath#38381 and makes sure the defining parts of the group element are
immutable.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [x] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#38508
Reported by: Travis Scrimshaw
Reviewer(s): Frédéric Chapoton, Matthias Köppe, Travis Scrimshaw
@vbraun vbraun merged commit 04eaef4 into sagemath:develop Dec 8, 2024
40 of 42 checks passed
@tscrim tscrim deleted the groups/hashable_affine-38381 branch December 9, 2024 08:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

AffineGroup elements should be hashable
4 participants