6CBJ 1J C A L C P L U S --------------- I. INTRODUCTION TO CALCPLUS CALCPLUS is, in its simplest form, a computer version of a scientific calculator, specifically a Reverse Polish Notation calculator such as those manufactured by Hewlett-Packard. In this type of calculator, you enter numbers onto a STACK and then after you have entered the numbers, you enter the operation (+,-, etc.) to be performed on the numbers. However, CALCPLUS includes features that go far beyond those of a simple scientific calculator, all of which can be used with the simplicity of a calculator. Here is a quick preview of the features of CALCPLUS: Stack: A 20-level Stack which you can manipulate in many powerful ways. You can perform mathematical operations on the bottom of the Stack or on the whole Stack. Memories: An array of 20 Memory Columns, each containing 20 positions. You can access the positions individually or in blocks, moving data to and from the Stack. In the process, you can do mathematical operations between the stack and the Memory Column. Data-Groups: You can combine Memory Columns into groups for making graphs and printing reports. Missing Values: If there are 'holes' in your data, you can still insert a 'place-holder' to occupy the space on the Stack, Memory Columns or Data-Groups. The missing value, which appears as -9999, is not effected by calculations on it, and when it is used in calculations, the result is also a missing value. Information Displays: CALCPLUS automatically displays all the information you need on the screen when you need it. Easy-To-Use Menus: All of the advanced features of CALCPLUS are accessed by an extensive tree of menus displayed along the bottom of the screen. Selections are made either by moving a cursor and selecting by pressing the return key or simply by pressing the first letter of the option. Printing: You can print the contents of the Stack, the Memory Columns or the Data-Groups in nicely formatted tables with titles, column headings and row headings. You can even specify printing of column summaries which can include totals, averages, standard deviations, maximums and minimums. Filing: You can save the contents of the CALCPLUS Memory Columns in a file on a disk so you can work on a project at a later time without having to re-enter any data. Graphs: You can make plots of the Data-Groups if you have the equivalent of a Color Graphics Adaptor. The plots are designed for data analysis, rather than for presentations, so they allow you to really look at the data. They may be printed on a graphics printer. J 2J Curve Fitting: You can fit seven different equations to your graphed data. You can then use the equations directly in calculations on the stack. You can print a report on the curve fitting analysis which includes the coefficient of determination(R-square), the standard error and the residuals. Statistics: When and if version 4.0 of CALCPLUS becomes avail- able, you will be able to do sophisticated statistical analyses of the data in CALCPLUS, including analysis of variance, T-tests, and multiple linear regressions. If you would really be intere$ted in having thi$ ver$ion implemented, please $end $ome tangible encouraging word$. II. SIMPLE STACK OPERATIONS: With this preview of the capabilities of CALCPLUS, now we can get down to the details of using it. When you start up CALCPLUS, you will see an empty column on the left labeled 'STACK' and below it, a red data entry area, where you will enter numbers or commands just as though it were a calculator display. The Stack is a list of numbers, waiting for you to select an operation to be performed on them. To place numbers on the Stack, type them into the entry area and then press the space bar, [SPACE], or the return key, [RET]. The entered number will move from the entry area to the bottom of the Stack. As you enter additional numbers, they are added the bottom of Stack, and so the Stack grows downwards. To operate on the two numbers on the bottom of the Stack, press one of the operation keys ( [+], [-], [*], [/], [^] ). The two numbers will be combined according to the operation and the result will replace both of them. For example, to add 2.3 and 4.6 the entry keystrokes would be: 2 . 3 [SPACE] 4 . 6 [SPACE] and the Stack would look like: STACK ----- 2.3 4.6 Then press the plus key, [+] and the Stack would look like: STACK ----- 6.9 Had you pressed the [*] key, the result would have looked like: STACK ----- 10.58 The two numbers on the bottom of the Stack have been combined according to the operation you specified, addition in the first case, and replaced by the result. J 3J Actually, in the above problem, it was not necessary to press [SPACE] after the 4.6; pressing [+] or one of the other operation keys would have entered the number on the Stack and then carried out the operation. To evaluate more complicated expressions such as: 3.1 (3.5 + 8.6) * (5.1 / 1.7 + 2.3 * 4 ) the key strokes would be: 3 . 5 [SPACE] 8 . 6 [+] leaving the contents of first parenthesis group (12.1) on the Stack, 5 . 1 [SPACE] 1 . 7 [/] dividing 5.1 by 1.8 leaving 3.0 2 . 3 [SPACE] 4 [*] multiplying 2.3 * 4 and putting the product (9.2) on the Stack, [+] adding 9.2 to 3.0 leaving the sum (12.2) on the Stack. 3 . 1 [^] raising 12.2 to the 3.1 power leaving 2331.92981 [*] multiplying 2331.92981 by 12.1 leaving the result (28216.35) as the only number on the Stack. It would probably be a good idea for you to work through several examples like this before you start using CALCPLUS seriously. However, take a minute to read the description of the CALCPLUS screen and keyboard before you start playing with numbers. The screen consists of four main areas. As mentioned above, the first is the Stack Area, the column on the left. Next to that is the Memory Area. It consists of three columns; first, a column of row names, second, a column which shows the active Memory Column with the name at the top, and third, the reference Memory Column with its name at the top. The row and column names are initially set to ROW (or COL ) plus the letters A through T. You can change the names at any time, but the memory locations are always accessed by their letter. The column at the far right is the Information Area, which will show various lists of helpful information depending upon where you are in CALCPLUS. When you start CALCPLUS, it shows the command keys and corresponding actions available to you when operating on the Stack. The three lines at the bottom of the screen are the Entry Area. All commands, data, and menu selections are made in this area. Depending upon which which section of CALCPLUS you are using, some additional information will be displayed on the bottom lines. If you should attempt an illegal operaton or make an entry error, CALCPLUS will warn you with an with an 'oops' sound and display an error message at the bottom of the screen. CALCPLUS modifies the IBM keyboard to simplify using it as a calculator. You can press the NumLock key to activate the numeric keypad and forget about using the cursor keys. When you are entering numbers or text, several of the function keys replace the J 4J cursor keys. The key assignments and the equivalent keypad keys are: [F 4] - Clears entry line. [F 5] - Moves to beginning. = [HOME] [F 6] - Moves to end. = [END] [F 7] - Changes from Insert to Overwrite mode = [INS] [F 8] - Deletes char at cursor. = [DEL] [F 9] - Moves cursor left. = [Lft Arrow] [F10] - Moves cursor right. = [Rht Arrow] Since [SPACE] is the largest and easiest key to find on the key- board, it has several frequently used functions. Stack Entry: With number in Entry Area: Transfers entry to Stack. Stack Entry: With no number in Entry Area: Duplicates BOT on Stack. Text Entry: Normal space character. Menu Selection: Exits Menu with no action. Memory Column Selection: Concludes selection process. To paraphrase, "When all else fails, press [SPACE]." Now that you know what to expect, try working some simple examples using CALCPLUS as a simple calculator. III. ADVANCED STACK OPERATIONS: The stack can be used as a simple calculator, but it also can be operated on in many powerful ways using simple one- or two-key commands. In describing the advanced stack operations we need to define three special stack locations, the number at the bottom is called BOT, the next number up is called NXT and the number at the top of the Stack is called TOP. Simple Math Operations: By now, you should be familiar with these five operations: [+] Adds NXT to BOT, removes NXT and sets BOT equal to the result. [-] Subtracts BOT from NXT, etc. [*] Multiplies NXT by BOT, etc. [/] Divides NXT by BOT, etc. [^] Raises NXT to the BOT power, etc. Stack Math Operations: In the previous discussion, all of the operations were carried out between the NXT and BOT. However, to simplify repetitious calculations, you can enter several numbers on the Stack and then operate on them all at one time using the Stack Math Operations. [#] Adds BOT to each number on the Stack, removes BOT from Stack. J 5J For example, if the Stack looked like: STACK ----- 5.3 6.2 8.1 3.2 and you wanted to add 4.7 to all the numbers, you would enter: [4][.][7] to place 4.7 as BOT on the Stack, [#] to add BOT to all the numbers on the Stack, and the result would be: STACK ----- 10.0 10.9 12.8 7.9 and the 4.7 would be removed from the Stack. The other Stack Math Operations are: [$] Subtracts BOT from each number on the Stack, etc. [@] Multiplies each number on the Stack by BOT, etc. [%] Divides each number on the Stack by BOT, etc. [&] Raises each number on the Stack to the BOT power, etc. Simple Functions: [E] (Exponential): replaces BOT with the number, e, raised to the BOT power. [I] (Integer): rounds BOT to nearest integer. [L] (Logarithm): replaces BOT with the natural log of BOT. [N] (Negative): replaces BOT with the negative of BOT. [R] (Square Root): Replaces BOT with the square root of BOT. [Y] (Y-value): Replaces BOT (X-value) with the corresponding Y-value for the Data-Group regression. You will be asked to specify the Data-Group number. Please refer to the GRAPH section, page 11, for additional information. Note: Trignometric functions are also available but will be discussed in the next section, page 7. Stack Functions: Pressing the [CTRL] key, indicated with a '^' prefix, with any of the above letter keys performs the function on the whole Stack. If this would cause an illegal operation, as for example attempting to take the square root of a negative number, NONE J 6J of the Stack function are executed, and the first offending number is highlighted. The Stack Functions are: [^E] (Exponential): replaces each number on the Stack with the number, e, raised to the number's power. [^I] (Integer): rounds each number on the Stack to nearest integer. [^L] (Logarithm): replaces each number on the Stack with its logarithm. [^N] (Negative): replaces each number on the Stack with its negative. [^R] (Square Root): Replaces each number on the Stack with its square root. [^Y] (Y-value): Replaces each number on the Stack (X-values) with the corresponding Y-values for the Data-Group regres- sion. You will be asked to specify the Data-Group number. Please refer to the GRAPH section, page 11, for additional information. Stack Numeric Operations: [A] Adds all the numbers on the Stack and shows the result as the new BOT. [K] Counts the number of entries on the Stack and shows the result as the new BOT. [!] Reads BOT and if is less than the number of empty spaces on the Stack, places BOT integers starting with 1 on the Stack. Thus, if you wanted to put ten numbers from 100 to 200 on the Stack, you would do the following: [0] [SPACE] [1] [0] [!] putting 0..10 on the Stack, [1] [0] [@] multiplying all the numbers by 10 giving 0..100 on the Stack, [1] [0] [0] [#] adding 100 to all the number on the Stack giving 100..200 on the Stack. Stack Positional Operations: It is often useful to be able to move the numbers on the Stack around. The positional operations are: [U] Rolls the Stack UP, that is, all of the numbers move up one position and TOP becomes the new BOT. [D] Rolls the Stack DOWN, that is, all of the numbers move down one position and BOT becomes the new TOP. [V] Inverts the Stack. J 7J [X] EXchanges the position of NXT and BOT. [SPACE] When there is no entry in the entry box, places a copy of BOT on the bottom of the Stack. This is known as 'duplication'. Stack Clearing Operations: [C] Clears all of the numbers from the Stack. [B] Clears the bottom of the Stack, BOT. [T] Clears the top of the Stack, TOP. Special Numbers: [~] (tilde) places pi, 3.1415926, on the Stack. [?] places the 'missing value' flag, -9999, on the Stack. Quitting CALCPLUS: [Q] Exits CALCPLUS and returns to DOS. However, before quitting, CALCPLUS gives you one last opportunity to save the contents of the memory. IV. TRIG FUNCTIONS: The trigonometric functions are available but are accessed by first pressing the letter 'O' key, [O], indicating a 'circular' function. When is is pressed, the TRIG MENU, the first of the CALCPLUS menus, will appear at the bottom of the screen. Options may be selected from a menu by using the [F9] and [F10] keys to move from option to option (or left and right arrow keys on the key pad) and pressing [RTN] to select the highlighted option, or simply by pressing the first letter of the desired option. If you wish to exit a menu without making any selection, press [SPACE]. The TRIG MENU options are: [Sin] [^Sin] [Cos] [^Cos] [Tan] [^Tan] [Inverse] [Mode] Pressing [S], [C] or [T] will replace BOT by the sine, cosine or tangent of the BOT. Pressing the [Ctrl] key along with the [S] [C] or [T] keys will replace the whole Stack with the indicated function. Pressing [I] brings up a menu for the inverse trig functions, arcsine, arccosine and arctangent, which also can be done on individual numbers or on the Stack as a whole. Pressing [M] toggles the degree mode to radian mode. The mode state is indicated by the 'R' or 'D' next to the word 'Mode'. IV. MEMORY OPERATIONS: The CALCPLUS MEMORY consists of twenty columns of twenty rows each. You may only access one of the memories at any time, but two are always displayed. The one you may access is is called the Active Memory and it appears in the left-most position of the two. The J 8J other Memory Column is called the Reference memory. When you start CALCPLUS, Column A is the Active Memory and Column B is the Reference Memory. After that, the Reference Memory will the previously displayed Active Memory. To use the memory operations, press [M]. The main MEMORY MENU will appear and the information area at the far right will now display the names of the Memory Columns and the number of entries in each. The MAIN MEMORY MENU option are: BLOCK Brings up the BLOCK MENU for block moves between the Stack and the Active Memory. The options available from this memory are described below. STORE Stores BOT in the Active Memory. You will be asked to select the row, [A..T], where BOT will be placed. RECALL Recalls a number from the Active Memory and places it on the bottom of the Stack. You will be asked to select the row, [A..T], from which to get the number. FUNCTION Brings up the MEMORY FUNCTION MENU where you may change row and column names, clear or transpose the memories. These operations will be described below. MATH Allows math operations between the Stack and memory. You will be asked for the operation ( + - * / ^ ) and then the memory row to be operated on. The number in the memory will be replaced by the result of the operation. The keys and the specific operations are: [+] MEM is set equal to MEM + BOT [-] MEM is set equal to MEM - BOT [*] MEM is set equal to MEM * BOT [/] MEM is set equal to MEM / BOT [^] MEM is set equal to MEM ^ BOT GET Selects a memory to be active. You will be asked to to select a column, [A..T] . The memory which had been the Active Memory moves into the Reference Memory position. > UP (Greater-Than Symbol {shifted or unshifted} ) Selects the next column in alphabetic order. If D were the Active Memory, then E would become the Active Memory and D would become the Reference Memory. < DOWN (Less-Than symbol {shifted or unshifted} ) Selects the previous column in alphabetic order. If A were the Active Memory then T would become the Active Memory and T would become the Reference Memory. BLOCK MENU: The block menu allows transferring blocks of numbers between the Stack and the memory. The specific transfers are: STORE Stores all of the numbers on the Stack in the Active Memory. If there are already numbers in the memory, you will be asked whether to overwrite what is there or to append the numbers on the Stack below those in the memory. J 9J NOTE: If there are more numbers on the Stack than there are empty positions in the memory, numbers will be deleted from the top of the memory to make room for the numbers from the Stack. RECALL Recalls the numbers in the Active Memory to the bottom of the Stack. If there are already numbers in the memory, you will be asked whether to overwrite the numbers that are there or to append the numbers from the memory to what is on the Stack. NOTE: If there are more numbers in the memory than there are empty positions on the Stack, numbers will be deleted from the top of the Stack to make room for the numbers being transferred from the memory. MATH Allows math operations between the Stack and the Active Memory. The math operations are: [+] MEM's are set equal to MEM + STACK [-] MEM's are set equal to MEM - STACK [*] MEM's are set equal to MEM * STACK [/] MEM's are set equal to MEM / STACK [^] MEM's are set equal to MEM ^ STACK EXCHANGE Exchanges the contents of the Stack with the contents of the Active Memory. The headings at the top of the Stack and Active Memory also exchange positions. FUNCTION MENU: The Function menu allows you to clear one or all of the Memory Columns, to name the columns and to transpose the memories. The specific functions are: CLEAR Clears the Active Memory. TRANSPOSE Transposes the rows and the columns. All of the numbers in the column A become the numbers in the first row, and all of the numbers in the first row become numbers in the first column. As an example, a memory which looked like this: COL A COL B COL C ROW A 23 46 69 ROW B 31 59 72 ROW C 43 61 89 would end up looking like this: ROW A ROW B ROW C COL A 23 31 43 COL B 46 59 61 COL C 69 72 89 The row and column headings exchang positions also. Transposing the memories will allow you to manipulated your data by row as well as by column. LABEL Applies a label to the Active Memory or to one of the Memory Rows. A secondary menu asks you if you want to J 10J label a row or a column, and if you indicate a row, you will be asked for the row, [A..T]. Then you will be asked to enter the label. You must press [RET] after typing the label. Labels are limited to 12 characters in length. The editing commands are shown at the bottom of the screen. The current label will be presented as a default value. ALLCLEAR Clears all of the Memory Columns. You will be asked to confirm that you want to clear. In addition, if you have not saved the contents of the memories, you will be asked if you want to save before clearing. VI. PRINT OPERATIONS: With CALCPLUS, you can print your data in neatly formatted tables with titles, column headings and summaries as footers to the columns. To print anything, call the PRINT MENU by pressing [P]. The information area on the right will now display the currently selected print options. The main PRINT MENU options are: STACK Prints the contents of the Stack. You will enter a com- ment line which will be printed at the top. MEMORIES Prints the contents of the memories. A secondary menu ofST- fers several options as described below. DATA-GROUP You may define and print a Data-group. The concept of a Data-group is explained in the GRAPH OPERATIONS section. When you select this option, the current Data Group assignments will overwrite part of the screen. When you return to working on the stack, the screen will be refreshed. OPTIONS You may change the print options. The settings are dis- played in the information area on the right side of the screen. LINEFEED Advances the printer one line. PAGEFEED Advances the printer to the top of the next page. The PRINT MEMORY MENU has the following options: ACTIVE Prints the Active Memory. REFERENCE Prints the Reference Memory. BOTH Prints both of the displayed memories. OTHER Prints several of the Memory Columns. You will be asked to select the columns to print. The number that can be printed depends on the width of the printer, the width of the field, and the left and right margins. The number of columns which can be printed is shown in the information area as "Cols Allowed". To select a Memory Column, press the key, [A..T], for each column. They will be printed across the page in the order you select, rather than in J 11J alphabetical order. To complete your selection, just press [SPACE]. You may select any number of columns up to the Cols-Allowed value, which depends on then characters per line and then printer field width specified in the PRINT OPTIONS MENU described below. You will then be asked to confirm your selection with a YES/NO menu. The PRINT OPTIONS MENU allows you to select the way your data will appear in a table. WIDTH You may enter the width of each column of numbers printed. The default is 14, the width used on the CALCPLUS screen. DEC PLAC You may enter the number of decimal places printed. MARGINS You may set the Left, Right, Top and Bottom margins. Select the margins you want to select from the MARGIN MENU. ROWNAMES You may select whether or not to print the row names along with the Memory Columns. COLNAMES You may select whether or not to print the column names at the head of the Memory Columns. TITLES You may chose to print up to 5 Title lines at the top of the your table. When you select printing of titles, you will be prompted to enter the titles. If you want to enter less than 5 lines, just press [RETURN] without entering any text to conclude the entry process. FOOT OPS You may print Memory Column totals, averages, standard deviations, and maximum and minimums for each of the columns. The options are selected from the FOOT OPTIONS MENU. SETUP You may enter setup command for your printer. You are responsible for knowing the setup commands for your printer. The format is: \xx\xx where xx represents the ASCII code for the command. You are responsible for setting the printer for a line width consistent with the right margin. VII. FILE OPERATIONS The File menu allows you to save the memories, including the row and column names and to recall a previously saved file. The files are saved with a .CLC extension. The FILE MENU options are: DIR Shows the .CLC files on the active drive in the infor- mation area on the right. LOAD Loads a previously saved file. You will be asked to enter the file name. DO NOTE Fenter the .CLC extension. SAVE Saves the contents of the memories. You will be asked to enter the file name. DO NOTE Fenter the .CLC extension. J 12J VIII. GRAPH OPERATIONS: The Graphs menu allows you to plot your CALCPLUS data on simple X/Y plots. You may connect the points with lines, or just plot the data as points with symbols. You may fit several types of curves to the data, a process formally called regression. Of course, to do all of this, you must have a graphics adapter and monitor. When you select the type of curve to be fitted you may also request that the results of the regression analysis be printed. After you fit a curve to your data, then when you are working on the stack, you may calculate the the predicted Y-value corresponding to BOT simply by pressing the [Y] key. You may do the same for all of the entries on the Stack by pressing [CTRL] along with the [Y]. The graphs displayed on the screen can be copied to the printer provided you have the DOS GRAPHICS.COM file on your disk and you load it before starting CALCPLUS. Please complain to IBM, not me, about the quality of the graphics that come out on the printer. However, before describing the use of the Graphics operations, I must introduce the concept of Data-Groups. The Memory Columns of CALCPLUS hold only 20 values each. Occasionally, it is necessary to graph and work with a set of data containing more than 20 items. To deal with larger sets of data, the Memory Columns may be stacked up, one on top of the other, to form a Data-Group. Each Data-Group can contain up to five Memory Columns, or 100 items. You may define up to 8 of these data groups, identified as 1..8. Thus, for instance, DG-1 might contain Memory Columns A, C, and E, DG-2 might contain Memory Columns B, D and F, and DG-3 might contain memory colunms T, R, and S. You have complete freedom in defining the Data Groups. However, all groups must contain the same number of Memory Columns and the same total number of items. The Data groups can be defined from the GRAPHICS MENU or the PRINT MENU. In plotting the data, the first Data Group, DG-1, will be plotted as the X-variable and the next seven groups will be plotted as the multiple Y-variables. CALCPLUS automatically defines two Data-Groups on start up. DG-1 contains Memory Column A and DG-2 contains Memory Column B. Thus using this default Data-Group configuration, the contents of Memory Column B would be plotted against Memory Column A and the curve fitting would determine the best equation for the values in Column B as a function of those in Column A. To begin making a graph, enter your data in the Memory Columns, and then press [G] to reach the GRAPH MENU. The CALCPLUS screen will disappear and the GRAPH STATUS screen will appear. The top left of the screen displays the current Data-Group assignments. Below that, the current regression options and results for each Data-Group are displayed. Below that, the Appearance Options (lines, symbols or both) are displayed. The contents of the Memory Columns are displayed at the right of the screen to assist you in defining the Data Groups. The options in the GRAPHICS MENU are: APP'RNCE You may specify whether the graph should show the data as points, as lines or as both. You can select a different option for each Y-variable (Data-Group). DEF DGRP This option lets you define a set of Data-Groups. The definition process is quite simple. You are first asked to select the Memory Columns to be included in DG-1 up to J 13J a maximum of five. While the text line at the bottom of the screen prompts you, it is easier to watch the Red Block in the Data Group display at the top of the screen to follow your progress. If you want less than five columns, press [SPACE] to conclude the selection process for DG-1. Next, you will be asked for the memories in the next Data-Group, but only for as many as you entered into DG-1. When DG-2 is full, then the Red Block moves to the next Data-Group column. If you do not want to define more Data-Groups, then again, press [SPACE] to conclude defining the Data Groups. When you define a new set of Data Groups, the regression options are all reset to NONE. GRAPH This option starts drawing the graph, doing the curve fitting and drawing the fitted curves. Once the graph has been drawn, it may be sent the the printer by pressing the [SHIFT][PrtSC] keys. Press any key to return to the GRAPH MENU screen. The report of the regressions, if it has been requested, will be printed out as the fitted curve is drawn. Before the drawing the graph, CALCPLUS asks if the data should be sorted by the X-variable if you have specified lines be drawn connecting the point. If there is only one Y-value for each X-value then you should respond by pressing [Y]. However, if there should be multiple Y-values for each X-value, as for example if the X-Y points described a circle, then you shoul respond by pressing [N]. REGRESS Use this option to select the type of regression curve and several other options. The details are described below. SCALES Use this option to specify the maximum and minimum values for the X- and Y- axes, or alternatively, to have CALCPLUS set the scale and tic values automatically, the default option. When CALC sets the scales, it uses tic values of 1, 2, 5 to a power of 10. LABELS Use this option to enter two title lines (actually up to five lines, but only the first two are printed) and the Labels for the X- and Y- axes. PAGEFEED Advances the printer to the top of the next page. Selecting Regressions: When you select a regression, you are first asked for the DG number if you have defined more that 2 Data-Groups, (2 through the number of DG's defined), and then the type of curve on the REGRESSION MENU. Then you are asked if you want the regression results printed. The printed regression results include: Title Lines (up to five), Data-Group number, Regression Curve Type, Regression Equation showing the regression coefficients, Table showing the X-values, the Y-values, the predicted Y-values and the residuals, (the differences between the Y-values and the predicted Yvalues), Coefficient of Determination, Standard Error. J 14J The REGRESSION MENU equations are: NONE No regression curve will be fitted. This is the option assumed until a regression is specified. EXP The equation is: Y = A * exp( B * X ) The linear form is: Ln ( Y ) = Ln ( A ) + B * X The values of Ln ( A ) and B are determined by a least squares regression of Ln ( Y ) against X. LOG The equation is: Y = A + B * Ln ( X ) The linear form is: Y = A + B * Ln ( X ) The values of A and B are determined by a least squares regression of Y against Ln ( X ). POW The equation is: Y = A * X ^ B The linear form is: Ln ( Y ) = Ln ( A ) + B * Ln ( X ) The values of Ln ( A ) and B are determined by a least squares regression of Ln ( Y ) against Ln ( X ). The next four curves are first- through forth-order polynomial equations and are fitted by a Multiple-linear-regression technique. A first-order polynomial is more commonly known as a linear regression. The forms of these equations are: 1-POLY Y = A0 + A1 * X 2-POLY Y = A0 + A1 * X + A2 * X^2 3-POLY Y = A0 + A1 * X + A2 * X^2 + A3 * X^3 4-POLY Y = A0 + A1 * X + A2 * X^2 + A3 * X^3 + A4 * X^4 WARNING! Save your data before trying to do the regressions. If you are working with very large numbers, the program may fail because of overflow errors, even though it contains extensive, but not complete, error trapping. X. PROGRAMMING NOTES: CALCPLUS is a 3300 line program written in TurboPascal, and occupies almost all of the 64K allotted for code in TurboPascal. Much of the code is taken up with error trapping routines for illegal operations and providing intellegent recovery from things like dividing by zero or taking the square root of a negative number. Unfortunately, I could not trap all calculations. Hence, the warning about large numbers in regressions. If you come across any serious bugs, please let me know. If possible, I will fix them and send you an updated version. J 15J XI. PAYMENT: If you find CALCPLUS version 3.01 useful and valuable, please show your appreciation in the most tangible way possible. Send $15.00 in cash or check to: David L. Alexander Integrated Scientific Software 16 Cady Lane Wappingers Falls, NY 12590 Remember, it is only through user's support that programs like this can be made available at such a reasonable cost.