OUtline: Constants Numbers integers rational float bigfloat complex constant symbols: boolean pi, e, ... strings file names constant expressions: %e+%pi, sqrt(5), sin(1) indeterminates variables functions expressions general mathematical representation operators + * ^ () = ~ > < / .. more can be added ... see ... operands, parsing CRE form Poisson form matrices programming objects lists hash arrays arrays function definitions: simple memo-functions macros- see appendix complete prog. lang - see appendix 0 n/m %pi for certain fractions n/m, sin(3/4*%pi) ==>sqrt(2)/2 apparently negative, sin(-x) ==> - sin(x); a sum of an expression and a multiple of %pi, sin(a+%pi/2) ==> cos(a) a pure imaginary quantity, sin(%i*x) ==> %i*sinh(x) asin(y): sin(asin(y))==> y sin(atan(x)) ==> x/(sqrt(x^2+1) Certain operations, including limit, diff, integrate, taylor, rectform, polarform, intopois, trigsimp, .... apply other rules to make mathematical transformations involving sin as input or output. see, for example, trigexpand(sin(x+y)) ==> cos(x) sin(y) + sin(x) cos(y) rectform(sin(a+b*%i))==> polarform(a+b*%i)==> taylor(sin(x),x,0,3)==> limit(sin(x)/x) ==> Sometimes Macsyma treats sin(x) as a command to compute a numerical approximation to the sine function. The system goes through about like this... If x is a floating point number then sin returns a flt. pt. If x is an integer and numer:true, then...sin returns a flt pt number. If x is a bigfloat,sin returns a bigfloat Sometimes the two systems interact: If x is an imaginary number ( e.g 3.0*%i), Macsyma produces %i*sinh(3.0) and then 10.0178749274099 %i. Sometimes you will want to add to the semantics associated with the sine function. Here is an example: You may recall that for small arguments, sin(x)~x. and that cos(x) ~ 1 If you use the name eps to represent a "small quantity", you might wish to replace sin(eps) by eps. and cos(eps) by 1. This is done by the commands tellsimp(sin(eps),eps); tellsimp(cos(eps),1); then trigexpand(sin(x+eps)) ==>sin(x)+eps*cos(x). By analogy, consider cos, tan, csc, sec, cot, and the other trig functions to be handled with similar attention to detail, although some of them will first be mapped onto the more usual sin and cos, before great effort is expended. Also, the functions are extended to the complex plane in the usual fashion, and may bring into play the sinh, cosh, tanh, csch, sech, coth functions. The less usual of the hyperbolic functions are also mapped into the more common hyperbolic functions for simplifications. Inverse trigonometric and hypergeometric functions from asin through acoth are also available with simplifications, evaluations, differentiation, integration, etc. Furthermore, any of these can be converted into exponential form by ev(form,exponentialize). A note on branch cuts: The inverse functions may be expressed in terms of logarithms. The choice of principal value may not always be the one you expect, and if it is critical to your calculation to keep consistency in such choices, please realize that the introduction of symbols whose sign is unknown, may require ambiguity in places that numeric constants do not. The first table below summarizes the basic data types that are familiar to most mathematicians who have used computers in their work. They are similar to those data types in conventional programming languages, although they are in some ways extended or generalized. .nf