Overview
EasyCalc is a graphing, scientific calculator for Palm's and PalmPilots. Of
course it has all the capabilities and ease-of-use of the built-in "4-Banger"
that comes with the PalmPilot, but also includes trigonometric functions,
financial functions, complex numbers and graphing. In addition, you can
define your own
functions and variables with names up to 10 characters long and nesting up
to ten levels deep. Values may range between 1E-100 and 1E250.
Other features:
- Multiple screens easily categorize functions
- "ANS" button recalls last result
- Scroll-able history
- Scrolling list for functions
- Zoom-in and Zoom-out for graphs
- Plot multiple functions at a time
- User definable axis
- Radian, Degree or Grad mode
- Hex, Decimal, Binary or Octal computing modes
- Normal, Scientific or Engineering output modes
- User selectable precision to 15 digits
- Automatic match for brackets
- Full clipboard support
- Complex numbers
- Normal, polar and parametric graphs with support for tracing
the graphs and table mode
- Support for color palms
- and many more coming in future versions..
Installation
I received many emails from you that you cannot find graphs in EasyCalc.
You will now find 3 programs in EasyCalc ditribution. These 3 programs are
completely exchangable, but they do not do the same. The largest one,
calc_all.prc (over 110K) contains all features (graphs and special
functions). File calc_graph.prc doesn't contain special functions but
contains graphs. And file calc_small.prc contains neither graphs nor special
functions (it is abou 70K). Install only ONE of these programs. Every new
installation of any of these program will rewrite the previously isntalled
one.
Basic calculations
Let's start with something very simple. After starting the calculator, you
should see something like this:

And now let's compute a very simple thing: 3+3=6. Type in '3+3' using
either the buttons on the screen or graffiti and press 'EXE' or write the
newline graffiti. '6' will appear in the result area. And now to something
more complicated - let's compute '3*sin(pi/2)'. First change to the
'Scientific' screen - tap the 'S' in the top right corner or use menu.

Now you can easily write in '3*sin(pi/2)' and press 'Exe'. You can
change between the screens, if you don't like graffiti.
You can see somewhat
shorter expression on the screen-shot - EasyCalc doesn't require closing
brackets ('sin(pi+1' is interpreted as 'sin(pi+1)'), and supports shortened
writing of multiplication - like '3pi' or '6e'. The priority of the
hidden multiplication operator is very high, that's why you can easily
write 3^6pi and 3^(6*pi) gets executed. The priority of an explicitly written
multiplication operator is as expected.
Before proceeding - try
tapping the small black arrow to the right of the input field. What you see
is history list, currently holding 15 last executed expressions. You may
wonder, what is the Ans button for? It's for the last computed
result. And the ans variable gets inserted automatically whenever you
are on the beginning of the line and press some 'operation' button. Try
writing sin(pi) and press Exe. Now tap a button +. On
the screen appears ans+. Now if you complete the expression (e.g.
with 1) end press Exe, you have effectively computed
sin(pi)+1.
Now to some of the things you can see on screen. The 'Rcl' is for fast
access to variables, 'F' is for fast access to functions and 'H' stands for
history.
Trigonometric calculations

There are some comfort functions for working with degrees and radians. They
are located in a small menu, that appears when you click the 'M' on the
right side of the results field. It features - among others - the '->Degree'
and '->Radian' function, that changes the output to a more readable form. Of
course you can try the 'Copy' option and Paste it into the input field - and
it works. The degrees are written somewhat easier this way:
. Of course only if you learn, how to
write the degree special character. The Degree/Radian/Grad
can be switched in Preferences.
Preferences

- Radian/Degree/Grad mode change - this change applies to all functions.
- Decimal/Binary/Octal/Hexadecimal - this setting applies to output formatting
- Integer input
recognition
and displaying functions, but doesn't change computing behavior. This means,
that expression '3.14159' isn't recognized in non-floating modes,
because '3.141..' is floating point number, while 'pi' outputs correct
result regardless of mode, because 'pi' is a floating point constant.
Generally you do not want to turn this option on, unless you want to work
with base conversions, because floating point output formatting prints at
most 10 digits, but the integer number formatting will print always the
whole number (this makes sense only for 32-bit numbers converted to Binary).
- Strip zeros - output '3.100' or '3.1'
- Match ()'s - if on, then tapping on the function button automatically
inserts closing bracket and moves cursor position between the brackets
- Force complex nums - because complex operations are slow and usually
less precise, all computation are done as 'real' by default. This doesn't
confine you in the real sphere at all, because the calculator automatically
switches to complex operations whenever it encounters complex numbers, but
doesn't do them by default. If this is off, then sqrt(-2) will give you an
error, but sqrt(-2+0j) gives a complex result - because of the automatic
fall-back to complex numbers. When this switch is on, sqrt(-2) will be
automatically return complex result.
- Reduce precision - personally I don't like things like sin(pi)=1E-15.
This is unfortunately the way most computers work and I can't do much about
it, it is the limitation of floating point. If this is checked, EasyCalc
displays numbers smaller then 1E-15 as zero (but you can still preform calculations
with them). If you uncheck this option, you can see numbers up to 1E-100.
- Show units - If checked and the engineer mode is selected, numbers get
appended a unit to them at the output (e.g. 1E6 -> 1M ).
Integer calculations
Tap the 'I' on the top and change to the 'Integer' screen:

EasyCalc works with 32-bit unsigned integers and supports simple binary
operations - AND(&), OR(|), ShiftLeft(<) and ShiftRitght(>). It
also supports base conversions. If you do not check the
Integer input in preferences, all numbers will be treated as 'float' and for
float numbers are not defined the and,or,shl and shr operations.
Write in some number and press the 'Exe'
key and the number will appear in the Result area. Now tap on the base you
want to convert to and the number will reconvert. If you convert from
'Float' to some integer base, the number gets rounded. DO NOT FORGET TO
CHECK THE MODE BACK TO DECIMAL AND UNCHECK THE INTEGER INPUT,
you can be surprised to see BAD results if
you do not (3/2 in integer is not the same as 3/2 in floating point). BTW:
If the result is longer than the result field, a small arrow appears on the
right and you can scroll the field by touching the field and moving
with the pen left/right.
Complex calculations

EasyCalc supports all ordinary computations with complex numbers (please,
write me if you find some operation EasyCalc doesn't support, it is possible
I forgot some of them). The 'i' works exactly as expected. On the second
figure you see the result of number conversion in the 'M' menu.
Variables and functions
EasyCalc supports unlimited number of variables and functions.
Variable (or function) name consists of lower-case letters and
can be up to 10 characters long. Variables and functions share the same
address space, so if you define a variable with same name as function, the
function will be overwritten. Variable is defined simply by executing
'name=value', function is defined by executing 'name()="code"'. The 'name'
cannot be 'pi', 'e' and 'x' as those are reserved identifiers.
And now some examples: writing a=31 and
tapping the Exe key will assign a number
31 into variable a. From now you can treat the a variable like
other constants. If you now write a=3*a, variable a will contain
a number 93.
Let's try to define a simple function now: write f()="x^2" and press
Exe. From now you can use this a function - f(3) will return a
result of 9. You can easily delete/modify all defined functions and
variables by tapping the 'DataMgr' in the 'M'-menu on the right of the result
field.
Financial calculator
Introduction to financial calculations
Basic financial calculation can be characterized this way:
You have some money in the bank (PV, present value). X-times a year(P/YR,
payments per year) you deposit some money (PMT, payment) into you bank
account. Every year the bank adds some amount of money, it's a percentage of
the amount that is currently on your account and the percentage is called
interest (IT).
After a given number of years (NP, Number of Payments) you decide to withdraw
your money from bank. What you will get from bank is a future value(FV).

This is a basic implementation of financial calculator. You work with 6
different variables:
IT - interest pr. year. Note: from the 1.01 version this should be a
per-cent number, e.g. 12% interest should be written as i=12 and not as
i=0.12, like in earlier versions.
NP - number of payment-periods
PV - present value
PMT - payment (annuity) every period
FV - future value
P/YR - payments per year
and the Begin/End buttons, that affect when is the payment done - in the
beginning of the year or at the end (usually at the end).
Now you can try defining 5 variables and by tapping on the name of the 6th
it gets computed. Let's try an example:
By tapping on the buttons 'Undefined' near names of corresponding variables
you can enter values for every variable. Now most of those
'Undefined' messages should have disappeared. If you tap on the name of the
variable you wanted to compute, a notice 'Please wait' will appear in the
middle of the screen
indicating, that the calculator is computing, and you'll be able to
read the result as soon as the sign disappears.
Graphs
EasyCalc can display functions on graph.It currently supports normal
function graphs, polar and parametric graphs.
Let's begin with drawing a simple graph. Go to graph preferences
(tap 'G' and then the letter 'P' or 'menu->Graph->preferences') and set it
exactly as you can see it on the screen-shot.

Now exit the preferences and go to setup (tap 'S' or 'menu->Graph->Setup
funcs'). Tap the blank space on the right of 'Y1' and enter "x^2-4". Exit setup
and look at the graph.
If you want to delete a function or graph an already existing one, tap on
the function identifier (Y1,r1...) and a popup menu appears. Select 'None'
to hide a function, 'User' to create a special function for this graph (the
same one, as when you tap to the right of the identifier) or choose an
already existing function.

What can you do with the graph screen? If you tap on the graph and move the
pen, the
graph moves too. After you lift the pen, the graph redraws. The '-' button
is for 'zoom out' and the '+' button is for 'zoom in' (press the '+' button
and draw a rectangle, where do you want the new screen to be).
If you want to read the graph values, go to Menu->graph->table mode, and
what you read are values of the parameter (x) and values of f(x).

You may want to trace a function like in the older version of EasyCalc. Tap
the 'T' on the right, select a function and tap on the screen. This works
perfectly for normal functions, but works somewhat worse for Polar and
doesn't work at all for Parametric functions. That's why you can use up/down
arrows and/or the 'Go' button to draw a cross directly on some value.
Hints
- If you have selected text on screen and tap a function button (e.g. sin,
but a plain '(' would do), the selected text will be inserted into the
function.
- Remember that you can still use the on-screen keyboard anytime you need
to input numbers. This is very handy in the 'GoTo' dialog when you are
tracing function.
- You may experience strange results when graphing functions do not have
some values defined, e.g. tan(x) when you zoom-out. There is no way I can
fix it if I do not want to make it considerably slower. You can make it
slower yourself, when you draw this as a parametric graph (set 'X=x' and
'Y=tan(x)'. Then you can choose the T-step small enough to let the graph
draw exactly as you expected..
Other functions
EasyCalc can guess a number - suppose you just computed 'acos(0)' and you
don't know, what the result means. Use the M->GuessIt and it will tell
you, that you just got 'pi/2'.
There are some undocumented functions:
- % - modulo operator
- ' xor ' (space,'xor',space) or the 'yen' character - xor
- fact() - computes factorial
- ipart() - the whole part of a number
- fpart(x) - x-ipart(x)
- ncr(),npr() - combinations and permutations, these functions accept
2 parameters, e.g. ncr(3:1)
- fzero - compute a 'zero' of a function in a given interval. This
function takes 3 parameters - minimum, maximum, function. E.g:
fzero(0:4:f()), where f()="x^2-4" will return '2' as a result. You
can write it shorthand as fzero(0:4:"x^2-4").
- EasyCalc with special functions supports these functions: gamma(z),
beta(z:w), igamma(a:x), erf(x), erfc(x), ibeta(a:b:x), besselj(n:x),
bessely(n:x), besseli(n:x), besselk(n:x), elli1(m:phi), elli2(m:phi),
ellc1(m), ellc2(m), sn(m:u), cn(m:u), dn(m:u). If you want additional help,
please look in specfuncs.tex that is included with the installation.
Contact, Newest information etc.
It might be useful to read documents you get with EasyCalc, especially
'INSTALL'.
EasyCalc was written by Ondrej Palkovsky,
ondrap@penguin.cz. Latest
information is available on
http://easycalc.sourceforge.net.
I send many thanks to people who reported bugs and sent me language
corrections to this tutorial. This product is still changing and if you feel
that you encountered a bug (including an error in this tutorial, english is
not my mother language), please send me a note, I'll be happy to fix it.