tremlin / PermLib

a C++ library implementing permutation group algorithms
Other
13 stars 2 forks source link

comparison to state-of-the-art algorithms #5

Open rumschuettel opened 5 years ago

rumschuettel commented 5 years ago

Hey there!

I know this is an old project, but I'm curious whether you have any idea how your code would compare to this implementation: https://github.com/gap-packages/images which is based on http://arxiv.org/abs/1703.00197v1

I'm in need of a fast implementation of a canonical image search algorithm. Any thoughts?

Best,

tremlin commented 5 years ago

Hi Johannes,

I have no idea how the performance would compare. One important factor to consider is the framework that you want to use for your main project. If you are already using something that can interface with GAP efficently, then I would probably prefer this new GAP package because it is actively maintained.

Best, Thomas.

rumschuettel commented 5 years ago

thanks, good to know.

I assume PermLib isn't actively maintained? I just tried compiling it on a recent c++17 compiler, and got it to work, but it appears quite buggy; the example.cpp from the example subfolder compiles but produces weird output, like:

Group BASE[8]
1,2,3,4,7,8,5,6,
SGS[10]
(1,3,5,7,9,10,2,4,6,8),(1,5),(2,6,5,9)(3,7,10,4,8),(4,8,7,10),(5,6),(3,8,4,10,7),(6,9),(7,10),(7,8),(8,10),
U
10{9},4{4},5{5},4{4},3{2},2{2},3{3},2{2}, = 28800
{(), (1,3,5,7,9,10,2,4,6,8), (1,3,5,7,9,10,2,4,6,8), (1,3,5,7,9,10,2,4,6,8), (1,5), (1,3,5,7,9,10,2,4,6,8), (1,3,5,7,9,10,2,4,6,8), (1,3,5,7,9,10,2,4,6,8), (1,3,5,7,9,10,2,4,6,8), (1,3,5,7,9,10,2,4,6,8), }
{O, (), O, O, (2,6,5,9)(3,7,10,4,8), (2,6,5,9)(3,7,10,4,8), O, O, (2,6,5,9)(3,7,10,4,8), O, }
{O, O, (), (3,8,4,10,7), O, O, (3,8,4,10,7), (3,8,4,10,7), O, (3,8,4,10,7), }
{O, O, O, (), O, O, (4,8,7,10), (4,8,7,10), O, (4,8,7,10), }
{O, O, O, O, O, O, (), (7,8), O, (7,10), }
{O, O, O, O, O, O, O, (), O, (8,10), }
{O, O, O, O, (), (5,6), O, O, (6,9), O, }
{O, O, O, O, O, (), O, O, (6,9), O, }

Assertion failed: origOrder == bsgs.order(), file c:\bla\src\permlib\include\permlib\change\conjugating_base_change.h, line 143

C:\bla\bla.exe (Prozess "17008") wurde mit Code "3" beendet

The compiler also throws a massive amount of type conversion warnings.

I realize this project might be somehow deprecated due to time constraints; I'd be happy to help giving it a face lift if there's an interest from your side.