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