:Begin: :Function: mpgrowth :Pattern: MPG0[totsteps_Integer, maxsize_Integer, init_List, outflag_Integer, retain_Integer, rules_List] :Arguments: {totsteps, maxsize, init, outflag, retain, rules} :ArgumentTypes: {Integer, Integer, IntegerList, Integer, Integer, Manual} :ReturnType: Manual :End: :Evaluate: XMWTotalList[{rule_List, init_String}, totsteps_Integer, retain_Integer:0, maxsize_Integer:1000] := MPG0[totsteps, maxsize, ToCharacterCode[init]-65, 0, retain, rule /. x_String :> ToCharacterCode[x]-65] :Evaluate: XMWEvolveList[rule_List, init_String, totsteps_Integer, retain_Integer:0, maxsize_Integer:1000] := Map[FromCharacterCode[#+65]&, Union /@ MPG0[totsteps, maxsize, ToCharacterCode[init]-65, 1, retain, rule /. x_String :> ToCharacterCode[x]-65], {2}] :Evaluate: XMWEvolveList::usage="This works just like MWEvolveList except you specify just one initial string instead of a set of initial strings. I'm not sure if the Union is needed, or whether it's already done in the C code. It seems to run more than twice as slowly as MWEvolveList." :Begin: :Function: mpsearch :Pattern: MPSearch[maxlen_Integer, totrules_Integer, tot_Integer, init_List, retain_Integer:0, vecret_:{1,0,0,0,0,0,0,0}] :Arguments: {tot, totrules, maxlen, init, retain, vecret} :ArgumentTypes: {Integer, Integer, Integer, IntegerList, Integer, IntegerList} :ReturnType: Manual :End: :Evaluate: MPGrowth[rules_List, init_List, totsteps_Integer, retain_Integer:0, maxsize_Integer:1000] := MPG0[totsteps, maxsize, init, 0, retain, rules] :Evaluate: MPSequences[rules_List, init_List, totsteps_Integer, retain_Integer:0, maxsize_Integer:1000] := Sort /@ MPG0[totsteps, maxsize, init, 1, retain, rules] :Begin: :Function: mwbits :Pattern: MWBitsX[numlevels_Integer, outflag_Integer, maxlen_Integer, data_List] :Arguments: {numlevels, outflag, maxlen, data} :ArgumentTypes: {Integer, Integer, Integer, Manual} :ReturnType: Manual :End: