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 Hadamard matrices up to order 1000 #35059

Merged
merged 33 commits into from
Mar 13, 2023

Conversation

MatteoCati
Copy link
Contributor

@MatteoCati MatteoCati commented Feb 10, 2023

📚 Description

Added new construction for (non skew) Hadamard matrices of order up to 1000. The only orders <1000 for which no construction is known are 668, 716, 892.
In particular, the following has been changed:

  • Added more Williamson type matrices (the way these matrices are stored has been changed to be more compact)
  • Implemented a function to construct non-skew Supplementary difference Sets, as well as a function to construct Hadamard matrices from these sets
  • Added Miyamoto construction

Note that only commits starting from 15e1b50 are new, the previous ones where created in #34985.

📝 Checklist

  • I have made sure that the title is self-explanatory and the description concisely explains the PR.
  • I have linked an issue or discussion.
  • I have created tests covering the changes.
  • I have updated the documentation accordingly.

⌛ Dependencies

Copy link

@wdjoyner wdjoyner left a comment

Choose a reason for hiding this comment

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

This looks like a good thing to have in SageMath. The tests all passed so I'm not sure what I am to review. The code is quite substantial.

@dimpase
Copy link
Member

dimpase commented Feb 11, 2023

a fresh eye looking at docstrings might be helpful

@wdjoyner
Copy link

a fresh eye looking at docstrings might be helpful

I should be more familiar with how github works, but I'm not. Doesn't github render the rst files? I'm just seeing diff files. They seem okay, from what I saw, but it's it's a lot of code to read.

@codecov-commenter
Copy link

codecov-commenter commented Feb 11, 2023

Codecov Report

Patch coverage: 96.37% and project coverage change: +0.01 🎉

Comparison is base (52a81cb) 88.57% compared to head (56cfec2) 88.59%.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop   #35059      +/-   ##
===========================================
+ Coverage    88.57%   88.59%   +0.01%     
===========================================
  Files         2140     2140              
  Lines       397273   397510     +237     
===========================================
+ Hits        351891   352168     +277     
+ Misses       45382    45342      -40     
Impacted Files Coverage Δ
src/sage/schemes/elliptic_curves/ell_generic.py 93.11% <66.66%> (-0.12%) ⬇️
src/sage/interfaces/tachyon.py 87.93% <90.00%> (+0.43%) ⬆️
src/sage/schemes/elliptic_curves/gal_reps.py 82.23% <90.00%> (+0.04%) ⬆️
src/sage/combinat/matrices/hadamard_matrix.py 85.94% <91.76%> (+0.49%) ⬆️
src/sage/combinat/designs/difference_family.py 88.75% <94.44%> (+0.33%) ⬆️
src/sage/quadratic_forms/quadratic_form.py 90.26% <95.65%> (+0.16%) ⬆️
src/sage/modular/quasimodform/element.py 99.20% <100.00%> (+0.06%) ⬆️
src/sage/rings/qqbar.py 95.30% <100.00%> (+<0.01%) ⬆️
src/sage/schemes/affine/affine_morphism.py 90.33% <100.00%> (ø)
src/sage/schemes/elliptic_curves/BSD.py 43.75% <100.00%> (+0.21%) ⬆️
... and 74 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report at Codecov.
📢 Do you have feedback about the report comment? Let us know in this issue.

@dimpase
Copy link
Member

dimpase commented Feb 12, 2023

Doesn't github render the rst files?

we're getting this fixed in #34984

@wdjoyner
Copy link

Doesn't github render the rst files?

we're getting this fixed in #34984

Thanks!

Copy link
Member

@dimpase dimpase left a comment

Choose a reason for hiding this comment

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

lgtm

MatteoCati and others added 5 commits February 21, 2023 18:36
* Improve camera positioning for threejs

* Changes to sagedoc, stopgap and superseded; one mass replacement

* Another mass replacement

* Another mass replacement

* Another replacement

* Another replacement

* Remove comment numbers

* Fix a couple of strays

* trac ticket -> github issue

* Change checksums back, fix meta-ticket

* Another mass replacement

* Another mass replacement

* Another mass replacement

* Manual fixes

* Small replacement

* Small replacement

* Fix typo

* Add github role to tox

* add explicit formulas to documentation of WeierstrassIsomorphism

* lift documentation from .__init__() to class and tweak

* add doctest for sagemath#20847

* add .torsion_basis() method to EllipticCurve_finite_field

* Revert "Remove comment numbers"

This reverts commit 27cdf3e.

* Revert changes to git_trac.rst

* Switch :github: to :issue:

* Switch from sage-prod to sage in attachment links

* Change trac_number to issue_number

* cross linked matrix method

* Add construction of strongly regular digraph

* A few manual fixes

* Another automatic change

* Undo a bunch of changes in the doc directory

* Another fix

* Try to fix sphinx problem

* Move comment tag inside

* allowing iterables as input

* Fix code style

* generalized fix

* converting iterables

* added is_supergreedy() function

* implemented diff algo, for borderline cases

* correcting function for disjoint set of points

* correcting function

* documentation changes

* minor chagnges

* fixing_failing_tests

* minor documentation correction

* Update linear_extensions.py

* corrected TeX maths in docstrings

* further fixes to supergreedy docstring

* Added Reference

* adding reference

* minor updates

* correcting documentation errors

* correct a wrong change to :trac:

* remove spurrious blank line

* another spurrious line removed

* compute matrix kernels modulo composites

* fix doctests

* docstring style tweak

* adding doctests

* correct the import location (duh...)

* adding colored permutation doctests

* doctests fixes

* replaced "Combining Caron"+c with one unicode character

* Updated SageMath version to 10.0.beta1

---------

Co-authored-by: Kwankyu Lee <ekwankyu@gmail.com>
Co-authored-by: David Roe <roed.math@gmail.com>
Co-authored-by: Lorenz Panny <lorenz@yx7.cc>
Co-authored-by: Marc Mezzarobba <marc@mezzarobba.net>
Co-authored-by: Tobias Diez <code@tobiasdiez.com>
Co-authored-by: Sandstorm831 <gargrohan138@gmail.com>
Co-authored-by: Rohan Garg <76916164+Sandstorm831@users.noreply.github.com>
Co-authored-by: Dima Pasechnik <dima@pasechnik.info>
Co-authored-by: Release Manager <release@sagemath.org>
@github-actions
Copy link

github-actions bot commented Mar 3, 2023

Documentation preview for this PR is ready! 🎉
Built with commit: 56cfec2

@vbraun vbraun merged commit b5f7acc into sagemath:develop Mar 13, 2023
@mkoeppe mkoeppe added this to the sage-10.0 milestone Mar 13, 2023
vbraun pushed a commit that referenced this pull request Apr 1, 2023
    
<!-- ^^^^^
Please provide a concise, informative and self-explanatory title.
Don't put issue numbers in there, do this in the PR body below.
For example, instead of "Fixes #1234" use "Introduce new method to
calculate 1+1"
-->
### 📚 Description
This PR adds constructions for all known skew Hadamard matrices of order
up to 1000. The following changes have been made:
- more skew Supplementary difference sets have been added
- The functions for supplementary difference sets in
`difference_family.py` have been changed so that now they also return
the group to which the sets belong. This makes the functions consistent
with the others contained in this file, and makes them more efficient.
- Added construction of skew Hadamard matrices from complementary
difference sets (and construction for complementary difference sets).
- Added construction of skew Hadamard matrices from amicable Hadamard
matrices and Orthogonal Designs (and construction for some amicable
Hadamard matrices).

Note that only commits from c0eb0c1 are
new, the older ones where created in #35059.
<!-- Describe your changes here in detail -->
<!-- Why is this change required? What problem does it solve? -->
<!-- If it resolves an open issue, please link to the issue here. For
example "Closes #1337" -->

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->
<!-- If your change requires a documentation PR, please link it
appropriately -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->

- [x] I have made sure that the title is self-explanatory and the
description concisely explains the PR.
- [ ] I have linked an issue or discussion.
- [x] I have created tests covering the changes.
- [x] I have updated the documentation accordingly.

### ⌛ Dependencies
<!-- List all open pull requests that this PR logically depends on -->
<!--
- #xyz: short description why this is a dependency
- #abc: ...
-->
#35059: this PR adds (non skew) Hadamard matrices of order <= 1000
    
URL: #35211
Reported by: MatteoCati
Reviewer(s): Dima Pasechnik, MatteoCati, 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.

6 participants