Skip to content

New version: FiniteGroups v0.3.0#156754

Merged
JuliaTagBot merged 1 commit into
masterfrom
registrator-finitegroups-7eb45ad1-v0.3.0-86a5743740
May 31, 2026
Merged

New version: FiniteGroups v0.3.0#156754
JuliaTagBot merged 1 commit into
masterfrom
registrator-finitegroups-7eb45ad1-v0.3.0-86a5743740

Conversation

@JuliaRegistrator
Copy link
Copy Markdown
Contributor

@JuliaRegistrator JuliaRegistrator commented May 31, 2026

First registered 0.3.0 (previous registered version: 0.2.4). A correctness, robustness, and documentation release addressing two rounds of code review. Full test suite green (11696 assertions).

## Breaking changes
- `repname(g, i)` no longer accepts a `convention` keyword (the second naming scheme never existed).
- `permutationgroup(0)`/`permutationgroup(1)` now return the trivial group, and negative `n` is rejected.
- `proj_reps` and `irreps(::PointGroup; R=true)` now drop equivalent duplicates.
- Point-group accessors (`operation`/`matrix`/`rotation`/`irreps`) return copies instead of aliasing package globals.
- `permutation`, `FiniteGroup`, `cover_group`, `oplus`, and `check_group` now validate their input and throw informative errors instead of producing garbage, hanging, or `BoundsError`.

## Fixes
- `proj_to_irrep`/`block_decomposition`: produce real blocks for real reps containing complex irreps, and accept mixed real/complex irrep lists.
- `real_irreps`: select the real form via the Frobenius–Schur indicator rather than storage type.
- Burnside: handle the one-class group and orthonormalize split bases.
- `chiral_proj_reps`: use `Hermitian` (not `Symmetric`) for the chiral operator.
- Dixon: validate the modular class-algebra split and the recovered root-of-unity multiplicities.
- `equivalent_transform`: handle 1D irreps.

JuliaRegistrator referenced this pull request in jayren3996/FiniteGroups.jl May 31, 2026
Addresses two rounds of review feedback across the core algorithms,
projective-representation code, point-group accessors, and helpers. Each
fix was reproduced before changing and is covered by test/ReviewFixesTest.jl
(53 assertions). Full suite green: 11696/11696.

Correctness:
- proj_to_irrep: accept mixed real/complex irrep lists; realify based on the
  irrep's complexity (not the reducible rep's), so a real rep with a complex
  irrep yields real 2D blocks under R=true.
- real_irreps: branch on the Frobenius-Schur indicator, not storage type, so
  real-typed pseudo-real characters are doubled correctly.
- Burnside: float identity init (fixes one-class C1 BitVector crash) and
  orthonormalize split bases so vs'*h*vs is the genuine restriction.
- chiral_proj_reps: Hermitian (not Symmetric) for the complex chiral operator.
- proj_reps / irreps(pointgroup; R=true): drop equivalent duplicates.

Robustness / validation:
- permutation: reject non-bijective input (was accepted, then hung on display);
  cycles() now returns the identity as documented.
- permutationgroup: trivial group for n in {0,1}; reject negative n.
- FiniteGroup: require a square table; materialize matrix views.
- check_group: validate shape and entry range before the associativity loop
  (was a raw BoundsError).
- cover_group: validate p>0, coeff shape, and the 2-cocycle condition.
- equivalent_transform: handle 1D irreps (no e[end-1]).
- check_rep / check_unitary: validate length / squareness.
- oplus: reject mismatched representation lengths.
- Dixon: assert exactly NC central characters and validate recovered
  root-of-unity multiplicities.
- CharacterTable: accept AbstractVector{<:Characters}.
- Point-group accessors (operation/matrix/rotation/irreps) return copies so
  callers cannot mutate package globals.
- Permutation: define ==/hash consistent with isequal.

Cleanup / docs:
- repname: remove the dead convention=2 path (undefined global; only one
  bundled scheme).
- Clarify Dixon "exact" wording (exact integer multiplicities, assembled into
  ComplexF64), the point-group :table default, and proj_operator's abelian
  precedence.
- ProjRepTest: replace a tautological dimension check with the real
  sum(dim^2) == |bg| identity.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
UUID: 7eb45ad1-e93a-4d9d-8e8f-2bf75ed29802
Repo: https://github.com/jayren3996/FiniteGroups.jl.git
Tree: 19fec26809801042105c2c53bb09d54835ea1d95

Registrator tree SHA: 50f504d641745716a5b3eabaf681d3a4937d2ae3
@JuliaRegistrator JuliaRegistrator force-pushed the registrator-finitegroups-7eb45ad1-v0.3.0-86a5743740 branch from 362ee13 to 7201f4b Compare May 31, 2026 17:39
@github-actions
Copy link
Copy Markdown
Contributor

Hello, I am an automated registration bot. I help manage the registration process by checking your registration against a set of AutoMerge guidelines. If all these guidelines are met, this pull request will be merged automatically, completing your registration. It is strongly recommended to follow the guidelines, since otherwise the pull request needs to be manually reviewed and merged by a human.

1. AutoMerge Guidelines are all met! ✅

Your new version registration met all of the guidelines for auto-merging and is scheduled to be merged in the next round (~20 minutes).

2. To pause or stop registration

If you want to prevent this pull request from being auto-merged, simply leave a comment. If you want to post a comment without blocking auto-merging, you must include the text [noblock] in your comment.

Tip: You can edit blocking comments to add [noblock] in order to unblock auto-merging.

@JuliaTagBot JuliaTagBot merged commit 5faac4b into master May 31, 2026
13 checks passed
@JuliaTagBot JuliaTagBot deleted the registrator-finitegroups-7eb45ad1-v0.3.0-86a5743740 branch May 31, 2026 17:50
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.

2 participants