****
1998/04/22 K.Kodama Covering Distribution of Yang diagram1997/1 kdmun-oriented band support

1996/10 kdmLINUX version

93/12/31 02:37:04 kdmbug fix of checkEq. It failed to check on link.Change InitConj.

93/12/30 03:19:52 kdmImprove checking conjugate rep.checkEqG: When set up first 2 generators, check if it admit representation.

generating all 5-fold coverings with 80386/12MHzknot:k10c121old 26secnew 8sec

knot:q101a1old 33secnew 14sec

knot:q111a1old 33secnew 13sec


1990/1 RepM Manual set.1989/9 Theta curve support1989/8 Rep Auto search. Modula2 version1983 Manual set. Basic version


Flattened version is here



Public


Readonly Shareds
****
****-------------------------------------
shared sl:ARRAY{INT};
**** compo--> non-zero if settled.
shared sPtr:INT;
****
shared sg_freq :ARRAY{INT};
****
shared Relator:ARRAY{WORD};
shared RepCount:INT;
**** #of finded representation
****
shared GenMax:INT;
**** gen. number --> condition of the gen.
shared windLon:INT;
****winding of longitude~
KNOT_GROUP::get_Relator(TCode,out Relator,out gen2compo);
**** covering distribution
cdY::=(covDistY/=0);
cdBr::=(covDistBr/=0);
**** covering distribution
#OUT+"branchind="+branchind.str+" covlk="+covlk.str+"\n";
shared rep_tbl2:REP_TABLE;
if LOGOUT::is_enabled then LOGOUT::LogEnd; else LOGOUT::LogBegin; end;
if LOGOUT::is_enabled then LOGOUT::LogEnd; else LOGOUT::LogBegin; end;
if LOGOUT::is_enabled then LOGOUT::LogEnd; else LOGOUT::LogBegin; end;
shared sr:ARRAY{BOOL};
**** rel. number-->true if used
shared Work:INT;
shared WorkTop,Bottom:INT;
shared setG:ARRAY{REP_OP};
**** [0..2*REPmaxC]
****
shared longPtr:INT;
**** area for longitudes
shared merPtr:INT;
**** area for meridian
end;
end;
end;
****
-------------------------------------
shared set0,set1,set3:BOOL;
shared freq0,freq1,freq3:INT;
shared g0,g1,g3:INT;
****------------ test routines ------------
****
------------_test_routines_------------
shared orbitmPtr:INT;
**** area for br.index
shared Dir:BOOL;
shared Rback:INT;
**** area for equivalence check of rep.

Writable Shareds
****
****-------------------------------------
shared sl:ARRAY{INT};
**** compo--> non-zero if settled.
shared sPtr:INT;
****
shared sg_freq :ARRAY{INT};
****
shared Relator:ARRAY{WORD};
shared RepCount:INT;
**** #of finded representation
****
shared GenMax:INT;
**** gen. number --> condition of the gen.
shared windLon:INT;
****winding of longitude~
KNOT_GROUP::get_Relator(TCode,out Relator,out gen2compo);
**** covering distribution
cdY::=(covDistY/=0);
cdBr::=(covDistBr/=0);
**** covering distribution
#OUT+"branchind="+branchind.str+" covlk="+covlk.str+"\n";
shared rep_tbl2:REP_TABLE;
if LOGOUT::is_enabled then LOGOUT::LogEnd; else LOGOUT::LogBegin; end;
if LOGOUT::is_enabled then LOGOUT::LogEnd; else LOGOUT::LogBegin; end;
if LOGOUT::is_enabled then LOGOUT::LogEnd; else LOGOUT::LogBegin; end;
shared sr:ARRAY{BOOL};
**** rel. number-->true if used
shared Work:INT;
shared WorkTop,Bottom:INT;
shared setG:ARRAY{REP_OP};
**** [0..2*REPmaxC]
****
shared merPtr:INT;
**** area for meridian
shared longPtr:INT;
**** area for longitudes
end;
end;
end;
****
-------------------------------------
shared set0,set1,set3:BOOL;
shared freq0,freq1,freq3:INT;
shared g0,g1,g3:INT;
****------------ test routines ------------
****
------------_test_routines_------------
shared orbitmPtr:INT;
**** area for br.index
shared Dir:BOOL;
shared Rback:INT;
**** area for equivalence check of rep.

Features
if p2/=0 then setG[sPtr].func:=REP_OP::setRC;
loop rn::=Relator.ind!;
end;
loop while!((g<=GenMax) and (sg_set[g])); g:=g+1; end;
end;
end;
else setG[sPtr].func:=REP_OP::checkR;
**** un-ori. band
if Dir or (setG[sPtr].func=REP_OP::setF)or
sl:=#(GenMax+1);
cdH1U::=(covDistH1U/=0);
**** invariants
RelSr(inout rn,g3,g0,g1,0);
**** end;
RepCount:=0;
stack.Fetch(setG[sPtr].word[1]);
setG[sPtr].func:=REP_OP::setFY;
****loop if TCode[tStart].gen>maxG then maxG:=TCode[tStart].gen; end; tStart:=tStart+1; until! (VERTEXC::ts.in(TCode[tStart].sep) or VERTEXC::endc.in(TCode[tStart].sep)); end;
setG:=#;
**** setG:=#(GenMax+Relator.size+7);loop i::=setG.ind!; setG[i]:=#; end;
sPtr:=sPtr+1;
end;
**** or VERTEXC::endc.in(TCode[tStart].sep)); end;
when REP_OP::checkR then #OUT+"checkR, r"+setG[i].num.str;
printD_F(i); i:=i+1;
when REP_OP::startOp then #OUT+"start";
printD_F(i:INT)
freq0:=sg_freq[g0]; freq1:=sg_freq[g1]; freq3:=sg_freq[g3];

The Sather Home Page