Sindbad~EG File Manager

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

/* 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