# Symbolic Catalog

Math plus ultra is a graphing programable calculator with a large set of functions that features:

• The manipulation of numeric and symbolic expressions.
• The development of customized functions.
• The creation of 2D and 3D graphs, including plots, contours and surfaces.
• Matrix and complex calculus.
• Integration and differentiation of numeric and symbolic functions.

# Arithmetic

## abs

abs(x)
Calculates the absolute value of a number, returns the magnitude of a complex number or returns the length of a vector.

## ceiling

ceiling(x)
Returns the smallest integer value no less than x.

## eval

eval(f,x,a)
Returns the function f evaluated at x=a.

## exp

exp(x)
Calculates the exponential of x.

## factor

factor(n)
Returns the factors of integer n.

## float

float(x)
Takes rational numbers or integers and converts them to floating point values.

## floor

floor(x)
Rounds a value to the nearest integer less or equal to it.

## gcd

gcd(a,b,…)
Returns the greatest common divisor between two or more values.

## isprime

isprime(n)
Determines if a value is a prime number. Returns 1 if n is a prime number or returns zero if it is not.

## lcm

lcm(a,b,…)
Returns the least common multiple between two or more values.

## log

log(x)
Calculates the natural logarithm of x.

## mod

mod(a,b)
Returns the remainder after dividing a by b.

## prime

prime(n)
Calculates the nth prime number. The domain of n is 1 to 10000.

## product

product(i,j,k,f)
Evaluates f for i from j to k and returns the product of all f.

simplify(x)
Simplifies x.

## sqrt

sqrt(x)
Calculates the square root of x

## subst

subst(a,b,c)
Substitutes a for b in c and calculates the result.

## sum

sum(f,i,j,k)
Evaluates f for i equals j through k and returns the sum of all f.

# Calculus

## circexp

circexp(x)
Converts circular and hyperbolic functions into exponential forms.

## d

d(f,x)
Calculates the partial derivative of f with respect to x

## defint

defint(f,x,a,b)
Calculates the definite integral of f with respect to x and evaluated from a to b. The arguments can be extended for multiple integrals or iterated integrals, for example, defint(f,x,a,b,y,c,d)

## integral

integral(f,x)
Calculates the integral of f with respect to x.

# Complex

## arg

arg(z)
Calculates the argument of a complex number.

## conj

conj(z)
Calculates the conjugate of a complex number.

## imag

imag(z)
Returns the imaginary part of a complex number.

## mag

mag(z)
Returns the magnitude of a complex number.

## polar

polar(z)
Returns a complex number in polar form.

## real

real(z)
Returns the real part of a complex number.

## rect

rect(z)
Returns a complex number in rectangular form

# Fractions

## denominator

denominator(x)
Calculates the denominator of the expression x.

## numerator

numerator(x)
Calculates the numerator of the expression x.

rationalize(x)
Rationalize x.

# Logical

## and

and(a,b,…)
Logical operator AND.

## check

check(x)
If x is true then continue, otherwise stop. Use A=B to verify if A equals B.

## not

not(x)
Logical negation of x.

## or

or(a,b,…)
Logical operator OR.

# Matrix

Calculates the adjunct of matrix m. The inverse of matrix m is equal to adj(m) divided by det(m).

## cofactor

cofactor(m,i,j)
Returns the cofactor ij of matrix m. Let c be the cofactor matrix of m, then transpose(c )= adj(m).

## contract

contract(a,i,j)
It is the equivalent to the trace of matrix m.

## cross

cross(u,v)
Calculates the cross product between vectors u and v.

## curl

curl(u)
Calculates the curl of vector u.

## det

det(m)
Calculates the determinant of matrix m.

## dot

dot(a,b,…)
Calculates the dot product of vectors.

## eigen

eigen(m)
Compute eigenvalues and eigen vectors numerically. Argument m must be a numerical and symmetric matrix. This function stores the eigenvalue matrix in D and the eigenvector matrix in Q, so it does not return anything.

## eigenval

eigenval(m)
Compute eigenvalues and eigen vectors numerically. Argument m must be a numerical and symmetric matrix. This function calculates a matrix with the eigenvalues along the diagonal.

## eigenvec

eigenvec(m)
Compute eigenvalues and eigen vectors numerically. Argument m must be a numerical and symmetric matrix. This function calculates the eigenvectors and arranges them as row vectors.

## hilbert

hilbert(n)
Calculates a n by n Hilbert matrix.

## inv

inv(m)
Calculates the inverse of matrix m.

## transpose

transpose(a,i,j)
Returns the transpose of matrix a with respect to indices i and j. When indices are omitted, 1 and 2 are assumed.

## unit

unit(n)
Returns an identity matrix with n by n dimensions.

## zero

zero(i,j,…)
Creates a matrix of all zeros with dimensions i,j, etc.

# Polynomial

## coeff

coeff(p,x,n)
Returns the nth coefficient of the polynomial p in the variable x. The argument x can be omitted for single variable polynomials in x.

## deg

deg(p,x)
Calculates the degree of polynomial p(x).

## expand

expand(r,x)
Expands the polynomial p with respect to x.

## factor

factor(p,x)
Factors polynomial p with respect to x. If the polynomial is in x then x can be omitted. The polynomial must be factorable over integers. The argument list can be extended for multivariable polynomials, e.g., factor(p,x,y) so it factors p over x and then over y.

## hermite

hermite(x,n)
Calculate the nth Hermite polynomial in x.

## laguerre

laguerre(x,n,a)
Calculates the nth Laguerre polynomial in x, but if a is omitted, a=0 is assumed.

Returns the leading coefficient of polynomial p in variable x.

## legendre

legendre(x,n,m)
Calculates the nth Legendre polynomial in x. If m is omitted, m=0 is assumed.

## nroots

nroots(p,x)
Calculates all the roots, real and complex of polynomial p in x. These roots are computed numerically. The coefficients of the polynomial can be real or complex.

## quotient

quotient(p,q,x)
Calculates the quotient of two polynomials, p(x) over q(x). If the polynomials are in x, then the last argument can be omitted. The remainder can be calculated as p-q*quotient(p,q)

## roots

roots(p,x)
Calculates the values of x such that polynomial p(x)=0. The polynomial must be factorable over integers. For multiple roots the result is a vector. Individual roots can be obtained by component rotation, e.g., r1=roots(p,x).

# Probability

## choose

choose(n,k)
Returns the number of possible combinations of obtaining an unordered subset of k elements from a set of n objects.

## factorial

factorial(x)
Returns the factorial of x. It can be entered as x!

# Program

## do

do(a,b,…)
Evaluates all the arguments from left to right and returns the result of the last argument.

## for

for(i,j,k,a,b,…)
This function works as a loop to repeat a specified number of times according to a counter. The counter is i and repeats the cycle from the integer j through the integer k, evaluating arguments a, then b, etc.

## stop

stop()
Stops the execution of a script.

## test

test(a,b,c,d,…)
In this function if the argument ‘a’ is true then ‘b’ is returned else if argument ‘c’ is true then ‘d’ is returned and so on. But if the number of arguments is odd then the last argument will be returned after all else fails. Use A=B to check if A equals B.

# Special

## besselj

besselj(x,n)
Bessel function of the first kind.

## bessely

bessely(x,n)
Bessel function of the second kind.

## erf

erf(x)
Returns the error function of x.

## erfc

erfc(x)
Returns the complementary error function of x

## filter

filter(f,a,b,…)
Filters f by excluding any terms containing a,b,etc.

## taylor

taylor(f,x,n,a)
Returns the Taylor expansion of f(x) at x=a. If a is omitted, then a=0 is assumed. The argument n is the degree of the Taylor expansion.

# Tensor

## dim

dim(a,n)
Calculates the cardinality of the nth index of tensor a.

## dot

dot(a,b,…)
Returns the dot product of tensors.

## inner

inner(a,b,…)
Returns the inner product of tensors, is the same as the dot product.

## outer

outer(a,b,…)
Returns the tensor product or outer product of tensors.

## rank

rank(a)
Returns the number of indices of tensor a.

## shape

shape(x)
Returns a vector with the shape of the input tensor. If the tensor is a row vector it will return its length, but if the input is a matrix it will return a vector with its dimensions.

# Trigonometry

## arccos

arccos(x)
Returns the inverse cosine or arccosine of x.

## arccosh

arccosh(x)
Returns the hyperbolic arccosine or inverse hyperbolic cosine of x.

## arcsin

arcsin(x)
Returns the inverse sine or arcsine of x.

## arcsinh

arcsinh(x)
Returns the hyperbolic arcsine or inverse hyperbolic sine of x.

## arctan

arctan(x)
Returns the arctangent or inverse tangent of x.

## arctanh

arctanh(x)
Returns the hyperbolic arctangent or inverse hyperbolic tangent of x.

## cos

cos(x)
Calculates the cosine of x.

## cosh

cosh(x)
Calculates the hyperbolic cosine of x.

## expcos

expcos(x)
Calculates the exponential cosine of x.

## expsin

expsin(x)
Calculates the exponential sine of x.

## sin

sin(x)
Calculates the sine of x.

## sinh

sinh(x)
Calculates the hyperbolic sine of x.

## tan

tan(x)
Calculates the tangent of x.

## tanh

tanh(x)
Calculates the hyperbolic tangent of x.

## sec

sec(x)
Returns the secant of x, which is defined as sec(x) = 1/cos(x).

## cot

cot(x)
Returns the cotangent of x. It is defined as cot(x)=1/tan(x).

## csc

csc(x)
Returns the cosecant of x, which is defined as csc(x) = 1/sin(x).

## sech

sech(x)
Returns the hyperbolic secant of x, which is defined as sech(x) = 1 / cosh(x).

## coth

coth(x)
Returns the hyperbolic cotangent of x, which is defined as coth(x) = 1 / tanh(x).

## csch

csch(x)
Returns the hyperbolic cosecant of x, which is defined as csch(x) = 1 / sinh(x).

## acot

acot(x)
Returns the inverse cotangent or arctangent of x, which is defined as acot(x) = atan(1/x).

## acoth

acoth(x)
Returns the hyperbolic arc cotangent of x, which is defined as acoth(x) = atanh(1/x).

## asec

asec(x)
Returns the inverse secant or arc secant of x.

## asech

asech(x)
Returns the hyperbolic arc secant of x, which is defined as asech(x) = acosh(1/x).

## acsc

acsc(x)
Returns the inverse cosecant or arc cosecant of x, which is defined as acsc(x) = asin(1/x).

## acsch

acsch(x)
Returns the hyperbolic arc cosecant of x, which is defined as acsch(x) = asinh(1/x).

# Variable

## quote

quote(x)
Returns the expression without evaluating it first.