class REP_STACK |
---|
**** | 1996/10LINUX version
Kouji Kodama 1989/8 kernel of computing the group S(Jn). |
attr Jn1:CARD; |
---|
**** | Jn+1 |
attr Jn2:CARD; |
---|
**** | Jn+2 |
attr Jn:CARD; |
---|
**** | index of permutation |
attr bottom:CARD; .. Included as bottom |
---|
**** | 0<bottom<pt<st.size [ 0..(static work).. Bottom..(stack work) ] |
attr |
---|
attr pt:CARD; .. Included as pt |
---|
**** | stack pointer. assume that stack.has_ind(pt). [ 0..(static work).. Bottom..(stack work) ] |
attr st:ARRAY{GT}; .. Included as st |
---|
**** | stack group GT [ 0..(static work).. Bottom..(stack work) ] |
attr bottom:CARD; .. Included as bottom |
---|
**** | 0<bottom<pt<st.size [ 0..(static work).. Bottom..(stack work) ] |
attr |
---|
attr pt:CARD; .. Included as pt |
---|
**** | stack pointer. assume that stack.has_ind(pt). [ 0..(static work).. Bottom..(stack work) ] |
attr st:ARRAY{GT}; .. Included as st |
---|
**** | stack group GT [ 0..(static work).. Bottom..(stack work) ] |
CMul(w:ARRAY{INT}) |
---|
**** | +1 |
CnvCyclicForm |
---|
**** | +1: presents a permutation as product of disjoint cycles.in:gen.out:st1:Yang.st0 =top:cyclic form. Cut off st0[] with length of st1[],then each segment is cycle, and it is the product of cycles.
works.st2:g permutationst3:Orbit.st4:start point of orbit.st5:length of orbit. |
Conjugate( P,Q :INT) |
---|
**** | +1 Fetch Q P Q~ |
Drop .. Included as Drop |
---|
**** | -1 |
Dup .. Included as Dup |
---|
**** | +1 |
Eq1:BOOL |
---|
**** | -1 check if unit |
Eq:BOOL |
---|
**** | -2 if st[pt]=st[pt-1] |
Fetch(i:CARD) .. Included as Fetch |
---|
**** | +1 |
Fetch(i:INT) |
---|
**** | +1 |
Gen:BOOL |
---|
**** | 0/-2 Heap's algorithm. |
GenConj:BOOL |
---|
**** | 0/-5 st0::=st[pt]; st1::=st[pt-1]; st2::=st[pt-2]; |
GenConjDispose |
---|
**** | -5. dispose area for GenGonj |
GenY:BOOL |
---|
**** | 0/-6 |
GenYang:BOOL |
---|
**** | true: +0, false: -2 |
InitConj |
---|
**** | +4 Assume thet a Yang-diagram is on the stack. |
InitGen |
---|
**** | +2 |
InitGenY(Ynum:CARD) |
---|
**** |
__+6 |
InitYang |
---|
**** | +2 |
Inv |
---|
**** | 0 |
Mul |
---|
**** | -1 fetch(a); fetch(b); Mul implies a b |
OrbitC(gn:CARD) |
---|
**** |
__-gn+1 make orbit of gn-elements on stack top |
OrbitS |
---|
**** | +1 mark up orbits for stack top |
Over .. Included as Over |
---|
**** | +1 |
Pd .. Included as Pd |
---|
**** | -1 |
Pd(n:CARD) .. Included as Pd |
---|
**** | -n |
Pu .. Included as Pu |
---|
**** | +1 |
Pu(n:CARD) .. Included as Pu |
---|
**** | +n |
Rot .. Included as Rot |
---|
**** | 0 |
Sort |
---|
**** | 0 sort stack top |
Store(i:CARD) .. Included as Store |
---|
**** | -1 |
Store(i:INT) |
---|
**** | -1 |
Swap .. Included as Swap |
---|
**** | 0 |
Unit |
---|
**** | +1 |
WriteStackLog |
---|
**** | -1 |
Yang |
---|
**** | +1 Yang diagram(list of length of orbits) format: [ #orbit, length of orbits(sorted)] |
create(jn:CARD):SAME |
---|
create:SAME .. Included as create |
---|
get_element:GT .. Included as get_element0 |
---|
get_str(preType:CARD):STR |
---|
**** | -1 |
get_str:STR |
---|
**** | -1 |
inspect(p:CARD):STR |
---|
**** | 0/0 |
inspect:STR |
---|
**** | 0/0 |
resize .. Included as resize |
---|
CjN(pi,qi:CARD) |
---|
**** | +1 q~ p q. pi,qi>=0 |
CjP(pi,qi:CARD) |
---|
**** | +1 q p q~. pi,qi>=0 |
CnvG |
---|
**** | 0 set st0 from st1 and st2 |
GenConjCanExg:BOOL |
---|
GenConjExg |
---|
GenConjGen:BOOL |
---|
GenConjRot(on,os,oe:CARD):BOOL |
---|
attr Jn:CARD; |
---|
**** | index of permutation |
attr Jn1:CARD; |
---|
**** | Jn+1 |
attr Jn2:CARD; |
---|
**** | Jn+2 |
get_element:ARRAY{CARD} |
---|