Sindbad~EG File Manager

Current Path : /usr/home/beeson/Otter-Lambda/yyy/
Upload File :
Current File : /usr/home/beeson/Otter-Lambda/yyy/ops.h

/* prototypes of MATHPERT operators defined in algebra.dll
   and some auxiliary functions*/
/*  optable is in exec.c */
/*  See trig.h and calc.h for prototypes of trig and calculus operators */

#define ALGOP(foo)  MEXPORT_ALGEBRA int foo(term, term, term *, char *);
#define POLYVALOP(foo)  MEXPORT_POLYVAL int foo(term, term, term *, char *);
#define AUTOMODEOP(foo)  MEXPORT_AUTOMODE int foo(term, term, term *, char *);

  /* NUMERICAL CALCULATION */
ALGOP(complexarithmetic)
ALGOP(weakcomplexarithmetic)
ALGOP(complexpowers)
ALGOP(devalop)
ALGOP(evaleulere)
ALGOP(evalpi)
ALGOP(cevalop)
ALGOP(computeroot)
ALGOP(computepower)
ALGOP(computefunction)
ALGOP(decimaltofraction)
ALGOP(writenumberassquare)
ALGOP(writenumberascube)
ALGOP(writenumberaspower)
ALGOP(writenumberaspowerof)
ALGOP(evalfunction)

  /* SIMPSUMS */
ALGOP(doubleminus)
ALGOP(pushminusin)
ALGOP(pullminusout)
ALGOP(arithmetic)
ALGOP(weakarithmetic)
ALGOP(regroupterms)
ALGOP(orderterms)
ALGOP(additivecommute)
POLYVALOP(dropzero)
ALGOP(additivecancel)
ALGOP(collectterms)
ALGOP(collectall)
ALGOP(pullminusout2)
ALGOP(minusintoproduct1)
ALGOP(minusintoproduct2)
ALGOP(minusintoproduct3)
   /* SIMPPROD */
ALGOP(multbyzero)
ALGOP(multbyone)
ALGOP(bringminusout)
ALGOP(bringminusout2)
ALGOP(bringminusout3)
ALGOP(regroupfactors)
ALGOP(collectnumbers)
ALGOP(orderfactors)       /* also on common denominator menu */
ALGOP(ordersimplefactors)  /* used only in auto mode */
ALGOP(collectpowers)
ALGOP(distriblaw)
ALGOP(multiplyout)
ALGOP(multiplyifcancels)
ALGOP(expandnumerator)
ALGOP(expanddenominator)
ALGOP(expand)
ALGOP(difofsquares)
ALGOP(makedifofcubes)
ALGOP(makesumofcubes)
ALGOP(difofpowers)
ALGOP(squareofsum)
ALGOP(squareofdif)
ALGOP(cubeofsum)
ALGOP(cubeofdif)
ALGOP(binomialtheorem)
ALGOP(plainbinomialtheorem)
ALGOP(multiplyoutandsimp)
ALGOP(multcommute)
ALGOP(multdef)

    /* FRACTIONS (fraction.c )  */
ALGOP(zeronum)
ALGOP(unitdenom)
ALGOP(recip)
ALGOP(multiplyfractions)         /* also on common denominator menu */
ALGOP(multiplyfractions2)
ALGOP(cancelminusinquotient)
ALGOP(minusoutfromnum)
ALGOP(minusoutfromdenom)
ALGOP(minusoutfromnum2)
ALGOP(minusoutfromnum22)
ALGOP(minusoutfromdenom2)
ALGOP(minusoutfromdenom22)
ALGOP(minusoutfromdenom3)
ALGOP(minusoutfromdenom33)
ALGOP(minusintonum)
ALGOP(minusintodenom)
ALGOP(cancelop)
ALGOP(addfractions)             /* also on common denom menu */
ALGOP(apart)
ALGOP(apartandcancel)
ALGOP(cancelbypolydiv)
ALGOP(cancelgcd)
ALGOP(polydivop)
POLYVALOP(pulloutrational)
ALGOP(pulloutdenom)
ALGOP(pulloutreal)
ALGOP(breakfraction1)
ALGOP(breakfraction)
ALGOP(breakfraction2)
ALGOP(multiplycoefs)
ALGOP(negatenumdenom)
                            /* COMPOUND FRACTIONS */
ALGOP(compoundfractions1)
ALGOP(invertandmultiply)
ALGOP(invertandmultiply2)
ALGOP(compoundfractions2)
ALGOP(compoundfractions3)
ALGOP(compoundfractions4)
ALGOP(commondenominfraction)

                            /* COMMON DENOMINATORS */
ALGOP(factordenominator)
ALGOP(findcommondenom)
ALGOP(findcommondenom2)
ALGOP(commondenom)
ALGOP(commondenom2)
ALGOP(commondenomandsimp)
ALGOP(commondenomandsimp2)
ALGOP(multnumanddenom)

                             /* EXPONENTS */
ALGOP(zeroexponent)
ALGOP(unitexponent)
ALGOP(zerobase)
ALGOP(unitbase)
ALGOP(intpowerofminusone)
ALGOP(powertopower)
ALGOP(minustopower)
ALGOP(quotienttopower)
ALGOP(producttopower)     /* (ab)� = a�b� */
ALGOP(exponenttoroot)    /* a^(b/n) = ��(a^b) */
ALGOP(exponenttosqrt)
ALGOP(reversecollectpowers)  /* a^(b+c) = a^b a^c  -- not used in auto mode */
ALGOP(reversecollectpowers2) /* a^(b-c) = a^b/a^c */
ALGOP(poweroutoffraction)    /* a�/b� = (a/b)� */
ALGOP(powerstonum)        /* a^n/a^m = a^(n-m)     */
ALGOP(powerstodenom)       /* ab^n/b^m = a/b^(m-n)  */
ALGOP(fractexpdenom)      /* a/b^(p/q) = (a^q/b^p)^(1/q) */
ALGOP(fractexpnum)        /* a^(p/q)/b = (a^p/b^q)^1/q)  */
ALGOP(reversepowertopower1) /*  a^(bc) = (a^b)^c  if a>0 or c�Z */
ALGOP(reversepowertopower2) /* a^(bc) = (a^c)^b  if a>0 or c�Z */
ALGOP(reversepowertopower3) /* a^(b?) = (a^b)^?  (available with products of 3 or more terms in the exponent) */
ALGOP(poweroutofrecip)      /* 1/a^n = (1/a)^b       */

                          /* NEGATIVE EXPONENTS */
ALGOP(eliminateconstnegexp)       /* a^(-n) = 1/a� */
ALGOP(eliminateconstnegexpnum)    /* a^(-n)/b = 1/(a�b)  */
ALGOP(eliminatenegexp1)       /* a^(-1) = 1/a */
ALGOP(eliminatenegexp)       /* a^(-n) = 1/a� */
ALGOP(eliminatenegexpnum)    /* a^(-n)/b = 1/(a�b)  */
POLYVALOP(eliminatenegexpdenom)  /* a/b^(-n) = ab�      */
ALGOP(introducenegexp)       /* a/b� = ab^(-n)      */
ALGOP(introducenegexp1)      /* a/b = ab^(-1)       */
ALGOP(negexpofquotient)      /* (a/b)^(-n) = (b/a)� */
ALGOP(powerofminusone)       /* evaluate (-1)^(p/q) */

                          /* SQUARE ROOTS   */
ALGOP(productofsqrts)        /* �x�y = �(xy)   */
ALGOP(sqrtofproduct)         /* �(xy) = �x�y   */
ALGOP(sqrtsimp)              /* �(x�y) = x�y   */
ALGOP(powerofsqrt)           /* (�x)�� = x� if x�0 , also without n */
ALGOP(powerofsqrt2)          /* (�x)^(2n+1) = x��x */
ALGOP(sqrtofsquare)          /* �(x�)=x if x�0 */
ALGOP(sqrtofpower)           /* �(x��) = x�    */
ALGOP(sqrtofpower2)          /* �(x^(2n+1)) = x��x */
ALGOP(factorundersqrt)
ALGOP(sqrttoabs)             /* �(x�)= |x|     */
ALGOP(sqrtofquotient)        /* �(x/y) = �x/�y */
ALGOP(sqrtofquotient2)       /* �(x/y) = ��x�/��y� */
ALGOP(quotientofsqrts)       /* �x/�y = �(x/y) */
ALGOP(sqrtexp)               /* �x = x ^ �     */
ALGOP(sqrtexpdenom)          /* 1/�x = x ^(-�) */
ALGOP(cancelsqrt)            /* x/�x = �x      */
ALGOP(cancelsqrt2)           /* �x/x = 1/�x    */
ALGOP(cancelsqrt3)           /* �(xy)/�y = �x  */
ALGOP(pushundersqrt)         /* a�b = �(a�b) if a�0 */

ALGOP(rationalizedenom)     /* not called in auto mode */
ALGOP(ratdenomandsimp)      /* also not called in auto mode */
ALGOP(rationalizenum)       /* not called in auto mode */
ALGOP(evaltorational)
ALGOP(computesqrt)
ALGOP(lauringson)            /* a�-b = (a-�b)(a+�b) */
ALGOP(multiplyoutundersqrt)
ALGOP(multiplyoutunderroot)
ALGOP(factorpolyundersqrt)

                          /*  N-th ROOTS */
ALGOP(productofroots)
ALGOP(rootofproduct)
ALGOP(rootsimp)           /* ��(x�y) = x ��y" */
ALGOP(powerofroot)
ALGOP(powerofroot2)
ALGOP(powerofroot3)
ALGOP(powerofroot4)
ALGOP(powerofroot5)
ALGOP(rootofpower)
ALGOP(rootofpower2)
ALGOP(rootofpower3)
ALGOP(rootofpower4)
ALGOP(rootofpower5)
ALGOP(factorunderroot)
ALGOP(roottosqrt)
ALGOP(sqrttoroot)
ALGOP(sqrttoroot2)
ALGOP(rootofminus)
ALGOP(rootofquotient)   /* ��(x/y) = ��x/��y  */
ALGOP(quotientofroots)  /* ��x/��y = ��(x/y)  */
ALGOP(rootexp)          /* ��x = x^(1/n)      */
ALGOP(rootpowerexp)     /* ��x^m = x^(m/n)    */
ALGOP(powerrootexp)     /* (��x)^m = x^(m/n)  */
ALGOP(powersqrtexp)     /* (�x)^m = x^(m/2)   */
ALGOP(rootexpdenom)     /* 1/��x = x^(-1/n)   */
ALGOP(computeroot)
ALGOP(cancelroot)       /* x/��x = (��x)^(n-1)  */
ALGOP(cancelroot2)      /* ��x/x = 1/(��x)^(n-1) */
ALGOP(cancelroot3)      /* cancel ��:  ��(xy)/��y = ��x  */
ALGOP(factorpolyunderroot)
ALGOP(pushunderoddroot)  /*  a(��b) = ��(a�b) if n odd */
ALGOP(pushunderevenroot) /*  a(��b) = ��(a�b) if a�0 */
ALGOP(pushminusunderroot) /* -��a = ��(-a) if n odd  */
ALGOP(rootdenom)          /* a/��b = ��(a�/b) (n odd or a�0) */
ALGOP(rootnum)            /* ��a/b = ��(a/b�) (n odd or b�0) */
ALGOP(sqrtdenom)          /*  �a/b = �(a/b�) if b�0    */
ALGOP(sqrtnum)            /* a/�b = �(a�/b) if a�0    */
                     /* ROOTS OF ROOTS */
ALGOP(rootofroot)
ALGOP(sqrtofroot)
ALGOP(rootofsqrt)
ALGOP(sqrtofsqrt)

                 /* COMPLEX NUMBERS */
ALGOP(defnofi)        /* i� = -1 */
ALGOP(powersofi0)     /* i^(4n) = 1 */
ALGOP(powersofi1)     /* i^(4n+1) = i */
ALGOP(powersofi2)     /* i^(4n+2) = -1 */
ALGOP(powersofi3)      /* i^(4n+3) = -i */
ALGOP(recipofi)       /* 1/i = -i */
ALGOP(recipofi2)      /* a/i = -ai */
ALGOP(recipofi3)      /* a/bi = -ai/b */
ALGOP(sqrtofminus1)   /* �(-1) = i */
ALGOP(sqrtofneg)      /* �(-a) = i�a if a�0 */
ALGOP(cleardenomofi)
ALGOP(multiplycomplexconjugates)
ALGOP(rectangulartopolar)   /* x + iy = r exp(i�) */
ALGOP(polartorectangular)   /* r exp(i�) = r (cos � + i sin �) */
ALGOP(absofpolar)     /* �e^(i�)� = 1
                      �Re^(i�)�=R if R�0
                      �Re^(i�)� = �R�$  */
ALGOP(minustopolar)   /* -a = ae^(i pi)   */
ALGOP(squareofabs)    /* �u + iv�� = u� + v� */
ALGOP(complexabs)     /* �u + iv� = �(u� + v�) */
ALGOP(abssqrt)
ALGOP(absroot)
ALGOP(complexrootminus)  /* root(n,-a) = e^(pi i/n) root(n,a) */
ALGOP(complexexptonum)  /* a/ce^(ti) = ae^(-ti)/c  */
ALGOP(demoivre)         /* de Moivre's theorem */
ALGOP(explicitparams)   /* substitute specific integers */
ALGOP(sqrtofi)         /* sqrt(bi) = (sqrt(b/2) + sqrt(b/2) i) if b >= 0 */
ALGOP(sqrtofminusi)   /* sqrt(-bi) = sqrt(b/2) - sqrt(b/2) i) if b >= 0 */
ALGOP(sqrtofaplusbi)   /* sqrt(a+bi) = (sqrt((c+a)/2) + sqrt((c-a)/2) i) if b >= 0, where c^2 = a^2+b^2 */
ALGOP(sqrtofaminusbi)   /* sqrt(a-bi) = (sqrt((c+a)/2) - sqrt((c-a)/2) i) if b >= 0, where c^2 = a^2+b^2 */
                   /* FACTORING */
ALGOP(factoroutnumber)
ALGOP(cleardenoms)
ALGOP(contentfactor)
ALGOP(factorsquareofsum)
ALGOP(factorsquareofdif)
ALGOP(factorcubeofsum)
ALGOP(factor4thofsum)
ALGOP(factor4thofdif)
ALGOP(factornthofsum)
ALGOP(factornthofdif)
ALGOP(factorcubeofdif)
ALGOP(differenceofsquares)
ALGOP(sumofsquares)
ALGOP(factorquadratic)
ALGOP(negativediscriminant)
ALGOP(quadraticformula)
ALGOP(writeassquare)
ALGOP(writeascube)
ALGOP(writeaspower)
ALGOP(expandpower)
ALGOP(expandsquare)
ALGOP(expandcube)
ALGOP(breakpower)
ALGOP(prodofpowers)
ALGOP(factorcoefficients)
ALGOP(factorinteger)
ALGOP(writeintegeraspower)
ALGOP(writeassum)
ALGOP(factorcomplexinteger)
ALGOP(complexfactorsofinteger)
ALGOP(makesubstitution)
ALGOP(trigdoublesub)
ALGOP(reversesub)
ALGOP(translatevar)
ALGOP(makesubstitution2)
ALGOP(autosubstitution)
ALGOP(maximalsub)
ALGOP(unwinddefinition)
                   /* ADVANCED_FACTORING */
ALGOP(invisiblesub)
ALGOP(differenceofcubes)
ALGOP(sumofcubes)
ALGOP(differenceofnthpowers)
ALGOP(differenceofnth2)
ALGOP(sumofnthpowers)
ALGOP(sumoffourthpowers)
ALGOP(factorquartic)
ALGOP(guessfactor)
ALGOP(factorbypolydiv)
ALGOP(factorbygrouping)
ALGOP(squarefreefactors)
ALGOP(factornumerically)
ALGOP(factorhelper)
                   /* SOLVE_EQUATIONS */
ALGOP(switchsides)
ALGOP(changesigns)
ALGOP(addeqn)
ALGOP(subeqn)
ALGOP(transfer)
ALGOP(transfer1)
ALGOP(transfer2)
ALGOP(transfereqn)
ALGOP(transferstrictineq)
ALGOP(transferineq)
ALGOP(muleqn)
ALGOP(diveqn)
ALGOP(squareeqn)
ALGOP(pseudosquare)
ALGOP(pseudosquare2)
ALGOP(pseudosquare3)
ALGOP(cancelterm)
ALGOP(cancelfactor)
ALGOP(trueeqn)
                     /* QUADRATIC EQUATIONS */
ALGOP(spliteqn)
ALGOP(spliteqn2)
ALGOP(completethesquare)
ALGOP(sqrteqn)
ALGOP(alltoleft)
ALGOP(solvelinear)

                     /* ADVANCED EQUATIONS */
ALGOP(crossmultiply)
ALGOP(powereqn)
ALGOP(rooteqn)
ALGOP(functioneqn)
ALGOP(selecteqn)
ALGOP(showalleqns)
ALGOP(collectmultiplesolns)
ALGOP(evalatpoint)
ALGOP(solvenumerically)
ALGOP(rejecteqn)
ALGOP(checkroot)
ALGOP(cleanupexponents)

                  /* LOG OR EXPONENTIAL EQUATIONS */
ALGOP(powereqn2)
ALGOP(powereqn3)
ALGOP(powereqn4)
ALGOP(powereqn5)
ALGOP(logbeqn)
ALGOP(lneqn)
ALGOP(logeqn)
                                /* CRAMERS_RULE */
ALGOP(cramersrule)
ALGOP(evaluatedeterminant)
                                /* selection_mode_only */
ALGOP(multabs)
ALGOP(divabs)
ALGOP(divabs2)
                                /* SEVERAL LINEAR EQUATIONS */
ALGOP(varsleft)
ALGOP(eqnscollectall)
ALGOP(lineupvars)
ALGOP(addtwoeqns)
ALGOP(subtwoeqns)
ALGOP(muleqns)
ALGOP(diveqns)
ALGOP(addmuleqns)
ALGOP(submuleqns)
ALGOP(substforvar)
ALGOP(eqnsaddterm)
ALGOP(eqnssubterm)
ALGOP(eqnscancelterm)
ALGOP(swapeqns)
ALGOP(ordereqns)
ALGOP(dropeqn)
ALGOP(regardvarasconst)
ALGOP(solveone)
ALGOP(solvelinearfor)
ALGOP(impossibleeqns)
ALGOP(addselectedeqn)
ALGOP(subselectedeqn)
ALGOP(mulselectedeqn)
ALGOP(divselectedeqn)
ALGOP(addmulselectedeqn)
ALGOP(submulselectedeqn)
ALGOP(swapselectedeqn)
ALGOP(solveselectedeqn)
ALGOP(addselectedrow)
ALGOP(subselectedrow)
ALGOP(mulselectedrow)
ALGOP(divselectedrow)
ALGOP(addmulselectedrow)
ALGOP(submulselectedrow)
ALGOP(swapselectedrow)
                                     /* MATRIX_METHODS */
ALGOP(matrixform)
ALGOP(multbyidentity)
ALGOP(swaprows)
ALGOP(addrows)
ALGOP(subrows)
ALGOP(mulrows)
ALGOP(divrows)
ALGOP(addmulrows)
ALGOP(submulrows)
ALGOP(dropzerocolumn)
ALGOP(dropzerorow)
ALGOP(dropduplicaterow)
ALGOP(convertmatrixeqn)
                                      /* ADVANCED MATRIX METHODS */
ALGOP(multiplymatrices)
ALGOP(dividebymatrix)
ALGOP(twobytwoinverse)
ALGOP(exactmatrixinverse)
ALGOP(decimalmatrixinverse)
ALGOP(multbymatrixidentity)


                     /* ABSOLUTE VALUE */
ALGOP(abspos)
ALGOP(absposandassume)
ALGOP(absneg)
ALGOP(absdef)
ALGOP(abseqn)
ALGOP(abseqn2)
ALGOP(abslessthan)
ALGOP(absgreaterthan)
ALGOP(absge)
ALGOP(geabs)
ALGOP(absle)
ALGOP(lessthanabs)
ALGOP(greaterthanabs)
ALGOP(leabs)
ALGOP(abslessthanneg)        /* �u� < -c is false (c�0) */
ALGOP(absleneg)       /* �u� � -c is false (c>0) */
ALGOP(absleneg2)       /* �u� � -c iff u=0 assuming c>=0 */
ALGOP(abseqnneg)       /* �u� = -c iff u=0 assuming c=0 */
POLYVALOP(multiplyabsval)  /*  �a��b�=�ab�      */
ALGOP(abslinear)       /*�cu� = c�u� if c�0 */
ALGOP(absofproduct)    /* �uv� = �u��v�     */
ALGOP(absoffraction)   /* �u/v� = �u� / �v� */
ALGOP(fractionofabs)   /* �u� / �v� = �u/v� */
ALGOP(abslinearquo)    /* �u/v� = �u� / v if v > 0 */
ALGOP(cancelabs3)

ALGOP(abspower)        /*  �u��=�u�� if n is real */
ALGOP(absevenpower)
ALGOP(abseqntoineq1)   /* �u� = u iff 0 � u   */
ALGOP(abseqntoineq2)   /* �u� = -u iff u � 0  */
ALGOP(absineqtrue)     /* �u� � 0 is true */
ALGOP(absineqtrue2)    /* -c � �u� is true (c�0) */
ALGOP(absineqtrue3)    /* -c < �u� is true (c>0) */
ALGOP(absineqtrue2g)    /* �u� � -c is true (c�0) */
ALGOP(absineqtrue3g)    /* �u� � -c is true (c>0) */

ALGOP(absineqfalse)    /* �u� < 0 is false */
ALGOP(absineqtrueg)    /* �u� � 0 is true */
ALGOP(absineqfalseg)   /* 0 > �u� is false */
ALGOP(absgreaterthanneg)        /* -c > �u� is false (c�0) */
ALGOP(absgeneg)       /* -c � �u� is false (c>0) */
ALGOP(absgeneg2)       /* -c � �u� iff u=0 assuming c=0 */
ALGOP(combineintervals)
ALGOP(explicitdomain)
ALGOP(introduceabs)    /* [p = a, p = -a] iff p = �a� if p � 0 */

                    /* STRICT INEQUALITIES  */
ALGOP(reverselessthan)
ALGOP(reversegreaterthan)
ALGOP(addeqn1)
ALGOP(subeqn1)
ALGOP(changesigns1)
ALGOP(changesignsandsense1)
ALGOP(changesignsandsense3)
ALGOP(changesigns1g)
ALGOP(mulineq)
ALGOP(mulineqsq)
ALGOP(divineq)
ALGOP(sqrtineq11)
ALGOP(sqrtineq12)
ALGOP(sqrtineq13)
ALGOP(sqrtineq14)
ALGOP(sqrtineq15)
ALGOP(sqrtinterval1)
ALGOP(sqrtinterval3)
ALGOP(sqrtinterval5)
ALGOP(rootineq11)
ALGOP(rootineq12)
ALGOP(rootineq13)
ALGOP(rootineq15)
ALGOP(rootineq23)
ALGOP(rootineq25)
ALGOP(rootinterval1)
ALGOP(rootinterval2)
ALGOP(oddrootineq)
ALGOP(oddrootineq2)
ALGOP(powerineq11)
ALGOP(squaretrue1)
ALGOP(squarefalse1)
ALGOP(squaretrue2)
ALGOP(squarefalse2)
ALGOP(powerineq12)
ALGOP(powerineq13)
ALGOP(squareineq1)
ALGOP(squareineq3)
ALGOP(powerineq14even)
ALGOP(powerineq14odd)
ALGOP(powerineq15)
ALGOP(powerineq16)
ALGOP(powerineq17)
ALGOP(powerineq27)
ALGOP(normalizelinear1)
ALGOP(mulineqbysquare1)
ALGOP(mulineqbysquare2)
ALGOP(mulineqsqrt1)
ALGOP(mulineqsqrt2)
ALGOP(mulineqsqrt3)
ALGOP(mulineqsqrt4)
ALGOP(intervalsneg1)
ALGOP(intervalspos1)
ALGOP(droppositive1)
ALGOP(posnum1)
ALGOP(posnum2)
ALGOP(numericalineq)
ALGOP(evenpowerineq1)
ALGOP(evenpowerineq3)
ALGOP(lessthantole)
ALGOP(greaterthantoge)
ALGOP(sqsqrtineq1)
ALGOP(sqsqrtineq1rev)
ALGOP(powerrootineq1)
ALGOP(powerrootineq1rev)
                    /* INEQUALITIES */
ALGOP(reversele)
ALGOP(reversege)
ALGOP(addeqn2)
ALGOP(subeqn2)
ALGOP(changesigns2)
ALGOP(changesigns2g)
ALGOP(changesignsandsense2)
ALGOP(changesignsandsense4)
ALGOP(sqrtineq21)
ALGOP(sqrtineq22)
ALGOP(sqrtineq23)
ALGOP(sqrtineq24)
ALGOP(sqrtineq25)
ALGOP(sqrtinterval2)
ALGOP(sqrtinterval4)
ALGOP(sqrtinterval6)
ALGOP(rootineq21)
ALGOP(rootineq22)
ALGOP(powerineq21)
ALGOP(powerineq22)
ALGOP(powerineq23)
ALGOP(squareineq2)
ALGOP(squareineq4)
ALGOP(powerineq24even)
ALGOP(powerineq24odd)
ALGOP(powerineq25)
ALGOP(powerineq26)
ALGOP(mulineqbysquare3)
ALGOP(mulineqbysquare4)
ALGOP(normalizelinear2)
ALGOP(intervalsneg2)
ALGOP(intervalspos2)
ALGOP(droppositive2)
ALGOP(evenpowerineq2)
ALGOP(evenpowerineq4)
ALGOP(sqsqrtineq2)
ALGOP(sqsqrtineq2rev)
ALGOP(powerrootineq2)
ALGOP(powerrootineq2rev)
                            /* TRIG AND LOG INEQUALITIES */
ALGOP(lnineq1)
ALGOP(lnineq2)
ALGOP(logineq1)
ALGOP(logineq2)
ALGOP(lnrightineq1)
ALGOP(lnrightineq2)
ALGOP(lnleftineq1)
ALGOP(lnleftineq2)
ALGOP(logrightineq1)
ALGOP(logrightineq2)
ALGOP(logleftineq1)
ALGOP(logleftineq2)
ALGOP(expineq1)
ALGOP(expineq2)
ALGOP(abssinineq)
ALGOP(abscosineq)
ALGOP(sinineq)
ALGOP(coslowerbound)
ALGOP(absarctanineq)
ALGOP(arctanineq)
ALGOP(tanineq)
                             /* USER-DEFINED FUNCTIONS */
AUTOMODEOP(applyfunction0)
AUTOMODEOP(applyfunction1)
AUTOMODEOP(applyfunction2)
AUTOMODEOP(applyfunction3)
AUTOMODEOP(applyfunction4)
AUTOMODEOP(applyfunction5)
AUTOMODEOP(applyfunction6)
AUTOMODEOP(applyfunction7)
AUTOMODEOP(applyfunction8)
AUTOMODEOP(applyfunction9)
AUTOMODEOP(applyfunction10)
AUTOMODEOP(applyfunction11)
AUTOMODEOP(applyfunction12)
AUTOMODEOP(applyfunction13)
AUTOMODEOP(applyfunction14)
AUTOMODEOP(applyfunction15)

ALGOP(cancelsqrtgcd)   /* automode_only */
ALGOP(cancelrootgcd)
ALGOP(cancelabsgcd)
ALGOP(knownroot)

ALGOP(contentgcd)
ALGOP(fractionalsubstitution)
ALGOP(gcdsubstitution)
ALGOP(backtosqrts)
ALGOP(backtoroots)
ALGOP(eliminatesqrts)
ALGOP(distribandcancel)
ALGOP(factorandcancel)
ALGOP(factoroneside)

/* cubic_equations operators */
ALGOP(eliminatequadraticterm)
ALGOP(computediscriminant)
ALGOP(realcardan)
ALGOP(cardan)
ALGOP(cardan2)
ALGOP(showcallingcubic)
ALGOP(viete)

/* recip_ineq operators */
ALGOP(recipineq11)  /* 1/x < a iff x<0 or 1/a < x provided a > 0 */
ALGOP(recipineq21)  /* a < 1/x iff 0 < x < 1/a provided a > 0 */
ALGOP(recipineq31)  /* 1/x < -a iff -1/a < x < 0 provided a > 0 */
ALGOP(recipineq41)  /* -a < 1/x iff x < -1/a or 0 < x provided a > 0 */
ALGOP(recipinterval11)  /* a < x < b iff 1/b < x < 1/a provided a,b > 0 */
ALGOP(recipinterval21)  /* a < x � b iff 1/b � x < 1/a provided a,b > 0 */
ALGOP(recipinterval31)  /* -a < x < -b iff -1/b < x < -1/a provided a,b > 0 */
ALGOP(recipinterval41)  /* -a < x � -b iff -1/b � x < -1/a provided a,b > 0 */
ALGOP(recipinterval51)   /* -a < x < b iff x < - 1/a or 1/b < x (a,b > 0) */
ALGOP(recipinterval61)   /* -a < x � b iff x < -1/a or 1/b � x (a,b > 0) */
ALGOP(recipineq12)  /* 1/x � a iff x<0 or 1/a � x provided a > 0 */
ALGOP(recipineq22)  /* a � 1/x iff 0 < x � 1/a provided a > 0 */
ALGOP(recipineq32)  /* 1/x � -a iff -1/a � x < 0 provided a > 0 */
ALGOP(recipineq42)  /* -a � 1/x iff x � -1/a or 0 < x provided a > 0 */
ALGOP(recipinterval12)  /* a � x < b iff 1/b < x � 1/a provided a,b > 0 */
ALGOP(recipinterval22)  /* a � x � b iff 1/b � x < 1/a provided a,b > 0 */
ALGOP(recipinterval32)  /* -a � x < -b iff -1/b < x � -1/a provided a,b > 0 */
ALGOP(recipinterval42)  /* -a � x � -b iff -1/b � x � -1/a provided a,b > 0 */
ALGOP(recipinterval52)   /* -a � x < b iff x � - 1/a or 1/b < x (a,b > 0) */
ALGOP(recipinterval62)   /* -a � x � b iff x � -1/a or 1/b � x (a,b > 0) */

/* Variants of inequality operations that work on > and GE */

ALGOP(sqrtineq11g)          /* a > u� iff �a > �u�              */
ALGOP(sqrtineq14g)          /* a > u� iff -�a < u < �a          */
ALGOP(sqrtineq12g)           /* v� > a iff �v� > �a provided a�0 */
ALGOP(sqrtineq15g)           /* u� > a iff u < -�a  or u > �a    */
ALGOP(powerineq11g)          /* v > �u iff 0 � u < v�            */
ALGOP(squareineq1g)          /* v>a�u iff 0�a�u<v� provided 0�a  */
ALGOP(powerineq12g)          /* �v > a iff v > a� provided 0�a   */
ALGOP(sqrtineq13g)           /* v > u  iff �v > �u provided u�0  */
ALGOP(sqrtineq21g)          /* a � u� iff �a � �u�            */
ALGOP(sqrtineq24g)          /* a � u� iff -�a � u � �a        */
ALGOP(sqrtineq22g)          /* v� � a iff �v� � �a provided 0�a */
ALGOP(sqrtineq25g)          /* u� � a iff u � -�a or �a � u   */
ALGOP(powerineq21g)         /* v � �u iff 0 � u � v�          */
ALGOP(squareineq2g)         /* v � a�u iff 0�a�u�v� provided 0�a */
ALGOP(powerineq22g)         /* �v � a iff v � a� provided 0�a */
ALGOP(sqrtineq23g)          /* v � u iff �v � �u provided u�0 */
ALGOP(oddrootineqg)  /* u > v iff ��u > ��v (n odd)          */
ALGOP(rootineq11g)   /* a > u�� iff ���a > �u�               */
ALGOP(rootineq13g)   /* a > u�� iff -���a < u < ���a         */
ALGOP(rootineq12g)   /* u�� > a iff �u� > ���a  provided a�0 */
ALGOP(rootineq15g)   /* u�� > a iff u < -���a  or u > ���a   */
ALGOP(powerineq14oddg)  /* v > ���u  iff 0 � u < v��            */
ALGOP(powerineq14eveng)  /* v > ���u  iff 0 � u < v��            */
ALGOP(powerineq13g)  /* v > a(��u) iff v� > a�u provided 0 � a(��u) */
ALGOP(powerineq15g)  /* ��v > a iff v > a� provided a�0      */
ALGOP(powerineq16g)  /* u > v iff u� > v� (n odd, n>0)       */
ALGOP(powerineq17g)  /* u > v iff u� > v� (n > 0 and 0 � u)  */
ALGOP(oddrootineq2g) /* u � v iff ��u � ��v (n odd)          */
ALGOP(rootineq21g)   /* a � u�� iff ���a � �u�                */
ALGOP(rootineq23g)   /* a � u�� iff -���a � u � ���a          */
ALGOP(rootineq22g)   /* u�� > a iff �u� > ���a  provided a�0  */
ALGOP(rootineq25g)   /* u�� � a iff u � -���a  or u � ���a    */
ALGOP(powerineq24oddg)  /* v � ���u iff 0 � u � v��              */
ALGOP(powerineq24eveng)  /* v � ���u iff 0 � u � v��              */
ALGOP(powerineq23g)  /* v � a(��u) iff v� � a�u provided 0 � a(��u) */
ALGOP(powerineq25g)  /* ��v � a iff a� � v provided a � 0     */
ALGOP(powerineq26g)  /* u � v iff u� � v� (n odd, n � 0)      */
ALGOP(powerineq27g)  /* u � v iff u� � v� (n > 0 and 0 � u)   */
ALGOP(posnum1g)            /* u/v > 0 iff v > 0 provided u > 0 */
ALGOP(mulineqsqrt1g)       /* change u/�v > 0 to uv > 0        */
ALGOP(mulineqbysquare1g)   /* u/v > 0 iff uv > 0               */
ALGOP(mulineqsqrt2g)       /* change 0 > u/�v to 0 > uv        */
ALGOP(mulineqbysquare2g)   /* 0 > u/v iff 0 > uv               */
ALGOP(normalizelinear1g)   /* 0 > ax � b iff 0 > a(x�b/a)      */
ALGOP(reverselessthang)    /* 0 > ax � b iff 0 > a(x�b/a)      */
ALGOP(intervalsneg1g)      /* 0 > (x-a)(x-b) iff a<x<b  (where a<b) */
ALGOP(intervalspos1g)      /* (x-a)(x-b) > 0 iff x<a or x>b (where a<b) */
ALGOP(posnum2g)            /* u/v � 0 iff v � 0 provided u � 0  */
ALGOP(mulineqsqrt3g)       /* u/�v � 0 iff uv � 0               */
ALGOP(mulineqbysquare3g)   /* u/v � 0 iff uv > 0 or u = 0       */
ALGOP(mulineqsqrt4g)       /* 0 � u/�v iff 0 � uv               */
ALGOP(mulineqbysquare4g)   /* 0 � u/v iff 0 > uv or u = 0       */
ALGOP(normalizelinear2g)   /* 0 � ax � b iff 0 � a(x�b/a)       */
ALGOP(intervalsneg2g)      /* 0 � (x-a)(x-b) iff a�x�b (where a�b) */
ALGOP(intervalspos2g)      /* (x-a)(x-b)�0 iff x�a or b�x (where a�b) */
ALGOP(squareineq3g)        /* square both sides when one side is � 0 */
ALGOP(squareineq4g)        /* square both sides when one side is � 0 */
ALGOP(evenpowerineq1g)     /* x^2n > a is true if a < 0         */
ALGOP(evenpowerineq2g)     /* x^2n � a is true if a � 0         */
ALGOP(evenpowerineq3g)     /* x^2n < a is false if a � 0        */
ALGOP(evenpowerineq4g)     /* x^2n � a is false if a < 0        */
ALGOP(recipineq11g)        /* a > 1/x  iff x<0 or x > 1/a provided a > 0 */
ALGOP(recipineq21g)        /* 1/x > a iff 0 < x < 1/a provided a > 0 */
ALGOP(recipineq31g)        /* -a > 1/x iff -1/a < x < 0 provided a > 0 */
ALGOP(recipineq41g)        /* 1/x > -a  iff x < -1/a or x > 0 provided a > 0 */
ALGOP(recipineq12g)        /* a � 1/x  iff x<0 or x � 1/a provided a > 0 */
ALGOP(recipineq22g)        /* 1/x � a iff 0 < x � 1/a provided a > 0 */
ALGOP(recipineq32g)        /* -a � 1/x iff -1/a � x < 0 provided a > 0 */
ALGOP(recipineq42g)        /* 1/x � -a  iff x � -1/a or x > 0 provided a > 0 */
ALGOP(squaretrue1g)        /* x^2 > a is true if a < 0      */
ALGOP(squarefalse1g)       /* a > x^2 is false if a <= 0    */
ALGOP(squaretrue2g)        /* x^2 � a is true if a � 0      */
ALGOP(squarefalse2g)       /* a � x^2 is false if a < 0    */
ALGOP(lnineq1g)            /* u > v iff ln u > ln v provided v>0   */
ALGOP(logineq1g)           /* u > v iff log u > log v provided v>0 */
ALGOP(lnrightineq1g)       /* ln u > v iff u > e^v                 */
ALGOP(lnleftineq1g)        /* u > ln v iff e^u > v                 */
ALGOP(logrightineq1g)      /* log u > v iff  u > 10^v               */
ALGOP(logleftineq1g)       /* u > log v iff 10^u > v               */
ALGOP(expineq1g)           /* u > v iff a^u > a^v  if a > 0, takes arg in menu mode */
ALGOP(lnineq2g)            /* u � v iff ln u � ln v provided u>0   */
ALGOP(logineq2g)           /* u � v => log u � log v provided u>0  */
ALGOP(lnrightineq2g)       /* ln u � v iff u � e^v                 */
ALGOP(lnleftineq2g)        /* u � ln v iff e^u � v                 */
ALGOP(logrightineq2g)      /* log u � v iff u � 10^v               */
ALGOP(logleftineq1g)       /* u � log v iff 10^u � v               */
ALGOP(logleftineq2g)       /* u � v iff a^u � a^v  if a > 0, takes arg in menu mode */
ALGOP(expineq2g)           /* u � v iff a^u � a^v  if a > 0, takes arg in menu mode */
ALGOP(intervaltoabs1)      /* -a <= u <= a iff |u| <= a */
ALGOP(intervaltoabs2)      /* -a < u <= a iff |u| < a */
ALGOP(absevenpowerrev)     /* u^(2n) = |u|^(2n) if u is real     */
ALGOP(abspowerrev)         /*|u|^n =  |u^n| if n is real     */
ALGOP(preparetocancel)


/* AUXILIARIES ___________________________________________________________*/


#define JUMPER(op)  (  ((void *)op == (void *) choosesubstitution) \
                    || ((void *)op == (void *) equatetoproblem)    \
                    || ((void *)op == (void *) selectmin)          \
                    || ((void *)op == (void *) selectmax)          \
                    || ((void *)op == (void *) tabulate)           \
                    || ((void *)op == (void *) tabulateexact)      \
                    || ((void *)op == (void *) integraltest)       \
                    || ((void *)op == (void *) roottest)           \
                    || ((void *)op == (void *) ratiotest)          \
                    || ((void *)op == (void *) divergencetest)     \
                    || ((void *)op == (void *) comparisontest1)    \
                    || ((void *)op == (void *) comparisontest2)    \
                    || ((void *)op == (void *) limitcomparisontest)\
                    || ((void *)op == (void *) condensationtest)   \
                    || ((void *)op == (void *) finishintegraltest) \
                    || ((void *)op == (void *) finishroottest)     \
                    || ((void *)op == (void *) finishratiotest)    \
                    || ((void *)op == (void *) finishdivergencetest)     \
                    || ((void *)op == (void *) finishcomparisontest1)     \
                    || ((void *)op == (void *) finishcomparisontest2)     \
                    || ((void *)op == (void *) finishlimitcomparisontest)\
                    || ((void *)op == (void *) finishcondensationtest))  \

   /*  and here list every operator that can replace a line by a totally
       different line */

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists