Computational Group Theory in Scala. It's Scala permuted!
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

AlaSc, it's Scala permuted!

Join the chat at

AlaSc is a Computational Group Theory library aiming to implement permutation group algorithms in Scala. The library implements the deterministic and randomized Schreier-Sims algorithms using explicit transversals, along with a few helpers.

It also provides a Grp class which can be used to explore any finite group provided a faithful action is provided.

The library is by no means complete, and the API is unstable for now.

Similar projects include:

This software is licensed under the terms of the GNU Public License version 3.

YourKit is kindly supporting AlaSc open source project with its full-featured Java Profiler. YourKit, LLC is the creator of innovative and intelligent tools for profiling Java and .NET applications. Take a look at YourKit's leading software products:

Welcome to Scala version 2.11.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_45).
Type in expressions to have them evaluated.
Type :help for more information.

scala> import net.alasc.finite._; import net.alasc.perms._; import net.alasc.perms.default._; import net.alasc.syntax.all._; import net.alasc.std.any._; import spire.implicits._

scala> val M11 = Grp(Perm(1,2,3,4,5,6,7,8,9,10,11), Perm(3,7,11,8)(4,10,5,6))
M11: net.alasc.math.Grp[net.alasc.math.Perm] = Grp(Perm(1,2,3,4,5,6,7,8,9,10,11), Perm(3,7,11,8)(4,10,5,6))

scala> M11.setwiseStabilizer(2,9)
res0: net.alasc.math.Grp[net.alasc.math.Perm] = Grp(Perm(1,8)(2,9)(3,4)(5,10), Perm(1,10)(3,4)(5,8)(7,11), Perm(1,6,3,7)(4,5,8,10), Perm(1,7,3,6)(4,10,8,5), Perm(1,10,3,5)(4,6,8,7)) of order 144