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

add class groups of binary quadratic forms #36184

Merged

Conversation

yyyyx4
Copy link
Member

@yyyyx4 yyyyx4 commented Sep 3, 2023

This patch adds an implementation of the form class group for positive definite binary quadratic forms. (We restrict to definite forms for now since it is the easier case: Every class contains a unique reduced form.)

Most of the required functionality was already available in PARI or Sage, but the types introduced in this patch make it easier to manipulate form classes and interface with existing algorithms for generic abelian groups.

@yyyyx4 yyyyx4 force-pushed the public/class_groups_of_binary_quadratic_forms branch from f2e14da to 07ab043 Compare September 4, 2023 11:17
@yyyyx4 yyyyx4 force-pushed the public/class_groups_of_binary_quadratic_forms branch from b25b388 to 7c0a6c7 Compare November 2, 2023 10:29
Copy link
Contributor

@GiacomoPope GiacomoPope left a comment

Choose a reason for hiding this comment

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

Looks good to me. One minor comment about order() which currently uses BSGS and could use something subexpoentential.

Otherwise, clear code, easy to read and will be a useful addition to Sage

src/sage/quadratic_forms/bqf_class_group.py Outdated Show resolved Hide resolved
Copy link

github-actions bot commented Nov 3, 2023

Documentation preview for this PR (built with commit 4797a51; changes) is ready! 🎉

@yyyyx4
Copy link
Member Author

yyyyx4 commented Nov 10, 2023

Thanks for the review!

vbraun pushed a commit to vbraun/sage that referenced this pull request Dec 4, 2023
    
This patch adds an implementation of the form class group for positive
definite binary quadratic forms. (We restrict to definite forms for now
since it is the easier case: Every class contains a unique reduced
form.)

Most of the required functionality was already available in PARI or
Sage, but the types introduced in this patch make it easier to
manipulate form classes and interface with existing algorithms for
generic abelian groups.
    
URL: sagemath#36184
Reported by: Lorenz Panny
Reviewer(s): Giacomo Pope, Lorenz Panny
@vbraun vbraun merged commit 839327a into sagemath:develop Dec 6, 2023
21 checks passed
@mkoeppe mkoeppe added this to the sage-10.3 milestone Dec 6, 2023
@yyyyx4 yyyyx4 deleted the public/class_groups_of_binary_quadratic_forms branch December 6, 2023 14:52
vbraun pushed a commit to vbraun/sage that referenced this pull request Jan 21, 2024
    
...for class groups of binary quadratic forms, which we have since
sagemath#36184.

This map is defined by finding a class representative $[a,b,c]$ for
which $f^2 \mid a$ (and $f \mid b$) and then applying the substitution
$x \mapsto x/f$. In the code, we do it in prime steps, since that makes
finding a suitable representative a little easier.

This can be used, among other things, for determining the kernel of the
surjection $\mathrm{cl}(f^2D) \twoheadrightarrow \mathrm{cl}(D)$.
    
URL: sagemath#37074
Reported by: Lorenz Panny
Reviewer(s): Lorenz Panny, Travis Scrimshaw
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.

5 participants