Skip to content

A implementation of calculating the character table of S_n by Murnaghan–Nakayama rule

Notifications You must be signed in to change notification settings

youxingz/symmetric_group_character

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

How to run it

Download this repository or the single executable file symmetric_group (without suffix), then enter the project folder, run script:

Non-recursive version:

./symmetric_group <n>

Non-recursive version with multiple threads:

./symmetric_group <n> -m

Or the recursive version:

./symmetric_group <n> -r

The character table will then be saved to the current directory with the name like output/character_table (S_5).txt.

Example:

>> ./symmetric_group 5 -r
[Character table of Sysmmetric Group (n=5)] Recursive Version
Partition Length: 7
Calculating...
Time Spent: 0 ms
Output file: character_table (S_5).txt
Done!

Content of the file character_table (S_5).txt:

Character table of Sysmmetric Group (n=5)
7X7	[1 1 1 1 1]	[2 1 1 1]	[2 2 1]	[3 1 1]	[3 2]	[4 1]	[5]	
[1 1 1 1 1]	1	-1	1	1	-1	-1	1	
[2 1 1 1]	4	-2	0	1	1	0	-1	
[2 2 1]	5	-1	1	-1	-1	1	0	
[3 1 1]	6	0	-2	0	0	0	1	
[3 2]	5	1	1	-1	1	-1	0	
[4 1]	4	2	0	1	-1	0	-1	
[5]	1	1	1	1	1	1	1	

Test Results

For n=10,15,20,25,30,35, we have test results (not include file write time):

n partition size time spend (non-recursive version, ms) time spend (non-recursive version,multiple thread, ms) time spend (recursive version, ms)
5 7 0 0 0
10 42 1 0 1
15 176 17 4 21
20 627 151 46 270
25 1958 1524 434 2886
30 5604 12254 3294 24189
35 14883 92343 25044 216933

Test device: MacBook Pro 13, 2.4 GHz Quad-Core Intel Core i5, 8 GB 2133 MHz LPDDR3

For Large N (N>30)

We use the non-recursive algorithm and file buffer to implement a new version alg_slice.go for case $n&gt;30$.

Example

For $n=38$, we can use parameter -s to run our algorithm:

>> ./symmetric_group 38 -s

Result:

n time spend (ms) file size (GB)
35 68287 0.74
36 106441 1.08
37 138312 1.59
38 202597 2.33
39 298056 3.39
40 386991 4.91

We uploaded these file to Google Drive.

Download

The executable file: symmetric_group

Output files(n=2,...,30): outputs

Output files (n=2,...,34): google drive

Because of the size of output files, we compress these files from 1500M to 416M with zip.

About

A implementation of calculating the character table of S_n by Murnaghan–Nakayama rule

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages