Sindbad~EG File Manager
/* 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) int foo(term, term, term *, char *);
#define POLYVALOP(foo) int foo(term, term, term *, char *);
#define AUTOMODEOP(foo) 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(breakfraction3)
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)^n = a^nb^n */
ALGOP(exponenttoroot) /* a^(b/n) = root(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^n/b^n = (a/b)^n */
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 \in Z */
ALGOP(reversepowertopower2) /* a^(bc) = (a^c)^b if a>0 or c \in 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 */
ALGOP(exponenttosqrtpower)
ALGOP(exponenttorootpower)
/* NEGATIVE EXPONENTS */
ALGOP(eliminateconstnegexp) /* a^(-n) = 1/a^n */
ALGOP(eliminateconstnegexpnum) /* a^(-n)/b = 1/(a^nb) */
ALGOP(eliminatenegexp1) /* a^(-1) = 1/a */
ALGOP(eliminatenegexp) /* a^(-n) = 1/a^n */
ALGOP(eliminatenegexpnum) /* a^(-n)/b = 1/(a^nb) */
POLYVALOP(eliminatenegexpdenom) /* a/b^(-n) = ab^n */
ALGOP(introducenegexp) /* a/b^n = ab^(-n) */
ALGOP(introducenegexp1) /* a/b = ab^(-1) */
ALGOP(negexpofquotient) /* (a/b)^(-n) = (b/a)^n */
ALGOP(powerofminusone) /* evaluate (-1)^(p/q) */
/* SQUARE ROOTS */
ALGOP(productofsqrts) /* sqrt x sqrt y = sqrt (xy) */
ALGOP(sqrtofproduct) /* sqrt(xy) = sqrt xsqrt y */
ALGOP(sqrtsimp) /* sqrt(x^2y) = x sqrt y */
ALGOP(powerofsqrt) /* (sqrt x)^(2n) = x^n if x>=0, also without n */
ALGOP(powerofsqrt2) /* (sqrt x)^(2n+1) = x^n sqrt x */
ALGOP(sqrtofsquare) /* sqrt(x^2)=x if x>=0 */
ALGOP(sqrtofpower) /* sqrt(x^(2n)) = x^n */
ALGOP(sqrtofpower2) /* sqrt(x^(2n+1)) = x^n sqrt x */
ALGOP(factorundersqrt)
ALGOP(sqrttoabs) /* sqrt(x^2)= |x| */
ALGOP(sqrtofquotient) /* sqrt(x/y) = sqrt x/sqrt y */
ALGOP(sqrtofquotient2) /* sqrt(x/y) = sqrt |x|/sqrt |y| */
ALGOP(quotientofsqrts) /* sqrt x/sqrt y = sqrt(x/y) */
ALGOP(sqrtexp) /* sqrt x = x ^ (1/2) */
ALGOP(sqrtexpdenom) /* 1/sqrt x = x ^(-1/2) */
ALGOP(cancelsqrt) /* x/sqrt x = sqrt x */
ALGOP(cancelsqrt2) /* sqrt x/x = 1/sqrt x */
ALGOP(cancelsqrt3) /* sqrt(xy)/sqrt y = sqrt x */
ALGOP(pushundersqrt) /* a sqrt b = sqrt(a^2 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^2-b = (a-sqrt b)(a+sqrt b) */
ALGOP(multiplyoutundersqrt)
ALGOP(multiplyoutunderroot)
ALGOP(factorpolyundersqrt)
/* N-th ROOTS */
ALGOP(productofroots)
ALGOP(rootofproduct)
ALGOP(rootsimp) /* root(n,x^ny) = x root(n, 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) /* root(n,x/y) = root(n,x)/root(n,y) */
ALGOP(quotientofroots) /* root(n,x)/root(n,y) = root(n,x/y) */
ALGOP(rootexp) /* root(n,x) = x^(1/n) */
ALGOP(rootpowerexp) /* root(n,x)^m = x^(m/n) */
ALGOP(powerrootexp) /* (root(n,x))^m = x^(m/n) */
ALGOP(powersqrtexp) /* (sqrt x)^m = x^(m/2) */
ALGOP(rootexpdenom) /* 1/root(n,x) = x^(-1/n) */
ALGOP(computeroot)
ALGOP(cancelroot) /* x/root(n,x) = (root(n,x))^(n-1) */
ALGOP(cancelroot2) /* root(n,x)/x = 1/(root(n,x))^(n-1) */
ALGOP(cancelroot3) /* cancel root : root(n,xy)/root(n,y) = root(n,x) */
ALGOP(factorpolyunderroot)
ALGOP(pushunderoddroot) /* a(root(n,b)) = root(n,a^n b) if n odd */
ALGOP(pushunderevenroot) /* a(root(n,b)) = root(n,a^n b) if a>=0 */
ALGOP(pushminusunderroot) /* -root(n,a) = root(n,-a) if n odd */
ALGOP(rootdenom) /* a/root(n,b) = root(n,a^n/b) (n odd or a>=0) */
ALGOP(rootnum) /* root(n,a)/b = root(n,a/b^n) (n odd or b>=0) */
ALGOP(sqrtdenom) /* sqrt a/b = sqrt(a/b^2) if b>=0 */
ALGOP(sqrtnum) /* a/sqrt b = sqrt(a^2/b) if a>=0 */
/* ROOTS OF ROOTS */
ALGOP(rootofroot)
ALGOP(sqrtofroot)
ALGOP(rootofsqrt)
ALGOP(sqrtofsqrt)
/* COMPLEX NUMBERS */
ALGOP(defnofi) /* i^2 = -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) /* sqrt(-1) = i */
ALGOP(sqrtofneg) /* sqrt(-a) = i sqrt a if a>=0 */
ALGOP(cleardenomofi)
ALGOP(multiplycomplexconjugates)
ALGOP(rectangulartopolar) /* x + iy = r exp(i theta */
ALGOP(polartorectangular) /* r exp(i theta = r (cos theta + i sin theta) */
ALGOP(absofpolar) /* |e^(i theta| = 1
|Re^(i theta|=R if R>=0
|Re^(i theta| = |R|$ */
ALGOP(minustopolar) /* -a = ae^(i pi) */
ALGOP(squareofabs) /* |u + iv|^2 = u^2 + v^2 */
ALGOP(complexabs) /* |u + iv| = sqrt(u^2 + v^2) */
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(factorquadraticwithdisplay)
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)
ALGOP(factorbydemoivre)
/* 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^n|=|u|^n 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)
ALGOP(solvelinearineq)
ALGOP(polylessexp)
ALGOP(logratbound)
/* 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^2 iff sqrt a > |u| */
ALGOP(sqrtineq14g) /* a > u^2 iff -sqrt a < u < sqrt a */
ALGOP(sqrtineq12g) /* v^2 > a iff |v| > sqrt a provided a>=0 */
ALGOP(sqrtineq15g) /* u^2 > a iff u < -sqrt a or u > sqrt a */
ALGOP(powerineq11g) /* v > sqrt u iff 0 <= u < v^2 */
ALGOP(squareineq1g) /* v>a sqrt u iff 0<=a^2u<v^2 provided 0<=a */
ALGOP(powerineq12g) /* sqrt v > a iff v > a^2 provided 0<=a */
ALGOP(sqrtineq13g) /* v > u iff sqrt v > sqrt u provided u>=0 */
ALGOP(sqrtineq21g) /* a >= u^2 iff sqrt a >= |u| */
ALGOP(sqrtineq24g) /* a >= u^2 iff -sqrt a <= u <= sqrt a */
ALGOP(sqrtineq22g) /* v^2 >= a iff |v| >= sqrt a provided 0<=a */
ALGOP(sqrtineq25g) /* u^2 >= a iff u <= -sqrt a or sqrt a <= u */
ALGOP(powerineq21g) /* v >= sqrt u iff 0 <= u <= v^2 */
ALGOP(squareineq2g) /* v >= a sqrt u iff 0<=a^2u<=v^2 provided 0<=a */
ALGOP(powerineq22g) /* sqrt v >= a iff v >= a^2 provided 0<=a */
ALGOP(sqrtineq23g) /* v >= u iff sqrt v >= sqrt u provided u>=0 */
ALGOP(oddrootineqg) /* u > v iff ^nsqrt u > ^nsqrt v (n odd) */
ALGOP(rootineq11g) /* a > u^(2n) iff ^(2n)sqrt a > |u| */
ALGOP(rootineq13g) /* a > u^(2n) iff -^(2n)sqrt a < u < ^(2n)sqrt a */
ALGOP(rootineq12g) /* u^(2n) > a iff |u| > ^(2n)sqrt a provided a>=0 */
ALGOP(rootineq15g) /* u^(2n) > a iff u < -^(2n)sqrt a or u > ^(2n)sqrt a */
ALGOP(powerineq14oddg) /* v > ^(2n)sqrt u iff 0 <= u < v^(2n) */
ALGOP(powerineq14eveng) /* v > ^(2n)sqrt u iff 0 <= u < v^(2n) */
ALGOP(powerineq13g) /* v > a(^nsqrt u) iff v^n > a^nu provided 0 <= a(^nsqrt u) */
ALGOP(powerineq15g) /* ^nsqrt v > a iff v > a^n provided a>=0 */
ALGOP(powerineq16g) /* u > v iff u^n > v^n (n odd, n>0) */
ALGOP(powerineq17g) /* u > v iff u^n > v^n (n > 0 and 0 <= u) */
ALGOP(oddrootineq2g) /* u >= v iff ^nsqrt u >= ^nsqrt v (n odd) */
ALGOP(rootineq21g) /* a >= u^(2n) iff ^(2n)sqrt a >= |u| */
ALGOP(rootineq23g) /* a >= u^(2n) iff -^(2n)sqrt a <= u <= ^(2n)sqrt a */
ALGOP(rootineq22g) /* u^(2n) > a iff |u| > ^(2n)sqrt a provided a>=0 */
ALGOP(rootineq25g) /* u^(2n) >= a iff u <= -^(2n)sqrt a or u >= ^(2n)sqrt a */
ALGOP(powerineq24oddg) /* v >= ^(2n)sqrt u iff 0 <= u <= v^(2n) */
ALGOP(powerineq24eveng) /* v >= ^(2n)sqrt u iff 0 <= u <= v^(2n) */
ALGOP(powerineq23g) /* v >= a(^nsqrt u) iff v^n >= a^nu provided 0 <= a(^nsqrt u) */
ALGOP(powerineq25g) /* ^nsqrt v >= a iff a^n <= v provided a >= 0 */
ALGOP(powerineq26g) /* u >= v iff u^n >= v^n (n odd, n >= 0) */
ALGOP(powerineq27g) /* u >= v iff u^n >= v^n (n > 0 and 0 <= u) */
ALGOP(posnum1g) /* u/v > 0 iff v > 0 provided u > 0 */
ALGOP(mulineqsqrt1g) /* change u/sqrt v > 0 to uv > 0 */
ALGOP(mulineqbysquare1g) /* u/v > 0 iff uv > 0 */
ALGOP(mulineqsqrt2g) /* change 0 > u/sqrt v to 0 > uv */
ALGOP(mulineqbysquare2g) /* 0 > u/v iff 0 > uv */
ALGOP(normalizelinear1g) /* 0 > ax \pm b iff 0 > a(x\pm b/a) */
ALGOP(reverselessthang) /* 0 > ax \pm b iff 0 > a(x\pm 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/sqrt v >= 0 iff uv >= 0 */
ALGOP(mulineqbysquare3g) /* u/v >= 0 iff uv > 0 or u = 0 */
ALGOP(mulineqsqrt4g) /* 0 >= u/sqrt v iff 0 >= uv */
ALGOP(mulineqbysquare4g) /* 0 >= u/v iff 0 > uv or u = 0 */
ALGOP(normalizelinear2g) /* 0 >= ax \pm b iff 0 >= a(x\pm 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