\documentclass{article} \usepackage{open-axiom} \begin{document} \title{\$SPAD/src/algebra trigcat.spad} \author{Manuel Bronstein} \maketitle \begin{abstract} \end{abstract} \eject \tableofcontents \eject \section{category ELEMFUN ElementaryFunctionCategory} <>= )abbrev category ELEMFUN ElementaryFunctionCategory ++ Category for the elementary functions ++ Author: Manuel Bronstein ++ Date Created: ??? ++ Date Last Updated: 14 May 1991 ++ Description: Category for the elementary functions; ElementaryFunctionCategory(): Category == with log : $ -> $ ++ log(x) returns the natural logarithm of x. exp : $ -> $ ++ exp(x) returns %e to the power x. **: ($, $) -> $ ++ x**y returns x to the power y. add if $ has Monoid then x ** y == exp(y * log x) @ \section{category AHYP ArcHyperbolicFunctionCategory} <>= )abbrev category AHYP ArcHyperbolicFunctionCategory ++ Category for the inverse hyperbolic trigonometric functions ++ Author: ??? ++ Date Created: ??? ++ Date Last Updated: 14 May 1991 ++ Description: ++ Category for the inverse hyperbolic trigonometric functions; ArcHyperbolicFunctionCategory(): Category == with acosh: $ -> $ ++ acosh(x) returns the hyperbolic arc-cosine of x. acoth: $ -> $ ++ acoth(x) returns the hyperbolic arc-cotangent of x. acsch: $ -> $ ++ acsch(x) returns the hyperbolic arc-cosecant of x. asech: $ -> $ ++ asech(x) returns the hyperbolic arc-secant of x. asinh: $ -> $ ++ asinh(x) returns the hyperbolic arc-sine of x. atanh: $ -> $ ++ atanh(x) returns the hyperbolic arc-tangent of x. @ \section{category ATRIG ArcTrigonometricFunctionCategory} The [[asec]] and [[acsc]] functions were modified to include an intermediate test to check that the argument has a reciprocal values. <>= )abbrev category ATRIG ArcTrigonometricFunctionCategory ++ Category for the inverse trigonometric functions ++ Author: ??? ++ Date Created: ??? ++ Date Last Updated: 14 May 1991 ++ Description: Category for the inverse trigonometric functions; ArcTrigonometricFunctionCategory(): Category == with acos: $ -> $ ++ acos(x) returns the arc-cosine of x. acot: $ -> $ ++ acot(x) returns the arc-cotangent of x. acsc: $ -> $ ++ acsc(x) returns the arc-cosecant of x. asec: $ -> $ ++ asec(x) returns the arc-secant of x. asin: $ -> $ ++ asin(x) returns the arc-sine of x. atan: $ -> $ ++ atan(x) returns the arc-tangent of x. add if $ has Ring then asec(x) == (a := recip x) case "failed" => error "asec: no reciprocal" acos(a::$) acsc(x) == (a := recip x) case "failed" => error "acsc: no reciprocal" asin(a::$) @ \section{category HYPCAT HyperbolicFunctionCategory} The [[csch]] and [[sech]] functions were modified to include an intermediate test to check that the argument has a reciprocal values. <>= )abbrev category HYPCAT HyperbolicFunctionCategory ++ Category for the hyperbolic trigonometric functions ++ Author: ??? ++ Date Created: ??? ++ Date Last Updated: 14 May 1991 ++ Description: Category for the hyperbolic trigonometric functions; HyperbolicFunctionCategory(): Category == with cosh: $ -> $ ++ cosh(x) returns the hyperbolic cosine of x. coth: $ -> $ ++ coth(x) returns the hyperbolic cotangent of x. csch: $ -> $ ++ csch(x) returns the hyperbolic cosecant of x. sech: $ -> $ ++ sech(x) returns the hyperbolic secant of x. sinh: $ -> $ ++ sinh(x) returns the hyperbolic sine of x. tanh: $ -> $ ++ tanh(x) returns the hyperbolic tangent of x. add if $ has Ring then csch x == (a := recip(sinh x)) case "failed" => error "csch: no reciprocal" a::$ sech x == (a := recip(cosh x)) case "failed" => error "sech: no reciprocal" a::$ tanh x == sinh x * sech x coth x == cosh x * csch x if $ has ElementaryFunctionCategory then cosh x == e := exp x (e + recip(e)::$) * recip(2::$)::$ sinh(x):$ == e := exp x (e - recip(e)::$) * recip(2::$)::$ @ \section{category TRANFUN TranscendentalFunctionCategory} The [[acsch]], [[asech]], and [[acoth]] functions were modified to include an intermediate test to check that the argument has a reciprocal values. <>= )abbrev category TRANFUN TranscendentalFunctionCategory ++ Category for the transcendental elementary functions ++ Author: Manuel Bronstein ++ Date Created: ??? ++ Date Last Updated: 14 May 1991 ++ Description: Category for the transcendental elementary functions; TranscendentalFunctionCategory(): Category == Join(TrigonometricFunctionCategory,ArcTrigonometricFunctionCategory, HyperbolicFunctionCategory,ArcHyperbolicFunctionCategory, ElementaryFunctionCategory) with pi : () -> $ ++ pi() returns the constant pi. add if $ has Ring then pi() == 2*asin(1) acsch x == (a := recip x) case "failed" => error "acsch: no reciprocal" asinh(a::$) asech x == (a := recip x) case "failed" => error "asech: no reciprocal" acosh(a::$) acoth x == (a := recip x) case "failed" => error "acoth: no reciprocal" atanh(a::$) if $ has Field and $ has sqrt: $ -> $ then asin x == atan(x/sqrt(1-x**2)) acos x == pi()/2::$ - asin x acot x == pi()/2::$ - atan x asinh x == log(x + sqrt(x**2 + 1)) acosh x == 2*log(sqrt((x+1)/2::$) + sqrt((x-1)/2::$)) atanh x == (log(1+x)-log(1-x))/2::$ @ \section{category TRIGCAT TrigonometricFunctionCategory} The [[csc]] and [[sec]] functions were modified to include an intermediate test to check that the argument has a reciprocal values. <>= )abbrev category TRIGCAT TrigonometricFunctionCategory ++ Category for the trigonometric functions ++ Author: ??? ++ Date Created: ??? ++ Date Last Updated: 14 May 1991 ++ Description: Category for the trigonometric functions; TrigonometricFunctionCategory(): Category == with cos: $ -> $ ++ cos(x) returns the cosine of x. cot: $ -> $ ++ cot(x) returns the cotangent of x. csc: $ -> $ ++ csc(x) returns the cosecant of x. sec: $ -> $ ++ sec(x) returns the secant of x. sin: $ -> $ ++ sin(x) returns the sine of x. tan: $ -> $ ++ tan(x) returns the tangent of x. add if $ has Ring then csc x == (a := recip(sin x)) case "failed" => error "csc: no reciprocal" a::$ sec x == (a := recip(cos x)) case "failed" => error "sec: no reciprocal" a::$ tan x == sin x * sec x cot x == cos x * csc x @ \section{category PRIMCAT PrimitiveFunctionCategory} <>= )abbrev category PRIMCAT PrimitiveFunctionCategory ++ Category for the integral functions ++ Author: Manuel Bronstein ++ Date Created: ??? ++ Date Last Updated: 14 May 1991 ++ Description: Category for the functions defined by integrals; PrimitiveFunctionCategory(): Category == with integral: ($, Symbol) -> $ ++ integral(f, x) returns the formal integral of f dx. integral: ($, SegmentBinding $) -> $ ++ integral(f, x = a..b) returns the formal definite integral ++ of f dx for x between \spad{a} and b. @ \section{category LFCAT LiouvillianFunctionCategory} <>= )abbrev category LFCAT LiouvillianFunctionCategory ++ Category for the transcendental Liouvillian functions ++ Author: Manuel Bronstein ++ Date Created: ??? ++ Date Last Updated: 14 May 1991 ++ Description: Category for the transcendental Liouvillian functions; LiouvillianFunctionCategory(): Category == Join(PrimitiveFunctionCategory, TranscendentalFunctionCategory) with Ei : $ -> $ ++ Ei(x) returns the exponential integral of x, i.e. ++ the integral of \spad{exp(x)/x dx}. Si : $ -> $ ++ Si(x) returns the sine integral of x, i.e. ++ the integral of \spad{sin(x) / x dx}. Ci : $ -> $ ++ Ci(x) returns the cosine integral of x, i.e. ++ the integral of \spad{cos(x) / x dx}. li : $ -> $ ++ li(x) returns the logarithmic integral of x, i.e. ++ the integral of \spad{dx / log(x)}. dilog : $ -> $ ++ dilog(x) returns the dilogarithm of x, i.e. ++ the integral of \spad{log(x) / (1 - x) dx}. erf : $ -> $ ++ erf(x) returns the error function of x, i.e. ++ \spad{2 / sqrt(%pi)} times the integral of \spad{exp(-x**2) dx}. @ \section{category CFCAT CombinatorialFunctionCategory} <>= )abbrev category CFCAT CombinatorialFunctionCategory ++ Category for the usual combinatorial functions ++ Author: Manuel Bronstein ++ Date Created: ??? ++ Date Last Updated: 14 May 1991 ++ Description: Category for the usual combinatorial functions; CombinatorialFunctionCategory(): Category == with binomial : ($, $) -> $ ++ binomial(n,r) returns the \spad{(n,r)} binomial coefficient ++ (often denoted in the literature by \spad{C(n,r)}). ++ Note: \spad{C(n,r) = n!/(r!(n-r)!)} where \spad{n >= r >= 0}. factorial : $ -> $ ++ factorial(n) computes the factorial of n ++ (denoted in the literature by \spad{n!}) ++ Note: \spad{n! = n (n-1)! when n > 0}; also, \spad{0! = 1}. permutation: ($, $) -> $ ++ permutation(n, m) returns the number of ++ permutations of n objects taken m at a time. ++ Note: \spad{permutation(n,m) = n!/(n-m)!}. @ \section{category SPFCAT SpecialFunctionCategory} <>= )abbrev category SPFCAT SpecialFunctionCategory ++ Category for the other special functions ++ Author: Manuel Bronstein ++ Date Created: ??? ++ Date Last Updated: 11 May 1993 ++ Description: Category for the other special functions; SpecialFunctionCategory(): Category == with abs : $ -> $ ++ abs(x) returns the absolute value of x. Gamma: $ -> $ ++ Gamma(x) is the Euler Gamma function. Beta: ($,$)->$ ++ Beta(x,y) is \spad{Gamma(x) * Gamma(y)/Gamma(x+y)}. digamma: $ -> $ ++ digamma(x) is the logarithmic derivative of \spad{Gamma(x)} ++ (often written \spad{psi(x)} in the literature). polygamma: ($, $) -> $ ++ polygamma(k,x) is the \spad{k-th} derivative of \spad{digamma(x)}, ++ (often written \spad{psi(k,x)} in the literature). Gamma: ($, $) -> $ ++ Gamma(a,x) is the incomplete Gamma function. besselJ: ($,$) -> $ ++ besselJ(v,z) is the Bessel function of the first kind. besselY: ($,$) -> $ ++ besselY(v,z) is the Bessel function of the second kind. besselI: ($,$) -> $ ++ besselI(v,z) is the modified Bessel function of the first kind. besselK: ($,$) -> $ ++ besselK(v,z) is the modified Bessel function of the second kind. airyAi: $ -> $ ++ airyAi(x) is the Airy function \spad{Ai(x)}. airyBi: $ -> $ ++ airyBi(x) is the Airy function \spad{Bi(x)}. @ \section{License} <>= --Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. --All rights reserved. -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- -- - Redistributions of source code must retain the above copyright -- notice, this list of conditions and the following disclaimer. -- -- - Redistributions in binary form must reproduce the above copyright -- notice, this list of conditions and the following disclaimer in -- the documentation and/or other materials provided with the -- distribution. -- -- - Neither the name of The Numerical ALgorithms Group Ltd. nor the -- names of its contributors may be used to endorse or promote products -- derived from this software without specific prior written permission. -- --THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS --IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED --TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER --OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, --EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, --PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR --PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF --LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING --NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS --SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. @ <<*>>= <> <> <> <> <> <> <> <> <> <> <> @ \eject \begin{thebibliography}{99} \bibitem{1} nothing \end{thebibliography} \end{document}