Formulator

Copyright Psion PLC 1989

All rights reserved. This manual and the programs referred to herein are copyrighted works of Psion PLC, London, England. Reproduction in whole or in part including utilisation in machines capable of reproduction or retrieval, without the express written permission of Psion PLC is prohibited. Reverse engineering is also prohibited.

The information in this document is subject to change without notice.

Psion and the Psion logo are registered
trademarks of Psion PLC.

Psion Organiser II, Datapak and Rampak are
trademarks of Psion PLC.

**Please note that formulae provided in this
product are designed to illustrate the
utility and application of the Formulator.
Users must satisfy themselves as to the
validity and applicability of any individual
formula before use.**

Psion accepts no liability for loss, including consequential loss, arising from the use of the formulae contained herein.

Part No. 6100-0074

V1Apr89

**1 Getting started**
Running the formulator
A single-calculation formula
A multiple-calculation formula
Valid expressions
Leaving the formulator
**2 finding and saving formulae**
Saving a formula
Finding a formula
Erasing a formula
**3 Advanced features**
Decimal places
Intermediate results
Titles
**4 Using the supplied formulae**
Finding the formula you want
Copying a formula to device A:
Analysing a formula
Functions provided
**5 Using the formulator from opl**
**Appendices**
**A Error messages**
**B Supplied formulae**
**INDEX**

The Formulator can work out almost any
calculation that can be expressed as a
formula. On the Formulator pack there are
over 250 formulae. **You can use these
supplied formulae and you can also
enter your own extra ones.**

The supplied formulae cover a huge range of common calculation areas, including:

- Business, e.g. VAT calculations
- Finance, e.g. loan repayment
- Statistics, e.g. Poisson probability
- Mathematics, e.g. quadratic equations
- Physics and electronics, e.g. parallel resistance
- Chemistry, e.g. the ideal gas law
- Navigation, e.g. radar range
- Conversions, e.g. metric to imperial

To enter an extra formula of your own, you just type it in on one line. You only have to type it once - as you save it and use it again later. As a simple example, you could enter a formula to convert litres to pints:

PINTS=LITRES*1.76

Whenever you used this formula, the Formulator would ask you for a value in litres, and display the result in pints.

The Formulator occupies about 4K of Organiser memory, It works on all models.

Chapter 1 explains how to run the Formulator and how to enter and use your own formulae. Chapter 2 explains how to find, save and erase formulae. Chapter 3 has more detail about the format of complex formulae.

Chapter 4 explains how to use the supplied formulae, which are listed in Appendix B.

Chapter 5 explains how to use the Formulator in conjuction with OPL.

Note: The screen messages on the different Organiser models vary slightly - so your screen may not show exactly the same words as the examples in this manual.

To run the program:

- Insert the Formulator pack in either of slots B: or C:, and press ON/CLEAR from the main menu.

This adds the option "XFORM" near the end of the main menu.

- To select it, on a Model CM or XP just press X, and on Model LZ or LZ64 press X twice and then press EXE.

The prompt XFORM: appears, and you can use the Formulator. The screen shows:

Model CM or XP:

XFORM:_

Model LZ or LZ64:

__f 3:00p__
XFORM:_

Using the Formulator is similar to using the Organiser calculator. However, since you type words as well as numbers, the keyboard is normally set to letters.

Once you have added the "XFORM" option, you can if you wish remove the Formulator pack. If you do this, don't press ON/CLEAR when the main menu is displayed, as this removes the "XFORM" option and you then have to reload it from the pack.

In the introduction, there was a simple example formula to convert litres to pints:

PINTS=LITRES*1.76

- To try out thr Formulator, type this in after the "XFORM:" prompt and press EXE. (You have to use SHIFT to type numbers in a formula.)

You are then prompted for the number of litres to convert to pints, like this:

LITRES=

- Type in the number of litres. (The keyboard is automatically set to numbers when entering values.)

When you press EXE to enter the number, the screen shows the result. So if you entered the number 3, the screen shows:

PINTS=5.28

- Press SPACE and you are returned to the "XFORM:" prompt, with the formula ready to be edited or run again.

Normally, when you type in one of your own formulae you would save it for future use. This is covered in the next chapter.

When the Formulator runs a simple formula it evaluates the sum on the right of the equals sign, here LITRES*1.76, prompting you for the necessary values, here LITRES.

It then displays the result name (the text on the left of the equals sign), here PINTS, followed by the result it has calculated.

- Prompts names for input should begin with a letter and may contain letters, numbers and space characters.
- Result names may contain any characters, other than equals signs "=", colons ":" and commas ",".

The litres-to-pints formula from the previous section can be altered to produce a second result in gallons, as follows:

PINTS=LITRES*1.76;GALLONS=PINTS/8

This formula now contains two calculations, separated by a semicolon.

- Type this in at the "XFORM:" prompt.

If the formula from the previous section is still there, you can edit it in the usual way. Move around with the cursor keys (↑ and ↓ take you straight to the beginning and end of the line). Use DEL to delete characters, and just type in extra ones.

- Press EXE to run the formula.

As before, you are prompted to enter the number of litres to convert to pints. In the second calculation, GALLONS=PINTS/8, the value for PINTS from the first calculation is automatically used.

The results - in this case, PINTS and GALLONS - are displayed one to a line.

- Press SPACE to return to the XFORM: prompt, with the formula ready to be edited or run again.

This example shows how any result or input value in a formula, here the value of PINTS, can be used anywhere else in the formula. It is not even necessary to arrange the calculations in the correct order, the example could have been entered like this:

GALLONS=PINTS/8; PINTS=LITRES*1.76

When two or more prompts are required, they appear on the screen in turn, according to their position from left to right in the formula. This means that you can swap formulae around to change the order in which prompts appear.

- If a formula produces more results than there are lines on the screen, use ↑ and ↓ to move up or down the result list.

A formula may contain up to 16 different prompts and result names, and up to 16 separate calculations.

You can abbreviate any prompt or result name when you re-use it in a formula, as long as you use at least the first three characters of the name.

In the previous example, the second occurrence of PINTS could have been typed as PIN or PINT, like this;

PINTS=LITRES*1.76; GALLONS=PIN/8

The Formulator matches things like PIN and PINTS, whatever order they are in.

Take care not to accidentally use prompt names whose first three characters match. If, for example, you tried to run a formula containing prompts for both COST and COST2, the Formulator would treat them as one, and only prompt for COST2.

When entering a formula, or typing a number in response to a prompt, you can use any expression which OPL allows, just as you can in the calculator. For example:

2 2+3 $18 a hexadecimal number SIN(5) an OPL function PI**2 an OPL function DATAGET%:(2,3) a call to an OPL procedure

You should ensure that none of your prompts conflict with the numeric OPL functions "PI", "SECOND", "MINUTE", "HOUR", "DAY", "WEEK", "MONTH", "YEAR", and "RND", or with the logical operators "AND", "OR", and "NOT". The Formulator would evaluate these in the same way that OPL does.

Similarly, you should not use "M0" to "M9" as prompts as these clash with the names of the calculator memories.

See the chapter on operators in the OPL section of your Organiser manual for more detail of the mathematical syntax in OPL.

You can cancel the execution of a formula by just pressing ON/CLEAR when you are prompted for a number.

Note that pressing ON/CLEAR while the Formulator is running a formula may cause the Organiser to pause, just as it does in OPL. If you then press Q to Quit, you cancel the calculation; if you press any other key the calculation continues.

To leave the Formulator, just press ON/CLEAR at the XFORM: prompt. This returns to the Organiser's main menu.

If you then wish to free the memory used by the Formulator, remove the datapak and press ON/CLEAR.

You can save formulae and find them again to re-run at any time. Just as Find and Save on the main menu use a data file called MAIN, Find and Save in the Formulator use a data file called XFORM.

To try saving a formula, return to the XFORM: prompt and type:

FEET=METRES*3.28

- Press EXE to run it, then type the number of metres. The number of feet is displayed. Press SPACE to return the formula to the XFORM: prompt.
- Now press MODE to get this menu:
Find Save Erase

- Press S to select Save. The Save
prompt appears followed by the
current device name, here B:
SAVE B:FEET=METRES*3

- Use MODE again, it necessary, to select device A:, if you want to save the formula in the internal memory. At this point you can also, if you wish, re-edit the formula.
- Press EXE, and your formula is saved in the XFORM data file on device A:.

You can now run the formula again, edit it, or press ON/CLEAR to clear it

You can't have more than one formula in the XFORM data file which has the same left-hand side.

For example, if you have already saved the metres-to-feet formula above on A:, try typing in and saving this formula on A: too:

FEET=METRES*3.28; YARDS=FEET/3

As the first formula you saved also begins with FEET=, you aaked:

Overwrite Y/N

If you press Y, you delete the first formula and save this new one in its place. If you press N, you keep the first formula and do not save the new one.

There are two ways of finding formulae - a quick method and a menu method.

The quickest way to find a formula which has been saved is to:

- Type a search clue at the XFORM: prompt. This can't contain an equals sign - as it would be taken as a new formula. Press EXE.

The XFORM: prompt changes to a FIND prompt, followed by the device name, and the search starts on that device.

- If you wish to change the current device, press MODE. This not only changes the device but also starts searching there automatically.

For example, if you saved the metres-to- feet formula in the previous section:

- Type METRES at the XFORM: prompt.
- Press EXE to start the search.

If the device in use is not A:, use MODE to change device, and search there.

When a formula containing the search text that you typed if found it is displayed.

If the formula is the right one:

- You can now press EXE to run the formula, or ON/CLEAR to return to the XFORM: prompt to edit it.

If the formula is the not right one:

- Press ↓ to find the next formula containing your search clue.

Pressing ↑ returns to the previous matching formula. Once the end of the XFORM data filehas been reached, the search starts again at the beginning. If there are no formulae containing the search clue, this message is displayed:

Not Found

Pressing ON/CLEAR will in this case return to the XFORM: prompt with the search text.

To see all the formulae on a device, just press EXE at the XFORM: prompt and keep pressing ↓.

There is also a "FIND" option on the Formulator menu, which may be used as an alternative to the quick method.

It operates in th same way as Find on the main menu. You should use this option instead of the quick method if your search text contains an equals sign, or if you prefer to be able to use EXE instead of ↓ to search down the data file for further matches.

- Press MODE to get to the menu, then F or EXE.
- Use MODE if necessary to change device, then type your search text and press EXE.
- When you have found the formula you want, press ON/CLEAR to return with it to the XFORM: prompt. You can then run it or edit it.

LZ users should note that you cannot use the wild cards * and + to search in the Formulator.

The "ERASE" option on the menu acts in a similar way to the "Find" option.

- Press MODE then E when at the XFORM: prompt, and press MODE if necessary to change the device.
- Type a small part of the formula you wish to erase, and press EXE.

For example, to erase the metres-to-feet formula if you saved it earlier, make suure you're on device A: then type METRES or FEET.

The first matching formula is displayed.

- Use ↑ and ↓ until you find the formula you want to delete, You can also use MODE again at this point to change the device you are searching on.

When you have found the formula:

- Press DEL, and confirm this by pressing Y. The formula is deleted and the next matching one is displayed.
- Press ON/CLEAR to leave the "ERASE" option and return to the XFORM: prompt.

You can specify that a result from a formula is displayed to a certain number of decimal places.

- To do this, put a colon after the result name followed by the number of decimal places required (from 0 to 9).

For example, the following formula converts litres to pints, and displays the result to two decimal places:

PINTS:2=LITRES*1.76

This only affects the final display of the results, not the calculations, which are always performed to 12 digit accuracy.

You can also specify that a result is just to be used for intermediate calculations and not shown in the final display of results.

- To do this, just put a colon after the result name.

For example, when calculating the area of a triangle from the lengths of its sides, the value of half the sum of the lengths must be calculated, and then used several times in the final calculation. A suitable formula for this is as follows (but all on one line):

HS:=(S1+S2+S3)/2; AREA=SQR(HS* (HS-S1) *(HS-S2)*(HS-S3))

HS stands for half the sum of the sides. As it is followed by a colon it is only an intermediate result, and is not shown in the final display of results. S1, S2 and S3 are the three sides which are prompted for.

As mentioned in chapter 2, you can change the order in which values are prompted for by rearranging the formula. There may be cases, however, where it is difficult do this. You can then use a dummy intermediate result instead.

- To do this, use a colon with no name before it.

For example, to cause the value UNITS, to be the first prompt, even if normally it would appear near the end of the formula, you can begin your formula like this:

:=UNITS;

This dummy calculation uses an intermediate result with no name, purely to ensure that the name on the right of the equals sign (which would be used later in the formula) is the first value prompted for.

You can begin a formula with a title which is displayed before the list of results. This is very helpful as a confirmation to you when you find the formula, and it is ideal to use as search clue.

- Follow your title with a comma. A title may contain any characters, except those such as "=" which are significant.

In the supplied formulae, ">" is used to mean "to" in conversions. Following this style, you could rewrite the litres-to-pints formula like this:

LITRES>PINTS,PINTS=LITRES*1.76

When the formula is run, the title LITRES>PINTS is displayed before the list of results.

The formulae supplied on the Formulator pack are stored in an ordinary data file, called "XFORM". There is a list of them in Appendix B.

Most of the formulae begin ith a title, and if a formula is a conversion, "to" is represented by ">". For example, there are several formulae to convert between different units of volume, including one to convert from litres to other liquid unit; its title is Litres>. To find this formula:

- Just type: LITRES> at the XFORM prompt, and press EXE

If the current device is not the one containing the Formulator pack, use MODE to change to a different device and start using it.

The formula is displayed, scrolling round - you can use ← and → to control this.

- To run this formula, press EXE. (Or to see the other two formulae containing the search clue LITRES>, press ↓.)
- When you run the formula, enter a number of litres, then use ↓ and ↑ to examine the list of results.

The list includes the number of litres you specified, so you can check the value you typed. There are brackets round the word Litres. This is because Litres=Litres can't be used to force the Formulator to display Litres as a result, as this would be a "circular reference" (see Appendix A), so (Litres)=Litres is used instead.

You may want to copy some of the
supplied formulae from the Formulator
pack to the internal memory (device **A:**).

- Storing the formulae you want on
device
**A:**means you can remove the Formulator pack. - It also makes finding and saving formulae faster, and you don't waste Datapak space if you re-edit formulae.

Even if your Organiser has a lot of free
memory, it is not a good idea to copy the
entire "XFORM" data file to **A:**, since filling
up memory will affect calculation speed. It
is better to copy the formulae you want,
one by one. For example, you could copy
the supplied formula which converts litres
to other liquid units.

- First, find the formula on the Formulator Datapak by typing LITRES> at the XFORM: prompt. (Use MODE if necessary, to select and search on the device which contains the datapak.)

The formula is displayed.

- Press ON/CLEAR to return to the XFORM: prompt with the formula.

At this stage you can, if you wish, modify it to your own requirements.

- Now press MODE and S to enter the
"SAVE" option, and use the MODE key to select device
**A:**. - Press EXE, and the formula is saved in
the "XFORM" data file on device
**A:**.

You can now run or edit the formula
again. You can freely modify formulae on
**A:**, since the originals still exist as backup
on the Formulator datapak.

A few of the supplied formulae use OPL programs which are supplied on the Datapak. To copy these formulae to device A: and run them from there, either copy their OPL programs as well or leave the Datapak plugged in when you run them.

- The first thing in a formula is a title; the title ends in a comma.
- Semicolons separate the different calculations. Generally the order of calculations is from left to right.
- Each calculation contains a result name followed by an equals sign.
- If the result name is followed by a colon and a number, it will be displayed to that number of decimal places.
- If the result name is followed by just a colon, it is an intermediate result to be used in calculations but not to be displayed in the final list of results.
- The text on the right of the equals sign is the calculation. It may contain names whose values will be prompted for, and names whose values are calculated elsewhere in the formula.

See chapters 1 and 3 for more details.

If you wished to make substantial changes to the formulae, you could use the Psion Comms Link to transfer the XFORM data file to a desktop computer for editing. You can also modify the XFORM data file using OPL.

This is a list of the functions provided by the supplied formulae. The actual formulae are printed in the appendix.

The **titles** and **key words** which are useful
as search clues are printed in **bold** here.

- Try finding and running a few formulae to see the prompts they give display and the results they give.

If a formula does not quite suit your requirments, you can easily modify it and save the changed version on A:.

Note that although all calculations are performed to 12 digit accuracy, many of the constants used in the formulae have less than 12 digits, adjust them if you require greater accuracy

The data file begins with financial formulae. Some of these are specific to the U.K., but you can adjust them, if necessary.

They include conversion between **price**,
**net** and **VAT** (**UK 15%** sales tax); **mark up**
and **discount**; **compound interest**,
**current value**, **annuity** future and
current, **loan repayment** and **APR**,
**repayment mortgage**, **endowment
mortgage** and **take home pay**.

The UK 15% sales tax formulae (for VAT)
are followed by the corresponding
formulae for **France 18.6%**, **France 33%**,
**Germany 14%**, **Austria 20%**, **Portugal
16%**, **Spain 12%**, **Italy 18%**, **Belgium
19%**, **Holland 20%**, **Turkey 12%** and
**Morocco 19%**.

You can adapt the UK formulae for use with a US sales tax by replacing every occurrence of 15 in the formula by the correct percentage.

For the formulae involving interest rates, the prompt Incrs Per Year refers to the number of times per year the accrued interest is added to the capital sum - daily, weekly, monthly, quarterly or yearly.

The mortgage repayments calculate the repayments first with no allowance for tax, then under MIRAS, assuming a tax rate of 25%. Additional payments may be required, so you should consult the lending institution for the total cost.

The take home pay formulaa apply to the UK, in the years 1989/90, assuming non-contracted out N.I. contributions and tax in the 25% tax bracket - however, you can adjust it. Because of rounding errors and discrepancies between weekly and monthly N.I. contributions, the result may be out by a few pence.

Note that when a prompt ends with a % sign you should type in a percentage, not a fraction: e.g. to specify 75%, type 75, not 0.75.

The next formula is a number **converter**.
You can only give it as input a simple
decimal number, octal number (prefixed
by the letter 'O'), or hexadecimal number
(prefixed by '$'). It then lists the number in
all three notations.

Then comes a group of mathematical and statistical functions and formulae.

This includes **factorial**, **Gamma** function,
**Beta** function, **Bessel** function of the 1st
kind, **Euler** numbers, **Bernoulli** numbers,
Rieman **Zeta** function, and **Chebyshev**
**poly**nomial (1st and 2nd) for values
between zero and one; **binomial
dist**ribution, **binomial prob**ability,
**Poisson prob**ability, **chi**-squared
distribution, Student's **t dist**ribution and
**normal prob**ability.

Some of the above formulae may take some time to execute since they rely on the convergence of series.Remember that you can always exit from a calculation by pressing ON/CLEAR and Q.

The next group contains geometry
formulae. These are **triangle** sizes (**SAS** for
specifying side-angle-side, **SAA** for
side-angle-angle and **SSS** for
side-side-side), **triangle area**, **regular
polygon** (from **edge length**, **short radius**
and **long radius**), **circle**, **sphere**, and
**cone** (from **height** and **slant**).

There then follow conic formulae: two
formulae for calculating the Y and X of a
**parabola**, three for the Y, X and
eccentricity of an **ellipse**, and three for the
Y, X and eccentricity of a **hyperbola**.

Next come **asin**, **acos**, **hyperbolic**
functions, **sum arithmetic series**, **sum
geometric series**, **real quadratic**
(equation with real solutions), **complex
quad**ratic (equation with imaginary
solutions), **complex** arithmetic (**add**,
**subtract**, **multiply**, **divide**, **exp**, **sinh** and
**cosh**), **polar coords** (to and from
cartesian), **polar** arithmetic (**add**, **multiply** and
**divide**), **spherical coords** (to and
from cartesian), vector **dot product** and
vector **cross product**.

The following formulae are conversions. In each case, the units which are converted from are also the title of the formula, followed by a ">" character meaning "to". The titles are in groups here, each group separated by a "/".

If, for example, you want to convert from
metres to microns, you need the third
formula whose title is "**metres>**", the one
in the group which converts microns,
angstroms, and fermis.

**inches>**, **feet>**, **yards>**, **miles>**, nautical
miles (**nmiles>**), **metres>** and **km>**/
**fathoms>**, **yards>** and **metres>**/
**microns>**, **angstroms>**, **fermis>** and
**metres>**/
**Au>**(astronomic units), **light years>**,
**parsec>** and **metres>**/
**BMU>**, **points>**, **picas>**, **inches>** and
**cm>**/
**sq inches>**, **sq feet>**, **sq yards>**, **acres>**,
**sq miles>**, **sq metres>**, **hectares>** and **sq
km>**/
**fl oz>**, **pints>**, **gallons>**, **litres>**,
**US gallons>** and **barrels>**/
**cu inches>**, **cu feet>**, **cu yards>**, **cc>**
and **litres**/
**oz>**, **pounds>**, **stone>**, **CWT>**, **short
tons>**, **long tons>**, **kg>** and **tonnes>**/
**oz fine** or **troy>**, **oz avoirdupois>**, and
**gram>**/
**sec of arc>**, **min of arc>**, **degrees>** and
**radians>**/
**seconds>**, **minutes>**, **hours>**, **days>**,
**weeks>** and **years>**/
**MPH>**, **FPS>** (feet per second), **KPH>**,
**metres/sec>** and **knots>**/
**milesUKg>**, **milesUSg>**, and **kmLitres>**/
**poundals>**, **lbf>** and **newtons>**/
**dynes>** and **newtons>**/
**joules>**, **ergs>**, **calories>**, **therms>**, **btu>**
and **KWH>**/
**joules>**, **eVolt>**, **Hertz>**, **Kelvin>** and **kg>**/
**PSI>** (pounds per square inch), **Pascals>**,
**mmHg>**, **inHg>**, **Millibars>** and
**atmosphere>**/
**Tesla>** and **Gauss>**/
**Curie>** and **Becquerel>**/
**Rads>** and **Gray>**/
**Horsepower>** and **Watts>**/
**RPM>** and **Hertz>**/
**Fahrenheit>**, **Celsius(centigrade)>** and
**Kelvin>**/

electron masses (**em>**), proton masses
(**pm>**), neutron masses (**nm>**) and **Kg>**.

UK nautical miles have been used, which are equal to 6080 ft. International nautical miles are 1852 metres, so one UK nautical mile is approximately equal to 1.00064 international nautical miles.

IT calories have been used, equal to 4.1868 joules. Thermodynamic calories are 4.1840 joules.

The next section is concerned with
physical and chemical formulae. It covers
**Watts** (from Amps and Volts, Amps and
Ohms, and Volts and Ohms), **Joules** (from
farads and volts), **Farads** (from Joules and
volts), Volts (from amps and ohms), **Amps**
(from volts and ohms) and **Ohms** (from
volts and amps); **constant acc**eleration
formulae (where units are unspecified they
should be determined by the user),
including **velocity** (from either time or
distance), **distance** (from either time or
final velocity), and **energy** (from initial and
final velocity); some fundamental
relationships including **force** (from mass
and acceleration), **momentum** (from
velocity and mass), **final speed** when two
objects moving in the same direction
collide, **circular motion** acceleration (from
velocity and radius) and centripetal force
(from velocity, radius and mass); unit
definitions for **Joules** (from newtons and
metres) and **newtons** (from Kilograms and
acceleration); lens **focal length** (from
image and object distance) and **image
dist**ance (from object distance and focal
length); **pendulum period** (from
pendulum length); **earth satellite** velocity
and period (from height); **Resistance** value
of two resistors in parallel; **charge growth**
and **charge decay** for an RC circuit; **Amps
growth** and **Amps decay** for an RL circuit;
**Volts**, **Amps** and **Impedance** for an AC
series circuit, **resonant frequency** for a
LC circuit and **Coulombs Law** for **force**,
**energy** and **voltage**; **pressure** and
**volume** from **Boyles law**; **Adiabatic gas
law** and **Ideal gas law**; **Joules** from
**expanding gas (isothermal)** and
**expanding gas (adiabatic)**; **denier** (from
Kilograms and metres), **Kg** (from deniers
and metres) and **metres** (from deniers and
Kilograms). **Rads/hour** (from Curies, MeVolts
and metres) and **radiation** decay (from
initial radiation, half life of source and
time).

Next come navigational formulae including
**radar range**, **sea horizon**, **extreme range**
and approximate **barometer correction**
(each from feet and metres), **true speed**
and **bear**ing (from apparent speed,
apparent bearing, drift speed and drift
bearing) and **apparent speed** and **bear**ing
(from true speed, true bearing, drift speed
and drift bearing).

The list of formulae ends with **new
exposure** time for photo printing (from old
exposure, old distance from lens and new
distance from lens), and **wall area**, ceiling
and total area of a rectangular room (from
width, length and height).

**A few of the formulae (the APR formula,
the number converter and some of
those concerning statistics and
probability) use OPL programs which are
supplied on the Datapak.**

When the XFORM option has been added to the main menu, an additional instruction, XFORM:, is added to OPL.

Using XFORM: is like calling one of your own OPL procedures - so remember the final colon.

You can use it to simply run a formula:

XFORM:("formula")

Or to find then run one:

XFORM:("search-clue")

You can use XFORM: to run formulae stright from the main menu. For example, you could enter a simple one-line OPL procedure called P:

P: XFORM:("PINTS=LITRES*1.76")

When you've translated and saved the procedure, you could insert its name as an option on the main menu. Whenever you select this option, it will run the formula.

To search for a formula from within a procedure, pass XFORM: a search clue instead of a formula. (The clue can't contain "=".) For example:

XFORM:("WATT")

This will search "XFORM" data file for a formula which contains the search text and you can then use ↑ and ↓ to search for different formulae, or MODE to change the device.

When you press EXE, the Formulator will execute the formula, and then return to wherever you ran the procedure from.

If you press ON/CLEAR you return to OPL without having run a formula.

**See the OPL section of your Organiser
manual for how to enter, translate and
save an OPL procedure.**

ERROR MESSAGES

If a formula contains an error, a message is displayed when you run it. The message may come from the Formulator or OPL.

- You should press SPACE, correct the formula, and try running it again.

CIRCULAR REF:

The formula contains a "circular reference",
such as the LITRES result depending on
PINTS while the PINTS result depends on
LITRES. The Formulator is unable to find a
place to begin calculation. One of the names
in the circle is displayed after the message.

TOO MANY NAMES

The formula has more than 16 different
prompts and result names.

TOO MANY CALCS

The formula contains more than 16 separate
calculations.

REPEATED RESULT

The formula assigns to the same result name
twice.

STRING TOO LONG

The result list is more than 254 characters in
length (add one character for the end of every
line).

OUT OF MEMORY

The Formulator has run out of memory while
trying to calculate a formula.

DIVIDE BY ZERO

Division by zero was attempted - e.g. you
specified 0 payments per year in the loan
repayments formula.

SYNTAX ERROR

The formula contains an error and could not
be calculated.

BAD FN ARGS

The arguments to an OPL function are of the
wrong type, such as sin(x,y).

MISSING PROC

A formula referred to a procedure which does
not exist anywhere on the Organiser. This
happens if you copy a formula which calls an
OPL program to **A:** and run it from there
when the datapak containing the OPL
program has been removed.

FN ARGUMENT ERR

An invalid input combination was used, such
as entering 2 as input to the ACOS formula,
or specifying the three sides of a triangle as
lengths 1, 1 and 3.

BAD CHARACTER

An invalid character such as % has been
used.

BAD NUMBER

A meaningless number, such as 2.3.4 has
been used, or an invalid number of decimal
places was specified for the display of a result

MISMATCHED ()'s

The left and right brackets in a formula do
not match up.

EXPONENT RANGE

A number is too large to be held, e.g. the
factorial of 100.

BAD DEVICE CALL

An attempt has been made to call the
Formulator either from within itself or from
within the calculator.

TYPE MISMATCH or MISMATCHED "

One or more quote characters (") have been
used in a calculation.

If you come across such an error press SPACE to re-edit the formula at the "XFORM:" prompt.

Supplied formulae

All the formulae supplied on the Formulator Datapak are printed in this appendix.

Note that although each formula is one line only on the Organiser, many of them here carry over on to more.

UK 15%,VAT:2=Price*(.15/1.15);Net:2=Price-VAT;(Price):2=Price UK 15%,Price:2=Net*1.15;VAT:2=Price-Net;(Net):2=Net France 18.6%,TVA:2=Prix*(.186/1.186);Net:2=Prix-TVA;(Prix):2=Prix France 18.6%,Prix:2=Net*1.186;TVA:2=Prix-Net;(Net):2=Net France 33%,TVA:2=Prix*(.33/1.33);Net:2=Prix-TVA;(Prix):2=Prix France 33%,Prix:2=Net*1.33;TVA:2=Prix-Net;(Net):2=Net Germany 14%,MWSt:2=Preis*(.14/1.14);Netto:2=Preis/1.14;(Preis):2=Preis Germany 14%,Preis:2=Netto*1.14;MWSt:2=Preis-Netto;(Netto):2=Netto Austria 20%,MWSt:2=Preis*(.20/1.20);Netto:2=Preis/1.20;(Preis):2=Preis Austria 20%,Preis:2=Netto*1.20;MWSt:2=Preis-Netto;(Netto):2=Netto Portugal 16%,IVA:2=Preco*(.16/1.16);Liquido:2=Preco/1.16;(Preco):2=Preco Portugal 16%,Preco:2=Liquido*1.16;IVA:2=Preco-Liquido;(Liquido):2=Liquido Spain 12%,IVA:2=Precio*(.12/1.12);Neto:2=Precio/1.12;(Precio):2=Precio Spain 12%,Precio:2=Neto*1.12;IVA:2=Precio-Neto;(Neto):2=Neto Italy 18%,IVA:2=Prezzo*(.18/1.18);Netto:2=Prezzo/1.18;(Prezzo):2=Prezzo Italy 18%,Prezzo:2=Netto*1.18;IVA:2=Prezzo-Netto;(Netto):2=Netto Belgium 19%,BTW:2=Prijs*(.19/1.19);Netto:2=Prijs/1.19;(Prijs):2=Prijs Belgium 19%,Prijs:2=Netto*1.19;BTW:2=Prijs-Netto;(Netto):2=Netto Holland 20%,BTW:2=Prijs*(.20/1.20);Netto:2=Prijs-BTW;(Prijs):2=Prijs Holland 20%,Prijs:2=Netto*1.20;BTW:2=Prijs-Netto;(Netto):2=Netto Turkey 12%,KDV:2=Fiat*(.12/1.12);Net:2=Fiat-KDV;(Fiat):2=Fiat Turkey 12%,Fiat:2=Net*1.12;KDV:2=Fiat-Net;(Net):2=Net Morocco 19%,TVA:2=Prix*(.19/1.19);Net:2=Prix-TVA;(Prix):2=Prix Morocco 19%,Prix:2=Net*1.19;TVA:2=Prix-Net;(Net):2=Net Price:2=Cost*(1+Mark Up%/100);(Cost):2=Cost Sale Price:2=Price*(1-Discount%/100);(Price):2=Price Compound Interest,Balance:2=Deposit*(1+Annual Rate%/(100*Incrs Per Year))**(Years*Inc) Current Value,:2=Future Value*(1+Annual Rate%/(100*Incrs Per Year))**(-Years*Inc) Annuity Value,Future:2=Annual Amount*(((1+Annual Rate%/(100*Incrs per Year))**(Years*Incr)-1) /(Annual R/100));Current:2=Annual A*((1-(1+Annual R/(100*Incr))**(-Years*Incr))/(Annual R/100)) Loan Repayment,:=Loan;Rate:=Annual Rate%/(100*Number Payments per Year); :2=Loan*Rate/(1-(1+Rate)**-(Years*Number)) Loan Repayment(APR),:=Loan;Rate:=(1+APR%/100)**(-1/Number Payments per Year); :2=Loan*((1-Rate)/(1-Rate**(Years*Number))/Rate) APR%:1=apr:(Loan/Payment,Number Payments per Year,Years) Repayment Mortgage,:=Loan;Rate:=Annual Rate%/100;X:=(1+Rate)**Years;Monthly :2=Loan*Rate*X/(12*(X-1)); Z:=1+Rate*.75;Z1:=Z**Years;Monthly(MIRAS):2=-(Loan<=30000)*(Loan*Z1*(Z-1)/(Z1-1)/12)-(Loan>30000)* (Monthly -625*Rate) Endowment Mortgage - does not include policy premiums,:=Loan;Rate:=Annual Rate%/1200;Monthly :2=Rate*Loan; Z:=Loan+(Loan>30000)*(Loan-30000);Monthly(MIRAS):2=(Loan-.25*(Loan+(Loan>30000)*(Loan-30000)))*Rate Take Home Pay(to 10/89),A:=Annual Salary*(1-Pension%/100); NI:=-A*.05*(A>=2236)-.02*A*((A>=3900)+(A>=5980))+.09*(A-16900)*(A>16900);Y:=A-Allowance; Z:=-.25*Y*(Y>0)-.15*(Y-20700)*(Y>20700);Pay:2=(A-NI-Z)/12;Tax:2=Z/12;N.I.:2=NI/12;Pension :2=(Annual-A)/12 Take Home Pay(from 10/89 to 4/90),A:=Annual Salary*(1-Pension%/100); NI:=-(A>2236)*(.09*(A+(A-16900)*(A>16900))-156.52);Y:=A-Allowance;Z:=-.25*Y*(Y>0)-.15*(Y-20700)*(Y>20700); Pay:2=(A-NI-Z)/12;Tax:2=Z/12;N.I.:2=NI/12;Pension :2=(Annual-A)/12

Converter,:=Hex:

Factorial,=fact:(int(r));(r)=int(r) Gamma:4=Gamma:(n);(n)=n Beta:4=Gamma:(n)*Gamma:(m)/Gamma:(n+m);(n)=n;(m)=m Bessel:4=JBessel:(n,x);(n)=n;(x)=x Euler=euler:(int(n));(n)=int(n) Bernoulli=bernli:(int(n));(n)=int(n) Zeta=zeta:(int(n));(n)=int(n) Chebyshev Poly 1st,Y:=atan(sqr((1/(x*x))-1));:8=cos(n*Y) Chebyshev Poly 2nd,Y:=atan(sqr((1/(x*x))-1));:8=sin((n+1)*Y)/sin(Y) Binomial Coefs,=binomial:(int(n),int(r));(n)=int(n);(r)=int(r) Binomial Dist,=binomial:(int(n),int(r))*(p**r)*((1-p)**(n-r));(n)=int(n);(r)=int(r);(p)=p Poisson Prob,=exp(-a)*(a**int(r)/fact:(int(r)));(a)=a;(r)=int(r) Chi:4=Chi:(p%,n);(p%)=p%;(n)=n t Dist,Certainty%:4=100*Tdist:(int(n),x);(n)=int(n);(x)=x Normal Prob:4=normal:(x);Ordinates:4=exp(-x*x/2)*.39894;(x)=x

Triangle SAS,Side1=S1;:=A3;Side2=S2;Side3=sqr(S1*S1+S2*S2-2*S1*S2*cos(rad(A3))); t:=deg(atan(sqr((1/(1-(sin(rad(A3))/Side3*S1)**2))-1)));Angle1:2=t-(s1*s1>s2*s2+Side3*Side3)*(180-t-t); Angle2:2=180-A3-Angle1;Angle3:2=A3;Area=S1*S2*sin(rad(A3))/2 Triangle SAA,Side1=S1;:=A1;:=A2;Side2=S1/sin(rad(A1))*sin(rad(A2));Side3=S1/sin (rad(A1))*sin(rad(180-A1-A2));Angle1:2=A1;Angle2:2=A2;Angle3:2=180-A1-A2;Area=S1*Side2*sin(rad(Angle3))/2 Triangle SSS,Side1=S1;Side2=S2;Side3=S3;X:=(S1+S2+S3)/2;Y:=sqr((X*(X-S1))/(S2*S3)); Z:=sqr((X*(X-S2))/(S1*S3));Angle1:2=2*deg(atan(sqr((1/(Y*Y))-1)));Angle2:2=2*deg(atan(sqr((1/(Z*Z))-1))); Angle3:2=180-Angle1-Angle2;Area=S1*S2*sin(rad(Angle3))/2 Triangle Area,P:=(S1+S2+S3)/2;=SQR(P*(P-S1)*(P-S2)*(P-S3)) Regular Polygon,Area=Edge Len*Edge*No Sides*cos(pi/No S)/(sin(pi/No S)*4);Perimeter=Edge*No S; (Edge Len)=Edge;Long Radius=sqr(Short Radius*Short+Edge*Edge/4);Short=2*Area/(No S*Edge) Regular Polygon,Area=Long Radius*Long*No Sides*sin(2*pi/No S)/2;Perimeter=2*No S*Long*sin(pi/No S); Edge Len=Perimeter/No S;(Long Radius)=Long;Short Radius=sqr(Long*Long-Edge*Edge/4) Regular Polygon,Area=Short Radius*Short*No Sides*tan(pi/No S);Perimeter=2*No S*Short*tan(pi/No S); Edge Len=Perimeter/No S;Long Radius=sqr(Short*Short+Edge*Edge/4);(Short Radius)=Short Circle,Circumference:2=2*pi*Radius;Area:2=pi*Radius*Radius Sphere,Surface:2=Radius*Radius*4*pi;Volume:2=Radius*Radius*Radius*pi*4/3 Cone,:=Height;Slant:2=sqr(Radius*Radius+Height*Height);Surface:2=Radius*(Slant+Radius)*pi; Volume:2=Radius*Radius*Height*pi/3;(Height)=Height;(Radius)=Radius Cone,:=Slant;Height:2=sqr(-Radius*Radius+Slant*Slant);Surface:2=Radius*(Slant+Radius)*pi; Volume:2=Radius*Radius*Height*pi/3;(Slant)=Slant;(Radius)=Radius Parabola,Y(+/-)=sqr(4*Focus*X);Directrix X=-Focus;(Focus)=Focus;(X)=X Parabola,X=1/(4*Focus)*Y*Y;Directrix X=-Focus;(Focus)=Focus;(Y)=Y Ellipse,Y(+/-)=sqr(1-X*X/(a*a))*b;(X)=X;(a)=a;(b)=b Ellipse,X(+/-)=sqr(1-Y*Y/(b*b))*a;(Y)=Y;(a)=a;(b)=b Ellipse,Eccentricity=sqr(1-(1/(a*a)*b*b));Focus(+/-)=Ecc*a;Directrix X(+/-)=a/Ecc;Area=pi*a*b;(a)=a;(b)=b Hyperbola,Y(+/-)=sqr((X*X/(a*a))-1)*b;(X)=X;(a)=a;(b)=b Hyperbola,X(+/-)=sqr(1+(Y*Y/(b*b)))*a;(Y)=Y;(a)=a;(b)=b Hyperbola,Eccentricity=sqr((1/(a*a)*b*b)+1);Focus(+/-)=Ecc*a;Directrix X(+/-)=a/Ecc;(a)=a;(b)=b

Asin:2=deg(atan(x/sqr(1-x*x)));(x)=x Acos,t:=deg(atan(sqr((1/(x*x))-1)));Acos:2=t-(x<0)*(180-t-t);(x)=x Hyperbolics,Y:=exp(x);Z:=exp(-x);COSH=(Y+Z)/2;SINH=(Y-Z)/2;TANH=1-2/(exp(2*X)+1);(x)=x Sum Arithmetic Series,=(First Term+Last Term)*No of Terms/2 Sum Arithmetic Series,=First*No of Terms+Increment*No of T*(No of T-1)/2 Sum Geometric Series,:2=First*(1-R**No of Terms)/(1-R) Real Quadratic,:=a;R:=sqr(b*b-4*a*c);X1:8=(-b+R)/(2*a);X2:8=(-b-R)/(2*a);(a)=a;(b)=b;(c)=c Complex Quadrtic,:=a;I:=sqr(-b*b+4*a*c);Real:8=-b/(2*a);Imag(+/-):8=I/(2*a);(a)=a;(b)=b;(c)=c Complex Add,:=a;:=b;:=c;:=d;Real=a+c;Imag=b+d Complex Subtact,:=a;:=b;:=c;:=d;Real=a-c;Imag=b-d Complex Multiply,:=a;:=b;:=c;:=d;Real=a*c-b*d;Imag=a*d+b*c Complex Divide,:=a;:=b;:=c;:=d;X:=c*c+d*d;Real=(a*c+b*d)/X;Imag=(b*c-a*d)/X Complex Exp,X:=exp(a);Real:9=X*cos(b);Imag:9=X*sin(b) Complex Sinh,X:=exp(a);Y:=exp(-a);Real:9=(X*cos(b)-Y*cos(-b))/2;Imag:9=(X*sin(b)-Y*sin(-b))/2 Complex Cosh,X:=exp(a);Y:=exp(-a);Real:9=(X*cos(b)+Y*cos(-b))/2;Imag:9=(X*sin(b)+Y*sin(-b))/2 Polar Coords,r=sqr(x*x+y*y);Z:=deg(atan(y/x))-180*(x<0);theta:4=Z-(Z<0)*360;(x)=x;(y)=y Polar Coords,x=r*cos(rad(theta));y=r*sin(rad(theta));(r)=r;(theta)=theta Polar Add,:=r1;T1:=theta 1;:=r2;T2:=theta 2;Z:=pi-rad(T1-T2);r3=sqr(r1*r1+r2*r2-2*r1*r2*cos(Z)); X:=T1+(1+2*(((T2<T1)and((T2+180)>T1))or((T2>T1)and(T2>(T1+180))))) *deg(atan(sqr((1/(1-(sin(Z)/r3*r2)**2))-1)));theta 3:4=X+360*((X>=360)-(X<0)) Polar Multiply,:=r1;T1:=theta 1;:=r2;T2:=theta 2;r3=r1*r2;Z:=T1+T2;theta 3:4=Z+(Z>360)*360 Polar Divide,:=r1;T1:=theta 1;:=r2;T2:=theta 2;r3=r1/r2;Z:=T1-T2;theta 3:4=Z-(Z<0)*360 Spherical Coords,:=x;:=y;:=z;r=sqr(x*x+y*y+z*z);A:=deg(atan(y/x))-180*((Y<0)and(X<0)); phi:4=A-360*(A<0);B:=z/r;C:=deg(atan(sqr((1/(B*B))-1)));Theta:4=(C-180)*(z<0)-C*(z>0);(x)=x;(y)=y;(z)=z Spherical Coords,:=r;P:=rad(phi);T:=rad(theta);x=r*sin(T)*cos(P); y=r*sin(T)*sin(P);z=r*cos(T);(r)=r;(phi)=phi;(theta)=theta Dot Product,:=A1;:=A2;:=A3;:=B1;:=B2;:=B3;=A1*B1+A2*B2+A3*B3 Cross Product,:=A1;:=A2;:=A3;:=B1;:=B2;:=B3;i=A2*B3-A3*B2;j=A3*B1-A1*B3;k=A1*B2-A2*B1

Inches>,(Inches):2=Inches;Feet:2=Inches/12;Yards:2=Feet/3;Miles:2=Yards/1760;Naut Miles:2=Feet/6080; metres:2=Inch*.0254;Kilometres:2=metres/1000 Feet>,Inches:2=Feet*12;(Feet):2=Feet;Yards:2=Feet/3;Miles:2=Yards/1760;Naut Miles:2=Feet/6080; metres:2=Feet*.3048;Kilometres:2=metres/1000 Yards>,Inches:2=Yards*36;Feet:2=Yards*3;(Yards):2=Yards;Miles:2=Yards/1760;Naut Miles:2=Feet/6080; metres:2=Yards*.9144;Kilometres:2=metres/1000 Miles>,Inches:2=Miles*63360;Feet:2=Miles*5280;Yards:2=Miles*1760;(Miles):2=Miles;Naut Miles:2=Feet/6080; metres:2=Miles*1609.343;Kilometres:2=metres/1000 NMiles>,Inches:2=NMiles*72960;Feet:2=NMiles*6080;Yards:2=Feet/3;Miles:2=Yards/1760;(Naut Miles):2=NMiles; metres:2=NMiles*1853.183;Kilometres:2=metres/1000 Metres>,Inches:2=metres*39.3701;Feet:2=metres*3.28084;Yards:2=metres*1.0936146;Miles:2=metres*6.213717e-4; Naut Miles:2=metres*5.39612e-4;(metres):2=metres;Kilometres:2=metres/1000 Km>,Inches:2=Km*39370.1;Feet:2=Km*3280.84;Yards:2=Km*1093.6146;Miles:2=Km*.6213717; Naut Miles:2=Km*.539612;metres:2=Km*1000;(Kilometres):2=Km Fathoms>,(Fathom)=Fathoms;Yards=Fathoms*2;Metres:2=Fathoms*1.8288 Yards>,Fathom=Yards/2;(Yards)=Yards;Metres:2=Yards*.9144 Metres>,Fathom:2=metres*.5468;Yards:2=Fathom*2;(metres)=metres Microns>,(Microns):4=Microns;Angstroms:4=Microns*1e4;Fermis:4=Microns*1e9;Metres:4=Microns*1e-6 Angstroms>,Microns:4=Angstroms*1e-4;(Angstroms):4=Angst;Fermis:4=Angst*1e5;Metres:4=Angst*1e-10 Fermis>,Microns:4=Fermis*1e-9;Angstroms:4=Fermis*1e-5;(Fermis):4=Fermis;Metres:4=Fermis*1e-15 Metres>,Microns:4=metres*1e6;Angstroms:4=metres*1e10;Fermis:4=metres*1e15;(metres):4=metres Au>,(Astronomic units)=Astronomic units;Light Years=Astro*1.58e-5;Parsecs=Astro*4.85e-6; Metres=Astro*1.496e11 Light Years>,Au=Light Years*63242;(Light Years)=Light;Parsecs=Light*.3068;Metres=Light*9.461e15 Parsecs>,Au=Parsecs*206150;Light Years=Parsecs*3.26;(Parsecs)=Parsecs;Metres=Parsecs*3.084e16 Metres>,Au=Metres*6.6845e-12;Light Years=Metres*1.057e-16;Parsecs=Metres*3.24e-17;(Metres)=Metres BMU>,(Basic Measurement Units):2=BMU;Points:2=BMU/6;Picas:2=BMU/72;Inches:2=BMU/1440; Centimetres:2=BMU*1.7639e-3 Points>,BMU:2=Points*6;(Points):2=Points;Picas:2=Points/12;Inches:2=Points/240;Centimetres:2=Points*.0105833 Picas>,BMU:2=Picas*72;Points:2=Picas*12;(Picas):2=Picas;Inches:2=Picas/20;Centimetres:2=Picas*.127 Inches>,BMU:2=Inches*1440;Points:2=Inches*240;Picas:2=Inches*20;(Inches):2=Inches;Centimetres:2=Inches*2.54 cm>,BMU:2=cm*566.93;Points:2=cm*94.488;Picas:2=cm*7.874;Inches:2=cm*.3937;(Centimetres):2=cm Sq Inches>,(Sq Inches):2=Sq Inches;Sq Feet:2=Sq I/144;Sq Yards:2=Sq F/9;Acres:2=Sq Y/4840; Sq Miles:2=Acres/640;Sq Metres:2=Sq I*6.4516E-4;Hectares:2=Sq Me*1e-4;Sq km:2=Hect/100 Sq Feet>,Sq Inches:2=Sq Feet*144;(Sq Feet):2=Sq F;Sq Yards:2=Sq F/9;Acres:2=Sq Y/4840; Sq Miles:2=Acres/640;Sq Metres:2=Sq F*.092903;Hectares:2=Sq Me*1e-4;Sq km:2=Hect/100 Sq Yards>,Sq Inches:2=Sq Yards*1296;Sq Feet:2=Sq Y*9;(Sq Yards):2=Sq Y;Acres:2=Sq Y/4840; Sq Miles:2=Acres/640;Sq Metres:2=Sq Y*.836126;Hectares:2=Sq Me*1e-4;Sq km:2=Hect/100 Acres>,Sq Inches:2=Acres*6272640;Sq Feet:2=Acres*43560;Sq Yards:2=Acres*4840;(Acres):2=Acres; Sq Miles:2=Acres/640;Sq Metres:2=Acres*4046.85;Hectares:2=Sq Me*1e-4;Sq km:2=Hect/100 Sq Miles>,Sq Inches:2=Sq Miles*4.01449E9;Sq Feet:2=Sq Mi*27878400;Sq Yards:2=Sq Mi*3097600; Acres:2=Sq Mi*640;(Sq Miles):2=Sq Mi;Sq Metres:2=Sq Mi*2589984;Hectares:2=Sq Me*1e-4;Sq km:2=Hect/100 Sq Metres>,Sq Inches:2=Sq Metres*1550.01;Sq Feet:2=Sq Me*10.7639;Sq Yards:2=Sq Me*1.196; Acres:2=Sq Y/4840;Sq Miles:2=Acres/640;(Sq Metres):2=Sq Me;Hectares:2=Sq Me*1e-4;Sq km:2=Hect/100 Hectares>,Sq Inches:2=Hectares*1.5501e7;Sq Feet:2=Sq I/144;Sq Yards:2=Sq F/9;Acres:2=Sq Y/4840; Sq Miles:2=Acres/640;Sq Metres:2=Hect*1e4;(Hectares):2=Hect;Sq km:2=Hect/100 Sq km>,Sq Inches:2=Sq km*1.5501e9;Sq Feet:2=Sq I/144;Sq Yards:2=Sq F/9;Acres:2=Sq Y/4840; Sq Miles:2=Sq km*.3861;Sq Metres:2=Sq K*1e6;Hectares:2=Sq K*1e4;(Sq km):2=Sq K Fl oz>,(Fl oz):2=Fl oz;Pints:2=Fl O/20;Gallons:2=Pints/8;Litres:2=FL O*.028413; US Gallon:2=FL O*.0075059;Barrels:2=US G/42 Pints>,Fl oz:2=Pints*20;(Pints):2=Pints;Gallons:2=Pints/8;Litres:2=Pints*.56826; US Gallon:2=Pints*.1501187;Barrels:2=US G/42 Gallons>,Fl oz:2=Gallons*160;Pints:2=Gallons*8;(Gallons):2=Gallons;Litres:2=Gallons*4.54609; US Gallon:2=Gallons*1.20095;Barrels:2=US G/42 Litres>,Fl oz:2=Litres*35.195;Pints:2=Litres*1.75975;Gallons:2=Litres*.21997;(Litres):2=Litres; US Gallon:2=Litres*.26417;Barrels:2=US G/42 US Gallons>,Fl oz:2=US Gallons*133.228;Pints:2=US G*6.6614;Gallons:2=US G*.83267; Litres:2=US G*3.7854;(US Gallon):2=US G;Barrels:2=US G/42 Barrels>,Fl oz:2=Barrels*5595.6;Pints:2=Barrels*279.78;Gallons:2=Barrels*34.972; Litres:2=Barrels*158.987;US Gallon:2=Barrels*42;(Barrels):2=Barrels Cu Inches>,(Cubic Inches):2=Cu Inches;Cubic Feet:2=Cu I/1728;Cubic Yards:2=Cu I/46656; Cubic Centimetres:2=Cu I*16.387;Litres:2=Cu I*.016387 Cu Feet>,Cubic Inches:2=Cu Feet*1728;(Cubic Feet):2=Cu F;Cubic Yards:2=Cu F/27; Cubic Centimetres:2=Cu F*28317;Litres:2=Cu F*28.317 Cu Yards>,Cubic Inches:2=Cu Yards*46656;Cubic Feet:2=Cu Y*27;(Cubic Yards):2=Cu Y; Cubic Centimetres:2=Cu Y*764555;Litres:2=Cu Y*764.555 CC>,Cubic Inches:2=CC*.061024;Cubic Feet:2=CC*.3531467e-4;Cubic Yards:2=CC*.130795e-5; Cubic Centimetres:2=CC;Litres:2=CC/1000 Litres>,Cubic Inches:2=Litres*61.024;Cubic Feet:2=Litres*.03531476;Cubic Yards:2=Litres*.130795e-2; Cubic Centimetres:2=Litres*1000;(Litres):2=Litres oz>,(oz):2=oz;Pounds:2=oz/16;Stone:2=Pounds/14;CWT:2=Stone/8; Ton(short):2=Pounds/2000;Ton(long):2=CWT/20;Kg:2=oz*.0283495;Tonnes:2=Kg/1000 Pounds>,oz:2=Pounds*16;(Pounds):2=Pounds;Stone:2=Pounds/14;CWT:2=Stone/8; Ton(short):2=Pounds/2000;Ton(long):2=CWT/20;Kg:2=Pounds*.453592;Tonnes:2=Kg/1000 Stone>,oz:2=Stone*224;Pounds:2=Stone*14;(Stone):2=Stone;CWT:2=Stone/8; Ton(short):2=Pounds/2000;Ton(long):2=CWT/20;Kg:2=Stone*6.35029;Tonnes:2=Kg/1000 CWT>,oz:2=CWT*1792;Pounds:2=CWT*112;Stone:2=CWT*8;(CWT):2=CWT; Ton(short):2=Pounds/2000;Ton(long):2=CWT/20;Kg:2=CWT*50.8023;Tonnes:2=Kg/1000 Short Tons>,oz:2=Short Tons*32000;Pounds:2=Short*2000;Stone:2=Pounds/14;CWT:2=Stone/8; (Ton(short)):2=Short;Ton(long):2=Short*25/28;Kg:2=Short*907.184;Tonnes:2=Kg/1000 Long Tons>,oz:2=Long Tons*35840;Pounds:2=Long*2240;Stone:2=Long*160;CWT:2=Long*20; Ton(short):2=Pounds/2000;(Ton(long)):2=Long;Kg:2=Long*1016.047;Tonnes:2=Kg/1000 Kg>,oz:2=kg*35.27395;Pounds:2=Kg*2.20462;Stone:2=Kg*.157473;CWT:2=Kg*.0196841; Ton(short):2=Pounds/2000;Ton(long):2=Kg*9.84206e-4;(Kg):2=Kg;Tonnes:2=Kg/1000 Tonnes>,oz:2=Tonnes*35273.95;Pounds:2=Tonnes*2204.62;Stone:2=Tonnes*157.473;CWT:2=Tonnes*19.6841; Ton(short):2=Pounds/2000;Ton(long):2=Tonnes*.984206;Kg:2=Tonnes*1000;(Tonnes):2=Tonnes oz Fine or Troy>,(oz tr)=oz tr;oz av=oz tr*1.09714;Gram=oz tr*31.1035 oz Avoirdupois>,oz tr=oz av*.911458;(oz av)=oz av;Gram=oz av*28.3495 Gram>,oz tr=Gram*.0321507;oz av=Gram*.03527395;(Gram)=Gram Sec of Arc>,(Sec of Arc):2=Sec Of Arc;Min of Arc:2=Sec/60;Degrees:2=Min/60;Radians:2=Sec*pi/648000 Min of Arc>,Sec of Arc:2=Min Of Arc*60;(Min of Arc):2=Min;Degrees:2=Min/60;Radians:2=Min*pi/10800 Degrees>,Sec of Arc:2=Degrees*3600;Min of Arc:2=Degrees*60;(Degrees):2=Degrees;Radians:2=Degrees*pi/180 Radians>,Sec of Arc:2=Radians*648000/pi;Min of Arc:2=Radians*10800/pi; Degrees:2=Radians*180/pi;(Radians):2=Radians Seconds>,(Seconds):2=Seconds;Minutes:2=Seconds/60;Hours:2=Minutes/60;Days:2=Hours/24;Weeks:2=Days/7; Tropical Year:2=Seconds*3.1689e-8 Minutes>,Seconds:2=Minutes*60;(Minutes):2=(Minutes);Hours:2=Minutes/60;Days:2=Hours/24;Weeks:2=Days/7; Tropical Year:2=Minutes*1.9013e-6 Hours>,Seconds:2=Hours*3600;Minutes:2=Hours*60;(Hours):2=Hours;Days:2=Hours/24;Weeks:2=Days/7; Tropical Year:2=Hours*1.1408e-4 Days>,Seconds:2=Days*86400;Minutes:2=Days*1440;Hours:2=Days*24;(Days):2=Days;Weeks:2=Days/7; Tropical Year:2=Days*2.7379E-3 Weeks>,Seconds:2=Weeks*604800;Minutes:2=Weeks*10080;Hours:2=Weeks*168;Days:2=Weeks*7;(Weeks):2=Weeks; Tropical Year:2=Weeks*.019165 Years>,Seconds:2=Years*3.1557e7;Minutes:2=Years*525950;Hours:2=Years*8765.8;Days:2=Years*365.24; Weeks:2=Days/7;(Tropical Year):2=Years MPH>,(MPH):2=MPH;Feet/Sec:2=MPH*22/15;KPH:2=MPH*1.609343;Metres/Sec:2=KPH*5/18;Knots:2=MPH*33/38 FPS>,MPH:2=FPS*15/22;(Feet/Sec):2=FPS;KPH:2=FPS*1.09728;Metres/Sec:2=KPH*5/18;Knots:2=MPH*33/38 KPH>,MPH:2=KPH*.621372;Feet/Sec:2=MPH*22/15;(Km/Hour):2=KPH;Metres/Sec:2=KPH*5/18;Knots:2=MPH*33/38 Metres/Sec>,MPH:2=Metres per Sec*2.23694;Feet/Sec:2=MPH*22/15;KPH:2=Metres*18/5;(Metres/Sec):2=Metres; Knots:2=MPH*33/38 Knots>,MPH:2=Knots*38/33;Feet/Sec:2=MPH*22/15;KPH:2=Knots*1.8532;Metres/Sec:2=KPH*5/18;(Knots):2=Knots MilesUKg>,(MilesUKgall):2=MilesUKgallon;MilesUSgall:2=MilesUK*.83267;KmLitres:2=MilesUK*.35401 MilesUSg>,MilesUKgall:2=MilesUSgallon*1.20095;(MilesUSgall):2=MilesUS;KmLitres:2=MilesUS*.42514 KmLitres>,MilesUKgall:2=KmL*2.82481;MilesUSgall:2=KmL*2.35215;(KmLitres):2=KmLitres Poundals>,(Poundals)=Poundals;lbf=Poundals*.031081;Newtons=Poundals*.138255 lbf>,Poundals=lbf*32.17404;(lbf)=lbf;Newtons=lbf*4.448222 Newtons>,Poundals=Newtons*7.233011;lbf=Newtons*.224809;(Newton)=Newtons Dynes>,Newtons=Dynes*1e-5;(Dynes)=Dynes Newtons>,Dynes=Newtons*1e5;(Newtons)=Newtons Joules>,(Joules)=Joules;Ergs=Joules*1e7;Calories=Joules*.238846; Therms=Joules*9.4787e-9;Btu=Therms*1e5;KWH=Joules/3.6e6 Ergs>,Joules=Ergs*1e-7;(Ergs)=Ergs;Calories=Ergs*.238846e-7;Therms=Ergs*9.4787e-16; Btu=Therms*1e5;KWH=Joules/3.6e6 Calories>,Joules=Calories*4.1868;Ergs=Joules*1e7;(Calories)=Calories; Therms=Calories*3.9685e-8;Btu=Therms*1e5;KWH=Calories*1.163e-6 Therms>,Joules=Therms*1.055e8;Ergs=Joules*1e7;Calories=Therms*2.5198e7; (Therms)=Therms;Btu=Therms*1e5;KWH=Therms*29.306 Btu>,Joules=Btu*1.055e3;Ergs=Joules*1e7;Calories=Btu*251.98;Therms=Btu*1e-5;(Btu)=Btu;KWH=Btu*2.9306e-4 KWH>,Joules=KWH*3.6e6;Ergs=Joules*1e7;Calories=KWH*8.5986e5;Therms=KWH*.034123;Btu=Therms*1e5;(KWH)=KWH Joules>,(Joules)=Joules;eVolts=Joules*6.242e18;Hertz=Joules*1.509e33;Kelvin=Joules*7.244e22; Kg=Joules*1.113e-17 eVolts>,Joules=eVolts*1.602e-19;(eVolts)=eVolts;Hertz=eVolts*2.418e14;Kelvin=eVolts*1.16e4; Kg=eVolts*1.783e-36 Hertz>,Joules=Hertz*6.626e-34;eVolts=Hertz*4.136e-15;(Hertz)=Hertz;Kelvin=Hertz*4.8e-11;Kg=Hertz*7.375e-51 Kelvin>,Joules=Kelvin*1.381e-23;eVolts=Kelvin*8.62e-5;Hertz=Kelvin*2.084e10;(Kelvin)=Kelvin; Kg=Kelvin*1.537e-40 Kg>,Joules=kg*8.988e16;eVolts=kg*5.61e35;Hertz=kg*1.356e50;Kelvin=kg*6.511e39;(Kg)=kg PSI>,(Pounds/Sq Inch)=PSI;Pascals=PSI*6894.8;mmHg=PSI*51.714;inHg=PSI*2.036;Millibars=Pascal/100; Atmosphere=PSI*.06805 Pascals>,PSI=Pascals*1.4504e-4;(Pascals)=Pascals;mmHg=Pascals*7.501e-3;inHg=Pascals*2.953e-4; Millibars=Pascals/100;Atmosphere=Pascals*9.869e-6 mmHg>,PSI=mmHg*.01934;Pascals=mmHg*133.3;(mmHg)=mmHg;inHg=mmHg*.03937;Millibars=Pascals/100; Atmosphere=mmHg/760 inHg>,PSI=inHg*.4911;Pascals=inHg*3386;mmHg=inHg*25.4;(inHg)=inHg;Millibars=Pascals/100; Atmosphere=inHg*.03342 Millibars>,PSI=Millibars*.014504;Pascals=Millibars*100;mmHg=Millibars*.7501;inHg=Millibars*.02953; (Millibars)=Millibars;Atmosphere=Millibars*9.869e-4 Atmosphere>,PSI=Atmosphere*14.7;Pascals=Atmosphere*1.013e5;mmHg=Atmosphere*760;inHg=Atmosphere*29.9; Millibars=Atmosphere*1013;(Atmosphere)=Atmosphere Gauss>,(Gauss):2=Gauss;Tesla:2=Gauss*1e4 Tesla>,Gauss:2=Tesla*1e-4;(Tesla):2=Tesla Curies>,(Curies)=Curies;Becquerels:2=Curies*3.7e10 Becquerels>,Curies:2=Becquerels*2.7e-11;(Becquerels)=Becq Rads>,(Rads):2=Rads;Grays=Rads/100 Grays>,Rads:2=Grays*100;(Grays)=Grays Watts>,(Watts)=Watts;Horsepower=Watts*1.341E-3 Horsepower>,Watts=Horsepower*745.7;(Horsepower)=Horsepower RPM>,(RPM):2=Revs per Minute;Hertz:2=Revs/60 Hertz>,RPM:2=Hertz*60;(Hertz)=Hertz Fahrenheit>,(Fahrenheit)=Fahrenheit;Celsius:2=(Fahrenheit-32)*5/9;Kelvin:2=Celsius+273.15 Celsius(Centigrade)>,Fahrenheit:2=32+Celsius*9/5;(Celsius)=Celsius;Kelvin:2=Celsius+273.15 Kelvin>,Fahrenheit:2=32+(Kelvin-273.15)*9/5;Celsius:2=Kelvin-273.15;(Kelvin):2=Kelvin em>,(Electron Masses)=Electron M;pm=Electron M*5.4463e-4;nm=Electron M*5.4388e-4;kg=Electron M*9.1091e-31 pm>,em=Proton Masses*1836.1;(Proton Masses)=Proton M;nm=Proton M*.99863;kg=Proton M*1.6725e-27 nm>,em=Neutron Masses*1838.6;pm=Neutron M*1.001375;(Neutron Masses)=Neutron M;kg=Neutron M*1.6748e-27 Kg>,em=kg*1.0978E30;pm=kg*5.979e26;nm=kg*5.9708e26;(kg)=kg

Watts=Amps*Volts Watts=Amps*Amps*Ohms Watts=Volts*Volts/Ohms Joules=Farads*Volts*Volts/2 Farads=Coulombs/Volts Volts=Amps*Ohms Amps=Volts/Ohms Ohms=Volts/Amps Const Acc,Final Velocity=Initial Velocity+Acceleration*Time;Distance=Init*Time+Acc*Time*Time/2 Const Acc,Final Velocity=sqr(Initial Velocity*Initial V+2*Acceleration*Distance) Const Acc,Distance=(Initial Velocity+Final Velocity)*Time/2 Const Acc,Energy=Mass*(-Initial Velocity*Initial V+Final Velocity*Final V)/2 Force=Mass*Acceleration Momentum=Mass*Velocity Final Speed=(Initial Speed 1*Mass 1+Initial Speed 2*Mass 2)/(Mass 1+Mass 2) Circular Motion,Acceleration=Velocity*Velocity/Radius Circular Motion,Centripetal Force=Mass*Velocity*Velocity/Radius;Acceleration=Cent/Mass Joules=Newtons*Metres Newtons=kg*MetresPerSec2 Focal Length=1/(1/Object Dist+1/Image Dist) Image Dist=1/(1/Focal Length-1/Object Dist) Pendulum Period(sec),:2=2*pi*sqr(Metres/9.807) Pendulum Period(sec),:2=2*pi*sqr(Feet/32.17) Earth Satellite,R:=6370+Km Height;Speed(Kms/sec):2=6370*sqr(9.8e-3/R);Period(Hours):2=2*pi*R/Speed/3600 Resistance,:2=1/(1/R1+1/R2) RC Circuit constant V,Charge Growth=Farads*Voltage*(1-exp(-Seconds/(Ohms*Farads))) RC Circuit,Charge Decay=Farads*Init Voltage*exp(-Seconds/(Ohms*Farads)) RL Circuit constant V,Amps Growth=Voltage/Ohms*(1-exp(-Ohms*Seconds/Henrys)) RL Circuit,Amps Decay=Init Amps*(exp(-Ohms*Seconds/Henrys)) AC Series Circuit,Radians:=Frequency*2*pi;Volts=Peak Volts*sin(Radians*Seconds) AC Series Circuit,Radians:=Frequency*2*pi;Amps=Peak Volts/sqr(Ohms*Ohms+(Radians*Henrys-1 /(Radians*Farads))**2)*cos(Radians*Seconds-atan((Radians*Henrys-1/(Radians*Farads))/Ohms)) AC Series Circuit,Radians:=Frequency*2*pi;Impedance=sqr(Ohms*Ohms+(Radians*Henrys-1/(Radians*Farads))**2) Resonant Frequency=1/(sqr(Farads*Henrys)*2*pi) Coulombs Law,Force=-Charge 1*Charge 2*8.98e9/(Permittivity*Radius*Radius) Coulombs Law,Energy=Charge 1*Charge 2*8.98e9/Radius Coulombs Law,Voltage=Charge*8.98e9/(Permittivity*Radius) Boyles Law,Pressure=Gas Constant/Volume Boyles Law,Volume=Gas Constant/Pressure Adiabatic Gas Law,X:=Init Vol/Final Vol;Pressure=Init Pressure*(X**Gamma); Kelvin=Init Kelvin*(X**(Gamma-1));Work=(Final V*Pressure-Init V*Init P)/(1-Gamma) Ideal Gas Law,Cubic Metres:2=8.31*Moles*Kelvin/Pascal Ideal Gas Law,Pascal:2=8.31*Moles*Kelvin/Cubic Metres Expanding Gas (Isothermal),Joules=8.31*Moles*Kelvin*(ln(Final Cu M/Init Cu M)) Expanding Gas (Adiabatic),Joules=(Final Pascals*Final Cu M-Init Pascals*Init Cu M)/(Gamma-1) Deniers=9e6*Kg/Metres Kg=Deniers*Metres/9e6 Metres=9e6*Kg/Deniers Rads/Hour(approx),:2=Curies*MeVs/(2*Metres*Metres) Radiation:2=Init Radiation*exp(-ln(2)*Time/Half Life)

Radar range,Nmiles:1=2.21*sqr(Height in Metres);Km:1=1.85*Nmiles Sea Horizon,Nmiles:1=2.12*sqr(Height in Metres);Km:1=1.85*Nmiles Extreme range,Nmiles:1=2.12*(sqr(Observer Height in Metres)+sqr(Object Height in Metres));Km:1=1.85*Nmiles Barometer Correction to Mean Sea Level,approx:1=Metres/8-Celsius*Metres/2100 A:=App Speed;B:=App Bear;C:=Drift Speed;D:=Drift Bear;X:=pi-rad(B-D);True Speed:2=sqr(A*A+C*C-2*A*C*cos(X)); Y:=B+(1+2*(((D<B)and(D+180>B))or((D>B)and(D>B+180))))*deg(atan(sqr((1/(1-(sin(X)*C/True Speed)**2))-1))); True Bear:0=Y+360*((Y>=360)-(Y<0)) A:=True Speed;B:=True Bear;C:=Drift Speed;D:=Drift Bear;X:=rad(D-B);App Speed:2=sqr(A*A+C*C-2*A*C*cos(X)); Y:=B-(1+2*(((D<B)and(D+180>B))or((D>B)and(D>B+180))))*deg(atan(sqr((1/(1-(sin(X)/App Speed*C)**2))-1))); App Bear:0=Y+360*((Y>=360)-(Y<0))

Photo printing,New Exposure:2=Old exposure*(New Height/Old Height)**2 Rectangular room,Wall Area=2*Height*(Width+Length);Ceiling/Floor=Width*Length;Total Area=Wall+2*Ceiling

Abbreviating names Aborting a Calculation, (2) Accuracy Analysing a Formula

BAD CHARACTER error BAD DEVICE CALL error BAD FN ARGS error BAD NUMBER error

Calculation order CIRCULAR REF error Circular refs, (2) Colons Commas Comms Link Copying Formulae

Data File (XFORM) copying from Datapak copying data from removing Decimal Places DIVIDE BY ZERO error

Editing Formulae Equals Sign Erasing Formulae Error messages EXPONENT RANGE error Expressions

Finding Formulae find all find next menu method quick method FN ARGUMENT error Formulae analysing cancelling calculation editing erasing finding multiple-calculation saving single-calculation supplied, list supplied, using

Input types

main menu running formulae from Memory occupied MISMATCHED " error MISMATCHED ()'s error MISSING PROC error

OPL functions in formulae XFORM: instruction Order of calculation OUT OF MEMORY error Overwriting Formulae

Quick find method Quitting the Program

Removing the Datapak REPEATED RESULT error Result List Result Names abbreviating Running the Program

Saving Formulae Search clue, (2) Semicolons Speed of Calculation STRING TOO LONG error Supplied formulae copying functions provided listed using SYNTAX ERROR error

Titles TOO MANY CALCS error TOO MANY NAMES error TYPE MISMATCH error

XFORM data file XFORM: entry prompt OPL instruction