Skip to content

Commit

Permalink
Make SplitMerge with a timsort improvement. 1.5% faster with mincer.
Browse files Browse the repository at this point in the history
  • Loading branch information
vermaseren committed May 14, 2018
1 parent cc3cbd0 commit f1b83ae
Show file tree
Hide file tree
Showing 2 changed files with 145 additions and 61 deletions.
15 changes: 11 additions & 4 deletions sources/declare.h
Original file line number Diff line number Diff line change
Expand Up @@ -526,6 +526,13 @@ extern WORD DoDelta(WORD *);
extern WORD DoDelta3(PHEAD WORD *,WORD);
extern WORD TestPartitions(WORD *, PARTI *);
extern WORD DoPartitions(PHEAD WORD *,WORD);
extern int CoCanonicalize(UBYTE *);
extern int DoCanonicalize(PHEAD WORD *, WORD *);
extern WORD GenTopologies(PHEAD WORD *,WORD);
extern WORD GenDiagrams(PHEAD WORD *,WORD);
extern int DoTopologyCanonicalize(PHEAD WORD *,WORD,WORD,WORD *);
extern int DoShattering(PHEAD WORD *,WORD *,WORD *,WORD);
extern WORD GenerateTopologies(PHEAD WORD,WORD,WORD,WORD);
extern WORD DoTableExpansion(WORD *,WORD);
extern WORD DoDistrib(PHEAD WORD *,WORD);
extern WORD DoShuffle(PHEAD WORD *,WORD,WORD,WORD);
Expand Down Expand Up @@ -668,11 +675,7 @@ extern WORD Sflush(FILEHANDLE *);
extern WORD Simplify(PHEAD UWORD *,WORD *,UWORD *,WORD *);
extern WORD SortWild(WORD *,WORD);
extern FILE *LocateBase(char **,char **);
#ifdef NEWSPLITMERGE
extern LONG SplitMerge(PHEAD WORD **,LONG);
#else
extern VOID SplitMerge(PHEAD WORD **,LONG);
#endif
extern WORD StoreTerm(PHEAD WORD *);
extern VOID SubPLon(UWORD *,WORD,UWORD *,WORD,UWORD *,WORD *);
extern VOID Substitute(PHEAD WORD *,WORD *,WORD);
Expand Down Expand Up @@ -759,6 +762,8 @@ extern VOID Terminate(int);
extern NAMENODE *GetNode(NAMETREE *,UBYTE *);
extern int AddName(NAMETREE *,UBYTE *,WORD,WORD,int *);
extern int GetName(NAMETREE *,UBYTE *,WORD *,int);
extern UBYTE *GetFunction(UBYTE *,WORD *);
extern UBYTE *GetNumber(UBYTE *,WORD *);
extern int GetLastExprName(UBYTE *,WORD *);
extern int GetAutoName(UBYTE *,WORD *);
extern int GetVar(UBYTE *,WORD *,WORD *,int,int);
Expand Down Expand Up @@ -831,6 +836,7 @@ extern int StrCmp(UBYTE *,UBYTE *);
extern int StrICmp(UBYTE *,UBYTE *);
extern int StrHICmp(UBYTE *,UBYTE *);
extern int StrICont(UBYTE *,UBYTE *);
extern int CmpArray(WORD *,WORD *,WORD);
extern int ConWord(UBYTE *,UBYTE *);
extern int StrLen(UBYTE *);
extern UBYTE *GetPreVar(UBYTE *,int);
Expand Down Expand Up @@ -1195,6 +1201,7 @@ extern int AssignDollar(PHEAD WORD *,WORD);
extern UBYTE *WriteDollarToBuffer(WORD,WORD);
extern UBYTE *WriteDollarFactorToBuffer(WORD,WORD,WORD);
extern void AddToDollarBuffer(UBYTE *);
extern int PutTermInDollar(WORD *,WORD);
extern void TermAssign(WORD *);
extern void WildDollars(PHEAD WORD *);
extern LONG numcommute(WORD *,LONG *);
Expand Down
Loading

0 comments on commit f1b83ae

Please sign in to comment.