Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #32 from kalmarek/total_rewrite
Total rewrite of the package: * Drop the dependency on `AbstractAlgebra.Perm`: we ship our own `Perm{T}` which is defined inside `PermutationGroups.Perms` module. Notable changes from the `AA` version: - `AbstractPermutation` interface (testable!) which the new `Perm` follows - `Perm` caches its inverse (so that second and later calls to `inv` are essentially free!) - and tries very hard to make sure that there will be at most one inverse perm (that is unless you copy it explicitly). - caching usually is problematic with multithreading, but the new `Perm` tries to stay thread-safe - due to the usage of `@atomic`s `Perm` is now a `mutable struct`, so creating a `Perm` requires two allocations (julia-1.9): one for the storage of images, second for the `Perm` object. * Rewrite `StabilizerChain` to use the recursive formulation and rewrite `schreier_sims` accordingly * New, rather fast iteration over leafs of the `StabilizerChain` tree (i.e. group elements) * switch to using `Transversal` by default. This is justified by benchmarks; If you want to use `SchreierTransversal` (e.g. because you run out of memory) you may do so by defining `PermGroup(SchreierTransversal, gens)` * By default `Perm`s use `UInt16` as storage; This applies to `perm"(1,2,3)"` macro as well. Again, you may change this by calling `PermGroup(Perm{UInt}.(gens))`; For "normal" usage `UInt32` should be more than enough though. * Major breaking changes: - non-constant `degree` in a permutation group (in particular `degree(one(perm)) == 1`) - all `Perm`s are compatible (i.e. embedded in `Sym(∞)`) - `Permutation`s implement Group interface; `Perm`s don't. If you use just external interface it is likely that this release won't be breaking for you.
- Loading branch information
6609e16
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@JuliaRegistrator register
6609e16
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Registration pull request created: JuliaRegistries/General/89771
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via: