This is my intention:
Generate permutation groups:
NB. symmetric group order y


Sym =: (i. @: !) A. i.



NB. alternating group from symmetric


   Alt =: (I. @: (0.5&*) @: >: @: (C.!.2)) { ]



NB. cyclic group order y


   Cyc =: i. |."(0 1) i.

   



   conjugate =: ([: /:"1 [) C."(1 1) (C."(1 1)~)



   conj_class =: ~. @: conjugate



   conjugate_list =. conj_class"(_ 1)/~


NB. create conjugacy classes, nub out duplicates from conjugate_list




conjugacy_classes =: ~.@: (/:~"2) @: conjugate_list


e.g.




 s4 =. Sym 4
   a4 =. Alt s4
   a40 1 2 30 2 3 10 3 1 21 0 3 21 2 0 31 3 2 02 0 1 32 1 3 02 3 0 13 0 2 13 1 
0 2















3 2 1 0

NB. a4 is the group of all even permutations on 4 elements.
NB. view conjugacy classes. (should be 4)


conjugacy_classes a4



0 0 0 0

0 0 0 0

0 0 0 0

0 1 2 3




0 2 3 1

1 3 2 0

2 0 1 3

3 1 0 2




0 3 1 2

1 2 0 3

2 1 3 0

3 0 2 1




0 0 0 0

1 0 3 2

2 3 0 1

3 2 1 0

> From: [email protected]
> To: [email protected]
> Date: Thu, 10 Jul 2014 13:20:37 +0000
> Subject: Re: [Jprogramming] Comaring Arrays
> 
> In that case Dan's solution is probably optimal - no sorting required.
> ________________________________________
> From: [email protected] 
> [[email protected]] on behalf of Jon Hough 
> [[email protected]]
> Sent: Thursday, July 10, 2014 14:55
> To: [email protected]
> Subject: Re: [Jprogramming] Comaring Arrays
> 
> Duplicate rows, other than 0 0 0 0 sjould never occur. If they did, there 
> would be a big problem.
> 0 0 0 0 occur when J needs filler to pad out arrays.
> 
> --- Original Message ---
> 
> From: "Ben Gorte - CITG" <[email protected]>
> Sent: July 10, 2014 9:51 PM
> To: [email protected]
> Subject: Re: [Jprogramming] Comaring Arrays
> 
> Hi Jon,
> 
> Dan and I were wondering:
> 
>   1. whether your matrices would be allowed to have duplicate rows
>   2. and if they are, whether such duplicate rows should occur in both 
> matrices equally often, for them to be equivalent
> 
> Ben
> ________________________________________
> From: [email protected] 
> [[email protected]] on behalf of Jon Hough 
> [[email protected]]
> Sent: Thursday, July 10, 2014 14:16
> To: [email protected]
> Subject: Re: [Jprogramming] Comaring Arrays
> 
> I  away from my computer at the moment. When I get back I will show you my 
> code.
> The gist is I am making a simple permutation group theory script(i am not 
> talking about simple groups, i mean a simple script).
> Anyway, what I have so far is trying to conjugate a group with itself, so i 
> can nub out the resulting duplicates and get all the conjugacy classes of the 
> group.
> 
> --- Original Message ---
> 
> From: "Dan Bron" <[email protected]>
> Sent: July 10, 2014 8:38 PM
> To: [email protected]
> Subject: Re: [Jprogramming] Comaring Arrays
> 
> Good point.  We could fix this up by asking an additional question: are the 
> items of A unique? There's a million ways to ask that, but maybe we're in a 
> cutesy mood today:
> 
>     e. *./@:*. ~:@:]
> 
> Though with the ~:, I'm not sure this would have any performance advantage 
> over sorting. Maybe we should go back to i. :
> 
>     #@:] (e. < *./@:~:@:]) i.
> 
> That is, look up A in B and tell me whether all elements are unique and that 
> there are no missing elements ((#A) e. A i. B).
> 
> -Dan
> 
> Please excuse typos; sent from a phone.
> 
> > On Jul 10, 2014, at 6:48 AM, Ben Gorte - CITG <[email protected]> 
> > wrote:
> >
> > Now we should ask Jon what he wants in this case:
> >
> > ]A=.3 2$1 1 1 2 1 1
> > 1 1
> > 1 2
> > 1 1
> >   ]B=.3 2$1 2 1 2 1 1
> > 1 2
> > 1 2
> > 1 1
> >
> > Should the result be:
> >   A *./@:e. B
> > 1
> > or does he prefer:
> >   (/:~A)-:/:~B
> > 0
> > ?
> >
> > (I agree the first looks quicker)
> >
> > Ben
> >
> > _
> > _______________________________________
> > From: [email protected] 
> > [[email protected]] on behalf of Dan Bron 
> > [[email protected]]
> > Sent: Thursday, July 10, 2014 12:33
> > To: [email protected]
> > Subject: Re: [Jprogramming] Comaring Arrays
> >
> > Sorting might be overkill (and/or a little expensive) for this situation.
> >
> > If A and B are the same shape (and they'd better be, or A is definitely not 
> > a permutation of B), then you really only need to know if all the items 
> > (rows) of A are also items (rows) of B.
> >
> > So let's just ask that:
> >
> >   A e. B
> > 1 1 1 1
> >   A *./@:e. B
> > 1
> >
> > Now, if we needed slightly more information (and we're willing to pay for 
> > it), in particular, exactly how A is permuted from B, we could use i. 
> > instead of e. :
> >
> >
> >   A i. B
> > 2 0 1 3
> >
> > And from here, we can figure out exactly how far Jon would have had to go 
> > in his quest to check every possible permutation:
> >
> >   A A.@:i. B
> > 12
> >   A C.@:i. B
> > +-----+-+
> > |2 1 0|3|
> > +-----+-+
> >
> > Looks like about halfway ( (!#A)%2 ) . Not surprising.
> >
> > -Dan
> >
> > Please excuse typos; sent from a phone.
> >
> >> On Jul 10, 2014, at 4:17 AM, Ben Gorte - CITG <[email protected]> 
> >> wrote:
> >>
> >> B=:4 4$2 3 0 1 3 2 1 0 1 0 3 2 0 0 0 0
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
                                          
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to