home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-08-20 | 82.3 KB | 1,990 lines |
- README.TXT
- for
- SPYDERX
- Version 1.4
-
-
- DEFINITION OF SHAREWARE
-
- Shareware distribution gives users a chance to try software before
- buying it. If you try a Shareware program and continue using it, you
- are required to register it.
-
- Copyright laws apply to both Shareware and retail software, and the
- copyright holder retains all rights, with a few specific exceptions
- as stated below. Shareware authors are accomplished programmers, just
- like retail authors, and the programs are of comparable quality. (In
- both cases, there are good programs and bad ones!) The main difference
- is in the method of distribution. The author specifically grants the right
- to copy and distribute the software, either to all and sundry or to a
- specific group. For example, some authors require written permission
- before a commercial disk vendor may copy their Shareware.
-
- Shareware is a distribution method, not a type of software. You should
- find software that suits your needs and pocketbook, whether it's retail
- or Shareware. The Shareware system makes fitting your needs easier,
- because you can try before you buy. And because the overhead is lower,
- prices are lower also. Shareware has the ultimate money-back guarantee --
- if you don't use the product, you don't pay for it.
-
-
- WHAT IS SPYDERX?
-
- SpyderX provides you with the ability to create hyptertext webs
- of cells containing text and mathematical expressions; and to
- use those webs to store data, solve problems, and support your
- own creative process.
-
- A few of the many possible applications for SpyderX are:
- hypertext notepad and database, job cost estimator, scheduling tool,
- financial modeling tool, dynamic system simulator, user interface
- design tool, numerical differential equation solver, semantic network
- modeler, requirements analysis tool, contingency planner, decision
- support system, taxonomy assistant, and help system
- host.
-
- Each cell in a SpyderX web contains a name, a text field, a value field,
- and a formula field. References to other cells, which appear in any field
- of a cell, may be used as hot-links to those cells. Cells may refer to
- themselves, making possible cycles of hypertext reference, and iterative
- calculations.
-
- Output of the program includes results of calculations and reports of
- cell contents, and may be directed to the LCD display, the text field
- of a cell, or to a file in memory, which may be uploaded to a desktop
- computer for further analysis or printing. This version of SpyderX,
- version 1.1, runs on a Psion Series 3 or 3a.
-
- WHOM IS SPYDERX FOR?
-
- SpyderX was developed by an engineer and software developer for
- engineers, scientists, and software developers. It supports, on a
- palmtop computer, common design, modeling, estimating, scheduling, and
- computing needs of people who deal with complex subjects, systems,
- and interactions. A certain amount of practice is necessary to
- realize the maximum benefit from the program. This practice develops
- skills for navigating hypertext webs, and promotes a cellular
- perspective on problems and systems.
-
- NEW IN VERSION 1.3
-
- Version 1.3 fixes a bug that cropped up in version 1.2, which prevented
- the registration key from having an effect on the display of reminders
- to register.
-
- Also in version 1.3, the reporting function is expanded to include
- InPointer and OutPointer reports, and well as a Trail report. The
- pointer reports are vital for cross referencing complex webs, such
- as program structure charts, hierarchic state machine descriptions,
- and Pert graphs. The trail report allows the user to obtain
- a history of the cells which have been entered via a Linkto command.
-
- SpyderX now can serve as a link/paste client via the "bring" command.
- Unfortunately, it cannot yet be a server. That feature must wait
- on a change of underlying software libraries.
-
- Finally, the size of SpyderX was reduced by 15%, and its speed was
- increased somewhat. Current users will probably notice the difference.
-
- VERSION 1.3a -- MAINTENANCE RELEASE
- Fixed a bug which caused the formula field of the home cell
- to be cleared when a web was loaded.
-
- VERSION 1.4 -- MAINTENANCE RELEASE
- Fixes a bug introduced in version 1.3a which made new cells invisible
- to formulas until the formulas were changed.
-
- INSTALLING SPYDERX
-
- 1. Before installing SpyderX on your Psion 3 or 3a, create a \web\
- directory. This is where the program will keep its data files, unless
- you direct it to store them elsewhere.
-
- 2. If you have no \app\ directory on your Psion, create one
- to hold the Spyder executable.
-
- 3. Use PKUNZIP or equivalent to decompress the SpydrX.zip file into
- SpyderX.app, this Readme.txt file, and a collection of sample webs,
- labeled *.web.
-
- 4. Use MCLINK, WINLink3, PsiWin or some other PSION remote file transfer
- program to copy SpyderX.app to the \app\ directory on your chosen solid
- state disk drive.
-
- 5. Then transfer the sample webs to the \web\ directory that
- you created in step 1.
-
- 6. Choose Install from the Apps menu of the system screen, and
- select SpyderX for installation.
-
- 7. If all goes well, the SpyderX icon will appear on the desktop,
- along with sample webs which you copied to the \web\ directory.
-
- 8. Try the simple tutorial in the next section of this Readme file.
-
- FIRST TUTORIAL
-
- If SpyderX was sucessfully installed, there will be several sample webs
- to choose from under the SpyderX icon (A spider hanging from a thread).
-
- ====Piggy
-
- Select the web called "Piggy" and press return. Your Psion should
- display a window divided into two panes by a horizontal line.
-
- The top pane, the narrow one, contains the words "PIGGY--home". This is
- the name pane, a read-only pane, whose leftmost word is the name of the
- web, and whose rightmost word is the the cellname (home).
-
- The larger pane is the text pane. It contains an edit box in which
- text may be entered into the text field of the currently displayed
- cell.
-
- Every SpyderX web contains a "home" cell, which is diplayed on entry to
- the web; and which cannot be deleted. The text area of the home cell is
- frequently used to describe the purpose of the web, and to present a
- simple map of its contents. This information is supplied for the Piggy
- web, as you can verify by using the arrow keys to scroll through the text
- field of the cell.
-
- ====|====Browsing the Web
- Press the menu button and you will see in the menu bar an entry called
- 'Browse'. Select that entry and the two choices 'Prev' and 'Next' are
- displayed with their accelerators PSION+ and PSION-. Use the
- accelerators to browse the Piggy web, returning to the point from which
- you began.
-
- You will notice that the cells in the web appear in alphabetic order
- when browsed, and that browsing forward from the last cell in sequence
- returns you to the first cell in sequence.
-
- ====|====Changing the Current Cell
- Aside from browsing, there are three other methods of moving from
- one cell to another. These methods are: 'Linking' to a cell, 'Going'
- to a cell, and following a hypertext link. The next three short
- paragraphs describe how to perform each operation.
-
- ====|====|====Linking to a Cell
- When you 'link' to a cell, you transfer to that cell with the
- expectation of returning to the current cell. To try this, choose
- 'Linkto' from the Cell menu, and enter the name of the cell
- 'pennies' into the dialog box that appears. When you press enter,
- the screen should show the 'pennies' cell. Return to the cell you
- left by pressing Esc, or choosing 'Unlink' from the Cell menu.
-
- ====|====|====Going to a Cell
- When you 'go' to a cell, you transfer to that cell with no
- expectation of returning to the current cell. To try this, choose
- 'Goto' from the Cell menu, and enter the cell name 'dimes' into
- the dialog box that appears. When you press enter, the screen
- should show the 'dimes' cell. You will have to 'browse' your
- way back to the cell you left.
-
- ====|====|====Hypertext Links
- Wherever the name of another cell appears in the text pane
- of the current cell, you can use that name as a hypertext link
- to the other cell. In Piggy, hypertext links to other cells
- are marked by preceding them with ampersands (&). This convention
- is unnecessary for the functioning of the links, but it makes
- it easier to navigate the web.
-
- To follow a hypertext link, position the cursor in the text stream
- a bit before the link, and select 'Hunt' from the Cell menu.
- SpyderX will scan forward within the current cell until it finds
- a valid link, and then transfer to the cell named in that link.
- The destination cell will replace the one currently shown. To
- return to the previous cell, press the Esc key, or select 'Unlink'
- from the Cell menu.
-
- NOTE: Whenever the name of a cell is typed into an edit pane,
- it automatically becomes a hypertext link to that cell.
-
- ====|====The Math Window
- In addition to the text window, each cell also has a math window,
- which you may see by choosing 'Math' from the Edit menu, or by
- using the diamond key on the 3a.
-
- The math window is divided into three panes. The top one, as
- before, is the name pane, a read-only pane which contains the
- name of the web followed by the name of the currently displayed
- cell.
-
- The middle pane is the value pane. Into this pane are entered
- values which one wishes to associate with the cell; and from this
- pane may be read the results of calculation, the latest value of
- the cell.
-
- The bottom pane is the formula pane. It contains an edit box, into
- which a formula may be entered for the calculation of the value of
- this cell. The formula is an arithmetic expression which may employ
- cell names and built-in functions to compute a new value for the
- cell in which it appears.
-
- NOTE: You can transfer between panes with the TAB key.
- NOTE: Cell names in formulas may be used as hypertext links to other
- cells in the say way as cell names in text fields.
-
- ====|====Calculating a Result
- Next we will see how a web can be used to calculate values of interest.
- In this case, our net worth, or the sum of the coins in our piggy bank
- is the value of interest.
-
- Select the Math window, and use the browse accelerators PSION+ or
- PSION- to traverse the cells of the PIGGY web. Notice that most of
- the cells have names corresponding to the names of denominations
- of US coinage.
-
- Enter into the value field of each cell whose name is a denomination
- of coinage, the total number of coins of that denomination which you
- have on hand. (Use TAB to position the cursor to the value field).
-
- Then choose 'Evaluate' from the Special Menu. Unless the Calculation
- options have been changed since you installed PIGGY, you should see
- a line of text such as the one below:
-
- Piggy contains $74.13
-
- The format of the output is controlled by the Calculation Preferences
- which may be reached from the 'Preferences' selection in the Special
- menu. Notice also that the value in the cell 'piggy' has changed to
- the same value as the one listed.
-
- ====|====Reporting on Cell Contents
- To see an alphabetic list of all the cells in the PIGGY web, together
- with the value of each cell, you may select 'Report' from the
- Special menu. The following list should appear (your values may
- be different):
-
- dimes 231
- half_dollars 43
- home
- nickels 242
- pennies 1343
- piggy 74.13
- quarters 0
- silver_dollars 4
-
- If you did not get such a list, it may be because you changed the
- Report preferences accessible from the 'Preferences' entry of
- the Special menu.
-
- SECOND TUTORIAL
-
- Our goal for this tutorial is to create a new, empty web, to add
- cells to it, and to create links between the cells. To this end we
- will make a web which lists the names and addresses of several people
- we know, and also add a bit of useful information not usually found
- in such a list.
-
- ====Making an Empty Web
- Enter SpyderX with an existing web. Then choose 'New' from the File
- menu. SpyderX will respond by showing you the home cell of a web
- named NEW. Browsing forward or backward, you will see that home
- is the only cell in the web.
-
- ====Adding Cells
- A new cell may be inserted into our web by using the 'Add', 'Linkto',
- or 'Goto' commands in the Cell menu. For now choose 'Add', and answer
- the dialog with the name of someone with whom you are friendly or
- acquainted.
-
- If the "Bad Cell Name" dialog appears, it is probably because you
- left a space between the person's first and last name. Cell names
- may not have spaces in them; but it is OK to use the underscore
- character in place of the space you would normally use.
- (Some software types like to jam words up together and indicate
- separate words by the use of capitalization, as in WhatsInAName).
-
- If you repair this defect, and still get the "Bad Cell Name" dialog,
- it may be because your friend's name begins with a number, such as
- '3Cpo', or a special character, as in '#Sterling'. All cell names
- must begin with an alphabetic character.
-
- If there is no cell which has the name you entered, one is created.
- You may type in whatever information you wish about this person,
- including, for example: address, phone number, height, weight, and
- number of outstanding parking tickets. Keep in mind that you will be
- able to use the 'Find' command in the Edit menu to search your web on
- the information which you have entered.
-
- Repeat the process of adding cells with names of associates until
- you have entered several persons into the little database. Next we
- will enter connections between the people in the web.
-
- ====Connecting the Cells
- Goto, Linkto, or Browse to the cell for the first person you entered,
- and enter the text field for that person. Scroll down to the bottom
- of the text field, start a new line, and enter the words:
-
- TALKS TO:
-
- Then enter the names of persons with whom you know that this person
- communicates on a daily basis. If the person involved is already
- in your database, make sure you spell the name the same way as it
- appears in the cell name. If the person involved is not already
- in your database, you may want to considering entering the person.
-
- Go through the cells of the database, adding the links wherever you
- know them to exist, and adding persons where it seems appropriate.
- When you finish, you will not only have a list of acquaintances and
- whatever information you wish to keep about them; you will also have
- a map of information flow among your associates.
-
- By setting the report preferences to InPointers or OutPointers and
- choosing Report from the Special menu, you can see a report on this
- information flow.
-
- If you are like many engineers, you probably don't care how information
- travels among your associates. Nevertheless, the exercise can be useful.
- If you tell a fascinating fact to one of the persons in your database,
- you can use the connections to predict who will know that fact after a
- day or so.
-
- The point here is that we are in the habit of thinking about the objects
- in our databases, whereas we might benefit from thinking as well about
- the connections between them. With SpyderX, this is easy to do.
-
- ====Searching the Web
- In addition to following chains of links which you type into the text
- field of the web, you can use the 'Find' function in the Edit menu to
- go to the next cell having a specified text string, or to the closest
- previous cell having a specified text string. Your search may be case
- sensitive or not. You may set default search preferences by obtaining
- the Preferences dialog (choose Preferences from the Special menu), and
- then choosing 'Searching' from that dialog.
-
- ====Saving the Web
- To save the database you have made, choose 'Save As' from the File menu,
- and answer the dialog with the name you have chosen for your web. You
- may include, or not include the suffix 'web', as you wish. If you use
- another suffix, the web will be saved with that suffix.
-
- SPYDERX OUTPUT
- ====Purpose of SpyderX's Output
- SpyderX is a personal, portable scratchpad for thinking about complex
- phenomenon, systems, and relationships. It is not intended to communicate
- the results of that thought to others. SpyderX does not generate
- elaborate reports, or visualize the result of mathematical calculations.
- Instead it provides flexible, primitive tools to format output and
- results in a way that can be understood by the user, and transferred
- to other programs or computers for further analysis.
-
- ====Kinds of Output
- The next two subsections describe the kinds of output generated by the
- SpyderX program. Subsequent sections will introduce further information
- on the mechanics of controlling that output.
-
- ====Report Output
- The SpyderX 'Report' entry, in the Special menu, permits the user to
- select some or all of the name, text, formula, or value information
- in some or all of the cells, and format it into simple ASCII text streams
- which are conveyed to the current output destination of the program.
- This feature permits the user to create indexes of webs, list for analysis
- the formulas involved in a web, perform complex recombinations of cell
- contents, dump web contents to files for upload to a host computer,
- and to generate so-called "comma-separated text" files for exporting
- SpyderX data to databases and other programs.
-
- Also available are cross-reference reports called "InPointers" and
- "OutPointers", which assist in understanding the structure of a web;
- and the report called "Trail", which may be used to keep track of
- your current hierarchic position resulting from a sequence of
- "linkto" or "hunt" requests.
-
- ====Calculation Output
- For calculations, the user may choose between no output, generic output,
- and formatted output.
-
- ====|====No Output
- If the user chooses no output, no results will be directed to the
- current output destination, although the value fields of affected
- cells will change.
-
- ====|====Generic Output
- Generic output consists of a title line containing a list of all the
- cells accessed in a calculation; followed by one line for each iteration
- of the values of each of those cells at the end of the iteration. Below
- is a sample of generic output for an iterative calculation:
-
- apr,month,itm,prin,pmyt
- 0.075,1,137.09,21593.41,481
- 0.075,2,134.96,21249.51,481
- 0.075,3,132.81,20903.46,481
- 0.075,4,130.65,20555.27,481
- 0.075,5,128.47,20204.92,481
- 0.075,6,126.28,19852.39,481
- 0.075,7,124.08,19497.67,481
- ...........................
-
- ====|====Formatted Output
- Formatted output consists of a title line derived from a format string,
- followed by one line per iteration of the values of cells specified in
- the format list, separated by other characters included in the format
- list for the purpose of clarifying the meaning of the values. One might
- format the output for the calculation whose generic output is shown
- above, to read as follows:
-
- for month 1, principal remaining is 21593.41
- for month 2, principal remaining is 21249.51
- for month 3, principal remaining is 20903.46
- for month 4, principal remaining is 20255.27
- for month 5, principal remaining is 20204.92
- for month 6, principal remaining is 19852.39
- ............................................
-
- ====Choosing Output Destinations
- Output of reports or calculations may be directed to the screen, to a
- cell within the web, or to a file in the Psion's memory. To set the
- output destination, select the 'Preferences' entry in the Special menu.
- A dialog menu with the following contents will appear:
-
- Preferences for:
- * Output
- * Numbers
- * Calculation
- * Searching
- * Report
-
- Choose the 'Output' choice to reach the Output Preferences dialog,
- which contains the following contents:
-
- Output Preferences:
- * Destination <- File ->
- * Dest Name mugga
- * Newline Type <- CRLF ->
-
- When output is directed to the screen, it is displayed one screen at a
- time, with a prompt required before the next screen is displayed.
-
- When output is directed to a file or to a cell, the name of the file or
- cell is entered by typing it into the Dest Name field of the dialog.
-
- When output is directed to a file, the type of newline generated can be
- controlled by the third entry in the Output Preferences dialog. If the
- output will be exported to an IBM compatible computer, it is a good idea
- to use the 'CRLF' option for newline. If the output will remain on the
- Psion, or will be exported to a Macintosh or Unix computer, the LF option
- works better.
-
- TIP: By choosing 'Cell' for the destination, and by carefully setting
- the report format, the user can generate a handy index of the web within
- the cell named in the dialog box. The index will be particularly useful
- since all cell names output by the report are automatically hypertext
- links to the cells which they represent.
-
- REPORTING CELL CONTENTS
-
- ====Specifying Report Output
- To specify what information will appear in Report output; select the
- Special menu, and choose the 'Preferences' entry. The Preferences
- dialog (shown above) will appear. Select 'Report' from that dialog,
- and the Report Preferences dialog will appear:
-
- Report Preferences
- * Report on All Cells? <-Yes->
- * Report Type <- Formatted ->
- * Report Format \n\N\n\V\n\F\n\T
-
- The first question in the dialog tells SpyderX whether or not to report
- on all cells. The second tells it what kind of report to generate. The
- third tells it which information to include for each cell in a formatted
- report, if that is the type of report that is selected.
-
- ====|====Report Cell Selection
- Answering Yes to the "Report on All Cells?" question will assure that
- when the user elects to generate a report, all of the cells in the web
- will be reported, according to the format specified. Answering No will
- cause the report function to select a subset of the cells in the web.
-
- The subset of cells selected for reporting depends upon an algorithm
- executed by the report function. If there is a highlighted text selection
- in the active edit box at the time a report is requested, SpyderX will
- scan that selection for valid cell names, and generate a report on all
- the cells named in that selection, in the order in which they appear.
- If there is no highlighted selection in the active edit box, SpyderX
- will generate a report on the current cell only.
-
- ====|====Report Type
- There are four types of reports. They are the Formatted report,
- the InPointers report, the OutPointers report, and the Trail
- report.
-
- ====|====|====The Formatted Report
- The appearance of a formatted report depends upon the content of the
- Report Format string in the Report Preferences dialog. If nothing is
- entered in the report format string, no output will be generated when
- Report is chosen from the Special menu.
-
- If the report format string is not empty, then choosing Report from
- the Special menu will cause that string to be scanned and interpreted
- for each cell in the selected cell list.
-
- When the report format string is interpreted for a cell, most
- characters in the string are copied directly to the output destination.
- Substitutions are made; however, for character pairs which begin with
- the backslash (\). The substituted text is copied to the output in the
- place of those character pairs.
-
- Character pairs for which substitutions are made during interpretation
- of the report format string are:
-
- '\n' A newline sequence is copied to the output in the place of
- a backslash followed by a lower case n.
-
- '\N' When upper case N appears in the report format after the
- backslash character, the report generator substitutes for the
- pair of characters the name of the cell for which the format
- string is being interpreted.
-
- '\V' Backslash-V causes the value of the cell to be substituted for
- the two characters.
-
- '\F' Backslash-F is replaced in the report by the formula field of
- the cell being interpreted by the report formatter.
-
- '\T' Backslash-T results in the outputting of the text field of the
- cell being reported.
-
- Any other two character sequence beginning with a backslash will cause
- the second character only to be output to the report. This includes
- the string '\\' which is replaced in the output by a single backslash.
-
- If the report format string is not empty, but neither does it contain
- any of the character sequences above, it will be copied verbatim to
- the output once for each cell which has been selected.
-
- ====|====|====InPointers Report
- For each cell in the report cell selection, this report outputs a
- list of all the other cells in the web which refer to the cell.
-
- ====|====|====OutPointers Report
- For each cell in the report cell selection, this report outputs
- a list of all the other cells to which this cell refers.
-
- ====|====|====Trail Report
- The Trail Report merely lists from most recent to most ancient,
- all of the cells placed on the Trail by Linkto requests, that have
- not yet been popped off by Unlink requests.
-
- ====Sample Reports
- Below you will find described the way in which reports are formatted
- for some of the sample webs included with the SpyderX distribution.
-
- ====|====Websites
- The web called "Websites" is a model of some of the World Wide Web sites
- accessible from Netcom's Netcruiser Home Port. Each cell contains a
- description of a single WWW home page, and links to other home pages
- which are accessible from that page. SpyderX allows the user to
- produce a map or index of WWW home pages that is structured in the
- same way as the WWW itself.
-
- The report format string for 'Websites' is "\n\N". The report
- preference dialog question about whether to report all cells is
- answered "Yes".
-
- When you choose 'Report' from the Special menu, what you get is a list
- of the names of all the cells in the Websites web:
-
- CERNWebServersList
- ClickableMapOfEurope
- ClickableMapOfWorld
- Colorado
- GovernmentAndLawDestinations
- GuidedTour
- ..........
-
- If you used the output preferences to direct that list into the home
- cell, your report creates an instant hypertext index of the Websites
- web within its home cell.
-
- ====|====Finance
- The web called "Finance" allows you to compute the monthly payment
- necessary to pay off a loan of a given amount, at a prescribed
- interest rate, in a specified number of monthly payments.
-
- Sometimes, when you are working on a calculation, it helps to see all
- of the formulas on the same screen or page. The report format string
- of the Finance web is:
-
- \n\N:=\F
-
- When a report of all cells is generated from the Finance web using this
- string, the result is:
-
- apr:=
- home:=
- i:=apr/12
- n:=
- power:=pow(1+i,n)
- prin:=
- pymt:=prin*power*i/(1-power)
-
- ====|====Quotes
- The web called Quotes has a report fomat string that can be used to
- copy the contents of the web, except for the value field, into a single
- stream, which may be saved into a file for upload, or scanned as it
- goes by on the LCD screen. The format string reads:
-
- "\n\T\n --\N\n\F\n"
-
- Here is a selection of the output:
-
- My work is being destroyed almost as soon as it is printed.
- One day it is being read; the next day someone's wrapping fish in it.
- --Al_Capp
- Author of Li'l Abner.
-
- If we had no faults, we should not take so much pleasure in
- noticing them in others.
- --Duc_De_La_Rochefoucauld
- 1613-1680
-
- Surely you're joking Mr. Feynman!
- --Eisenhart
- On the occasion of Mr Feynman requesting both creme and lemon
- in his tea at the Princeton Dean's tea.
-
- He who knows does not speak.
- He who speaks does not know.
- --Lao_Tzu
- And yet he speaks.
-
- ====|====Pert
- This web computes the critical path time to completion of a
- construction project. The report format string has been arranged to
- print a comma-separated text file of the task name, and completion time
- for every cell in the web. The report format string is:
-
- \n"\N","\V"
-
- The resulting report is:
- "BuildFoundation","3.3"
- "BuildUpperStructure","17.5"
- "ClearLand","1.5"
- "CompleteExterior","12"
- .........
-
- To change the order in which the cells come out, answer No to the
- question in the report preferences dialog about whether you want
- to report on all cells. Then create a list of the cell names in
- the order in which you want them to appear, select the list and
- choose 'Report' from the Special menu.
-
- The Pert web is also a good example of the utility of the InPointers
- report. If we request an InPointers report for the text fields of all
- the cells in Pert, we obtain:
- BuildFoundation
- <ClearLand
- <path1
- <path2
- <path3
- BuildUpperStructure
- <BuildFoundation
- <path1
- <path2
- <path3
- ClearLand
- <home
- <path1
- <path2
- <path3
- CompleteExterior
- <BuildUpperStructure
- <path3
- CompleteInterior
- <ElectricalWork
- <path1
- <path2
- <PlumbingWork
- ....
- ....
-
- Not only does this report show us the prerequisites for beginning each
- task in the construction project, it shows to which path or paths each
- task in the project belongs.
-
- CALCULATING WITH SPYDERX
-
- In this section will be described the method of specifying calculation
- output, the rules of evaluation used by the SpyderX calculator, and
- examples which illustrate the use of those rules.
-
- ====Specifying Calculation Output
- To specify what information will appear in Calculation output;
- select the Special menu, and choose the 'Preferences' entry. The
- Preferences dialog (shown previously) will appear. Select 'Calculation'
- from that dialog, and the 'Calculation Preferences' dialog will appear:
-
- Calculation Preferences
- * Recalc All Cells <-No->
- * Calculation Results <-FormattedList->
- * List Format %month,%prin
- * Default Evaluation Rule <-Propagate->
-
- The first item in the dialog tells SpyderX whether or not to select all
- cells for calculation. The second item in the dialog lets the user
- select whether results will be output at all, and if so whether the
- format will be generic, or specified by the string which is entered in
- the third dialog item. The fourth item tells SpyderX the default
- evaluation rule to use: Propagate or Iterate (more on this later).
-
- ====|====Selection of Cells to Calculate
- The first choice list in 'Calculation Preferences' allows the user to
- answer Yes or No to the question whether to recalculate all cells in
- the web. This affects not only the choice of results to output, but
- also the amount of time taken for the calculation. The more cells
- calculated, the longer each iteration will take.
-
- If the user answers Yes to the first question, all cells in the web
- are selected for calculation. If the user answers No, a selection of
- cells will be calculated the next time the user chooses 'Evaluate' from
- the Special menu. The particular selection, in the latter case, will
- depend upon whether there is an edit box selection, and which cell is
- currently showing in the window.
-
- If there is a highlighted edit box selection when the user chooses
- Evaluate, all of the valid cell names in that selection will be
- calculated at each iteration. If there is no highlighted edit box
- selection, only the currently visible cell will be calculated at
- each iteration.
-
- (In reality more cells may be calculated at each iteration than are
- selected for calculation. The formula fields of selected cells may
- refer to cell names not in the selection. If so, those selected
- cells may be calculated as well as any cells referred to in THEIR
- formula fields, and so on).
-
- ====|====Calculation Results
- One of three possible choices may be selected in this dialog item:
-
- ====|====|====Don't List
- No output is listed as a result of calculations. This choice provides
- the shortest time of calculation. Even though no calculation output
- is generated, you may view the results (at the end of the last
- iteration) by choosing to "Report" the values of cells of interest,
- or by viewing each cell for which a value is required.
-
- ====|====|====Generic List
- Calculated results are presented for each cell calculated. This may
- be more than the number of cells selected, since it may be necessary
- to calculate more cells than those selected in order to obtain values
- for the selected cells. Typical generic list output looks that that
- shown below:
-
- apr,month,itm,prin,pmyt
- 0.075,1,137.09,21593.41,481
- 0.075,2,134.96,21249.51,481
- 0.075,3,132.81,20903.46,481
- 0.075,4,130.65,20555.27,481
- 0.075,5,128.47,20204.92,481
- 0.075,6,126.28,19852.39,481
- 0.075,7,124.08,19497.67,481
- ...........................
-
- ====|====|====Formatted List
- For formatted listing, a header may or may not be presented, depending
- upon the content of the List Format (line 3 of the dialog).
-
- The content of the formatted result chunk generated for each iteration
- depends upon rules described in 'Formatting Calculation Results',
- which is the next section.
-
- ====|====|====Formatting Calculation Results
- ====|====|====|====Format of the Header Line
- If the first character of the List Format is a tilde ('~'), no header
- line is generated for the calculation. If it is not a tilde, the
- header line is generated in accordance with the following rule:
-
- A newline is output. Then the contents of the List Format string
- are copied directly to the output, except that any percent signs
- in the format string are ignored. Wherever the character pair
- '\n' appears in the List Format, it is replaced with a newline
- sequence.
-
- ====|====|====|====Format of Each Iteration Chunk
- The output generated at each iteration of a calculation depends upon
- the content of the List Format string. The manner of this dependence
- is described in the rule below:
-
- The contents of the List Format string are scanned,
- and copied to the output until a percent ('%') sign is
- encountered. The next word after the percent sign is
- read to determine if it is a valid cell name. If it is,
- the current value associated with that cell is substituted
- for the cell name in the output string. Scanning and outputting
- of the List Format string is then resumed until the next percent
- sign or the end of the string is reached. Wherever the character
- pair '\n' appears in the List Format, it is replaced with a
- newline sequence.
-
- It is important to notice that the selection of cells for formatted
- output is controlled entirely by the format string, and has nothing
- to do with the selection of cells for calculation. This is necessary
- so that you can view only certain cells at each iteration, regardless
- of how many cells are calculated.
-
- ====|====|====Calculation Format Examples
- ====|====|====|====Example 1
- The List Format string in the Calculation Preferences shown above,
-
- "%month,%prin"
-
- will cause the following type of output to be generated if both
- cells are either selected for calculation or included in the
- calculation by reference:
-
- month,prin
- 1,159820.00
- 2,159638.88
- 3,159456.62
- 4,159273.22
- 5,159088.68
- 6,159902.98
- ...........
-
- If, on the other hand, the cell called 'month' was accidentally left
- out of the calculation, but not the format, the output would look
- more like:
-
- month,prin
- 1,159820.00
- 1,159638.88
- 1,159456.62
- 1,159273.22
- 1,159088.68
- 1,159902.98
- ...........
-
- ====|====|====|====Example 2
- The web called 'Pert' provides an example of a List Format string used
- for a calculation when there is only one iteration, and the outcome
- is to be displayed for only one cell:
-
- "~The Critical Path takes %CriticalPath days."
-
- In this case, the starting tilde eliminates the header chunk, and the
- output looks like:
-
- The Critical Path takes 43.5 days.
-
- Were the tilde removed from the front of the Format List, the output
- would look like:
-
- The Critical Path takes CriticalPath days
- The Critical Path takes 43.5 days
-
- ====|====|====|====Example 3
- Use of the '\n' character pair in the format string can cause multiple
- lines to be output for each iteration. Consider the format string:
-
- "Mtrx: %a1,%a2,%a3\n %b1,%b2,%b3\n %c1,%c2,%c3"
-
- If we assume that all of the matrix elements are scheduled for
- recalculation or included by reference, the output of two iterations
- with this Format List might look like:
-
- Mtrx: a1,a2,a3
- b1,b2,b3
- c1,c2,c3
-
- Mtrx:32.0,31.5,14.1
- 21.1,17.5,21.4
- 3.5,1.2,2.3
-
- Mtrx:32.0,21.1,3.5
- 31.5,17.5,1.2
- 14.1,21.4,2.3
-
-
- ====Rules of Evaluation
- SpyderX allows the formula of one cell to contain references to other
- cells. Such references can be resolved in one of two ways.
-
- One method is to compute the values of the other cells and substitute
- them into the formula being computed. In SpyderX, this is called a
- propagative rule of evaluation, because the calculation is propagated
- from one cell to another.
-
- Another method is to substitute the last computed value for the referenced
- cell into the formula being computed. The referenced cell is not computed,
- or if it is computed, the resulting value is not used at this time. This
- is called an iterative rule of evaluation, because it is frequently used
- in iterative calculations.
-
- ====|====Propagative Evaluation
- The example below illustrates a simple application of the propagative
- rule of evaluation:
-
- The web Example1 has two cells, a and b. Their values and formulas
- are shown below:
-
- Web Example 1
- Cell a value:3
- Cell a formula:b-4
-
- Cell b value:blank
- Cell b formula:13+4
-
- When cell a is calculated using propagative evaluation, the b in its
- formula is resolved by computing a value for b, and substituting it
- into the formula for a. When the computation is done, the value in
- b is 17, and the value in a is 13. The new values of a and b are
- independent of their previous values.
-
- In the web Example2, the formula in cell a contains a reference to
- the formula in cell b, and the formula in cell b contains a reference
- to the formula in cell a.
-
- Web Example 2
- Cell a value:4
- Cell a formula:b-1
-
- Cell b value:14
- Cell b formula:a+2
-
- When the formula for cell a is evaluated, the reference to b causes
- the program to first attempt to evaluate the formula in cell b. The
- formula in cell b, in turn, requires an evaluation of the formula in
- cell a. This computation cannot be carried out under the propagative
- evaluation rule. This situation is called a circular reference error,
- and represents a built-in limitation of the propagative evaluation
- rule.
-
- ====|====Iterative Evaluation
- The example below illustrates the iterative evaluation rule:
-
- The web Example3 also has two cells, a and b, whose values and
- formulas are shown below:
-
- Web Example 3
- Cell a value:14
- Cell a formula:b-7
-
- Cell b value:21
- Cell b formula:a+4
-
-
- When these cells are evaluated using an iterative evaluation rule,
- the calculation proceeds as follows:
-
- The old values of each cell are set aside for reference during
- the calculation.
-
- To compute the value of cell a, the old value of cell b, 21, is
- substituted into the formula for cell a to give 21-7 or 14. The
- new value is the same as the old value.
-
- To compute the value of cell b, the old value of cell a, 14, is
- substituted into the formula for cell b to give 14+4 or 18.
- The new value of b differs from its old value.
-
- There is no circular reference problem since the old values of each cell
- do not change during the course of the calculation.
-
- ====|====Specifying the Evaluation Rule
- The user must choose a default evaluation rule for each web. To set
- the default evaluation rule, choose the 'Preferences' selection in
- the Special menu. The Preferences dialog will appear:
-
- Preferences for:
- * Output
- * Numbers
- * Calculation
- * Searching
- * Report
-
- Choose 'Calculation' from the dialog and the 'Calculation
- Preferences' dialog will appear:
-
- Calculation Preferences
- * Recalc All Cells <-No->
- * Calculation Results <-FormattedList->
- * List Format %month,%prin
- * Default Evaluation Rule <-Propagate->
-
- Position to the fourth item in the dialog, and use the arrow
- keys choose between 'Propagate' and 'Iterate'.
-
- TIP: Use the propagative rule of evaluation unless you are sure
- that you want to perform an iterative calculation.
-
- ====SamplePropagative Rule Calculations
- The examples which follow employ a propagative evaluation rule.
-
- ====|====Circle
- The area of a circle is easily computed in two cells:
-
- cellname formula
- r (no formula...put value of radius in value field)
- AreaCirc pi*r*r
-
- The calculation is performed by positioning to the cell r, and entering
- a value for the radius, and then positioning to the cell AreaCirc,
- and choosing 'Evaluate' from the Special menu . The user could avoid
- having to position to the AreaCirc cell by utilizing the 'Calculation
- Preferences' dialog to specify that all cells be computed. It is not
- necessary to include a cell with the value of pi since this value
- (as well as the value for the base of the natural logarithm e) is built
- into the SpyderX program.
-
- ====|====Finance
- The web called "Finance" allows you to compute the monthly payment
- necessary to pay off a loan of a given amount, at a prescribed
- interest rate, in a specified number of payments.
-
- The Finance web uses cells with the following formulas to compute the
- monthly payment:
-
- cellname formula
- apr (no formula... enter annual periodic interest rate)
- i apr/12
- n (no formula... enter number of monthly payments)
- power pow(1+i,n)
- prin (no formula... enter the beginning balance)
- pymt prin*power*i/(1-power)
-
- The user may use the following procedure to obtain a result from the
- Finance web:
-
- 1) Put the annual periodic interest rate into the value field
- of the apr cell. Make sure that you use the decimal fraction
- (such as 0.075 for 7.5%).
-
- 2) Put the beginning balance into the value field of the prin cell.
-
- 3) Set the value of n to the total number of monthly payments. This
- is twelve times the number of years that the loan is to run.
-
- 4) Position to the pymt cell and select Evaluate from the Special menu.
-
-
- ====|====Pert
- One of the sample webs provided on the SpyderX distribution disk is
- called Pert. The Pert web describes the tasks involved in building
- a small house, and organizes those tasks according to which may be
- carried out concurrently. There are three different paths through
- the web of tasks, from start to completion. The three different
- paths may be browsed in the web by following hypertext links. They
- are also described in three summary cells called path1, path2, and
- path3. Those cells contain formulas which compute the total time
- required to traverse the associated paths.
-
- cellname formula
- path1 ClearLand+BuildFoundation+BuildUpperStructure+
- PlumbingWork+CompleteInterior
- path2 ClearLand+BuildFoundation+BuildUpperStructure+
- ElectricalWork+CompleteInterior
- path3 ClearLand+BuildFoundation+BuildUpperStructure+
- CompleteExterior+Landscaping
-
- By entering the estimated time it takes to complete each of the tasks
- into each task's cell, the times taken for each path through the process
- may be computed from the formulas.
-
- Pert has another cell and formula:
-
- CriticalPath max(path1,path2,path3)
-
- When the web is positioned to the CriticalPath cell, and the 'Evaluate'
- function is chosen from the Special menu, the time necessary to build
- the house is placed into the value field of the cell CriticalPath.
-
- ====Iterative Rule Calculations
- In addition to the 'Calculation Preferences' dialog which is filled in
- for propagative calculations, the user fills in an additional dialog
- box when he or she selects the iterative evaluation rule.
-
- If the user has chosen to recalculate all cells, and selected the
- iterative evaluation rule, then the following dialog box appears
- immediately after the Calculation Preferences dialog is dismissed:
-
- Iterative Calc Preferences:
- Number of Iterations 17
-
- The box allows the user to enter the number of iterations that he or
- she wishes to perform.
-
- If the user chose not to recalculate all cells, and selected the
- iterative evaluation rule, then the following dialog box appears
- immediately after the Calculation Preferences dialog is dismissed:
-
- Iterative Calc Preferences:
- Number of Iterations 17
- Recalc Referenced Cells <-Yes->
-
- In an iterative calculation, it is not necessary; and not always desirable,
- to recalculate the value of every cell referenced from a formula whose
- value is computed. If you chose not to recalculate the value of all
- cells, this dialog box gives you a further oportunity to fine tune the
- selection of cells to be calculated.
-
- The following sample webs illustrate the use of the iterative
- evaluation rule:
-
- ====|====Logistic
- The emergence of chaotic dynamics from simpler behavior may be observed
- in this example called the logistic map:
-
- cellname formula
- r (no formula...set this parameter to alter dynamics)
- x r*x*(1-x)
-
- To explore the behavior of this calculation, set the number of iterations
- to 20 or so, set different values for r and x (make sure x is between
- zero and one), go to cell x, and chose 'Evaluate' from the Special menu.
-
- For a value of the parameter r of 0.4, and an initial x value of 0.7,
- successive values of x approach zero and stay there.
-
- For an r value of 2.4, and initial x value of 0.7, successive values
- of x approach a constant 0.583
-
- For r=3.0, and an initial x of 0.5, an extended damped oscillation
- takes place between two values of x.
-
- For r=3.5, initial x=0.7; an extended oscillation among four numbers
- takes place.
-
- For r=3.8, initial x=0.7; a chaotic sequence of numbers is the result.
-
- ====|====Model
- This web uses a simplistic mathematical model to simulate the way
- the population of cougars and deer might vary over time in the
- Rocky Mountain region. The value pane of the cell Cougars gives
- the number of mountain lions in a study area in a given period of
- time. The value pane of the cell Deer gives the simultaneous
- population of Deer in the same area during that period. The value
- of the cell period counts the number of iterations computed.
-
- cellname formula
- CConst (no formula... simulation parameter)
- Cougars Cougars+(CConst*Deer-DeathRate)*Cougars*StepSize
- DConst (no formula... simulation parameter)
- DeathRate (no formula... simulation parameter)
- Deer Deer+(DGrowthRate-DConst*Cougars)*Deer*StepSize
- DGrowthRate (no formula... simulation parameter)
- period period+1 (initialize to zero)
- StepSize (no formula... simulation parameter)
-
- To use this simulation model, select initial values for Deer and
- Cougars and simulation parameters, set up the web for an ample number
- of iterations, and choose Evaluate from the Special menu.
-
- A good place to start with the simulation parameters is the values
- which came with the web. Altering them by substantial amounts might
- lead to results difficult to interpret.
-
- ====Overriding the Default Evaluation Rule
- ====|====Motivation for Overriding
- One of the primary reasons for using cellular calculation is that it
- modularizes the computation. Logically connected pieces of a formula
- are grouped together in separate cells for easier understanding.
- A propagative rule of evaluation combines the formulas from separate
- cells into a seamless expression that is evaluated as if it were all
- contained within one cell.
-
- An iterative calculation has an entirely different purpose. It aims
- to use the same formula, applied repeatedly, to evolve or grow a numeric
- result over time (or over the iterated parameter).
-
- It is possible to take advantage of the modularization afforded by
- the propagative rule, within a fundamentally iterative calculation.
- SpyderX allows the user to do this by overriding the default iterative
- rule in the evaluation of certain cell references.
-
- ====|====How to Override
- To force a cell reference to be evaluated using the propagative rule,
- regardless of the default rule, place an exclamation point ('!')
- immediately after the cell reference in a formula. This will cause
- that reference to the cell, and that reference only, to be evaluated
- using the propagative rule.
-
- ====|====An Instance Where Overriding is Useful
- Consider the two cells described below:
-
- Web Example 4
- Cell x value:-30
- Cell x formula:x+10
-
- Cell y value:blank
- Cell y formula:sign(x)
-
-
- The sign function returns a -1 if its argument is negative, a +1 if
- its argument is positive, and zero, if its argument is 0.
-
- What would you suppose the values of x and y would be through six
- iterations if the default rule was iterative. (a propagative rule wouldn't
- work since the formula for x refers to itself).
-
- For the first iteration, the value for x is computed to be -20, and
- the value for y is computed to by sign(-30) or -1.
-
- In the second iteration, the value for x is -20+10 or -10, and the
- value for y is sign(-20) or -1.
-
- Continuing in this vein, the output will be found to look
- something like:
-
- x,y
- -20,-1
- -10,-1
- 0,-1
- 10,0
- 20,1
- 30,1
-
- This doesn't fit our picture of what the output of the function
- y=sign(x) should look like. The problem is that the new value of x
- is being printed next to the value of y computed from the old value
- of x. To remedy this situation, and make the output better fit our
- idea of the function y=sign(x), we can override the evaluation rule
- for x in the formula for y:
-
- Web Example 5
- Cell x value:-30
- Cell x formula:x+10
-
- Cell y value:blank
- Cell y formula:sign(x!)
-
- Now when we compute six iterations, the new value of x is sent to the
- sign function each time, and so the results show the newest value
- of x along with the sign function computed from that value of x.
-
- x,y
- -20,-1
- -10,-1
- 0,0
- 10,1
- 20,1
- 30,1
-
- Although there need be no confusion in the user's mind resulting from
- the output of the untweaked calculation, the second form of the
- output might be more useful for export to other programs or computers.
-
- ====Mixed Rule Calculations
- The following are examples of iterative calculations in which
- certain formulas use exclamtion points to override the default
- rule when evaluating some cell references:
-
- ====|====Amort
- This sample web uses an iterative technique to compute the approximate
- principal balance, and amount paid in interest each month, given an
- annual periodic interest rate, and the principal balance the previous
- month. The cells of the web (in addition to home), and the formulas
- they contain are:
-
- cellname formula
- apr (No formula....constant entered by user)
- itm mi!*prin
- (monthly interest rate times last months principal)
- mi apr/12 (annual periodic interest rate/12)
- month month+1 (number of the month...start at 0)
- prin prin+itm!-pymt (principal at start of month)
- pymt (No formula....constant payment amt entered by user)
-
- The reference to mi in the formula itm, and the reference to itm
- in the formula prin are overridden with the propagative evaluation rule
- to make sure that the values of mi and itm are computed before they
- are used on the first iteration of the calculation.
-
- To use this web, put the beginning principal in prin, the annual
- periodic interest rate, as a decimal fraction, into apr, the
- monthly payment into pymt, and initialize the month to 0. Set the
- number of iterations somewhat larger than you expect the number of
- months required to be, position to the prin cell, and choose 'Evaluate'
- from the Special menu. The monthly change in principal will be
- displayed as the calculation progresses. Negative amounts indicate
- money accumulating rather than money being paid out.
-
- It should be possible to verify the results created by the web
- Finance by using the web Amort.
-
-
- ====|====RKutta
- There is a method of iteratively solving second order differential
- equations which is called Runge-Kutta, probably named for a Mr. Runge
- and a Ms. Kutta. Whether they knew each other is not certain. In
- any event, if one applies their methods of solution to the
- equation for simple harmonic motion;
-
- y''=-ay
-
- one may obtain the following formulas, which we can program into a web:
-
- cellname formula
- h (no formula...value is set to stepsize)
- a constant parameter chosen by user
- y y+(k1!+4*k2!+k3!)/6
- yp yp+(k1p!+4*k2p!+k3p!)/6
- k1 h*yp
- k2 h*(yp+k1p!/2)
- k3 h*(yp+2*k2p!-k1p!)
- k1p -a*h*y
- k2p -a*h*(y+k1!/2)
- k3p -a*h*(y+2*k2!-k1!)
-
- The default evaluation rule for the calculation should be set to
- 'Iterate', and initial values chosen for y and yp. Set a to
- a positive value, and choose 'Evaluate' from the Special menu to
- see a computed solution to this differential equation.
-
- This method could be implemented, without overriding the default
- evaluation rule, in just four cells: h, a, y, and yp. First
- the expression for k1 would have to be substituted into the
- expressions for y, k2p and k3p. Then the expression for k2 would
- be substituted into the expressions y and k3p, and the expression
- for k3 substituted into the expression for y. Finally, all the
- expressions for kNp's (N=1,2,3) would be substituted into the
- formulas for y and yp. If the resulting formulae did not exceed
- the 512 byte limit on formulas, the calculation could be performed
- without any k cells.
-
- It is simpler, though probably less efficient, to have a cell for
- each of the k's, and to override the default iterative evaluation
- rule with exclamation points after all of the k's wherever they
- appear in formulas.
-
- BUILT IN FUNCTIONS
-
- We have seen in the examples some of the built-in functions supplied
- by SpyderX. In this section we list each built-in function, and any
- information necessary for its use.
-
- ====min(expr1,expr2,expr3,...)
- This function returns the minimum of the values of the expressions
- denoted by expr1, expr2, expr3, ...etc.
-
- ====max(expr1,expr2,expr3,...)
- This function returns the maximum of the values of the expressions
- denoted by expr1, expr2, expr3, ...etc.
-
- ====mean(expr1,expr2,expr3,...)
- This function returns the arithmetic mean of the values of the
- expressions denoted by expr1, expr2, expr3, ...etc.
-
- ====abs(expr)
- This function returns the absolute value of the expression denoted
- by expr.
-
- ====sign(expr)
- This function returns +1 if the expression expr evaluates to a
- positive value, -1 if it evaluates to a negative value, and 0 if
- it evaluates to 0.
-
- ====step(expr)
- This function returns +1 if the expression expr evaluates to a
- non-negative value (including 0), and 0 if it evaluates to a
- negative value.
-
- ====sig(expr)
- This function returns the sigmoid logistic function of its
- single expression argument:
-
- sig(expr):= 1/(1+exp(-expr))
-
- ====sin(expr)
- This function returns the value of the sine of expr. The value of
- expr is assumed to be in the trigonometric units chosen in the
- trigonometric units choice list of the 'Numbers Preferences' dialog
- reached from the 'Preferences' choice in the Special menu.
-
- ====cos(expr)
- This function returns the value of the cosine of expr. The value of
- expr is assumed to be in the trigonometric units chosen in the
- trigonometric units choice list of the 'Numbers Preferences' dialog
- reached from the 'Preferences' choice in the Special menu.
-
- ====tan(expr)
- This function returns the value of the tangent of expr. The value of
- expr is assumed to be in the trigonometric units chosen in the
- trigonometric units choice list of the 'Numbers Preferences' dialog
- reached from the 'Preferences' choice in the Special menu.
-
- ====asin(expr)
- This function returns the value of the arcsine of expr. The value
- is returned in the trigonometric units chosen in the trigonometric
- units choice list of the 'Numbers Preferences' dialog reached from
- the 'Preferences' choice in the Special menu. An invalid argument
- will cause the value returned to be flagged "Not A Number".
-
- ====acos(expr)
- This function returns the value of the arccosine of expr. The value
- is returned in the trigonometric units chosen in the trigonometric
- units choice list of the 'Numbers Preferences' dialog reached from the
- 'Preferences' choice in the Special menu. An invalid argument will
- cause the value returned to be flagged "Not A Number".
-
- ====atan(expr)
- This function returns the value of the arctangent of expr. The value
- is returned in the trigonometric units chosen in the trigonometric
- units choice list of the 'Numbers Preferences' dialog reached from
- the 'Preferences' choice in the Special menu. An invalid argument
- will cause the value returned to be flagged "Not A Number".
-
- ====sqrt(expr)
- This function returns the non-negative square root of
- the value of expr.
-
- ====ln(expr)
- This function returns the value of the natural logarithm of expr.
- An invalid argument will cause the value returned to be flagged
- "Not A Number".
-
- ====exp(expr)
- This function returns the value of e ( the base of natural logarithms)
- raised to the power of expr. An invalid argument or overflow will
- cause the value returned to be flagged "Not A Number".
-
- ====log(expr)
- This function returns the value of the logarithm to the base 10
- of expr. An invalid argument will cause the value returned to be
- flagged "Not A Number".
-
- ====pow(expr1,expr2)
- This function returns the value of the first argument raised to
- the power of the second.
-
- ====rand(expr)
- This function returns a random number seeded by the value supplied
- in expr. The result will be a number in the interval [0,1).
-
- MENUS AND PREFERENCES
-
- ====SpyderX Menus
- There are five SpyderX menus, called File, Edit, Cell, Browse, and Special. The dialogs and functions invoked from these menus are described below:
-
- ====|====File Menu
- The File menu has three entries: New, Open, and SaveAs:
- * New saves the contents of the current web, and creates a new,
- empty web with the name NEW.
- * Open displays a dialog box into which the name of the file to
- be opened can be entered. If the desired file is not in the
- \web\ directory, press TAB to enter the extended file open
- dialog.
- * SaveAs displays a dialog box into which the name is entered
- under which the current web will be saved. To save into a
- directory other than the current one, press TAB to enter
- the extended file dialog. Once the target directory is
- located, press return to re-enter the dialog box for the
- file name.
-
- ====|====Edit Menu
- The entries in the Edit menu are Copy, Paste, Math, Text, and Find:
- * Copy saves the current selection in the edit box to the
- clipboard. (Make a selection by holding down the shift key
- and moving the cursor to cover the text to be selected).
- * Insert pastes the contents of the clipboard into the current
- cursor position. There is no Delete in the edit menu.
- To delete the current selection in the edit window, press
- the Delete key. The selected text will be removed from the
- edit window and saved in the clipboard.
- * Bring checks to see if any other application capable of exporting
- text has a block of text selected. If so, the most recent such
- selection is copied into the cursor position of the current
- pane of the current cell. The selection is also pasted into
- to the clipboard for future Insert operations.
- * Math causes the Math window of the current cell to be displayed.
- * Text causes the Text window of the current cell to be displayed.
- On the S3a, pressing the diamond button toggles between the
- Text and Math windows.
- * Find searches forward or backward for the next occurrence of
- the currently selected text. If no text is selected, a dialog
- box appears, which allows the entry of the text to search for,
- as well as the preferred direction of search.
-
- ====|====Cell Menu
- The entries in the cell menu are Add, Delete, Goto, Linkto, Hunt, and
- Unlink:
- * Add asks for the name of the cell to add. Press Esc to cancel
- the request. Otherwise, enter the new cell name and press
- enter. If a cell with the new name already exists, a dialog
- will inform you of the fact, and ask if you wish to see that
- cell. Otherwise, the new, empty cell will be displayed.
- * Delete causes the current cell and its contents to be deleted,
- unless it is the home cell. The home cell cannot be deleted.
- * Goto transfers to a different cell, without saving the current
- cell into the backtrack(see Unlink). If there is a cell name
- selected in the current edit window, that is the cell to which
- a transfer is made. If not, a dialog appears, asking for the
- name of the cell to go to.
- * Linkto saves the current cell into the backtrack, and transfers
- to a different cell. If there is a cell name selected in the
- current edit window, that is the cell to which a transfer is
- made. If not, a dialog appears, asking for the name of the
- cell to go to.
- * Hunt scans from the current cursor position forward, looking
- for a cell name. If it finds one, it saves the current cell
- in the backtrack, and transfers to the cell whose name was
- found.
- * Unlink returns to the cell most recently added to the backtrack.
- If there is no cell on the backtrack, Unlink goes to the home
- cell.
-
- ====|====Browse Menu
- The cells in a web can be browsed in alphabetical sequence or reverse
- alphabetical sequence by choosing Prev or Next from the Browse menu.
-
- ====|====Special Menu
- The entries in the Special menu are About, Evaluate, Report, Preferences, and Exit.
- * About displays information about SpyderX.
- * Evaluate causes a calculation to take place. Output destination,
- Number format, and type of calculation are controlled by options
- reached from the Option entry of the Special menu.
- * Report causes a report of the contents of the cells to be issued.
- The destination of the report output, and the content and format
- of the report are controlled by the Report entry of the
- Preferences dialog.
- * Preferences provides the means to control destination of output,
- format of numbers, type of calculation, Search direction, and
- report format.
- * Zoom allows the user to adjust the font size on the S3a.
- * Exit causes the SpyderX program to stop executing and return to
- the system screen.
-
- SPYDERX PREFERENCES
-
- The 'Preferences' entry in the Special menu opens a dialog box that
- gives the user the opportunity to set five different classes of
- parameters to control the operation of the program. The five categories
- are: Output, Numbers, Calculation, Searching, and Report.
-
- ====Output Preferences
- Output preferences govern the destination, and to some extent, the format
- of the output of calculations and reports. The three output options
- are: Destination, Destination Name, and Newline Type.
-
- ====|====Destination
- Output destination can be set to Screen, Cell, or File.
- * If the Destination is set to Screen, output from reports
- and calculations appears one screen at a time on the LCD.
- After each screen the user is prompted to enter ESC to abort
- the calculation or report, or any other key to continue it.
- * If the Destination is set to Cell, output from the calculation
- or report is copied to the end of the text area of the cell
- specified in the Destination Name option. Since the capacity
- of the text area of a cell is limited to 2048 bytes, the text
- area only retains the last 2048 bytes of any output directed
- to it.
- * When the destination is set to File, the output from
- calculations and reports is directed to the file named in
- Destination name.
-
- ====|====Destination Name
- The Destination Name option provides a place for the user to enter
- the cell or file name into which output from calculations or reports
- is directed. If the Destination name option is empty, or does not
- contain a valid cell name when the Cell or File destination is
- selected, output is directed to a cell or file called OUTPUT
- (or OUTPUT.TXT). If there is no cell (or file) called OUTPUT, one
- is created.
-
- ====|====Newline Type
- The third Output Option is the Newline Type Option, which applies only
- when the output destination is File. The option lets the user choose
- between newlines composed of linefeeds, or newlines composed of
- carriage returns, followed by linefeeds. The former option is
- preferred when the files will not be exported to other computers. The
- latter option is preferable if the files will be exported to a
- PC-compatible computer.
-
- ====Numbers Preferences
- Numbers options govern the format of calculation results, number of
- decimal places, and units of angular measure.. The three Number
- options are: Format, Number Of Digits, and Trigonometry Units.
-
- ====|====Format
- The three Formats of numbers are General, Fixed, and Exponent:
- * General numbers are floating point numbers with up to 15
- significant digits (a maximum of 24 digits overall)
- * Fixed Numbers are fixed point numbers with the number of
- decimal places selected in the Number Of Digits option.
- * Exponent Numbers are displayed in scientific notation with
- the number of significant digits specified in the Number of
- Digits option.
-
- ====|====Number of Digits
- The number of digits option describes the maximum number of significant
- digits in General and Exponent numbers, and the number of decimal places
- in the Fixed format numbers.
-
- ====|====Trigonometry Units
- The Trigonometry Units option can have the values of Degrees or Radians.
- It governs the interpretation of arguments of trigonometric functions
- and the presentation of results of inverse trigonometric functions.
-
- ====Calculation Preferences
- The Calculation Options are called: RecalcAllCells?, Calculation Results,
- List Format, Default Evaluation Rule, Number of Iterations, and Recalc
- Referenced Cells. These preferences are thoroughly discussed elsewhere
- in this manual. They are mentioned here only briefly.
-
- ====|====Recalc All Cells?
- This preference allows the user to choose between calculating all cells
- or a selected subset of the cells in a web. For details on selection of
- the cells to calculate, see the section of this file entitled
- "Selection of Cells to Calculate".
-
- ====|====Calculation Results
- The CalculationResults Option refers to the manner in which results are
- conveyed to the user. The possibilities are GenericList, FormattedList,
- and DontList. The section entitled "Specifying Calculation Output"
- contains a description of the differences between these choices.
-
- ====|====List Format
- The List Format string is used to describe how to present the output
- of each iteration to the user. See the section entitled "Specifying
- Calculation Output" for complete information on the List Format.
-
- ====|====Default Evaluation Rule
- This is the preference which controls whether the iterative evaluation
- rule is employed or not. See the section entitled "Rules of Evaluation"
- for a thorough discussion of this preference.
-
- ====|====Number of Iterations
- Number of Iterations is applicable only when Default Evaluation Rule
- is set to Iterate. It may be set to any value between 1 and 65535.
-
- ====|====Recalc Referenced Cells
- Choose yes if it is desired to recalculate all cells referenced by a
- formula when the iterative evaluation rule is in effect. Choose no if
- this is unnecessary.
-
- ====Search Preferences
- When the user selects Find from the Edit menu, a search is performed
- for selected text, or text specified in a dialog box. The Search
- preferences apply to the operation of the Find Request. The available
- options are: Search For, Search Direction, and Case Sensitive?
-
- ====|====Search For
- This is the string for which a search is made when the Find choice
- is selected from the Edit menu. No wild card characters or regular
- expression specifiers are accepted here. Enter just the character
- string for which you are looking.
-
- ====|====Search Direction
- The choices here are Forward and Backward. When a direction is chosen,
- the next search (Find) operation proceeds from the current cursor
- position in the current field of the current cell, in the direction
- indicated. If a match is not found in the current cell, the search
- continues into the next cell in the direction indicated. The search
- ends when either a match is found, or the search returns in a giant
- circle to the beginning or end of the field in the cell in which it
- began.
- NOTE: When searching backward, an instance of the target which is
- the last string in the text of formula field of a cell may be missed.
- This problem will be repaired in a future release.
-
-
- ====|====Case Sensitive?
- If -Yes- is selected for this option, a match is declared only when
- text matches as to characters and case of each character. Otherwise,
- a character match alone is sufficient.
-
- ====Report Preferences
- Report Preferences are Report On All Cells?, Report Type, and
- ReportFormat:
-
- ====|====Report On All Cells?
- This option allows the user to choose whether to apply the report
- function to all cells in the web, or to a selection of cells. See
- the section entitled "Specifying Report Output" for a complete
- discussion of this preference and its application.
-
- ====|====Report Type
- This option allows the user to choose between four different types
- of reports: Formatted, InPointers, OutPointers, and Trail reports.
-
- ====|====Report Format
- The Report Format string allows the user to specify the contents of
- the formatted report generated for each selected cell. The rules
- governing the syntax and interpretation of the report format string
- are discussed in the section entitled "Specifying Report Output".
-
- ERROR CONDITIONS
-
- ===="Not A Number" Results
- Any time a calculation is performed, which results in a condition
- that cannot be expressed as a numeric result, the value {NAN}
- is returned to the value field of the formula being calculated.
-
- To see this for yourself, enter the formula 12/0, and evaluate the
- cell containing the formula.
-
- If a cell contains a reference to a cell which returns a {NAN}
- result, the referring cell will also have a {NAN} result after
- it is evaluated.
-
- ====Expression Syntax
- Formulas are parsed whenever you exit a formula field, either to
- go to another field within the same cell, or to go to another cell.
- If there are blatant violations of the lexical rules at this time,
- a message "Formula Error" will appear at the lower right hand
- corner of the LCD screen.
-
- When a formula is evaluated, there are several error messages that
- can result. These messages are listed below:
-
- BAD IDENTIFIER IN FORMULA xxxx
- One of the identifiers in the formula for the cell named xxxx is
- neither a cell name nor a built-in function.
-
- ILLEGAL CHARACTER IN FORMULA xxxx
- There is a character in formula xxxx that is not permitted.
-
- CIRCULAR REFERENCE IN FORMULA xxxx
- The formula in cell xxxx contains a cell reference which is part
- of a circular chain of cell references, which is not permissable
- when the propagative evaluation rule is in effect.
-
- MISSING PAREN IN FORMULA xxxx
- There is a missing parenthesis in the formula of cell xxxx.
-
- INVALID EXPRESSION IN FORMULA xxxx
- Expression syntax is violated in the formula field of cell xxxx.
-
- BUILTIN FUNCTION CALL ERROR IN FORMULA xxxx
- There is a problem with a comma or parenthesis in a built-in function
- reference in the formula field of cell xxxx.
-
- BUILTIN FUNCTION ARG ERROR IN FORMULA xxxx
- There is a problem with the number or type of arguments to
- a built-in function in the formula field of cell xxxx.
-
- PREMATURE TRUNCATION OF FORMULA xxxx
- The formula field of cell xxxx ended before a complete
- expression was parsed.
-
- ====Out of Memory
- When SpyderX writes a web to a disk, it writes it
- first as a temporary file, called temp.tmp, and then
- renames the temporary file to the name of the web.
-
- If a memory shortage prevents the entire web from
- being written, the update is not completed, and the
- old version of the web remains on the disk.
-
- When SpyderX cannot obtain needed memory from the
- operating system, it issues the message below:
-
- Out of Memory-- To Insure web is saved,
- free space before exiting.
-
- and gives the user two options:
-
- EXIT NOW or I'LL FREE SPACE
-
- If you choose EXIT NOW, SpyderX will attempt to save
- the web, and then exit. With good luck, the web
- will be saved in its entirety. If there is not
- sufficient memory, the contents of the web will
- be lost. If you choose I'LL FREE SPACE, SpyderX
- allows the program to continue running to give you
- an opportunity to create space on your internal disk
- drive by deleting files that are not associated with
- the current web. If you know of some storage you can
- liberate, choose the latter option, but be careful.
- SpyderX will be running in a memory-limited condition,
- and could crash at any time. Exit as soon as you have
- freed enough memory.
-
-
- LIMITS, WARRANTIES, AND SUPPORT
-
- ====Program Limits
- The following limits apply to version 1.1 of SpyderX:
-
- Maximum Size of a Cell Name: 128
- Maximum Characters in a Text Pane: 2047
- Maximum Characters in a Value Pane: 255
- Maximum Characters in a Formula Pane: 511
- Maximum Number of digits in a number: 24
- Maximum Significant digits in a number: 15
- Maximum Number of Cells: limited by 64K
- program data
- data segment size.
-
- ====Warranty, License, Registration, and Distribution
-
-
- LIMITED WARRANTY AND DISCLAIMER OF WARRANTY
-
- THIS SOFTWARE AND ACCOMPANYING WRITTEN MATERIALS (INCLUDING
- INSTRUCTIONS FOR USE) ARE PROVIDES "AS IS" WITHOUT WARRANTY OF
- ANY KIND. FURTHER, NEITHER EIEIO NOR DAVID CLIFTON PROVIDES ANY
- WARRANT, GUARANTEE, OR MAKES ANY REPRESENTATIONS REGARDING THE
- USE, OR THE RESULTS OF USE, OF THE SOFTWARE OR WRITTEN MATERIALS
- IN TERMS OF CORRECTNESS, ACCURACY, RELIABILITY, CURRENTNESS,
- OR OTHERWISE. THE ENTIRE RISK AS TO THE RESULTS AND PERFORMANCE
- OF THE SOFTWARE IS ASSUMED BY YOU. IF THE SOFTWARE OR WRITTEN
- MATERIALS ARE DEFECTIVE YOU, AND NOT EIEIO OR ITS DEALERS,
- DISTRIBUTORS, AGENTS, OR EMPLOYEES, ASSUME THE ENTIRE COST OF ALL
- NECESSARY SERVICING, REPAIR, OR CORRECTION.
-
- THE ABOVE IS THE ONLY WARRANTY OF ANY KIND, EITHER EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
- OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, THAT
- IS MADE BY EIEIO OR DAVID CLIFTON, ON THIS PRODUCT. NO ORAL OR
- WRITTEN INFORMATION OR ADVICE GIVEN BY DAVID CLIFTON, EIEIO, ITS
- DEALERS, DISTRIBUTORS, AGENTS OR EMPLOYEES SHALL CREATE A WARRANTY
- OR IN ANY WAY INCREASE THE SCOPE OF THIS WARRANTY AND YOU MAY NOT
- RELY ON ANY SUCH INFORMATION OR ADVICE. YOU MAY HAVE OTHER RIGHTS
- WHICH VARY FROM STATE TO STATE.
-
- NEITHER EIEIO NOR ANYONE ELSE WHO HAS BEEN INVOLVED IN THE CREATION,
- PRODUCTION OR DELIVERY OF THIS PRODUCT SHALL BE LIABLE FOR ANY DIRECT,
- INDIRECT, CONSEQUENTIAL OR INCIDENTAL DAMAGES (INCLUDING DAMAGES FOR
- LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS
- INFORMATION, AND THE LIKE) ARISING OUT OF THE USE OR INABILITY TO USE
- SUCH PRODUCT EVEN IF EIEIO OR DAVID CLIFTON HAS BEEN ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGES.
-
- This Limited Warranty shall be governed and construed in accordance
- with the laws of the State of Colorado.
-
- ACKNOWLEDGMENT
-
- BY USING THE SHAREWARE VERSION OF SPYDERX YOU ACKNOWLEDGE THAT YOU HAVE
- READ THIS LIMITED WARRANTY, UNDERSTAND IT, AND AGREE TO BE BOUND BY ITS'
- TERMS AND CONDITIONS. YOU ALSO AGREE THAT THE LIMITED WARRANTY IS THE
- COMPLETE AND EXCLUSIVE STATEMENT OF AGREEMENT BETWEEN THE PARTIES AND
- SUPERSEDES ALL PROPOSALS OR PRIOR AGREEMENTS, ORAL OR WRITTEN, AND ANY
- OTHER COMMUNICATIONS BETWEEN THE PARTIES RELATING TO THE SUBJECT MATTER
- OF THE LIMITED WARRANTY.
-
- LICENSE
-
- You may use the shareware version of SpyderX for a 30 day trial period.
- If you would like to continue to use SpyderX after the 30 day trial
- period, you are required to register as a user of SpyderX, and pay the
- registration fee. If you choose not to register or pay, you must
- remove SpyderX from your computer.
-
- You may distribute evaluation copies of SpyderX to other persons or
- organizations, provided such distribution takes place in accordance
- with the provisions of the DISTRIBUTION paragraphs below.
-
-
- REGISTRATION
-
- The registration fee for SpyderX is $33. For this price, you will
- receive a diskette with the latest shareware version of SpyderX, the
- printed user's manual, a key to disable registration reminders,
- a phone number to call for support during specified hours, and a
- collection of sample webs.
-
- In addition, when you register version 1.3 of SpyderX, you will
- receive a copy of SpyderT, the world's simplest hypertext notepad.
- SpyderT provides the hypertext editing and reporting capability
- of SpyderX, without the ability to perform calculations. At 30 K bytes,
- SpyderT is considerably smaller than SpyderX, yet it still allows
- the user to take linked notes, cross-reference them, and report on
- their contents. Like SpyderX, SpyderT runs on both the Psion 3
- and the Psion 3a.
-
- You can register SpyderX using the Compuserve shareware registration
- service, via credit card through North Star Solutions' shareware
- registration service, or by sending cash to the author. For details
- on ordering and payment, see below:
-
- ORDERING AND PAYMENT
-
- METHOD 1: Compuserve shareware registration service
-
- Log onto Compuserve and go to shareware registration under the
- computers menu (GO SWREG). Access the registration database with
- the program name, SpyderX, or the registration number 5574. Indicate
- the desired diskette type (MAC or PC) by including the words '(MAC)'
- or '(PC)' on one of the address lines you enter. (The parenthesized
- word will be removed from the address line when your registration
- packet is mailed).
-
-
- METHOD 2: By credit card through North Star Solution's
- Shareware Registration Service
-
- You can order registration packets with Visa or MasterCard credit cards
- from North Star Solutions shareware registration service. Simply contact
- North Star Solutions via any of the following methods:
- Voice: 1-800-699-6395(10:00am-10:00pm,EST. Calls from US only.)
- 1-800-699-6395(10:00am-10:00pm, Eastern Standard Time)
- FAX: 1-803-699-5465(Available 24 hours.
- (International and Business Orders encouraged)
- E-mail: CIS 71561,2751 Internet 71561.2751@compuserve.com
- (International and Business Orders encouraged)
- Please have the following information ready:
- * The program and version number ( SpyderX v1.3 )
- * Where the registration packet should be mailed
- * Your VISA or MasterCard number and expiration date
- * Whether you want a MAC or a PC diskette (3.5 inch drives only)
-
- IMPORTANT NOTES:
- 1) North Star processes registrations only, please contact the
- author at 71270.1441@compuserve.com or eieio@ix.netcom.com for any
- product information or technical support.
- 2) E-mailed and FAXed registrations are encouraged, but all registrations
- are very much appreciated!
-
-
- METHOD 3: By sending cash to the author.
-
- Send your mailing address, whether you want a MAC or a PC diskette,
- and $33 to the address below:
- EIEIO
- P.O. Box 1086
- Niwot, CO 80544
- U.S.A.
- Send cash in the form of U.S. dollars, a check drawn on a U.S. bank
- (MICR code on the bottom), or International Money Orders for $33 (U.S.).
- Add a 25% premium over the exchange rate if you send Canadian checks
- in Canadian dollars, or major currencies (Pounds, Marks, Francs, or Yen).
-
-
- DISTRIBUTION
-
- You are encouraged to pass a copy of the shareware version of SpyderX
- along to your friends for evaluation. If you do so, you must provide
- them with the entire set of SpyderX shareware version files. These include:
-
- README.TXT
- SPYDERX.APP
- VENDOR.DOC
- FILE_ID.DIZ
- AMORT.WEB
- CIRCLE.WEB
- FINANCE.WEB
- LOGISTIC.WEB
- MODEL.WEB
- PERT.WEB
- PIGGY.WEB
- QUOTES.WEB
- RKUTTA.WEB
- HEBB.WEB
- WEBSITES.WEB
-
- Alternatively, you may provide the .ZIP file which contains the files
- listed above in compressed format.
-
- If you intend to charge for distribution, you must adhere to the
- requirements of the vendor.doc file.
-
- The SpyderT program is given away as a premium for registering SpyderX.
- It is neither shareware, nor public domain. If you have a copy of the
- SpyderT program, please do not upload or give it away. Distribute the
- SpyderX program instead. It has all of the features of the SpyderT
- program, plus the ability to perform iterative, cellular calculations.
-
- OBTAINING SUPPORT
-
- You may send messages, reports, and requests for information
- to David Clifton at either of the two E-Mail addresses below:
-
- eieio@ix.netcom.com
- 71270.1441@compuserve.com
-
- In addition, registered users may obtain phone support during
- a selection of evening hours on weeknights.
-
-