This is a package of functions that enhance the ability of the TI-92+ calculator to
be used as a symbolic math development system. All are written in TI Basic so
should be compatible with the TI-89. The package is divided into 11 parts that should
reside in a folder with the same name as the zip file name without the .zip postfix.
All user level (not support level) functions have online help using the "VAR-LINK" F6
keys or CATALOG F4 keys. Also included in the zip files is a text file with the
extension "xref" with lists the functions in the zip file and what other functions
they call so the user can select a subset of the functions to upload to the calculator.

Use the mode key and set the settings to those with are:

current folder: main
angle: radian
complex format: rectangular
vector format: rectangular
exact/approx: auto

Also make sure you don't have values stored in variable names.
You can insure this by doing a

NewProb

from the menu. This is a good habit to do each time you start
to work on a new problem.

Version 1.4 March 29, 2002

The parts are:

al - for algebraic which contains:

terms This function splits an expression into a LIST of items the last element of
which is a string that contains the operators upon which the elements were
split. The operators that cause a split are: + - = and or
The "and" and "or" operators are & and | in the string. It's handy to store the
result into a variable (say v) so that later references can be made by v[n]
where n is the term number of the item in the list that is of interest.
For example:
al\terms(a=b-c)->t
stores {a,b,c,"=-"} into the variable "t". You can use t[2] to address b.

join Is the inverse of "terms". For example:
al\join(t)
where "t" is the variable of the "terms" example will return the expression
a=b-c. Use the text editor to open and execute the t\trmjoin for more
examples.

sbjoin This function retrieves a subset of terms of a list created by "terms".

factors This function creates a list of factors of a single term.

degree This function returns the maximum degree of the input expression.

dstb This function distributes an aggregate (integral, derivative, sum, limit or
product) over the terms of an expression when the normal simplification
does not suffice.

xord This function exchanges the order of a nested aggregate. Used mostly to
evaluate a sum inside of an integral. Can also be used to exchange the
order of integration of a double integral.

arg Used to extract the argument of a function or aggregate.

xhg This function exchanges the sides of an equation.

addequ This function adds two equations and returns the result.

mpyequ This function multiplies two equations and returns the result.

posdm This function produces the restrictions on variables necessary for the value
of the input expression (also returned simplified) to be positive.

realdm This function returns the real domain for an expression and its
independent variable.

svineq This function solves an inequality equation for a variable. Just like
solve, but works with an inequatlity.

i - for integration

sub This function allows you to substitute a variable under the integral sign.
A good example is:

i\sub(S(e^(x)/x,x),x=ln(y))
which returns
S(1/ln(y),y) where S is the integral sign.

parts This function implements integration by parts.

ci This function returns the closed loop complex integral for all of it's poles.

allpoles This function returns the sum of all the pole values returned by ci. This
is the value of the closed path that includes all of the poles.

pathInt This function returns the value of a complex expression along a specified path.

d This function takes the differentials of an expression or equation with
respect to n variables.

dint This function attempts to integrat an expression or equation that
contains differentials.

cd This function converts an equation or expression in d(y(x),x) or ' format
to dy/dx (differential) format.

cnv This function converts an expression of equation in dy/dx (differential)
format to ' format.

fracd This function takes the fractional derivative of an expression.

fraci This function takes the fractional integral of an expression.

c - for Complex

iz This function takes the single sided inverse Z transform of an expression
or equation.

zt This function takes the single sided Z transform of an expression or
equation.

cnv This function converts an expr or equ of d(y(x),x) form to y'(x) form.

icnv This function converts an expr or equ of y'(x) form to d(y(x),x) form.

zt - for Z transform

tb This table is required for the zt function to operate.

sf - for Special Functions

These functions are symbolic representations of some special functions. They are
not intended for numerical use.
 

s - for Summation

gen This function is similiar to Taylor, but produces an infinite sum using the
Summation sign. Can become very slow for some functions as higher
derivatives can become very complicated. A good example is:
s\gen(e^(x),x,0)
which produces:
Sigma(x^k/k!,k,0,oo)
where Sigma is the summation sign and oo is the infinity symbol.

inofc This function produces the interval of convergence of a sum as returned
by "gen".

xpn This function expands out one term of a sum as returned by "gen".

sub This function substitutes one index for another in a sum that is returned
by "gen". Is used mostly to shift the index by one in either direction.

join This function is the inverse of xpn i. e. absorbs a term into a sum. Can also
be used to join two sums with the same index and limits into a single sum.

ggeo This function guesses at the nth term of a geometric sequence.

guess This function guesses at the nth term of a algebraic sequence.

recur This function trys to find the recursive sequence.

split This function splits a sum aggregate into the sum of two sum aggregates of
even and odd terms.

de - Differential Equations

d This function takes the implicit derivative of an equation or expression
in a single independent variable and expresses the derivatives in ' format.
Any variables that start with any of "ijklmnabcd" are assumed to be
constant.

cnv This function converts an expression or equation in d(y(x),x) format to
' format.

ds This function is the same as the "solve" function, but allows an expression
in the variable argument i. e. it can solve for an expression.

selsol This function selects a solution from a set of solutions that are returned
by solve or csolve.

mapsol This function maps a set of solutions over an equation or expression.

psol This function changes a multibranch solution to a primary branch
solution by setting all @nx and @x variables to zero.

soltovec This function changes a multibranch solution to a vector of solutions.

p - Polynomials

cfactors This function returns a LIST of the complex factors of an expression of
a given variable.

coef This function returns a LIST of coefficients of a polynomial.

cubic This function returns the exact roots of a third degree polynomial.

evalrt This function converts the cubic answer to a full solution.

div This function divides one polynomial by another and returns the
answer and remainder.

eqof This function returns the polynomial equation for a list of roots i. e. the
output of zeros, cZeros or cubic.

delItem This function deletes an item of a list.

findPoly This function takes a expression and produces a polynomial whose root
is the expression. Has step by step capability.

minMaxL This function returns the minimum and maximum elements of a list
as a two element list {min,max}.

quartic This function returns the exact roots of a fourth degree polynomial.

roots This function solves for the roots of a polynomial like czeros, but
returns a matrix of solutions in the first row and duplication count
in the second row.

sortL This function sorts a list of numeric elements into numeric order.

nt - Number Theory

divisors This function makes a list of the divisors of an integer.

emod This function distributes the "mod" function over all elements of an
equation or expression.

grptab This function returns a matrix of the operation table given an
operation and mod value to use.

isolve This function solves an integer equation of two variables for small
integer solutions.

order This function given "a" and "m" returns the smallest "n" for which
a^n=1 mod m.

power This function raises "a" to the "n" power mod "p". Will handle larger
values than the "^" on the keyboard.

sqrt This function returns the integer square root of "a" mod "m".

phi This function of "n" returns the number of numbers < n and relative
prime to it. Known as "Euler's function which has the characteristic
that a^phi(n)=1 mod m (a,m)=1. The greek character Phi on the calculator..

ut - Utilities These are general use functions that are called by other functions or
are of use by the user.

arbn This function returns the next available arbitrary integer variable.

arbr This function returns the next available arbitrary variable.

form This function converts an expression of a variable to a generic form to be
used in a lookup table (see lkup).

lkup This function looks up an aggregate (integral, sum, product, limit) or function
call in a data variable table and substitutes the current variable in the
table value and returns that expression. A user can create his own tables
with the data editor.

sstofc This function converts subscripts (a[n]) to function calls (a(n)).

sub This is a function that allows you to substitute one expression for another
expression in an expression or equation. Will usually work for cases where
the "|" operator will not.

toAlpha This function converts a greek variable or string to it's alpha equivalent.

toGreek This function converts an alpha variable or string to it's greek equivalent.

getvars This function returns a list of single character variable names that are
assigned a value.

custm This program defines a custom menu to be used to access the functions
of this package. Use the "clear" key to remove the help info of the involked
menu.

is - Test functions

alpha This function returns true if the arg is an alpha character.

numeric This function returns true if the arg is a numeric character.

oper This function returns true if the arg is an operator character.

agregate This function returns true if the arg is an aggregate character.

var This function returns true if the arg is a variable name.

const This function returns true if the arg is a variable that starts with
any of the following letters: ijklmnabcd

nexpr This function returns true if the arg is a numeric expression.

greek This function returns true if the arg is a greek character.

trig This function returns true if the arg expression contains any trig
function calls. This includes the co-functions.

varof This function returns true if the input variable is contained in the
input expression.

cbl - This set of expressions and functions allows the user to code CBL function calls
using symbolic names in place of numbers. Hopefully this will make them easier
to remember.

If you have trouble with any of these functions, please contact me via email at

gefisher@mac.com

Use these routines at your own risk as I am not responsible for any lost data that
could result from use of this software.

Enjoy,
Glenn E. Fisher
University of Houston - Retired.