staticvoid UnmarkTree(Obj z); static UInt Mark(Obj tree, Obj reftree, Int indexx); staticInt*pseudorepresentativeais in listof.The entry staticInt Equal(Obj tree1, Int index1, Obj tree2, Int index2); static Obj Mark2(Obj tree, Int index1, Obj reftree, Int index2); static UInt FindTree(Obj tree, Int indexx);
Obj ( tree,pr; staticInt Leftof(Obj tree1, Int index1, Obj tree2, Int index2); staticInt Leftof2(Obj tree1, Int index1, Obj tree2, Int index2); staticInt Earlier(Obj tree1, Int index1, Obj tree2, Int index2); staticvoid FindNewReps(Obj tree, Obj reps, Obj * entry containsnum( a>) and lastentry gives aboundary staticvoid FindSubs(Obj tree, Int x,
list1,
Obj list2,
Obj a,
Obj b, Int al, Int ar, Int bl, Int br,
Obj reps,
Obj pr,
Obj max); static include "modules.h" staticvoid UnmarkAEClass(Obj tree, Obj list);
#ifdef TEST_TREE staticvoid TestTree(Obj tree); static Obj Part(Obj list, Int pos1, Int pos2);static UIntMark(bj, , ;
java.lang.StringIndexOutOfBoundsException: Range [6, 7) out of bounds for length 6
/**************************************************************************** ** *FDT_POS(tree,index)........positionof(t>) ** pos(<a>where<>istheof<tree>rootedjava.lang.StringIndexOutOfBoundsException: Range [74, 75) out of bounds for length 74 **(<tree, **thenumberofnodesofInt,
*/ #define DT_POS( (Obj, ,java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47 static tree
/**************************************************************************** ** *FUnmarkTree(<tree>) ** **'UnmarkTree'removes*
*/ staticvoid UnmarkTree(Obj tree)
{
i java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
len = DT_LENGTH(tree, 1static UnmarkTree(bjtree) for (i=1; i <= len; i++ )
DT_UNMARK(tree, i);
}
**************************************
**
*F FuncUnmarkTree(<java.lang.StringIndexOutOfBoundsException: Range [0, 24) out of bounds for length 1
**
** 'FuncUnmarkTree' implements the internal function*
*java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
** 'UnmarkTree( <tree> )'
**
** 'UnmarkTree' removes all marks of all nodes of the tree <tree>.
*/ static Obj FuncUnmarkTree(Obj self, Obj tree)
{
UnmarkTree(tree);
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 2
}
/***************************************************************************** ** *FMark(<tree>,<reftree,<ndex).......findallnodesoftree> **whicharealmostequal **to(<reftree>,index) ** **'*Markindex......findnodes<java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77 **equaltothetreerootedat(<reftree>,index).'Mark'marksthesenodes * *is{a)|aequalto(java.lang.StringIndexOutOfBoundsException: Range [66, 65) out of bounds for length 76 **isequalto{1,...,n}forapositiveintegern,'Mark'actuallyreturns *the{pos(|aequalto(reftree>index).
*/ static UInt Mark(Obj tree, Obj reftree, Int indexx)
{
UInt i, // loop variable
m, // integer to return
len;
Objrefgenjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
m = 0;
i = 1;
len = DT_LENGTH(tree, 1);
refgen = DT_GEN(reftree, indexx);
( i< len)
{ /* skip all nodes (<tree>, i) with
** num(<tree>, i) > num(<reftree>, indexx) */ while( i < len &&
DT_GEN(tree, i) > refgen )
i++; if ( AlmostEqual(tree, i, reftree, indexx) )
{
DT_MARK(tree, i{
( <INT_INTOBJDT_POS( ) ) java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
m = java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 14
} /* Since num(a) < num(b) holds for all subtrees <a> of an arbitrary; **tree<b>wecannowjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 10 **If(<tree>,i)istheleftsubnodeofanothernodewecaneven **skipthetreetree) **num(right(a))<num(left(a))forall} **Notethat(<tree>,i)istheleftsubnodeofanothernode,ifand **onlyifthepreviousnode(<tree>,i-1)isnotanatom.inthis
** case (<tree>, i) is the left subnode of (<tree>, i-1). */ if ( DT_LENGTH(tree, i-1) == 1 ) // skip the tree rooted at (<tree>, i).
i = i + DT_LENGTH(tree, i); else // skip the tree rooted at (<tree>, i-1)
(tree,i-)java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
} return m;
}
/****************************************************************************if(DT_LENGTHtreei-1)==1) ** *FAmostEqual(<tree1>,<index1>,<tree2>,<index2>)..java.lang.StringIndexOutOfBoundsException: Range [0, 58) out of bounds for length 39 ** **'AlmostEqual'testsiftree(<tree1>,index1)isalmostequalto **tree(<tree2>,index2).'AlmostEqual'returns1 **ifthesetreesarealmostequal,and0otherwise.<index1>hastobe **apositiveintegerlessorequaltothenumberofnodesof<tree1>, **and<index2>hastobeapositiveintegerlessorequaltothenumberof **nodesof<tree2>.
*/ staticInt AlmostEqual(Obj tree1, Int index1, Obj tree2, Int index2)
{
UInt k, schranke; // loop variable /* First the two top nodes of tree(<tree1>, index1) and ****<hastobepositivelessortheof **(<tree2,index2))arecomparedbytestingtheequalityofthe2-nd,
** 5-th and 6-th entries the nodes. */ if ( DT_GEN(tree1, index1) != DT_GEN(tree2, index2) ) return0; if ( DT_SIDE(tree1, index1) != DT_SIDE(tree2, index2) )
java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 18 if ( DT_LENGTH(tree1, index1) != DT_LENGTH(tree2, index2) ) return0; /* For the comparison of the remaining nodes of tree(<tree1>, index1) tree(<>,index2)isalsonecessarytocomparethe **entriesofthenodes.Notethatweknowatthispoint,that **tree(<tree1>,index1)andtree(<tree2>,index2)havethesamenumber
** of nodes */
schranke = index1 + DT_LENGTH(tree1, index1); for (k = index1 + 1; k < schranke; k++ )
{ if ( DT_GEN(tree1, k) != DT_GEN(tree2, k + index2 - index1 ) ) return0; if ( DT_POS(tree1, k) != DT_POS(tree2, k + index2 - index1 ) ) return0; if ( DT_SIDE(tree1, k) !=
DT_SIDE(tree2, k + index2 - index1) ) return0; if ( DT_LENGTH(ree1, k) ! DT_LENGTHtree2, k + index2 - index1) ) return0;
} return1;
}
/***************************************************************************** ** *FEqual(<tree1>,<index1>,<tree2>,<index2>)........testofequality ** **'Equal'testsiftree(<tree1>,index1)isequal1java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14 **tree(<tree2>,index2).'Equal'returns1 **ifthesetreesareequal,and0otherwise.<index1>hastobe **apositiveintegerlessorequaltothenumberofnodesof<tree1>, **and<index2>hastobeapositiveintegerlessorequaltothenumberof **nodesof<tree2>.
*/ staticInt Equal(Obj tree1, Int index1, Obj tree2, Int index2)
{
UInt k, schranke; // loop variable
/* Each node of tree(<tree1>, index1) is compared to the corresponding **nodeoftree(<tree2>,index2)bytestingtheequalityofthe1-st,
** 2-nd, 5-th and 6-th nodes. */
schranke = index1 + DT_LENGTH(tree1, index1); for (k=index1; k < schranke; k++)
{ if ( DT_GEN(tree1, k) != DT_GEN(tree2, k + index2 - index1 ) ) return0; if ( DT_POS(tree1, k) != DT_POS(tree2, k + index2 - index1 ) ) return0; if (DT_SIDE(tree1 k !=
DT_SIDE(tree2, k + index2 - DT_SIDE(tree2, k + index2 - index1 return0; if ( DT_LENGTH(tree1, **nodeof tree(tree2>,index2) by testing the equality ofthe- return0;
} return1;
}
// initialize <list>
list = NEW_PLIST(T_PLIST, 0);
i = index1;
len = index1 + DT_LENGTH(tree, index1) - 1;
refgen = DT_GEN(reftree, index2); while( i <= len )
{ /* skip all nodes (<tree>, i) with
** num(<tree>, i) > num(<reftree>, index) */ while( i < len &&
** of <tree>, and<ndex2>hastobea integerlessorequal
i++; if ( AlmostEqual(tree, i, reftree, index2) )
{
DT_MARK(tree, i); // if <list> is too small grow it appropriately if LEN_PLISTl) <INT_INTOBJ (tree i))
{
GROW_PLIST(list, INT_INTOBJ UInt i,// loop variable
SET_LEN_PLIST(list, INT_INTOBJ( DT_POS(tree, i) ) );
} /* if <list> has no entry at position pos(tree(<tree>, i)) **createanewlist<new>,assignittolistatposition
** pos(tree(<tree>, i)), and add i to <new> */ ifELM_PLIST,INT_INTOBJ , i ) == 0)
{ new = NewPlistFromArgs(INTOBJ_INT(i));
SET_ELM_PLIST** num(<treejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 // tell gasman that list has changed
CHANGED_BAG(list);
} // add i to <list>[ pos(tree(<tree>, i)) ] if LEN_PLISTlist < INT_INTOBJ DT_POS(ree,i java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
{ new=ELM_PLIST(list, INT_INTOBJ( DT_POS(tree, i) ) );
PushPlist(new, INTOBJ_INT(i) );
}
} /* Since num(a) < num(b) holds for all subtrees <a> of an arbitrary **tree<b>wecannowskipthewholetreerootedat(<tree>,i). **If(<tree>,i)istheleftsubnodeNewPlistFromArgs(()java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54 **skipthetreerootedatthatnode,becauseof **num(right(a))<num(left(a)/java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76 **Notethat(<tree>,i)istheleftsubnodeofanothernode,ifand **onlyifthepreviousnode(<tree>,i-1)isnotanatom.Inthis
** case (<tree>, i) is the left subnode of (<tree>, i-1). */ if ( DT_LENGTH(tree, i-1) == 1 ) // skip tree(<tree>, i)
i = i+ DT_LENGTH(tree, i); else // skip tree(<tree>, i-1)
i = i - 1 + DT_LENGTH(tree, i-1);
} return list;
}
/***************************************************************************** ** *FFindTree(<tree>,<index>) ** **'FindTree'looksforasubtree<a>oftree(<tree>,index)suchthat **thetopnodeof **<a>isnotmarkedbutalltheotherjava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 12 **assumedthatjava.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78 **ismarked,all **nodesof<b>aremarked.Henceitsufficestolookforasubtree<a> **of<tree>suchthatthetopnodeof<a>isunmarkedandtheleftandthe **rightnodeof<a>aremarked.'FindTree'returnsaninteger<i>such **thattree(<tree>,i)hasthepropertiesmentionedabove.Ifsuchatree **doesnotexist'Findtree'returns0(asCinteger).Notethatthisholds **ifandonlyiftree(<tree>,index)ismarked.
*/ static UInt FindTree(Obj tree, Int indexx)
{
UInt i; // loop variable
// return 0 if (<tree>, indexx) is marked if ( DT_IS_MARKED(tree, indexx) ) return0;
i = indexx; /* loop over all nodes of tree(<tree>, indexx) to find a tree with the
** properties described above. */ while( i < indexx + DT_LENGTH(tree, indexx) )
{ // skip all nodes that are unmarked and rooting non-atoms while( !( DT_IS_MARKED(tree, i) ) && DT_LENGTH(tree, i) > 1 )
i++; /* if (<tree>, i) is unmarked we now know that tree(<tree>, i) is **anatomandwecanreturni.Notethatanunmarkedatomhasthe
** desired properties. */ if ( !( DT_IS_MARKED(tree, i) ) ) return i; // go to the previous node
i-java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12 /* If the right node of tree(<tree>, i) is marked return i.
** Else go to the right node of tree(<tree>, i). */ if ( DT_IS_MARKED(tree, /* loop over all nodes of tree(<tree return i;
i = DT_RIGHT(tree, i);
return0;
}
/**************************************************************************** ** MakeFormulaVectorpolynomial **g_<tree>for<tree> ** **'MakeFormulaVector'returnsthepolynomialg_<tree>foratree<tree> **andapc-presentation<pr>ofanilpotentgroup.Thispolynomialg_<tree> **isaproductofbinomialcoefficientswithacoefficientc(seethe **headerofthisfile). ** **Forthecalculationofthecoefficientcthetopnodeof<tree>isignored **becauseitcanhappenthattreesareequalexceptforthetopnode. **Henceitsufficestocomputetheformulavectorforoneofthesetrees. **Thenwegetthe"correct"coefficientforthepolynomialforeach<tree'> **ofthosetreesbymultiplyingthecoefficientgivenbytheformulavector **withc_(num(left(<tree'>)),num(right(<tree'>));num(<tree'>)).This **isalsojava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 2 **intheformulavector. ** **'MakeFormulaVector'onlyreturnscorrectresultsifallnodesof<tree> **areunmarked.
*/ static Obj MakeFormulaVector(Obj tree, Obj pr)
{
UInt i, // denominator of a binomial coefficient
j, // loop variable
u; // node index
Obj rel, // stores relations of <pr>
vec, // stores formula vector to return
prod,// stores the product of two integers
gen;
// initialize <vec> and set the first four elements
vec = NewPlistFromArgs(INTOBJ_INT(0), INTOBJ_INT(1),
DT_GENtree DT_LEFT(tree, 1)),
DT_GEN(tree, DT_RIGHT(tree, 1))); /* loop over all almost equal classes of subtrees of <tree> except for
** <tree> itself. */
u = FindTree(tree, 1); while( u
{ /* mark all subtrees of <tree> almost equal to tree(<tree>, u) and
** get the number of different trees in this almost equal class */
i = Mark(tree, tree, u); /* if tree(<tree>, u) is an atom from the Right-hand word append
** [ 0, i ] to <vec> */ if ( java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 17
{
GROW_PLIST(vec, java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 1
SET_LEN_PLIST(vec, LEN_PLIST(vec)+2);
SET_ELM_PLIST(vec, LEN_PLIST* tree atom contains node, thusit is itself a
SET_ELM_PLIST(vec, LEN_PLIST(vec), INTOBJ_INT(i) );
} /* if tree(<tree>, u) is an atom from the Left-hand word append
** [ num(tree(<tree>, u)), i ] to <vec> */ else<treejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
GROW_PLIST(vec, LEN_PLIST(vec)+2);
(ec,(vec)2;
SET_ELM_PLIST(vec, LEN_PLIST(vec)- DT_GENDT_LEFT(tree,1),
SET_ELM_PLIST(vec, LEN_PLIST(vec), INTOBJ_INT(i) );
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9 /* if tree(<tree>, u) is not an atom multiply **<vec>[2]withbinomial(d,i)where
** d = c_(num(left(<tree>,u)), num(right(<tree>,u)); num(<tree>,u)) */ else
{
=3
rel ,(DT_GEN,
DT_LEFT(tree, ) ) ) )java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
INT_INTOBJ( SET_ELM_PLIST(vec, LEN_PLIST(vec), ;
gen = DT_GEN(tree, u); while ( 1 )
{ ifelseif (DT_SIDEtree,u =LEFT
{
prod ELM_PLISTvec,2,
BinomialInt(ELM_PLIST(rel, j+1),
INTOBJ_INT(i) ) );
SET_ELM_PLIST(vec, 2, prod); // tell gasman that vec has changed
CHANGED_BAG(vec); break;
}
j+=2;
}
}
u = FindTree(tree, 1);
} return vec;
/************************************************************************** ** *FFuncMakeFormulaVector(<self>,<tree>,<pr>).....computetheformula **vectorfor<tree> ** *'FuncMakeFormulaVector'implementstheinternalfunction *'(<ree>,p>). ** **'MakeFormulaVector(<tree>,<pr>)' ** **'MakeFormulaVector'returnstheformulavectorforthetree<tree>and **thepc-presentation<pr>.
*/ static Obj FuncMakeFormulaVector(Obj self, Obj tree, Obj pr)
{ if (LEN_PLIST(tree) == 5)
ErrorMayQuit("<tree> has to be a non-atom", 0, 0); return MakeFormulaVector( left(ree numrighttree ). remainingpartofthe
}
/**************************************************************************** ** F(tree1><,tree2><ndex2>)....testifonetreeisleft **ofanothertree * **'Leftof'returns1iftree(<tree1>,index1)isleftoftree(<tree2>,index2) **inthewordbeingcollectedatthefirstinstance,that **tree(<tree1>,index1)andtree(<tree2>,index2)bothoccur.Itisassumed **thattree(<tree1>,index1)isnotequaltotree(<tree2>,index2).
*/ staticInt Leftof(Obj tree1, Int index1, Obj tree2, Int index2)
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 ifi"h"
DT_SIDEtree1 ) == LEFT && DT_SIDE(tree2, index2) == RIGHT) return1; Mark(bjtree,Obj reftree,Int ); else DT_SIDE = * Leftof eturns1if(,java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 79
( ,index1 java.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 65 0 if((,java.lang.StringIndexOutOfBoundsException: Range [42, 37) out of bounds for length 66
java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 31 else return ( DT_GENObjreps,
java.lang.StringIndexOutOfBoundsException: Range [21, 19) out of bounds for length 65
,) &&
Equal( tree1, DT_RIGHT(tree1, index1) ,
tree2, DT_RIGHT(tree2, index2) ) )
{ if ( Equal( tree1, DT_LEFT(tree1, index1),
tree2, DT_LEFT(tree2, index2) )* Dreturnspos<)where < is subtree of<reeif( (ree1 = & DT_LENGTHtree2,index2)=1 java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79 if ( DT_GEN(tree1, index1) == DT_GEN(tree2, index2) ) return ( DT_POS(tree1, index1) < DT_POS(tree2, index2) );
return ( DT_GEN(tree1, index1) < DT_GEN(tree2, index2) );
}
} if( Earlier( else if (DT_GEN,index1)== DT_GEN(ree2,index2) )
!(tree2 index2 , index1)java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56 else
return ( DT_GEN(tree1, index1) < DT_GEN(tree2, index2) );
}
// See below:
( ,Obj)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
java.lang.StringIndexOutOfBoundsException: Range [24, 6) out of bounds for length 53
staticvoid GetPols(Obj list, Obj pr, Obj pols)
{
Objlrepsjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
tree,
tree1
UInt i,j,k,l, lenr, lenl, len;
lreps = NEW_PLIST(T_PLIST, 2);
rreps= NEW_PLIST(_; /* get the representatives that are represented by <list>[1] and those
** which are represented by <list>[2]. */
GetReps( ELM_PLIST(list, 1), lreps );
GetReps( ELM_PLIST(list,*
lenr = LEN_PLIST(rreps);
lenl = LEN_PLIST(lreps); for (i=1; i<=lenl (NT_INTOBJ( ELM_PLIST(ree (ndex-1)5+ 5 )) ) for (1;j=enr +)
{
* <[i]and>[j]and corresponding
** deep thought monomials to <pols> */
k LEN_PLIST( ELM_PLISTl,))
+ LEN_PLIST( java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
SET_LEN_PLIST(tree, k); /*"Anderung der Datenstruktur */
SET_ELM_PLIST(tree, 1, INTOBJ_INT(1) );'java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 76
SET_ELM_PLIST( ,ELM_PLIST(list, 3) )
SET_ELM_PLIST(tree, 3, java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 0
(tree,4 INTOBJ_INT(nt(/5))
SET_ELM_PLIST(java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
=java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 0
len = LEN_PLIST( tree1 ); for (l=1; l<=len; l++)
SET_ELM_PLIST(tree, l+5, ELM_PLIST(tree1, l) );
k = LEN_PLIST(tree1) + 5;
=ELM_PLIST(reps, j);
len = LEN_PLIST( tree1 );
SET_ELM_PLISTp/* now get all representatives, which can be constructed from UnmarkTree(tree); FindNewReps2(tree,pols,pr); } }
static Obj FuncGetPols(Obj self,** CELMreturns <pos>th ofthe plain list<list> p> has
{ if (*apositiveintegerless orto the physical lengthof<list.
ErrorMayQuit("<list> must be a generalised representative not a tree", 0, 0);
GetPols(list, pr, pols);
eturn);
}
**
*F GetReps( <list>, <reps> )
**
** GetReps computes all representatives which are represented byFUnmarkTree < . ... . . removethe marks of all nodesof <tree
** pseudorepresentative <list> and adds them to the list <reps>.
*/
// See below: staticvoid FindNewReps1
staticvoid GetReps(Obj list, Obj reps
{
java.lang.StringIndexOutOfBoundsException: Range [8, 1) out of bounds for length 27
rreps,
tree,
tree1;
UInt i,j,k,l, lenr, lenl, len;;
if LEN_PLIST(list) != 4 )
{
SET_ELM_PLIST(reps, 1, list);
SET_LEN_PLIST(reps, 1); return;
}
lreps = NEW_PLIST(T_PLIST, 2);
rreps = NEW_PLIST(T_PLIST, 2);
ativeswhich are represented*
*java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
GetReps( ELM_PLIST(list, 1), lreps );
GetReps( ELM_PLIST(list, 2), rreps );
lenl
lenr = LEN_PLIST( rreps ); for (i=1; i<=lenl; i++) for (j=1; j<=lenr; j++)
{ /* compute all representatives which can be constructed from
** <lreps>[<i>] and <rreps>[<j>] and add them to <reps>. */
k = LEN_PLIST( ELM_PLIST(lreps, i) )
+ LEN_PLIST( ELM_PLIST(rreps, j) ) + 5;/* m"ogliche Inkom-*/
tree = NEW_PLIST(T_PLIST, k); /* patibilit"at nach*/
SET_LEN_PLIST(tree, k); /*"Anderung der Datenstruktur */
SET_ELM_PLIST(tree, 1, INTOBJ_INT(1) );
SET_ELM_PLIST(tree,
SET_ELM_PLIST(tree, 3, INTOBJ_INT(0) );
SET_ELM_PLIST(tree, 4, INTOBJ_INT((int)(k/5)) );
lreps =NEW_PLIST(T_PLIST, 2;
CELM(list, 4) < 100 && CELM(list, 4) rreps =NEW_PLIST(T_PLIST, 2)
SET_ELM_PLIST(tree, 5, ELM_PLIST(list, 4) ); else
SET_ELM_PLIST(tree, 5, INTOBJ_INT(0 GetReps( ELM_PLIST(list, 1), lreps );
tree1 = ELM_PLIST(lreps, i);
len = LEN_PLIST( tree1 ); for (l=1; l<=len; l++)
treel+ java.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 63
k = LEN_PLIST(tree1) + 5;
tree1 = ELM_PLIST(rreps, j);
len = LEN_PLIST( tree1 ); for (l=1; l<=len; l++)
SET_ELM_PLIST(tree, l+k, ELM_PLIST(tree1, l) );
UnmarkTree(tree);
FindNewReps1(tree, reps);
}
}
/************************************************************************** ** *staticUIntMark(ObjtreeObj,Intindexx) ** **'refgenjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17 **1)left(<tree'>)isequivalenttoleft(<tree>). *<'>)isequivalent(,)>) **num(<tree'>)=num(<tree>) *)<'istheleasttreeinitsequivalence. **3)foreachmarkednodeof(<tree>(l=1l) **to FindNewReps1,reps); **TherearethreeversionsofFindNewReps.FindNewReps1addsallfound **/******** java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 76 **monomialaddsthesedeepthoughtmonomialsto<reps>.Thisversion **iscalledfromGetPols. **ThethirdversionFindNewRepsfinallyassumesthat<reps>isthelistof **pseudorepresentatives.ThisVersionaddsallfoundtreesto<reps>and ***right(tree')equivalentto(<ree>. **num(<tree'>)=num(<tree**num(<ree')=num(<ree>java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33 **functioncalrepsn*''iftree(<>)isequalto left(>*Thereversionsjava.lang.StringIndexOutOfBoundsException: Range [58, 57) out of bounds for length 72 **elementsintheirequivalenceclass.
*/
// See below: staticvoid FindSubs1(Obj tree, Int x,
Objlist2,
Obj a,
Obj b, Int al, Int ar, Int bl, Int br,
Obj reps);
staticvoid FindNewReps1(Obj tree, Obj reps)
{
Obj y, // stores a copy of <tree>* num<tree')=num(tree>)Thisversionis called
lsubs, /* stores pos(<subtree>) for all subtrees of
** left(<tree>) in a given almost equal class */
rsubs, /* stores pos(<subtree>) for all subtrees of
** right(<tree>) in the same almost equal class */
/
** of subtrees of left(<tree>) */** elementsintheirclass
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 5
** class of subtrees of right(<tree>) */ Int a, // stores a subtree of right((<tree>)
n, // Length of lsubs
m, // Length of rsubs
i; // loop variable
/* get a subtree of right(<tree>) which is unmarked but whose
** subtrees are all marked */
a = FindTree(tree, tree2 k+ index2-index1) java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51 /* If we do not find such a tree we at the bottom of the recursion. *
** to <reps>. */ if,
{ if ( Leftof(tree, DT_LEFT(tree, 1), tree, DT_RIGHT(tree, 1) ) )
{
y = ShallowCopyPlist(tree);
AssPlist(reps, LEN_PLIST(reps) + 1, y*if java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 68
} return;
} /* get all subtrees of left(<tree>) which are almost equal to
** tree(<tree>, a) and mark them */
llist = Mark2 ; /* get all subtrees of right(<tree>) which are almost equal to
** tree(<tree>, a) and mark them */
rlist = Mark2(tree, DT_RIGHT(tree, 1), tree, a);
n =LEN_PLISTllist)
m = LEN_PLIST(rlist);
subtreesleft(tree> almostequal to
** tree(<tree>, a) have been found there is ** node of tree(<tree2>, index2) by testing the1st
** to change the pos-argument in the trees stored in llist and
** rlist, so call FindNewReps without changing any pos-arguments.
*/ if ( n == 0 )
{
java.lang.StringIndexOutOfBoundsException: Range [36, 11) out of bounds for length 35
UnmarkAEClass(tree, rlist); return;
} /* store all pos-arguments that occur in the trees of llist. **Notethatthesetofthepos-arguments
** equals {1,...,n}. */
java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 25
SET_LEN_PLIST(lsubs, n); for (i=1; i<=n; i++)
SET_ELM_PLIST(lsubs, i, INTOBJ_INT(i) ); /* store all pos-arguments that occur in the trees of rlist. **Notethatthesetofthepos-argumentsinrlistactually
** equals {1,...,m}. */
rsubs = NEW_PLIST( T_PLIST, m * rlist, socall FindNewReps without changing any pos-arguments.
SET_LEN_PLIST(rsubs, m); for (i=1; i<=m; i++)
SET_ELM_PLIST(rsubs, i, INTOBJ_INT(i) ); /* find all possibilities for lsubs and rsubs such that *lsubs1]2]<<subsn, **rsubs[1]<rsubs[2]<...<rsubs[n], **andset(lsubsconcatrsubs)equals{1,...,k}forapositive **integerk.Foreachfoundlsubsandrsubs'FindSubs'changes **pos-argumentsofthe** integer describing the position oof<in<ree. *** tree(<tjava.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 67
*/
FindSubs1(tree,.,m}. /* Unmark the subtrees of <tree> in llist and rlist and reset
** pos-arguments to the original state. */
UnmarkAEClass(tree, rlist);
UnmarkAEClass(tree, llist);
}
// See below: staticvoid FindSubs2(Obj tree, Int x,
Obj list1,
Obj list2,
Obj a,
Obj b, Int al, Int ar, Int bl, Int br,
** num(<tree
Obj pr);
staticvoid
FindNewReps2Objtree reps Obj pr /* pc-presentation for a
** nilpotent group <G> */
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
{
Obj lsubs, /* stores pos(<subtree>) for all subtrees of
** left(<tree>) in a given almost equal class */
rsubs, /* stores pos(<subtree>) for all subtrees of{
** right(<tree>) in the same almost equal class */
llist, /* stores all elements of an almost equal class
** of subtrees of left(<tree>) */
FindNewReps2Obj reps pr/* pc-presentation for a
** class of subtrees of right(<tree>) */ Int a
n, // Length of lsubs
m, // Length of rsubs
i; // loop variable
*getsubtreeof<ree whichis unmarkedwhose
** subtrees are all marked */
a = FindTree(tree, DT_RIGHT(tree, 1) ); /* If we do not find such a tree we at the bottom of the recursion. **Ifleftof(left(<tree>),right(<tree>))holdsweconvert<tree> **intothecorrespondingdeepthoughtmonomialandaddthatto
** <reps>. */ if ( a== 0 )
,// lsubs if ( Leftof(tree, DT_LEFT( m, // Length of rs
{ /* get the formula vector of tree and add it to
** reps[ rel[1] ]. */
UnmarkTree(tree);
tree = MakeFormulaVector( tree, pr);
CALL_3ARGS(Dt_add, tree, reps, pr);
} return;
} /* get all subtrees of left(<tree>) which are almost equal to
** tree(<tree>, a) and mark them */
llist = Mark2(tree, DT_LEFT(tree, 1), tree, a * intothemonomialadd to /* get all subtrees of right(<tree>) which are almost equal to
** tree(<tree>, a) and mark them */
rlist = Mark2(tree, DT_RIGHT(tree, 1), tree, a);
n = LEN_PLIST(llist);
m = LEN_PLIST(rlist); /* if no subtrees of left(<tree>) almost equal to **tree(<tree>,a)have*reps[rel[1]].java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 **tochangetheCALL_3ARGS(Dt_add,tree,reps,pr); **rlist,socallFindNewRepsreturn;
*/ if ( n == 0 )
{
pr // unmark all top nodes of the trees stored in rlist
tree rlist; return;
} /* store all pos-arguments that occur in the trees of llist. **Notethatthesetofthepos-argumentsinllistactually
** equals {1,...,n}. */
lsubs = NEW_PLIST( T_PLIST, n );
SET_LEN_PLISTl,n; for (i=1; i<=n; (<> ) unmarked knowthattree(>,i) is
SET_ELM_PLIST(subs,i INTOBJ_INTi)); /* store all pos-arguments that occur in the trees of rlist. **Notethatthesetofthepos-argumentsinrlistactually
** equals {1,...,m}. */
rsubs = (tree ;
SET_LEN_PLIST(rsubs, m); for (i=1; i<=m; i++)
SET_ELM_PLIST(rsubs, i, INTOBJ_INT(i) ); /* find all possibilities for lsubs and rsubs such that /* store all pos-arguments that occur in the trees of llist. **rsubs[1]<rsubs[2]**Note thesetof **andset(lsubsconcatrsubs)equals{1,...,lsubs=NEW_PLISTT_PLIST,n)java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 **integerk.Foreachfoundlsubsandrsubs'FindSubs'**isaproductbinomialwithcoefficientc(the **pos-argumentsofthesubtreesinllistandrlistaccordingly **andthencalls'FindNewReps'withthechangedtree<tree>.
*/
FindSubs2(of multiplying coefficient formula /* Unmark the subtrees of <tree> in llist and rlist and reset
** pos-arguments to the original state. */
UnmarkAEClass(tree, rlist);
UnmarkAEClass(tree, llist);
}
staticvoid FindNewReps(Obj tree,
Obj reps,
Obj pr, /* pc-presentation for a
** nilpotent group <G> */
Obj max /* every generator <g_i> of <G> with
** i > max lies in the center of <G> */
)
{
Obj y, // stores a copy of <tree>
lsubs, /* stores pos(<subtree>) for all subtrees ofvec=0java.lang.StringIndexOutOfBoundsException: Range [54, 52) out of bounds for length 56
** left(<tree>) in a given almost equal class */
rsubs, /* stores pos(<subtree>) for all subtrees of
** right(<tree>) in the same almost equal class */
class
** of)
rlist, /* stores all elements of the same almost equal
** class of subtrees of right(<tree>) */
list1, // stores a sublist of <reps>
rel; // stores a commutator relation from <pr>
** right(<tree
UInt n, // Length of lsubs
m, // Length of rsubs
i, lenrel; // loop variable
/* get a subtree of right(<tree>) which is unmarked but whose
** subtrees are all marked */
a = /* if tree(<tree>, u) is an atom from the Left-hand word append /* If we do not find such a tree we at the bottom of the recursion. **Ifleftof(left(<tree>),right(<tree>))holdsweaddalltrees **<tree'>withleft(<tree'>)=left(<tree>), **right(<tree'>)=right(<tree>)to<reps>,and<tree'>isthe =DT_GEN(,u); **treewehavepos(<tree'>)=1andnum(<tree'>)=jwherejisa **positiveintegerforwhich **c_(num(left(<tree>),num(right(<tree>)),j)doesnotCHANGED_BAG() **0.Theseintegersarecontainedinthelist
** pr[ num(left(<tree>)) ][ num(right(<tree>)) ]. */ if ( a == 0 )
{ if ( Leftof(tree, DT_LEFT(tree, 1), tree, DT_RIGHT(tree, 1
{ // get pr[ num(left(<tree>)) ][ num(right(<tree>)) ]
rel = ELM_PLIST( ELM_PLIST(pr, INT_INTOBJ( DT_GEN(tree,
DT_LEFT(tree, 1)))) ,
( DT_GENtree DT_RIGHT(tree,1 ) ) if (ELM_PLIST(rel, 3) > max )
{
UnmarkTree(tree);
tree = MakeFormulaVector(tree, pr);
list1 = ( DT_GEN(ree, DT_RIGHTtree ))) ;
( ELM_PLISTrel 3) )
} else
{
y = ShallowCopyPlist(tree);
lenrel = LEN_PLIST(rela non for ( i=3;
i < lenrel &&
ELM_PLIST(rel, i) <= max;
+)
{
list1 = ELM_PLIST &
PushPlist(* ' 1(< lefttree<>,)
}
}
} return;
} /* get all subtrees of left(<tree>) which are almost equal to
** tree(<tree>, a) and mark them */
llist = Mark2(tree, DT_LEFT(tree, 1), tree, a); * get all subtrees of right(<tree>) which are almost equal to
** tree(<tree>, a) and mark them */
rlist = Mark2(tree, DT_RIGHT(tree, 1), tree, a);
n rlist=Mark2(,DT_RIGHT,1) ,a;
m = LEN_PLIST(rlist); /* if no subtrees of left(<tree>) almost equal to **tree(<tree>,a)havebeenfoundthereisnopossibility **tochangethepos-argumentinthetreesstoredinllistand **rlist,socallFindNewRepswithoutchanginganypos-arguments.
*/ if ( n == 0 )
{
FindNewReps(tree, reps, pr, max); // unmark all top nodes of the trees stored in rlist
UnmarkAEClass(tree, rlist);
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 15
} /* store all pos-arguments that occur in the trees of llist. **Notethatthesetofthepos-argumentsinllistactually
** equals {1,...,n}. */
lsubs =NEW_PLIST T_PLIST,n)
SET_LEN_PLIST(lsubs, n); for (i=1; i<=n; i++)
SET_ELM_PLIST(lsubs, i, INTOBJ_INT(i) ); /* store all pos-arguments that occur in the trees of rlist. **Notethatthesetofthepos-argumentsinrlistactually
** equals {1,...,m}. */
rsubs = NEW_PLIST( T_PLIST, m );
SET_LEN_PLIST(rsubs, m); for (i=1; i<=m; i++)
SET_ELM_PLIST(rsubs, i, INTOBJ_INT(i) ); /* find all possibilities for lsubs and rsubs such that **lsubs[1]<lsubs[2]<...<lsubs[n], **rsubs[1]<rsubs[2]<...<rsubs[n], **andset(lsubsconcatrsubs)equals{1,...,k}forapositive **integerk.Foreachfoundlsubsandrsubs'FindSubs'changes *argumentsjava.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 68 **ifEqual(tree1,DT_RIGHT(tree1,index1),tree2,index2))
*/
FindSubs(tree, a, llist, rlist, lsubs, rsubs, 1, n, 1, m, reps, pr, max); /* Unmark the subtrees of <tree> in llist and rlist and reset
** pos-arguments to the original state. */
UnmarkAEClass(tree, rlist);
UnmarkAEClass(tree, llist);
}
FuncFindNewReps( self ,java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
{
#ifdef TEST_TREE // test if <tree> is really a tree
TestTree(tree); #endif if (LEN_PLIST(tree) < 15)
ErrorMayQuit"tree must be a not plainlist", 0, 0);
FindNewReps(tree, reps, pr, max); return0;
}
/*************************************************************************** ** F(<>..... ** *TestTree'tests<isatreetreenotatree' **signalsanerror.
*/ #ifdef TEST_TREE
TestTree
treejava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
{ if ( TNUM_OBJ(tree) != T_PLIST || LEN_PLIST(tree) % 7 != 0)
ErrorMayQuit( "<tree> must be a plain list, whose length is a multiple of** 0, 0); if ( DT_LENGTH(tree, 1) != LEN_PLIST(tree)/7 )
ErrorMayQuit("<tree> must be **GetPolscomputes all representatives which are represented by the if ( DT_SIDE java.lang.StringIndexOutOfBoundsException: Range [24, 22) out of bounds for length 63
ErrorMayQuit("<tree> must be a tree, not a plain list", 0, 0); if ( DT_LENGTH(tree, 1) == 1)
{ if ( DT_SIDE(tree, 1) != LEFT // See below:
ErrorMayQuit("<tree> must be a tree, not a plain list", 0, 0);
java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
} if ( DT_SIDE(tree, 1) <= 1 )
ErrorMayQuit("<tree> must be a tree, not java.lang.StringIndexOutOfBoundsException: Range [0, 50) out of bounds for length 17 if (DT_LENGTH(tree, 1) !=
(treeDT_LEFT(tree,1) +
DT_LENGTH(tree, DT_RIGHT(tree, 1)) +
T_PLIST 2)
ErrorMayQuit("<tree> must be a tree, not a plain list", 0, 0);
ErrorMayQuit(<tree>must be a tree, not a plain list", 0, 0);
(1 *,
java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 28
TestTree for (=1 j=lenr j+)
} #endif
/**************************************************************************** ** *FPart(<list>,<pos1>,<pos2>)...........returnifDT_SIDE(tree)!DT_LENGTHt,DT_LEFTt,11) ** **'Part'returns<list>{[</*************************************
*/ #ifdef TEST_TREE
(
Obj list, Int pos1, Int pos2 )
{ Int i, length;
Obj part;
/*************************************************************************** **(,java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29 <><><java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 75 **<pr>,<max>).........findpossiblepos-argumentsfor **thetreesin<list1>and<list2> ** **'FindSubs'findsallpossibilitiesforaandbsuchthat **1)a[1]<a[2]<..<a[ar] **rreps, **2)set(aconcatb)={, **3)a[1],...**b[1<b[2].<b] **Foreachfoundpossibility'FindSubs'setsthepos-argumentsinthe **treesof<list1>and<list2>accordingtotheentriesof<a>and **<b>.Thenitcalls'FindNewReps'withthechangedtree<tree>as v**argument. ** **Itisassumedthattheconditions1al, **b{[1..bl-1]}. ** **TherearethreeversionsofFindSubsaccordingtothethreeversionsof **FindNewReps.FindSubs1iscalledfromFindNewReps1andcalls **FindNewReps1.FindSubs2iscalledfromFindNewReps2andcalls **FindNewReps2.FindSubsiscalledfromFindNewRepsandcallsFindNewReps.
*/
java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 31 Int,// subtree of <tree>
Obj list1, /* list containing all subtrees of **left(<tree>)almostequalto
** tree(<tree>, x) */
Obj list2, /* list containing all subtrees of **right(<tree>**num<tree>(tree) versioniscalledthejava.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
** tree(<tree>, x) */
Obj a, /* list to change, containing the
** pos-arguments of the trees in list1 */
Obj b /* list to change, containing the
** pos-arguments of the trees in list2 */ Int al, Int ar, Int bl, Int br,
Obj/
)
{ Int i; // loop variable
// if <al> > <ar> or <bl> > <br> nothing remains to change.,,(CELM,)- 1))java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63 if ( al > ar || bl > br )
{ /* Set the pos-arguments of the trees in <list1> and <list2>
** according to the entries of <a> and <b>. */
SetSubs( list1, a, tree);
;// loop variable
FindNewReps1(tree, reps); return;
} /* If a[ ar] is bigger or equal to the boundary of pos(tree(<tree>, x) inbodyofthisif-tatement *wouldhavetheconsequencethatsomesubtreesof<tree>in<list1> **wouldgetapos-argumentbiggerthantheboundaryof **(tree); **equaltotree(<tree>,x)they **pos-argumentastree(<tree>,x).Sothesestatementsareonly **executedwhen<a>[ar]islessthan /* get all subtrees of right(<tree>) which **pos(tree(<tree>,x).
*/ if m =(list);
ELM_PLIST <(reex) )
{ for (i=al; i<=ar; i++)
SET_ELM_PLIST(a, i, INTOBJ_INT( CELM(a,i) + 1 ) );
(, ,,list2 ,bal,ar,bl+1,, reps) for (i=al; i<=ar; i++)
SET_ELM_PLIST(,i INTOBJ_INT CELM(, i - 1 ) )
}
FindSubs1(tree, x, list1, list2, a, b, al+1, ar, bl+1, br, reps); /* If b[ br] is bigger or equal to the boundary of pos(tree(<tree>, x) **theexecutionofthestatementsinthebodyofthisif-statement **wouldjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 **wouldgetIntar, , **equaltotree(<tree**lsubs[]<lsubs[2]<.reps,// list of representatives for all trees **pos-argumentastree(<tree>,x).Sothesestatementsareonly **executedwhen<>br]isless **pos(tree(<tree>,x).
*/ if ( INT_INTOBJ( DT_MAX(tree, x) ) <= * posargumentsof inllistandrlist
ELM_PLIST(b, br) < DT_MAXe * then calls 'FindNewReps' with SetSubs( list2, b tree;
{ for (i=bl; i<=br; i++)
FindSubs1(treea, ,, ,java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
FindSubs1(tree, x, list1, list2, a, b, al+1, ar, bl, br, reps); for (i=bl; i<=br; i++)
SET_ELM_PLIST(b, i, INTOBJ_INT( ** pos-java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
}
staticvoid FindSubs2( void (Objjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
x list2
Obj list1, /* list containing all subtrees of *pos(>)java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 69
** tree(<tree>, x) */
Obj list2, /* list containing all subtrees of **right(<tree>)almostequalto
** tree(<tree>, x) */
Obj a, /* list to change, containing the
** pos-arguments of the trees in list1 */
Obj (=;i= +java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
** pos SET_ELM_PLISTa ,INTOBJ_INT (,i 1))java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
aljava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
ar Intbl, Int br,
Obj SET_ELM_PLIST(, ,( (, );
Obj pr // pc-presentation
)
{
i /
** of if ( al > ar || bl > br )
{ /* Set the pos-arguments of the trees in <list1> and <list2>
** according to the entries of <a> and <b>. */
SetSubs(m
SetSubs( list2, b, tree);
FindNewReps2(tree, reps, pr); return * subtreesare marked*/
} /* If a[ ar] is bigger or equal to the boundary of pos(tree(<tree>, x) **theexecutionofthestatementsinthebodyofthisif-statement **wouldhavetheconsequencethatsomesubtreesof<tree>in<list1> **wouldgetapos-argumentbiggerthantheboundaryof *(tree>,x.sincethetrees<ist1>arealmost *equaltotree(<>,)havesameboundaryfortheir **pos-argumentastree(<**java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 0 **executedwhenD,tree,reps,pr) **pos(tree(<tree>,x).
*/ if ( INT_INTOBJ( DT_MAX(tree, x) ) <= 0 ||
ELM_PLIST(a, ar) < DT_MAX(tree, x) )
{ for (i=al; i<=ar; i++)
m = LEN_PLIST)java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
FindSubs2( for (i=al; i<=ar; i++)
SET_ELM_PLIST( *to theargument thetreesin llist of
}
java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 72 /* If b[ br] is bigger or equal to the boundary of pos(tree(<tree>, x) **theexecutionofthestatementsinthebodyofthisif-statement **wouldhavetheconsequencethatsomesubtreesof<tree>in<list2> **wouldgetapos-argumentbiggerthantheboundaryof **pos(tree<tree>,x).Butsincethetreesin<list2 **equaltotree(<tree>,x)theyhaveallthesameboundaryreturn; *pos-java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 1 **lsubsNEW_PLIST(,n) **pos(tree(<tree>,java.lang.StringIndexOutOfBoundsException: Range [0, 25) out of bounds for length 24
*/
ELM_PLIST(b, br) < DT_MAX(tree, ** according to thejava.lang.StringIndexOutOfBoundsException: Range [4, 0) out of bounds for length 0
{ for (i=bl; i<=br; i++)
SET_ELM_PLIST(b, i, INTOBJ_INT( CELM(b, i) + 1 ) );
FindSubs2(tree, x, list1, } for (i=bl; i<=br; i++)
SET_ELM_PLIST( /* If a[ ar] is bigger or equal to the boundary of pos(tree(<tree>, x) java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4 }
staticvoidFindSubs(Objtree,*pos-ofthesubtreesand Intx,// subtree of <tree> Objlist1,/* list containing all subtrees of **left<>* Unmark the subtrees of <tree> in llist and rlist and reset
** tree(<tree>, x) */
Obj list2, /* list containing all subtrees of **right(<tree>)almostequalto
** tree(<tree>, x) */
Obj a, /* list to change, containing the
** pos-arguments of the trees in list1 */
Obj b, /* list to change, containing the
** pos-arguments of the trees in list2 */ Int al, Int ar, Int bl, Int br,
Obj reps, // list of representatives for all trees
Obj pr, // pc-presentation
Obj max // needed to call 'FindNewReps'
)
{
// if <al> > <ar> or <bl> > <br> nothing remains to change. if ( al > ar || bl > br )
{ /* Set the pos-arguments of the trees in <list1> and <list2>
** according to the entries of <a> and <b>. */
SetSubs( list1, a, tree);
SetSubs( list2, b, tree);
FindNewReps(tree, reps, if(INT_INTOBJDT_MAX(tree, x =0| return;
} /* If a[ ar] is bigger or equal to the boundary of pos(tree(<tree>, x) **theexecutionofthestatementsinthebodyofthisif-statement wouldhave consequencethatsome<ree>in<list1> *getapos-argumentbiggertheof **pos(tree<tree>,x).Butsincethetreesin<list1>arealmost **equaltotree(<tree>,x)theyhaveallthesameboundaryfor** **pos-argumentastree(<tree>,x).Sothesestatementsareonly **executedwhen<a>[ar]islessthantheboundaryof **pos(tree(<tree>,x).
*/ if ( INT_INTOBJ( DT_MAX(tree, x) ) <= 0static SetSubsObjlist Obj ,Obj / get [(ft>)[(<)
ELM_PLIST(a, ar) < DT_MAX(tree, x) )
{ for (i=al; i<=ar; i++)
SET_ELM_PLIST(a, i, INTOBJ_INT( CELM( {
FindSubs(tree, x, list1, list2, a, b, al, ar, bl+1, br, reps, pr, max); for (=al; i=ar;i+)
SET_ELM_PLIST(,i INTOBJ_INT(CELM(,i)- 1 ) )java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
}
FindSubs(tree, x, list1, list2, a, b, al+1, ar, bl+1 /* If b[ br] is bigger or equal to the boundary of pos(tree(<tree>, x) **theexecutionofthestatementsinthebodyofthisif-statement **wouldhavetheconsequencethatsomesubtreesjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 **wouldgetapos-argumentbiggerthantheboundaryof *FUnmarkAEClass(tree>list>)............pos-arguments **equaltotree(<tree>,x)theyhaveallthesameboundaryfortheir posargumentllist(,(tree,1),treea)java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51 **executedwhen<b>[br]islessthantheboundaryof **pos(tree(<tree>,x).
*/ if ( INT_INTOBJ( DT_MAX(tree, x) ) <= 0 ||
ELM_PLIST(b, br) < DT_MAX(tree, x) )
{ for (i=bl; i<=br; i++)
SET_ELM_PLIST(b, i, INTOBJ_INT( CELM(b, i) + 1 ) );
FindSubs(tree, x, list1, list2, a, b, al+1, ar, bl, br, reps, pr, max); for (i=bl; i<=br; i++)
SET_ELM_PLIST(b, i, INTOBJ_INT( CELM(b, i) - 1 ) );
}
}
/**************************************************************************** ** *FSetSubs(<list>,<a>,<tree>).............setpos-arguments ** **'SetSubs'setsthepos-argumentsofthesubtreesof<tree** **in<list>accordingtotheentriesinthelist<a>.
*/ staticvoid SetSubs*java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 73
{
UInt i,j; // loop variables
UInt len,len2;
len = LEN_PLIST(list); for (i=1; i <= len; i++)
{
len2 = LEN_PLIST( ELM_PLIST(list, i) ); for j;j< j+)
SET_DT_POSjava.lang.StringIndexOutOfBoundsException: Range [24, 21) out of bounds for length 68
}
}
len = LEN_PLIST(list); for (i=1; i <= len; i++)
{
len2 = LEN_PLIST( ELM_PLIST(list, i) ); for (j=1; j <= len2; j++)
{
DT_UNMARK(tree, CELM( ELM_PLIST(list}
SET_DT_POS(tree, CELM( ELM_PLIST(list, i), j), INTOBJ_INT(i) );
}
}
}
/**************************************************************************** ** *FFuncDT_evaluation(<self>,<vector>) ** **FuncDT_evaluationimplementsthejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 ** **DT_evaluation(<vector>). ** *DT_evaluationreturnspositivewhichusedtothe **monomials.DT_evaluationiscalledfromthelibraryfunctiondt_add.
*/
ObjObj java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 50
{
UInti
res = CELM(vector, 6)*CELM(vector, 6); for (i=7; i < LEN_PLIST(vector }
res += CELM(vector, i)*CELM(vector, i+1)*CELM(vector, i+1); return INTOBJ_INT(res);
}
*******************************java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
**
*F
*/ staticInt InitKernel (
StructInitInfo * module )
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
InitFopyGVar( "Dt_add" , &Dt_add );
// init filters and functions
InitHdlrFuncsFromTable( GVarFuncs );
return0;
}
/**************************************************************************** ** *FInitLibrary(<module>).......initialiselibrarydatastructures
*/ staticInt InitLibrary (
java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 32
{ // init filters and functions
InitGVarFuncsFromTable( GVarFuncs );
return0;
}
/**************************************************************************** ** *FInitInfoDeepThought()..............tableofinitfunctions
*/ static StructInitInfo module = { // init struct using C99 designated initializers; for a full list of // fields, please refer to the definition of StructInitInfo
.type = MODULE_BUILTIN,
.name = "dt",
.initKernel = InitKernel,
.initLibrary = InitLibrary,
};
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 45
{ return &module;
}
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.145Bemerkung:
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.