FORM v5.0.0-35-g6318119
Macros | Typedefs | Functions
declare.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define MaX(x, y)   ((x) > (y) ? (x): (y))
 
#define MiN(x, y)   ((x) < (y) ? (x): (y))
 
#define ABS(x)   ( (x) < 0 ? -(x): (x) )
 
#define SGN(x)   ( (x) > 0 ? 1 : (x) < 0 ? -1 : 0 )
 
#define REDLENG(x)   ((((x)<0)?((x)+1):((x)-1))/2)
 
#define INCLENG(x)   (((x)<0)?(((x)*2)-1):(((x)*2)+1))
 
#define GETCOEF(x, y)   x += *x;y = x[-1];x -= ABS(y);y=REDLENG(y)
 
#define GETSTOP(x, y)   y=x+(*x)-1;y -= ABS(*y)-1
 
#define StuffAdd(x, y)   (((x)<0?-1:1)*(y)+((y)<0?-1:1)*(x))
 
#define EXCHN(t1, t2, n)   { WORD a,i; for(i=0;i<n;i++){a=t1[i];t1[i]=t2[i];t2[i]=a;} }
 
#define EXCH(x, y)   { WORD a = (x); (x) = (y); (y) = a; }
 
#define TOKENTOLINE(x, y)
 
#define UngetFromStream(stream, c)   ((stream)->nextchar[(stream)->isnextchar++]=c)
 
#define AddLineFeed(s, n)   { (s)[(n)++] = LINEFEED; }
 
#define TryRecover(x)   Terminate(-1)
 
#define UngetChar(c)   { pushbackchar = c; }
 
#define ParseNumber(x, s)   {(x)=0;while(*(s)>='0'&&*(s)<='9')(x)=10*(x)+*(s)++ -'0';}
 
#define ParseSign(sgn, s)
 
#define ParseSignedNumber(x, s)
 
#define NCOPY(s, t, n)   { while ( (n)-- > 0 ) { *s++ = *t++; } }
 
#define NCOPYI(s, t, n)   { while ( (n)-- > 0 ) { *s++ = *t++; } }
 
#define NCOPYB(s, t, n)   { while ( (n)-- > 0 ) { *s++ = *t++; } }
 
#define NCOPYI32(s, t, n)   { while ( (n)-- > 0 ) { *s++ = *t++; } }
 
#define WCOPY(s, t, n)   { int nn=n; WORD *ss=(WORD *)s, *tt=(WORD *)t; while ( (nn)-- > 0 ) { *ss++ = *tt++; } }
 
#define NeedNumber(x, s, err)
 
#define SKIPBLANKS(s)   { while ( *(s) == ' ' || *(s) == '\t' ) (s)++; }
 
#define FLUSHCONSOLE   if ( AP.InOutBuf > 0 ) CharOut(LINEFEED)
 
#define SKIPBRA1(s)
 
#define SKIPBRA2(s)
 
#define SKIPBRA3(s)
 
#define SKIPBRA4(s)
 
#define SKIPBRA5(s)
 
#define CYCLE1(t, a, i)   {t iX=*a; WORD jX; for(jX=1;jX<i;jX++)a[jX-1]=a[jX]; a[i-1]=iX;}
 
#define AddToCB(c, wx)
 
#define EXCHINOUT
 
#define BACKINOUT
 
#define CopyArg(to, from)
 
#define FILLARG(w)
 
#define COPYARG(w, t)
 
#define ZEROARG(w)
 
#define FILLFUN(w)
 
#define COPYFUN(w, t)
 
#define COPYFUN3(w, t)
 
#define FILLFUN3(w)
 
#define FILLSUB(w)
 
#define COPYSUB(w, ww)
 
#define FILLEXPR(w)
 
#define NEXTARG(x)   if(*x>0) x += *x; else if(*x <= -FUNCTION)x++; else x += 2;
 
#define COPY1ARG(s1, t1)
 
#define ZeroFillRange(w, begin, end)
 
#define TABLESIZE(a, b)   (((WORD)sizeof(a))/((WORD)sizeof(b)))
 
#define WORDDIF(x, y)   (WORD)(x-y)
 
#define wsizeof(a)   ((WORD)sizeof(a))
 
#define VARNAME(type, num)   (AC.varnames->namebuffer+type[num].name)
 
#define DOLLARNAME(type, num)   (AC.dollarnames->namebuffer+type[num].name)
 
#define EXPRNAME(num)   (AC.exprnames->namebuffer+Expressions[num].name)
 
#define PREV(x)   prevorder?prevorder:x
 
#define Terminate(x)   do { TerminateImpl(x, __FILE__, __LINE__, __FUNCTION__); } while(0)
 
#define SETERROR(x)   { Terminate(-1); return(-1); }
 
#define DUMMYUSE(x)   (void)(x);
 
#define ADDPOS(pp, x)   (pp).p1 = ((pp).p1+(LONG)(x))
 
#define SETBASELENGTH(ss, x)   (ss).p1 = (LONG)(x)
 
#define SETBASEPOSITION(pp, x)   (pp).p1 = (LONG)(x)
 
#define ISEQUALPOSINC(pp1, pp2, x)   ( (pp1).p1 == ((pp2).p1+(LONG)(x)) )
 
#define ISGEPOSINC(pp1, pp2, x)   ( (pp1).p1 >= ((pp2).p1+(LONG)(x)) )
 
#define DIVPOS(pp, n)   ( (pp).p1/(LONG)(n) )
 
#define MULPOS(pp, n)   (pp).p1 *= (LONG)(n)
 
#define DIFPOS(ss, pp1, pp2)   (ss).p1 = ((pp1).p1-(pp2).p1)
 
#define DIFBASE(pp1, pp2)   ((pp1).p1-(pp2).p1)
 
#define ADD2POS(pp1, pp2)   (pp1).p1 += (pp2).p1
 
#define PUTZERO(pp)   (pp).p1 = 0
 
#define BASEPOSITION(pp)   ((pp).p1)
 
#define SETSTARTPOS(pp)   (pp).p1 = -2
 
#define NOTSTARTPOS(pp)   ( (pp).p1 > -2 )
 
#define ISMINPOS(pp)   ( (pp).p1 == -1 )
 
#define ISEQUALPOS(pp1, pp2)   ( (pp1).p1 == (pp2).p1 )
 
#define ISNOTEQUALPOS(pp1, pp2)   ( (pp1).p1 != (pp2).p1 )
 
#define ISLESSPOS(pp1, pp2)   ( (pp1).p1 < (pp2).p1 )
 
#define ISGEPOS(pp1, pp2)   ( (pp1).p1 >= (pp2).p1 )
 
#define ISNOTZEROPOS(pp)   ( (pp).p1 != 0 )
 
#define ISZEROPOS(pp)   ( (pp).p1 == 0 )
 
#define ISPOSPOS(pp)   ( (pp).p1 > 0 )
 
#define ISNEGPOS(pp)   ( (pp).p1 < 0 )
 
#define TOLONG(x)   ((LONG)(x))
 
#define Add2Com(x)   { WORD cod[2]; cod[0] = x; cod[1] = 2; AddNtoL(2,cod); }
 
#define Add3Com(x1, x2)   { WORD cod[3]; cod[0] = x1; cod[1] = 3; cod[2] = x2; AddNtoL(3,cod); }
 
#define Add4Com(x1, x2, x3)
 
#define Add5Com(x1, x2, x3, x4)
 
#define WantAddPointers(x)
 
#define WantAddLongs(x)
 
#define WantAddPositions(x)
 
#define FORM_INLINE   inline
 
#define MEMORYMACROS
 
#define TermMalloc(x)   ( (AT.TermMemTop <= 0 ) ? TermMallocAddMemory(BHEAD0), AT.TermMemHeap[--AT.TermMemTop]: AT.TermMemHeap[--AT.TermMemTop] )
 
#define NumberMalloc(x)   ( (AT.NumberMemTop <= 0 ) ? NumberMallocAddMemory(BHEAD0), AT.NumberMemHeap[--AT.NumberMemTop]: AT.NumberMemHeap[--AT.NumberMemTop] )
 
#define CacheNumberMalloc(x)   ( (AT.CacheNumberMemTop <= 0 ) ? CacheNumberMallocAddMemory(BHEAD0), AT.CacheNumberMemHeap[--AT.CacheNumberMemTop]: AT.CacheNumberMemHeap[--AT.CacheNumberMemTop] )
 
#define TermFree(TermMem, x)   AT.TermMemHeap[AT.TermMemTop++] = (WORD *)(TermMem)
 
#define NumberFree(NumberMem, x)   AT.NumberMemHeap[AT.NumberMemTop++] = (UWORD *)(NumberMem)
 
#define CacheNumberFree(NumberMem, x)   AT.CacheNumberMemHeap[AT.CacheNumberMemTop++] = (UWORD *)(NumberMem)
 
#define NestingChecksum()   (AC.IfLevel + AC.RepLevel + AC.arglevel + AC.insidelevel + AC.termlevel + AC.inexprlevel + AC.dolooplevel +AC.SwitchLevel)
 
#define MesNesting()   MesPrint("&Illegal nesting of if, repeat, argument, inside, term, inexpression and do")
 
#define MarkPolyRatFunDirty(T)
 
#define PUSHPREASSIGNLEVEL
 
#define POPPREASSIGNLEVEL
 
#define EXTERNLOCK(x)
 
#define INILOCK(x)
 
#define LOCK(x)
 
#define UNLOCK(x)
 
#define EXTERNRWLOCK(x)
 
#define INIRWLOCK(x)
 
#define RWLOCKR(x)
 
#define RWLOCKW(x)
 
#define UNRWLOCK(x)
 
#define MLOCK(x)
 
#define MUNLOCK(x)
 
#define GETIDENTITY
 
#define GETBIDENTITY
 
#define M_alloc(x)   malloc((size_t)(x))
 
#define CompareTerms   ((COMPARE)AR.CompareRoutine)
 
#define FiniShuffle   AN.SHvar.finishuf
 
#define DoShtuffle   ((DO_UFFLE)AN.SHvar.do_uffle)
 

Typedefs

typedef int(* WRITEBUFTOEXTCHANNEL) (char *, size_t)
 
typedef int(* GETCFROMEXTCHANNEL) (void)
 
typedef int(* SETTERMINATORFOREXTERNALCHANNEL) (char *)
 
typedef int(* SETKILLMODEFOREXTERNALCHANNEL) (int, int)
 
typedef LONG(* WRITEFILE) (int, UBYTE *, LONG)
 
typedef WORD(* GETTERM) (PHEAD WORD *)
 

Functions

void TELLFILE (int, POSITION *)
 
void StartVariables (void)
 
void setSignalHandlers (void)
 
UBYTE * CodeToLine (WORD, UBYTE *)
 
UBYTE * AddArrayIndex (WORD, UBYTE *)
 
INDEXENTRYFindInIndex (WORD, FILEDATA *, WORD, WORD)
 
INDEXENTRYNextFileIndex (POSITION *)
 
WORD * PasteTerm (PHEAD WORD, WORD *, WORD *, WORD, WORD)
 
UBYTE * StrCopy (UBYTE *, UBYTE *)
 
UBYTE * WrtPower (UBYTE *, WORD)
 
int AccumGCD (PHEAD UWORD *, WORD *, UWORD *, WORD)
 
void AddArgs (PHEAD WORD *, WORD *, WORD *)
 
int AddCoef (PHEAD WORD **, WORD **)
 
int AddLong (UWORD *, WORD, UWORD *, WORD, UWORD *, WORD *)
 
int AddPLon (UWORD *, WORD, UWORD *, WORD, UWORD *, WORD *)
 
int AddPoly (PHEAD WORD **, WORD **)
 
int AddRat (PHEAD UWORD *, WORD, UWORD *, WORD, UWORD *, WORD *)
 
void AddToLine (UBYTE *)
 
int AddWild (PHEAD WORD, WORD, WORD)
 
int BigLong (UWORD *, WORD, UWORD *, WORD)
 
int BinomGen (PHEAD WORD *, WORD, WORD **, WORD, WORD, WORD, WORD, WORD, UWORD *, WORD)
 
int CheckWild (PHEAD WORD, WORD, WORD, WORD *)
 
int Chisholm (PHEAD WORD *, WORD)
 
int CleanExpr (WORD)
 
void CleanUp (WORD)
 
void ClearWild (PHEAD0)
 
int CompareFunctions (WORD *, WORD *)
 
int Commute (WORD *, WORD *)
 
WORD DetCommu (WORD *)
 
WORD DoesCommu (WORD *)
 
int CompArg (WORD *, WORD *)
 
WORD CompCoef (WORD *, WORD *)
 
int CompGroup (PHEAD WORD, WORD **, WORD *, WORD *, WORD)
 
WORD Compare1 (PHEAD WORD *, WORD *, WORD)
 
WORD CountDo (WORD *, WORD *)
 
WORD CountFun (WORD *, WORD *)
 
WORD DimensionSubterm (WORD *)
 
WORD DimensionTerm (WORD *)
 
WORD DimensionExpression (PHEAD WORD *)
 
int Deferred (PHEAD WORD *, WORD)
 
int DeleteStore (WORD)
 
WORD DetCurDum (PHEAD WORD *)
 
void DetVars (WORD *, WORD)
 
int Distribute (DISTRIBUTE *, WORD)
 
int DivLong (UWORD *, WORD, UWORD *, WORD, UWORD *, WORD *, UWORD *, WORD *)
 
int DivRat (PHEAD UWORD *, WORD, UWORD *, WORD, UWORD *, WORD *)
 
int Divvy (PHEAD UWORD *, WORD *, UWORD *, WORD)
 
int DoDelta (WORD *)
 
int DoDelta3 (PHEAD WORD *, WORD)
 
int TestPartitions (WORD *, PARTI *)
 
int DoPartitions (PHEAD WORD *, WORD)
 
int CoCanonicalize (UBYTE *)
 
int DoCanonicalize (PHEAD WORD *, WORD *)
 
int GenDiagrams (PHEAD WORD *, WORD)
 
int DoTopologyCanonicalize (PHEAD WORD *, WORD, WORD, WORD *)
 
int DoShattering (PHEAD WORD *, WORD *, WORD *, WORD)
 
int DoTableExpansion (WORD *, WORD)
 
int DoDistrib (PHEAD WORD *, WORD)
 
int DoShuffle (WORD *, WORD, WORD, WORD)
 
int DoPermutations (PHEAD WORD *, WORD)
 
int Shuffle (WORD *, WORD *, WORD *)
 
int FinishShuffle (WORD *)
 
int DoStuffle (WORD *, WORD, WORD, WORD)
 
int Stuffle (WORD *, WORD *, WORD *)
 
int FinishStuffle (WORD *)
 
WORD * StuffRootAdd (WORD *, WORD *, WORD *)
 
int TestUse (WORD *, WORD)
 
DBASEFindTB (UBYTE *)
 
int CheckTableDeclarations (DBASE *)
 
void Apply (WORD *, WORD)
 
int ApplyExec (WORD *, int, WORD)
 
void ApplyReset (WORD)
 
void TableReset (void)
 
void ReWorkT (WORD *, WORD *, WORD)
 
WORD GetIfDollarNum (WORD *, WORD *)
 
int FindVar (WORD *, WORD *)
 
int DoIfStatement (PHEAD WORD *, WORD *)
 
int DoOnePow (PHEAD WORD *, WORD, WORD, WORD *, WORD *, WORD, WORD *)
 
void DoRevert (WORD *, WORD *)
 
int DoSumF1 (PHEAD WORD *, WORD *, WORD, WORD)
 
int DoSumF2 (PHEAD WORD *, WORD *, WORD, WORD)
 
int DoTheta (PHEAD WORD *)
 
LONG EndSort (PHEAD WORD *, int)
 
int EntVar (WORD, UBYTE *, WORD, WORD, WORD, WORD)
 
int EpfCon (PHEAD WORD *, WORD *, WORD, WORD)
 
int EpfFind (PHEAD WORD *, WORD *)
 
WORD EpfGen (WORD, WORD *, WORD *, WORD *, WORD)
 
int EqualArg (WORD *, WORD, WORD)
 
int Factorial (PHEAD WORD, UWORD *, WORD *)
 
int Bernoulli (WORD, UWORD *, WORD *)
 
int FactorIn (PHEAD WORD *, WORD)
 
int FactorInExpr (PHEAD WORD *, WORD)
 
int FindAll (PHEAD WORD *, WORD *, WORD, WORD *)
 
WORD FindMulti (PHEAD WORD *, WORD *)
 
int FindOnce (PHEAD WORD *, WORD *)
 
int FindOnly (PHEAD WORD *, WORD *)
 
int FindRest (PHEAD WORD *, WORD *)
 
void FindSpecial (WORD *)
 
WORD FindrNumber (WORD, VARRENUM *)
 
void FiniLine (void)
 
int FiniTerm (PHEAD WORD *, WORD *, WORD *, WORD, WORD)
 
int FlushOut (POSITION *, FILEHANDLE *, int)
 
void FunLevel (PHEAD WORD *)
 
void AdjustRenumScratch (PHEAD0)
 
void GarbHand (void)
 
int GcdLong (PHEAD UWORD *, WORD, UWORD *, WORD, UWORD *, WORD *)
 
int LcmLong (PHEAD UWORD *, WORD, UWORD *, WORD, UWORD *, WORD *)
 
void GCD (UWORD *, WORD, UWORD *, WORD, UWORD *, WORD *)
 
ULONG GCD2 (ULONG, ULONG)
 
int Generator (PHEAD WORD *, WORD)
 
int GetBinom (UWORD *, WORD *, WORD, WORD)
 
WORD GetFromStore (WORD *, POSITION *, RENUMBER, WORD *, WORD)
 
int GetLong (UBYTE *, UWORD *, WORD *)
 
WORD GetMoreTerms (WORD *)
 
int GetMoreFromMem (WORD *, WORD **)
 
WORD GetOneTerm (PHEAD WORD *, FILEHANDLE *, POSITION *, int)
 
RENUMBER GetTable (WORD, POSITION *, WORD)
 
WORD GetTerm (PHEAD WORD *)
 
int Glue (PHEAD WORD *, WORD *, WORD *, WORD)
 
int InFunction (PHEAD WORD *, WORD *)
 
void IniLine (WORD)
 
void IniVars (void)
 
int InsertTerm (PHEAD WORD *, WORD, WORD, WORD *, WORD *, WORD)
 
void LongToLine (UWORD *, WORD)
 
int MakeDirty (WORD *, WORD *, WORD)
 
void MarkDirty (WORD *, WORD)
 
void PolyFunDirty (PHEAD WORD *)
 
void PolyFunClean (PHEAD WORD *)
 
int MakeModTable (void)
 
int MatchE (PHEAD WORD *, WORD *, WORD *, WORD)
 
int MatchCy (PHEAD WORD *, WORD *, WORD *, WORD)
 
int FunMatchCy (PHEAD WORD *, WORD *, WORD *, WORD)
 
int FunMatchSy (PHEAD WORD *, WORD *, WORD *, WORD)
 
int MatchArgument (PHEAD WORD *, WORD *)
 
int MatchFunction (PHEAD WORD *, WORD *, WORD *)
 
int MergePatches (WORD)
 
int MesCerr (char *, UBYTE *)
 
int MesComp (char *, UBYTE *, UBYTE *)
 
int Modulus (WORD *)
 
void MoveDummies (PHEAD WORD *, WORD)
 
int MulLong (UWORD *, WORD, UWORD *, WORD, UWORD *, WORD *)
 
int MulRat (PHEAD UWORD *, WORD, UWORD *, WORD, UWORD *, WORD *)
 
int Mully (PHEAD UWORD *, WORD *, UWORD *, WORD)
 
int MultDo (PHEAD WORD *, WORD *)
 
int NewSort (PHEAD0)
 
int ExtraSymbol (WORD, WORD, WORD, WORD *, WORD *)
 
int Normalize (PHEAD WORD *)
 
int BracketNormalize (PHEAD WORD *)
 
void DropCoefficient (PHEAD WORD *)
 
void DropSymbols (PHEAD WORD *)
 
int PutInside (PHEAD WORD *, WORD *)
 
void OpenTemp (void)
 
void Pack (UWORD *, WORD *, UWORD *, WORD)
 
LONG PasteFile (PHEAD WORD, WORD *, POSITION *, WORD **, RENUMBER, WORD *, WORD)
 
int Permute (PERM *, WORD)
 
int PermuteP (PERMP *, WORD)
 
int PolyFunMul (PHEAD WORD *)
 
int PopVariables (void)
 
int PrepPoly (PHEAD WORD *, WORD)
 
int Processor (void)
 
int Product (UWORD *, WORD *, WORD)
 
void PrtLong (UWORD *, WORD, UBYTE *)
 
void PrtTerms (void)
 
void PrintDeprecation (const char *, const char *)
 
void PrintFeatureList (void)
 
void PrintRunningTime (void)
 
LONG GetRunningTime (void)
 
int PutBracket (PHEAD WORD *)
 
LONG PutIn (FILEHANDLE *, POSITION *, WORD *, WORD **, int)
 
int PutInStore (INDEXENTRY *, WORD)
 
WORD PutOut (PHEAD WORD *, POSITION *, FILEHANDLE *, WORD)
 
UWORD Quotient (UWORD *, WORD *, WORD)
 
int RaisPow (PHEAD UWORD *, WORD *, UWORD)
 
void RaisPowCached (PHEAD WORD, WORD, UWORD **, WORD *)
 
WORD RaisPowMod (WORD, WORD, WORD)
 
int NormalModulus (UWORD *, WORD *)
 
int MakeInverses (void)
 
int GetModInverses (WORD, WORD, WORD *, WORD *)
 
int GetLongModInverses (PHEAD UWORD *, WORD, UWORD *, WORD, UWORD *, WORD *, UWORD *, WORD *)
 
void RatToLine (UWORD *, WORD)
 
int RatioFind (PHEAD WORD *, WORD *)
 
int RatioGen (PHEAD WORD *, WORD *, WORD, WORD)
 
WORD ReNumber (PHEAD WORD *)
 
WORD ReadSnum (UBYTE **)
 
WORD Remain10 (UWORD *, WORD *)
 
WORD Remain4 (UWORD *, WORD *)
 
int ResetScratch (void)
 
int ResolveSet (PHEAD WORD *, WORD *, WORD *)
 
int RevertScratch (void)
 
int ScanFunctions (PHEAD WORD *, WORD *, WORD)
 
void SeekScratch (FILEHANDLE *, POSITION *)
 
void SetEndScratch (FILEHANDLE *, POSITION *)
 
void SetEndHScratch (FILEHANDLE *, POSITION *)
 
int SetFileIndex (void)
 
int Sflush (FILEHANDLE *)
 
int Simplify (PHEAD UWORD *, WORD *, UWORD *, WORD *)
 
int SortWild (WORD *, WORD)
 
FILE * LocateBase (char **, char **, char *)
 
LONG SplitMerge (PHEAD WORD **, LONG)
 
int StoreTerm (PHEAD WORD *)
 
void SubPLon (UWORD *, WORD, UWORD *, WORD, UWORD *, WORD *)
 
void Substitute (PHEAD WORD *, WORD *, WORD)
 
int SymFind (PHEAD WORD *, WORD *)
 
int SymGen (PHEAD WORD *, WORD *, WORD, WORD)
 
WORD Symmetrize (PHEAD WORD *, WORD *, WORD, WORD, WORD)
 
int FullSymmetrize (PHEAD WORD *, int)
 
int TakeModulus (UWORD *, WORD *, UWORD *, WORD, WORD)
 
int TakeNormalModulus (UWORD *, WORD *, UWORD *, WORD, WORD)
 
void TalToLine (UWORD)
 
int TenVec (PHEAD WORD *, WORD *, WORD, WORD)
 
int TenVecFind (PHEAD WORD *, WORD *)
 
int TermRenumber (WORD *, RENUMBER, WORD)
 
void TestDrop (void)
 
void PutInVflags (WORD)
 
int TestMatch (PHEAD WORD *, WORD *)
 
WORD TestSub (PHEAD WORD *, WORD)
 
LONG TimeCPU (WORD)
 
LONG TimeChildren (WORD)
 
LONG TimeWallClock (WORD)
 
LONG Timer (int)
 
int GetTimerInfo (LONG **, LONG **)
 
void WriteTimerInfo (LONG *, LONG *)
 
LONG GetWorkerTimes (void)
 
int ToStorage (EXPRESSIONS, POSITION *)
 
void TokenToLine (UBYTE *)
 
int Trace4 (PHEAD WORD *, WORD *, WORD, WORD)
 
int Trace4Gen (PHEAD TRACES *, WORD)
 
int Trace4no (WORD, WORD *, TRACES *)
 
int TraceFind (PHEAD WORD *, WORD *)
 
int TraceN (PHEAD WORD *, WORD *, WORD, WORD)
 
int TraceNgen (PHEAD TRACES *, WORD)
 
WORD TraceNno (WORD, WORD *, TRACES *)
 
int Traces (PHEAD WORD *, WORD *, WORD, WORD)
 
WORD Trick (WORD *, TRACES *)
 
int TryDo (PHEAD WORD *, WORD *, WORD)
 
void UnPack (UWORD *, WORD, WORD *, WORD *)
 
int VarStore (UBYTE *, WORD, WORD, WORD)
 
WORD WildFill (PHEAD WORD *, WORD *, WORD *)
 
int WriteAll (void)
 
int WriteOne (UBYTE *, int, int, WORD)
 
void WriteArgument (WORD *)
 
int WriteExpression (WORD *, LONG)
 
int WriteInnerTerm (WORD *, WORD)
 
void WriteLists (void)
 
void WriteSetup (void)
 
void WriteStats (POSITION *, WORD, WORD)
 
int WriteSubTerm (WORD *, WORD)
 
int WriteTerm (WORD *, WORD *, WORD, WORD, WORD)
 
int execarg (PHEAD WORD *, WORD)
 
int execterm (PHEAD WORD *, WORD)
 
void SpecialCleanup (PHEAD0)
 
void SetMods (void)
 
void UnSetMods (void)
 
int DoExecute (WORD, WORD)
 
void SetScratch (FILEHANDLE *, POSITION *)
 
void Warning (char *)
 
void HighWarning (char *)
 
int SpareTable (TABLES)
 
UBYTE * strDup1 (UBYTE *, char *)
 
void * Malloc1 (LONG, const char *)
 
int DoTail (int, UBYTE **)
 
int OpenInput (void)
 
int PutPreVar (UBYTE *, UBYTE *, UBYTE *, int)
 
void Error0 (char *)
 
void Error1 (char *, UBYTE *)
 
void Error2 (char *, char *, UBYTE *)
 
UBYTE ReadFromStream (STREAM *)
 
UBYTE GetFromStream (STREAM *)
 
UBYTE LookInStream (STREAM *)
 
STREAMOpenStream (UBYTE *, int, int, int)
 
int LocateFile (UBYTE **, int)
 
STREAMCloseStream (STREAM *)
 
void PositionStream (STREAM *, LONG)
 
int ReverseStatements (STREAM *)
 
int ProcessOption (UBYTE *, UBYTE *, int)
 
int DoSetups (void)
 
void TerminateImpl (int, const char *, int, const char *) NORETURN
 
NAMENODEGetNode (NAMETREE *, UBYTE *)
 
int AddName (NAMETREE *, UBYTE *, WORD, WORD, int *)
 
int GetName (NAMETREE *, UBYTE *, WORD *, int)
 
UBYTE * GetFunction (UBYTE *, WORD *)
 
UBYTE * GetNumber (UBYTE *, WORD *)
 
int GetLastExprName (UBYTE *, WORD *)
 
int GetAutoName (UBYTE *, WORD *)
 
int GetVar (UBYTE *, WORD *, WORD *, int, int)
 
int MakeDubious (NAMETREE *, UBYTE *, WORD *)
 
int GetOName (NAMETREE *, UBYTE *, WORD *, int)
 
void DumpTree (NAMETREE *)
 
void DumpNode (NAMETREE *, WORD, WORD)
 
void LinkTree (NAMETREE *, WORD, WORD)
 
void CopyTree (NAMETREE *, NAMETREE *, WORD, WORD)
 
int CompactifyTree (NAMETREE *, WORD)
 
NAMETREEMakeNameTree (void)
 
void FreeNameTree (NAMETREE *)
 
int AddExpression (UBYTE *, int, int)
 
int AddSymbol (UBYTE *, int, int, int, int)
 
int AddDollar (UBYTE *, WORD, WORD *, LONG)
 
int ReplaceDollar (WORD, WORD, WORD *, LONG)
 
int DollarRaiseLow (UBYTE *, LONG)
 
int AddVector (UBYTE *, int, int)
 
int AddDubious (UBYTE *)
 
int AddIndex (UBYTE *, int, int)
 
UBYTE * DoDimension (UBYTE *, int *, int *)
 
int AddFunction (UBYTE *, int, int, int, int, int, int, int)
 
int CoCommuteInSet (UBYTE *)
 
int CoFunction (UBYTE *, int, int)
 
int TestName (UBYTE *)
 
int AddSet (UBYTE *, WORD)
 
int DoElements (UBYTE *, SETS, UBYTE *)
 
int DoTempSet (UBYTE *, UBYTE *)
 
int NameConflict (int, UBYTE *)
 
int OpenFile (char *)
 
int OpenAddFile (char *)
 
int ReOpenFile (char *)
 
int CreateFile (char *)
 
int CreateLogFile (char *)
 
void CloseFile (int)
 
int CopyFile (char *, char *)
 
int CreateHandle (void)
 
LONG ReadFile (int, UBYTE *, LONG)
 
LONG ReadPosFile (PHEAD FILEHANDLE *, UBYTE *, LONG, POSITION *)
 
LONG WriteFileToFile (int, UBYTE *, LONG)
 
void SeekFile (int, POSITION *, int)
 
LONG TellFile (int)
 
void FlushFile (int)
 
int GetPosFile (int, fpos_t *)
 
int SetPosFile (int, fpos_t *)
 
void SynchFile (int)
 
void TruncateFile (int)
 
int GetChannel (char *, int)
 
int GetAppendChannel (char *)
 
int CloseChannel (char *)
 
void inictable (void)
 
KEYWORDfindcommand (UBYTE *)
 
int inicbufs (void)
 
void StartFiles (void)
 
UBYTE * MakeDate (void)
 
void PreProcessor (void)
 
void * FromList (LIST *)
 
void * From0List (LIST *)
 
void * FromVarList (LIST *)
 
int DoubleList (void ***, int *, int, char *)
 
int DoubleLList (void ***, LONG *, int, char *)
 
void DoubleBuffer (void **, void **, int, char *)
 
void ExpandBuffer (void **, LONG *, int)
 
LONG iexp (LONG, int)
 
int IsLikeVector (WORD *)
 
int AreArgsEqual (WORD *, WORD *)
 
int CompareArgs (WORD *, WORD *)
 
UBYTE * SkipField (UBYTE *, int)
 
int StrCmp (UBYTE *, UBYTE *)
 
int StrICmp (UBYTE *, UBYTE *)
 
int StrHICmp (UBYTE *, UBYTE *)
 
int StrICont (UBYTE *, UBYTE *)
 
int CmpArray (WORD *, WORD *, WORD)
 
int ConWord (UBYTE *, UBYTE *)
 
int StrLen (UBYTE *)
 
UBYTE * GetPreVar (UBYTE *, int)
 
void ToGeneral (WORD *, WORD *, WORD)
 
WORD ToPolyFunGeneral (PHEAD WORD *)
 
int ToFast (WORD *, WORD *)
 
SETUPPARAMETERSGetSetupPar (UBYTE *)
 
int RecalcSetups (void)
 
int AllocSetups (void)
 
SORTINGAllocSort (LONG, LONG, LONG, LONG, int, int, LONG, int)
 
void AllocSortFileName (SORTING *)
 
UBYTE * LoadInputFile (UBYTE *, int)
 
UBYTE GetInput (void)
 
void ClearPushback (void)
 
UBYTE GetChar (int)
 
void CharOut (UBYTE)
 
void UnsetAllowDelay (void)
 
void PopPreVars (int)
 
void IniModule (int)
 
void IniSpecialModule (int)
 
int ModuleInstruction (int *, int *)
 
int PreProInstruction (void)
 
int LoadInstruction (int)
 
int LoadStatement (int)
 
KEYWORDFindKeyWord (UBYTE *, KEYWORD *, int)
 
KEYWORDFindInKeyWord (UBYTE *, KEYWORD *, int)
 
int DoDefine (UBYTE *)
 
int DoRedefine (UBYTE *)
 
int TheDefine (UBYTE *, int)
 
int TheUndefine (UBYTE *)
 
int ClearMacro (UBYTE *)
 
int DoUndefine (UBYTE *)
 
int DoInclude (UBYTE *)
 
int DoReverseInclude (UBYTE *)
 
int Include (UBYTE *, int)
 
int DoExternal (UBYTE *)
 
int DoToExternal (UBYTE *)
 
int DoFromExternal (UBYTE *)
 
int DoPrompt (UBYTE *)
 
int DoSetExternal (UBYTE *)
 
int DoSetExternalAttr (UBYTE *)
 
int DoRmExternal (UBYTE *)
 
int DoFactDollar (UBYTE *)
 
WORD GetDollarNumber (UBYTE **, DOLLARS)
 
int DoSetRandom (UBYTE *)
 
int DoOptimize (UBYTE *)
 
int DoClearOptimize (UBYTE *)
 
int DoSkipExtraSymbols (UBYTE *)
 
int DoTimeOutAfter (UBYTE *)
 
int DoMessage (UBYTE *)
 
int DoPreOut (UBYTE *)
 
int DoPreAppend (UBYTE *)
 
int DoPreCreate (UBYTE *)
 
int DoPreAssign (UBYTE *)
 
int DoPreBreak (UBYTE *)
 
int DoPreDefault (UBYTE *)
 
int DoPreSwitch (UBYTE *)
 
int DoPreEndSwitch (UBYTE *)
 
int DoPreCase (UBYTE *)
 
int DoPreShow (UBYTE *)
 
int DoPreExchange (UBYTE *)
 
int DoSystem (UBYTE *)
 
int DoPipe (UBYTE *)
 
void StartPrepro (void)
 
int DoIfdef (UBYTE *, int)
 
int DoIfydef (UBYTE *)
 
int DoIfndef (UBYTE *)
 
int DoElse (UBYTE *)
 
int DoElseif (UBYTE *)
 
int DoEndif (UBYTE *)
 
int DoTerminate (UBYTE *)
 
int DoIf (UBYTE *)
 
int DoCall (UBYTE *)
 
int DoDebug (UBYTE *)
 
int DoContinueDo (UBYTE *)
 
int DoDo (UBYTE *)
 
int DoBreakDo (UBYTE *)
 
int DoEnddo (UBYTE *)
 
int DoEndprocedure (UBYTE *)
 
int DoInside (UBYTE *)
 
int DoEndInside (UBYTE *)
 
int DoProcedure (UBYTE *)
 
int DoPrePrintTimes (UBYTE *)
 
int DoPreWrite (UBYTE *)
 
int DoPreClose (UBYTE *)
 
int DoPreRemove (UBYTE *)
 
int DoPreSortReallocate (UBYTE *)
 
int DoCommentChar (UBYTE *)
 
int DoPrcExtension (UBYTE *)
 
int DoPreReset (UBYTE *)
 
void WriteString (int, UBYTE *, int)
 
void WriteUnfinString (int, UBYTE *, int)
 
UBYTE * AddToString (UBYTE *, UBYTE *, int)
 
UBYTE * PreCalc (void)
 
UBYTE * PreEval (UBYTE *, LONG *)
 
void NumToStr (UBYTE *, LONG)
 
int PreCmp (int, int, UBYTE *, int, int, UBYTE *, int)
 
int PreEq (int, int, UBYTE *, int, int, UBYTE *, int)
 
UBYTE * pParseObject (UBYTE *, int *, LONG *)
 
UBYTE * PreIfEval (UBYTE *, int *)
 
int EvalPreIf (UBYTE *)
 
int PreLoad (PRELOAD *, UBYTE *, UBYTE *, int, char *)
 
int PreSkip (UBYTE *, UBYTE *, int)
 
UBYTE * EndOfToken (UBYTE *)
 
void SetSpecialMode (int, int)
 
void MakeGlobal (void)
 
int ExecModule (int)
 
int ExecStore (void)
 
void FullCleanUp (void)
 
int DoExecStatement (void)
 
int DoPipeStatement (void)
 
int DoPolyfun (UBYTE *)
 
int DoPolyratfun (UBYTE *)
 
int CompileStatement (UBYTE *)
 
UBYTE * ToToken (UBYTE *)
 
int GetDollar (UBYTE *)
 
void MesWork (void) NORETURN
 
int MesPrint (const char *,...)
 
int MesCall (char *)
 
UBYTE * NumCopy (WORD, UBYTE *)
 
char * LongCopy (LONG, char *)
 
char * LongLongCopy (off_t *, char *)
 
void ReserveTempFiles (int)
 
void PrintTerm (WORD *, char *)
 
void PrintTermC (WORD *, char *)
 
void PrintSubTerm (WORD *, char *)
 
void PrintWords (WORD *, LONG)
 
void PrintSeq (WORD *, char *)
 
int ExpandTripleDots (int)
 
LONG ComPress (WORD **, LONG *)
 
void StageSort (FILEHANDLE *)
 
void M_free (void *, const char *)
 
void ClearWildcardNames (void)
 
int AddWildcardName (UBYTE *)
 
int GetWildcardName (UBYTE *)
 
void Globalize (int)
 
void ResetVariables (int)
 
void AddToPreTypes (int)
 
void MessPreNesting (int)
 
LONG GetStreamPosition (STREAM *)
 
WORD * DoubleCbuffer (int, WORD *, int)
 
WORD * AddLHS (int)
 
WORD * AddRHS (int, int)
 
int AddNtoL (int, WORD *)
 
int AddNtoC (int, int, WORD *, int)
 
void DoubleIfBuffers (void)
 
STREAMCreateStream (UBYTE *)
 
int setonoff (UBYTE *, int *, int, int)
 
int DoPrint (UBYTE *, int)
 
int SetExpr (UBYTE *, int, int)
 
void AddToCom (int, WORD *)
 
int Add2ComStrings (int, WORD *, UBYTE *, UBYTE *)
 
int DoSymmetrize (UBYTE *, int)
 
int DoArgument (UBYTE *, int)
 
int ArgFactorize (PHEAD WORD *, WORD *)
 
WORD * TakeArgContent (PHEAD WORD *, WORD *)
 
WORD * MakeInteger (PHEAD WORD *, WORD *, WORD *)
 
WORD * MakeMod (PHEAD WORD *, WORD *, WORD *)
 
WORD FindArg (PHEAD WORD *)
 
int InsertArg (PHEAD WORD *, WORD *, int)
 
int CleanupArgCache (PHEAD WORD)
 
int ArgSymbolMerge (WORD *, WORD *)
 
int ArgDotproductMerge (WORD *, WORD *)
 
void SortWeights (LONG *, LONG *, WORD)
 
int DoBrackets (UBYTE *, int)
 
int DoPutInside (UBYTE *, int)
 
WORD * CountComp (UBYTE *, WORD *)
 
int CoAntiBracket (UBYTE *)
 
int CoAntiSymmetrize (UBYTE *)
 
int DoArgPlode (UBYTE *, int)
 
int CoArgExplode (UBYTE *)
 
int CoArgImplode (UBYTE *)
 
int CoArgument (UBYTE *)
 
int CoInside (UBYTE *)
 
int ExecInside (UBYTE *)
 
int CoInExpression (UBYTE *)
 
int CoInParallel (UBYTE *)
 
int CoNotInParallel (UBYTE *)
 
int DoInParallel (UBYTE *, int)
 
int CoEndInExpression (UBYTE *)
 
int CoBracket (UBYTE *)
 
int CoPutInside (UBYTE *)
 
int CoAntiPutInside (UBYTE *)
 
int CoMultiBracket (UBYTE *)
 
int CoCFunction (UBYTE *)
 
int CoCTensor (UBYTE *)
 
int CoCollect (UBYTE *)
 
int CoCompress (UBYTE *)
 
int CoContract (UBYTE *)
 
int CoCycleSymmetrize (UBYTE *)
 
int CoDelete (UBYTE *)
 
int CoTableBase (UBYTE *)
 
int CoApply (UBYTE *)
 
int CoDenominators (UBYTE *)
 
int CoDimension (UBYTE *)
 
int CoDiscard (UBYTE *)
 
int CoDisorder (UBYTE *)
 
int CoDrop (UBYTE *)
 
int CoDropCoefficient (UBYTE *)
 
int CoDropSymbols (UBYTE *)
 
int CoElse (UBYTE *)
 
int CoElseIf (UBYTE *)
 
int CoEndArgument (UBYTE *)
 
int CoEndInside (UBYTE *)
 
int CoEndIf (UBYTE *)
 
int CoEndRepeat (UBYTE *)
 
int CoEndTerm (UBYTE *)
 
int CoEndWhile (UBYTE *)
 
int CoExit (UBYTE *)
 
int CoFactArg (UBYTE *)
 
int CoFactDollar (UBYTE *)
 
int CoFactorize (UBYTE *)
 
int CoNFactorize (UBYTE *)
 
int CoUnFactorize (UBYTE *)
 
int CoNUnFactorize (UBYTE *)
 
int DoFactorize (UBYTE *, int)
 
int CoFill (UBYTE *)
 
int CoFillExpression (UBYTE *)
 
int CoFixIndex (UBYTE *)
 
int CoFormat (UBYTE *)
 
int CoGlobal (UBYTE *)
 
int CoGlobalFactorized (UBYTE *)
 
int CoGoTo (UBYTE *)
 
int CoId (UBYTE *)
 
int CoIdNew (UBYTE *)
 
int CoIdOld (UBYTE *)
 
int CoIf (UBYTE *)
 
int CoIfMatch (UBYTE *)
 
int CoIfNoMatch (UBYTE *)
 
int CoIndex (UBYTE *)
 
int CoInsideFirst (UBYTE *)
 
int CoKeep (UBYTE *)
 
int CoLabel (UBYTE *)
 
int CoLoad (UBYTE *)
 
int CoLocal (UBYTE *)
 
int CoLocalFactorized (UBYTE *)
 
int CoMany (UBYTE *)
 
int CoMerge (UBYTE *)
 
int CoStuffle (UBYTE *)
 
int CoMetric (UBYTE *)
 
int CoModOption (UBYTE *)
 
int CoModuleOption (UBYTE *)
 
int CoModulus (UBYTE *)
 
int CoMulti (UBYTE *)
 
int CoMultiply (UBYTE *)
 
int CoNFunction (UBYTE *)
 
int CoNPrint (UBYTE *)
 
int CoNTensor (UBYTE *)
 
int CoNWrite (UBYTE *)
 
int CoNoDrop (UBYTE *)
 
int CoNoSkip (UBYTE *)
 
int CoNormalize (UBYTE *)
 
int CoMakeInteger (UBYTE *)
 
int CoFlags (UBYTE *, int)
 
int CoOff (UBYTE *)
 
int CoOn (UBYTE *)
 
int CoOnce (UBYTE *)
 
int CoOnly (UBYTE *)
 
int CoOptimizeOption (UBYTE *)
 
int CoPolyFun (UBYTE *)
 
int CoPolyRatFun (UBYTE *)
 
int CoPrint (UBYTE *)
 
int CoPrintB (UBYTE *)
 
int CoProperCount (UBYTE *)
 
int CoUnitTrace (UBYTE *)
 
int CoRCycleSymmetrize (UBYTE *)
 
int CoRatio (UBYTE *)
 
int CoRedefine (UBYTE *)
 
int CoRenumber (UBYTE *)
 
int CoRepeat (UBYTE *)
 
int CoSave (UBYTE *)
 
int CoSelect (UBYTE *)
 
int CoSet (UBYTE *)
 
int CoSetExitFlag (UBYTE *)
 
int CoSkip (UBYTE *)
 
int CoProcessBucket (UBYTE *)
 
int CoPushHide (UBYTE *)
 
int CoPopHide (UBYTE *)
 
int CoHide (UBYTE *)
 
int CoIntoHide (UBYTE *)
 
int CoNoIntoHide (UBYTE *)
 
int CoNoHide (UBYTE *)
 
int CoUnHide (UBYTE *)
 
int CoNoUnHide (UBYTE *)
 
int CoSort (UBYTE *)
 
int CoSplitArg (UBYTE *)
 
int CoSplitFirstArg (UBYTE *)
 
int CoSplitLastArg (UBYTE *)
 
int CoSum (UBYTE *)
 
int CoSymbol (UBYTE *)
 
int CoSymmetrize (UBYTE *)
 
int DoTable (UBYTE *, int)
 
int CoTable (UBYTE *)
 
int CoTerm (UBYTE *)
 
int CoNTable (UBYTE *)
 
int CoCTable (UBYTE *)
 
void EmptyTable (TABLES)
 
int CoToTensor (UBYTE *)
 
int CoToVector (UBYTE *)
 
int CoTrace4 (UBYTE *)
 
int CoTraceN (UBYTE *)
 
int CoChisholm (UBYTE *)
 
int CoTransform (UBYTE *)
 
int CoClearTable (UBYTE *)
 
int DoChain (UBYTE *, int)
 
int CoChainin (UBYTE *)
 
int CoChainout (UBYTE *)
 
int CoTryReplace (UBYTE *)
 
int CoVector (UBYTE *)
 
int CoWhile (UBYTE *)
 
int CoWrite (UBYTE *)
 
int CoAuto (UBYTE *)
 
int CoSwitch (UBYTE *)
 
int CoCase (UBYTE *)
 
int CoBreak (UBYTE *)
 
int CoDefault (UBYTE *)
 
int CoEndSwitch (UBYTE *)
 
int CoTBaddto (UBYTE *)
 
int CoTBaudit (UBYTE *)
 
int CoTBcleanup (UBYTE *)
 
int CoTBcreate (UBYTE *)
 
int CoTBenter (UBYTE *)
 
int CoTBhelp (UBYTE *)
 
int CoTBload (UBYTE *)
 
int CoTBoff (UBYTE *)
 
int CoTBon (UBYTE *)
 
int CoTBopen (UBYTE *)
 
int CoTBreplace (UBYTE *)
 
int CoTBuse (UBYTE *)
 
int CoTestUse (UBYTE *)
 
int CoThreadBucket (UBYTE *)
 
int AddComString (int, WORD *, UBYTE *, int)
 
int CompileAlgebra (UBYTE *, int, WORD *)
 
int IsIdStatement (UBYTE *)
 
UBYTE * IsRHS (UBYTE *, UBYTE)
 
int ParenthesesTest (UBYTE *)
 
int tokenize (UBYTE *, WORD)
 
void WriteTokens (SBYTE *)
 
int simp1token (SBYTE *)
 
int simpwtoken (SBYTE *)
 
int simp2token (SBYTE *)
 
int simp3atoken (SBYTE *, int)
 
int simp3btoken (SBYTE *, int)
 
int simp4token (SBYTE *)
 
int simp5token (SBYTE *, int)
 
int simp6token (SBYTE *, int)
 
UBYTE * SkipAName (UBYTE *)
 
int TestTables (void)
 
int GetLabel (UBYTE *)
 
int CoIdExpression (UBYTE *, int)
 
int CoAssign (UBYTE *)
 
int DoExpr (UBYTE *, int, int)
 
int CompileSubExpressions (SBYTE *)
 
int CodeGenerator (SBYTE *)
 
int CompleteTerm (WORD *, UWORD *, UWORD *, WORD, WORD, int)
 
int CodeFactors (SBYTE *s)
 
WORD GenerateFactors (WORD, WORD)
 
int InsTree (int, int)
 
int FindTree (int, WORD *)
 
void RedoTree (CBUF *, int)
 
void ClearTree (int)
 
int CatchDollar (int)
 
int AssignDollar (PHEAD WORD *, WORD)
 
UBYTE * WriteDollarToBuffer (WORD, WORD)
 
UBYTE * WriteDollarFactorToBuffer (WORD, WORD, WORD)
 
void AddToDollarBuffer (UBYTE *)
 
int PutTermInDollar (WORD *, WORD)
 
void TermAssign (WORD *)
 
void WildDollars (PHEAD WORD *)
 
LONG numcommute (WORD *, LONG *)
 
int FullRenumber (PHEAD WORD *, WORD)
 
int Lus (WORD *, WORD, WORD, WORD, WORD, WORD)
 
int FindLus (int, int, int)
 
int CoReplaceLoop (UBYTE *)
 
int CoFindLoop (UBYTE *)
 
int DoFindLoop (UBYTE *, int)
 
int CoFunPowers (UBYTE *)
 
int SortTheList (int *, int)
 
int MatchIsPossible (WORD *, WORD *)
 
int StudyPattern (WORD *)
 
WORD DolToTensor (PHEAD WORD)
 
WORD DolToFunction (PHEAD WORD)
 
WORD DolToVector (PHEAD WORD)
 
WORD DolToNumber (PHEAD WORD)
 
WORD DolToSymbol (PHEAD WORD)
 
WORD DolToIndex (PHEAD WORD)
 
LONG DolToLong (PHEAD WORD)
 
int DollarFactorize (PHEAD WORD)
 
int CoPrintTable (UBYTE *)
 
int CoDeallocateTable (UBYTE *)
 
void CleanDollarFactors (DOLLARS)
 
WORD * TakeDollarContent (PHEAD WORD *, WORD **)
 
WORD * MakeDollarInteger (PHEAD WORD *, WORD **)
 
WORD * MakeDollarMod (PHEAD WORD *, WORD **)
 
int GetDolNum (PHEAD WORD *, WORD *)
 
void AddPotModdollar (WORD)
 
int Optimize (WORD, int)
 
int ClearOptimize (void)
 
int TakeLongRoot (UWORD *, WORD *, WORD)
 
int TakeRatRoot (UWORD *, WORD *, WORD)
 
int MakeRational (WORD, WORD, WORD *, WORD *)
 
int MakeLongRational (PHEAD UWORD *, WORD, UWORD *, WORD, UWORD *, WORD *)
 
void ClearTableTree (TABLES)
 
int InsTableTree (TABLES, WORD *)
 
void RedoTableTree (TABLES, int)
 
int FindTableTree (TABLES, WORD *, int)
 
void finishcbuf (WORD)
 
void clearcbuf (WORD)
 
void CleanUpSort (int)
 
FILEHANDLEAllocFileHandle (WORD, char *)
 
void DeAllocFileHandle (FILEHANDLE *)
 
void LowerSortLevel (void)
 
WORD * PolyRatFunSpecial (PHEAD WORD *, WORD *)
 
void SimpleSplitMergeRec (WORD *, WORD, WORD *)
 
void SimpleSplitMerge (WORD *, WORD)
 
WORD BinarySearch (WORD *, WORD, WORD)
 
int InsideDollar (PHEAD WORD *, WORD)
 
DOLLARS DolToTerms (PHEAD WORD)
 
WORD EvalDoLoopArg (PHEAD WORD *, WORD)
 
int SetExprCases (int, int, int)
 
int TestSelect (WORD *, WORD *)
 
void SubsInAll (PHEAD0)
 
void TransferBuffer (int, int, int)
 
int TakeIDfunction (PHEAD WORD *)
 
int MakeSetupAllocs (void)
 
NORMDATAAllocNormData (void)
 
int TryFileSetups (void)
 
void ExchangeExpressions (int, int)
 
void ExchangeDollars (int, int)
 
int GetFirstBracket (WORD *, int)
 
int GetFirstTerm (WORD *, int, int)
 
int GetContent (WORD *, int)
 
int CleanupTerm (WORD *)
 
WORD ContentMerge (PHEAD WORD *, WORD *)
 
UBYTE * PreIfDollarEval (UBYTE *, int *)
 
LONG TermsInDollar (WORD)
 
LONG SizeOfDollar (WORD)
 
LONG TermsInExpression (WORD)
 
LONG SizeOfExpression (WORD)
 
WORD * TranslateExpression (UBYTE *)
 
int IsSetMember (WORD *, WORD)
 
int IsMultipleOf (WORD *, WORD *)
 
int TwoExprCompare (WORD *, WORD *, int)
 
void UpdatePositions (void)
 
void M_check (void)
 
void M_print (void)
 
void M_check1 (void)
 
void PrintTime (UBYTE *)
 
POSITIONFindBracket (WORD, WORD *)
 
void PutBracketInIndex (PHEAD WORD *, POSITION *)
 
void ClearBracketIndex (WORD)
 
void OpenBracketIndex (WORD)
 
int DoNoParallel (UBYTE *)
 
int DoParallel (UBYTE *)
 
int DoModSum (UBYTE *)
 
int DoModMax (UBYTE *)
 
int DoModMin (UBYTE *)
 
int DoModLocal (UBYTE *)
 
UBYTE * DoModDollar (UBYTE *, int)
 
int DoProcessBucket (UBYTE *)
 
int DoinParallel (UBYTE *)
 
int DonotinParallel (UBYTE *)
 
int FlipTable (FUNCTIONS, int)
 
int ChainIn (PHEAD WORD *, WORD)
 
int ChainOut (PHEAD WORD *, WORD)
 
int ArgumentImplode (PHEAD WORD *, WORD *)
 
int ArgumentExplode (PHEAD WORD *, WORD *)
 
int DenToFunction (WORD *, WORD)
 
WORD HowMany (PHEAD WORD *, WORD *)
 
void RemoveDollars (void)
 
LONG CountTerms1 (PHEAD0)
 
LONG TermsInBracket (PHEAD WORD *, WORD)
 
int Crash (void)
 
char * str_dup (char *)
 
void convertblock (INDEXBLOCK *, INDEXBLOCK *, int)
 
void convertnamesblock (NAMESBLOCK *, NAMESBLOCK *, int)
 
void convertiniinfo (INIINFO *, INIINFO *, int)
 
int ReadIndex (DBASE *)
 
int WriteIndexBlock (DBASE *, MLONG)
 
int WriteNamesBlock (DBASE *, MLONG)
 
int WriteIndex (DBASE *)
 
int WriteIniInfo (DBASE *)
 
int ReadIniInfo (DBASE *)
 
int AddToIndex (DBASE *, MLONG)
 
DBASEGetDbase (char *, MLONG)
 
DBASEOpenDbase (char *)
 
char * ReadObject (DBASE *, MLONG, char *)
 
char * ReadijObject (DBASE *, MLONG, MLONG, char *)
 
int ExistsObject (DBASE *, MLONG, char *)
 
int DeleteObject (DBASE *, MLONG, char *)
 
int WriteObject (DBASE *, MLONG, char *, char *, MLONG)
 
MLONG AddObject (DBASE *, MLONG, char *, char *)
 
DBASENewDbase (char *, MLONG)
 
void FreeTableBase (DBASE *)
 
int ComposeTableNames (DBASE *)
 
int PutTableNames (DBASE *)
 
MLONG AddTableName (DBASE *, char *, TABLES)
 
MLONG GetTableName (DBASE *, char *)
 
MLONG FindTableNumber (DBASE *, char *)
 
int TryEnvironment (void)
 
int CopyExpression (FILEHANDLE *, FILEHANDLE *)
 
int set_in (UBYTE, set_of_char)
 
one_byte set_set (UBYTE, set_of_char)
 
one_byte set_del (UBYTE, set_of_char)
 
one_byte set_sub (set_of_char, set_of_char, set_of_char)
 
int DoPreAddSeparator (UBYTE *)
 
int DoPreRmSeparator (UBYTE *)
 
int openExternalChannel (UBYTE *, int, UBYTE *, UBYTE *)
 
int initPresetExternalChannels (UBYTE *, int)
 
int closeExternalChannel (int)
 
int selectExternalChannel (int)
 
int getCurrentExternalChannel (void)
 
void closeAllExternalChannels (void)
 
UBYTE * defineChannel (UBYTE *, HANDLERS *)
 
int writeToChannel (int, UBYTE *, HANDLERS *)
 
int writeBufToExtChannelOk (char *, size_t)
 
int getcFromExtChannelOk (void)
 
int setKillModeForExternalChannelOk (int, int)
 
int setTerminatorForExternalChannelOk (char *)
 
int getcFromExtChannelFailure (void)
 
int setKillModeForExternalChannelFailure (int, int)
 
int setTerminatorForExternalChannelFailure (char *)
 
int writeBufToExtChannelFailure (char *, size_t)
 
int ReleaseTB (void)
 
int SymbolNormalize (WORD *)
 
int TestFunFlag (PHEAD WORD *)
 
WORD CompareSymbols (PHEAD WORD *, WORD *, WORD)
 
WORD CompareHSymbols (PHEAD WORD *, WORD *, WORD)
 
WORD NextPrime (PHEAD WORD)
 
WORD Moebius (PHEAD WORD)
 
UWORD wranf (PHEAD0)
 
UWORD iranf (PHEAD UWORD)
 
void iniwranf (PHEAD0)
 
UBYTE * PreRandom (UBYTE *)
 
WORD * PolyNormPoly (PHEAD WORD)
 
WORD * EvaluateGcd (PHEAD WORD *)
 
int TreatPolyRatFun (PHEAD WORD *)
 
int ReadSaveHeader (void)
 
LONG ReadSaveIndex (FILEINDEX *)
 
LONG ReadSaveExpression (UBYTE *, UBYTE *, LONG *, LONG *)
 
UBYTE * ReadSaveTerm32 (UBYTE *, UBYTE *, UBYTE **, UBYTE *, UBYTE *, int)
 
LONG ReadSaveVariables (UBYTE *, UBYTE *, LONG *, LONG *, INDEXENTRY *, LONG *)
 
LONG WriteStoreHeader (WORD)
 
void InitRecovery (void)
 
int CheckRecoveryFile (void)
 
void DeleteRecoveryFile (void)
 
char * RecoveryFilename (void)
 
int DoRecovery (int *)
 
void DoCheckpoint (int)
 
void NumberMallocAddMemory (PHEAD0)
 
void CacheNumberMallocAddMemory (PHEAD0)
 
void TermMallocAddMemory (PHEAD0)
 
void ExprStatus (EXPRESSIONS)
 
void iniTools (void)
 
int TestTerm (WORD *)
 
int RunTransform (PHEAD WORD *term, WORD *params)
 
int RunEncode (PHEAD WORD *fun, WORD *args, WORD *info)
 
int RunDecode (PHEAD WORD *fun, WORD *args, WORD *info)
 
int RunReplace (PHEAD WORD *fun, WORD *args, WORD *info)
 
int RunImplode (WORD *fun, WORD *args)
 
int RunExplode (PHEAD WORD *fun, WORD *args)
 
int TestArgNum (int n, int totarg, WORD *args)
 
WORD PutArgInScratch (WORD *arg, UWORD *scrat)
 
UBYTE * ReadRange (UBYTE *s, WORD *out, int par)
 
int FindRange (PHEAD WORD *, WORD *, WORD *, WORD)
 
int RunPermute (PHEAD WORD *fun, WORD *args, WORD *info)
 
int RunReverse (PHEAD WORD *fun, WORD *args)
 
int RunCycle (PHEAD WORD *fun, WORD *args, WORD *info)
 
int RunAddArg (PHEAD WORD *fun, WORD *args)
 
int RunMulArg (PHEAD WORD *fun, WORD *args)
 
int RunIsLyndon (PHEAD WORD *fun, WORD *args, int par)
 
WORD RunToLyndon (PHEAD WORD *fun, WORD *args, int par)
 
int RunDropArg (PHEAD WORD *fun, WORD *args)
 
int RunSelectArg (PHEAD WORD *fun, WORD *args)
 
int RunDedup (PHEAD WORD *fun, WORD *args)
 
int RunZtoHArg (PHEAD WORD *fun, WORD *args)
 
int RunHtoZArg (PHEAD WORD *fun, WORD *args)
 
int NormPolyTerm (PHEAD WORD *)
 
WORD ComparePoly (WORD *, WORD *, WORD)
 
int ConvertToPoly (PHEAD WORD *, WORD *, WORD *, WORD)
 
int LocalConvertToPoly (PHEAD WORD *, WORD *, WORD, WORD)
 
int ConvertFromPoly (PHEAD WORD *, WORD *, WORD, WORD, WORD, WORD)
 
int FindSubterm (WORD *)
 
int FindLocalSubterm (PHEAD WORD *, WORD)
 
void PrintSubtermList (int, int)
 
void PrintExtraSymbol (int, WORD *, int)
 
int FindSubexpression (WORD *)
 
void UpdateMaxSize (void)
 
int CoToPolynomial (UBYTE *)
 
int CoFromPolynomial (UBYTE *)
 
int CoArgToExtraSymbol (UBYTE *)
 
int CoExtraSymbols (UBYTE *)
 
UBYTE * GetDoParam (UBYTE *, WORD **, int)
 
WORD * GetIfDollarFactor (UBYTE **, WORD *)
 
int CoDo (UBYTE *)
 
int CoEndDo (UBYTE *)
 
int ExtraSymFun (PHEAD WORD *, WORD)
 
int PruneExtraSymbols (WORD)
 
int IniFbuffer (WORD)
 
void IniFbufs (void)
 
int GCDfunction (PHEAD WORD *, WORD)
 
WORD * GCDfunction3 (PHEAD WORD *, WORD *)
 
int ReadPolyRatFun (PHEAD WORD *)
 
int FromPolyRatFun (PHEAD WORD *, WORD **, WORD **)
 
WORD * PolyDiv (PHEAD WORD *, WORD *, char *)
 
void GCDclean (PHEAD WORD *, WORD *)
 
WORD * TakeSymbolContent (PHEAD WORD *, WORD *)
 
int GCDterms (PHEAD WORD *, WORD *, WORD *)
 
WORD * PutExtraSymbols (PHEAD WORD *, WORD, int *)
 
WORD * TakeExtraSymbols (PHEAD WORD *, WORD)
 
WORD * MultiplyWithTerm (PHEAD WORD *, WORD *, WORD)
 
WORD * TakeContent (PHEAD WORD *, WORD *)
 
int MergeSymbolLists (PHEAD WORD *, WORD *, int)
 
int MergeDotproductLists (PHEAD WORD *, WORD *, int)
 
WORD * CreateExpression (PHEAD WORD)
 
int DIVfunction (PHEAD WORD *, WORD, int)
 
WORD * MULfunc (PHEAD WORD *, WORD *)
 
WORD * ConvertArgument (PHEAD WORD *, int *)
 
int ExpandRat (PHEAD WORD *)
 
int InvPoly (PHEAD WORD *, WORD, WORD)
 
WORD TestDoLoop (PHEAD WORD *, WORD)
 
WORD TestEndDoLoop (PHEAD WORD *, WORD)
 
WORD * poly_gcd (PHEAD WORD *, WORD *, WORD)
 
WORD * poly_div (PHEAD WORD *, WORD *, WORD)
 
WORD * poly_rem (PHEAD WORD *, WORD *, WORD)
 
WORD * poly_inverse (PHEAD WORD *, WORD *)
 
WORD * poly_mul (PHEAD WORD *, WORD *)
 
WORD * poly_ratfun_add (PHEAD WORD *, WORD *)
 
int poly_ratfun_normalize (PHEAD WORD *)
 
int poly_factorize_argument (PHEAD WORD *, WORD *)
 
WORD * poly_factorize_dollar (PHEAD WORD *)
 
int poly_factorize_expression (EXPRESSIONS)
 
int poly_unfactorize_expression (EXPRESSIONS)
 
void poly_free_poly_vars (PHEAD const char *)
 
void optimize_print_code (int)
 
int DoPreAdd (UBYTE *s)
 
int DoPreUseDictionary (UBYTE *s)
 
int DoPreCloseDictionary (UBYTE *s)
 
int DoPreOpenDictionary (UBYTE *s)
 
void RemoveDictionary (DICTIONARY *dict)
 
void UnSetDictionary (void)
 
int SetDictionaryOptions (UBYTE *options)
 
int AddToDictionary (DICTIONARY *dict, UBYTE *left, UBYTE *right)
 
int AddDictionary (UBYTE *name)
 
int FindDictionary (UBYTE *name)
 
UBYTE * IsExponentSign (void)
 
UBYTE * IsMultiplySign (void)
 
void TransformRational (UWORD *a, WORD na)
 
void WriteDictionary (DICTIONARY *)
 
void ShrinkDictionary (DICTIONARY *)
 
void MultiplyToLine (void)
 
UBYTE * FindSymbol (WORD num)
 
UBYTE * FindVector (WORD num)
 
UBYTE * FindIndex (WORD num)
 
UBYTE * FindFunction (WORD num)
 
UBYTE * FindFunWithArgs (WORD *t)
 
UBYTE * FindExtraSymbol (WORD num)
 
LONG DictToBytes (DICTIONARY *dict, UBYTE *buf)
 
DICTIONARYDictFromBytes (UBYTE *buf)
 
int CoCreateSpectator (UBYTE *inp)
 
int CoToSpectator (UBYTE *inp)
 
int CoRemoveSpectator (UBYTE *inp)
 
int CoEmptySpectator (UBYTE *inp)
 
int CoCopySpectator (UBYTE *inp)
 
int PutInSpectator (WORD *, WORD)
 
void ClearSpectators (WORD)
 
WORD GetFromSpectator (WORD *, WORD)
 
void FlushSpectators (void)
 
WORD * PreGCD (PHEAD WORD *, WORD *, int)
 
int ReadFromScratch (FILEHANDLE *, POSITION *, UBYTE *, POSITION *)
 
int AddToScratch (FILEHANDLE *, POSITION *, UBYTE *, POSITION *, int)
 
int DoPreAppendPath (UBYTE *)
 
int DoPrePrependPath (UBYTE *)
 
int DoSwitch (PHEAD WORD *, WORD *)
 
int DoEndSwitch (PHEAD WORD *, WORD *)
 
SWITCHTABLEFindCase (WORD, WORD)
 
void SwitchSplitMergeRec (SWITCHTABLE *, WORD, SWITCHTABLE *)
 
void SwitchSplitMerge (SWITCHTABLE *, WORD)
 
int DoubleSwitchBuffers (void)
 
int DistrN (int, int *, int, int *)
 
int DoNamespace (UBYTE *)
 
int DoEndNamespace (UBYTE *)
 
int DoUse (UBYTE *)
 
UBYTE * SkipName (UBYTE *)
 
UBYTE * ConstructName (UBYTE *, UBYTE)
 
int DoSetUserFlag (UBYTE *)
 
int DoClearUserFlag (UBYTE *)
 
VERTEXCreateVertex (MODEL *)
 
UBYTE * ReadParticle (UBYTE *, VERTEX *, MODEL *, int)
 
int CoModel (UBYTE *)
 
int CoParticle (UBYTE *)
 
int CoVertex (UBYTE *)
 
int CoEndModel (UBYTE *)
 
int LoadModel (MODEL *)
 
int CoSetUserFlag (UBYTE *)
 
int CoClearUserFlag (UBYTE *)
 
int CoCreateAllLoops (UBYTE *)
 
int CoCreateAllPaths (UBYTE *)
 
int CoCreateAll (UBYTE *)
 
int AllLoops (PHEAD WORD *, WORD)
 
LONG StartLoops (PHEAD WORD *, WORD, LONG, WORD, WORD *, WORD, WORD *, WORD)
 
LONG GenLoops (PHEAD WORD *, WORD, LONG, WORD, WORD *, WORD, WORD *, WORD)
 
void LoopOutput (PHEAD WORD *, WORD, WORD *, WORD)
 
int AllPaths (PHEAD WORD *, WORD)
 
LONG GenPaths (PHEAD WORD *, WORD, LONG, WORD, WORD *, WORD, WORD *, WORD)
 
void PathOutput (PHEAD WORD *, WORD, WORD *, WORD)
 

Detailed Description

Contains macros and function declarations.

Definition in file declare.h.

Macro Definition Documentation

◆ MaX

#define MaX (   x,
 
)    ((x) > (y) ? (x): (y))

Definition at line 40 of file declare.h.

◆ MiN

#define MiN (   x,
 
)    ((x) < (y) ? (x): (y))

Definition at line 41 of file declare.h.

◆ ABS

#define ABS (   x)    ( (x) < 0 ? -(x): (x) )

Definition at line 42 of file declare.h.

◆ SGN

#define SGN (   x)    ( (x) > 0 ? 1 : (x) < 0 ? -1 : 0 )

Definition at line 43 of file declare.h.

◆ REDLENG

#define REDLENG (   x)    ((((x)<0)?((x)+1):((x)-1))/2)

Definition at line 44 of file declare.h.

◆ INCLENG

#define INCLENG (   x)    (((x)<0)?(((x)*2)-1):(((x)*2)+1))

Definition at line 45 of file declare.h.

◆ GETCOEF

#define GETCOEF (   x,
 
)    x += *x;y = x[-1];x -= ABS(y);y=REDLENG(y)

Definition at line 46 of file declare.h.

◆ GETSTOP

#define GETSTOP (   x,
 
)    y=x+(*x)-1;y -= ABS(*y)-1

Definition at line 47 of file declare.h.

◆ StuffAdd

#define StuffAdd (   x,
 
)    (((x)<0?-1:1)*(y)+((y)<0?-1:1)*(x))

Definition at line 48 of file declare.h.

◆ EXCHN

#define EXCHN (   t1,
  t2,
 
)    { WORD a,i; for(i=0;i<n;i++){a=t1[i];t1[i]=t2[i];t2[i]=a;} }

Definition at line 50 of file declare.h.

◆ EXCH

#define EXCH (   x,
 
)    { WORD a = (x); (x) = (y); (y) = a; }

Definition at line 51 of file declare.h.

◆ TOKENTOLINE

#define TOKENTOLINE (   x,
 
)
Value:
if ( AC.OutputSpaces == NOSPACEFORMAT ) { \
TokenToLine((UBYTE *)(y)); } else { TokenToLine((UBYTE *)(x)); }

Definition at line 53 of file declare.h.

◆ UngetFromStream

#define UngetFromStream (   stream,
 
)    ((stream)->nextchar[(stream)->isnextchar++]=c)

Definition at line 56 of file declare.h.

◆ AddLineFeed

#define AddLineFeed (   s,
 
)    { (s)[(n)++] = LINEFEED; }

Definition at line 60 of file declare.h.

◆ TryRecover

#define TryRecover (   x)    Terminate(-1)

Definition at line 62 of file declare.h.

◆ UngetChar

#define UngetChar (   c)    { pushbackchar = c; }

Definition at line 63 of file declare.h.

◆ ParseNumber

#define ParseNumber (   x,
 
)    {(x)=0;while(*(s)>='0'&&*(s)<='9')(x)=10*(x)+*(s)++ -'0';}

Definition at line 64 of file declare.h.

◆ ParseSign

#define ParseSign (   sgn,
 
)
Value:
{(sgn)=0;while(*(s)=='-'||*(s)=='+'){\
if ( *(s)++ == '-' ) sgn ^= 1;}}

Definition at line 65 of file declare.h.

◆ ParseSignedNumber

#define ParseSignedNumber (   x,
 
)
Value:
{ int sgn; ParseSign(sgn,s)\
ParseNumber(x,s) if ( sgn ) x = -x; }

Definition at line 67 of file declare.h.

◆ NCOPY

#define NCOPY (   s,
  t,
 
)    { while ( (n)-- > 0 ) { *s++ = *t++; } }

Definition at line 71 of file declare.h.

◆ NCOPYI

#define NCOPYI (   s,
  t,
 
)    { while ( (n)-- > 0 ) { *s++ = *t++; } }

Definition at line 72 of file declare.h.

◆ NCOPYB

#define NCOPYB (   s,
  t,
 
)    { while ( (n)-- > 0 ) { *s++ = *t++; } }

Definition at line 73 of file declare.h.

◆ NCOPYI32

#define NCOPYI32 (   s,
  t,
 
)    { while ( (n)-- > 0 ) { *s++ = *t++; } }

Definition at line 74 of file declare.h.

◆ WCOPY

#define WCOPY (   s,
  t,
 
)    { int nn=n; WORD *ss=(WORD *)s, *tt=(WORD *)t; while ( (nn)-- > 0 ) { *ss++ = *tt++; } }

Definition at line 75 of file declare.h.

◆ NeedNumber

#define NeedNumber (   x,
  s,
  err 
)
Value:
{ int sgn = 1; \
while ( *s == ' ' || *s == '\t' || *s == '-' || *s == '+' ) { \
if ( *s == '-' ) {sgn = -sgn;} s++; } \
if ( chartype[*s] != 1 ) goto err; \
ParseNumber(x,s) \
if ( sgn < 0 ) {(x) = -(x);} while ( *s == ' ' || *s == '\t' ) s++;\
}

Definition at line 85 of file declare.h.

◆ SKIPBLANKS

#define SKIPBLANKS (   s)    { while ( *(s) == ' ' || *(s) == '\t' ) (s)++; }

Definition at line 92 of file declare.h.

◆ FLUSHCONSOLE

#define FLUSHCONSOLE   if ( AP.InOutBuf > 0 ) CharOut(LINEFEED)

Definition at line 93 of file declare.h.

◆ SKIPBRA1

#define SKIPBRA1 (   s)
Value:
{ int lev1=0; s++; while(*s) { if(*s=='['){lev1++;} \
else {if(*s==']'&&--lev1<0){break;}} s++;} }

Definition at line 95 of file declare.h.

◆ SKIPBRA2

#define SKIPBRA2 (   s)
Value:
{ int lev2=0; s++; while(*s) { if(*s=='{'){lev2++;} \
else {if(*s=='}'&&--lev2<0){break;} \
else {if(*s=='['){SKIPBRA1(s)}}} s++;} }

Definition at line 97 of file declare.h.

◆ SKIPBRA3

#define SKIPBRA3 (   s)
Value:
{ int lev3=0; s++; while(*s) { if(*s=='('){lev3++;} \
else {if(*s==')'&&--lev3<0){break;} \
else {if(*s=='{'){SKIPBRA2(s)} \
else {if(*s=='['){SKIPBRA1(s)}}}} s++;} }

Definition at line 100 of file declare.h.

◆ SKIPBRA4

#define SKIPBRA4 (   s)
Value:
{ int lev4=0; s++; while(*s) { if(*s=='('){lev4++;} \
else {if(*s==')'&&--lev4<0){break;} \
else {if(*s=='['){SKIPBRA1(s)}}} s++;} }

Definition at line 104 of file declare.h.

◆ SKIPBRA5

#define SKIPBRA5 (   s)
Value:
{ int lev5=0; s++; while(*s) { if(*s=='{'){lev5++;} \
else {if(*s=='}'&&--lev5<0){break;} \
else {if(*s=='('){SKIPBRA4(s)} \
else {if(*s=='['){SKIPBRA1(s)}}}} s++;} }

Definition at line 107 of file declare.h.

◆ CYCLE1

#define CYCLE1 (   t,
  a,
 
)    {t iX=*a; WORD jX; for(jX=1;jX<i;jX++)a[jX-1]=a[jX]; a[i-1]=iX;}

Definition at line 115 of file declare.h.

◆ AddToCB

#define AddToCB (   c,
  wx 
)
Value:
if(c->Pointer>=c->Top) \
{DoubleCbuffer(c-cbuf,c->Pointer,21);} \
*(c->Pointer)++ = wx;
WORD * DoubleCbuffer(int, WORD *, int)
Definition comtool.c:143

Definition at line 117 of file declare.h.

◆ EXCHINOUT

#define EXCHINOUT
Value:
{ FILEHANDLE *ffFi = AR.outfile; \
AR.outfile = AR.infile; AR.infile = ffFi; }

Definition at line 121 of file declare.h.

◆ BACKINOUT

#define BACKINOUT
Value:
{ FILEHANDLE *ffFi = AR.outfile; POSITION posi; \
AR.outfile = AR.infile; AR.infile = ffFi; \
SetEndScratch(AR.infile,&posi); }

Definition at line 123 of file declare.h.

◆ CopyArg

#define CopyArg (   to,
  from 
)
Value:
{ if ( *from > 0 ) { int ica = *from; NCOPY(to,from,ica) } \
else if ( *from <= -FUNCTION ) *to++ = *from++; \
else { *to++ = *from++; *to++ = *from++; } }

Definition at line 127 of file declare.h.

◆ FILLARG

#define FILLARG (   w)

Definition at line 136 of file declare.h.

◆ COPYARG

#define COPYARG (   w,
 
)

Definition at line 137 of file declare.h.

◆ ZEROARG

#define ZEROARG (   w)

Definition at line 138 of file declare.h.

◆ FILLFUN

#define FILLFUN (   w)

Definition at line 145 of file declare.h.

◆ COPYFUN

#define COPYFUN (   w,
 
)

Definition at line 146 of file declare.h.

◆ COPYFUN3

#define COPYFUN3 (   w,
 
)

Definition at line 153 of file declare.h.

◆ FILLFUN3

#define FILLFUN3 (   w)

Definition at line 154 of file declare.h.

◆ FILLSUB

#define FILLSUB (   w)

Definition at line 161 of file declare.h.

◆ COPYSUB

#define COPYSUB (   w,
  ww 
)

Definition at line 162 of file declare.h.

◆ FILLEXPR

#define FILLEXPR (   w)

Definition at line 168 of file declare.h.

◆ NEXTARG

#define NEXTARG (   x)    if(*x>0) x += *x; else if(*x <= -FUNCTION)x++; else x += 2;

Definition at line 171 of file declare.h.

◆ COPY1ARG

#define COPY1ARG (   s1,
  t1 
)
Value:
{ int ica; if ( (ica=*t1) > 0 ) { NCOPY(s1,t1,ica) } \
else if(*t1<=-FUNCTION){*s1++=*t1++;} else{*s1++=*t1++;*s1++=*t1++;} }

Definition at line 172 of file declare.h.

◆ ZeroFillRange

#define ZeroFillRange (   w,
  begin,
  end 
)
Value:
do { \
int tmp_i; \
for ( tmp_i = begin; tmp_i < end; tmp_i++ ) { (w)[tmp_i] = 0; } \
} while (0)

Fills a buffer by zero in the range [begin,end).

Parameters
wThe buffer.
beginThe index for the beginning of the range.
endThe index for the end of the range (exclusive).

Definition at line 182 of file declare.h.

◆ TABLESIZE

#define TABLESIZE (   a,
 
)    (((WORD)sizeof(a))/((WORD)sizeof(b)))

Definition at line 187 of file declare.h.

◆ WORDDIF

#define WORDDIF (   x,
 
)    (WORD)(x-y)

Definition at line 188 of file declare.h.

◆ wsizeof

#define wsizeof (   a)    ((WORD)sizeof(a))

Definition at line 189 of file declare.h.

◆ VARNAME

#define VARNAME (   type,
  num 
)    (AC.varnames->namebuffer+type[num].name)

Definition at line 190 of file declare.h.

◆ DOLLARNAME

#define DOLLARNAME (   type,
  num 
)    (AC.dollarnames->namebuffer+type[num].name)

Definition at line 191 of file declare.h.

◆ EXPRNAME

#define EXPRNAME (   num)    (AC.exprnames->namebuffer+Expressions[num].name)

Definition at line 192 of file declare.h.

◆ PREV

#define PREV (   x)    prevorder?prevorder:x

Definition at line 194 of file declare.h.

◆ Terminate

#define Terminate (   x)    do { TerminateImpl(x, __FILE__, __LINE__, __FUNCTION__); } while(0)

Definition at line 196 of file declare.h.

◆ SETERROR

#define SETERROR (   x)    { Terminate(-1); return(-1); }

Definition at line 197 of file declare.h.

◆ DUMMYUSE

#define DUMMYUSE (   x)    (void)(x);

Definition at line 200 of file declare.h.

◆ ADDPOS

#define ADDPOS (   pp,
 
)    (pp).p1 = ((pp).p1+(LONG)(x))

Definition at line 226 of file declare.h.

◆ SETBASELENGTH

#define SETBASELENGTH (   ss,
 
)    (ss).p1 = (LONG)(x)

Definition at line 227 of file declare.h.

◆ SETBASEPOSITION

#define SETBASEPOSITION (   pp,
 
)    (pp).p1 = (LONG)(x)

Definition at line 228 of file declare.h.

◆ ISEQUALPOSINC

#define ISEQUALPOSINC (   pp1,
  pp2,
 
)    ( (pp1).p1 == ((pp2).p1+(LONG)(x)) )

Definition at line 229 of file declare.h.

◆ ISGEPOSINC

#define ISGEPOSINC (   pp1,
  pp2,
 
)    ( (pp1).p1 >= ((pp2).p1+(LONG)(x)) )

Definition at line 230 of file declare.h.

◆ DIVPOS

#define DIVPOS (   pp,
 
)    ( (pp).p1/(LONG)(n) )

Definition at line 231 of file declare.h.

◆ MULPOS

#define MULPOS (   pp,
 
)    (pp).p1 *= (LONG)(n)

Definition at line 232 of file declare.h.

◆ DIFPOS

#define DIFPOS (   ss,
  pp1,
  pp2 
)    (ss).p1 = ((pp1).p1-(pp2).p1)

Definition at line 235 of file declare.h.

◆ DIFBASE

#define DIFBASE (   pp1,
  pp2 
)    ((pp1).p1-(pp2).p1)

Definition at line 236 of file declare.h.

◆ ADD2POS

#define ADD2POS (   pp1,
  pp2 
)    (pp1).p1 += (pp2).p1

Definition at line 237 of file declare.h.

◆ PUTZERO

#define PUTZERO (   pp)    (pp).p1 = 0

Definition at line 238 of file declare.h.

◆ BASEPOSITION

#define BASEPOSITION (   pp)    ((pp).p1)

Definition at line 239 of file declare.h.

◆ SETSTARTPOS

#define SETSTARTPOS (   pp)    (pp).p1 = -2

Definition at line 240 of file declare.h.

◆ NOTSTARTPOS

#define NOTSTARTPOS (   pp)    ( (pp).p1 > -2 )

Definition at line 241 of file declare.h.

◆ ISMINPOS

#define ISMINPOS (   pp)    ( (pp).p1 == -1 )

Definition at line 242 of file declare.h.

◆ ISEQUALPOS

#define ISEQUALPOS (   pp1,
  pp2 
)    ( (pp1).p1 == (pp2).p1 )

Definition at line 243 of file declare.h.

◆ ISNOTEQUALPOS

#define ISNOTEQUALPOS (   pp1,
  pp2 
)    ( (pp1).p1 != (pp2).p1 )

Definition at line 244 of file declare.h.

◆ ISLESSPOS

#define ISLESSPOS (   pp1,
  pp2 
)    ( (pp1).p1 < (pp2).p1 )

Definition at line 245 of file declare.h.

◆ ISGEPOS

#define ISGEPOS (   pp1,
  pp2 
)    ( (pp1).p1 >= (pp2).p1 )

Definition at line 246 of file declare.h.

◆ ISNOTZEROPOS

#define ISNOTZEROPOS (   pp)    ( (pp).p1 != 0 )

Definition at line 247 of file declare.h.

◆ ISZEROPOS

#define ISZEROPOS (   pp)    ( (pp).p1 == 0 )

Definition at line 248 of file declare.h.

◆ ISPOSPOS

#define ISPOSPOS (   pp)    ( (pp).p1 > 0 )

Definition at line 249 of file declare.h.

◆ ISNEGPOS

#define ISNEGPOS (   pp)    ( (pp).p1 < 0 )

Definition at line 250 of file declare.h.

◆ TOLONG

#define TOLONG (   x)    ((LONG)(x))

Definition at line 253 of file declare.h.

◆ Add2Com

#define Add2Com (   x)    { WORD cod[2]; cod[0] = x; cod[1] = 2; AddNtoL(2,cod); }

Definition at line 255 of file declare.h.

◆ Add3Com

#define Add3Com (   x1,
  x2 
)    { WORD cod[3]; cod[0] = x1; cod[1] = 3; cod[2] = x2; AddNtoL(3,cod); }

Definition at line 256 of file declare.h.

◆ Add4Com

#define Add4Com (   x1,
  x2,
  x3 
)
Value:
{ WORD cod[4]; cod[0] = x1; cod[1] = 4; \
cod[2] = x2; cod[3] = x3; AddNtoL(4,cod); }
int AddNtoL(int, WORD *)
Definition comtool.c:288

Definition at line 257 of file declare.h.

◆ Add5Com

#define Add5Com (   x1,
  x2,
  x3,
  x4 
)
Value:
{ WORD cod[5]; cod[0] = x1; cod[1] = 5; \
cod[2] = x2; cod[3] = x3; cod[4] = x4; AddNtoL(5,cod); }

Definition at line 259 of file declare.h.

◆ WantAddPointers

#define WantAddPointers (   x)
Value:
while((AT.pWorkPointer+(x))>AR.pWorkSize){WORD ***ppp=&AT.pWorkSpace;\
ExpandBuffer((void **)ppp,&AR.pWorkSize,(int)(sizeof(WORD *)));}

Definition at line 265 of file declare.h.

◆ WantAddLongs

#define WantAddLongs (   x)
Value:
while((AT.lWorkPointer+(x))>AR.lWorkSize){LONG **ppp=&AT.lWorkSpace;\
ExpandBuffer((void **)ppp,&AR.lWorkSize,sizeof(LONG));}

Definition at line 267 of file declare.h.

◆ WantAddPositions

#define WantAddPositions (   x)
Value:
while((AT.posWorkPointer+(x))>AR.posWorkSize){POSITION **ppp=&AT.posWorkSpace;\
ExpandBuffer((void **)ppp,&AR.posWorkSize,sizeof(POSITION));}

Definition at line 269 of file declare.h.

◆ FORM_INLINE

#define FORM_INLINE   inline

Definition at line 273 of file declare.h.

◆ MEMORYMACROS

#define MEMORYMACROS

Definition at line 281 of file declare.h.

◆ TermMalloc

#define TermMalloc (   x)    ( (AT.TermMemTop <= 0 ) ? TermMallocAddMemory(BHEAD0), AT.TermMemHeap[--AT.TermMemTop]: AT.TermMemHeap[--AT.TermMemTop] )

Definition at line 285 of file declare.h.

◆ NumberMalloc

#define NumberMalloc (   x)    ( (AT.NumberMemTop <= 0 ) ? NumberMallocAddMemory(BHEAD0), AT.NumberMemHeap[--AT.NumberMemTop]: AT.NumberMemHeap[--AT.NumberMemTop] )

Definition at line 286 of file declare.h.

◆ CacheNumberMalloc

#define CacheNumberMalloc (   x)    ( (AT.CacheNumberMemTop <= 0 ) ? CacheNumberMallocAddMemory(BHEAD0), AT.CacheNumberMemHeap[--AT.CacheNumberMemTop]: AT.CacheNumberMemHeap[--AT.CacheNumberMemTop] )

Definition at line 287 of file declare.h.

◆ TermFree

#define TermFree (   TermMem,
 
)    AT.TermMemHeap[AT.TermMemTop++] = (WORD *)(TermMem)

Definition at line 288 of file declare.h.

◆ NumberFree

#define NumberFree (   NumberMem,
 
)    AT.NumberMemHeap[AT.NumberMemTop++] = (UWORD *)(NumberMem)

Definition at line 289 of file declare.h.

◆ CacheNumberFree

#define CacheNumberFree (   NumberMem,
 
)    AT.CacheNumberMemHeap[AT.CacheNumberMemTop++] = (UWORD *)(NumberMem)

Definition at line 290 of file declare.h.

◆ NestingChecksum

#define NestingChecksum ( )    (AC.IfLevel + AC.RepLevel + AC.arglevel + AC.insidelevel + AC.termlevel + AC.inexprlevel + AC.dolooplevel +AC.SwitchLevel)

Definition at line 318 of file declare.h.

◆ MesNesting

#define MesNesting ( )    MesPrint("&Illegal nesting of if, repeat, argument, inside, term, inexpression and do")

Definition at line 319 of file declare.h.

◆ MarkPolyRatFunDirty

#define MarkPolyRatFunDirty (   T)
Value:
{if(*T&&AR.PolyFunType==2){WORD *TP,*TT;TT=T+*T;TT-=ABS(TT[-1]);\
TP=T+1;while(TP<TT){if(*TP==AR.PolyFun){TP[2]|=(DIRTYFLAG|MUSTCLEANPRF);}TP+=TP[1];}}}

Definition at line 321 of file declare.h.

◆ PUSHPREASSIGNLEVEL

#define PUSHPREASSIGNLEVEL
Value:
AP.PreAssignLevel++; { GETIDENTITY \
if ( AP.PreAssignLevel >= AP.MaxPreAssignLevel ) { int i; \
LONG *ap = (LONG *)Malloc1(2*AP.MaxPreAssignLevel*sizeof(LONG *),"PreAssignStack"); \
for ( i = 0; i < AP.MaxPreAssignLevel; i++ ) ap[i] = AP.PreAssignStack[i]; \
M_free(AP.PreAssignStack,"PreAssignStack"); \
AP.MaxPreAssignLevel *= 2; AP.PreAssignStack = ap; \
} \
*AT.WorkPointer++ = AP.PreContinuation; AP.PreContinuation = 0; \
AP.PreAssignStack[AP.PreAssignLevel] = AC.iPointer - AC.iBuffer; }

Definition at line 328 of file declare.h.

◆ POPPREASSIGNLEVEL

#define POPPREASSIGNLEVEL
Value:
if ( AP.PreAssignLevel > 0 ) { GETIDENTITY \
AC.iPointer = AC.iBuffer + AP.PreAssignStack[AP.PreAssignLevel--]; \
AP.PreContinuation = *--AT.WorkPointer; \
*AC.iPointer = 0; }

Definition at line 338 of file declare.h.

◆ EXTERNLOCK

#define EXTERNLOCK (   x)

NOTE: We have replaced LOCK(ErrorMessageLock) and UNLOCK(ErrorMessageLock) by MLOCK(ErrorMessageLock) and MUNLOCK(ErrorMessageLock). They are used for the synchronised output in ParFORM. (TU 28 May 2011)

Definition at line 490 of file declare.h.

◆ INILOCK

#define INILOCK (   x)

Definition at line 491 of file declare.h.

◆ LOCK

#define LOCK (   x)

Definition at line 492 of file declare.h.

◆ UNLOCK

#define UNLOCK (   x)

Definition at line 493 of file declare.h.

◆ EXTERNRWLOCK

#define EXTERNRWLOCK (   x)

Definition at line 494 of file declare.h.

◆ INIRWLOCK

#define INIRWLOCK (   x)

Definition at line 495 of file declare.h.

◆ RWLOCKR

#define RWLOCKR (   x)

Definition at line 496 of file declare.h.

◆ RWLOCKW

#define RWLOCKW (   x)

Definition at line 497 of file declare.h.

◆ UNRWLOCK

#define UNRWLOCK (   x)

Definition at line 498 of file declare.h.

◆ MLOCK

#define MLOCK (   x)

Definition at line 503 of file declare.h.

◆ MUNLOCK

#define MUNLOCK (   x)

Definition at line 504 of file declare.h.

◆ GETIDENTITY

#define GETIDENTITY

Definition at line 506 of file declare.h.

◆ GETBIDENTITY

#define GETBIDENTITY

Definition at line 507 of file declare.h.

◆ M_alloc

#define M_alloc (   x)    malloc((size_t)(x))

Definition at line 1018 of file declare.h.

◆ CompareTerms

#define CompareTerms   ((COMPARE)AR.CompareRoutine)

Definition at line 1480 of file declare.h.

◆ FiniShuffle

#define FiniShuffle   AN.SHvar.finishuf

Definition at line 1481 of file declare.h.

◆ DoShtuffle

#define DoShtuffle   ((DO_UFFLE)AN.SHvar.do_uffle)

Definition at line 1482 of file declare.h.

Typedef Documentation

◆ WRITEBUFTOEXTCHANNEL

typedef int(* WRITEBUFTOEXTCHANNEL) (char *, size_t)

Definition at line 1473 of file declare.h.

◆ GETCFROMEXTCHANNEL

typedef int(* GETCFROMEXTCHANNEL) (void)

Definition at line 1474 of file declare.h.

◆ SETTERMINATORFOREXTERNALCHANNEL

typedef int(* SETTERMINATORFOREXTERNALCHANNEL) (char *)

Definition at line 1475 of file declare.h.

◆ SETKILLMODEFOREXTERNALCHANNEL

typedef int(* SETKILLMODEFOREXTERNALCHANNEL) (int, int)

Definition at line 1476 of file declare.h.

◆ WRITEFILE

typedef LONG(* WRITEFILE) (int, UBYTE *, LONG)

Definition at line 1477 of file declare.h.

◆ GETTERM

typedef WORD(* GETTERM) (PHEAD WORD *)

Definition at line 1478 of file declare.h.

Function Documentation

◆ TELLFILE()

void TELLFILE ( int  handle,
POSITION position 
)
extern

Definition at line 1408 of file tools.c.

◆ StartVariables()

void StartVariables ( void  )
extern

All functions (well, nearly all) are declared here.

Definition at line 952 of file startup.c.

References AddNtoC(), AddRHS(), Compare1(), inicbufs(), FuNcTiOn::name, PF_BroadcastNumber(), PutPreVar(), and FuNcTiOn::symmetric.

Here is the call graph for this function:

◆ CodeToLine()

UBYTE * CodeToLine ( WORD  number,
UBYTE *  Out 
)
extern

Definition at line 640 of file sch.c.

◆ AddArrayIndex()

UBYTE * AddArrayIndex ( WORD  num,
UBYTE *  out 
)
extern

Definition at line 678 of file sch.c.

◆ FindInIndex()

INDEXENTRY * FindInIndex ( WORD  expr,
FILEDATA f,
WORD  par,
WORD  mode 
)
extern

Definition at line 2664 of file store.c.

◆ NextFileIndex()

INDEXENTRY * NextFileIndex ( POSITION indexpos)
extern

Definition at line 2257 of file store.c.

◆ PasteTerm()

WORD * PasteTerm ( PHEAD WORD  number,
WORD *  accum,
WORD *  position,
WORD  times,
WORD  divby 
)
extern

Puts the term at position in the accumulator accum at position 'number+1'. if times > 0 the coefficient of this term is multiplied by times/divby.

Parameters
numberThe number of term fragments in accum that should be skipped
accumThe accumulator of term fragments
positionA position in (typically) a compiler buffer from where a (piece of a) term comes.
timesMultiply the result by this
divbyDivide the result by this.

This routine is typically used when we have to replace a (sub)expression pointer by a power of a (sub)expression. This uses mostly a binomial expansion and the new term is the old term multiplied one by one by terms of the new expression. The factors times and divby keep track of the binomial coefficient. Once this is complete, the routine FiniTerm will make the contents of the accumulator into a proper term that still needs to be normalized.

Definition at line 2985 of file proces.c.

Referenced by Generator().

◆ StrCopy()

UBYTE * StrCopy ( UBYTE *  from,
UBYTE *  to 
)
extern

Definition at line 49 of file sch.c.

◆ WrtPower()

UBYTE * WrtPower ( UBYTE *  Out,
WORD  Power 
)
extern

Definition at line 720 of file sch.c.

◆ AccumGCD()

int AccumGCD ( PHEAD UWORD *  a,
WORD *  na,
UWORD *  b,
WORD  nb 
)
extern

Definition at line 648 of file reken.c.

◆ AddArgs()

void AddArgs ( PHEAD WORD *  s1,
WORD *  s2,
WORD *  m 
)
extern

Adds the arguments of two occurrences of the PolyFun.

Parameters
s1Pointer to the first occurrence.
s2Pointer to the second occurrence.
mPointer to where the answer should be.

Definition at line 2048 of file sort.c.

Referenced by AddPoly(), and MergePatches().

◆ AddCoef()

int AddCoef ( PHEAD WORD **  ps1,
WORD **  ps2 
)
extern

Adds the coefficients of the terms *ps1 and *ps2. The problem comes when there is not enough space for a new longer coefficient. First a local solution is tried. If this is not successful we need to move terms around. The possibility of a garbage collection should not be ignored, as avoiding this costs very much extra space which is nearly wasted otherwise.

If the return value is zero the terms cancelled.

The resulting term is left in *ps1.

Definition at line 1747 of file sort.c.

References GarbHand(), and NormalModulus().

Referenced by SplitMerge().

Here is the call graph for this function:

◆ AddLong()

int AddLong ( UWORD *  a,
WORD  na,
UWORD *  b,
WORD  nb,
UWORD *  c,
WORD *  nc 
)
extern

Definition at line 706 of file reken.c.

◆ AddPLon()

int AddPLon ( UWORD *  a,
WORD  na,
UWORD *  b,
WORD  nb,
UWORD *  c,
WORD *  nc 
)
extern

Definition at line 751 of file reken.c.

◆ AddPoly()

int AddPoly ( PHEAD WORD **  ps1,
WORD **  ps2 
)
extern

Routine should be called when S->PolyWise != 0. It points then to the position of AR.PolyFun in both terms.

We add the contents of the arguments of the two polynomials. Special attention has to be given to special arguments. We have to reserve a space equal to the size of one term + the size of the argument of the other. The addition has to be done in this routine because not all objects are reentrant.

Newer addition (12-nov-2007). The PolyFun can have two arguments. In that case S->PolyFlag is 2 and we have to call the routine for adding rational polynomials. We have to be rather careful what happens with: The location of the output The order of the terms in the arguments At first we allow only univariate polynomials in the PolyFun. This restriction will be lifted a.s.a.p.

Parameters
ps1A pointer to the position of the first term
ps2A pointer to the position of the second term
Returns
If zero the terms cancel. Otherwise the new term is in *ps1.

Definition at line 1876 of file sort.c.

References AddArgs(), GarbHand(), and poly_ratfun_add().

Referenced by SplitMerge().

Here is the call graph for this function:

◆ AddRat()

int AddRat ( PHEAD UWORD *  a,
WORD  na,
UWORD *  b,
WORD  nb,
UWORD *  c,
WORD *  nc 
)
extern

Definition at line 210 of file reken.c.

◆ AddToLine()

void AddToLine ( UBYTE *  s)
extern

Definition at line 64 of file sch.c.

◆ AddWild()

int AddWild ( PHEAD  WORD,
WORD  type,
WORD  newnumber 
)
extern

Definition at line 1544 of file wildcard.c.

◆ BigLong()

int BigLong ( UWORD *  a,
WORD  na,
UWORD *  b,
WORD  nb 
)
extern

Definition at line 945 of file reken.c.

◆ BinomGen()

int BinomGen ( PHEAD WORD *  term,
WORD  level,
WORD **  tstops,
WORD  x1,
WORD  x2,
WORD  pow1,
WORD  pow2,
WORD  sign,
UWORD *  coef,
WORD  ncoef 
)
extern

Definition at line 320 of file ratio.c.

◆ CheckWild()

int CheckWild ( PHEAD  WORD,
WORD  type,
WORD  newnumber,
WORD *  newval 
)
extern

Definition at line 1791 of file wildcard.c.

◆ Chisholm()

int Chisholm ( PHEAD WORD *  term,
WORD  level 
)
extern

Definition at line 1966 of file opera.c.

◆ CleanExpr()

int CleanExpr ( WORD  par)
extern

Definition at line 47 of file execute.c.

◆ CleanUp()

void CleanUp ( WORD  par)
extern

Definition at line 1833 of file startup.c.

◆ ClearWild()

void ClearWild ( PHEAD0  )
extern

Definition at line 1518 of file wildcard.c.

◆ CompareFunctions()

int CompareFunctions ( WORD *  fleft,
WORD *  fright 
)
extern

Definition at line 55 of file normal.c.

◆ Commute()

int Commute ( WORD *  fleft,
WORD *  fright 
)
extern

Definition at line 119 of file normal.c.

◆ DetCommu()

WORD DetCommu ( WORD *  terms)
extern

Definition at line 4561 of file normal.c.

◆ DoesCommu()

WORD DoesCommu ( WORD *  term)
extern

Definition at line 4620 of file normal.c.

◆ CompArg()

int CompArg ( WORD *  s1,
WORD *  s2 
)
extern

Definition at line 3243 of file tools.c.

◆ CompCoef()

WORD CompCoef ( WORD *  term1,
WORD *  term2 
)
extern
Routine takes a1 mod m1 and a2 mod m2 and returns a mod m1*m2 with
a mod m1 = a1 and a mod m2 = a2

Chinese remainder: a%(m1*m2) = q1*m1+a1 a%(m1*m2) = q2*m2+a2 Compute n1 such that (n1*m1)m2 is one Compute n2 such that (n2*m2)m1 is one Then (a1*n2*m2+a2*n1*m1)%(m1*m2) is a%(m1*m2)

Definition at line 3048 of file reken.c.

Referenced by Compare1().

◆ CompGroup()

int CompGroup ( PHEAD  WORD,
WORD **  args,
WORD *  a1,
WORD *  a2,
WORD  num 
)
extern

Definition at line 373 of file function.c.

◆ Compare1()

WORD Compare1 ( PHEAD WORD *  term1,
WORD *  term2,
WORD  level 
)
extern

Compares two terms. The answer is: 0 equal ( with exception of the coefficient if level == 0. ) >0 term1 comes first. <0 term2 comes first. Some special precautions may be needed to keep the CompCoef routine from generating overflows, although this is very unlikely in subterms. This routine should not return an error condition.

Originally this routine was called Compare. With the treatment of special polynomials with terms that contain only symbols and the need for extreme speed for the polynomial routines we made a special compare routine and now we store the address of the current compare routine in AR.CompareRoutine and have a macro Compare which makes all existing code work properly and we can just replace the routine on a thread by thread basis (each thread has its own AR struct).

Parameters
term1First input term
term2Second input term
levelThe sorting level (may influence on the result)
Returns
0 equal ( with exception of the coefficient if level == 0. ) >0 term1 comes first. <0 term2 comes first.

When there are floating point numbers active (float_ = FLOATFUN) the presence of one or more float_ functions is returned in AT.SortFloatMode: 0: no float_ 1: float_ in term1 only 2: float_ in term2 only 3: float_ in both terms

Definition at line 2341 of file sort.c.

References CompCoef().

Referenced by InFunction(), poly_sort(), and StartVariables().

Here is the call graph for this function:

◆ CountDo()

WORD CountDo ( WORD *  term,
WORD *  instruct 
)
extern

Definition at line 552 of file reshuf.c.

◆ CountFun()

WORD CountFun ( WORD *  term,
WORD *  countfun 
)
extern

Definition at line 706 of file reshuf.c.

◆ DimensionSubterm()

WORD DimensionSubterm ( WORD *  subterm)
extern

Definition at line 867 of file reshuf.c.

◆ DimensionTerm()

WORD DimensionTerm ( WORD *  term)
extern

Definition at line 968 of file reshuf.c.

◆ DimensionExpression()

WORD DimensionExpression ( PHEAD WORD *  expr)
extern

Definition at line 1000 of file reshuf.c.

◆ Deferred()

int Deferred ( PHEAD WORD *  term,
WORD  level 
)
extern

Picks up the deferred brackets. These are the bracket contents of which we postpone the reading when we use the 'Keep Brackets' statement. These contents are multiplying the terms just before they are sent to the sorting system. Special attention goes to having it thread-safe We have to lock positioning the file and reading it in a thread specific buffer.

Parameters
termThe term that must be multiplied by the contents of the current bracket
levelThe compiler level. This is needed because after multiplying term by term we call Generator again.

Definition at line 4837 of file proces.c.

References Generator(), and InsertTerm().

Referenced by Generator().

Here is the call graph for this function:

◆ DeleteStore()

int DeleteStore ( WORD  par)
extern

Definition at line 772 of file store.c.

◆ DetCurDum()

WORD DetCurDum ( PHEAD WORD *  t)
extern

Definition at line 252 of file reshuf.c.

◆ DetVars()

void DetVars ( WORD *  term,
WORD  par 
)
extern

Definition at line 1829 of file store.c.

◆ Distribute()

int Distribute ( DISTRIBUTE d,
WORD  first 
)
extern

Definition at line 510 of file symmetr.c.

◆ DivLong()

int DivLong ( UWORD *  a,
WORD  na,
UWORD *  b,
WORD  nb,
UWORD *  c,
WORD *  nc,
UWORD *  d,
WORD *  nd 
)
extern

Definition at line 973 of file reken.c.

◆ DivRat()

int DivRat ( PHEAD UWORD *  a,
WORD  na,
UWORD *  b,
WORD  nb,
UWORD *  c,
WORD *  nc 
)
extern

Definition at line 500 of file reken.c.

◆ Divvy()

int Divvy ( PHEAD UWORD *  a,
WORD *  na,
UWORD *  b,
WORD  nb 
)
extern

Definition at line 172 of file reken.c.

◆ DoDelta()

int DoDelta ( WORD *  t)
extern

Definition at line 4406 of file normal.c.

◆ DoDelta3()

int DoDelta3 ( PHEAD WORD *  term,
WORD  level 
)
extern

Definition at line 1405 of file reshuf.c.

◆ TestPartitions()

int TestPartitions ( WORD *  tfun,
PARTI parti 
)
extern

Definition at line 1607 of file reshuf.c.

◆ DoPartitions()

int DoPartitions ( PHEAD WORD *  term,
WORD  level 
)
extern

Definition at line 1722 of file reshuf.c.

◆ CoCanonicalize()

int CoCanonicalize ( UBYTE *  s)
extern

Definition at line 64 of file diagrams.c.

◆ DoCanonicalize()

int DoCanonicalize ( PHEAD WORD *  term,
WORD *  params 
)
extern

Definition at line 185 of file diagrams.c.

◆ GenDiagrams()

int GenDiagrams ( PHEAD WORD *  term,
WORD  level 
)
extern

Definition at line 806 of file diawrap.cc.

◆ DoTopologyCanonicalize()

int DoTopologyCanonicalize ( PHEAD WORD *  term,
WORD  vert,
WORD  edge,
WORD *  args 
)
extern

Definition at line 346 of file diagrams.c.

◆ DoShattering()

int DoShattering ( PHEAD WORD *  connect,
WORD *  environ,
WORD *  partitions,
WORD  nvert 
)
extern

Definition at line 555 of file diagrams.c.

◆ DoTableExpansion()

int DoTableExpansion ( WORD *  term,
WORD  level 
)
extern

Definition at line 334 of file tables.c.

◆ DoDistrib()

int DoDistrib ( PHEAD WORD *  term,
WORD  level 
)
extern

Definition at line 1119 of file reshuf.c.

◆ DoShuffle()

int DoShuffle ( WORD *  term,
WORD  level,
WORD  fun,
WORD  option 
)
extern

Definition at line 2095 of file reshuf.c.

◆ DoPermutations()

int DoPermutations ( PHEAD WORD *  term,
WORD  level 
)
extern

Definition at line 2007 of file reshuf.c.

◆ Shuffle()

int Shuffle ( WORD *  from1,
WORD *  from2,
WORD *  to 
)
extern

Definition at line 2229 of file reshuf.c.

◆ FinishShuffle()

int FinishShuffle ( WORD *  fini)
extern

Definition at line 2421 of file reshuf.c.

◆ DoStuffle()

int DoStuffle ( WORD *  term,
WORD  level,
WORD  fun,
WORD  option 
)
extern

Definition at line 2487 of file reshuf.c.

◆ Stuffle()

int Stuffle ( WORD *  from1,
WORD *  from2,
WORD *  to 
)
extern

Definition at line 2702 of file reshuf.c.

◆ FinishStuffle()

int FinishStuffle ( WORD *  fini)
extern

Definition at line 2829 of file reshuf.c.

◆ StuffRootAdd()

WORD * StuffRootAdd ( WORD *  t1,
WORD *  t2,
WORD *  to 
)
extern

Definition at line 2876 of file reshuf.c.

◆ TestUse()

int TestUse ( WORD *  term,
WORD  level 
)
extern

Definition at line 1414 of file tables.c.

◆ FindTB()

DBASE * FindTB ( UBYTE *  name)
extern

Definition at line 734 of file tables.c.

◆ CheckTableDeclarations()

int CheckTableDeclarations ( DBASE d)
extern

Definition at line 1178 of file tables.c.

◆ Apply()

void Apply ( WORD *  term,
WORD  level 
)
extern

Definition at line 1981 of file tables.c.

◆ ApplyExec()

int ApplyExec ( WORD *  term,
int  maxtogo,
WORD  level 
)
extern

Definition at line 2039 of file tables.c.

◆ ApplyReset()

void ApplyReset ( WORD  level)
extern

Definition at line 2256 of file tables.c.

◆ TableReset()

void TableReset ( void  )
extern

Definition at line 2291 of file tables.c.

◆ ReWorkT()

void ReWorkT ( WORD *  term,
WORD *  funs,
WORD  numfuns 
)
extern

Definition at line 1900 of file tables.c.

◆ GetIfDollarNum()

WORD GetIfDollarNum ( WORD *  ifp,
WORD *  ifstop 
)
extern

Definition at line 106 of file if.c.

◆ FindVar()

int FindVar ( WORD *  v,
WORD *  term 
)
extern

Definition at line 173 of file if.c.

◆ DoIfStatement()

int DoIfStatement ( PHEAD WORD *  ifcode,
WORD *  term 
)
extern

Definition at line 280 of file if.c.

◆ DoOnePow()

int DoOnePow ( PHEAD WORD *  term,
WORD  power,
WORD  nexp,
WORD *  accum,
WORD *  aa,
WORD  level,
WORD *  freeze 
)
extern

Routine gets one power of an expression in the scratch system. If there are more powers needed there will be a recursion.

No attempt is made to use binomials because we have no information about commuting properties.

There is a searching for the contents of brackets if needed. This searching may be rather slow because of the single links.

Parameters
termis the term we are adding to.
poweris the power of the expression that we need.
nexpis the number of the expression.
accumis the accumulator of terms. It accepts the termfragments that are made into a proper term in FiniTerm
aapoints to the start of the entire accumulator. In *aa we store the number of term fragments that are in the accumulator.
levelis the current depth in the tree of statements. It is needed to continue to the next operation/substitution with each generated term
freezeis the pointer to the bracket information that should be matched.

Definition at line 4616 of file proces.c.

References DoOnePow(), FiniTerm(), Generator(), and FiLe::handle.

Referenced by DoOnePow(), and Generator().

Here is the call graph for this function:

◆ DoRevert()

void DoRevert ( WORD *  fun,
WORD *  tmp 
)
extern

Definition at line 4473 of file normal.c.

◆ DoSumF1()

int DoSumF1 ( PHEAD WORD *  term,
WORD *  params,
WORD  replac,
WORD  level 
)
extern

Definition at line 395 of file ratio.c.

◆ DoSumF2()

int DoSumF2 ( PHEAD WORD *  term,
WORD *  params,
WORD  replac,
WORD  level 
)
extern

Definition at line 520 of file ratio.c.

◆ DoTheta()

int DoTheta ( PHEAD WORD *  t)
extern

Definition at line 4309 of file normal.c.

◆ EndSort()

LONG EndSort ( PHEAD WORD *  buffer,
int  par 
)
extern

Finishes a sort. At AR.sLevel == 0 the output is to the regular output stream. When AR.sLevel > 0, the parameter par determines the actual output. The AR.sLevel will be popped. All ongoing stages are finished and if the sortfile is open it is closed. The statistics are printed when AR.sLevel == 0 par == 0 Output to the buffer. par == 1 Sort for function arguments. The output will be copied into the buffer. It is assumed that this is in the WorkSpace. par == 2 Sort for $-variable. We return the address of the buffer that contains the output in buffer (treated like WORD **). We first catch the output in a file (unless we can intercept things after the small buffer has been sorted) Then we read from the file into a buffer. Only when par == 0 data compression can be attempted at AT.SS==AT.S0.

Parameters
bufferbuffer for output when needed
parSee above
Returns
If negative: error. If positive: number of words in output.

Definition at line 454 of file sort.c.

References ComPress(), FlushOut(), MergePatches(), PF_EndSort(), PutOut(), SplitMerge(), StageSort(), and WriteStats().

Referenced by generate_expression(), get_expression(), InFunction(), MakeDollarInteger(), MakeDollarMod(), PF_CollectModifiedDollars(), PF_Processor(), poly_factorize_expression(), poly_sort(), poly_unfactorize_expression(), PolyFunMul(), Processor(), TakeArgContent(), and TestMatch().

Here is the call graph for this function:

◆ EntVar()

int EntVar ( WORD  type,
UBYTE *  name,
WORD  x,
WORD  y,
WORD  z,
WORD  d 
)
extern

Definition at line 557 of file names.c.

◆ EpfCon()

int EpfCon ( PHEAD WORD *  term,
WORD *  params,
WORD  num,
WORD  level 
)
extern

Definition at line 212 of file opera.c.

◆ EpfFind()

int EpfFind ( PHEAD WORD *  term,
WORD *  params 
)
extern

Definition at line 58 of file opera.c.

◆ EpfGen()

WORD EpfGen ( WORD  number,
WORD *  inlist,
WORD *  kron,
WORD *  perm,
WORD  sgn 
)
extern

Definition at line 282 of file opera.c.

◆ EqualArg()

int EqualArg ( WORD *  parms,
WORD  num1,
WORD  num2 
)
extern

Definition at line 1379 of file reshuf.c.

◆ Factorial()

int Factorial ( PHEAD  WORD,
UWORD *  a,
WORD *  na 
)
extern

Definition at line 3450 of file reken.c.

◆ Bernoulli()

int Bernoulli ( WORD  n,
UWORD *  a,
WORD *  na 
)
extern

Definition at line 3530 of file reken.c.

◆ FactorIn()

int FactorIn ( PHEAD WORD *  term,
WORD  level 
)
extern

Definition at line 46 of file factor.c.

◆ FactorInExpr()

int FactorInExpr ( PHEAD WORD *  term,
WORD  level 
)
extern

Definition at line 421 of file factor.c.

◆ FindAll()

int FindAll ( PHEAD WORD *  term,
WORD *  pattern,
WORD  level,
WORD *  par 
)
extern

Definition at line 1197 of file pattern.c.

◆ FindMulti()

WORD FindMulti ( PHEAD WORD *  term,
WORD *  pattern 
)
extern

Definition at line 954 of file findpat.c.

◆ FindOnce()

int FindOnce ( PHEAD WORD *  term,
WORD *  pattern 
)
extern

Definition at line 419 of file findpat.c.

◆ FindOnly()

int FindOnly ( PHEAD WORD *  term,
WORD *  pattern 
)
extern

Definition at line 61 of file findpat.c.

◆ FindRest()

int FindRest ( PHEAD WORD *  term,
WORD *  pattern 
)
extern

Definition at line 1070 of file findpat.c.

◆ FindrNumber()

WORD FindrNumber ( WORD  n,
VARRENUM v 
)
extern

Definition at line 2587 of file store.c.

◆ FiniLine()

void FiniLine ( void  )
extern

Definition at line 164 of file sch.c.

◆ FiniTerm()

int FiniTerm ( PHEAD WORD *  term,
WORD *  accum,
WORD *  termout,
WORD  number,
WORD  tepos 
)
extern

Concatenates the contents of the accumulator into a single legal term, which replaces the subexpression pointer

Parameters
termthe input term with the (sub)expression subterm
accumthe accumulator with the term fragments
termoutthe location where the output should be written
numberthe number of term fragments in the accumulator
teposthe position of the subterm in term to be replaced

Definition at line 3050 of file proces.c.

Referenced by DoOnePow(), and Generator().

◆ FlushOut()

int FlushOut ( POSITION position,
FILEHANDLE fi,
int  compr 
)
extern

Completes output to an output file and writes the trailing zero.

Parameters
positionThe position in the file after writing
fiThe file (or its cache)
comprIndicates whether there should be compression with gzip.
Returns
Regular conventions (OK -> 0).

Definition at line 1533 of file sort.c.

References FiLe::handle, BrAcKeTiNfO::indexbuffer, and PF_ISendSbuf().

Referenced by EndSort(), MergePatches(), PF_EndSort(), and Processor().

Here is the call graph for this function:

◆ FunLevel()

void FunLevel ( PHEAD WORD *  term)
extern

Definition at line 130 of file reshuf.c.

◆ AdjustRenumScratch()

void AdjustRenumScratch ( PHEAD0  )
extern

Definition at line 506 of file reshuf.c.

◆ GarbHand()

void GarbHand ( void  )
extern

Garbage collection that takes place when the small extension is full and we need to place more terms there. When this is the case there are many holes in the small buffer and the whole can be compactified. The major complication is the buffer for SplitMerge. There are to options for temporary memory: 1: find some buffer that has enough space (maybe in the large buffer). 2: allocate a buffer. Give it back afterwards of course. If the small extension is properly dimensioned this routine should be called very rarely. Most of the time it will be called when the polyfun or polyratfun is active.

Definition at line 3346 of file sort.c.

Referenced by AddCoef(), and AddPoly().

◆ GcdLong()

int GcdLong ( PHEAD UWORD *  a,
WORD  na,
UWORD *  b,
WORD  nb,
UWORD *  c,
WORD *  nc 
)
extern

Definition at line 2277 of file reken.c.

◆ LcmLong()

int LcmLong ( PHEAD UWORD *  a,
WORD  na,
UWORD *  b,
WORD  nb,
UWORD *  c,
WORD *  nc 
)
extern

Definition at line 2702 of file reken.c.

◆ Generator()

int Generator ( PHEAD WORD *  term,
WORD  level 
)
extern

The heart of the program. Here the expansion tree is set up in one giant recursion

Parameters
termthe input term. may be overwritten
levelthe level in the compiler buffer (number of statement)
Returns
Normal conventions (OK = 0).

The routine looks first whether there are unsubstituted (sub)expressions. If so, one of them gets inserted term by term and the new term is used in a renewed call to Generator. If there are no (sub)expressions, the term is normalized, the compiler level is raised (next statement) and the program looks what type of statement this is. If this is a special statement it is either treated on the spot or the appropriate routine is called. If it is a substitution, the pattern matcher is called (TestMatch) which tells whether there was a match. If so we need to call TestSub again to test for (sub)expressions. If we run out of levels, the term receives a final treatment for modulus calculus and/or brackets and is then sent off to the sorting routines.

Definition at line 3249 of file proces.c.

References Deferred(), DoOnePow(), FiniTerm(), Generator(), InFunction(), InsertTerm(), CbUf::lhs, VaRrEnUm::lo, PasteFile(), PasteTerm(), PF_Deferred(), CbUf::Pointer, PolyFunMul(), PrepPoly(), PutPreVar(), CbUf::rhs, StoreTerm(), ReNuMbEr::symb, and TestMatch().

Referenced by Deferred(), DoOnePow(), generate_expression(), Generator(), InFunction(), MakeDollarInteger(), MakeDollarMod(), PF_CollectModifiedDollars(), PF_Deferred(), PF_Processor(), poly_factorize_expression(), poly_unfactorize_expression(), Processor(), and TestMatch().

Here is the call graph for this function:

◆ GetBinom()

int GetBinom ( UWORD *  a,
WORD *  na,
WORD  i1,
WORD  i2 
)
extern

Definition at line 2668 of file reken.c.

◆ GetFromStore()

WORD GetFromStore ( WORD *  to,
POSITION position,
RENUMBER  renumber,
WORD *  InCompState,
WORD  nexpr 
)
extern

Definition at line 1628 of file store.c.

◆ GetLong()

int GetLong ( UBYTE *  s,
UWORD *  a,
WORD *  na 
)
extern

Definition at line 1775 of file reken.c.

◆ GetMoreTerms()

WORD GetMoreTerms ( WORD *  term)
extern

Definition at line 1425 of file store.c.

◆ GetMoreFromMem()

int GetMoreFromMem ( WORD *  term,
WORD **  tpoin 
)
extern

Definition at line 1521 of file store.c.

◆ GetOneTerm()

WORD GetOneTerm ( PHEAD WORD *  term,
FILEHANDLE fi,
POSITION pos,
int  par 
)
extern

Definition at line 1267 of file store.c.

◆ GetTable()

RENUMBER GetTable ( WORD  expr,
POSITION position,
WORD  mode 
)
extern

Definition at line 2825 of file store.c.

◆ GetTerm()

WORD GetTerm ( PHEAD WORD *  term)
extern

Definition at line 992 of file store.c.

◆ Glue()

int Glue ( PHEAD WORD *  term1,
WORD *  term2,
WORD *  sub,
WORD  insert 
)
extern

Definition at line 461 of file ratio.c.

◆ InFunction()

int InFunction ( PHEAD WORD *  term,
WORD *  termout 
)
extern

Makes the replacement of the subexpression with the number 'replac' in a function argument. Additional information is passed in some of the AR, AN, AT variables.

Parameters
termThe input term
termoutThe output term
Returns
0: everything is fine, Negative: fatal, Positive: error.

Special attention should be given to nested functions!

Definition at line 2160 of file proces.c.

References Compare1(), CompareSymbols(), EndSort(), Generator(), LowerSortLevel(), NewSort(), StoreTerm(), and SymbolNormalize().

Referenced by Generator().

Here is the call graph for this function:

◆ IniLine()

void IniLine ( WORD  extrablank)
extern

Definition at line 249 of file sch.c.

◆ IniVars()

void IniVars ( void  )
extern

Definition at line 1424 of file startup.c.

◆ InsertTerm()

int InsertTerm ( PHEAD WORD *  term,
WORD  replac,
WORD  extractbuff,
WORD *  position,
WORD *  termout,
WORD  tepos 
)
extern

Puts the terms 'term' and 'position' together into a single legal term in termout. replac is the number of the subexpression that should be replaced. It must be a positive term. When action is needed in the argument of a function all terms in that argument are dealt with recursively. The subexpression is sorted. Only one subexpression is done at a time this way.

Parameters
termthe input term
replacnumber of the subexpression pointer to replace
extractbuffnumber of the compiler buffer replac refers to
positionposition from where to take the term in the compiler buffer
termoutthe output term
teposoffset in term where the subexpression is.
Returns
Normal conventions (OK = 0).

Definition at line 2727 of file proces.c.

Referenced by Deferred(), Generator(), and PF_Deferred().

◆ LongToLine()

void LongToLine ( UWORD *  a,
WORD  na 
)
extern

Definition at line 285 of file sch.c.

◆ MakeDirty()

int MakeDirty ( WORD *  term,
WORD *  x,
WORD  par 
)
extern

Definition at line 51 of file function.c.

◆ MarkDirty()

void MarkDirty ( WORD *  term,
WORD  flags 
)
extern

Definition at line 97 of file function.c.

◆ PolyFunDirty()

void PolyFunDirty ( PHEAD WORD *  term)
extern

Definition at line 139 of file function.c.

◆ PolyFunClean()

void PolyFunClean ( PHEAD WORD *  term)
extern

Definition at line 174 of file function.c.

◆ MakeModTable()

int MakeModTable ( void  )
extern

Definition at line 3364 of file reken.c.

◆ MatchE()

int MatchE ( PHEAD WORD *  pattern,
WORD *  fun,
WORD *  inter,
WORD  par 
)
extern

Definition at line 56 of file symmetr.c.

◆ MatchCy()

int MatchCy ( PHEAD WORD *  pattern,
WORD *  fun,
WORD *  inter,
WORD  par 
)
extern

Definition at line 571 of file symmetr.c.

◆ FunMatchCy()

int FunMatchCy ( PHEAD WORD *  pattern,
WORD *  fun,
WORD *  inter,
WORD  par 
)
extern

Definition at line 1067 of file symmetr.c.

◆ FunMatchSy()

int FunMatchSy ( PHEAD WORD *  pattern,
WORD *  fun,
WORD *  inter,
WORD  par 
)
extern

Definition at line 1525 of file symmetr.c.

◆ MatchArgument()

int MatchArgument ( PHEAD WORD *  arg,
WORD *  pat 
)
extern

Definition at line 2052 of file symmetr.c.

◆ MatchFunction()

int MatchFunction ( PHEAD WORD *  pattern,
WORD *  interm,
WORD *  wilds 
)
extern

Definition at line 826 of file function.c.

◆ MergePatches()

int MergePatches ( WORD  par)
extern

The general merge routine. Can be used for the large buffer and the file merging. The array S->Patches tells where the patches start S->pStop tells where they end (has to be computed first). The end of a 'line to be merged' is indicated by a zero. If the end is reached without running into a zero or a term runs over the boundary of a patch it is a file merging operation and a new piece from the file is read in.

Parameters
parIf par == 0 the sort is for file -> outputfile. If par == 1 the sort is for large buffer -> sortfile. If par == 2 the sort is for large buffer -> outputfile.

Definition at line 3461 of file sort.c.

References AddArgs(), FlushOut(), FiLe::handle, NormalModulus(), poly_ratfun_add(), PutIn(), PutOut(), Sflush(), and StageSort().

Referenced by EndSort(), and StoreTerm().

Here is the call graph for this function:

◆ MesCerr()

int MesCerr ( char *  s,
UBYTE *  t 
)
extern

Definition at line 812 of file message.c.

◆ MesComp()

int MesComp ( char *  s,
UBYTE *  p,
UBYTE *  q 
)
extern

Definition at line 831 of file message.c.

◆ Modulus()

int Modulus ( WORD *  term)
extern

Definition at line 3103 of file reken.c.

◆ MoveDummies()

void MoveDummies ( PHEAD WORD *  term,
WORD  shift 
)
extern

Definition at line 436 of file reshuf.c.

◆ MulLong()

int MulLong ( UWORD *  a,
WORD  na,
UWORD *  b,
WORD  nb,
UWORD *  c,
WORD *  nc 
)
extern

Definition at line 842 of file reken.c.

◆ MulRat()

int MulRat ( PHEAD UWORD *  a,
WORD  na,
UWORD *  b,
WORD  nb,
UWORD *  c,
WORD *  nc 
)
extern

Definition at line 378 of file reken.c.

◆ Mully()

int Mully ( PHEAD UWORD *  a,
WORD *  na,
UWORD *  b,
WORD  nb 
)
extern

Definition at line 126 of file reken.c.

◆ MultDo()

int MultDo ( PHEAD WORD *  term,
WORD *  pattern 
)
extern

Definition at line 1044 of file reshuf.c.

◆ NewSort()

int NewSort ( PHEAD0  )
extern

Starts a new sort. At the lowest level this is a 'main sort' with the struct according to the parameters in S0. At higher levels this is a sort for functions, subroutines or dollars. We prepare the arrays and structs.

Returns
Regular convention (OK -> 0)

Definition at line 359 of file sort.c.

Referenced by generate_expression(), get_expression(), InFunction(), MakeDollarInteger(), MakeDollarMod(), PF_CollectModifiedDollars(), PF_Processor(), poly_factorize_expression(), poly_sort(), poly_unfactorize_expression(), PolyFunMul(), Processor(), TakeArgContent(), and TestMatch().

◆ ExtraSymbol()

int ExtraSymbol ( WORD  sym,
WORD  pow,
WORD  nsym,
WORD *  ppsym,
WORD *  ncoef 
)
extern

Definition at line 4247 of file normal.c.

◆ Normalize()

int Normalize ( PHEAD WORD *  term)
extern

Definition at line 193 of file normal.c.

◆ BracketNormalize()

int BracketNormalize ( PHEAD WORD *  term)
extern

Definition at line 5325 of file normal.c.

◆ DropCoefficient()

void DropCoefficient ( PHEAD WORD *  term)
extern

Definition at line 5147 of file normal.c.

◆ DropSymbols()

void DropSymbols ( PHEAD WORD *  term)
extern

Definition at line 5165 of file normal.c.

◆ PutInside()

int PutInside ( PHEAD WORD *  term,
WORD *  code 
)
extern

Definition at line 609 of file index.c.

◆ OpenTemp()

void OpenTemp ( void  )
extern

Definition at line 48 of file store.c.

◆ Pack()

void Pack ( UWORD *  a,
WORD *  na,
UWORD *  b,
WORD  nb 
)
extern

Definition at line 62 of file reken.c.

◆ PasteFile()

LONG PasteFile ( PHEAD WORD  number,
WORD *  accum,
POSITION position,
WORD **  accfill,
RENUMBER  renumber,
WORD *  freeze,
WORD  nexpr 
)
extern

Gets a term from stored expression expr and puts it in the accumulator at position number. It returns the length of the term that came from file.

Parameters
numbernumber of partial terms to skip in accum
accumthe accumulator
positionfile position from where to get the stored term
accfillreturns tail position in accum
renumberthe renumber struct for the variables in the stored expression
freezeinformation about if we need only the contents of a bracket
nexprthe number of the stored expression
Returns
Normal conventions (OK = 0).

Definition at line 2863 of file proces.c.

Referenced by Generator().

◆ Permute()

int Permute ( PERM perm,
WORD  first 
)
extern

Definition at line 444 of file symmetr.c.

◆ PermuteP()

int PermuteP ( PERMP perm,
WORD  first 
)
extern

Definition at line 478 of file symmetr.c.

◆ PolyFunMul()

int PolyFunMul ( PHEAD WORD *  term)
extern

Multiplies the arguments of multiple occurrences of the polyfun. In this routine we do the original PolyFun with one argument only. The PolyRatFun (PolyFunType = 2) is done in a dedicated routine in the file polywrap.cc The new result is written over the old result.

Parameters
termIt contains the input term and later the output.
Returns
Normal conventions (OK = 0).

Definition at line 5353 of file proces.c.

References EndSort(), LowerSortLevel(), NewSort(), poly_ratfun_normalize(), and StoreTerm().

Referenced by Generator().

Here is the call graph for this function:

◆ PopVariables()

int PopVariables ( void  )
extern

Definition at line 211 of file execute.c.

◆ PrepPoly()

int PrepPoly ( PHEAD WORD *  term,
WORD  par 
)
extern

Routine checks whether the count of function AR.PolyFun is zero or one. If it is one and it has one scalarlike argument the coefficient of the term is pulled inside the argument. If the count is zero a new function is made with the coefficient as its only argument. The function should be placed at its proper position.

When this function is active it places the PolyFun as last object before the coefficient. This is needed because otherwise the compress algorithm has problems in MergePatches.

The bracket routine should also place the PolyFun at a comparable spot. The compression should then stop at the PolyFun. It doesn't really have to stop when writing the final result but this may be too complicated.

The parameter par tells whether we are at groundlevel or inside a function or dollar variable.

Definition at line 4965 of file proces.c.

References poly_ratfun_normalize().

Referenced by Generator().

Here is the call graph for this function:

◆ Processor()

int Processor ( void  )
extern

This is the central processor. It accepts a stream of Expressions which is accessed by calls to GetTerm. The expressions reside either in AR.infile or AR.hidefile The definitions of an expression are seen as an id-statement, so the primary Expressions should be written to the system of scratch files as single terms with an expression pointer. Each expression is terminated with a zero and the whole is terminated by two zeroes.

The routine DoExecute should determine whether results are to be printed, should revert the scratch I/O directions etc. In principle it is DoExecute that calls Processor.

Returns
if everything OK: 0. Otherwise error. The preprocessor may continue with compilation though. Really fatal errors should return on the spot by calling Terminate.

Definition at line 64 of file proces.c.

References CbUf::Buffer, EndSort(), FlushOut(), Generator(), CbUf::lhs, LowerSortLevel(), NewSort(), PF_BroadcastRHS(), PF_InParallelProcessor(), PF_Processor(), CbUf::Pointer, poly_factorize_expression(), poly_unfactorize_expression(), PutOut(), CbUf::rhs, and StoreTerm().

Here is the call graph for this function:

◆ Product()

int Product ( UWORD *  a,
WORD *  na,
WORD  b 
)
extern

Definition at line 1586 of file reken.c.

◆ PrtLong()

void PrtLong ( UWORD *  a,
WORD  na,
UBYTE *  s 
)
extern

Definition at line 1713 of file reken.c.

◆ PrtTerms()

void PrtTerms ( void  )
extern

Definition at line 698 of file sch.c.

◆ PrintDeprecation()

void PrintDeprecation ( const char *  feature,
const char *  issue 
)
extern

Prints a deprecation warning for a given feature.

Parameters
featureThe name of the deprecated feature.
issueThe associated issue, e.g., "issues/700".

Definition at line 2142 of file startup.c.

◆ PrintFeatureList()

void PrintFeatureList ( void  )
extern

Prints the list of available features.

Definition at line 131 of file features.cc.

◆ PrintRunningTime()

void PrintRunningTime ( void  )
extern

Definition at line 2166 of file startup.c.

◆ GetRunningTime()

LONG GetRunningTime ( void  )
extern

Definition at line 2207 of file startup.c.

◆ PutBracket()

int PutBracket ( PHEAD WORD *  termin)
extern

Definition at line 1112 of file execute.c.

◆ PutIn()

LONG PutIn ( FILEHANDLE file,
POSITION position,
WORD *  buffer,
WORD **  take,
int  npat 
)
extern

Reads a new patch from position in file handle. It is put at buffer, anything after take is moved forward. This would be part of a term that hasn't been used yet. Because of this there should be some space before the start of the buffer

Parameters
fileThe file system from which to read
positionThe position from which to read
bufferThe buffer into which to read
takeThe unused tail should be moved before the buffer
npatThe number of the patch. Is needed if the information was compressed with gzip, because each patch has its own independent gzip encoding.

Definition at line 1025 of file sort.c.

References FiLe::handle.

Referenced by MergePatches().

◆ PutInStore()

int PutInStore ( INDEXENTRY ind,
WORD  num 
)
extern

Definition at line 873 of file store.c.

◆ PutOut()

WORD PutOut ( PHEAD WORD *  term,
POSITION position,
FILEHANDLE fi,
WORD  ncomp 
)
extern

Routine writes one term to file handle at position. It returns the new value of the position.

NOTE: For 'final output' we may have to index the brackets. See the struct BRACKETINDEX. We should maintain: 1: a list with brackets array with the brackets 2: a list of objects of type BRACKETINDEX. It contains array with either pointers or offsets to the list of brackets. starting positions in the file. The index may be tied to a maximum size. In that case we may have to prune the list occasionally.

Parameters
termThe term to be written
positionThe position in the file. Afterwards it is updated
fiThe file (or its cache) to which should be written
ncompInformation about what type of compression should be used

Definition at line 1171 of file sort.c.

References FiLe::handle, and PF_ISendSbuf().

Referenced by EndSort(), generate_expression(), MergePatches(), PF_EndSort(), PF_Processor(), and Processor().

Here is the call graph for this function:

◆ Quotient()

UWORD Quotient ( UWORD *  a,
WORD *  na,
WORD  b 
)
extern

Definition at line 1621 of file reken.c.

◆ RaisPow()

int RaisPow ( PHEAD UWORD *  a,
WORD *  na,
UWORD  b 
)
extern

Definition at line 1229 of file reken.c.

◆ RaisPowCached()

void RaisPowCached ( PHEAD WORD  x,
WORD  n,
UWORD **  c,
WORD *  nc 
)
extern

Computes power x^n and caches the value

Description

Calculates the power x^n and stores the results for caching purposes. The pointer c (i.e., the pointer, and not what it points to) is overwritten. What it points to should not be overwritten in the calling function.

Notes

  • Caching is done in AT.small_power[]. This array is extended if necessary.

Definition at line 1297 of file reken.c.

Referenced by poly::divmod_heap(), poly::divmod_univar(), and poly::mul_heap().

◆ RaisPowMod()

WORD RaisPowMod ( WORD  x,
WORD  n,
WORD  m 
)
extern

Definition at line 1384 of file reken.c.

◆ NormalModulus()

int NormalModulus ( UWORD *  a,
WORD *  na 
)
extern

Brings a modular representation in the range -p/2 to +p/2 The return value tells whether anything was done. Routine made in the general modulus revamp of July 2008 (JV).

Definition at line 1404 of file reken.c.

Referenced by AddCoef(), and MergePatches().

◆ MakeInverses()

int MakeInverses ( void  )
extern

Makes a table of inverses in modular calculus The modulus is in AC.cmod and AC.ncmod One should notice that the table of inverses can only be made if the modulus fits inside a single FORM word. Otherwise the table lookup becomes too difficult and the table too long.

Definition at line 1441 of file reken.c.

References GetModInverses().

Here is the call graph for this function:

◆ GetModInverses()

int GetModInverses ( WORD  m1,
WORD  m2,
WORD *  im1,
WORD *  im2 
)
extern

Input m1 and m2, which are relative prime. determines a*m1+b*m2 = 1 (and 1 is the gcd of m1 and m2) then a*m1 = 1 mod m2 and hence im1 = a. and b*m2 = 1 mod m1 and hence im2 = b. Set m1 = 0*m1+1*m2 = a1*m1+b1*m2 m2 = 1*m1+0*m2 = a2*m1+b2*m2 If everything is OK, the return value is zero

Definition at line 1477 of file reken.c.

Referenced by poly::divmod_heap(), poly::divmod_univar(), MakeDollarMod(), MakeInverses(), MakeMod(), TakeContent(), and TakeSymbolContent().

◆ GetLongModInverses()

int GetLongModInverses ( PHEAD UWORD *  a,
WORD  na,
UWORD *  b,
WORD  nb,
UWORD *  ia,
WORD *  nia,
UWORD *  ib,
WORD *  nib 
)
extern

Definition at line 1509 of file reken.c.

◆ RatToLine()

void RatToLine ( UWORD *  a,
WORD  na 
)
extern

Definition at line 319 of file sch.c.

◆ RatioFind()

int RatioFind ( PHEAD WORD *  term,
WORD *  params 
)
extern

Definition at line 62 of file ratio.c.

◆ RatioGen()

int RatioGen ( PHEAD WORD *  term,
WORD *  params,
WORD  num,
WORD  level 
)
extern

Definition at line 170 of file ratio.c.

◆ ReNumber()

WORD ReNumber ( PHEAD WORD *  term)
extern

Definition at line 80 of file reshuf.c.

◆ ReadSnum()

WORD ReadSnum ( UBYTE **  p)
extern

Definition at line 2003 of file tools.c.

◆ Remain10()

WORD Remain10 ( UWORD *  a,
WORD *  na 
)
extern

Definition at line 1660 of file reken.c.

◆ Remain4()

WORD Remain4 ( UWORD *  a,
WORD *  na 
)
extern

Definition at line 1687 of file reken.c.

◆ ResetScratch()

int ResetScratch ( void  )
extern

Definition at line 234 of file store.c.

◆ ResolveSet()

int ResolveSet ( PHEAD WORD *  from,
WORD *  to,
WORD *  subs 
)
extern

Definition at line 1361 of file wildcard.c.

◆ RevertScratch()

int RevertScratch ( void  )
extern

Definition at line 189 of file store.c.

◆ ScanFunctions()

int ScanFunctions ( PHEAD WORD *  inpat,
WORD *  inter,
WORD  par 
)
extern

Definition at line 1618 of file function.c.

◆ SeekScratch()

void SeekScratch ( FILEHANDLE fi,
POSITION pos 
)
extern

Definition at line 63 of file store.c.

◆ SetEndScratch()

void SetEndScratch ( FILEHANDLE f,
POSITION position 
)
extern

Definition at line 74 of file store.c.

◆ SetEndHScratch()

void SetEndHScratch ( FILEHANDLE f,
POSITION position 
)
extern

Definition at line 88 of file store.c.

◆ SetFileIndex()

int SetFileIndex ( void  )
extern

Reads the next file index and puts it into AR.StoreData.Index. TODO

Returns
= 0 everything okay, != 0 an error occurred

Definition at line 2320 of file store.c.

References WriteStoreHeader().

Here is the call graph for this function:

◆ Sflush()

int Sflush ( FILEHANDLE fi)
extern

Puts the contents of a buffer to output Only to be used when there is a single patch in the large buffer.

Parameters
fiThe filesystem (or its cache) to which the patch should be written

Definition at line 1085 of file sort.c.

References FiLe::handle.

Referenced by MergePatches().

◆ Simplify()

int Simplify ( PHEAD UWORD *  a,
WORD *  na,
UWORD *  b,
WORD *  nb 
)
extern

Definition at line 531 of file reken.c.

◆ SortWild()

int SortWild ( WORD *  w,
WORD  nw 
)
extern

Sorts the wildcard entries in the parameter w. Double entries are removed. Full space taken is nw words. Routine serves for the reading of wildcards in the compiler. The entries come in the format: (type,4,number,0) in which the zero is reserved for the future replacement of 'number'.

Parameters
wbuffer with wildcard entries.
nwnumber of wildcard entries.
Returns
Normal conventions (OK -> 0)

Definition at line 4468 of file sort.c.

◆ LocateBase()

FILE * LocateBase ( char **  name,
char **  newname,
char *  iomode 
)
extern

Definition at line 225 of file minos.c.

◆ SplitMerge()

LONG SplitMerge ( PHEAD WORD **  Pointer,
LONG  number 
)
extern

Algorithm by J.A.M.Vermaseren (31-7-1988)

Note that AN.SplitScratch and AN.InScratch are used also in GarbHand

Merge sort in memory. The input is an array of pointers. Sorting is done recursively by dividing the array in two equal parts and calling SplitMerge for each. When the parts are small enough we can do the compare and take the appropriate action. An addition is that we look for 'runs'. Sequences that are already ordered. This happens a lot when there is very little action in a module. This made FORM faster by a few percent.

Parameters
PointerThe array of pointers to the terms to be sorted.
numberThe number of pointers in Pointer.

The terms are supposed to be sitting in the small buffer and there is supposed to be an extension to this buffer for when there are two terms that should be added and the result takes more space than each of the original terms. The notation guarantees that the result never needs more space than the sum of the spaces of the original terms.

Definition at line 3066 of file sort.c.

References AddCoef(), AddPoly(), and SplitMerge().

Referenced by EndSort(), SplitMerge(), and StoreTerm().

Here is the call graph for this function:

◆ StoreTerm()

int StoreTerm ( PHEAD WORD *  term)
extern

The central routine to accept terms, store them and keep things at least partially sorted. A call to EndSort will then complete storing and sorting.

Parameters
termThe term to be stored
Returns
Regular return conventions (OK -> 0)

Definition at line 4244 of file sort.c.

References ComPress(), MergePatches(), SplitMerge(), and WriteStats().

Referenced by Generator(), get_expression(), InFunction(), PF_Processor(), poly_sort(), PolyFunMul(), Processor(), and TakeArgContent().

Here is the call graph for this function:

◆ SubPLon()

void SubPLon ( UWORD *  a,
WORD  na,
UWORD *  b,
WORD  nb,
UWORD *  c,
WORD *  nc 
)
extern

Definition at line 804 of file reken.c.

◆ Substitute()

void Substitute ( PHEAD WORD *  term,
WORD *  pattern,
WORD  power 
)
extern

Definition at line 641 of file pattern.c.

◆ SymFind()

int SymFind ( PHEAD WORD *  term,
WORD *  params 
)
extern

Definition at line 633 of file function.c.

◆ SymGen()

int SymGen ( PHEAD WORD *  term,
WORD *  params,
WORD  num,
WORD  level 
)
extern

Definition at line 518 of file function.c.

◆ Symmetrize()

WORD Symmetrize ( PHEAD WORD *  func,
WORD *  Lijst,
WORD  ngroups,
WORD  gsize,
WORD  type 
)
extern

Definition at line 213 of file function.c.

◆ FullSymmetrize()

int FullSymmetrize ( PHEAD WORD *  fun,
int  type 
)
extern

Definition at line 473 of file function.c.

◆ TakeModulus()

int TakeModulus ( UWORD *  a,
WORD *  na,
UWORD *  cmodvec,
WORD  ncmod,
WORD  par 
)
extern

Definition at line 3150 of file reken.c.

◆ TakeNormalModulus()

int TakeNormalModulus ( UWORD *  a,
WORD *  na,
UWORD *  c,
WORD  nc,
WORD  par 
)
extern

Definition at line 3322 of file reken.c.

◆ TalToLine()

void TalToLine ( UWORD  x)
extern

Definition at line 504 of file sch.c.

◆ TenVec()

int TenVec ( PHEAD WORD *  term,
WORD *  params,
WORD  num,
WORD  level 
)
extern

Definition at line 2315 of file opera.c.

◆ TenVecFind()

int TenVecFind ( PHEAD WORD *  term,
WORD *  params 
)
extern

Definition at line 2181 of file opera.c.

◆ TermRenumber()

int TermRenumber ( WORD *  term,
RENUMBER  renumber,
WORD  nexpr 
)
extern

!! WORD *memterm=term; static LONG ctrap=0; !!!

!! ctrap++; !!!

Definition at line 2427 of file store.c.

References ReNuMbEr::func, ReNuMbEr::funnum, ReNuMbEr::indi, ReNuMbEr::indnum, ReNuMbEr::symb, ReNuMbEr::symnum, TermRenumber(), ReNuMbEr::vecnum, and ReNuMbEr::vect.

Referenced by TermRenumber().

Here is the call graph for this function:

◆ TestDrop()

void TestDrop ( void  )
extern

Definition at line 484 of file execute.c.

◆ PutInVflags()

void PutInVflags ( WORD  nexpr)
extern

Definition at line 562 of file execute.c.

◆ TestMatch()

int TestMatch ( PHEAD WORD *  term,
WORD *  level 
)
extern

This routine governs the pattern matching. If it decides that a substitution should be made, this can be either the insertion of a right hand side (C->rhs) or the automatic generation of terms as a result of an operation (like trace). The object to be replaced is removed from term and a subexpression pointer is inserted. If the substitution is made more than once there can be more subexpression pointers. Its number is positive as it corresponds to the level at which the C->rhs can be found in the compiler output. The subexpression pointer contains the wildcard substitution information. The power is found in *AT.TMout. For operations the subexpression pointer is negative and corresponds to an address in the array AT.TMout. In this array are then the instructions for the routine to be called and its number in the array 'Operations' The format is here: length,functionnumber,length-2 parameters

There is a certain complexity wrt repeat levels. Another complication is the poking of the wildcard values in the subexpression prototype in the compiler buffer. This was how things were done in the past with sequential FORM, but with the advent of TFORM this cannot be maintained. Now, for TFORM we make a copy of it. 7-may-2008 (JV): We cannot yet guarantee that this has been done 100% correctly. There are errors that occur in TFORM only and that may indicate problems.

Definition at line 97 of file pattern.c.

References AddRHS(), EndSort(), Generator(), CbUf::lhs, LowerSortLevel(), and NewSort().

Referenced by Generator().

Here is the call graph for this function:

◆ TestSub()

WORD TestSub ( PHEAD WORD *  term,
WORD  level 
)
extern

Definition at line 687 of file proces.c.

◆ TimeCPU()

LONG TimeCPU ( WORD  par)
extern

Returns the CPU time.

Parameters
parIf zero, the CPU time will be reset to 0.
Returns
The CPU time in milliseconds.

Definition at line 3487 of file tools.c.

Referenced by PF_GetSlaveTimes(), PF_Processor(), and WriteStats().

◆ TimeChildren()

LONG TimeChildren ( WORD  par)
extern

Definition at line 3469 of file tools.c.

◆ TimeWallClock()

LONG TimeWallClock ( WORD  par)
extern

Returns the wall-clock time.

Parameters
parIf zero, the wall-clock time will be reset to 0.
Returns
The wall-clock time in centiseconds.

Definition at line 3413 of file tools.c.

Referenced by DoCheckpoint(), DoRecovery(), find_Horner_MCTS(), optimize_expression_given_Horner(), optimize_greedy(), and WriteStats().

◆ ToStorage()

int ToStorage ( EXPRESSIONS  e,
POSITION length 
)
extern

Definition at line 2016 of file store.c.

◆ TokenToLine()

void TokenToLine ( UBYTE *  s)
extern

Definition at line 533 of file sch.c.

◆ Trace4()

int Trace4 ( PHEAD WORD *  term,
WORD *  params,
WORD  num,
WORD  level 
)
extern

Definition at line 695 of file opera.c.

◆ Trace4Gen()

int Trace4Gen ( PHEAD TRACES t,
WORD  number 
)
extern

Definition at line 858 of file opera.c.

◆ Trace4no()

int Trace4no ( WORD  number,
WORD *  kron,
TRACES t 
)
extern

Definition at line 418 of file opera.c.

◆ TraceFind()

int TraceFind ( PHEAD WORD *  term,
WORD *  params 
)
extern

Definition at line 1856 of file opera.c.

◆ TraceN()

int TraceN ( PHEAD WORD *  term,
WORD *  params,
WORD  num,
WORD  level 
)
extern

Definition at line 1384 of file opera.c.

◆ TraceNgen()

int TraceNgen ( PHEAD TRACES t,
WORD  number 
)
extern

Definition at line 1449 of file opera.c.

◆ TraceNno()

WORD TraceNno ( WORD  number,
WORD *  kron,
TRACES t 
)
extern

Definition at line 1343 of file opera.c.

◆ Traces()

int Traces ( PHEAD WORD *  term,
WORD *  params,
WORD  num,
WORD  level 
)
extern

Definition at line 1834 of file opera.c.

◆ Trick()

WORD Trick ( WORD *  in,
TRACES t 
)
extern

Definition at line 331 of file opera.c.

◆ TryDo()

int TryDo ( PHEAD WORD *  term,
WORD *  pattern,
WORD  level 
)
extern

Definition at line 1072 of file reshuf.c.

◆ UnPack()

void UnPack ( UWORD *  a,
WORD  na,
WORD *  denom,
WORD *  numer 
)
extern

Definition at line 100 of file reken.c.

◆ VarStore()

int VarStore ( UBYTE *  s,
WORD  n,
WORD  name,
WORD  namesize 
)
extern

Definition at line 2369 of file store.c.

◆ WildFill()

WORD WildFill ( PHEAD WORD *  to,
WORD *  from,
WORD *  sub 
)
extern

Definition at line 65 of file wildcard.c.

◆ WriteAll()

int WriteAll ( void  )
extern

Definition at line 2486 of file sch.c.

◆ WriteOne()

int WriteOne ( UBYTE *  name,
int  alreadyinline,
int  nosemi,
WORD  plus 
)
extern

Definition at line 2712 of file sch.c.

◆ WriteArgument()

void WriteArgument ( WORD *  t)
extern

Definition at line 1406 of file sch.c.

◆ WriteExpression()

int WriteExpression ( WORD *  terms,
LONG  ltot 
)
extern

Definition at line 2455 of file sch.c.

◆ WriteInnerTerm()

int WriteInnerTerm ( WORD *  term,
WORD  first 
)
extern

Definition at line 1933 of file sch.c.

◆ WriteLists()

void WriteLists ( void  )
extern

Definition at line 792 of file sch.c.

◆ WriteSetup()

void WriteSetup ( void  )
extern

Definition at line 809 of file setfile.c.

◆ WriteStats()

void WriteStats ( POSITION plspace,
WORD  par,
WORD  checkLogType 
)
extern

Writes the statistics.

Parameters
plspaceThe size in bytes currently occupied
parpar = 0 = STATSSPLITMERGE after a splitmerge. par = 1 = STATSMERGETOFILE after merge to sortfile. par = 2 = STATSPOSTSORT after the sort
checkLogType== CHECKLOGTYPE: The output should not go to the log file if AM.LogType is 1.

current expression is to be found in AR.CurExpr. terms are in S->TermsLeft. S->GenTerms.

Definition at line 129 of file sort.c.

References TimeCPU(), and TimeWallClock().

Referenced by EndSort(), PF_Processor(), and StoreTerm().

Here is the call graph for this function:

◆ WriteSubTerm()

int WriteSubTerm ( WORD *  sterm,
WORD  first 
)
extern

Definition at line 1524 of file sch.c.

◆ WriteTerm()

int WriteTerm ( WORD *  term,
WORD *  lbrac,
WORD  first,
WORD  prtf,
WORD  br 
)
extern

Definition at line 2133 of file sch.c.

◆ execarg()

int execarg ( PHEAD WORD *  term,
WORD  level 
)
extern

Definition at line 56 of file argument.c.

◆ execterm()

int execterm ( PHEAD WORD *  term,
WORD  level 
)
extern

Definition at line 1775 of file argument.c.

◆ SpecialCleanup()

void SpecialCleanup ( PHEAD0  )
extern

Definition at line 1626 of file execute.c.

◆ SetMods()

void SetMods ( void  )
extern

Definition at line 1640 of file execute.c.

◆ UnSetMods()

void UnSetMods ( void  )
extern

Definition at line 1658 of file execute.c.

◆ DoExecute()

int DoExecute ( WORD  par,
WORD  skip 
)
extern

Definition at line 616 of file execute.c.

◆ SetScratch()

void SetScratch ( FILEHANDLE f,
POSITION position 
)
extern

Definition at line 114 of file store.c.

◆ Warning()

void Warning ( char *  s)
extern

Definition at line 778 of file message.c.

◆ HighWarning()

void HighWarning ( char *  s)
extern

Definition at line 790 of file message.c.

◆ SpareTable()

int SpareTable ( TABLES  TT)
extern

Definition at line 694 of file tables.c.

◆ strDup1()

UBYTE * strDup1 ( UBYTE *  instring,
char *  ifwrong 
)
extern

Definition at line 1906 of file tools.c.

◆ Malloc1()

void * Malloc1 ( LONG  size,
const char *  messageifwrong 
)
extern

Definition at line 2243 of file tools.c.

◆ DoTail()

int DoTail ( int  argc,
UBYTE **  argv 
)
extern

Definition at line 282 of file startup.c.

◆ OpenInput()

int OpenInput ( void  )
extern

Definition at line 589 of file startup.c.

◆ PutPreVar()

int PutPreVar ( UBYTE *  name,
UBYTE *  value,
UBYTE *  args,
int  mode 
)
extern

Inserts/Updates a preprocessor variable in the name administration.

Parameters
nameCharacter string with the variable name.
valueCharacter string with a possible value. Special case: if this argument is zero, then we have no value. Note: This is different from having an empty argument! This should only occur when the name starts with a ?
argsCharacter string with possible arguments.
mode=0: always create a new name entry, =1: try to do a redefinition if possible.
Returns
Index of used entry in name list.

Definition at line 724 of file pre.c.

Referenced by ClearOptimize(), Generator(), Optimize(), PF_BroadcastRedefinedPreVars(), StartVariables(), and TheDefine().

◆ Error0()

void Error0 ( char *  s)
extern

Definition at line 56 of file message.c.

◆ Error1()

void Error1 ( char *  s,
UBYTE *  t 
)
extern

Definition at line 67 of file message.c.

◆ Error2()

void Error2 ( char *  s1,
char *  s2,
UBYTE *  t 
)
extern

Definition at line 78 of file message.c.

◆ ReadFromStream()

UBYTE ReadFromStream ( STREAM stream)
extern

Definition at line 151 of file tools.c.

◆ GetFromStream()

UBYTE GetFromStream ( STREAM stream)
extern

Definition at line 286 of file tools.c.

◆ LookInStream()

UBYTE LookInStream ( STREAM stream)
extern

Definition at line 309 of file tools.c.

◆ OpenStream()

STREAM * OpenStream ( UBYTE *  name,
int  type,
int  prevarmode,
int  raiselow 
)
extern

Definition at line 321 of file tools.c.

◆ LocateFile()

int LocateFile ( UBYTE **  name,
int  type 
)
extern

Definition at line 576 of file tools.c.

◆ CloseStream()

STREAM * CloseStream ( STREAM stream)
extern

Definition at line 663 of file tools.c.

◆ PositionStream()

void PositionStream ( STREAM stream,
LONG  position 
)
extern

Definition at line 825 of file tools.c.

◆ ReverseStatements()

int ReverseStatements ( STREAM stream)
extern

Definition at line 857 of file tools.c.

◆ ProcessOption()

int ProcessOption ( UBYTE *  s1,
UBYTE *  s2,
int  filetype 
)
extern

Definition at line 182 of file setfile.c.

◆ DoSetups()

int DoSetups ( void  )
extern

Definition at line 132 of file setfile.c.

◆ TerminateImpl()

void TerminateImpl ( int  errorcode,
const char *  file,
int  line,
const char *  function 
)
extern

Definition at line 1922 of file startup.c.

◆ GetNode()

NAMENODE * GetNode ( NAMETREE nametree,
UBYTE *  name 
)
extern

Definition at line 49 of file names.c.

◆ AddName()

int AddName ( NAMETREE nametree,
UBYTE *  name,
WORD  type,
WORD  number,
int *  nodenum 
)
extern

Definition at line 71 of file names.c.

◆ GetName()

int GetName ( NAMETREE nametree,
UBYTE *  namein,
WORD *  number,
int  par 
)
extern

Definition at line 252 of file names.c.

◆ GetFunction()

UBYTE * GetFunction ( UBYTE *  s,
WORD *  funnum 
)
extern

Definition at line 342 of file names.c.

◆ GetNumber()

UBYTE * GetNumber ( UBYTE *  s,
WORD *  num 
)
extern

Definition at line 388 of file names.c.

◆ GetLastExprName()

int GetLastExprName ( UBYTE *  name,
WORD *  number 
)
extern

Definition at line 438 of file names.c.

◆ GetAutoName()

int GetAutoName ( UBYTE *  name,
WORD *  number 
)
extern

Definition at line 479 of file names.c.

◆ GetVar()

int GetVar ( UBYTE *  name,
WORD *  type,
WORD *  number,
int  wantedtype,
int  par 
)
extern

Definition at line 524 of file names.c.

◆ MakeDubious()

int MakeDubious ( NAMETREE nametree,
UBYTE *  name,
WORD *  number 
)
extern

Definition at line 2694 of file names.c.

◆ GetOName()

int GetOName ( NAMETREE nametree,
UBYTE *  name,
WORD *  number,
int  par 
)
extern

Definition at line 460 of file names.c.

◆ DumpTree()

void DumpTree ( NAMETREE nametree)
extern

Definition at line 602 of file names.c.

◆ DumpNode()

void DumpNode ( NAMETREE nametree,
WORD  node,
WORD  depth 
)
extern

Definition at line 615 of file names.c.

◆ LinkTree()

void LinkTree ( NAMETREE tree,
WORD  offset,
WORD  numnodes 
)
extern

Definition at line 784 of file names.c.

◆ CopyTree()

void CopyTree ( NAMETREE newtree,
NAMETREE oldtree,
WORD  node,
WORD  par 
)
extern

Definition at line 696 of file names.c.

◆ CompactifyTree()

int CompactifyTree ( NAMETREE nametree,
WORD  par 
)
extern

Definition at line 634 of file names.c.

◆ MakeNameTree()

NAMETREE * MakeNameTree ( void  )
extern

Definition at line 815 of file names.c.

◆ FreeNameTree()

void FreeNameTree ( NAMETREE n)
extern

Definition at line 834 of file names.c.

◆ AddExpression()

int AddExpression ( UBYTE *  name,
int  x,
int  y 
)
extern

Definition at line 2745 of file names.c.

◆ AddSymbol()

int AddSymbol ( UBYTE *  name,
int  minpow,
int  maxpow,
int  cplx,
int  dim 
)
extern

Definition at line 920 of file names.c.

◆ AddDollar()

int AddDollar ( UBYTE *  name,
WORD  type,
WORD *  start,
LONG  size 
)
extern

Definition at line 2604 of file names.c.

◆ ReplaceDollar()

int ReplaceDollar ( WORD  number,
WORD  newtype,
WORD *  newstart,
LONG  newsize 
)
extern

Definition at line 2647 of file names.c.

◆ DollarRaiseLow()

int DollarRaiseLow ( UBYTE *  name,
LONG  value 
)
extern

Definition at line 2534 of file dollar.c.

◆ AddVector()

int AddVector ( UBYTE *  name,
int  cplx,
int  dim 
)
extern

Definition at line 1244 of file names.c.

◆ AddDubious()

int AddDubious ( UBYTE *  name)
extern

Definition at line 2680 of file names.c.

◆ AddIndex()

int AddIndex ( UBYTE *  name,
int  dim,
int  dim4 
)
extern

Definition at line 1088 of file names.c.

◆ DoDimension()

UBYTE * DoDimension ( UBYTE *  s,
int *  dim,
int *  dim4 
)
extern

Definition at line 1160 of file names.c.

◆ AddFunction()

int AddFunction ( UBYTE *  name,
int  comm,
int  istensor,
int  cplx,
int  symprop,
int  dim,
int  argmax,
int  argmin 
)
extern

Definition at line 1326 of file names.c.

◆ CoCommuteInSet()

int CoCommuteInSet ( UBYTE *  s)
extern

Definition at line 1356 of file names.c.

◆ CoFunction()

int CoFunction ( UBYTE *  s,
int  comm,
int  istensor 
)
extern

Definition at line 1446 of file names.c.

◆ TestName()

int TestName ( UBYTE *  name)
extern

Definition at line 3255 of file names.c.

◆ AddSet()

int AddSet ( UBYTE *  name,
WORD  dim 
)
extern

Definition at line 2124 of file names.c.

◆ DoElements()

int DoElements ( UBYTE *  s,
SETS  set,
UBYTE *  name 
)
extern

Definition at line 2157 of file names.c.

◆ DoTempSet()

int DoTempSet ( UBYTE *  from,
UBYTE *  to 
)
extern

Definition at line 2482 of file names.c.

◆ NameConflict()

int NameConflict ( int  type,
UBYTE *  name 
)
extern

Definition at line 2729 of file names.c.

◆ OpenFile()

int OpenFile ( char *  name)
extern

Definition at line 985 of file tools.c.

◆ OpenAddFile()

int OpenAddFile ( char *  name)
extern

Definition at line 1004 of file tools.c.

◆ ReOpenFile()

int ReOpenFile ( char *  name)
extern

Definition at line 1025 of file tools.c.

◆ CreateFile()

int CreateFile ( char *  name)
extern

Definition at line 1045 of file tools.c.

◆ CreateLogFile()

int CreateLogFile ( char *  name)
extern

Definition at line 1062 of file tools.c.

◆ CloseFile()

void CloseFile ( int  handle)
extern

Definition at line 1080 of file tools.c.

◆ CopyFile()

int CopyFile ( char *  source,
char *  dest 
)
extern

Copies a file with name *source to a file named *dest. The involved files must not be open. Returns non-zero if an error occurred. Uses if possible the combined large and small sorting buffers as cache.

Definition at line 1103 of file tools.c.

Referenced by DoRecovery().

◆ CreateHandle()

int CreateHandle ( void  )
extern

Definition at line 1164 of file tools.c.

◆ ReadFile()

LONG ReadFile ( int  handle,
UBYTE *  buffer,
LONG  size 
)
extern

Definition at line 1219 of file tools.c.

◆ ReadPosFile()

LONG ReadPosFile ( PHEAD FILEHANDLE fi,
UBYTE *  buffer,
LONG  size,
POSITION pos 
)
extern

Definition at line 1269 of file tools.c.

◆ WriteFileToFile()

LONG WriteFileToFile ( int  handle,
UBYTE *  buffer,
LONG  size 
)
extern

Definition at line 1335 of file tools.c.

◆ SeekFile()

void SeekFile ( int  handle,
POSITION offset,
int  origin 
)
extern

Definition at line 1373 of file tools.c.

◆ TellFile()

LONG TellFile ( int  handle)
extern

Definition at line 1398 of file tools.c.

◆ FlushFile()

void FlushFile ( int  handle)
extern

Definition at line 1422 of file tools.c.

◆ GetPosFile()

int GetPosFile ( int  handle,
fpos_t *  pospointer 
)
extern

Definition at line 1436 of file tools.c.

◆ SetPosFile()

int SetPosFile ( int  handle,
fpos_t *  pospointer 
)
extern

Definition at line 1450 of file tools.c.

◆ SynchFile()

void SynchFile ( int  handle)
extern

Definition at line 1470 of file tools.c.

◆ TruncateFile()

void TruncateFile ( int  handle)
extern

Definition at line 1492 of file tools.c.

◆ GetChannel()

int GetChannel ( char *  name,
int  mode 
)
extern

Definition at line 1512 of file tools.c.

◆ GetAppendChannel()

int GetAppendChannel ( char *  name)
extern

Definition at line 1548 of file tools.c.

◆ CloseChannel()

int CloseChannel ( char *  name)
extern

Definition at line 1578 of file tools.c.

◆ inictable()

void inictable ( void  )
extern

Definition at line 315 of file compiler.c.

◆ findcommand()

KEYWORD * findcommand ( UBYTE *  in)
extern

Definition at line 341 of file compiler.c.

◆ inicbufs()

int inicbufs ( void  )
extern

Creates a new compiler buffer and returns its ID number.

Returns
The ID number for the new compiler buffer.

Definition at line 47 of file comtool.c.

References CbUf::boomlijst, CbUf::Buffer, CbUf::BufferSize, CbUf::CanCommu, CbUf::dimension, CbUf::lhs, CbUf::numdum, CbUf::NumTerms, CbUf::Pointer, CbUf::rhs, and CbUf::Top.

Referenced by AddRHS(), and StartVariables().

◆ StartFiles()

void StartFiles ( void  )
extern

Definition at line 958 of file tools.c.

◆ MakeDate()

UBYTE * MakeDate ( void  )
extern

Definition at line 2117 of file tools.c.

◆ PreProcessor()

void PreProcessor ( void  )
extern

Definition at line 953 of file pre.c.

◆ FromList()

void * FromList ( LIST L)
extern

Definition at line 2716 of file tools.c.

◆ From0List()

void * From0List ( LIST L)
extern

Definition at line 2742 of file tools.c.

◆ FromVarList()

void * FromVarList ( LIST L)
extern

Definition at line 2771 of file tools.c.

◆ DoubleList()

int DoubleList ( void ***  lijst,
int *  oldsize,
int  objectsize,
char *  nameoftype 
)
extern

Definition at line 2813 of file tools.c.

◆ DoubleLList()

int DoubleLList ( void ***  lijst,
LONG *  oldsize,
int  objectsize,
char *  nameoftype 
)
extern

Definition at line 2865 of file tools.c.

◆ DoubleBuffer()

void DoubleBuffer ( void **  start,
void **  stop,
int  size,
char *  text 
)
extern

Definition at line 2913 of file tools.c.

◆ ExpandBuffer()

void ExpandBuffer ( void **  buffer,
LONG *  oldsize,
int  type 
)
extern

Definition at line 2938 of file tools.c.

◆ iexp()

LONG iexp ( LONG  x,
int  p 
)
extern

Definition at line 2962 of file tools.c.

◆ IsLikeVector()

int IsLikeVector ( WORD *  arg)
extern

Definition at line 3165 of file tools.c.

◆ AreArgsEqual()

int AreArgsEqual ( WORD *  arg1,
WORD *  arg2 
)
extern

Definition at line 3193 of file tools.c.

◆ CompareArgs()

int CompareArgs ( WORD *  arg1,
WORD *  arg2 
)
extern

Definition at line 3212 of file tools.c.

◆ SkipField()

UBYTE * SkipField ( UBYTE *  s,
int  level 
)
extern

Skips from s to the end of a declaration field (e.g., x, 1+2*[x+a], or f({x,[x+a]},1)).

Parameters
[in]sPointer to a null-terminated input buffer.
[in]levelNumber of parentheses that still have to be closed.
Returns
Pointer to the character after the field, which is either a comma at level 0 or the null terminator.

Definition at line 1976 of file tools.c.

◆ StrCmp()

int StrCmp ( UBYTE *  s1,
UBYTE *  s2 
)
extern

Definition at line 1702 of file tools.c.

◆ StrICmp()

int StrICmp ( UBYTE *  s1,
UBYTE *  s2 
)
extern

Definition at line 1713 of file tools.c.

◆ StrHICmp()

int StrHICmp ( UBYTE *  s1,
UBYTE *  s2 
)
extern

Definition at line 1724 of file tools.c.

◆ StrICont()

int StrICont ( UBYTE *  s1,
UBYTE *  s2 
)
extern

Definition at line 1735 of file tools.c.

◆ CmpArray()

int CmpArray ( WORD *  t1,
WORD *  t2,
WORD  n 
)
extern

Definition at line 1747 of file tools.c.

◆ ConWord()

int ConWord ( UBYTE *  s1,
UBYTE *  s2 
)
extern

Definition at line 1761 of file tools.c.

◆ StrLen()

int StrLen ( UBYTE *  s)
extern

Definition at line 1773 of file tools.c.

◆ GetPreVar()

UBYTE * GetPreVar ( UBYTE *  name,
int  flag 
)
extern

Definition at line 542 of file pre.c.

◆ ToGeneral()

void ToGeneral ( WORD *  r,
WORD *  m,
WORD  par 
)
extern

Definition at line 2993 of file tools.c.

◆ ToPolyFunGeneral()

WORD ToPolyFunGeneral ( PHEAD WORD *  term)
extern

Definition at line 3090 of file tools.c.

◆ ToFast()

int ToFast ( WORD *  r,
WORD *  m 
)
extern

Definition at line 3037 of file tools.c.

◆ GetSetupPar()

SETUPPARAMETERS * GetSetupPar ( UBYTE *  s)
extern

Definition at line 337 of file setfile.c.

◆ RecalcSetups()

int RecalcSetups ( void  )
extern

Definition at line 358 of file setfile.c.

◆ AllocSetups()

int AllocSetups ( void  )
extern

Definition at line 414 of file setfile.c.

◆ AllocSort()

SORTING * AllocSort ( LONG  inLargeSize,
LONG  inSmallSize,
LONG  inSmallEsize,
LONG  inTermsInSmall,
int  inMaxPatches,
int  inMaxFpatches,
LONG  inIOsize,
int  level 
)
extern

Definition at line 867 of file setfile.c.

◆ AllocSortFileName()

void AllocSortFileName ( SORTING sort)
extern

Definition at line 1017 of file setfile.c.

◆ LoadInputFile()

UBYTE * LoadInputFile ( UBYTE *  filename,
int  type 
)
extern

Definition at line 112 of file tools.c.

◆ GetInput()

UBYTE GetInput ( void  )
extern

Definition at line 138 of file pre.c.

◆ ClearPushback()

void ClearPushback ( void  )
extern

Definition at line 167 of file pre.c.

◆ GetChar()

UBYTE GetChar ( int  level)
extern

Definition at line 185 of file pre.c.

◆ CharOut()

void CharOut ( UBYTE  c)
extern

Definition at line 495 of file pre.c.

◆ UnsetAllowDelay()

void UnsetAllowDelay ( void  )
extern

Definition at line 516 of file pre.c.

◆ PopPreVars()

void PopPreVars ( int  tonumber)
extern

Definition at line 826 of file pre.c.

◆ IniModule()

void IniModule ( int  type)
extern

Definition at line 841 of file pre.c.

◆ IniSpecialModule()

void IniSpecialModule ( int  type)
extern

Definition at line 943 of file pre.c.

◆ ModuleInstruction()

int ModuleInstruction ( int *  moduletype,
int *  specialtype 
)
extern

Definition at line 76 of file module.c.

◆ PreProInstruction()

int PreProInstruction ( void  )
extern

Definition at line 1172 of file pre.c.

◆ LoadInstruction()

int LoadInstruction ( int  mode)
extern

Definition at line 1260 of file pre.c.

◆ LoadStatement()

int LoadStatement ( int  type)
extern

Definition at line 1463 of file pre.c.

◆ FindKeyWord()

KEYWORD * FindKeyWord ( UBYTE *  theword,
KEYWORD table,
int  size 
)
extern

Definition at line 1969 of file pre.c.

◆ FindInKeyWord()

KEYWORD * FindInKeyWord ( UBYTE *  theword,
KEYWORD table,
int  size 
)
extern

Definition at line 2000 of file pre.c.

◆ DoDefine()

int DoDefine ( UBYTE *  s)
extern

Definition at line 2165 of file pre.c.

◆ DoRedefine()

int DoRedefine ( UBYTE *  s)
extern

Definition at line 2175 of file pre.c.

◆ TheDefine()

int TheDefine ( UBYTE *  s,
int  mode 
)
extern

Preprocessor assignment. Possible arguments and values are treated and the new preprocessor variable is put into the name administration.

Parameters
sPointer to the character string following the preprocessor command.
modeBitmask. 0-bit clear: always create a new name entry, 0-bit set: try to redefine an existing name, 1-bit set: ignore preprocessor if/switch status.
Returns
zero: no errors, negative number: errors.

Definition at line 2030 of file pre.c.

References PutPreVar().

Here is the call graph for this function:

◆ TheUndefine()

int TheUndefine ( UBYTE *  name)
extern

Definition at line 2215 of file pre.c.

◆ ClearMacro()

int ClearMacro ( UBYTE *  name)
extern

Definition at line 2187 of file pre.c.

◆ DoUndefine()

int DoUndefine ( UBYTE *  s)
extern

Definition at line 2269 of file pre.c.

◆ DoInclude()

int DoInclude ( UBYTE *  s)
extern

Definition at line 2321 of file pre.c.

◆ DoReverseInclude()

int DoReverseInclude ( UBYTE *  s)
extern

Definition at line 2328 of file pre.c.

◆ Include()

int Include ( UBYTE *  s,
int  type 
)
extern

Definition at line 2335 of file pre.c.

◆ DoExternal()

int DoExternal ( UBYTE *  s)
extern

Definition at line 5502 of file pre.c.

◆ DoToExternal()

int DoToExternal ( UBYTE *  s)
extern

Definition at line 6064 of file pre.c.

◆ DoFromExternal()

int DoFromExternal ( UBYTE *  s)
extern

Definition at line 5869 of file pre.c.

◆ DoPrompt()

int DoPrompt ( UBYTE *  s)
extern

Definition at line 5584 of file pre.c.

◆ DoSetExternal()

int DoSetExternal ( UBYTE *  s)
extern

Definition at line 5617 of file pre.c.

◆ DoSetExternalAttr()

int DoSetExternalAttr ( UBYTE *  s)
extern

Definition at line 5687 of file pre.c.

◆ DoRmExternal()

int DoRmExternal ( UBYTE *  s)
extern

Definition at line 5804 of file pre.c.

◆ DoFactDollar()

int DoFactDollar ( UBYTE *  s)
extern

Definition at line 6711 of file pre.c.

◆ GetDollarNumber()

WORD GetDollarNumber ( UBYTE **  inp,
DOLLARS  d 
)
extern

Definition at line 6748 of file pre.c.

◆ DoSetRandom()

int DoSetRandom ( UBYTE *  s)
extern

Definition at line 6838 of file pre.c.

◆ DoOptimize()

int DoOptimize ( UBYTE *  s)
extern

Definition at line 6881 of file pre.c.

◆ DoClearOptimize()

int DoClearOptimize ( UBYTE *  s)
extern

Definition at line 7014 of file pre.c.

◆ DoSkipExtraSymbols()

int DoSkipExtraSymbols ( UBYTE *  s)
extern

Definition at line 7034 of file pre.c.

◆ DoTimeOutAfter()

int DoTimeOutAfter ( UBYTE *  s)
extern

Definition at line 7260 of file pre.c.

◆ DoMessage()

int DoMessage ( UBYTE *  s)
extern

Definition at line 3739 of file pre.c.

◆ DoPreOut()

int DoPreOut ( UBYTE *  s)
extern

Definition at line 3810 of file pre.c.

◆ DoPreAppend()

int DoPreAppend ( UBYTE *  s)
extern

Definition at line 3867 of file pre.c.

◆ DoPreCreate()

int DoPreCreate ( UBYTE *  s)
extern

Definition at line 3910 of file pre.c.

◆ DoPreAssign()

int DoPreAssign ( UBYTE *  s)
extern

Definition at line 2134 of file pre.c.

◆ DoPreBreak()

int DoPreBreak ( UBYTE *  s)
extern

Definition at line 4125 of file pre.c.

◆ DoPreDefault()

int DoPreDefault ( UBYTE *  s)
extern

Definition at line 4188 of file pre.c.

◆ DoPreSwitch()

int DoPreSwitch ( UBYTE *  s)
extern

Definition at line 4239 of file pre.c.

◆ DoPreEndSwitch()

int DoPreEndSwitch ( UBYTE *  s)
extern

Definition at line 4212 of file pre.c.

◆ DoPreCase()

int DoPreCase ( UBYTE *  s)
extern

Definition at line 4149 of file pre.c.

◆ DoPreShow()

int DoPreShow ( UBYTE *  s)
extern

Definition at line 4293 of file pre.c.

◆ DoPreExchange()

int DoPreExchange ( UBYTE *  s)
extern

Definition at line 2496 of file pre.c.

◆ DoSystem()

int DoSystem ( UBYTE *  s)
extern

Definition at line 4332 of file pre.c.

◆ DoPipe()

int DoPipe ( UBYTE *  s)
extern

Definition at line 3753 of file pre.c.

◆ StartPrepro()

void StartPrepro ( void  )
extern

Definition at line 4510 of file pre.c.

◆ DoIfdef()

int DoIfdef ( UBYTE *  s,
int  par 
)
extern

Definition at line 3454 of file pre.c.

◆ DoIfydef()

int DoIfydef ( UBYTE *  s)
extern

Definition at line 3479 of file pre.c.

◆ DoIfndef()

int DoIfndef ( UBYTE *  s)
extern

Definition at line 3489 of file pre.c.

◆ DoElse()

int DoElse ( UBYTE *  s)
extern

Definition at line 3157 of file pre.c.

◆ DoElseif()

int DoElseif ( UBYTE *  s)
extern

Definition at line 3194 of file pre.c.

◆ DoEndif()

int DoEndif ( UBYTE *  s)
extern

Definition at line 3375 of file pre.c.

◆ DoTerminate()

int DoTerminate ( UBYTE *  s)
extern

Definition at line 2766 of file pre.c.

◆ DoIf()

int DoIf ( UBYTE *  s)
extern

Definition at line 3430 of file pre.c.

◆ DoCall()

int DoCall ( UBYTE *  s)
extern

Definition at line 2557 of file pre.c.

◆ DoDebug()

int DoDebug ( UBYTE *  s)
extern

Definition at line 2729 of file pre.c.

◆ DoContinueDo()

int DoContinueDo ( UBYTE *  s)
extern

Jumps forward to the corresponding #enddo of the specified number of outer #do loops.

Syntax:
#continuedo [<number>=1]

If number is omitted, it defaults to 1. If number is zero then the instruction has no effect.

Definition at line 2800 of file pre.c.

◆ DoDo()

int DoDo ( UBYTE *  s)
extern

Definition at line 2864 of file pre.c.

◆ DoBreakDo()

int DoBreakDo ( UBYTE *  s)
extern

Definition at line 3079 of file pre.c.

◆ DoEnddo()

int DoEnddo ( UBYTE *  s)
extern

Definition at line 3229 of file pre.c.

◆ DoEndprocedure()

int DoEndprocedure ( UBYTE *  s)
extern

Definition at line 3403 of file pre.c.

◆ DoInside()

int DoInside ( UBYTE *  s)
extern

Definition at line 3514 of file pre.c.

◆ DoEndInside()

int DoEndInside ( UBYTE *  s)
extern

Definition at line 3607 of file pre.c.

◆ DoProcedure()

int DoProcedure ( UBYTE *  s)
extern

Definition at line 4068 of file pre.c.

◆ DoPrePrintTimes()

int DoPrePrintTimes ( UBYTE *  s)
extern

Definition at line 3833 of file pre.c.

◆ DoPreWrite()

int DoPreWrite ( UBYTE *  s)
extern

Definition at line 4027 of file pre.c.

◆ DoPreClose()

int DoPreClose ( UBYTE *  s)
extern

Definition at line 3983 of file pre.c.

◆ DoPreRemove()

int DoPreRemove ( UBYTE *  s)
extern

Definition at line 3950 of file pre.c.

◆ DoPreSortReallocate()

int DoPreSortReallocate ( UBYTE *  s)
extern

Definition at line 3847 of file pre.c.

◆ DoCommentChar()

int DoCommentChar ( UBYTE *  s)
extern

Definition at line 2103 of file pre.c.

◆ DoPrcExtension()

int DoPrcExtension ( UBYTE *  s)
extern

Definition at line 3776 of file pre.c.

◆ DoPreReset()

int DoPreReset ( UBYTE *  s)
extern

Definition at line 7073 of file pre.c.

◆ WriteString()

void WriteString ( int  type,
UBYTE *  str,
int  num 
)
extern

Definition at line 1809 of file tools.c.

◆ WriteUnfinString()

void WriteUnfinString ( int  type,
UBYTE *  str,
int  num 
)
extern

Definition at line 1843 of file tools.c.

◆ AddToString()

UBYTE * AddToString ( UBYTE *  outstring,
UBYTE *  extrastring,
int  par 
)
extern

Definition at line 1868 of file tools.c.

◆ PreCalc()

UBYTE * PreCalc ( void  )
extern

Definition at line 5191 of file pre.c.

◆ PreEval()

UBYTE * PreEval ( UBYTE *  s,
LONG *  x 
)
extern

Definition at line 5269 of file pre.c.

◆ NumToStr()

void NumToStr ( UBYTE *  s,
LONG  x 
)
extern

Definition at line 1785 of file tools.c.

◆ PreCmp()

int PreCmp ( int  type,
int  val,
UBYTE *  t,
int  type2,
int  val2,
UBYTE *  t2,
int  cmpop 
)
extern

Definition at line 4702 of file pre.c.

◆ PreEq()

int PreEq ( int  type,
int  val,
UBYTE *  t,
int  type2,
int  val2,
UBYTE *  t2,
int  eqop 
)
extern

Definition at line 4726 of file pre.c.

◆ pParseObject()

UBYTE * pParseObject ( UBYTE *  s,
int *  type,
LONG *  val2 
)
extern

Definition at line 4755 of file pre.c.

◆ PreIfEval()

UBYTE * PreIfEval ( UBYTE *  s,
int *  value 
)
extern

Definition at line 4573 of file pre.c.

◆ EvalPreIf()

int EvalPreIf ( UBYTE *  s)
extern

Definition at line 4538 of file pre.c.

◆ PreLoad()

int PreLoad ( PRELOAD p,
UBYTE *  start,
UBYTE *  stop,
int  mode,
char *  message 
)
extern

Definition at line 4372 of file pre.c.

◆ PreSkip()

int PreSkip ( UBYTE *  start,
UBYTE *  stop,
int  mode 
)
extern

Definition at line 4455 of file pre.c.

◆ EndOfToken()

UBYTE * EndOfToken ( UBYTE *  s)
extern

Skips over alphanumeric characters to find the end of the token.

Note
This function does not handle formal names (e.g., [x+a]). To handle them, use SkipAName instead.
Parameters
[in]sPointer to a null-terminated input buffer.
Returns
Pointer to the first non-alphanumeric character (i.e., the character immediately after the token), or the null terminator if the token reaches the end of the string.

Definition at line 1932 of file tools.c.

◆ SetSpecialMode()

void SetSpecialMode ( int  moduletype,
int  specialtype 
)
extern

Definition at line 258 of file module.c.

◆ MakeGlobal()

void MakeGlobal ( void  )
extern

Definition at line 383 of file execute.c.

◆ ExecModule()

int ExecModule ( int  moduletype)
extern

Definition at line 275 of file module.c.

◆ ExecStore()

int ExecStore ( void  )
extern

Definition at line 300 of file module.c.

◆ FullCleanUp()

void FullCleanUp ( void  )
extern

Definition at line 315 of file module.c.

◆ DoExecStatement()

int DoExecStatement ( void  )
extern

Definition at line 795 of file module.c.

◆ DoPipeStatement()

int DoPipeStatement ( void  )
extern

Definition at line 812 of file module.c.

◆ DoPolyfun()

int DoPolyfun ( UBYTE *  s)
extern

Definition at line 396 of file module.c.

◆ DoPolyratfun()

int DoPolyratfun ( UBYTE *  s)
extern

Definition at line 459 of file module.c.

◆ CompileStatement()

int CompileStatement ( UBYTE *  in)
extern

Definition at line 572 of file compiler.c.

◆ ToToken()

UBYTE * ToToken ( UBYTE *  s)
extern

Skips over non-alphanumeric characters to find the start of a token.

Note
This function does not handle formal names (e.g., [x+a]). To handle them, consider simply skipping whitespace, e.g., by using SkipSpaces.
Parameters
[in]sPointer to a null-terminated input buffer.
Returns
Pointer to the first alphanumeric character (i.e., the start of the token), or the null terminator if none is found.

Definition at line 1955 of file tools.c.

◆ GetDollar()

int GetDollar ( UBYTE *  name)
extern

Definition at line 590 of file names.c.

◆ MesWork()

void MesWork ( void  )
extern

Definition at line 89 of file message.c.

◆ MesPrint()

int MesPrint ( const char *  fmt,
  ... 
)
extern

Definition at line 135 of file message.c.

◆ MesCall()

int MesCall ( char *  s)
extern

Definition at line 802 of file message.c.

◆ NumCopy()

UBYTE * NumCopy ( WORD  y,
UBYTE *  to 
)
extern

Definition at line 2027 of file tools.c.

◆ LongCopy()

char * LongCopy ( LONG  y,
char *  to 
)
extern

Definition at line 2054 of file tools.c.

◆ LongLongCopy()

char * LongLongCopy ( off_t *  y,
char *  to 
)
extern

Definition at line 2081 of file tools.c.

◆ ReserveTempFiles()

void ReserveTempFiles ( int  par)
extern

Definition at line 713 of file startup.c.

◆ PrintTerm()

void PrintTerm ( WORD *  term,
char *  where 
)
extern

Definition at line 845 of file message.c.

◆ PrintTermC()

void PrintTermC ( WORD *  term,
char *  where 
)
extern

Definition at line 875 of file message.c.

◆ PrintSubTerm()

void PrintSubTerm ( WORD *  term,
char *  where 
)
extern

Definition at line 909 of file message.c.

◆ PrintWords()

void PrintWords ( WORD *  buffer,
LONG  number 
)
extern

Definition at line 931 of file message.c.

◆ PrintSeq()

void PrintSeq ( WORD *  a,
char *  text 
)
extern

Definition at line 949 of file message.c.

◆ ExpandTripleDots()

int ExpandTripleDots ( int  par)
extern

Definition at line 1601 of file pre.c.

◆ ComPress()

LONG ComPress ( WORD **  ss,
LONG *  n 
)
extern

Gets a list of pointers to terms and compresses the terms. In n it collects the number of terms and the return value of the function is the space that is occupied.

We have to pay some special attention to the compression of terms with a PolyFun. This PolyFun should occur only straight before the coefficient, so we can use the same trick as for the coefficient to sabotage compression of this object (Replace in the history the function pointer by zero. This is safe, because terms that would be identical otherwise would have been added).

Parameters
ssArray of pointers to terms to be compressed.
nNumber of pointers in ss.
Returns
Total number of words needed for the compressed result.

Definition at line 2900 of file sort.c.

Referenced by EndSort(), and StoreTerm().

◆ StageSort()

void StageSort ( FILEHANDLE fout)
extern

Prepares a stage 4 or higher sort. Stage 4 sorts occur when the sort file contains more patches than can be merged in one pass.

Definition at line 4369 of file sort.c.

References FiLe::handle.

Referenced by EndSort(), and MergePatches().

◆ M_free()

void M_free ( void *  x,
const char *  where 
)
extern

Definition at line 2319 of file tools.c.

◆ ClearWildcardNames()

void ClearWildcardNames ( void  )
extern

Definition at line 849 of file names.c.

◆ AddWildcardName()

int AddWildcardName ( UBYTE *  name)
extern

Definition at line 854 of file names.c.

◆ GetWildcardName()

int GetWildcardName ( UBYTE *  name)
extern

Definition at line 898 of file names.c.

◆ Globalize()

void Globalize ( int  par)
extern

Definition at line 3156 of file names.c.

◆ ResetVariables()

void ResetVariables ( int  par)
extern

Definition at line 2833 of file names.c.

◆ AddToPreTypes()

void AddToPreTypes ( int  type)
extern

Definition at line 5419 of file pre.c.

◆ MessPreNesting()

void MessPreNesting ( int  par)
extern

Definition at line 5437 of file pre.c.

◆ GetStreamPosition()

LONG GetStreamPosition ( STREAM stream)
extern

Definition at line 815 of file tools.c.

◆ DoubleCbuffer()

WORD * DoubleCbuffer ( int  num,
WORD *  w,
int  par 
)
extern

Doubles a compiler buffer.

Parameters
numThe ID number for the buffer to be doubled.
wThe pointer to the end (exclusive) of the current buffer. The contents in the range of [cbuf[num].Buffer,w) will be kept.

Definition at line 143 of file comtool.c.

References CbUf::Buffer, CbUf::BufferSize, CbUf::lhs, CbUf::Pointer, CbUf::rhs, and CbUf::Top.

Referenced by AddNtoC(), and AddNtoL().

◆ AddLHS()

WORD * AddLHS ( int  num)
extern

Adds an LHS to a compiler buffer and returns the pointer to a buffer for the new LHS.

Parameters
numThe ID number for the buffer to get another LHS.

Definition at line 188 of file comtool.c.

References CbUf::lhs, and CbUf::Pointer.

Referenced by AddNtoL().

◆ AddRHS()

WORD * AddRHS ( int  num,
int  type 
)
extern

Adds an RHS to a compiler buffer and returns the pointer to a buffer for the new RHS.

Parameters
numThe ID number for the buffer to get another RHS.
typeIf 0, the subexpression tree will be reallocated.

Definition at line 214 of file comtool.c.

References TaBlEs::buffers, TaBlEs::buffersfill, TaBlEs::bufferssize, TaBlEs::bufnum, CbUf::CanCommu, CbUf::dimension, inicbufs(), CbUf::numdum, CbUf::NumTerms, CbUf::Pointer, and CbUf::rhs.

Referenced by InsertArg(), StartVariables(), and TestMatch().

Here is the call graph for this function:

◆ AddNtoL()

int AddNtoL ( int  n,
WORD *  array 
)
extern

Adds an LHS with the given data to the current compiler buffer.

Parameters
nThe length of the data.
arrayThe data to be added.
Returns
0 if succeeds.

Definition at line 288 of file comtool.c.

References AddLHS(), DoubleCbuffer(), CbUf::Pointer, and CbUf::Top.

Here is the call graph for this function:

◆ AddNtoC()

int AddNtoC ( int  bufnum,
int  n,
WORD *  array,
int  par 
)
extern

Adds the given data to the last LHS/RHS in a compiler buffer.

Parameters
bufnumThe ID number for the buffer where the data will be added.
nThe length of the data.
arrayThe data to be added.
Returns
0 if succeeds.

Definition at line 317 of file comtool.c.

References DoubleCbuffer(), CbUf::Pointer, and CbUf::Top.

Referenced by InsertArg(), and StartVariables().

Here is the call graph for this function:

◆ DoubleIfBuffers()

void DoubleIfBuffers ( void  )
extern

Definition at line 1033 of file if.c.

◆ CreateStream()

STREAM * CreateStream ( UBYTE *  where)
extern

Definition at line 784 of file tools.c.

◆ setonoff()

int setonoff ( UBYTE *  s,
int *  flag,
int  onvalue,
int  offvalue 
)
extern

Definition at line 498 of file compcomm.c.

◆ DoPrint()

int DoPrint ( UBYTE *  s,
int  par 
)
extern

Definition at line 1049 of file compcomm.c.

◆ SetExpr()

int SetExpr ( UBYTE *  s,
int  setunset,
int  par 
)
extern

Definition at line 1520 of file compcomm.c.

◆ AddToCom()

void AddToCom ( int  n,
WORD *  array 
)
extern

Definition at line 1657 of file compcomm.c.

◆ Add2ComStrings()

int Add2ComStrings ( int  n,
WORD *  array,
UBYTE *  string1,
UBYTE *  string2 
)
extern

Definition at line 1731 of file compcomm.c.

◆ DoSymmetrize()

int DoSymmetrize ( UBYTE *  s,
int  par 
)
extern

Definition at line 2242 of file compcomm.c.

◆ DoArgument()

int DoArgument ( UBYTE *  s,
int  par 
)
extern

Definition at line 1870 of file compcomm.c.

◆ ArgFactorize()

int ArgFactorize ( PHEAD WORD *  argin,
WORD *  argout 
)
extern

Definition at line 2066 of file argument.c.

◆ TakeArgContent()

WORD * TakeArgContent ( PHEAD WORD *  argin,
WORD *  argout 
)
extern

Implements part of the old ExecArg in which we take common factors from arguments with more than one term. The common pieces are put in argout as a sequence of arguments. The part with the multiple terms that are now relative prime is put in argfree which is allocated via TermMalloc and is given as the return value. The difference with the old code is that negative powers are always removed. Hence it is as in MakeInteger in which only numerators will be left: now only zero or positive powers will be remaining.

Definition at line 2772 of file argument.c.

References EndSort(), MakeInteger(), MakeMod(), NewSort(), and StoreTerm().

Here is the call graph for this function:

◆ MakeInteger()

WORD * MakeInteger ( PHEAD WORD *  argin,
WORD *  argout,
WORD *  argfree 
)
extern

For normalizing everything to integers we have to determine for all elements of this argument the LCM of the denominators and the GCD of the numerators. The input argument is in argin. The number that comes out should go to argout. The new pointer in the argout buffer is the return value. The normalized argument is in argfree.

Definition at line 3318 of file argument.c.

Referenced by TakeArgContent().

◆ MakeMod()

WORD * MakeMod ( PHEAD WORD *  argin,
WORD *  argout,
WORD *  argfree 
)
extern

Similar to MakeInteger but now with modulus arithmetic using only a one WORD 'prime'. We make the coefficient of the first term in the argument equal to one. Already the coefficients are taken modulus AN.cmod and AN.ncmod == 1

Definition at line 3489 of file argument.c.

References GetModInverses().

Referenced by TakeArgContent().

Here is the call graph for this function:

◆ FindArg()

WORD FindArg ( PHEAD WORD *  a)
extern

Looks the argument up in the (workers) table. If it is found the number in the table is returned (plus one to make it positive). If it is not found we look in the compiler provided table. If it is found - the number in the table is returned (minus one to make it negative). If in neither table we return zero.

Definition at line 2519 of file argument.c.

◆ InsertArg()

int InsertArg ( PHEAD WORD *  argin,
WORD *  argout,
int  par 
)
extern

Inserts the argument into the (workers) table. If the table is too full we eliminate half of it. The eliminated elements are the ones that have not been used most recently, weighted by their total use and age(?). If par == 0 it inserts in the regular factorization cache If par == 1 it inserts in the cache defined with the FactorCache statement

Definition at line 2543 of file argument.c.

References AddNtoC(), AddRHS(), and CleanupArgCache().

Here is the call graph for this function:

◆ CleanupArgCache()

int CleanupArgCache ( PHEAD WORD  bufnum)
extern

Cleans up the argument factorization cache. We throw half the elements. For a weight of what we want to keep we use the product of usage and the number in the buffer.

Definition at line 2578 of file argument.c.

References CbUf::boomlijst, CbUf::Buffer, CbUf::Pointer, CbUf::rhs, SortWeights(), and tree::usage.

Referenced by InsertArg().

Here is the call graph for this function:

◆ ArgSymbolMerge()

int ArgSymbolMerge ( WORD *  t1,
WORD *  t2 
)
extern

Definition at line 2649 of file argument.c.

◆ ArgDotproductMerge()

int ArgDotproductMerge ( WORD *  t1,
WORD *  t2 
)
extern

Definition at line 2704 of file argument.c.

◆ SortWeights()

void SortWeights ( LONG *  weights,
LONG *  extraspace,
WORD  number 
)
extern

Sorts an array of LONGS in the same way SplitMerge (in sort.c) works We use gradual division in two.

Definition at line 3534 of file argument.c.

References SortWeights().

Referenced by CleanupArgCache(), and SortWeights().

Here is the call graph for this function:

◆ DoBrackets()

int DoBrackets ( UBYTE *  inp,
int  par 
)
extern

Definition at line 3777 of file compcomm.c.

◆ DoPutInside()

int DoPutInside ( UBYTE *  inp,
int  par 
)
extern

Definition at line 7070 of file compcomm.c.

◆ CountComp()

WORD * CountComp ( UBYTE *  inp,
WORD *  to 
)
extern

Definition at line 4055 of file compcomm.c.

◆ CoAntiBracket()

int CoAntiBracket ( UBYTE *  inp)
extern

Definition at line 3912 of file compcomm.c.

◆ CoAntiSymmetrize()

int CoAntiSymmetrize ( UBYTE *  s)
extern

Definition at line 2369 of file compcomm.c.

◆ DoArgPlode()

int DoArgPlode ( UBYTE *  s,
int  par 
)
extern

Definition at line 5730 of file compcomm.c.

◆ CoArgExplode()

int CoArgExplode ( UBYTE *  s)
extern

Definition at line 5786 of file compcomm.c.

◆ CoArgImplode()

int CoArgImplode ( UBYTE *  s)
extern

Definition at line 5793 of file compcomm.c.

◆ CoArgument()

int CoArgument ( UBYTE *  s)
extern

Definition at line 2121 of file compcomm.c.

◆ CoInside()

int CoInside ( UBYTE *  s)
extern

Definition at line 2154 of file compcomm.c.

◆ ExecInside()

int ExecInside ( UBYTE *  s)
extern

Definition at line 1665 of file dollar.c.

◆ CoInExpression()

int CoInExpression ( UBYTE *  s)
extern

Definition at line 3382 of file compcomm.c.

◆ CoInParallel()

int CoInParallel ( UBYTE *  s)
extern

Definition at line 3288 of file compcomm.c.

◆ CoNotInParallel()

int CoNotInParallel ( UBYTE *  s)
extern

Definition at line 3298 of file compcomm.c.

◆ DoInParallel()

int DoInParallel ( UBYTE *  s,
int  par 
)
extern

Definition at line 3313 of file compcomm.c.

◆ CoEndInExpression()

int CoEndInExpression ( UBYTE *  s)
extern

Definition at line 3435 of file compcomm.c.

◆ CoBracket()

int CoBracket ( UBYTE *  inp)
extern

Definition at line 3904 of file compcomm.c.

◆ CoPutInside()

int CoPutInside ( UBYTE *  inp)
extern

Definition at line 7067 of file compcomm.c.

◆ CoAntiPutInside()

int CoAntiPutInside ( UBYTE *  inp)
extern

Definition at line 7068 of file compcomm.c.

◆ CoMultiBracket()

int CoMultiBracket ( UBYTE *  inp)
extern

Definition at line 3923 of file compcomm.c.

◆ CoCFunction()

int CoCFunction ( UBYTE *  s)
extern

Definition at line 1627 of file names.c.

◆ CoCTensor()

int CoCTensor ( UBYTE *  s)
extern

Definition at line 1629 of file names.c.

◆ CoCollect()

int CoCollect ( UBYTE *  s)
extern

Definition at line 436 of file compcomm.c.

◆ CoCompress()

int CoCompress ( UBYTE *  s)
extern

Definition at line 514 of file compcomm.c.

◆ CoContract()

int CoContract ( UBYTE *  s)
extern

Definition at line 1795 of file compcomm.c.

◆ CoCycleSymmetrize()

int CoCycleSymmetrize ( UBYTE *  s)
extern

Definition at line 2376 of file compcomm.c.

◆ CoDelete()

int CoDelete ( UBYTE *  s)
extern

Definition at line 950 of file compcomm.c.

◆ CoTableBase()

int CoTableBase ( UBYTE *  s)
extern

Definition at line 627 of file tables.c.

◆ CoApply()

int CoApply ( UBYTE *  s)
extern

Definition at line 1797 of file tables.c.

◆ CoDenominators()

int CoDenominators ( UBYTE *  s)
extern

Definition at line 5882 of file compcomm.c.

◆ CoDimension()

int CoDimension ( UBYTE *  s)
extern

Definition at line 1226 of file names.c.

◆ CoDiscard()

int CoDiscard ( UBYTE *  s)
extern

Definition at line 1772 of file compcomm.c.

◆ CoDisorder()

int CoDisorder ( UBYTE *  inp)
extern

Definition at line 416 of file comexpr.c.

◆ CoDrop()

int CoDrop ( UBYTE *  s)
extern

Definition at line 1565 of file compcomm.c.

◆ CoDropCoefficient()

int CoDropCoefficient ( UBYTE *  s)
extern

Definition at line 5911 of file compcomm.c.

◆ CoDropSymbols()

int CoDropSymbols ( UBYTE *  s)
extern

Definition at line 5925 of file compcomm.c.

◆ CoElse()

int CoElse ( UBYTE *  p)
extern

Definition at line 4885 of file compcomm.c.

◆ CoElseIf()

int CoElseIf ( UBYTE *  inp)
extern

Definition at line 4912 of file compcomm.c.

◆ CoEndArgument()

int CoEndArgument ( UBYTE *  s)
extern

Definition at line 2128 of file compcomm.c.

◆ CoEndInside()

int CoEndInside ( UBYTE *  s)
extern

Definition at line 2161 of file compcomm.c.

◆ CoEndIf()

int CoEndIf ( UBYTE *  inp)
extern

Definition at line 4939 of file compcomm.c.

◆ CoEndRepeat()

int CoEndRepeat ( UBYTE *  inp)
extern

Definition at line 3739 of file compcomm.c.

◆ CoEndTerm()

int CoEndTerm ( UBYTE *  s)
extern

Definition at line 5288 of file compcomm.c.

◆ CoEndWhile()

int CoEndWhile ( UBYTE *  inp)
extern

Definition at line 5005 of file compcomm.c.

◆ CoExit()

int CoExit ( UBYTE *  s)
extern

Definition at line 3261 of file compcomm.c.

◆ CoFactArg()

int CoFactArg ( UBYTE *  s)
extern

Definition at line 2222 of file compcomm.c.

◆ CoFactDollar()

int CoFactDollar ( UBYTE *  inp)
extern

Definition at line 6441 of file compcomm.c.

◆ CoFactorize()

int CoFactorize ( UBYTE *  s)
extern

Definition at line 6470 of file compcomm.c.

◆ CoNFactorize()

int CoNFactorize ( UBYTE *  s)
extern

Definition at line 6477 of file compcomm.c.

◆ CoUnFactorize()

int CoUnFactorize ( UBYTE *  s)
extern

Definition at line 6484 of file compcomm.c.

◆ CoNUnFactorize()

int CoNUnFactorize ( UBYTE *  s)
extern

Definition at line 6491 of file compcomm.c.

◆ DoFactorize()

int DoFactorize ( UBYTE *  s,
int  par 
)
extern

Definition at line 6498 of file compcomm.c.

◆ CoFill()

int CoFill ( UBYTE *  inp)
extern

Definition at line 1069 of file comexpr.c.

◆ CoFillExpression()

int CoFillExpression ( UBYTE *  inp)
extern

Definition at line 1355 of file comexpr.c.

◆ CoFixIndex()

int CoFixIndex ( UBYTE *  s)
extern

Definition at line 1007 of file compcomm.c.

◆ CoFormat()

int CoFormat ( UBYTE *  s)
extern

Definition at line 156 of file compcomm.c.

◆ CoGlobal()

int CoGlobal ( UBYTE *  inp)
extern

Definition at line 73 of file comexpr.c.

◆ CoGlobalFactorized()

int CoGlobalFactorized ( UBYTE *  inp)
extern

Definition at line 87 of file comexpr.c.

◆ CoGoTo()

int CoGoTo ( UBYTE *  inp)
extern

Definition at line 1824 of file compcomm.c.

◆ CoId()

int CoId ( UBYTE *  inp)
extern

Definition at line 394 of file comexpr.c.

◆ CoIdNew()

int CoIdNew ( UBYTE *  inp)
extern

Definition at line 405 of file comexpr.c.

◆ CoIdOld()

int CoIdOld ( UBYTE *  inp)
extern

Definition at line 383 of file comexpr.c.

◆ CoIf()

int CoIf ( UBYTE *  inp)
extern

Definition at line 4245 of file compcomm.c.

◆ CoIfMatch()

int CoIfMatch ( UBYTE *  inp)
extern

Definition at line 449 of file comexpr.c.

◆ CoIfNoMatch()

int CoIfNoMatch ( UBYTE *  inp)
extern

Definition at line 460 of file comexpr.c.

◆ CoIndex()

int CoIndex ( UBYTE *  s)
extern

Definition at line 1112 of file names.c.

◆ CoInsideFirst()

int CoInsideFirst ( UBYTE *  s)
extern

Definition at line 936 of file compcomm.c.

◆ CoKeep()

int CoKeep ( UBYTE *  s)
extern

Definition at line 995 of file compcomm.c.

◆ CoLabel()

int CoLabel ( UBYTE *  inp)
extern

Definition at line 1843 of file compcomm.c.

◆ CoLoad()

int CoLoad ( UBYTE *  inp)
extern

Definition at line 572 of file store.c.

◆ CoLocal()

int CoLocal ( UBYTE *  inp)
extern

Definition at line 66 of file comexpr.c.

◆ CoLocalFactorized()

int CoLocalFactorized ( UBYTE *  inp)
extern

Definition at line 80 of file comexpr.c.

◆ CoMany()

int CoMany ( UBYTE *  inp)
extern

Definition at line 427 of file comexpr.c.

◆ CoMerge()

int CoMerge ( UBYTE *  inp)
extern

Definition at line 5571 of file compcomm.c.

◆ CoStuffle()

int CoStuffle ( UBYTE *  inp)
extern

Definition at line 5627 of file compcomm.c.

◆ CoMetric()

int CoMetric ( UBYTE *  s)
extern

Definition at line 1041 of file compcomm.c.

◆ CoModOption()

int CoModOption ( UBYTE *  s)
extern

Definition at line 213 of file module.c.

◆ CoModuleOption()

int CoModuleOption ( UBYTE *  s)
extern

Definition at line 143 of file module.c.

◆ CoModulus()

int CoModulus ( UBYTE *  inp)
extern

Definition at line 3578 of file compcomm.c.

◆ CoMulti()

int CoMulti ( UBYTE *  inp)
extern

Definition at line 438 of file comexpr.c.

◆ CoMultiply()

int CoMultiply ( UBYTE *  inp)
extern

Definition at line 1030 of file comexpr.c.

◆ CoNFunction()

int CoNFunction ( UBYTE *  s)
extern

Definition at line 1626 of file names.c.

◆ CoNPrint()

int CoNPrint ( UBYTE *  s)
extern

Definition at line 1279 of file compcomm.c.

◆ CoNTensor()

int CoNTensor ( UBYTE *  s)
extern

Definition at line 1628 of file names.c.

◆ CoNWrite()

int CoNWrite ( UBYTE *  s)
extern

Definition at line 2415 of file compcomm.c.

◆ CoNoDrop()

int CoNoDrop ( UBYTE *  s)
extern

Definition at line 1572 of file compcomm.c.

◆ CoNoSkip()

int CoNoSkip ( UBYTE *  s)
extern

Definition at line 1586 of file compcomm.c.

◆ CoNormalize()

int CoNormalize ( UBYTE *  s)
extern

Definition at line 2187 of file compcomm.c.

◆ CoMakeInteger()

int CoMakeInteger ( UBYTE *  s)
extern

Definition at line 2194 of file compcomm.c.

◆ CoFlags()

int CoFlags ( UBYTE *  s,
int  value 
)
extern

Definition at line 563 of file compcomm.c.

◆ CoOff()

int CoOff ( UBYTE *  s)
extern

Definition at line 598 of file compcomm.c.

◆ CoOn()

int CoOn ( UBYTE *  s)
extern

Definition at line 664 of file compcomm.c.

◆ CoOnce()

int CoOnce ( UBYTE *  inp)
extern

Definition at line 471 of file comexpr.c.

◆ CoOnly()

int CoOnly ( UBYTE *  inp)
extern

Definition at line 482 of file comexpr.c.

◆ CoOptimizeOption()

int CoOptimizeOption ( UBYTE *  s)
extern

Definition at line 6631 of file compcomm.c.

◆ CoPolyFun()

int CoPolyFun ( UBYTE *  s)
extern

Definition at line 5354 of file compcomm.c.

◆ CoPolyRatFun()

int CoPolyRatFun ( UBYTE *  s)
extern

Definition at line 5401 of file compcomm.c.

◆ CoPrint()

int CoPrint ( UBYTE *  s)
extern

Definition at line 1265 of file compcomm.c.

◆ CoPrintB()

int CoPrintB ( UBYTE *  s)
extern

Definition at line 1272 of file compcomm.c.

◆ CoProperCount()

int CoProperCount ( UBYTE *  s)
extern

Definition at line 943 of file compcomm.c.

◆ CoUnitTrace()

int CoUnitTrace ( UBYTE *  s)
extern

Definition at line 5205 of file compcomm.c.

◆ CoRCycleSymmetrize()

int CoRCycleSymmetrize ( UBYTE *  s)
extern

Definition at line 2383 of file compcomm.c.

◆ CoRatio()

int CoRatio ( UBYTE *  s)
extern

Definition at line 2442 of file compcomm.c.

◆ CoRedefine()

int CoRedefine ( UBYTE *  s)
extern

Definition at line 2482 of file compcomm.c.

◆ CoRenumber()

int CoRenumber ( UBYTE *  s)
extern

Definition at line 2587 of file compcomm.c.

◆ CoRepeat()

int CoRepeat ( UBYTE *  inp)
extern

Definition at line 3716 of file compcomm.c.

◆ CoSave()

int CoSave ( UBYTE *  inp)
extern

Definition at line 362 of file store.c.

◆ CoSelect()

int CoSelect ( UBYTE *  inp)
extern

Definition at line 493 of file comexpr.c.

◆ CoSet()

int CoSet ( UBYTE *  s)
extern

Definition at line 2357 of file names.c.

◆ CoSetExitFlag()

int CoSetExitFlag ( UBYTE *  s)
extern

Definition at line 3461 of file compcomm.c.

◆ CoSkip()

int CoSkip ( UBYTE *  s)
extern

Definition at line 1579 of file compcomm.c.

◆ CoProcessBucket()

int CoProcessBucket ( UBYTE *  s)
extern

Definition at line 5682 of file compcomm.c.

◆ CoPushHide()

int CoPushHide ( UBYTE *  s)
extern

Definition at line 1286 of file compcomm.c.

◆ CoPopHide()

int CoPopHide ( UBYTE *  s)
extern

Definition at line 1330 of file compcomm.c.

◆ CoHide()

int CoHide ( UBYTE *  inp)
extern

Definition at line 1593 of file compcomm.c.

◆ CoIntoHide()

int CoIntoHide ( UBYTE *  inp)
extern

Definition at line 1611 of file compcomm.c.

◆ CoNoIntoHide()

int CoNoIntoHide ( UBYTE *  inp)
extern

Definition at line 1629 of file compcomm.c.

◆ CoNoHide()

int CoNoHide ( UBYTE *  inp)
extern

Definition at line 1636 of file compcomm.c.

◆ CoUnHide()

int CoUnHide ( UBYTE *  inp)
extern

Definition at line 1643 of file compcomm.c.

◆ CoNoUnHide()

int CoNoUnHide ( UBYTE *  inp)
extern

Definition at line 1650 of file compcomm.c.

◆ CoSort()

int CoSort ( UBYTE *  s)
extern

Definition at line 5315 of file compcomm.c.

◆ CoSplitArg()

int CoSplitArg ( UBYTE *  s)
extern

Definition at line 2201 of file compcomm.c.

◆ CoSplitFirstArg()

int CoSplitFirstArg ( UBYTE *  s)
extern

Definition at line 2208 of file compcomm.c.

◆ CoSplitLastArg()

int CoSplitLastArg ( UBYTE *  s)
extern

Definition at line 2215 of file compcomm.c.

◆ CoSum()

int CoSum ( UBYTE *  s)
extern

Definition at line 2608 of file compcomm.c.

◆ CoSymbol()

int CoSymbol ( UBYTE *  s)
extern

Definition at line 946 of file names.c.

◆ CoSymmetrize()

int CoSymmetrize ( UBYTE *  s)
extern

Definition at line 2362 of file compcomm.c.

◆ DoTable()

int DoTable ( UBYTE *  s,
int  par 
)
extern

Definition at line 1668 of file names.c.

◆ CoTable()

int CoTable ( UBYTE *  s)
extern

Definition at line 2050 of file names.c.

◆ CoTerm()

int CoTerm ( UBYTE *  s)
extern

Definition at line 5240 of file compcomm.c.

◆ CoNTable()

int CoNTable ( UBYTE *  s)
extern

Definition at line 2060 of file names.c.

◆ CoCTable()

int CoCTable ( UBYTE *  s)
extern

Definition at line 2070 of file names.c.

◆ EmptyTable()

void EmptyTable ( TABLES  T)
extern

Definition at line 2080 of file names.c.

◆ CoToTensor()

int CoToTensor ( UBYTE *  s)
extern

Definition at line 2728 of file compcomm.c.

◆ CoToVector()

int CoToVector ( UBYTE *  s)
extern

Definition at line 2896 of file compcomm.c.

◆ CoTrace4()

int CoTrace4 ( UBYTE *  s)
extern

Definition at line 2966 of file compcomm.c.

◆ CoTraceN()

int CoTraceN ( UBYTE *  s)
extern

Definition at line 3053 of file compcomm.c.

◆ CoChisholm()

int CoChisholm ( UBYTE *  s)
extern

Definition at line 3113 of file compcomm.c.

◆ CoTransform()

int CoTransform ( UBYTE *  in)
extern

Definition at line 87 of file transform.c.

◆ CoClearTable()

int CoClearTable ( UBYTE *  s)
extern

Definition at line 5800 of file compcomm.c.

◆ DoChain()

int DoChain ( UBYTE *  s,
int  option 
)
extern

Definition at line 3195 of file compcomm.c.

◆ CoChainin()

int CoChainin ( UBYTE *  s)
extern

Definition at line 3239 of file compcomm.c.

◆ CoChainout()

int CoChainout ( UBYTE *  s)
extern

Definition at line 3251 of file compcomm.c.

◆ CoTryReplace()

int CoTryReplace ( UBYTE *  p)
extern

Definition at line 3475 of file compcomm.c.

◆ CoVector()

int CoVector ( UBYTE *  s)
extern

Definition at line 1267 of file names.c.

◆ CoWhile()

int CoWhile ( UBYTE *  inp)
extern

Definition at line 4984 of file compcomm.c.

◆ CoWrite()

int CoWrite ( UBYTE *  s)
extern

Definition at line 2390 of file compcomm.c.

◆ CoAuto()

int CoAuto ( UBYTE *  inp)
extern

Definition at line 2574 of file names.c.

◆ CoSwitch()

int CoSwitch ( UBYTE *  s)
extern

Definition at line 7190 of file compcomm.c.

◆ CoCase()

int CoCase ( UBYTE *  s)
extern

Definition at line 7236 of file compcomm.c.

◆ CoBreak()

int CoBreak ( UBYTE *  s)
extern

Definition at line 7286 of file compcomm.c.

◆ CoDefault()

int CoDefault ( UBYTE *  s)
extern

Definition at line 7312 of file compcomm.c.

◆ CoEndSwitch()

int CoEndSwitch ( UBYTE *  s)
extern

Definition at line 7339 of file compcomm.c.

◆ CoTBaddto()

int CoTBaddto ( UBYTE *  s)
extern

Definition at line 801 of file tables.c.

◆ CoTBaudit()

int CoTBaudit ( UBYTE *  s)
extern

Definition at line 1474 of file tables.c.

◆ CoTBcleanup()

int CoTBcleanup ( UBYTE *  s)
extern

Definition at line 1576 of file tables.c.

◆ CoTBcreate()

int CoTBcreate ( UBYTE *  s)
extern

Definition at line 756 of file tables.c.

◆ CoTBenter()

int CoTBenter ( UBYTE *  s)
extern

Definition at line 974 of file tables.c.

◆ CoTBhelp()

int CoTBhelp ( UBYTE *  s)
extern

Definition at line 1884 of file tables.c.

◆ CoTBload()

int CoTBload ( UBYTE *  ss)
extern

Definition at line 1252 of file tables.c.

◆ CoTBoff()

int CoTBoff ( UBYTE *  s)
extern

Definition at line 1545 of file tables.c.

◆ CoTBon()

int CoTBon ( UBYTE *  s)
extern

Definition at line 1514 of file tables.c.

◆ CoTBopen()

int CoTBopen ( UBYTE *  s)
extern

Definition at line 772 of file tables.c.

◆ CoTBreplace()

int CoTBreplace ( UBYTE *  s)
extern

Definition at line 1588 of file tables.c.

◆ CoTBuse()

int CoTBuse ( UBYTE *  s)
extern

Definition at line 1603 of file tables.c.

◆ CoTestUse()

int CoTestUse ( UBYTE *  s)
extern

Definition at line 1133 of file tables.c.

◆ CoThreadBucket()

int CoThreadBucket ( UBYTE *  s)
extern

Definition at line 5700 of file compcomm.c.

◆ AddComString()

int AddComString ( int  n,
WORD *  array,
UBYTE *  thestring,
int  par 
)
extern

Definition at line 1672 of file compcomm.c.

◆ CompileAlgebra()

int CompileAlgebra ( UBYTE *  s,
int  leftright,
WORD *  prototype 
)
extern

Definition at line 536 of file compiler.c.

◆ IsIdStatement()

int IsIdStatement ( UBYTE *  s)
extern

Definition at line 522 of file compiler.c.

◆ IsRHS()

UBYTE * IsRHS ( UBYTE *  s,
UBYTE  c 
)
extern

Definition at line 476 of file compiler.c.

◆ ParenthesesTest()

int ParenthesesTest ( UBYTE *  sin)
extern

Definition at line 385 of file compiler.c.

◆ tokenize()

int tokenize ( UBYTE *  in,
WORD  leftright 
)
extern

Definition at line 58 of file token.c.

◆ WriteTokens()

void WriteTokens ( SBYTE *  in)
extern

Definition at line 652 of file token.c.

◆ simp1token()

int simp1token ( SBYTE *  s)
extern

Definition at line 700 of file token.c.

◆ simpwtoken()

int simpwtoken ( SBYTE *  s)
extern

Definition at line 789 of file token.c.

◆ simp2token()

int simp2token ( SBYTE *  s)
extern

Definition at line 943 of file token.c.

◆ simp3atoken()

int simp3atoken ( SBYTE *  s,
int  mode 
)
extern

Definition at line 1191 of file token.c.

◆ simp3btoken()

int simp3btoken ( SBYTE *  s,
int  mode 
)
extern

Definition at line 1432 of file token.c.

◆ simp4token()

int simp4token ( SBYTE *  s)
extern

Definition at line 1843 of file token.c.

◆ simp5token()

int simp5token ( SBYTE *  s,
int  mode 
)
extern

Definition at line 2003 of file token.c.

◆ simp6token()

int simp6token ( SBYTE *  tokens,
int  mode 
)
extern

Definition at line 2049 of file token.c.

◆ SkipAName()

UBYTE * SkipAName ( UBYTE *  s)
extern

Skips a name and gives a pointer to the character after the name. If there is not a proper name, it emits a compiler message and then returns a null pointer. This function supports formal names (e.g., [x+a]) and $-variables in addition to ordinary identifiers.

Note
The brackets are assumed to be matched already.
Parameters
[in]sPointer to a null-terminated input string that starts with a name.
Returns
Pointer to the character after the name, or a null pointer if the name is invalid.

Definition at line 443 of file compiler.c.

◆ TestTables()

int TestTables ( void  )
extern

Definition at line 706 of file compiler.c.

◆ GetLabel()

int GetLabel ( UBYTE *  name)
extern

Definition at line 2788 of file names.c.

◆ CoIdExpression()

int CoIdExpression ( UBYTE *  inp,
int  type 
)
extern

Definition at line 506 of file comexpr.c.

◆ CoAssign()

int CoAssign ( UBYTE *  inp)
extern

Definition at line 1923 of file comexpr.c.

◆ DoExpr()

int DoExpr ( UBYTE *  inp,
int  type,
int  par 
)
extern

Definition at line 96 of file comexpr.c.

◆ CompileSubExpressions()

int CompileSubExpressions ( SBYTE *  tokens)
extern

Definition at line 750 of file compiler.c.

◆ CodeGenerator()

int CodeGenerator ( SBYTE *  tokens)
extern

Definition at line 885 of file compiler.c.

◆ CompleteTerm()

int CompleteTerm ( WORD *  term,
UWORD *  numer,
UWORD *  denom,
WORD  nnum,
WORD  nden,
int  sign 
)
extern

Definition at line 1948 of file compiler.c.

◆ CodeFactors()

int CodeFactors ( SBYTE *  s)
extern

Definition at line 1985 of file compiler.c.

◆ GenerateFactors()

WORD GenerateFactors ( WORD  n,
WORD  inc 
)
extern

Definition at line 2282 of file compiler.c.

◆ InsTree()

int InsTree ( int  bufnum,
int  h 
)
extern

Definition at line 355 of file comtool.c.

◆ FindTree()

int FindTree ( int  bufnum,
WORD *  subexpr 
)
extern

Definition at line 533 of file comtool.c.

◆ RedoTree()

void RedoTree ( CBUF C,
int  size 
)
extern

Definition at line 569 of file comtool.c.

◆ ClearTree()

void ClearTree ( int  i)
extern

Definition at line 588 of file comtool.c.

◆ CatchDollar()

int CatchDollar ( int  par)
extern

Definition at line 52 of file dollar.c.

◆ AssignDollar()

int AssignDollar ( PHEAD WORD *  term,
WORD  level 
)
extern

Definition at line 207 of file dollar.c.

◆ WriteDollarToBuffer()

UBYTE * WriteDollarToBuffer ( WORD  numdollar,
WORD  par 
)
extern

Definition at line 581 of file dollar.c.

◆ WriteDollarFactorToBuffer()

UBYTE * WriteDollarFactorToBuffer ( WORD  numdollar,
WORD  numfac,
WORD  par 
)
extern

Definition at line 672 of file dollar.c.

◆ AddToDollarBuffer()

void AddToDollarBuffer ( UBYTE *  s)
extern

Definition at line 747 of file dollar.c.

◆ PutTermInDollar()

int PutTermInDollar ( WORD *  term,
WORD  numdollar 
)
extern

Definition at line 848 of file dollar.c.

◆ TermAssign()

void TermAssign ( WORD *  term)
extern

Definition at line 788 of file dollar.c.

◆ WildDollars()

void WildDollars ( PHEAD WORD *  term)
extern

Definition at line 876 of file dollar.c.

◆ numcommute()

LONG numcommute ( WORD *  terms,
LONG *  numterms 
)
extern

Definition at line 659 of file comtool.c.

◆ FullRenumber()

int FullRenumber ( PHEAD WORD *  term,
WORD  par 
)
extern

Definition at line 324 of file reshuf.c.

◆ Lus()

int Lus ( WORD *  term,
WORD  funnum,
WORD  loopsize,
WORD  numargs,
WORD  outfun,
WORD  mode 
)
extern

Definition at line 57 of file lus.c.

◆ FindLus()

int FindLus ( int  from,
int  level,
int  openindex 
)
extern

Definition at line 515 of file lus.c.

◆ CoReplaceLoop()

int CoReplaceLoop ( UBYTE *  inp)
extern

Definition at line 5158 of file compcomm.c.

◆ CoFindLoop()

int CoFindLoop ( UBYTE *  inp)
extern

Definition at line 5150 of file compcomm.c.

◆ DoFindLoop()

int DoFindLoop ( UBYTE *  inp,
int  mode 
)
extern

Definition at line 5033 of file compcomm.c.

◆ CoFunPowers()

int CoFunPowers ( UBYTE *  inp)
extern

Definition at line 5178 of file compcomm.c.

◆ SortTheList()

int SortTheList ( int *  slist,
int  num 
)
extern

Definition at line 578 of file lus.c.

◆ MatchIsPossible()

int MatchIsPossible ( WORD *  pattern,
WORD *  term 
)
extern

Definition at line 299 of file smart.c.

◆ StudyPattern()

int StudyPattern ( WORD *  lhs)
extern

Definition at line 62 of file smart.c.

◆ DolToTensor()

WORD DolToTensor ( PHEAD  WORD)
extern

Definition at line 1067 of file dollar.c.

◆ DolToFunction()

WORD DolToFunction ( PHEAD  WORD)
extern

Definition at line 1128 of file dollar.c.

◆ DolToVector()

WORD DolToVector ( PHEAD  WORD)
extern

Definition at line 1185 of file dollar.c.

◆ DolToNumber()

WORD DolToNumber ( PHEAD  WORD)
extern

Definition at line 1249 of file dollar.c.

◆ DolToSymbol()

WORD DolToSymbol ( PHEAD  WORD)
extern

Definition at line 1308 of file dollar.c.

◆ DolToIndex()

WORD DolToIndex ( PHEAD  WORD)
extern

Definition at line 1362 of file dollar.c.

◆ DolToLong()

LONG DolToLong ( PHEAD  WORD)
extern

Definition at line 1590 of file dollar.c.

◆ DollarFactorize()

int DollarFactorize ( PHEAD  WORD)
extern

Definition at line 2937 of file dollar.c.

◆ CoPrintTable()

int CoPrintTable ( UBYTE *  inp)
extern

Definition at line 1747 of file comexpr.c.

◆ CoDeallocateTable()

int CoDeallocateTable ( UBYTE *  inp)
extern

Definition at line 1981 of file comexpr.c.

◆ CleanDollarFactors()

void CleanDollarFactors ( DOLLARS  d)
extern

Definition at line 3536 of file dollar.c.

◆ TakeDollarContent()

WORD * TakeDollarContent ( PHEAD WORD *  dollarbuffer,
WORD **  factor 
)
extern

Definition at line 3558 of file dollar.c.

◆ MakeDollarInteger()

WORD * MakeDollarInteger ( PHEAD WORD *  bufin,
WORD **  bufout 
)
extern

For normalizing everything to integers we have to determine for all elements of this argument the LCM of the denominators and the GCD of the numerators. The input argument is in bufin. The number that comes out is the return value. The normalized argument is in bufout.

Definition at line 3610 of file dollar.c.

References EndSort(), Generator(), and NewSort().

Here is the call graph for this function:

◆ MakeDollarMod()

WORD * MakeDollarMod ( PHEAD WORD *  buffer,
WORD **  bufout 
)
extern

Similar to MakeDollarInteger but now with modulus arithmetic using only a one WORD 'prime'. We make the coefficient of the first term in the argument equal to one. Already the coefficients are taken modulus AN.cmod and AN.ncmod == 1

Definition at line 3784 of file dollar.c.

References EndSort(), Generator(), GetModInverses(), and NewSort().

Here is the call graph for this function:

◆ GetDolNum()

int GetDolNum ( PHEAD WORD *  t,
WORD *  tstop 
)
extern

Definition at line 3829 of file dollar.c.

◆ AddPotModdollar()

void AddPotModdollar ( WORD  numdollar)
extern

Adds a $-variable specified by numdollar to the list of potentially modified $-variables unless it has already been included in the list.

Parameters
numdollarThe index of the $-variable to be added.

Definition at line 3942 of file dollar.c.

◆ Optimize()

int Optimize ( WORD  exprnr,
int  do_print 
)
extern

Optimization of expression

Description

This method takes an input expression and generates optimized code to calculate its value. The following methods are called to do so:

(1) get_expression : to read to expression

(2) get_brackets : find brackets for simultaneous optimization

(3) occurrence_order or find_Horner_MCTS : to determine (the) Horner scheme(s) to use; this depends on AO.optimize.horner

(4) optimize_expression_given_Horner : to do the optimizations for each Horner scheme; this method does either CSE or greedy optimizations dependings on AO.optimize.method

(5) generate_output : to format the output in Form notation and store it in a buffer

(6a) optimize_print_code : to print the expression (for "Print") or (6b) generate_expression : to modify the expression (for "#Optimize")

On ParFORM, all the processes must call this function at the same time. Then

(1) Because only the master can access to the expression to be optimized, the master broadcast the expression to all the slaves after reading the expression (PF_get_expression).

(2) get_brackets reads optimize_expr as the input and it works also on the slaves. We leave it although the bracket information is not needed on the slaves (used in (5) on the master).

(3) and (4) find_Horner_MCTS and optimize_expression_given_Horner are parallelized.

(5), (6a) and (6b) are needed only on the master.

Definition at line 4637 of file optimize.cc.

References ClearOptimize(), count_operators(), find_Horner_MCTS(), generate_expression(), generate_output(), get_brackets(), get_expression(), occurrence_order(), optimize_expression_given_Horner(), optimize_print_code(), PF_Broadcast(), PF_LongMultiBroadcast(), PF_Pack(), PF_PrepareLongMultiPack(), PF_PreparePack(), PF_Unpack(), and PutPreVar().

Here is the call graph for this function:

◆ ClearOptimize()

int ClearOptimize ( void  )
extern

Optimization of expression

Description

Clears the buffers that were used for optimization output. Clears the expression from the buffers (marks it to be dropped). Note: we need to use the expression by its name, because numbers may change if we drop other expressions between when we do the optimizations and clear the results (in execute.c). Also this is not 100% safe, because we could overwrite the optimized expression. But that can be done only in a Local or Global statement and hence we only have to test there that we might have to call ClearOptimize first. (in file comexpr.c)

Definition at line 4974 of file optimize.cc.

References PutPreVar().

Referenced by Optimize().

Here is the call graph for this function:

◆ TakeLongRoot()

int TakeLongRoot ( UWORD *  a,
WORD *  n,
WORD  power 
)
extern

Definition at line 2736 of file reken.c.

◆ TakeRatRoot()

int TakeRatRoot ( UWORD *  a,
WORD *  n,
WORD  power 
)
extern

Definition at line 681 of file reken.c.

◆ MakeRational()

int MakeRational ( WORD  a,
WORD  m,
WORD *  b,
WORD *  c 
)
extern

Definition at line 2856 of file reken.c.

◆ MakeLongRational()

int MakeLongRational ( PHEAD UWORD *  a,
WORD  na,
UWORD *  m,
WORD  nm,
UWORD *  b,
WORD *  nb 
)
extern

Definition at line 2904 of file reken.c.

◆ ClearTableTree()

void ClearTableTree ( TABLES  T)
extern

Definition at line 72 of file tables.c.

◆ InsTableTree()

int InsTableTree ( TABLES  T,
WORD *  tp 
)
extern

Definition at line 103 of file tables.c.

◆ RedoTableTree()

void RedoTableTree ( TABLES  T,
int  newsize 
)
extern

Definition at line 266 of file tables.c.

◆ FindTableTree()

int FindTableTree ( TABLES  T,
WORD *  tp,
int  inc 
)
extern

Definition at line 291 of file tables.c.

◆ finishcbuf()

void finishcbuf ( WORD  num)
extern

Frees a compiler buffer.

Parameters
numThe ID number for the buffer to be freed.

Definition at line 89 of file comtool.c.

References CbUf::boomlijst, CbUf::Buffer, CbUf::BufferSize, CbUf::CanCommu, CbUf::lhs, CbUf::NumTerms, CbUf::Pointer, CbUf::rhs, and CbUf::Top.

Referenced by PF_BroadcastCBuf().

◆ clearcbuf()

void clearcbuf ( WORD  num)
extern

Clears contents in a compiler buffer.

Parameters
numThe ID number for the buffer to be cleared.

Definition at line 116 of file comtool.c.

References CbUf::boomlijst, CbUf::Buffer, CbUf::Pointer, and CbUf::rhs.

◆ CleanUpSort()

void CleanUpSort ( int  num)
extern

Partially or completely frees function sort buffers.

Definition at line 4561 of file sort.c.

◆ AllocFileHandle()

FILEHANDLE * AllocFileHandle ( WORD  par,
char *  name 
)
extern

Definition at line 1042 of file setfile.c.

◆ DeAllocFileHandle()

void DeAllocFileHandle ( FILEHANDLE fh)
extern

Definition at line 1103 of file setfile.c.

◆ LowerSortLevel()

void LowerSortLevel ( void  )
extern

◆ PolyRatFunSpecial()

WORD * PolyRatFunSpecial ( PHEAD WORD *  t1,
WORD *  t2 
)
extern

Definition at line 4678 of file sort.c.

◆ SimpleSplitMergeRec()

void SimpleSplitMergeRec ( WORD *  array,
WORD  num,
WORD *  auxarray 
)
extern

Definition at line 4780 of file sort.c.

◆ SimpleSplitMerge()

void SimpleSplitMerge ( WORD *  array,
WORD  num 
)
extern

Definition at line 4808 of file sort.c.

◆ BinarySearch()

WORD BinarySearch ( WORD *  array,
WORD  num,
WORD  x 
)
extern

Definition at line 4826 of file sort.c.

◆ InsideDollar()

int InsideDollar ( PHEAD WORD *  ll,
WORD  level 
)
extern

Definition at line 1730 of file dollar.c.

◆ DolToTerms()

DOLLARS DolToTerms ( PHEAD  WORD)
extern

Definition at line 1443 of file dollar.c.

◆ EvalDoLoopArg()

WORD EvalDoLoopArg ( PHEAD WORD *  arg,
WORD  par 
)
extern

Evaluates one argument of a do loop. Such an argument is constructed from SNUMBERs DOLLAREXPRESSIONs and possibly DOLLAREXPR2s which indicate factors of the preceding dollar. Hence we have SNUMBER,num DOLLAREXPRESSION,numdollar DOLLAREXPRESSION,numdollar,DOLLAREXPR2,numfactor DOLLAREXPRESSION,numdollar,DOLLAREXPR2,numfactor,DOLLAREXPR2,numfactor etc. Because we have a do-loop at every stage we should have a number. The notation in DOLLAREXPR2 is that >= 0 is number of yet another dollar and < 0 is -n-1 with n the array element or zero. The return value is the (short) number. The routine works its way through the list in a recursive manner.

Definition at line 2633 of file dollar.c.

References EvalDoLoopArg().

Referenced by EvalDoLoopArg().

Here is the call graph for this function:

◆ SetExprCases()

int SetExprCases ( int  par,
int  setunset,
int  val 
)
extern

Definition at line 1365 of file compcomm.c.

◆ TestSelect()

int TestSelect ( WORD *  term,
WORD *  setp 
)
extern

Definition at line 1748 of file pattern.c.

◆ SubsInAll()

void SubsInAll ( PHEAD0  )
extern

Definition at line 1982 of file pattern.c.

◆ TransferBuffer()

void TransferBuffer ( int  from,
int  to,
int  spectator 
)
extern

Definition at line 2143 of file pattern.c.

◆ TakeIDfunction()

int TakeIDfunction ( PHEAD WORD *  term)
extern

Definition at line 2213 of file pattern.c.

◆ MakeSetupAllocs()

int MakeSetupAllocs ( void  )
extern

Definition at line 1120 of file setfile.c.

◆ AllocNormData()

NORMDATA * AllocNormData ( void  )
extern

Definition at line 1134 of file setfile.c.

◆ TryFileSetups()

int TryFileSetups ( void  )
extern

Definition at line 1166 of file setfile.c.

◆ ExchangeExpressions()

void ExchangeExpressions ( int  num1,
int  num2 
)
extern

Definition at line 1673 of file execute.c.

◆ ExchangeDollars()

void ExchangeDollars ( int  num1,
int  num2 
)
extern

Definition at line 1831 of file dollar.c.

◆ GetFirstBracket()

int GetFirstBracket ( WORD *  term,
int  num 
)
extern

Definition at line 1747 of file execute.c.

◆ GetFirstTerm()

int GetFirstTerm ( WORD *  term,
int  num,
int  pre 
)
extern

Gets the first term of an expression. Routine should be thread safe.

Parameters
[out]termPointer to the buffer where the term should be written.
[in]numThe expression number from which to get the term.
[in]preDenotes a pre-processor call (1) or not (0). Used to determine the correct source file for the expression.
Returns
First WORD of term, a negative value denotes an error.

Definition at line 1866 of file execute.c.

References FiLe::handle, VaRrEnUm::lo, and ReNuMbEr::symb.

◆ GetContent()

int GetContent ( WORD *  content,
int  num 
)
extern

Definition at line 1974 of file execute.c.

◆ CleanupTerm()

int CleanupTerm ( WORD *  term)
extern

Definition at line 2091 of file execute.c.

◆ ContentMerge()

WORD ContentMerge ( PHEAD WORD *  content,
WORD *  term 
)
extern

Definition at line 2115 of file execute.c.

◆ PreIfDollarEval()

UBYTE * PreIfDollarEval ( UBYTE *  s,
int *  value 
)
extern

Definition at line 1960 of file dollar.c.

◆ TermsInDollar()

LONG TermsInDollar ( WORD  num)
extern

Definition at line 1849 of file dollar.c.

◆ SizeOfDollar()

LONG SizeOfDollar ( WORD  num)
extern

Definition at line 1898 of file dollar.c.

◆ TermsInExpression()

LONG TermsInExpression ( WORD  num)
extern

Definition at line 2379 of file execute.c.

◆ SizeOfExpression()

LONG SizeOfExpression ( WORD  num)
extern

Definition at line 2391 of file execute.c.

◆ TranslateExpression()

WORD * TranslateExpression ( UBYTE *  s)
extern

Definition at line 2142 of file dollar.c.

◆ IsSetMember()

int IsSetMember ( WORD *  buffer,
WORD  numset 
)
extern

Definition at line 2199 of file dollar.c.

◆ IsMultipleOf()

int IsMultipleOf ( WORD *  buf1,
WORD *  buf2 
)
extern

Definition at line 2380 of file dollar.c.

◆ TwoExprCompare()

int TwoExprCompare ( WORD *  buf1,
WORD *  buf2,
int  oprtr 
)
extern

Definition at line 2455 of file dollar.c.

◆ UpdatePositions()

void UpdatePositions ( void  )
extern

Definition at line 2403 of file execute.c.

◆ M_print()

void M_print ( void  )
extern

Definition at line 2453 of file tools.c.

◆ M_check1()

void M_check1 ( void  )
extern

Definition at line 2452 of file tools.c.

◆ PrintTime()

void PrintTime ( UBYTE *  mess)
extern

Definition at line 766 of file sch.c.

◆ FindBracket()

POSITION * FindBracket ( WORD  nexp,
WORD *  bracket 
)
extern

Definition at line 65 of file index.c.

◆ PutBracketInIndex()

void PutBracketInIndex ( PHEAD WORD *  term,
POSITION newpos 
)
extern

Definition at line 331 of file index.c.

◆ ClearBracketIndex()

void ClearBracketIndex ( WORD  numexp)
extern

Definition at line 546 of file index.c.

◆ OpenBracketIndex()

void OpenBracketIndex ( WORD  nexpr)
extern

Definition at line 578 of file index.c.

◆ DoNoParallel()

int DoNoParallel ( UBYTE *  s)
extern

Definition at line 530 of file module.c.

◆ DoParallel()

int DoParallel ( UBYTE *  s)
extern

Definition at line 545 of file module.c.

◆ DoModSum()

int DoModSum ( UBYTE *  s)
extern

Definition at line 560 of file module.c.

◆ DoModMax()

int DoModMax ( UBYTE *  s)
extern

Definition at line 580 of file module.c.

◆ DoModMin()

int DoModMin ( UBYTE *  s)
extern

Definition at line 600 of file module.c.

◆ DoModLocal()

int DoModLocal ( UBYTE *  s)
extern

Definition at line 620 of file module.c.

◆ DoModDollar()

UBYTE * DoModDollar ( UBYTE *  s,
int  type 
)
extern

Definition at line 658 of file module.c.

◆ DoProcessBucket()

int DoProcessBucket ( UBYTE *  s)
extern

Definition at line 640 of file module.c.

◆ DoinParallel()

int DoinParallel ( UBYTE *  s)
extern

Definition at line 773 of file module.c.

◆ DonotinParallel()

int DonotinParallel ( UBYTE *  s)
extern

Definition at line 783 of file module.c.

◆ FlipTable()

int FlipTable ( FUNCTIONS  f,
int  type 
)
extern

Definition at line 671 of file tables.c.

◆ ChainIn()

int ChainIn ( PHEAD WORD *  term,
WORD  funnum 
)
extern

Definition at line 691 of file function.c.

◆ ChainOut()

int ChainOut ( PHEAD WORD *  term,
WORD  funnum 
)
extern

Definition at line 748 of file function.c.

◆ ArgumentImplode()

int ArgumentImplode ( PHEAD WORD *  term,
WORD *  thelist 
)
extern

Definition at line 1851 of file argument.c.

◆ ArgumentExplode()

int ArgumentExplode ( PHEAD WORD *  term,
WORD *  thelist 
)
extern

Definition at line 1955 of file argument.c.

◆ DenToFunction()

int DenToFunction ( WORD *  term,
WORD  numfun 
)
extern

Definition at line 2557 of file wildcard.c.

◆ HowMany()

WORD HowMany ( PHEAD WORD *  ifcode,
WORD *  term 
)
extern

Definition at line 840 of file if.c.

◆ RemoveDollars()

void RemoveDollars ( void  )
extern

Definition at line 3129 of file names.c.

◆ CountTerms1()

LONG CountTerms1 ( PHEAD0  )
extern

Definition at line 2463 of file execute.c.

◆ TermsInBracket()

LONG TermsInBracket ( PHEAD WORD *  term,
WORD  level 
)
extern

Definition at line 2571 of file execute.c.

◆ Crash()

int Crash ( void  )
extern

Definition at line 3770 of file tools.c.

◆ str_dup()

char * str_dup ( char *  str)
extern

Definition at line 101 of file minos.c.

◆ convertblock()

void convertblock ( INDEXBLOCK in,
INDEXBLOCK out,
int  mode 
)
extern

Definition at line 120 of file minos.c.

◆ convertnamesblock()

void convertnamesblock ( NAMESBLOCK in,
NAMESBLOCK out,
int  mode 
)
extern

Definition at line 171 of file minos.c.

◆ convertiniinfo()

void convertiniinfo ( INIINFO in,
INIINFO out,
int  mode 
)
extern

Definition at line 197 of file minos.c.

◆ ReadIndex()

int ReadIndex ( DBASE d)
extern

Definition at line 288 of file minos.c.

◆ WriteIndexBlock()

int WriteIndexBlock ( DBASE d,
MLONG  num 
)
extern

Definition at line 399 of file minos.c.

◆ WriteNamesBlock()

int WriteNamesBlock ( DBASE d,
MLONG  num 
)
extern

Definition at line 420 of file minos.c.

◆ WriteIndex()

int WriteIndex ( DBASE d)
extern

Definition at line 443 of file minos.c.

◆ WriteIniInfo()

int WriteIniInfo ( DBASE d)
extern

Definition at line 506 of file minos.c.

◆ ReadIniInfo()

int ReadIniInfo ( DBASE d)
extern

Definition at line 523 of file minos.c.

◆ AddToIndex()

int AddToIndex ( DBASE d,
MLONG  number 
)
extern

Definition at line 1065 of file minos.c.

◆ GetDbase()

DBASE * GetDbase ( char *  filename,
MLONG  rwmode 
)
extern

Definition at line 546 of file minos.c.

◆ OpenDbase()

DBASE * OpenDbase ( char *  filename)
extern

Definition at line 820 of file minos.c.

◆ ReadObject()

char * ReadObject ( DBASE d,
MLONG  tablenumber,
char *  arguments 
)
extern

Definition at line 1294 of file minos.c.

◆ ReadijObject()

char * ReadijObject ( DBASE d,
MLONG  i,
MLONG  j,
char *  arguments 
)
extern

Definition at line 1375 of file minos.c.

◆ ExistsObject()

int ExistsObject ( DBASE d,
MLONG  tablenumber,
char *  arguments 
)
extern

Definition at line 1427 of file minos.c.

◆ DeleteObject()

int DeleteObject ( DBASE d,
MLONG  tablenumber,
char *  arguments 
)
extern

Definition at line 1459 of file minos.c.

◆ WriteObject()

int WriteObject ( DBASE d,
MLONG  tablenumber,
char *  arguments,
char *  rhs,
MLONG  number 
)
extern

Definition at line 1194 of file minos.c.

◆ AddObject()

MLONG AddObject ( DBASE d,
MLONG  tablenumber,
char *  arguments,
char *  rhs 
)
extern

Definition at line 1152 of file minos.c.

◆ NewDbase()

DBASE * NewDbase ( char *  name,
MLONG  number 
)
extern

Definition at line 602 of file minos.c.

◆ FreeTableBase()

void FreeTableBase ( DBASE d)
extern

Definition at line 739 of file minos.c.

◆ ComposeTableNames()

int ComposeTableNames ( DBASE d)
extern

Definition at line 771 of file minos.c.

◆ PutTableNames()

int PutTableNames ( DBASE d)
extern

Definition at line 969 of file minos.c.

◆ AddTableName()

MLONG AddTableName ( DBASE d,
char *  name,
TABLES  T 
)
extern

Definition at line 854 of file minos.c.

◆ GetTableName()

MLONG GetTableName ( DBASE d,
char *  name 
)
extern

Definition at line 937 of file minos.c.

◆ FindTableNumber()

MLONG FindTableNumber ( DBASE d,
char *  name 
)
extern

Definition at line 1166 of file minos.c.

◆ TryEnvironment()

int TryEnvironment ( void  )
extern

Definition at line 1252 of file setfile.c.

◆ CopyExpression()

int CopyExpression ( FILEHANDLE from,
FILEHANDLE to 
)
extern

Definition at line 3307 of file store.c.

◆ set_in()

int set_in ( UBYTE  ch,
set_of_char  set 
)
extern

Definition at line 2133 of file tools.c.

◆ set_set()

one_byte set_set ( UBYTE  ch,
set_of_char  set 
)
extern

Definition at line 2153 of file tools.c.

◆ set_del()

one_byte set_del ( UBYTE  ch,
set_of_char  set 
)
extern

Definition at line 2174 of file tools.c.

◆ set_sub()

one_byte set_sub ( set_of_char  set,
set_of_char  set1,
set_of_char  set2 
)
extern

Definition at line 2196 of file tools.c.

◆ DoPreAddSeparator()

int DoPreAddSeparator ( UBYTE *  s)
extern

Definition at line 5460 of file pre.c.

◆ DoPreRmSeparator()

int DoPreRmSeparator ( UBYTE *  s)
extern

Definition at line 5485 of file pre.c.

◆ openExternalChannel()

int openExternalChannel ( UBYTE *  cmd,
int  daemonize,
UBYTE *  shellname,
UBYTE *  stderrname 
)
extern

Definition at line 230 of file extcmd.c.

◆ initPresetExternalChannels()

int initPresetExternalChannels ( UBYTE *  theline,
int  thetimeout 
)
extern

Definition at line 232 of file extcmd.c.

◆ closeExternalChannel()

int closeExternalChannel ( int  n)
extern

Definition at line 233 of file extcmd.c.

◆ selectExternalChannel()

int selectExternalChannel ( int  n)
extern

Definition at line 234 of file extcmd.c.

◆ getCurrentExternalChannel()

int getCurrentExternalChannel ( void  )
extern

Definition at line 235 of file extcmd.c.

◆ closeAllExternalChannels()

void closeAllExternalChannels ( void  )
extern

Definition at line 236 of file extcmd.c.

◆ defineChannel()

UBYTE * defineChannel ( UBYTE *  s,
HANDLERS h 
)
extern

Definition at line 6111 of file pre.c.

◆ writeToChannel()

int writeToChannel ( int  wtype,
UBYTE *  s,
HANDLERS h 
)
extern

Definition at line 6146 of file pre.c.

◆ ReleaseTB()

int ReleaseTB ( void  )
extern

Definition at line 2317 of file tables.c.

◆ SymbolNormalize()

int SymbolNormalize ( WORD *  term)
extern

Routine normalizes terms that contain only symbols. Regular minimum and maximum properties are ignored.

We check whether there are negative powers in the output. This is not allowed.

Definition at line 5195 of file normal.c.

Referenced by InFunction(), and poly_sort().

◆ TestFunFlag()

int TestFunFlag ( PHEAD WORD *  tfun)
extern

Definition at line 5294 of file normal.c.

◆ CompareSymbols()

WORD CompareSymbols ( PHEAD WORD *  term1,
WORD *  term2,
WORD  par 
)
extern

Compares the terms, based on the value of AN.polysortflag. If term1 < term2 the return value is -1 If term1 > term2 the return value is 1 If term1 = term2 the return value is 0 The coefficients may differ. The terms contain only a single subterm of type SYMBOL. If AN.polysortflag = 0 it is a 'regular' compare. If AN.polysortflag = 1 the sum of the powers is more important par is a dummy parameter to make the parameter field identical to that of Compare1 which is the regular compare routine in sort.c

Definition at line 2804 of file sort.c.

Referenced by InFunction(), and poly_sort().

◆ CompareHSymbols()

WORD CompareHSymbols ( PHEAD WORD *  term1,
WORD *  term2,
WORD  par 
)
extern

Compares terms that can have only SYMBOL and HAAKJE subterms. If term1 < term2 the return value is -1 If term1 > term2 the return value is 1 If term1 = term2 the return value is 0 par is a dummy parameter to make the parameter field identical to that of Compare1 which is the regular compare routine in sort.c

Definition at line 2847 of file sort.c.

◆ NextPrime()

WORD NextPrime ( PHEAD WORD  num)
extern

Gives the next prime number in the list of prime numbers.

If the list isn't long enough we expand it. For ease in ParForm and because these lists shouldn't be very big we let each worker keep its own list.

The list is cut off at MAXPOWER, because we don't want to get into trouble that the power of a variable gets larger than the prime number.

Definition at line 3665 of file reken.c.

◆ Moebius()

WORD Moebius ( PHEAD  WORD)
extern

Definition at line 3729 of file reken.c.

◆ wranf()

UWORD wranf ( PHEAD0  )
extern

Definition at line 3869 of file reken.c.

◆ iranf()

UWORD iranf ( PHEAD  UWORD)
extern

Definition at line 3888 of file reken.c.

◆ iniwranf()

void iniwranf ( PHEAD0  )
extern

Definition at line 3820 of file reken.c.

◆ PreRandom()

UBYTE * PreRandom ( UBYTE *  s)
extern

Definition at line 3913 of file reken.c.

◆ TreatPolyRatFun()

int TreatPolyRatFun ( PHEAD WORD *  prf)
extern

Definition at line 5011 of file normal.c.

◆ ReadSaveHeader()

int ReadSaveHeader ( void  )
extern

Reads the header in the save file and sets function pointers and flags according to the information found there. Must be called before any other ReadSave... function.

Currently works only for the exchange between 32bit and 64bit machines (WORD size must be 2 or 4 bytes)!

It is called by CoLoad().

Returns
= 0 everything okay, != 0 an error occurred

Definition at line 4057 of file store.c.

◆ ReadSaveIndex()

LONG ReadSaveIndex ( FILEINDEX fileind)
extern

Reads a FILEINDEX from the open save file specified by AO.SaveData.Handle. Translations for adjusting endianness and data sizes are done if necessary.

Depends on the assumption that sizeof(FILEINDEX) is the same everywhere. If FILEINDEX or INDEXENTRY change, then this functions has to be adjusted.

Called by CoLoad() and FindInIndex().

Parameters
fileindcontains the read FILEINDEX after successful return. must point to allocated, big enough memory.
Returns
= 0 everything okay, != 0 an error occurred

Definition at line 4175 of file store.c.

References INFILEINDEX, FiLeInDeX::next, FiLeInDeX::number, and FuNcTiOn::number.

◆ ReadSaveExpression()

LONG ReadSaveExpression ( UBYTE *  buffer,
UBYTE *  top,
LONG *  size,
LONG *  outsize 
)
extern

Reads an expression from the open file specified by AO.SaveData.Handle. The endianness flip and a resizing without renumbering is done in this function. Thereafter the buffer consists of chunks with a uniform maximal word size (32bit at the moment). The actual renumbering is then done by calling the function ReadSaveTerm32(). The result is returned in buffer.

If the translation at some point doesn't fit into the buffer anymore, the function returns and must be called again. In any case size returns the number of successfully read bytes, outsize returns the number of successfully written bytes, and the file will be positioned at the next byte after the successfully read data.

It is called by PutInStore().

Parameters
bufferoutput buffer, holds the (translated) expression
topend of buffer
sizenumber of read bytes
outsizenumber of written bytes
Returns
= 0 everything okay, != 0 an error occurred

Definition at line 5138 of file store.c.

References ReadSaveTerm32().

Here is the call graph for this function:

◆ ReadSaveTerm32()

UBYTE * ReadSaveTerm32 ( UBYTE *  bin,
UBYTE *  binend,
UBYTE **  bout,
UBYTE *  boutend,
UBYTE *  top,
int  terminbuf 
)
extern

Reads a single term from the given buffer at bin and write the translated term back to this buffer at bout.

ReadSaveTerm32() is currently the only instantiation of a ReadSaveTerm-function. It only deals with data that already has the correct endianness and that is resized to 32bit words but without being renumbered or translated in any other way. It uses the compress buffer AR.CompressBuffer.

The function is reentrant in order to cope with nested function arguments. It is called by ReadSaveExpression() and itself.

The return value indicates the position in the input buffer up to which the data has already been successfully processed. The parameter bout returns the corresponding position in the output buffer.

Parameters
binstart of the input buffer
binendend of the input buffer
boutas input points to the beginning of the output buffer, as output points behind the already translated data in the output buffer
boutendend of already decompressed data in output buffer
topend of output buffer
terminbufflag whether decompressed data is already in the output buffer. used in recursive calls
Returns
pointer to the next unprocessed data in the input buffer

Definition at line 4728 of file store.c.

References ReadSaveTerm32().

Referenced by ReadSaveExpression(), and ReadSaveTerm32().

Here is the call graph for this function:

◆ ReadSaveVariables()

LONG ReadSaveVariables ( UBYTE *  buffer,
UBYTE *  top,
LONG *  size,
LONG *  outsize,
INDEXENTRY ind,
LONG *  stage 
)
extern

Reads the variables from the open file specified by AO.SaveData.Handle. It reads the *size bytes and writes them to the *buffer. It is called by PutInStore().

If translation is necessary, the data might shrink or grow in size, then *size is adjusted so that the reading and writing fits into the memory from the buffer to the top. The actual number of read bytes is returned in *size, the number of written bytes is returned in *outsize.

If the *size is smaller than the actual size of the variables, this function will be called several times and needs to remember the current position in the variable structure. The parameter stage does this job. When ReadSaveVariables() is called for the first time, this parameter should have the value -1.

The parameter ind is used to get the number of variables.

Parameters
bufferread variables are written into this allocated memory
topupper end of allocated memory
sizenumber of bytes to read. might return a smaller number of read bytes if translation was necessary
outsizeif translation has be done, outsize contains the number of written bytes
indpointer of INDEXENTRY for the current expression. read-only
stageshould be -1 for the first call, will be increased by ReadSaveVariables to memorize the position in the variable structure
Returns
= 0 everything okay, != 0 an error occurred

Definition at line 4361 of file store.c.

References InDeXeNtRy::nfunctions, InDeXeNtRy::nindices, InDeXeNtRy::nsymbols, InDeXeNtRy::nvectors, and FuNcTiOn::spec.

◆ WriteStoreHeader()

LONG WriteStoreHeader ( WORD  handle)
extern

Writes header with information about system architecture and FORM revision to an open store file.

Called by SetFileIndex().

Parameters
handlespecifies open file to which header will be written
Returns
= 0 everything okay, != 0 an error occurred

Definition at line 3964 of file store.c.

References STOREHEADER::endianness, STOREHEADER::lenLONG, STOREHEADER::lenPOINTER, STOREHEADER::lenPOS, STOREHEADER::lenWORD, STOREHEADER::maxpower, STOREHEADER::sFun, STOREHEADER::sInd, STOREHEADER::sSym, STOREHEADER::sVec, and STOREHEADER::wildoffset.

Referenced by SetFileIndex().

◆ InitRecovery()

void InitRecovery ( void  )
extern

Sets up the strings for the filenames of the recovery files. This functions should only be called once to avoid memory leaks and after AM.TempDir has been initialized.

Definition at line 399 of file checkpoint.c.

◆ CheckRecoveryFile()

int CheckRecoveryFile ( void  )
extern

Checks whether a snapshot/recovery file exists. Returns 1 if it exists, 0 otherwise.

Definition at line 278 of file checkpoint.c.

References RecoveryFilename().

Here is the call graph for this function:

◆ DeleteRecoveryFile()

void DeleteRecoveryFile ( void  )
extern

Deletes the recovery files. It is called by CleanUp() in the case of a successful completion.

Definition at line 333 of file checkpoint.c.

◆ RecoveryFilename()

char * RecoveryFilename ( void  )
extern

Returns pointer to recovery filename.

Definition at line 364 of file checkpoint.c.

Referenced by CheckRecoveryFile(), and DoRecovery().

◆ DoRecovery()

int DoRecovery ( int *  moduletype)
extern

Reads from the recovery file and restores all necessary variables and states in FORM, so that the execution can recommence in preprocessor() as if no restart of FORM had occurred.

The recovery file is read into memory as a whole. The pointer p then points into this memory at the next non-processed data. The macros by which variables are restored, like R_SET, automatically increase p appropriately.

If something goes wrong, the function returns with a non-zero value.

Allocated memory that would be lost when overwriting the global structs with data from the file is freed first. A major part of the code deals with the restoration of pointers. The idiom we use is to memorize the original pointer value (org), allocate new memory and copy the data from the file into this memory, calculate the offset between the old pointer value and the new allocated memory position (ofs), and then correct all affected pointers (+=ofs).

We rely on the fact that several variables (especially in AM) are already assigned the correct values by the startup functions. That means, in principle, that a change in the setup files between snapshot creation and recovery will be noticed.

Definition at line 1402 of file checkpoint.c.

References TaBlEs::argtail, TaBlEs::boomlijst, BrAcKeTiNfO::bracketbuffer, TaBlEs::buffers, TaBlEs::bufferssize, CopyFile(), TaBlEs::flags, ReNuMbEr::func, ReNuMbEr::funnum, VaRrEnUm::hi, BrAcKeTiNfO::indexbuffer, ReNuMbEr::indi, ReNuMbEr::indnum, VaRrEnUm::lo, TaBlEs::MaxTreeSize, TaBlEs::mm, TaBlEs::numind, TaBlEs::pattern, TaBlEs::prototype, TaBlEs::prototypeSize, RecoveryFilename(), ExPrEsSiOn::renumlists, TaBlEs::reserved, TaBlEs::spare, TaBlEs::sparse, VaRrEnUm::start, ReNuMbEr::symb, ReNuMbEr::symnum, TaBlEs::tablepointers, TimeWallClock(), TaBlEs::totind, ReNuMbEr::vecnum, and ReNuMbEr::vect.

Here is the call graph for this function:

◆ DoCheckpoint()

void DoCheckpoint ( int  moduletype)
extern

Checks whether a snapshot should be done. Calls DoSnapshot() to create the snapshot.

Definition at line 3110 of file checkpoint.c.

References PF_BroadcastNumber(), PF_RecvFile(), PF_SendFile(), and TimeWallClock().

Here is the call graph for this function:

◆ NumberMallocAddMemory()

void NumberMallocAddMemory ( PHEAD0  )
extern

Definition at line 2590 of file tools.c.

◆ CacheNumberMallocAddMemory()

void CacheNumberMallocAddMemory ( PHEAD0  )
extern

Definition at line 2664 of file tools.c.

◆ TermMallocAddMemory()

void TermMallocAddMemory ( PHEAD0  )
extern

Definition at line 2486 of file tools.c.

◆ ExprStatus()

void ExprStatus ( EXPRESSIONS  e)
extern

Definition at line 66 of file bugtool.c.

◆ iniTools()

void iniTools ( void  )
extern

Definition at line 2222 of file tools.c.

◆ TestTerm()

int TestTerm ( WORD *  term)
extern

Tests the consistency of the term. Returns 0 when the term is OK. Any nonzero value is trouble. In the current version the testing isn't 100% complete. For instance, we don't check the validity of the symbols nor do we check the range of their powers. Etc. This should be extended when the need is there.

Parameters
termthe term to be tested

Definition at line 3798 of file tools.c.

References TestTerm().

Referenced by TestTerm().

Here is the call graph for this function:

◆ RunTransform()

int RunTransform ( PHEAD WORD *  term,
WORD *  params 
)
extern

Definition at line 750 of file transform.c.

◆ RunEncode()

int RunEncode ( PHEAD WORD *  fun,
WORD *  args,
WORD *  info 
)
extern

Definition at line 1006 of file transform.c.

◆ RunDecode()

int RunDecode ( PHEAD WORD *  fun,
WORD *  args,
WORD *  info 
)
extern

Definition at line 1193 of file transform.c.

◆ RunReplace()

int RunReplace ( PHEAD WORD *  fun,
WORD *  args,
WORD *  info 
)
extern

Definition at line 1363 of file transform.c.

◆ RunImplode()

int RunImplode ( WORD *  fun,
WORD *  args 
)
extern

Definition at line 1841 of file transform.c.

◆ RunExplode()

int RunExplode ( PHEAD WORD *  fun,
WORD *  args 
)
extern

Definition at line 2042 of file transform.c.

◆ TestArgNum()

int TestArgNum ( int  n,
int  totarg,
WORD *  args 
)
extern

Definition at line 3307 of file transform.c.

◆ PutArgInScratch()

WORD PutArgInScratch ( WORD *  arg,
UWORD *  scrat 
)
extern

Definition at line 3376 of file transform.c.

◆ ReadRange()

UBYTE * ReadRange ( UBYTE *  s,
WORD *  out,
int  par 
)
extern

Definition at line 3412 of file transform.c.

◆ FindRange()

int FindRange ( PHEAD WORD *  args,
WORD *  arg1,
WORD *  arg2,
WORD  totarg 
)
extern

Definition at line 3572 of file transform.c.

◆ RunPermute()

int RunPermute ( PHEAD WORD *  fun,
WORD *  args,
WORD *  info 
)
extern

Definition at line 2156 of file transform.c.

◆ RunReverse()

int RunReverse ( PHEAD WORD *  fun,
WORD *  args 
)
extern

Definition at line 2383 of file transform.c.

◆ RunCycle()

int RunCycle ( PHEAD WORD *  fun,
WORD *  args,
WORD *  info 
)
extern

Definition at line 2559 of file transform.c.

◆ RunAddArg()

int RunAddArg ( PHEAD WORD *  fun,
WORD *  args 
)
extern

Definition at line 2711 of file transform.c.

◆ RunMulArg()

int RunMulArg ( PHEAD WORD *  fun,
WORD *  args 
)
extern

Definition at line 2800 of file transform.c.

◆ RunIsLyndon()

int RunIsLyndon ( PHEAD WORD *  fun,
WORD *  args,
int  par 
)
extern

Definition at line 2941 of file transform.c.

◆ RunToLyndon()

WORD RunToLyndon ( PHEAD WORD *  fun,
WORD *  args,
int  par 
)
extern

Definition at line 3019 of file transform.c.

◆ RunDropArg()

int RunDropArg ( PHEAD WORD *  fun,
WORD *  args 
)
extern

Definition at line 3131 of file transform.c.

◆ RunSelectArg()

int RunSelectArg ( PHEAD WORD *  fun,
WORD *  args 
)
extern

Definition at line 3157 of file transform.c.

◆ RunDedup()

int RunDedup ( PHEAD WORD *  fun,
WORD *  args 
)
extern

Definition at line 2470 of file transform.c.

◆ RunZtoHArg()

int RunZtoHArg ( PHEAD WORD *  fun,
WORD *  args 
)
extern

Definition at line 3185 of file transform.c.

◆ RunHtoZArg()

int RunHtoZArg ( PHEAD WORD *  fun,
WORD *  args 
)
extern

Definition at line 3241 of file transform.c.

◆ NormPolyTerm()

int NormPolyTerm ( PHEAD WORD *  term)
extern

Definition at line 53 of file notation.c.

◆ ConvertToPoly()

int ConvertToPoly ( PHEAD WORD *  term,
WORD *  outterm,
WORD *  comlist,
WORD  par 
)
extern

Definition at line 307 of file notation.c.

◆ LocalConvertToPoly()

int LocalConvertToPoly ( PHEAD WORD *  term,
WORD *  outterm,
WORD  startebuf,
WORD  par 
)
extern

Converts a generic term to polynomial notation in which there are only symbols and brackets. During conversion there will be only symbols. Brackets are stripped. Objects that need 'translation' are put inside a special compiler buffer and represented by a symbol. The numbering of the extra symbols is down from the maximum. In principle there can be a problem when running into the already assigned ones. This uses the FindTree for searching in the global tree and then looks further in the AT.ebufnum. This allows fully parallel processing. Hence we need no locks. Cannot be used in the same module as ConvertToPoly.

Definition at line 510 of file notation.c.

Referenced by poly_factorize_expression().

◆ ConvertFromPoly()

int ConvertFromPoly ( PHEAD WORD *  term,
WORD *  outterm,
WORD  from,
WORD  to,
WORD  offset,
WORD  par 
)
extern

Definition at line 660 of file notation.c.

◆ FindSubterm()

int FindSubterm ( WORD *  subterm)
extern

Definition at line 773 of file notation.c.

◆ FindLocalSubterm()

int FindLocalSubterm ( PHEAD WORD *  subterm,
WORD  startebuf 
)
extern

Definition at line 843 of file notation.c.

◆ PrintSubtermList()

void PrintSubtermList ( int  from,
int  to 
)
extern

Definition at line 897 of file notation.c.

◆ PrintExtraSymbol()

void PrintExtraSymbol ( int  num,
WORD *  terms,
int  par 
)
extern

Definition at line 1009 of file notation.c.

◆ FindSubexpression()

int FindSubexpression ( WORD *  subexpr)
extern

Definition at line 1096 of file notation.c.

◆ UpdateMaxSize()

void UpdateMaxSize ( void  )
extern

Definition at line 1612 of file tools.c.

◆ CoToPolynomial()

int CoToPolynomial ( UBYTE *  inp)
extern

Definition at line 5948 of file compcomm.c.

◆ CoFromPolynomial()

int CoFromPolynomial ( UBYTE *  inp)
extern

Definition at line 6023 of file compcomm.c.

◆ CoArgToExtraSymbol()

int CoArgToExtraSymbol ( UBYTE *  s)
extern

Definition at line 6049 of file compcomm.c.

◆ CoExtraSymbols()

int CoExtraSymbols ( UBYTE *  inp)
extern

Definition at line 6099 of file compcomm.c.

◆ GetDoParam()

UBYTE * GetDoParam ( UBYTE *  inp,
WORD **  wp,
int  par 
)
extern

Definition at line 6230 of file compcomm.c.

◆ GetIfDollarFactor()

WORD * GetIfDollarFactor ( UBYTE **  inp,
WORD *  w 
)
extern

Definition at line 6172 of file compcomm.c.

◆ CoDo()

int CoDo ( UBYTE *  inp)
extern

Definition at line 6307 of file compcomm.c.

◆ CoEndDo()

int CoEndDo ( UBYTE *  inp)
extern

Definition at line 6410 of file compcomm.c.

◆ ExtraSymFun()

int ExtraSymFun ( PHEAD WORD *  term,
WORD  level 
)
extern

Definition at line 1149 of file notation.c.

◆ PruneExtraSymbols()

int PruneExtraSymbols ( WORD  downto)
extern

Definition at line 1217 of file notation.c.

◆ IniFbuffer()

int IniFbuffer ( WORD  bufnum)
extern

Initialize a factorization cache buffer. We set the size of the rhs and boomlijst buffers immediately to their final values.

Definition at line 614 of file comtool.c.

References tree::blnce, CbUf::boomlijst, CbUf::CanCommu, CbUf::dimension, tree::left, CbUf::numdum, CbUf::NumTerms, tree::parent, CbUf::rhs, tree::right, tree::usage, and tree::value.

◆ GCDfunction()

int GCDfunction ( PHEAD WORD *  term,
WORD  level 
)
extern

Definition at line 609 of file ratio.c.

◆ GCDfunction3()

WORD * GCDfunction3 ( PHEAD WORD *  in1,
WORD *  in2 
)
extern

Definition at line 1141 of file ratio.c.

◆ ReadPolyRatFun()

int ReadPolyRatFun ( PHEAD WORD *  term)
extern

Definition at line 2264 of file ratio.c.

◆ FromPolyRatFun()

int FromPolyRatFun ( PHEAD WORD *  fun,
WORD **  numout,
WORD **  denout 
)
extern

Definition at line 2383 of file ratio.c.

◆ PolyDiv()

WORD * PolyDiv ( PHEAD WORD *  a,
WORD *  b,
char *  text 
)
extern

Definition at line 2741 of file ratio.c.

◆ GCDclean()

void GCDclean ( PHEAD WORD *  num,
WORD *  den 
)
extern

Definition at line 2644 of file ratio.c.

◆ TakeSymbolContent()

WORD * TakeSymbolContent ( PHEAD WORD *  in,
WORD *  term 
)
extern

Implements part of the old ExecArg in which we take common factors from arguments with more than one term. We allow only symbols as this code is used for the polyratfun only. We have a special routine, because the generic TakeContent does too much work and speed is at a premium here. Input: in is the input expression as a sequence of terms. Output: term: the content return value: the contentfree expression. it is in new allocation, made by TermMalloc. (should be in a TermMalloc space?)

Definition at line 2434 of file ratio.c.

References GetModInverses().

Here is the call graph for this function:

◆ GCDterms()

int GCDterms ( PHEAD WORD *  term1,
WORD *  term2,
WORD *  termout 
)
extern

Definition at line 2076 of file ratio.c.

◆ PutExtraSymbols()

WORD * PutExtraSymbols ( PHEAD WORD *  in,
WORD  startebuf,
int *  actionflag 
)
extern

Definition at line 1244 of file ratio.c.

◆ TakeExtraSymbols()

WORD * TakeExtraSymbols ( PHEAD WORD *  in,
WORD  startebuf 
)
extern

Definition at line 1273 of file ratio.c.

◆ MultiplyWithTerm()

WORD * MultiplyWithTerm ( PHEAD WORD *  in,
WORD *  term,
WORD  par 
)
extern

Definition at line 1312 of file ratio.c.

◆ TakeContent()

WORD * TakeContent ( PHEAD WORD *  in,
WORD *  term 
)
extern

Implements part of the old ExecArg in which we take common factors from arguments with more than one term. Here the input is a sequence of terms in 'in' and the answer is a content-free sequence of terms. This sequence has been allocated by the Malloc1 routine in a call to EndSort, unless the expression was already content-free. In that case the input pointer is returned. The content is returned in term. This is supposed to be a separate allocation, made by TermMalloc in the calling routine.

Definition at line 1376 of file ratio.c.

References GetModInverses().

Here is the call graph for this function:

◆ MergeSymbolLists()

int MergeSymbolLists ( PHEAD WORD *  old,
WORD *  extra,
int  par 
)
extern

Definition at line 1808 of file ratio.c.

◆ MergeDotproductLists()

int MergeDotproductLists ( PHEAD WORD *  old,
WORD *  extra,
int  par 
)
extern

Definition at line 1927 of file ratio.c.

◆ CreateExpression()

WORD * CreateExpression ( PHEAD  WORD)
extern

Definition at line 2020 of file ratio.c.

◆ DIVfunction()

int DIVfunction ( PHEAD WORD *  term,
WORD  level,
int  par 
)
extern

Definition at line 2788 of file ratio.c.

◆ MULfunc()

WORD * MULfunc ( PHEAD WORD *  p1,
WORD *  p2 
)
extern

Definition at line 2957 of file ratio.c.

◆ ConvertArgument()

WORD * ConvertArgument ( PHEAD WORD *  arg,
int *  type 
)
extern

Definition at line 3018 of file ratio.c.

◆ ExpandRat()

int ExpandRat ( PHEAD WORD *  fun)
extern

Definition at line 3113 of file ratio.c.

◆ InvPoly()

int InvPoly ( PHEAD WORD *  inpoly,
WORD  maxpow,
WORD  sym 
)
extern

Definition at line 3592 of file ratio.c.

◆ TestDoLoop()

WORD TestDoLoop ( PHEAD WORD *  lhsbuf,
WORD  level 
)
extern

Definition at line 2744 of file dollar.c.

◆ TestEndDoLoop()

WORD TestEndDoLoop ( PHEAD WORD *  lhsbuf,
WORD  level 
)
extern

Definition at line 2822 of file dollar.c.

◆ poly_gcd()

WORD * poly_gcd ( PHEAD WORD *  a,
WORD *  b,
WORD  fit 
)
extern

Polynomial gcd

Description

This method calculates the greatest common divisor of two polynomials, given by two zero-terminated Form-style term lists.

Notes

  • The result is written at newly allocated memory
  • Called from ratio.c
  • Calls polygcd::gcd

Definition at line 124 of file polywrap.cc.

References poly_determine_modulus().

Here is the call graph for this function:

◆ poly_div()

WORD * poly_div ( PHEAD WORD *  a,
WORD *  b,
WORD  fit 
)
extern

Definition at line 435 of file polywrap.cc.

◆ poly_rem()

WORD * poly_rem ( PHEAD WORD *  a,
WORD *  b,
WORD  fit 
)
extern

Definition at line 463 of file polywrap.cc.

◆ poly_inverse()

WORD * poly_inverse ( PHEAD WORD *  arga,
WORD *  argb 
)
extern

Definition at line 1743 of file polywrap.cc.

◆ poly_mul()

WORD * poly_mul ( PHEAD WORD *  a,
WORD *  b 
)
extern

Definition at line 1948 of file polywrap.cc.

◆ poly_ratfun_add()

WORD * poly_ratfun_add ( PHEAD WORD *  t1,
WORD *  t2 
)
extern

Addition of PolyRatFuns

Description

This method gets two pointers to polyratfuns with up to two arguments each and calculates the sum.

Notes

  • The result is written at the workpointer
  • Called from sort.c and threads.c
  • Calls poly::operators and polygcd::gcd

Definition at line 633 of file polywrap.cc.

References poly_determine_modulus(), poly_ratfun_read(), and poly_sort().

Referenced by AddPoly(), and MergePatches().

Here is the call graph for this function:

◆ poly_ratfun_normalize()

int poly_ratfun_normalize ( PHEAD WORD *  term)
extern

Multiplication/normalization of PolyRatFuns

Description

This method searches a term for multiple polyratfuns and multiplies their contents. The result is properly normalized. Normalization also works for terms with a single polyratfun.

Notes

  • The result overwrites the original term
  • Called from proces.c
  • Calls poly::operators and polygcd::gcd

Definition at line 769 of file polywrap.cc.

References poly_determine_modulus(), poly_ratfun_read(), and poly_sort().

Referenced by PolyFunMul(), and PrepPoly().

Here is the call graph for this function:

◆ poly_factorize_argument()

int poly_factorize_argument ( PHEAD WORD *  argin,
WORD *  argout 
)
extern

Factorization of function arguments

Description

This method factorizes the Form-style argument argin.

Notes

  • The result is written at argout
  • Called from argument.c
  • Calls poly_factorize

Definition at line 1112 of file polywrap.cc.

References poly_factorize().

Here is the call graph for this function:

◆ poly_factorize_dollar()

WORD * poly_factorize_dollar ( PHEAD WORD *  argin)
extern

Factorization of dollar variables

Description

This method factorizes a dollar variable.

Notes

  • The result is written at newly allocated memory.
  • Called from dollar.c
  • Calls poly_factorize

Definition at line 1146 of file polywrap.cc.

References poly_factorize().

Here is the call graph for this function:

◆ poly_factorize_expression()

int poly_factorize_expression ( EXPRESSIONS  expr)
extern

Factorization of expressions

Description

This method factorizes an expression.

Notes

  • The result overwrites the input expression
  • Called from proces.c
  • Calls polyfact::factorize

Definition at line 1178 of file polywrap.cc.

References EndSort(), Generator(), FiLe::handle, LocalConvertToPoly(), LowerSortLevel(), NewSort(), and poly_determine_modulus().

Referenced by PF_Processor(), and Processor().

Here is the call graph for this function:

◆ poly_unfactorize_expression()

int poly_unfactorize_expression ( EXPRESSIONS  expr)
extern

Unfactorization of expressions

Description

This method expands a factorized expression.

Notes

  • The result overwrites the input expression
  • Called from proces.c

Definition at line 1535 of file polywrap.cc.

References EndSort(), Generator(), FiLe::handle, LowerSortLevel(), and NewSort().

Referenced by PF_Processor(), and Processor().

Here is the call graph for this function:

◆ poly_free_poly_vars()

void poly_free_poly_vars ( PHEAD const char *  text)
extern

Definition at line 2014 of file polywrap.cc.

◆ optimize_print_code()

void optimize_print_code ( int  print_expr)
extern

Print optimized code

Description

This method prints the optimized code via "PrintExtraSymbol". Depending on the flag, the original expression is printed (for "Print") or not (for "#Optimize / #write "O").

Definition at line 4524 of file optimize.cc.

Referenced by Optimize().

◆ DoPreAdd()

int DoPreAdd ( UBYTE *  s)
extern

Definition at line 1067 of file dict.c.

◆ DoPreUseDictionary()

int DoPreUseDictionary ( UBYTE *  s)
extern

Definition at line 1022 of file dict.c.

◆ DoPreCloseDictionary()

int DoPreCloseDictionary ( UBYTE *  s)
extern

Definition at line 998 of file dict.c.

◆ DoPreOpenDictionary()

int DoPreOpenDictionary ( UBYTE *  s)
extern

Definition at line 959 of file dict.c.

◆ RemoveDictionary()

void RemoveDictionary ( DICTIONARY dict)
extern

Definition at line 902 of file dict.c.

◆ UnSetDictionary()

void UnSetDictionary ( void  )
extern

Definition at line 883 of file dict.c.

◆ SetDictionaryOptions()

int SetDictionaryOptions ( UBYTE *  options)
extern

Definition at line 790 of file dict.c.

◆ AddToDictionary()

int AddToDictionary ( DICTIONARY dict,
UBYTE *  left,
UBYTE *  right 
)
extern

Definition at line 491 of file dict.c.

◆ AddDictionary()

int AddDictionary ( UBYTE *  name)
extern

Definition at line 449 of file dict.c.

◆ FindDictionary()

int FindDictionary ( UBYTE *  name)
extern

Definition at line 434 of file dict.c.

◆ IsExponentSign()

UBYTE * IsExponentSign ( void  )
extern

Definition at line 238 of file dict.c.

◆ IsMultiplySign()

UBYTE * IsMultiplySign ( void  )
extern

Definition at line 218 of file dict.c.

◆ TransformRational()

void TransformRational ( UWORD *  a,
WORD  na 
)
extern

Definition at line 71 of file dict.c.

◆ WriteDictionary()

void WriteDictionary ( DICTIONARY dict)
extern

Definition at line 1289 of file sch.c.

◆ ShrinkDictionary()

void ShrinkDictionary ( DICTIONARY dict)
extern

Definition at line 945 of file dict.c.

◆ MultiplyToLine()

void MultiplyToLine ( void  )
extern

Definition at line 653 of file sch.c.

◆ FindSymbol()

UBYTE * FindSymbol ( WORD  num)
extern

Definition at line 258 of file dict.c.

◆ FindVector()

UBYTE * FindVector ( WORD  num)
extern

Definition at line 279 of file dict.c.

◆ FindIndex()

UBYTE * FindIndex ( WORD  num)
extern

Definition at line 301 of file dict.c.

◆ FindFunction()

UBYTE * FindFunction ( WORD  num)
extern

Definition at line 323 of file dict.c.

◆ FindFunWithArgs()

UBYTE * FindFunWithArgs ( WORD *  t)
extern

Definition at line 345 of file dict.c.

◆ FindExtraSymbol()

UBYTE * FindExtraSymbol ( WORD  num)
extern

Definition at line 377 of file dict.c.

◆ DictToBytes()

LONG DictToBytes ( DICTIONARY dict,
UBYTE *  buf 
)
extern

Definition at line 1119 of file dict.c.

◆ DictFromBytes()

DICTIONARY * DictFromBytes ( UBYTE *  buf)
extern

Definition at line 1152 of file dict.c.

◆ CoCreateSpectator()

int CoCreateSpectator ( UBYTE *  inp)
extern

Definition at line 89 of file spectator.c.

◆ CoToSpectator()

int CoToSpectator ( UBYTE *  inp)
extern

Definition at line 181 of file spectator.c.

◆ CoRemoveSpectator()

int CoRemoveSpectator ( UBYTE *  inp)
extern

Definition at line 233 of file spectator.c.

◆ CoEmptySpectator()

int CoEmptySpectator ( UBYTE *  inp)
extern

Definition at line 293 of file spectator.c.

◆ CoCopySpectator()

int CoCopySpectator ( UBYTE *  inp)
extern

Definition at line 459 of file spectator.c.

◆ PutInSpectator()

int PutInSpectator ( WORD *  term,
WORD  specnum 
)
extern

Definition at line 345 of file spectator.c.

◆ ClearSpectators()

void ClearSpectators ( WORD  par)
extern

Definition at line 675 of file spectator.c.

◆ GetFromSpectator()

WORD GetFromSpectator ( WORD *  term,
WORD  specnum 
)
extern

Definition at line 601 of file spectator.c.

◆ FlushSpectators()

void FlushSpectators ( void  )
extern

Definition at line 402 of file spectator.c.

◆ ReadFromScratch()

int ReadFromScratch ( FILEHANDLE fi,
POSITION pos,
UBYTE *  buffer,
POSITION length 
)
extern

Definition at line 272 of file store.c.

◆ AddToScratch()

int AddToScratch ( FILEHANDLE fi,
POSITION pos,
UBYTE *  buffer,
POSITION length,
int  withflush 
)
extern

Definition at line 299 of file store.c.

◆ DoPreAppendPath()

int DoPreAppendPath ( UBYTE *  s)
extern

Appends the given path (absolute or relative to the current file directory) to the FORM path.

Syntax: #appendpath <path>

Definition at line 7231 of file pre.c.

◆ DoPrePrependPath()

int DoPrePrependPath ( UBYTE *  s)
extern

Prepends the given path (absolute or relative to the current file directory) to the FORM path.

Syntax: #prependpath <path>

Definition at line 7248 of file pre.c.

◆ DoSwitch()

int DoSwitch ( PHEAD WORD *  term,
WORD *  lhs 
)
extern

Definition at line 1070 of file if.c.

◆ DoEndSwitch()

int DoEndSwitch ( PHEAD WORD *  term,
WORD *  lhs 
)
extern

Definition at line 1086 of file if.c.

◆ FindCase()

SWITCHTABLE * FindCase ( WORD  nswitch,
WORD  ncase 
)
extern

Definition at line 1097 of file if.c.

◆ SwitchSplitMergeRec()

void SwitchSplitMergeRec ( SWITCHTABLE array,
WORD  num,
SWITCHTABLE auxarray 
)
extern

Definition at line 1184 of file if.c.

◆ SwitchSplitMerge()

void SwitchSplitMerge ( SWITCHTABLE array,
WORD  num 
)
extern

Definition at line 1213 of file if.c.

◆ DoubleSwitchBuffers()

int DoubleSwitchBuffers ( void  )
extern

Definition at line 1135 of file if.c.

◆ DistrN()

int DistrN ( int  n,
int *  cpl,
int  ncpl,
int *  scratch 
)
extern

Definition at line 3984 of file tools.c.

◆ DoNamespace()

int DoNamespace ( UBYTE *  s)
extern

Definition at line 7312 of file pre.c.

◆ DoEndNamespace()

int DoEndNamespace ( UBYTE *  s)
extern

Definition at line 7360 of file pre.c.

◆ DoUse()

int DoUse ( UBYTE *  s)
extern

Definition at line 7575 of file pre.c.

◆ SkipName()

UBYTE * SkipName ( UBYTE *  s)
extern

Definition at line 7383 of file pre.c.

◆ ConstructName()

UBYTE * ConstructName ( UBYTE *  s,
UBYTE  type 
)
extern

Definition at line 7483 of file pre.c.

◆ DoSetUserFlag()

int DoSetUserFlag ( UBYTE *  s)
extern

Definition at line 7740 of file pre.c.

◆ DoClearUserFlag()

int DoClearUserFlag ( UBYTE *  s)
extern

Definition at line 7730 of file pre.c.

◆ CreateVertex()

VERTEX * CreateVertex ( MODEL m)

Definition at line 76 of file model.c.

◆ ReadParticle()

UBYTE * ReadParticle ( UBYTE *  s,
VERTEX v,
MODEL m,
int  par 
)

Definition at line 106 of file model.c.

◆ CoModel()

int CoModel ( UBYTE *  s)

Definition at line 149 of file model.c.

◆ CoParticle()

int CoParticle ( UBYTE *  s)

Definition at line 224 of file model.c.

◆ CoVertex()

int CoVertex ( UBYTE *  s)

Definition at line 306 of file model.c.

◆ CoEndModel()

int CoEndModel ( UBYTE *  s)

Definition at line 418 of file model.c.

◆ LoadModel()

int LoadModel ( MODEL m)

Definition at line 58 of file diawrap.cc.

◆ CoSetUserFlag()

int CoSetUserFlag ( UBYTE *  s)

Definition at line 7407 of file compcomm.c.

◆ CoClearUserFlag()

int CoClearUserFlag ( UBYTE *  s)

Definition at line 7435 of file compcomm.c.

◆ CoCreateAllLoops()

int CoCreateAllLoops ( UBYTE *  s)

Definition at line 7472 of file compcomm.c.

◆ CoCreateAllPaths()

int CoCreateAllPaths ( UBYTE *  s)

Definition at line 7592 of file compcomm.c.

◆ CoCreateAll()

int CoCreateAll ( UBYTE *  s)

Definition at line 7720 of file compcomm.c.

◆ AllLoops()

int AllLoops ( PHEAD WORD *  term,
WORD  level 
)

Definition at line 650 of file lus.c.

◆ StartLoops()

LONG StartLoops ( PHEAD WORD *  term,
WORD  level,
LONG  vert,
WORD  nvert,
WORD *  arglist,
WORD  nargs,
WORD *  loop,
WORD  nloop 
)

Definition at line 894 of file lus.c.

◆ GenLoops()

LONG GenLoops ( PHEAD WORD *  term,
WORD  level,
LONG  vert,
WORD  nvert,
WORD *  arglist,
WORD  nargs,
WORD *  loop,
WORD  nloop 
)

Definition at line 980 of file lus.c.

◆ LoopOutput()

void LoopOutput ( PHEAD WORD *  term,
WORD  level,
WORD *  loop,
WORD  nloop 
)

Definition at line 1059 of file lus.c.

◆ AllPaths()

int AllPaths ( PHEAD WORD *  term,
WORD  level 
)

Definition at line 1123 of file lus.c.

◆ GenPaths()

LONG GenPaths ( PHEAD WORD *  term,
WORD  level,
LONG  vert,
WORD  nvert,
WORD *  arglist,
WORD  nargs,
WORD *  path,
WORD  npath 
)

Definition at line 1413 of file lus.c.

◆ PathOutput()

void PathOutput ( PHEAD WORD *  term,
WORD  level,
WORD *  path,
WORD  npath 
)

Definition at line 1486 of file lus.c.