Trigonometric and other basic functions

The following table lists the trigonometric functions.

function | description | function | description
`SIN(x)` | Sine (radians) | `SINH(x)` | Hyperbolic Sine
`SIND(x)` | Sine (degrees)
`COS(x)` | Cosine (radians) | `COSH(x)` | Hyperbolic Cosine
`COSD(x)` | Cosine (degrees)
`TAN(x)` | Tangent (radians) | `TANH(x)` | Hyperbolic Tangent
`TAND(x)` | Tangent (degrees)
`COT(x)` | Cotangent (radians) | `COTH(x)` | Hyperbolic Cotangent
`SEC(x)` | Secant (radians) | `SECH(x)` | Hyperbolic Secant
`CSC(x)` | Cosecant (radians) | `CSCH(x)` | Hyperbolic Cosecant
`ASIN(x)` | Arc Sine (radians) | `ASINH(x)` | Hyperbolic Arc Sine
`ASIND(x)` | Arc Sine (degrees)
`ACOS(x)` | Arc Cosine (radians) | `ACOSH(x)` | Hyperbolic Arc Cosine
`ACOSD(x)` | Arc Cosine (degrees)
`ATAN(x)` | Arc Tangent (radians) | `ATANH(x)` | Hyperbolic Arc Tangent
`ATAND(x)` | Arc Tangent (degrees)
`ATAN2(y,x)` | Arc Tangent of y / x (radians)
`ATAN2D(y,x)` | Arc Tangent of y / x (degrees)
`ACOT(x)` | Arc Cotangent (radians) | `ACOTH(x)` | Hyperbolic Arc Cotangent
`ASEC(x)` | Arc Secant (radians) | `ASECH(x)` | Hyperbolic Arc Secant
`ACSC(x)` | Arc Cosecant (radians) | `ACSCH(x)` | Hyperbolic Arc Cosecant

The next table lists other basic numeric functions that are intrinsic to the program.

function | description
`ABS(x)` | absolute value |x|
`EXP(x)` | exponential ex
`FACTORIAL(x)` | factorial x!
`INT(x)` | integer portion of x
`NINT(x)` | nearest integer ( x + 0.5*SIGN(1,x) )
`LOG(x)` | base e logarithm
`LN(x)` | base e logarithm
`LOG10(x)` | base 10 logarithm
`RAN(x)` | random number
`SQRT(x)` | square root
`ELTIME(x)` | elapsed time in seconds
`PDIFF(x,y)` | positive difference function
`MOD(x,y)` | modulus function
`SIGN(x,y)` | transfer of sign

All of these functions expect numeric arguments, and operate on an element by element basis. The trigonometric and other basic functions will always have a resultant type which will be the same as the type of its argument, that is, a scalar argument results in a scalar, a vector argument results in a vector with the same length as the argument, a matrix (tensor) argument results in a matrix (tensor) with the same size and shape as the argument. Some of these element by element functions, such as `RAN`, `ATAN2`, or `MIN` do require some explanation, but the definitions of most are assumed to be obvious to the reader.

ATAN2
ATAN2D
ELTIME
FACTORIAL
INT
MOD
NINT
PDIFF
RAN
SIGN