Sindbad~EG File Manager
/* prototypes of trig operators. Some are defined in algebra.dll
and some in trigcalc.dll. The former are prototyped with ALGOP,
the latter with OP.
*/
#define ALGOP(foo) MEXPORT_ALGEBRA int foo(term, term, term *, char *);
#define AUTOMODEOP(foo) MEXPORT_AUTOMODE int foo(term, term, term *, char *);
#define OP(foo) MEXPORT_TRIGCALC int foo(term, term, term *, char *);
/* BINOMIAL THEOREM */
OP(binomialcoeftofactorials)
OP(defnoffactorial)
OP(factorialrecursion)
OP(cancelfactorial1)
OP(cancelfactorial2)
OP(cancelfactorial3)
OP(cancelfactorial1b)
OP(cancelfactorial2b)
OP(cancelfactorial3b)
/* SIGMA NOTATION */
OP(sigmaconstant) /* � 1=number of terms */
OP(minusoutofsigma) /* �(-u) = -� u */
OP(constantoutofsigma) /* � cu = c� u (c const) */
OP(constantintosigma) /*c� u (c const)= � cu */
OP(sigmasum) /* � (u�v) = �u + �v */
ALGOP(sigmatosum)
OP(renameindexvariable)
OP(sumofi)
OP(sumofisquared)
OP(sumoficubed)
OP(sumofitothefourth)
OP(sumofallpowers)
OP(productofsigmas)
OP(evaluatesigmatorational)
OP(evaluatesigmatodecimal)
OP(evalpuresigmatorational)
OP(evalpuresigmatodecimal)
OP(evaluatefactorial)
OP(evaluatebinomialcoef)
OP(telescopingsum)
OP(showfirstterms)
OP(splitofflastterm)
OP(shiftindex)
OP(difsigma)
OP(intsigma)
OP(reversedifsigma)
OP(reverseintsigma)
OP(sumtodifofsums)
OP(sumtodifofsums0)
/*PROVE BY INDUCTION*/
OP(selectinductionvariable)
OP(basiscase)
OP(useinductionhyp)
OP(inductionstep)
OP(thereforeasdesired)
/*LOGARITHMS */
OP(loginexponent)
OP(loginexponent2)
OP(logofpowerof10)
OP(logofpower)
OP(logofproduct)
OP(logofreciprocal)
OP(logofquotient)
OP(logofone)
OP(logoften)
OP(logtoln)
OP(collectlogs)
OP(collectlogs2)
OP(attractlogs)
OP(logsqrt)
OP(logroot)
OP(logofpowerreverse)
OP(computelog)
OP(factornumberinlog)
OP(factoroutbase)
OP(factoroutbase10)
OP(factorlogbase)
OP(logrecip)
/*NATURAL LOGARITHMS */
OP(lninexponent)
OP(lninexponent2)
OP(lnofpowerofe)
OP(lnofpower)
OP(lnofproduct)
OP(lnofreciprocal)
OP(lnofquotient)
OP(lnofone)
OP(lnofe)
OP(collectlns)
OP(collectlns2)
OP(attractlns)
OP(lnsqrt)
OP(lnroot)
OP(lnofpowerreverse)
OP(computeln)
OP(introducelninexponent)
OP(introduceloginexponent)
OP(introducelogbinexponent)
OP(lnrecip)
/* LOGS TO ANY BASE */
OP(logbinexponent)
OP(logbinexponent2)
OP(logbofb)
OP(logbofpowerofb) /* logb b� = n */
OP(logpowerofbofb)
OP(logbofpower) /* logb a� = n logb a */
OP(logbofproduct)
OP(logbofreciprocal)
OP(logbofquotient)
OP(logbofone)
ALGOP(factorinteger)
OP(collectlogb) /* log a + log b = log ab */
OP(collectlogb2) /* log a - log b = log a/b */
OP(attractlogb2) /* n log(b,x) = log(b,a�) */
OP(logbtolog) /* log(10,x) = log x*/
OP(logbtoln) /*log(e,x) = ln x */
OP(logbtolns) /*log(b,x) = ln x / ln b */
OP(logbtologs) /*log(b,x) = log x / log b */
OP(changebase) /* log(b,x) = log(a,x) / log(a,b) */
OP(lntolog) /* ln x = log x / log e */
OP(logbrecip)
/* TRIG */
ALGOP(sinsquare1) /* sin� a + cos� a = 1 */
ALGOP(sinsquare2) /* 1 - sin� a = cos� a */
ALGOP(sinsquare3) /* 1 - cos� a = sin� a */
ALGOP(makesinpower) /* (1-cos t)^n(1+cos t)^n = sin^2n t */
ALGOP(makecospower) /* (1-sin t)^n(1+sin t)^n = cos^2n t */
ALGOP(tansquare1) /* tan� a + 1 = sec� a */
ALGOP(tansquare2) /* sec� a - 1 = tan� a */
ALGOP(secsqminustansq) /* sec� a - tan� a = 1 */
ALGOP(doublecos5) /* cos 2� + 1 = 2cos� � */
ALGOP(doublecos6) /* cos 2� - 1 = - 2 sin� � */
ALGOP(doublecos4) /* cos 2� = cos� � - sin� � (must be tried last in auto mode)*/
/* All the doublecos rules should be associated to '+' */
/* doublecos4 works on a sum which contains cos 2�;
doublecos1 applies the same rule, but direcly to cos 2� */
/* The following four operations are not implemented */
OP(factorsinplussin) /* sin x + sin y = 2 sin �(x+y) cos �(x-y) */
OP(factorsinminussin) /* sin x - sin y = 2 cos �(x+y) sin �(x-y) */
OP(factorcospluscos) /* cos x + cos y = 2 cos �(x+y) cos �(x-y) */
OP(factorcosminuscos) /* cos x - cos y = -2 sin �(x+y) sin �(x-y) */
ALGOP(secrule) /* sec x = 1 / cos x */
ALGOP(cscrule) /* csc x = 1 / sin x */
ALGOP(cottotan) /* cot x = 1/tan x */
ALGOP(tanrule) /* tan x = sin x / cos x */
ALGOP(tanrule2) /* sin x / cos x = tan x (not used in auto mode) */
ALGOP(secrule2) /* 1/cos x = sec x */
ALGOP(cscrule2) /* 1/sin x = csc x */
ALGOP(tanrecip) /* 1/ tan x = cot x */
ALGOP(tanrecip2) /* 1/ tan x = cos x/ sin x */
ALGOP(cotrecip) /* 1/cot x = tan x */
ALGOP(cotrecip2) /* 1/cot x = sin x / cos x */
ALGOP(secrecip) /* 1/sec x = cos x */
ALGOP(cscrecip) /* 1/csc x = sin x */
ALGOP(cotrule2) /* cos x / sin x = cot x */
ALGOP(costosec) /* cos x = 1/sec x */
ALGOP(sintocsc) /* sin x = 1/csc x */
ALGOP(tantodenom) /* tan x = 1/cot x */
ALGOP(cottosincos) /* cot x = cos x / sin x */
ALGOP(doublesin) /* sin 2� = 2 sin � cos � */
ALGOP(reversedoublesin) /* sin x cos x = �sin 2x */
ALGOP(reversedoublesin2) /* 2 sin x cos x = sin 2x */
ALGOP(reversedoublecos1) /* sin� x - cos� s = cos 2x */
ALGOP(reversedoublecos2) /* 1 - 2 sin� � = cos(2�) */
ALGOP(reversedoublecos3) /* 2 cos� � - 1 = cos(2�) */
ALGOP(reversesinsq) /* 1-cos � = 2 sin�(�/2) */
ALGOP(doublecos1) /* cos 2� = cos� � - sin� �$ */
ALGOP(doublecos2) /*cos 2� = 1 - 2 sin� � */
ALGOP(doublecos3) /* cos 2� = 2 cos� � - 1*/
ALGOP(sinsum) /* sin(u+v) = sin u cos v + cos u sin v */
ALGOP(sindif) /* sin(u-v) = sin u cos v - cos u sin v */
ALGOP(cossum) /* cos(u+v) = cos u cos v - sin u sin v */
ALGOP(cosdif) /* cos(u-v)= cos u cos v + sin u sin v */
ALGOP(tansum) /* tan(u+v) = (tan u + tan v)/ (1-tan u tan v) */
ALGOP(tandif) /* tan(u+v) = (tan u - tan v)/ (1+tan u tan v) */
ALGOP(doubletan) /* tan(2u) = (2 tan u)/(1-tan�u) */
ALGOP(cotsum)
ALGOP(cotdif)
ALGOP(doublecot)
ALGOP(coseven) /* cos(-u) = cos u */
ALGOP(sinodd) /* sin(-u) = -sin u */
ALGOP(tanodd) /* tan(-u) = -tan u */
ALGOP(cotodd) /* cot(-u) = -cot u */
ALGOP(seceven) /* sec(-u) = sec u */
ALGOP(cscodd) /* csc(-u) = - csc u */
ALGOP(sinsqeven)
ALGOP(cossqeven)
ALGOP(tansqeven)
ALGOP(cotsqeven)
ALGOP(secsqeven)
ALGOP(cscsqeven)
ALGOP(sinperiodic) /* sin(u+2�) = sin u */
ALGOP(cosperiodic) /* cos(u+2�) = cos u */
ALGOP(tanperiodic) /* tan(u+�) = tan u */
ALGOP(cscperiodic) /* csc(u+2�) = csc u */
ALGOP(secperiodic) /* sec(u+2�) = sec u */
ALGOP(cotperiodic) /* cot(u+�) = cot u */
ALGOP(sinsqperiodic) /* sin�(u+�) = sin� u */
ALGOP(cossqperiodic) /* cos�(u+�) = cos� u */
ALGOP(secsqperiodic) /* sec�(u+�) = sec� u */
ALGOP(cscsqperiodic) /* csc�(u+�) = csc� u */
ALGOP(sinhalfperiod1) /* sin u = -sin(u-�) */
ALGOP(sinhalfperiod2) /* sin u = sin(�-u) */
ALGOP(coshalfperiod1) /* cos u = -cos(u-�) */
ALGOP(coshalfperiod2) /* cos u = -cos(�-u) */
ALGOP(decrementtrigarg) /*n� = (n-1)� + � */
ALGOP(querytrigarg) /* n� = ?�+(n-?)� */
ALGOP(triplesin) /* sin 3� = 3 sin � - 4 sin^3 � */
ALGOP(triplecos) /* cos 3� = -3 cos � + 4 cos^3 � */
ALGOP(expandsin) /* expand sin n� in sin �, cos � */
ALGOP(expandcos) /* expand cos n� in sin �, cos � */
ALGOP(costosin) /* cos(�/2-�) = sin � */
ALGOP(sintocos) /* sin(�/2-�) = cos � */
ALGOP(tantocot) /* tan(�/2-�) = cot � */
ALGOP(seccomplement) /* sec(�/2-�) = csc � */
ALGOP(csccomplement) /* csc(�/2-�) = sec � */
ALGOP(cotcomplement) /* cot(�/2-�) = tan � */
ALGOP(sintocos2)
ALGOP(costosin2)
ALGOP(tantocot2)
ALGOP(cottotan2)
ALGOP(sectocsc2)
ALGOP(csctosec2)
ALGOP(costosindeg) /* cos(90�-�) = sin � */
ALGOP(sintocosdeg) /* sin(90�-�) = cos � */
ALGOP(tantocotdeg) /* tan(90�-�) = cot � */
ALGOP(seccomplementdeg) /* sec(90�-�) = csc � */
ALGOP(csccomplementdeg) /* csc(90�-�) = sec � */
ALGOP(cotcomplementdeg) /* cot(90�-�) = tan � */
ALGOP(sintocos2deg)
ALGOP(costosin2deg)
ALGOP(tantocot2deg)
ALGOP(cottotan2deg)
ALGOP(sectocsc2deg)
ALGOP(csctosec2deg)
ALGOP(adddegrees)
ALGOP(multdegrees)
ALGOP(divdegrees)
ALGOP(sinoddpower)
ALGOP(cosoddpower)
ALGOP(tanoddpower)
ALGOP(secoddpower)
ALGOP(cotoddpower)
ALGOP(cscoddpower)
ALGOP(sinsqhalf) /* sin�(u/2) = (1-cos u)/2 */
ALGOP(cossqhalf) /* cos�(u/2) = (1+cos u)/2 */
ALGOP(sinsqhalf2) /* sin�(u) = (1-cos 2u)/2 */
ALGOP(cossqhalf2) /* cos�(u) = (1+cos 2u)/2 */
OP(sincossame) /* sin u cos u = (1/2) sin 2u */
ALGOP(tanhalf1) /* tan(u/2) = sin u/(1+cos u) */
ALGOP(tanhalf2) /* tan(u/2) = (1-cos u)/sin u */
ALGOP(cothalf1) /* cot(�/2) = (1+cos �)/(sin �) */
ALGOP(cothalf2) /* cot(�/2) = sin �/(1-cos �) */
ALGOP(sinhalf1) /* sin(u/2) = �(1-cos u)/2 */
ALGOP(sinhalf2) /* sin(u/2) = -�(1-cos u)/2 */
ALGOP(coshalf1) /* cos(u/2) = �(1+cos u)/2 */
ALGOP(coshalf2) /* cos(u/2) = -�(1+cos u)/2 */
ALGOP(twicehalf) /* u = 2(u/2) */
ALGOP(sincos) /* sin x cos y = �[sin(x+y)+sin(x-y) */
ALGOP(cossin) /* cos x sin y = �[sin(x+y)-sin(x-y) */
ALGOP(sinsin) /* sin x sin y = �[cos(x-y)-cos(x+y) */
ALGOP(coscos) /* cos x cos y = �[cos(x+y)+cos(x-y) */
ALGOP(sin0) /* sin 0 = 0 */
ALGOP(cos0) /* cos 0 = 1 */
ALGOP(tan0) /* tan 0 = 1 */
ALGOP(zeroesofsin) /* sin(k�) = 0 */
ALGOP(zeroesoftan) /* tan(k�) = 0 */
ALGOP(onesofcos) /* cos(2k�) = 1 */
ALGOP(mod360)
ALGOP(mod2pi)
ALGOP(sin90) /* angle is multiple of 90� */
ALGOP(sin30) /* use 1-2-�3 triangle */
ALGOP(sin45) /* use 1-1-�2 triangle */
ALGOP(radtodeg) /* change radians to degrees */
ALGOP(degtorad) /* change degrees to radians */
ALGOP(combine3045) /* angle = a 30� + b 45� etc. */
ALGOP(checknumerically)
ALGOP(evalarccot)
ALGOP(evalarcsec)
ALGOP(evalarccsc)
ALGOP(arcsinodd)
ALGOP(arctanodd)
ALGOP(arccosodd)
OP(sumofarctan) /* arctan x + arctan(1/x) = �x/2�x� (not 1) */
OP(sumofarcsin) /* arcsin x + arccos x = �/2 (even if x is negative) */
ALGOP(solvesin30)
ALGOP(solvesin330)
ALGOP(solvesin60)
ALGOP(solvesin300)
ALGOP(solvecos30)
ALGOP(solvecos150)
ALGOP(solvecos60)
ALGOP(solvecos120)
ALGOP(solvetan30)
ALGOP(solvetan330)
ALGOP(solvetan60)
ALGOP(solvetan120)
ALGOP(solvesin45)
ALGOP(solvesin315)
ALGOP(solvecos45)
ALGOP(solvecos135)
ALGOP(solvetan45)
ALGOP(solvetan135)
ALGOP(solvesin0)
ALGOP(solvesin90)
ALGOP(solvesin270)
ALGOP(solvecos90)
ALGOP(solvecos0)
ALGOP(solvecos180)
ALGOP(solvetan0)
ALGOP(solvecot90)
ALGOP(solvetan)
ALGOP(solvecos)
ALGOP(solvesin)
ALGOP(solvesin2)
ALGOP(periodicform)
ALGOP(evalarcsin)
ALGOP(evalarccos)
ALGOP(evalarctan)
ALGOP(rejectimpossiblesin)
ALGOP(rejectimpossiblecos)
ALGOP(sinsqtocossq)
ALGOP(cossqtosinsq)
ALGOP(tansqtosecsq)
ALGOP(secsqtotansq)
ALGOP(sumofsin)
ALGOP(difofsin)
ALGOP(trigsuminfraction)
ALGOP(sumofcos)
ALGOP(difofcos)
ALGOP(eliminatesinsq)
ALGOP(eliminatecossq)
ALGOP(eliminatetansq)
ALGOP(eliminatesecsq)
ALGOP(factorbase)
AUTOMODEOP(ssolveop)
ALGOP(writeaspoly)
OP(sigmapoly)
ALGOP(univariatepoly)
ALGOP(monicpoly)
OP(tanasin)
OP(tanacos)
OP(tanatan)
OP(sinasin)
OP(sinacos)
OP(sinatan)
OP(cosasin)
OP(cosacos)
OP(cosatan)
OP(atantan)
OP(atantan2)
OP(acoscos)
OP(asinsin)
OP(secacos)
OP(secasin)
OP(secatan)
ALGOP(cscsqminuscotsq) /* csc� u - cot� u = 1 */
ALGOP(cotsquare1) /* cot� u + 1 = csc� u */
ALGOP(cotsquare2) /* csc� u - 1 = csc� u */
ALGOP(cscsqtocotsq) /* csc� u = cot� u + 1 */
ALGOP(cotsqtocscsq) /* cot� u = csc� u - 1 */
ALGOP(complexform) /* write in form x+yi */
ALGOP(complexapart) /* (u+vi)/w = u/w+(v/w)i */
OP(sinsumrev) /* sin u cos v + cos u sin v = sin(u+v) */
OP(sindifrev) /* sin u cos v - cos u sin v = sin(u-v) */
OP(cossumrev) /* cos u cos v - sin u sin v = cos(u+v) */
OP(cosdifrev) /* cos u cos v + sin u sin v = cos(u-v) */
OP(tanhalf1rev) /* (sin �)/(1+cos �) = tan(�/2) */
OP(tanhalf2rev) /* (1-cos �)/sin � = tan(�/2) */
OP(cothalf1rev) /* (1+cos �)/(sin �) = cot(�/2) */
OP(cothalf2rev) /* sin �/(1-cos �) = cot(�/2) */
OP(tansumrev) /* (tan u+tan v)/(1-tan u tan v) = tan(u+v) */
OP(tandifrev) /* (tan u-tan v)/(1+tan u tan v) = tan(u-v) */
OP(cotsumrev) /* (cot u cot v-1)/(cot u+cot v) = cot(u+v) */
OP(cotdifrev) /* (1+cot u cot v)/(cot v-cot u) = cot(u-v) */
OP(unitelogs) /* used only in auto mode */
OP(unitelns)
OP(unitelogs2)
OP(unitelns2)
MEXPORT_ALGEBRA int recip_aux(unsigned short,unsigned short,term, term *);
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists