Kalk 2.0.0 Information Page
Introduction
KALK is a RPN calculator with statistical computation functions. You can upload it into your pilot with your install.exe Application (WinDOS) or with pilot-xfer (Unix) as any other application. Download kalk200.zip. (Under UNIX, use unzip -L to uncompress to get lowercase filenames.)
Whats new?
We have color support now. All buttons are now much better legible - even on black and white devices.
General Usage
The register you are editing is the 'X' register. One above you have the 'Y' register. You should remember this to understand the labels on some of the buttons. For example: y^x means that you have to type the base and then the exponent. After pressing ENTER the base will move from the X to the Y register and the eponent will be entered into the X register afterwards.
Kalk and the Clipboard
Kalk can Copy the X register into the clipboard as is. Whenever you Paste from the clipboard, the contents of the clipboard ist being interpreted as normal keystrokes.

This is only intened to allow copying and pasting of numbers - but you can also paste simple formulas from the clipboard. They have to be in RPN, of course.

Preferences
The Preferences Menu lets you select different modes in which Kalk should work.
  • Display lets you select the number of digits to be displayed and the way, numbers are being printed.
    All
    Prints all relevant digits.
    Fixed
    Prints only the requested number of digits after the period and switches to exponential display only of the number does not fit into the display. (That's the mode you normally want).
    Scientific
    Same as fixed but shows always the exponent.
    Engineering
    Same as Sci, but makes the exponent a multiple of three.
  • Angle Mode lets you select the units to use for angles.
    Radian
    A full circle is 2*Pi=6.28
    Degree
    A full circle is 360.
  • Base delect the base in which the numbers are being displayed. Only in Decimal mode fractions are being displayed. YOu can enter only digits which are valid in the current Base mode. In order to type hexgesimal numbers 'a' to 'f', you have to use the corresponding keystrokes.
Statistical Functions (German version)
You can enter pairs of numbers into KALK on which it tries to do linear regression analysis. This means that it tries to find line which approximates the cloud of points you entered.

Well, this is not a course in statistics, but here is a short explanation of the functions anyway:

Add Adds another pair. If you don't supply a Y value, KALK will consider this as a zero.
Delete Removes the pair from memory. As KALK does not store statistical values individually, it is not trivial to remove data once it has been entered. If you want to delete a value, you can enter the values again but press Delete instead of Add.
xmean, ymean Return the mean of all X or Y values.
sx, sy Return the standard deviation (not the variance!) of all X or Y values. You can compute the variance by pressing x^2 after sx or sy.
r Returns the "empiric correlation coefficient". Absolute values close to 1 mean good correlation, values close to 0 mean weak correlation.
n Returns the number of values you've entered so far.
bY|X Returns the slope of the regression curve when predicting X for Y.
bX|Y Returns the slope of the regression curve when predicting Y for X.

If you need the intersection with the ordinate, press 0 and y->x or X->Y.

Clear Clears all internal statistical registers. Use with caution.

KALK questions
What does KALK mean?
It's the way Germans procounce calc. Also, it means chalk, an important tool for matematicans to do calculations :-).
How to use it?
Just like a normal RPN calculator.
What is RPN?
It means "reverse polish notation". On RPN calculators you have to type operations after you have typed in all arguments. Eg: "3 ENTER 4 +" instead of 3 + 4. The ENTER is needed to separate the two arguments.
Why RPN?
With RPN you do not need brackets. Moreover, it is much easier to reuse results from previous computations. All arguments are being put on the "stack". Whenever you type an operation, the calculator will get as much arguments as it needs from the stack and put the result back on the stack. And, it's much cooler. :-)
What's a stack?
A stack is some kind of storage where you can put things on and get it from in the order "last in - first out".
When I press ENTER the last entered value has been duplicated!
The value is not really duplicated because after pressing ENTER the "stack lock" is on, which means that entering a digit will not push the number again. The contents of the X register will be replaced by the new digit.

That's the way my HP 42S behaves. I know that there are other models - even in HP calculators. But the advantage of this version is that pressing ENTER twice will push the X register twice in an intuitive way.

Kalk prints wrong results!
The math library I use was originally implemented for single precision. Using math library functions have only 5 to 7 digits accuracy whereas basic operations as adding or division have 15 digits accuracy.

Technical Information:
Copying the math functions and replacing float by double wouldn't really help as I would have to figure out new polynomials with more coefficients.

Where are the keys 'a' to 'f' for entering hexagesimal digits?
There aren't any. You can enter letters by using the regular keysotrokes.
Limitations
The code size is definitely too large.
The floating point libraries for math functions are extremely large. And they don't obey IEEE behaviour! If someone has a smaller library, please tell me.
Some illegal operations do not trigger properly.
This is due to the implementation of the floating point routines.
There is no visual marker wether one is using Degree or Radian
Stay tuned, its on my to do list. However, you can peek into the Preferences menu.
ToDo
Fixing Bugs. Visual marker for angle mode and base. Direct key strokes for entering menus or different forms. Finding a way to reduce the code size. ...
Registration
This program is postcard-ware, which means that you may copy and distribute it as far as you like. I won't charge you any fee for this. But you may not charge anyone for this program either. If you like KALK, you have to send send a postcard with your email address (or whatever may serve as some kind of identification) to
	  Holger Klawitter
	  Huefferstr. 16
	  48149 Muenster
	  Germany
      
(eMail reports will be thankfully accepted but do not count as registraton :-)

If you are a shareware programmer...

... keep in mind that you got my software for free. :-)
Acknowledgements
I would like to thank especially all developers of the Unix-tools for Pilot software development. Thanks to Wes Cherry, Jeff Dionne, Kenneth Albanowski, Ian Goldberg, Scott Grosch, Brian Swetland, and many more and thanks to USR for supplying the public with the developers handbooks.
Revision History
2.0.0 (7. Jul 2000)
graphical buttons and color support
1.3.0 (Apr 15 2000)
clipboard support
1.2.0 (Mar 08 2000)
lastX support
1.1.0 (Oct 05 99)
Alternative bases.
1.0.3 (Sep 23 99)
Some new functions, Licence for commerical usage has changed.
1.0.2 (Jul 18 99)
Contact address has changed.
1.0.1 (Jan 25 98)
Bugfix in display handling of engineer mode.
1.0.0 (Aug 11 97)
Double precision!
0.2.2 (Jul 28 97)
Bugfix in display routines
0.2.0 (Jul 21 97)
More math functions, Registers, Degree support.
0.1.3 (June 24 97)
Several Bugfixes. Smaller Keys.
0.1.2 (May 23 97)
Fixed entering of negative exponents.
0.1.1 (May 10 97)
Documentation improved. (No release change in .prc file)
0.1.0 (May 4 97)
Initial public release.
Legalese
KALK is Copyright (c) 1997-2000 by Holger Klawitter

Permission to use, copy, modify, and distribute this software and its documentation for any non commerical purpose, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all copies. For commercial usage, please contact the author.

IN NO EVENT SHALL THE AUTHOR BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

THE AUTHOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE AUTHOR HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.


palm@klawitter.de
Last modified: Fri Jul 7 11:28:52 CEST 2000