Readme file of RLaB for the Mac

                                                
                                                            02/25/1995
 
 
This is the Macintosh port of RLaB 1.18c program. RLaB is a Matlab-like 
linear algebra package.  The author is 
    
         Ian Searle
         ians@eskimo.com
    
RLaB is an interpreter for the RLaB Programming Language/Environment. 
The RLaB language is useful for matrix or array oriented numerical
analyses. RLaB is especially useful for prototyping and experimenting 
with algorithms. RLaB extensively uses the BLAS, LAPACK, FFTPACK and 
RANLIB sources available from netlib.att.com and PLPLOT from 
dino.ph.utexas.edu.
        
MacRLaB is not a full port of RLaB.  Some items will probably never
be fully supported as they are too tied to the Unix operating system.  
Examples are the 'pipe', the 'fork', and many others.  
Other features are handled a little differently in the Mac version.  
Most of the important differences or extensions of the MacRLaB port 
are described below.

1. Please print out and study the RLaB Primer first, the file is in
   ":doc:rlabp.ps". You can print this Postscript file using 'Drop¥PS' 
   program (simply drag and drop it onto Drop¥PS).

   (Files in rlab folder are getting larger, many folders are compressed
    as self-extracting-archives (.sea), you can double-click on them to 
    uncompress them.)
  
2. You can set up your own file search-path(RLAB_SEARCH_PATH), 
   start-up file (RLAB_RC0), etc.. The default settings are stored in the file 
   'RLab-Preference'. 
   
   To change these settings, just use a text editor to change.  You have to
   set the PLPLOT_DIR environmental variable to the path of your RLaB folder.  
   This setting is important because PLPLOT has to know the location of font 
   files 'plstnd5.fnt' and 'plxtnd5.fnt'.  After making the changes, the file 
   'RLab-Preference' has to be placed in the 'System Folder:Preferences' folder.

   For example, if your absolute RLaB folder (directory) path is like this
   
   HD --- Appl --- RLaB 
   
   then you can put the following environmental variables in 'RLab-Preference':
   
   RLAB_RC0 = "HD:Appl:RLaB:_rlab";
   PLPLOT_DIR = "HD:Appl:RLaB";
   RLAB_HELP_DIR = "HD:Appl:RLaB:help";
   RLAB_LIB_DIR = "HD:Appl:RLaB:rlib";
   RLAB_SEARCH_PATH = ";HD:Appl:RLaB:toolbox;HD:Appl:RLaB:examples"; 

   You can have several search-paths, just put them together and use ';' as
   delimiter (see above example with 3 search paths, first one is for the
   current folder).
   
   If you feel the font/size on the MacRLaB console is not the best choice, 
   feel free to change it.  The environmental variable RLAB_FONT can be set
   to one of the following numbers (check Mac document for more):
   
               0 SystemFont
               1 AppleFont
               2 NewYork
               3 Geneva
               4 Monaco
               5 Venice
               6 London
               7 Athens
               8 SanFrancisco
               9 Toronto
              11 Cairo
              12 LosAngles
              20 Times
              21 Helvetica
              22 Courier

   It is better to use constant width fonts such as Monaco and Courier,
   otherwise the output will not be aligned.
   The font size (RLAB_SIZE) can be set to any number between 1 and 127 point.  
   The popular font sizes for the console are 
               
               9 points
              10 points
              11 points
              12 points
              14 points
              18 points
              
   You can change the number of text rows (RLAB_ROWS) on the console.  
   Default values are   

              RLAB_FONT = "4 Monaco";
              RLAB_SIZE = "9 points";
              RLAB_ROWS = "25";
    
   The console window width will be set to 80 columns based on the largest 
   character width of the selected font.
           
3. By the way, do you know how to change directory (folder) using cd() on the 
   Mac? 
   
   Suppose your hard disk directory tree is like this
   
                            ----- Peggy
                            |                             |-- rlib
         --------- App -----|                             |
         |                  |                             |-- examples
   HD ---|                  ----- RLaB (you are here) ----|
         |                                                |-- help
         -------- Kevin                                   |
                                                          |-- toolbox
         
   When you launch RLaB, you are in RLaB directory.  If you wish to 
   change directory to "examples", you can use either
   
   >cd(":examples");  // relative method
   
   or
   
   >cd("HD:App:RLaB:examples");  // absolute method
   
   The colon ":" means present directory, it is similar to "." on the Unix
   but not exactly the same.  You MUST supply a ":" as first char if partial 
   (relative) pathname is used.  If the first character of a pathname is not 
   a ":", it is a full (absolute) pathname.  Two colons "::" means parent 
   directory (folder).  Three colons ":::" means grandparent directory.
   The ":" character also acts as directory delimiter, like "/" on the unix 
   and "\" on the MS-DOS.
   
   For example, if your work directory is in Kevin and you are in 
   RLaB now,  you can use either
   
   >cd(":::Kevin");   // relative method
   
   or
   
   >cd("HD:Kevin");   // absolute method
   
   to change directory to Kevin.

4. RLaB comes with a built-in plotting library PLPLOT.  PLPLOT is a powerful 
   tool for XY and XYZ graphics.  It can generate (via plprint) Postscript, 
   color Postscript, HP LJ, and lots of other formats for post processing. 

   I've implemented a minimum Mac interface for PLPLOT4.99i.  Multi-window is 
   allowed but the redrawing is slow; well, that depends on what machine you 
   got.  The number of windows is limited to 10.  
   
   The mac-plplot interface is based on ColorQuickDraw routines.  Sixteen 
   colors are directly available in PLPLOT. These colors are pre-assigned 
   as the following numbers:
   
      1       2         3        4        5         6         7       8
     black   red    yellow      green  aquamarine  pink     wheat   gray
   
      9      10        11       12       13        14        15      16
     brown   blue   blueviolet  cyan   turquoise   magenta  salmon  white 
      
   You can select color by _plcol() function.  More colors are available by
   using RGB combinations (see PLPLOT manual). There are three things remained  
   to be done -- add scroll bar to the MacRLaB window, add copy/paste ability 
   in the graphics windows, and add PICT image to the generated EPSF files.
   
   You can include the PLPLOT generated Postscript output (EPSF) in your 
   document (Word, MacDraw, Canvas, TeX, ...) but you can only see a 
   big crossed box (the bounding box) on the screen due to the lack of the 
   PICT image. You can perform scaling, rotating, dragging,... on the box 
   except there is no picture inside.  Don't worry, the picture will appear 
   in the printed copy.
   
   If you need superscript, subscript, over/under line char, and Greek letters 
   in annotation of axis, title, etc., then you need to get a copy of PLPLOT 
   manual.  See README.PLPLOT for detail.  
   
   There is a plotting example in ":examples:plot_test.r", try
   
   >rfile plot_test

   You can click on those background windows to see them again. The graphics 
   windows are numbered as plplot 0, plplot 1, plplot 2, ..., and so on.  You 
   can also resize or drag them.  Resizing on the screen will not affect 
   the quality of later plprint() output. 
   
   For each graph window, there is a temporary file (SCRATCH????) 
   associated with it.  It contains your plotting commands which can be used
   later to produce a Postscript or other types of graphics file (via
   plprint).  It is also used by my Mac interface in redrawing.  Don't dump
   them into trash can during the execution of MacRLaB.   They will be 
   automatically eliminated after the execution.   Also, don't use pend() 
   to close graphics windows unless you don't want to plot anymore. Use 
   pclose() instead.  plplot has a bug that it does not close the plotting 
   command file even you close the graphics window by pend() or pclose().  
   So if you plot after pend(), the old picture together with the new picture
   will appear on the graphics window.
   
   If you plot several pages of PS graph into a file, you have to change 
   the file type to 'TEXT' (all capital) by drag and drop the file onto
   ctc 1.5.  After the file type has been changed, you can print it out 
   by Drop¥PS or ShowPages.  Why?  Because plplot creates the PS output file
   in binary mode, but Drop¥PS and ShowPages accept only TEXT file.
      

5. The full history command editing capacity is built-in.  To recall 
   previous commands, just press up and down arrow keys.  
   The 'control' key described in the RLaB Primer can be replaced by the 
   'command' key on the Mac keyboard.  Delete-cursor-character (del) is also 
   supported.  The full description of command line editing is in the file
   ":help:COMMAND_EDIT", or type "help COMMAND_EDIT" in RLaB.

   
6. Your machine must have a 68020 or better cpu to run MacRLaB.  You also 
   need System 7 to run it.  If your machine does not have an fpu (68881 or 
   better) then you should run MacRLaB-nofpu instead of MacRLaB.
   
   Try
   
   >load("test")

   on your machine to see if your machine can pass all tests.
         
7. The total size of arrays is only limited by the available memory of your 
   machine.  If RLaB runs out of memory, it will display
       
        RLaB: out of memory. 
        
   on the screen.  You can either increase RLaB memory using 'Get Info' of 
   System 7 Finder or, if your physical RAM is limited, turn on the virtual
   memory and set the memory size large enough for your application.

8. To interrupt RLaB during execution, type command-. (i.e. press command 
   key + period key), it will return to the interactive mode in the next i/o.  
   To abort RLaB and kick it out, you can use File-Quit (command-Q) on Menu bar. 
   You can also do so by type in command-d at the beginning of a command 
   line, or type "quit" directly.
   If RLaB hangs, press command-option-esc to abort it.

9. The source code of mac version is merged in the rlab source code 
   distribution (see :misc:ftp-sites).  Those statements within 
               #ifdef THINK_C  ... #endif 
   are my modifications for THINK C 7.03 compiler on the Mac.  I've modified the 
   console user interface.  Three difference files diff1, diff2, and diff3 
   tell you those modifications (they are in :misc:MAC).  You also need f2c 
   and POSIX libraries.  They are available in info-mac archives.
   
10. If you wish to join the RLaB community, send an email to Ian 
    (ians@eskimo.com) and ask him to add your name in the mailing list.  
    You can reach the RLaB community by sending email to rlab-list@eskimo.com.
   
11. We need more tools.  Please send your useful rfiles to Ian.  Thanks.

12. THIS IS FREE SOFTWARE. THERE IS NO WARRANTY FOR THE PROGRAM.  USE IT AT 
    YOUR OWN RISK.  
 
Have fun!

Tzong-Shuoh Yang   
(tsyang@ce.berkeley.edu)