PawCalc User's Manual

Covers PawCalc version 1.0

Last updated February 13, 2000. See the PawSoft web page for information on the latest version, or send e-mail to pawsoft@mail.com. Comments or bug-reports are welcome.

[Description] [Installation] [Registration] [Using PawCalc] [Known Bugs] [Maintenance Notes]

Description

PawCalc is a scientific programmable calculator for the PalmOS 2.0. Copyright © 1999, 2000 Poul F. Williams. All Rights Reserved.

PawCalc's main features are:

PawCalc 1.0 is distributed as shareware -- don't forget to register you copy of PawCalc.

Please read the LICENSE file before you install PawCalc.

[Top]

Installation

Before you install PawCalc, make sure that:

PawCalc and MathLib are distributed as standard PRC files. Install "PawCalc.prc" and "MathLib.prc" like regular application programs using your favorite install tool, for example HotSync for Windows.

To use PawCalc as your default calculator:

This also allows you to use PawCalc as a kind of popup calculator. Whenever you need to perform a calculation, just press the calculator button on your Pilot silkscreen. When you are finished, select 'quit' in the menu to return to your previous application. (Actually the previous application is started again, but since most applications save their current state on exit, this works fairly well.)

[Top]

Registration

PawCalc is shareware. You have 2 (two) weeks to evaluate it. After that you need to register to continue to use PawCalc.

The advantages of registration are:

When you register you will receive a registration code. Enter the code at the registration code prompt (which appears when you start PawCalc) and press the Register button. That's it!

Registration Fees

Type of registration                    Fee in USD        Product ID
--------------------------------------------------------------------
1 copy for private, non-commercial use     $10              131942
1 copy      				   $25              131887
10 copies				  $200              131941

Be sure to check the current fees on the PawSoft web page.

You can pay by credit card (Visa, Eurocard/Mastercard, American Express, Diners Club), wire transfer, EuroCheque, or cash.

You can pay in either USD or EURO.

How to Register

The registration process is handled by ShareIt! You can register on their secure Internet site, via phone, fax or postal mail.

Via Internet

Go directly to PawCalc's Registration Page. Alternatively you can visit http://www.shareit.com and enter the Product ID.

Via Phone

Call +49-221-2407279. US and Canadian customers may also order by calling 1-800-903-4152.

Via fax or postal mail

Please print out the following form, and fax or mail it to:

ShareIt!
element 5 AG
Sachsenring 69
50677 Koeln
Germany

Phone:  +49-221-2407279
Fax:    +49-221-2407278
E-mail: register@shareit.com

US check and cash orders can be sent to the US office:

ShareIt! Inc.
PO Box 844
Greensburg, PA 15601-0844
USA

Phone: 1-724-850-8186
Fax:   1-724-850-8187
Registration form for PawCalc
Registration form for PawCalc
-----------------------------

Product ID:   131887        131941        131942   (circle one)

Last name:    __________________________________

First name:   __________________________________

Company:      __________________________________

Street and #: __________________________________

City, State:  __________________________________

Postal code:  __________________________________

Country:      __________________________________

Phone:        __________________________________

Fax:          __________________________________

E-Mail:       __________________________________


*** Please do not forget to include your e-mail address. ****
*** We will use e-mail to communication with you.        ****


How would you like to receive the registration code?   (circle one)

e-mail   --   fax   --   postal mail


How would you like to pay the registration fee?   (circle one)

credit card  --  wire transfer  --  EuroCheque  --  cash


Credit card information (if applicable)

Credit card:   (circle one)

Visa  --  Eurocard/Mastercard  --  American Express  --  Diners Club

Card holder:  __________________________________

Card No.:     __________________________________

Expiration Date:  ______________________________

Date / Signature: ______________________________
[Top]

Using PawCalc

Getting started

When you start PawCalc for the first time, you will see the registration screen. If you have registered, enter the registration code and press the Registration button. Otherwise press the Evaluate button.

The main window in PawCalc consists of a number of buttons, two underlined lines for entering mathematical expressions, a field for displaying the results, and four popup lists.

PawCalc accepts mathematical expressions in the standard methematical notation -- slightly adapted due to the character-based interface. Press the EXE button to evaluate an expression.

Example:

The popup list just above the '^' button gives you access to the last 25 expressions.

Buttons

This subsection describes each button. Some of them have obvious functions, like the '0'-'9' buttons. The rest are explained here. You can influence which buttons are shown on the screen by selection the 'Layout' menu.

Button Description
/ * - + Insert the corresponding operator. If this is the start of an expression, 'ans' is inserted first.
C Clear the current expression.
ans Insert the text 'ans' -- 'ans' is a variable containing the value of the last expression.
~ Monadic minus -- the same as the '-' button except that 'ans' is never inserted.
<- 'Backspace'
^ Raise to a power (2^3 = two to the power of three = 8).
(blank) Insert a space
STx Store the result of a calculation in variable 'x'.
RCx Insert variable 'x' in the expression.
STO Store the result of a calculation in a variable.
RCL Insert a variable in the expression.
num, sum, sos Statistical registers for number, sum and sum-of-square.
ave, var Statistical functions to calculate average and variance.
ADD, REM Add or remove elements from the statistical registers.
CLR Clear the statistical registers.

A variable name consists of one letter followed by zero or more letters and digits. No spaces or punctuation marks are allowed. Be careful not to name variables the same as constants or functions, as the variables would then be 'invisible'.

Numbers

Use '.' as the decimal point regardless of your Palm Pilot preferences setting. Use 'e' to indicate exponentation:

Example:

Binary numbers are prefixed by '0b', octal number by '0', and hexadecimal numbers by '0x'.

Example:

Functions

In the top right corner of the screen you will find a popup list named 'func'. The list gives you access to a number of functions for trigonometry (with inverse and hyperbolic), logarithms, and exponentiation. You will also find miscellaneous functions like sign, absolute value, and rounding.

All functions for trigonometry work in degrees or radians depending on the settings in the preferences.

The functions 'comb(n,r)' and 'perm(n,r)' return the combinations and permutations, respectively, of r out of n.

The function 'bessel(n,b)' calculates the Bessel function of the first kind of order n and argument b. The order n must be an integer.

The function 'gamma n' calculates the gamma function. The same functionality can be obtained by the faculty function: gamma(n+1) = n!.

The functions 'erf' and 'erfc' are the error function and the complementary error function.

Use '_' (underscore) to take the root of a number. For example, enter '16_2' to take the square root of 16.

Constants

PawCalc contains a series of mathematical, physical, and chemical constants. You can access the constants through the 'const' popup list located at the top of the screen. The constants are as follows:

Name Abbr. Value (incl. unit)
Pi pi 3.14159265358979323846264338327950
e e 2.71828182845904523536028747135266
Euler's Constant euler 0.57721566490153286061
Golden Ratio golden 1.61803398874989484820458683436564
Bohr Radius a0 0.529177249e-10 m
Speed of Light in Vacuum c 299792458 m/s
Coulomb Constant Cc 8.9875517873682e9 N m²/C²
Permittivity of a Vacuum e0 8.8541878176204e-12 F/m
Elementary Charge ec 1.60217733e-19 C
Faraday's Constant F 96485.309 C/mol
Earth Acceleration due to Gravity g 9.80665 m/s2
Gravitational Constant Gc 6.67259e-11 Nm²/kg²
Planck's Constant h 6.6260755e-34 J/Hz
Boltzmann's Constant k 1.380658e-23 J/K
Permeability of a Vacuum µ0 1.2566370614359e-6 N/A²
Mass of an Electron Me 9.1093897e-31 kg
Mass of a Proton Mp 1.6726231e-27 kg
Mass of a Neutron Mn 1.6749286e-27 kg
Avogadro's Constant Na 6.0221367e23 mol-1
Molar Gas Constant R 8.314510 J/(mol*K)
Rydberg's Constant Rinf 1.0973731534e7 m-1
Atomic Mass Unit u 1.6605402e-27 kg

Unit Conversion

The 'unit' popup list at the top of the screen gives access to conversions between around a hundred different units. The units are grouped in the following categories: Angle, Area, Energy, Length, Power, Pressure, Speed, Temperature, Time & Frequency, Volume, and Weight & Force.

Example:

In each unit category, a base unit is chosen. The base unit is chosen from the SI system of units. All units are converted to and from the base unit. For example, the base unit for length is meter. So, to convert from 5 km to miles, we first convert 5 km to 5000 m and then convert the 5000 m to (approx.) 3.106856 miles.

PawCalc uses the following units and conversions:

Angle
-----

Base unit: rad

radian			rad		1 rad			exact
degree			deg		pi/180 rad		exact
minute			min		pi/(180*60) rad		exact
second			s		pi/(180*60*60) rad	exact
revolution		rev		2*pi rad		exact


Area
----

Base unit: m²

square mm		mm²		1e-6 m²			exact
square cm		cm²		1e-4 m²			exact
square meter		m²		1 m²			exact
square km		km²		1e6 m²			exact
square inch		in²		0.00064516 m²		exact
square foot		ft²		0.09290304 m²		exact
square yard		yd²		0.83612736 m²		exact
square mile		mi²		2589988.110336 m²	exact
acre			acre		4046.8564224 m²		exact
hectare			ha		10000 m²		exact


Energy
------

Base unit: J

Joule			J		1 J			exact
calorie			cal		4.184 J			exact
horsepower hour		hph		2.68452e6 J		approx
kilo Watt hour		kWh		3.6e6 J			exact
British thermal unit	btu		1054.35 J		approx
electronvolt		eV		1.6021917e-19 J		approx


Length
------

Base unit: m

nanometer		nm		1e-9 m			exact
micrometer		µm		1e-6 m			exact
millimeter		mm		   0.001 m		exact
centimeter		cm		   0.01 m		exact
meter			m		   1 m			exact
kilometer		km		1000 m			exact
inch			in		   0.0254 m		exact
foot			ft		   0.3048 m		exact
yard			yd		   0.9144 m		exact
mile			mi		1609.344 m		exact
Ângström		Â		1e-10 m			exact
nautical mile (int'n.)	INM		1852 m			exact
astronomic unit		AU		1.49597870e11 m		approx
parsec			pc		3.08572e16 m		approx
lightyear		ly		9.46055e15 m		approx


Power
-----

Base unit: W

Watt			W		   1 W			exact
Joule per second	J/s		   1 W			exact
kilo Watt		kW		1000 W			exact
calorie per second	cal/s		   4.184 W		exact
horsepower (mechanical)	hp		 745.700 W		approx
btu per hour		btu/h		   0.292875 W		approx


Pressure
--------

Base unit: bar

bar			bar		1 bar			exact
millibar		mbar		0.001 bar		exact
Pascal			Pa		1e-5 bar		exact
hecto Pascal		hPa		0.001 bar		exact
atmosphere		atm		1.01325 bar		exact
pound force pr sq. in.	psi		1/14.5038 bar		approx
mmHg (at 0 degree C)	mmHg		0.00133322 bar		approx
inHg (at 0 degree C)	inHg		0.0338638 bar		approx


Speed
-----

Base unit: m/s

meter per second	m/s		1 m/s			exact
kilometer per hour	km/h		1/3.6 m/s		exact
mile per hour		mph		0.44704 m/s		exact
foot per second		ft/s		0.3048 m/s		exact
knot			knot		1852/3600 m/s		exact


Temperature
-----------

Base unit: K

Kelvin			K		1 K			exact
Celsius			°C		°C = K - 273.15		exact
Fahrenheit		°F		°F = 9/5 * °C + 32	exact


Time / Frequency
----------------

Base unit: s

nano second		ns		1e-9 s			exact
micro second		µs		1e-6 s			exact
milli second		ms		1e-3 s			exact
second			s		1 s			exact
minute			min		60 s			exact
hour			h		60*60 s			exact
day			d		24*60*60 s		exact
week			week		7*24*60*60 s		exact
year (calender)		year		365*24*60*60 s		exact
Hertz			Hz		Hz = 1/s		exact
kilo Hertz		kHz		kHz = 1e-3 / s 		exact
mega Hertz		MHz		MHz = 1e-6 / s 		exact
giga Hertz		GHz		GHz = 1e-9 / s 		exact


Volume
------

Base unit: l

liter			l		   1 l			exact
cubic meter		m³		1000 l			exact
milliliter		ml		   0.001 l		exact
cubic centimeter	cm³		   0.001 l		exact
cubic inch		in³		   0.016387064 l	exact
cubic foot		ft³		  28.316846592 l	exact
cubic yard		yd³		 764.554857984 l	exact
bruttoregisterton	BTR		2831.6846592 l		exact
fluid ounce		floz		1/33.814023 l		approx
pint			pt		   0.4731632 l		approx
quart			qt		   0.9463264 l		approx
gallon (US)		gal		   3.7854118 l		approx
barrel (42 US gallons)	bbl		 158.98284 l		approx
cup			cup		   0.2365816 l		approx
tablespoon		tbsp		   0.01478635 l		approx
teaspoon		tsp		   0.004928783 l	approx


Force & Weight
--------------

Base unit: kg

milligram		mg		1e-6 kg			exact
gram			g		0.001 kg		exact
kilogram		kg		1 kg			exact
metric ton		t		1000 kg			exact
short ton (2000 lb)	ton		907.18474 kg		exact
UK (long) ton (2240 lb)	UKton		1016.0469088 kg		exact
grain (1/7000 lb)	grain		0.00006479891 kg	exact
ounce			oz		0.028349523125 kg	exact
pound (16 oz)		lb		0.45359237 kg		exact
atomic mass unit	amu		1.6605402e-27 kg	approx
Newton			N		1/9.80665 kg		exact
dyne			dyn		1/9.980665e5 kg		exact
kilogram force		kgf		1 kg			exact
pound force		lbf		0.45359237 kg		exact

Truth Values

PawCalc considers a value of zero to be false and any other value to be true. When returning a truth value, PawCalc always uses zero for false and one for true.

You can compare values using =, <, >, <>, <=, and >=.

You can do math on truth values using & (and), | (or), and ! (not).

Example:

Programming

You can program PawCalc in a simple imperative language. Write your programs in the build-in Memo Pad application. Place them in a category named "PawCalc".

A program consists of a head and a body. The head consists of the program name and a list of parameter variables. The body is enclosed in curly brackets ('{' and '}') and it consists of a number of program statements.

There are two types of variables: local and global. Local variables are only known within the scope of a program. Global variables are known across programs. In case of a name conflict between local and global variables, the local variable is used.

PawCalc understands the following program statements:

A number of example programs are available here.

Place the programs in the PawCalc category in your Memo Pad application. Run them by typing their name and argument list.

Example:

Within programs angles are by default measured in degrees. You can change that with the 'pref' command. This has no influence on the global preferences.

There are a couple of limitations for programs in PawCalc:

Preferences

You can set the preferences by selecting the menu edit|preferences. Here you can set the number of digits after the decimal point (0-9) and the display mode (normal, scientific, or engineering). You can choose to remove trailing zeros when displaying results. These options only affect the way PawCalc displays numbers. All calculations are performed with the full precision. This also applies to the 'ans' variable, which contains the last result with full precision.

Furthermore, you can toggle between degrees and radians for trig functions. (This has no effect on trig functions called from within programs. Use the 'pref' command instead.)

NB: At most 14 digits in total are displayed for a result.

Precision

PawCalc uses IEEE 754 double precision numbers. This gives PawCalc a precision of around 14 digits, and exponents in the range -300 to +300.

Take care to stay within these limits. This also applies to intermediate calculations such as the implicit conversion to and from base units in unit conversions. For example, to convert from parsec to lightyears, it is enough to multiply by approximately 3.26. However, PawCalc converts from parsec to meters and then from meters to lightyears resulting in multiplication by 3.08e16 and then division by 9.46e15.

Not all real numbers have a IEEE 754 representation. Instead such real numbers are approximated by the nearest IEEE 754 number. Such approximations lead to small errors. For example, the decimal representation of the fraction 1/7 is 0.142857142857... where 142857 repeats forever. Try calculating "1/7-0.142857142857". The result is 1.42857948e-13. The last three digits are 948 and not 142.

Error Messages

After evaluating an expression, PawCalc writes the result on the screen. In case of a syntactical error or a non-finite result, PawCalc displays the string 'Error'.

[Top]

A Word about MathLib

MathLib is a free shared library that can be used by any OS 2.0+ Pilot program that needs IEEE 754 double precision math functions. It's distributed under the terms of the GNU Library General Public License, and is freely available with full source code and documentation at the MathLib Information web page. It's not a part of the PawCalc program, and you're not paying anything for its use; a copy is simply included in this distribution for your convenience.

[Top]

Known Bugs

In some cases, the trig functions, the error functions, and other functions return results that are slightly off. For example, in degree mode, 'sin 360' is not 0 but -1.133e-15.

Expressions are evaluated from left to right. Because of the limited precision, 1+1e-10-1 is not equal 1-1+1e-10.

It is possible to create 'hidden' variables by naming them the same as constants and functions. No check is performed to disallow this.

[Top]

Maintenance Notes

Version 1.0, February 13, 2000:

Version 0.9.04 beta, January 9, 2000:

Version 0.9.03 beta, December 21, 1999:

Version 0.9.02 beta, December 11, 1999:

Version 0.9.01 beta, September 21, 1999: Fixed errors in the display function.

Version 0.9 beta, August 30, 1999: First beta release.

[Top]
Copyright © 1999, 2000 Poul F. Williams. All Rights Reserved.