next_inactive up previous


../doc/db.tex
created from help file
../help/db.hlp

January 12, 2001


Contents

1. HELP

                                                                                
 Synopsis                                                                       
        ?                               produces a list of commands recognized  
					  (at the current level of CMLI).                                          
	help 				All help topics, via ASK or CMLI                                      
	?? 				All help topics, via ASK or CMLI                                        
	?? [helplibraryname]		All help topics in another library,                      
					  via ASK or CMLI.                                                         
        \H				ASK help topics, via ASK or CMLI.                                 
        \H [helplibraryname]		ASK help topics, via ASK or CMLI.                 
                                                                                
 Description:                                                                   
	Get access to help facilities. Defaults to USERS.HLP, top-most level.          
 If programming using CMLI rather than ASK, CMLI will catch a single '?'        
 and list all currently available commands instead                              
                                                                                
	See also <QuestionMarkX2> (??), \H, and <QuestionMark> (?).

1.1 HELP:$<$QuestionMarkX2$>$

                                                                                
 Synopsis                                                                       
	??                                                                             
	?? [helplibraryname]                                                           
                                                                                
 Description:                                                                   
	Get access to help facilities.                                                 
 [helplibraryname] defaults to USERS, top-most level,                           
 unless program has defined the help file using INIT_HELP() or CMLI_HELP().     
                                                                                
	See also HELP and \H and <QuestionMark>.

1.2 HELP:$\setminus $H(ELP)

                                                                                
 Synopsis                                                                       
        \H                                                                      
        \H [helplibraryname]                                                    
                                                                                
 Description:                                                                   
	Get access to help facilities for ASK.                                         
 [helplibraryname] defaults to USERS, ASK level if it exists, unless            
 the program has defined the help file using INIT_HELP() or CMLI_HELP().        
                                                                                
	See also HELP, <QuestionMarkX2>, and <QuestionMark>.

1.3 HELP:$<$QuestionMark$>$

                                                                                
   ?           produces a list of commands recognized by CMLI (at this          
	       level of CMLI).

1.4 HELP:Helpfiles



1.4.1 HELP:Helpfiles:Format

                                                                                
    Help files *.HLP are ASCII, with each topic indicated by  a line            
 with a number (topic level) in the first column and the topic name.            
 The following text is the body of the help for that topic.                     
 1 indicates the topmost level. All subtopics which follow are                  
 associated with that topic, until a new topic of the same level appears.       
 Exclamation marks (!) comment out a line. Under VMS, *.HLP files               
 are converted to binary *.HLB for use with executables.                        
                                                                                
    In order for both standard help facilities (like for ASK) to be             
 available along side program specific ones, create only one top                
 level per help file. For example,                                              
        "1 ASK"          in ASK.HLP             (Need)                          
        "1 HELP"         in HELP.HLP            (Need)                          
        "1 CMLI"         in CMLI.HLP            (Optional)                      
        "1 DOPLOT"       in DOPLOT.HLP          (Optional)                      
        "1 MINUIT"       in MINUIT.HLP          (Optional)                      
        "1 MSRLIB"       in MSRLIB.HLP          (Optional)                      
        "1 YOURPROGRAM"  in YOURPROGRAMONLY.HLP (Preferably)                    
 Then concatinate the files together into YOURPROGRAM.HLP                       
 (see [.HELP]DESCRIP.MMS or [.HELP]Makefile.)                                   
 Finally, only on VMS systems, create a binary help library *.HLB.              
 Note, the help files you include should reflect the program library            
 modules you are linking.

1.4.2 HELP:Helpfiles:Paths

 Programming note:                                                              
                                                                                
    ASK.FOR and CMLI.FOR have common block variables HLP_PATH and HLP_FIL,      
 which needs to be initialized in main part of program,                         
 by calling                                                                     
	call init_help('path', 'yourhelpfile', 'level').                               
 Do not include a path or an extention in 'yourhelpfile'.                       
 'level' is optional.                                                           
                                                                                
    Alternatively, don't define the path directly using init_help.              
 Either                                                                         
	call init_help(' ', 'yourhelpfile', ' ')                                       
 or                                                                             
	call CLMI_HELP('yourhelpfile', ' ')                                            
 and instead the default path can be set using                                  
	assign <path> MSRHELP:		(On VMS)                                               
 or                                                                             
	setenv MSRHELP <helpdir>	(On Unix)                                             
 before running the program.                                                    
 Both help-unx.c and help-vms.for have the environment variable MSRHELP         
 available to use if the path for the help file is not defined                  
 within the program.                                                            
                                                                                
	The assignments are best set on a system-wide basis by your system             
 manager for shared stable programs. The "init_help()" is convenient for        
 those who are unfamiliar with assignments and/or who are actively developing   
 software.

2. ASK

                                                                                
	  ASK libary for user IO, for linking to FORTRAN code.                         
                                                                                
 Summary                                                                        
	* Macro playing and recording (see commands containing @, \ )                  
	* Assignment of "variables" (see \= and \CALC)                                 
	* Command line history and in-line editing (on some operating systems)         
	* Can go into CALCulator mode (see \C*ALC).                                    
	* Can to into EVALuation mode (see \=).                                        
	* Can issue a system call on some operating systems.                           
	* Help.

2.1 ASK:$\setminus $CALC

                                                                                
 Synopsis                                                                       
	\C, \C*ALC                                                                     
                                                                                
 Description:                                                                   
	Enter calculator mode. Exit with a single blank line.                          
 Expressions and assignments to variable names are allowed.                     
 All implimented functions use the generic fortran name.                        
 All numbers and variables are stored as double, including                      
 logicals .TRUE. and .FALSE.                                                    
                                                                                
	See Expressions

2.1.1 ASK:$\setminus $CALC:examples

                                                                                
 program prompt >>\= pisq = pi**2                                               
       9.8696044                                                                
 program prompt >>\= run = 1234                                                 
       1234.0000                                                                
 program prompt >>\calc                                                         
 CALC> run = run + 1                                                            
       1235.0000                                                                
 CALC> silly = (cos(pisq) .eq. run)                                             
       0.0000000                                                                
 CALC> silly                                                                    
       0.0000000                                                                
 CALC>                                                                          
 program prompt >>                                                              
 Enter run number >> run

2.2 ASK:$\setminus $=

                                                                                
 Synopsis                                                                       
	\= [expression]                                                                
                                                                                
 Enter EVALuation mode. Identical to \CALC, except that exits                   
 after one line. See \CALC for which functions, operators, etc.                 
 are allowed in expressions and assignments.

2.2.1 ASK:$\setminus $=:Saving

                                                                                
	All constants created can be saved to a macro (indirect)                       
file using the command @#[filename].                                            
                                                                                
	Alternatively, the routines EVALLOAD(filename) and                             
 EVALSAVE(FILENAME, USE_INDIRECT) in EVALTAB.FOR reads in/saves                 
 to the user's evalrc resource file for defining variables for EVAL/CALC/ASK.   
 It briefly uses the first free unit number between 0 and 19                    
 to open and read the file. These routines are not currently called by ASK,     
 other than @# using EVALSAVE.

2.3 ASK:Macros

                                                                                
	Run a macro (indirect) file using @. Record a macro file                       
 by starting with @+[filename] and ending with @-.                              
                                                                                
	See @, @-, @+

2.4 ASK:@

                                                                                
 Synopsis                                                                       
                                                                                
	@ [filename]                                                                   
                                                                                
 Get responses from macro (indirect) file instead of from terminal.

2.5 ASK:@+

                                                                                
 Synopsis                                                                       
	@+ [filename]                                                                  
                                                                                
 Record responses from terminal to a macro (indirect) file.                     
 Use @- to stop recording. See \NOISY.

2.6 ASK:@-

                                                                                
 Synopsis                                                                       
	@-                                                                             
                                                                                
 Stop recording responses from terminal. (See @+)

2.7 ASK:@#

                                                                                
 Synopsis                                                                       
	@# [filename]                                                                  
                                                                                
 Save all ASK constants to a macro (indirect) file.

2.8 ASK:$\setminus $@

                                                                                
 ** OBSCURE COMMAND **   Not Fully tested.                                      
                                                                                
 Synopsis                                                                       
	\@	Resume reading from a macro (indirect) file                                 
	\-@	Suspend reading from a macro (indirect) file

2.9 ASK:$\setminus $-I

                                                                                
 ** OBSCURE COMMAND **   Not Fully tested.                                      
                                                                                
 Synopsis                                                                       
	\-I                                                                            
                                                                                
 Indirect mode off.

2.10 ASK:$\setminus $NOISY

                                                                                
 Synopsis                                                                       
         \N, \NOISY                    Enable noisy recording mode              
        \-N, \-NOISY                  Disable noisy recording mode              
                                                                                
 When recording users responses to a files with the @+ command,                 
 a comment line containing the prompt is written to the recording               
 file, on the line before the user's response.

2.11 ASK:$\setminus $D(ELIM)

                                                                                
 Synopsis                                                                       
	\D  [character]     Add a delimitor character                                  
	\-D [character]     Remove a delimitor character                               
                                                                                
 Delimitor characters are the characters such as comma (,) or space ( )         
 which separate numbers and strings when ASK is called with                     
 more than one variable. The default delimitor is comma.

2.12 ASK:$\setminus $G(NORED)

                                                                                
 Synopsis                                                                       
	\G  [character]     Add an ignored character                                   
	\-G [character]     Remove an ignored character                                
                                                                                
 Specifies characters to ignore when reading in numerical                       
 fields but not character fields. These are by default [ and ],                 
 which are used by TELL to indicate arrays of numbers,                          
 but which are not recognized by ASK.

2.13 ASK:$\setminus $ECHO

                                                                                
 Synopsis                                                                       
	\E,  \E*CHO                     enable echoing                                 
	\-E, \-E*CHO			disable echoing                                                 
                                                                                
 Enable or disable echoing of ASK, TELL prompts and the responses to ASK,       
 when running a macro (indirect) file.

2.14 ASK:$\setminus $L(OOP)

                                                                                
 Synopsis                                                                       
	\L [n]                                                                         
                                                                                
 Loop back to the beginning of the current macro (indirect) file                
 (if any) [n] times. The total number of times the macro will                   
 be run is n + 1 times. Note: \l must be the last command of the macro file.    
 Probably doesn't make sense outside of macro files.                            
 Note: the number of repeats may be a variable that has been                    
 previously assigned using "\=" or just a number.

2.14.1 ASK:$\setminus $L(OOP):Example

                                                                                
program> \= ifore = 23154		file loopy.jes:                                      
program> \= iback = 23167		 \= ifore = ifore + 1                                
program> \= nrepeat = 4			 \= iback = iback + 1                                 
program> @loopy.jes			 \l (nrepeat-1)

2.15 ASK:$\setminus $T(YPE)

                                                                                
 ** OBSCURE COMMAND **   Not Fully tested.                                      
                                                                                
 Synopsis                                                                       
	\T [filename]                                                                  
                                                                                
 Type a file.

2.16 ASK:$\setminus $W(AIT)

                                                                                
 DISABLED!!  ** OBSCURE COMMAND **  DISABLED!!                                  
                                                                                
 Synopsis                                                                       
        \W [n]                                                                  
                                                                                
 Wait [n] seconds.                                                              
                                                                                
 Disabled because very system dependent and of no obvious use.

2.17 ASK:Help

                                                                                
	See HELP under top level HELP, or HELP help file,                              
 for a description of help under ASK.

2.18 ASK:Comments

                                                                                
 Synopsis                                                                       
	!                            Comments out rest of line

2.19 ASK:$<$ExclamationMark$>$

                                                                                
 Synopsis                                                                       
	!                            Comments out rest of line

2.20 ASK:$<$DollarSign$>$

                                                                                
	How to make system calls from within the program.                              
 See SystemCall.

2.21 ASK:SystemCall

                                                                                
	How to make system calls from within the program.

2.21.1 ASK:SystemCall:VMS

 Synopsis                                                                       
	$ [dcl command]                                                                
                                                                                
  Creates a spawned process so that you can issue a single DCL command.

2.21.2 ASK:SystemCall:Unix

 Synopsis                                                                       
	$ [shell command]                                                              
	^Z	Suspend program                                                             
	fg 	resume program                                                             
                                                                                
  Control Z suspends the program, so you may make system calls.                 
  fg resumes the program. $ creates a spawned process so that you can           
 issue a single shell command.

2.22 ASK:ComdHistory

                                                                                
	Command line history (up arrow, etc.) and in-line editing capabilities         
 are available on some operating systems.

2.22.1 ASK:ComdHistory:VMS

	Command line history and in-line editing capabilities                          
 are via routines in prompt-vms.for, tt_get_input.for, tt_input.for             
 and system calls LIB$SYS_TRNLOG('SYS$COMMAND',,SYSCOM),                        
 LIB$SYS_TRNLOG('SYS$INPUT',,SYSINP).

2.22.2 ASK:ComdHistory:Unix

                                                                                
        Command line history and in-line editing capabilities                   
 are via routines in prompt-unx.c and the gnu library readline.

2.23 ASK:ProgrammingNotes

                                                                                
...ASK Evolved descendant of ASKFOR (FREAD-with-Prompt):                        
   New version includes Expression Evaluation via    LOC_EVAL                   
   and Indirect File processing (nesting up to 10 deep);                        
   also list processing, "Comments and \Command lines (e.g., \CALC)

2.23.1 ASK:ProgrammingNotes:Formating

                                                                                
 Deliver a one-line question stored in PROMPT (must not be empty!)              
 and get back (on the same line) a list of  *** up to 20 ***                    
 Fields of Answer(s), each Field specified as either a single variable          
 or an array; any Field may be  in any sequence:                                
                                                                                
       'D' (Real*8)            'R' (Real*4)                                     
       'I' (Integer*4)         'M' (Integer*2)                                  
       'S' (character Array)   'L' (Logical*4)                                  
       'C' (Complex*8)         'K' (Logical*2)                                  
       'A' (character String)                                                   
                                                                                
 Thus (e.g.)                                                                    
       '3R' calls for an array of 3 Real*4 variables                            
       'D' calls for a single Real*8 variable.                                  
       '80S' calls for a character array of 80 characters                       
		[character*1 str(80)]                                                         
       '80A' calls for a character string of 80 characters                      
		[character str*(80)]                                                          
                                                                                
	'S' and 'A' should have the opposite names, but for compataibility             
 with older versions of ask, which only had 'S', this is the way it is          
 done.                                                                          
                                                                                
	Note: The complex type is NOT implimented in PARSE.FOR!!!

2.23.2 ASK:ProgrammingNotes:Prompt

                                                                                
	Prompts are printed out with trailing blanks removed,                          
 followed by a single space. If using ASK<N>D() rather than ASK<N>()            
 or  ASK<N>S(), the prompt is followed by the default values of the             
 fields, in curly braces {}, followed by a space.                               
 Arrays of numbers are placed in square brackets, e.g., [1,2,3].                
                                                                                
	Note: In response to ASK*(), do NOT include square brackets []                 
 when entering values of arrays.

2.23.3 ASK:ProgrammingNotes:Subroutines

                                                                                
 L<N> is the formating string (see Formating). For example, 'S20'               
 A<N> is the variable field (whose type is defined by L<N>),                    
 which is going to get filled in.

2.23.3.1 ASK:ProgrammingNotes:Subroutines:ASK$<$N$>$()

                                                                                
        CALL ASK0 (PROMPT)                                                      
        CALL ASK1 (PROMPT, L1,A1)                                               
        ...                                                                     
        CALL ASK20 (PROMPT, L1,A1, L2,A2, L3,A3, L4,A4,                         
     >       L5,A5, L6,A6, L7,A7, L8,A8, L9,A9, L10,A10,                        
     >       L11,A11, L12,A12, L13,A13, L14,A14, L15,A15,                       
     >       L16,A16, L17,A17, L18,A18, L19,A19, L20,A20)                       
                                                                                
                                                                                
 These routines require the user to enter all the fields correctly,             
 comma separated, unless different deliminators have been defined by            
 \D(elim). Any unentered values default to zero for numbers and                 
 empty strings for string variables.

2.23.3.2 ASK:ProgrammingNotes:Subroutines:ASK$<$N$>$S()

                                                                                
        CALL ASK0S (PROMPT, NCH_Q)                                              
        CALL ASK1S (PROMPT, L1,A1, NCH_Q)                                       
        ...                                                                     
        CALL ASK20S (PROMPT, L1,A1, L2,A2, L3,A3, L4,A4,                        
     >       L5,A5, L6,A6, L7,A7, L8,A8, L9,A9, L10,A10,                        
     >       L11,A11, L12,A12, L13,A13, L14,A14, L15,A15,                       
     >       L16,A16, L17,A17, L18,A18, L19,A19, L20,A20, NCH_Q)                
                                                                                
 These routines require the user to enter all the fields correctly,             
 comma separated, unless different deliminators have been defined by            
 \D(elim). Any unentered values default to zero for numbers and                 
 empty strings for string variables. NCH_Q returns the number of                
 characters entered by the  user.  It is only really useful for ASK1S           
 called with a string variable, where the length of the entered string          
 is shorter than the allowed space.

2.23.3.3 ASK:ProgrammingNotes:Subroutines:ASK$<$N$>$D()

                                                                                
        CALL ASK1D (PROMPT, L1,A1)                                              
        ...                                                                     
        CALL ASK10D (PROMPT, L1,A1, L2,A2, L3,A3, L4,A4,                        
     >       L5,A5, L6,A6, L7,A7, L8,A8, L9,A9, L10,A10)                        
                                                                                
 These routines require the user to enter all the fields correctly,             
 comma separated, unless different deliminators have been defined by            
 \D(elim). Any unentered values default to the original values of the           
 variables  A1 through A<N>. In addition, the default values are                
 placed in a string "{A1, ..., A<N>}" which is appended on the end              
 of the prompt. Therefore, the user knows what the default values are           
 when they enter values.                                                        
                                                                                
	These routines are limited to 10 fields, because of the                        
 limitiations of TELL (which it uses) and by the practical consideration        
 that it is unreasonable to prompt the user for more than a handful             
 of values at a time. The prompt line quickly gets too long!

2.23.3.4 ASK:ProgrammingNotes:Subroutines:ASK_IF

                                                                                
   IF (ASK_IF (QUESTION)) THEN                                                  
      Returns .TRUE. if user enters 'Y' or 'y'.                                 
      Returns .FALSE. if user enters 'N' or 'n'.                                
      Returns .FALSE. if user gives a null length answer.                       
                                                                                
   IF (ASK_IFD (QUESTION, LOGICAL_DEF)) THEN                                    
      Returns .TRUE. if user enters 'Y' or 'y' and                              
         LOGICAL_DEF is updated to .TRUE..                                      
      Returns .FALSE. if user enters 'N' or 'n' and                             
         LOGICAL_DEF is updated to .FALSE..                                     
      Returns with default value of LOGICAL_DEF if                              
         user gives a null length answer.                                       
                                                                                
      WARNING!!! Make sure that LOGICAL_DEF is declared as a variable           
      and NOT as a parameter or a constant string!

2.23.3.5 ASK:ProgrammingNotes:Subroutines:OtherASK



2.23.3.5.1 ASK:ProgrammingNotes:Subroutines:OtherASK:SET_ASK_DELIMS

...CALL SET_ASK_DELIMS (', !...') to define Delimiter                           
                       characters recognized by ASK (',' recommended!)

2.23.3.5.2 ASK:ProgrammingNotes:Subroutines:OtherASK:SET_ASK_ECHO

...CALL SET_ASK_ECHO (ECH) to turn Indirect-mode Echoing                        
                       on (ECH = .TRUE.) or off (ECH = .FALSE.)

2.23.3.5.3 ASK:ProgrammingNotes:Subroutines:OtherASK:SET_ASK_FILE

                                                                                
...CALL SET_ASK_FILE (Filename) to redirect Input to Filename.                  
                                (same as "@Filename" in input stream;           
                                can be nested up to 10 deep.)

2.23.3.5.4 ASK:ProgrammingNotes:Subroutines:OtherASK:SET_ASK_INDIR

...CALL SET_ASK_INDIR (IND, LUN) to turn Indirect processing via LUN            
                       on (IND = .TRUE.) or off (IND = .FALSE.)                 
                       (in Local Indirect mode, IND = .FALSE.                   
                       closes current file and decrements pointer.)

2.23.3.6 ASK:ProgrammingNotes:Subroutines:Tell

                                                                                
...Tell is Format-Free Output to SYS$OUTPUT:                                    
   Deliver a one-line message stored in STORY, followed by up to                
   10 fields of variables.                                                      
                                                                                
        ENTRY TELL0 (STORY)                                                     
        ENTRY TELL1 (STORY, L1,A1)                                              
        ....                                                                    
        ENTRY TELL10 (STORY, L1,A1, L2,A2, L3,A3, L4,A4,                        
     >     L5,A5, L6,A6, L7,A7, L8,A8, L9,A9, L10,A10)                          
                                                                                
 Output places arrays in square brackets, e.g., [1,2,3].

2.23.3.7 ASK:ProgrammingNotes:Subroutines:INIT_HELP

                                                                                
  CALL INIT_HELP('path', 'hlp_fil', 'level') to select the help file            
       which otherwise defaults to USERS or ASK.                                
       Leave off the path and extention on the file name 'hlp_fil'.             
       If the path is a null string, the program defaults to                    
       the system logical MSRHELP in VMS of Unix.                               
                                                                                
  See HELP help topic.

2.23.4 ASK:ProgrammingNotes:UnitNumbers

                                                                                
	ASK's subroutine TT_GET_INPUT.FOR (only for VMS)                               
 uses the routine FIND_UNIT() to find a unit number                             
 between 30 and 99 which is not currently used.                                 
 ASK uses this to assign unit numbers to 'indirect' (a.k.a. macro) files.       
 I don't think that we use the this portion of TT_GET_INPUT                     
 (reading and writting a buffer list from/to a file.)                           
                                                                                
	ASK also searched for itself, backwards and forwards                           
 from MY_LUN_0=83. (?? is the maximum number of units allowed under             
 Linux systems, rather than 99 on VMS.)                                         
                                                                                
	The routines EVALLOAD(filename) and EVALSAVE(FILENAME)                         
 in EVALTAB.FOR reads in or saves to the user's evalrc resource                 
 file (FILENAME) containing defining variables for EVAL/CALC/ASK.               
 It briefly uses the first free unit number between 0 and 19 to                 
 open and read or write to the file. These routines are not currently           
 called by ASK.                                                                 
                                                                                
	The default system unit numbers for the terminal are                           
 6 and 7.                                                                       
                                                                                
	Therefore, if you are going to use fixed unit numbers in                       
 your program, use numbers between 0 and 29, except for 6 and 7.                
 That way the unit number will be always free when you go to use it.            
 Numbers between 30 and perhaps 70 are pretty safe, assuming                    
 that it is unlikely that you will have nesting of indirect files               
 of more than a handful.

2.23.5 ASK:ProgrammingNotes:Cautions



2.23.5.1 ASK:ProgrammingNotes:Cautions:Typing

	If your typing string L<N> is mismatched with the FORTRAN                      
 tyoe of the corresponding variable A<N>, i.e.                                  
	 call ask1('Enter integer ', 'R', i)                                           
 the number will be nonsense, rather than being                                 
 conveniently converted.                                                        
                                                                                
	If the user enters a real value when asked for an integer,                     
 ASK rounds it to the nearest integer.

2.23.5.2 ASK:ProgrammingNotes:Cautions:Evalutions

 Note: an absent operator defaults to multiply, e.g.                            
	b cos(x) = b*cos(x).                                                           
 This can cause some odd looking expressions to be evaluated                    
 in unexpected ways. For example 55.5.5 does not                                
 give an error but instead returns 55.5*0.5 = 27.75

2.24 ASK:Expressions

                                                                                
	Expressions are combinations of ASK contants,                                  
 your program's variables, FORTRAN 77-like functions,                           
 operators and parentheses (,).                                                 
                                                                                
 Note: an absent operator defaults to multiply, e.g.                            
	b cos(x) = b*cos(x).                                                           
 This can cause some odd looking expressions to be evaluated                    
 in unexpected ways. For example 55.5.5 does not                                
 give an error but instead returns 55.5*0.5 = 27.75                             
                                                                                
 Example:                                                                       
	\= ninety = (180/pi)*asin(1.0)                                                 
	\= z = sqrt((abs(x))^2 + (abs(y))^2)                                           
	\= z				(echoes back current value of z)                                       
	\= (180/pi)*asin(1.0)		(echoes back value)                                     
                                                                                
	See also Assignment Functions Operators Constants \=

2.25 ASK:Assignment

                                                                                
  Assignment  =                                                                 
                                                                                
  Example: \= twopi = 2.0*pi

2.26 ASK:Functions

                                                                                
 The following FORTRAN 77-like functions are defined:                           
                                                                                
 Trig functions:                                                                
     sin  cos  tan                                                              
     asin acos atan                                                             
     sinh cosh tanh                                                             
                                                                                
 Exponential functions:                                                         
     exp  log  log10                                                            
                                                                                
 Square Root:                                                                   
     sqrt                                                                       
                                                                                
 Round down and nearest integer:                                                
     aint anint                                                                 
                                                                                
 Absolute value: (useful for before you take a power!)                          
     abs                                                                        
                                                                                
 Programmers note: These are defined in EVALFUN.FOR

2.27 ASK:Operators

                                                                                
	The following FORTRAN 77-like operators are allowed:                           
                                                                                
  Exponent   **                                                                 
  Multiply   *                                                                  
  Divide     /                                                                  
  Add        +                                                                  
  Subtract   -                                                                  
                                                                                
  Logical ops             ==   !=   >    >=   <=   <    &     |    !            
  FORTRAN 77 equivalent: .EQ. .NE. .GT. .GE. .LT. .LE. .AND. .OR. .NOT.         
                                                                                
  Either the FORTRAN 77 version or the math version maybe used.                 
                                                                                
  Logical values .TRUE. .FALSE.

2.28 ASK:Constants

                                                                                
  Pre-defined constants:    e  pi                                               
                                                                                
  User defined constants  \= myconstan = [expression]                           
                                                                                
  Allowed characters in constants name are a-z, 0-9, "_", "$".                  
  Upper and lower case characters are treated equivalently.

3. CMLI

                                                                                
	(Not yet completed. Direct from CMLI.FOR comments.)                            
                                                                                
...ComMand Line Interpreter for general use:                                    
                                                                                
...Using the ASK utility, request (using PROMPT), receive and interpret         
   a User Command Line beginning with an NCH-character Command                  
   which must match one of the NCMD Commands CMDS(i) defined by the caller,     
   followed by up to 19 "fields" of arguments A1, etc., of types L1, etc.,      
   and return the command number JCMD and arguments to the calling program.     
   In case of erroneous input (e.g., an unrecognizable Command) the user        
   will be prompted for new input.  For examples see the HELP library below.    
                                                                                
...User input is normally converted to upper case, meaning of course            
   that any command appearing in the CMDS(i) list which contains lower case     
   characters can never be matched.  This is a good way to indicated            
   as-yet unsupported commands.  To turn off upper case conversion              
   and allow more flexibility/confusion, CALL CMLI_UPPER (.FALSE.)              
                                                                                
..Abbreviations are normally accepted for all commands, meaning of course       
   that ambiguities are resolved in favour of the command appearing earliest    
   in the CMDS(i) list.  To reject abbreviations, CALL CMLI_ABBREV (.FALSE.)    
                                                                                
                                                                                
               -- Jess Brewer (Jan. 1984)                                       
               -- Updated August 1987 to allow up to 19 "fields".

3.1 CMLI:HELP

                                                                                
	See HELP under top level HELP, or HELP help file,                              
 for a description of help under CMLI.

3.2 CMLI:Syntax

                                                                                
	Not written yet.

3.3 CMLI:ProgrammingNotes

                                                                                
	Not written yet.

4. MINUIT

                                                                                
        CERN Minuit package.                                                    
                                                                                
	See CERN minuit reference manual, (minuit.tex),                                
 CERN Program Library Long Writeup D506.                                        
                                                                                
 See below for list of MINUIT Interactive commands, used by this                
 program.

4.1 MINUIT:Commands

                                                                                
List of MINUIT Interactive commands:                                            
                                                                                
CLEar     Reset all parameter names and values undefined                        
CONtour   Make contour map of the user function                                 
EXIT      Exit from Interactive Minuit and MSRFIT.                              
END       Exit from MINUIT and start another fit.                               
FIX       Cause parameter(s) to remain constant                                 
HESse     Calculate the Hessian or error matrix.                                
IMPROVE   Search for a new minimum around current minimum                       
MIGrad    Minimize by the method of Migrad                                      
MINImize  MIGRAD + SIMPLEX method if Migrad fails                               
MINOs     Exact (non-linear) parameter error analysis                           
MNContour Calculate one MINOS function contour                                  
PARameter Define or redefine new parameters and values                          
QUIT      Panic stop.                                                           
RELease   Make previously FIXed parameters variable again                       
REStore   Release last parameter fixed                                          
SAVe      Save current parameter values on a file                               
SCAn      Scan the user function by varying parameters                          
SEEk      Minimize by the method of Monte Carlo                                 
SET       Set various MINUIT constants or conditions                            
SHOw      Show values of current constants or conditions                        
SIMplex   Minimize by the method of Simplex                                     
STOP      Panic stop.

5. DOPLOT

                                                                                
	Simple DOPLOT library for plotting, using PGPLOT library.                      
 TRIUMF GPLOT version written by Jess Brewer for use  by msrfit,                
 DB, etc. Translated to the PGPLOT Library by Paul Kienzle.                     
 Must be used with ASK library.

5.1 DOPLOT:LOGSCALE

                                                                                
 Synopsis                                                                       
	DOPLOT> LOG                                                                    
	Logarithmic X Scale? [no]                                                      
	Logarithmic Y Scale? [no]                                                      
                                                                                
	DOPLOT> LOG                                                                    
	Logarithmic X Scale? [no]                                                      
	There are zero or negative X values.  Truncate? yes                            
	  Truncating non-positive X values                                             
	Logarithmic Y Scale? [no]                                                      
	There are zero or negative Y values.  Truncate? [no]                           
	  Plotting negative y as log10(abs(y)) using left arrow                        
                                                                                
	Plot using log-based-10 scale instead of linear.                               
 If there are negative values, the program will ask you if you wish to          
 truncate these values. If yes, it will take the absolute value before          
 taking the log, and indicate this with a left arrow (for negative y's) or      
 a down arrow (for negative x's). If no, it will only plot positive values.

5.2 DOPLOT:INVSCALE

                                                                                
 Synopsis                                                                       
	DOPLOT> INVSCALE                                                               
	Inverse X Scale? y                                                             
	There are zero or negative X values.  Truncate?                                
	  Plotting negative x as -log10(abs(x)), using down arrow                      
	Inverse Y Scale? n                                                             
                                                                                
	This should plot -log10(abs(value)), the same as for LOGSCALE.                 
 Broken.

5.3 DOPLOT:X_LIMITS

                                                                                
 Synopsis                                                                       
	DOPLOT> X_LIMITS [xmin], [xmax]                                                
                                                                                
	Set x axis limits. If either [xmin] or [xmax] (or both)                        
 are missing or have the value zero, then it is set to auto scaling.

5.4 DOPLOT:Y_LIMITS

                                                                                
 Synopsis                                                                       
	DOPLOT> Y_LIMITS [ymin], [ymax]                                                
                                                                                
	Set y axis limits. If either [ymin] or [ymax] (or both)                        
 are missing or have the value zero, then it is set to auto scaling.

5.5 DOPLOT:BOX

                                                                                
 Synopsis                                                                       
	DOPLOT> BOX                                                                    
	Label Axes etc.? [no]                                                          
                                                                                
	Either plots axes and data with [yes] or without [no] (the default)            
 title, and labels.

5.6 DOPLOT:TICS

                                                                                
 Synopsis                                                                       
	DOPLOT> tics [xspacing], [yspacing]                                            
                                                                                
	Determines the spacing of the major tics and numbers on the                    
 two axes. A value of zero means that the program automatically                 
 selects the spacings.

5.7 DOPLOT:AXES

                                                                                
 Synopsis                                                                       
	DOPLOT> AXES                                                                   
	Plot X-axis? [yes]                                                             
	Plot Y-axis? [yes]                                                             
                                                                                
	Plot x and or y origin axes, using a dashed line.

5.8 DOPLOT:WIDTH

                                                                                
 Synopsis                                                                       
	DOPLOT> WIDTH [r]                                                              
                                                                                
	Plot width in inches. Ignored by x-windows.                                    
 Might not work at all.

5.9 DOPLOT:HEIGHT

                                                                                
 Synopsis                                                                       
	DOPLOT> HEIGHT [r]                                                             
                                                                                
	Plot height in inches. Ignored by x-windows.                                   
 Might not work at all.

5.10 DOPLOT:MARGINS

                                                                                
 Synopsis                                                                       
	DOPLOT> MARGINS [xleft], [ybottom]                                             
	Lower left corner of plot now at (X,Y) = 0, 0.                                 
                                                                                
 Margins size for graph. Ignored by x-windows.                                  
 Might not work at all.

5.11 DOPLOT:POINTSIZ

                                                                                
 Synopsis                                                                       
	DOPLOT> point [size]                                                           
 Point size (") now 0.125                                                       
                                                                                
	Sets the symbol size in inches for plots (assuming                             
 letter sized paper).

5.12 DOPLOT:CHARSIZE

                                                                                
 Synopsis                                                                       
	DOPLOT>                                                                        
                                                                                
	DOPLOT> CHARSIZE [size]                                                        
 Character size (") now 0.25                                                    
                                                                                
	Sets the font size in inches for plots (assuming                               
 letter sized paper).

5.13 DOPLOT:DEVICE

                                                                                
 Synopsis                                                                       
	DOPLOT> DEVICE                                                                 
                                                                                
	Selectes the PGPLOT output device (defaults to x windows),                     
 for terminal output (Interactive devices). Will not work properly for          
 file devices. Use HARDCOPY instead for output to a file, including postscript. 
 See PGPLOT documentation for more detail.

5.14 DOPLOT:HARDCOPY

                                                                                
 Synopsis                                                                       
	DOPLOT> HARDCOPY                                                               
	...                                                                            
	Format? (filename/devicetype) > junk.ps/vps                                    
                                                                                
	Outputs the current plot to a PGPLOT device.                                   
 Please only select a non-interactive file format such as postscript.           
 See PGPLOT documentation for more detail.

5.15 DOPLOT:TITLE

                                                                                
 Synopsis                                                                       
	DOPLOT> TITLE                                                                  
	Present Title:                                                                 
	junk                                                                           
	Replacement? a new title                                                       
                                                                                
	Change the title.                                                              
                                                                                
	Note: The text will be truncated at the first defined deliminator              
 found. The defined deliminators is almost always a comma.

5.16 DOPLOT:LABELS

                                                                                
 Synopsis                                                                       
	DOPLOT> LABELS                                                                 
	Present X Label:                                                               
	x                                                                              
	Replacement? xx                                                                
	Present Y Label:                                                               
	y                                                                              
	Replacement? yy                                                                
                                                                                
	Change the x and y axes labels. Carriage return preserves the                  
 current title.                                                                 
                                                                                
	Note: The text will be truncated at the first defined deliminator              
 found. The defined deliminators is almost always a comma.

5.17 DOPLOT:CAPTION

                                                                                
 Synopsis                                                                       
	DOPLOT> CAPTION                                                                
	Enter a line of Caption > [This is a caption]                                  
	Character size (") > [newcharsize]                                             
	Angle > [angle]                                                                
	Position 1st character w/cursor & hit any key but CR: [cr]                     
                                                                                
	Places caption anywhere you want on screen using cursor                        
 (for VTXXX terminals?) or the mouse (for x windows).                           
                                                                                
	Note: The text will be truncated at the first defined deliminator              
 found. The defined deliminators is almost always a comma.                      
                                                                                
	See also TEXT

5.18 DOPLOT:TEXT

                                                                                
 Synopsis                                                                       
	DOPLOT> TEXT                                                                   
                                                                                
	This seems to be like CAPTION, except it doesn't work.                         
                                                                                
	Note: The text will be truncated at the first defined deliminator              
 found. The defined deliminators is almost always a comma.                      
                                                                                
	See also CAPTION

5.19 DOPLOT:FONT

                                                                                
 Synopsis                                                                       
	DOPLOT> FONT [n]                                                               
                                                                                
	Selects which font to use, for the whole page.                                 
 Standard san serif font is 1.                                                  
 Roman font is 2.                                                               
 Italic font is 3.                                                              
 Script font is 4.

5.20 DOPLOT:DB_DUMP

                                                                                
 Synopsis                                                                       
	DOPLOT> DB_DUMP                                                                
	DB file to contain the point > [junkdump.db]                                   
                                                                                
	Outputs the contents of the plot to a file,                                    
 using DB format, only labeled by x, y and symbol type.

5.21 DOPLOT:KEEP

                                                                                
 Synopsis                                                                       
	DOPLOT> KEEP                                                                   
                                                                                
	Keeps the current plot in "memory". You can then leave                         
 DOPLOT, re-enter with new data to plot and the new plot                        
 will be added to the old one.

5.22 DOPLOT:ADD

                                                                                
 Synopsis                                                                       
	DOPLOT> ADD                                                                    
	Entering a Line? y                                                             
	Add (X,Y) point (0,0 when done) > 0.2, 112                                     
	Add (X,Y) point (0,0 when done) > 12, 143                                      
	Add (X,Y) point (0,0 when done) > 0,0                                          
                                                                                
	DOPLOT> add                                                                    
	Entering a Line? n                                                             
	Entering a Character? y                                                        
	Add (X,Y,CH) point (0,0 when done) > 0.1, 100, a                               
	Add (X,Y,CH) point (0,0 when done) > 0, 0                                      
                                                                                
	Enter points for a line or disconnected single                                 
 letters or characters. Characters are useful for labling                       
 portions of a complex plot.

5.23 DOPLOT:TERSE

                                                                                
 Synopsis                                                                       
	DOPLOT> TERSE                                                                  
	Plot all symbols as dots, etc.? y                                              
                                                                                
	For temporarily removing all symbols and error bars.

5.24 DOPLOT:REMEMBER

                                                                                
 Synopsis                                                                       
	DOPLOT> REMEMBER                                                               
                                                                                
	Store setup details in DOPLOT.INIT.                                            
 Crashes program.                                                               
                                                                                
	See also RECALL

5.25 DOPLOT:RECALL

                                                                                
 Synopsis                                                                       
	DOPLOT> RECALL                                                                 
                                                                                
	Restore setup details in DOPLOT.INIT                                           
                                                                                
	See also REMEMBER

5.26 DOPLOT:EDGR

                                                                                
 Synopsis                                                                       
	DOPLOT> EDGR                                                                   
                                                                                
	Not implimented.

5.27 DOPLOT:PUBLISH

                                                                                
	Not implimented. Intended for using publishers convention for                  
 numbers, etc.

5.28 DOPLOT:NEXT

                                                                                
 Synopsis                                                                       
	DOPLOT>                                                                        
                                                                                
	Like regular DOPLOT except without interactive loop                            
and do not clear display between this plot and the next                         
(meant to be used with call DOPLOT_MARGINS to                                   
plot several frames in one window.                                              
                                                                                
	Does not work.                                                                 
                                                                                
	See also MARGINS

5.29 DOPLOT:QUIT

                                                                                
 Synopsis                                                                       
	DOPLOT> QUIT                                                                   
                                                                                
	EXIT the program. (Use EXIT to leave DOPLOT level and return to                
 the level which called DOPLOT.)                                                
                                                                                
	See also EXIT

5.30 DOPLOT:EXIT

                                                                                
 Synopsis                                                                       
	DOPLOT> EXIT                                                                   
                                                                                
	Leave DOPLOT level and return to the level which called DOPLOT.                
                                                                                
	See also QUIT

5.31 DOPLOT:Deliminators

                                                                                
	Note: The text will be truncated at the first defined deliminator              
 found. The defined deliminators is almost always a comma.                      
 This affects TITLE, LABELS, CAPTION, TEXT.

5.32 DOPLOT:Color

                                                                                
	On output devices which handle color,                                          
 curves are drawn cycling between 7 colors                                      
 (white/black, red, green, blue, cyan, purple, yellow and orange).              
 The first 7 point types have the same corresponding colors.                    
 All other symbols are drawn in white/blank, so that the                        
 symbol is the opposite color of the background.

5.33 DOPLOT:FancyText

                                                                                
	Special characters may be embedded in the title, labels                        
 and caption. See PGPLOT manual section 4.5.1 "Escape sequences."               
 Because ASK already uses backslash to start special commands,                  
 DOPLOT uses the hat symbol "^" in place of the backslash.                      
                                                                                
	The routine PGPTXT (and all the PGPLOT routines which call it,                 
 e.g., PGTEXT, PGLAB) allows one to include escape sequences in the             
 text string to be plotted. These are character-sequences that                  
 are not plotted, but are interpreted as instructions to change                 
 font, draw superscripts or subscripts, draw non-ASCII characters               
 (e.g., Greek letters), etc. All escape sequences start with a backslash        
 or hat character (\ or ^) in PGPLOT and in DOPLOT, respectively.               
 The following escape sequences are defined (see next level of help)            
 (the letter following the \ or ^ may be either upper or lower case):

5.33.1 DOPLOT:FancyText:Subscripts

                                                                                
                                                                                
 ^u                                                                             
      start a superscript, or end a subscript                                   
 ^d                                                                             
      start a subscript, or end a superscript                                   
      (note that ^u and ^d must always be used in pairs)

5.33.2 DOPLOT:FancyText:Fonts

 ^fn                                                                            
      switch to Normal font (1)                                                 
 ^fr                                                                            
      switch to Roman font (2)                                                  
 ^fi                                                                            
      switch to Italic font (3)                                                 
 ^fs                                                                            
      switch to Script font (4)

5.33.3 DOPLOT:FancyText:Simple

 ^b                                                                             
      backspace    (i.e., do not advance text pointer                           
      after plotting the previous character)                                    
 ^x                                                                             
      multiplication sign (x)                                                   
 ^.                                                                             
      centered dot (·)                                                          
 ^A                                                                             
      ångström symbol (Å)

5.33.4 DOPLOT:FancyText:Greek

 ^gx                                                                            
      greek letter corresponding to roman letter x, as indicated in Fig4.3

5.33.5 DOPLOT:FancyText:Markers

 ^mn                                                                            
 ^mnn                                                                           
      graph marker number n or nn (1-31), as indicated in Figure 4.1

5.33.6 DOPLOT:FancyText:Hershey

 ^(nnnn)                                                                        
      character number nnnn (1 to 4 decimal digits) from the                    
      Hershey character set; the closing parenthesis may be omitted if          
      the next character is neither a digit nor ``)''. This makes a             
      number of special characters (e.g., mathematical, musical,                
      astronomical, and cartographical symbols) available.                      
      See Appendix B for a list of available characters.

5.33.7 DOPLOT:FancyText:All

                                                                                
 ^u ^d                                                                          
      start/end a superscript or subscript                                      
 ^fn ^fr ^fi ^fs                                                                
      switch to Normal, Roman, Italic or Script font.                           
 ^b                                                                             
      backspace    (i.e., do not advance)                                       
 ^x                                                                             
      multiplication sign (x)                                                   
 ^.                                                                             
      centered dot (·)                                                          
 ^A                                                                             
      ångström symbol (Å)                                                       
 ^gx                                                                            
      greek letter corresponding to roman letter x, as indicated in Fig4.3      
 ^mn ^mnn                                                                       
      graph marker number n or nn (1-31), as indicated in Figure 4.1            
 ^(nnnn)                                                                        
      character number nnnn (1 to 4 decimal digits) from the                    
      Hershey character set; the closing parenthesis may be omitted if          
      the next character is neither a digit nor ``)''.

5.33.8 DOPLOT:FancyText:Example

                                                                                
DOPLOT> cap                                                                     
Enter a line of Caption > ^(0637)=1800^A ^m12 ^fi x^u2^d ^x y^u2^d ^fn ^gl HI!  
Character size (") >                                                            
Angle >                                                                         
Position 1st character w/cursor & hit any key but CR:                           
                                                                                
	Note: this example creates the greek character lambda                          
 two different ways, with ^(0637) and ^gl.

5.34 DOPLOT:Symbols

                                                                                
	When plotting (from DB, msrfit, etc.), a point type of                         
 value between 0 and 7 produces colored "standard" symbols.                     
                                                                                
	 Point types between 8 and 31 produce                                          
 symbols with the same number as the PGPLOT                                     
 standard graph markers. PGPLOT standard graph markers with                     
 negative numbers are not available (solid polygons),                           
 and appear as dots instead.                                                    
                                                                                
	Point types between 32 and 127 appear as ASCII characters.                     
 Above that, Hershey symbols are used. Unprintable characters                   
 only appear as dots. The appearance of symbols above 31                        
 may depend on the font selected and/or the output device.                      
 User beware.                                                                   
                                                                                
	 Note: to plot point types above the number 9,                                 
 make sure that they are evaluated as an expression,                            
 either by entering a variable name or using parentheses,                       
 e.g. (11) not 11. Othersize the program will just use the first                
 digit.

5.34.1 DOPLOT:Symbols:StandardSymbols

                                                                                
 Point type     Shape        Color         PGPLOT graph marker number           
 -------------+-------------+------------+----------------------------          
 0             Square        White/Blank   0                                    
 1             Circle        Red           4                                    
 2             Triangle      Green         7                                    
 3             Pointy square Blue          10                                   
 4             Diamond       Cyan          11                                   
 5             Star          Purple        12                                   
 6             X             Yellow        5                                    
 7             *             Orange        3

5.34.2 DOPLOT:Symbols:SymbolsOther

                                                                                
	See appendix B or fig 4.1 of the PGPLOT documentation for                      
 a table of the standard PGPLOT symbols.

5.34.3 DOPLOT:Symbols:Characters

                                                                                
	Point type numbers entered between 32 and 127 that are interpreted as          
 ASCII representations of characters, to be used as the symbol.

5.34.4 DOPLOT:Symbols:Hershey

	                                                                               
        Point type numbers entered with values between 127 and 2932             
 are interpreted as Hershey symbol numbers, to be used as the symbol.           
 For example, 637 draws a lambda. See appendix B of the                         
 PGPLOT documentation for tables of the Hershey characters.

5.35 DOPLOT:RatingOfCommands



5.35.1 DOPLOT:RatingOfCommands:Basic

                                                                                
LOGSCALE  X_LIMITS  Y_LIMITS  HARDCOPY  EXIT      QUIT

5.35.2 DOPLOT:RatingOfCommands:Intermediate

                                                                                
AXES      TITLE     LABELS    CAPTION   ADD       KEEP

5.35.3 DOPLOT:RatingOfCommands:Advanced

                                                                                
BOX       POINTSIZ  CHARSIZE  DEVICE                                            
TICS      FONT      DB_DUMP   TERSE

5.35.4 DOPLOT:RatingOfCommands:Broken

                                                                                
	Broken or unimplimented commands are:                                          
                                                                                
WIDTH     HEIGHT    INVSCALE  MARGINS                                           
TEXT      REMEMBER  RECALL    EDGR      PUBLISH   NEXT

5.35.5 DOPLOT:RatingOfCommands:Working

                                                                                
	Working commands are:                                                          
                                                                                
X_LIMITS  Y_LIMITS  BOX       AXES      LOGSCALE                                
POINTSIZ  CHARSIZE  EXIT      DEVICE                                            
TITLE     LABELS    TICS      HARDCOPY  CAPTION   FONT                          
DB_DUMP   KEEP      ADD       TERSE     QUIT

6. DB

                                                                                
	This documentation is out of date. November 2000                               
                                                                                
  A command-driven DataBase handling program with extensive PLOTting            
  capabilities.  Can be used by itself for plotting simple functions            
  without need for recompiling or task building (thanks to LOC_EVAL)            
  or with ".DB" EDTable data files of a standard but VERY free format.          
  The prompt of DB is (obviously)	DB>                                           
                                                                                
  Note that data can be input "by hand" using the commands of DB or             
  loaded from a ".DB" file via	DB>@filename.DB		Whichever way                   
  the data comes in, it has the SAME FORMAT, including commands defining        
  data structures, etc.  Thus there is NO distinction between "manual input"    
  and "stored-file input".  This makes it especially easy to remember the       
  format of the files, once you have become familiar with DB.                   
                                                                                
  	DB intercepts Error Traps and CTRL-C Traps.

6.1 DB:ABSTRACT

                                                                                
  This command has no arguments; it activates a search of                       
  subsequent input for at most 100 80-character lines of                        
  "Abstract", the significance of which is up to the user.                      
  At the moment, DB uses the Abstract only for detailed                         
  identification of the contents of ".DB" files.                                
                                                                                
  The input is terminated by a (COMPLETELY) blank line.

6.2 DB:COMMENTS

                                                                                
  This command has no arguments; it activates a search of                       
  subsequent input for at most 10 80-character "Comment"                        
  lines, the significance of which is up to the user.                           
  At the moment, DB uses the Comment only for detailed                          
  identification of the contents of ".DB" files.                                
                                                                                
  The input is terminated by a (COMPLETELY) blank line.

6.3 DB:CURVE

                                                                                
	NOTE: NOT IMPLIMENTED for use with PGPLOT graphics library!                    
                                                                                
  This command initiates entry of a succession of ordered                       
  triplets (one triplet to a line, separated by commas)                         
  terminated by a completely blank line, describing a 3D                        
  space curve to be drawn by DOPL3D.  Thus                                      
                                                                                
    DB>CURVE                                                                    
    >1,1,1                                                                      
    >2,4,1                                                                      
    >3,9,1                                                                      
    >4,16,1                                                                     
    >                                                                           
                                                                                
  will cause DOPL3D to draw a roughly parabolic line of                         
  connected points (X=1,Y=1), (X=2,Y=4), (X=3,Y=9), (X=4,Y=16)                  
  at constant Z=1.

6.4 DB:DATA

  This command MUST have arguments, namely the Names of the                     
  Variables to be loaded as (X,dX+,dX-), (Y,dY+,dY-), ... etc.                  
  on subsequent lines, terminated by a (COMPLETELY) blank line.                 
  The best way to explain this format is by example:                            
                                                                                
  DB>DATA   T		  A		  B                                                         
  >	5,1,1.5,	10,1,2,		55.1,18,, 	[Remark 1]                                     
  >	7.5,2,,		18.1,5.4,2.3,	127.5,22,, 	[Remark 2]                               
  >	14,2,,		21.2,7,,	337.4,45,,	[Remark 3]                                      
                                                                                
  would load the Variable array "T" with the numbers in the first column,       
  storing the Value, its Positive Error and its Negative Error, and             
  similarly for the Variable "A" in column 2 and "B" in column 3.               
  Any zero Negative Errors (e.g., where you see 14,2,, above) are               
  automatically set equal to the Positive Error for that entry.                 
  Each Point (row) may be identified by a Remark after all the numbers.

6.5 DB:DELETE

                                                                                
  This command deletes a column of data.                                        
                                                                                
  DB>DELELTE T

6.6 DB:EXIT

                                                                                
	Exits the program.

6.7 DB:FIT

                                                                                
  NOTE: Needs updating!                                                         
                                                                                
  This command has arguments which will be prompted for                         
  if omitted.  The most general form is                                         
                                                                                
  DB>FIT X Y                                                                    
                                                                                
  Here we are fitting the Independent Variable named "X"                        
  and the Dependent Variable named "A" to a form which                          
  may be given by an Expression (MINUIT fits).                                  
  You will be queried to find out which you want.  After FITting you            
  may draw the data points and a line through them, if desired.                 
                                                                                
	It is wise to store the parameters and theoretical                             
 formula in a macro file.                                                       
                                                                                
	Note: eventially the fitting program will use the                              
 covariance mentrix when MAXHES or HESMAX is present.                           
 Not implimented yet.

6.7.1 DB:FIT:Example

DB> fit b max                                                                   
MINUIT Fit? y                                                                   
Point type?                                                                     
DB>                                                                             
 MINUIT RELEASE 93.11  INITIALIZED.   DIMENSIONS 100/ 50  EPSMAC=  0.44E-15     
TITLE (or @Filename) > Fit to gaussian                                          
Parameter # LABEL VALUE ERR LLIM ULIM REMARK > 1 amp 775 1.5 0.001 1000.        
Parameter # LABEL VALUE ERR LLIM ULIM REMARK > 2 b0  0.0095 2.8E-7 0.007 0.011  
Parameter # LABEL VALUE ERR LLIM ULIM REMARK > 3 bwid 1.3E-4 3.3E-7 1.E-9 0.005 
Parameter # LABEL VALUE ERR LLIM ULIM REMARK >                                  
  For curve # 1                                                                 
        Enter theoretical formula for MAX                                       
 in terms of Parameters (by name) and B                                         
>max = amp*exp(-0.5*(b-b0)*(b-b0)/(bwid*bwid))                                  
...                                                                             
Want to PLOT? n                                                                 
Enter  i  to Modify P(i) >                                                      
New  P  [, dP, Pmin, Pmax]  > 780                                               
Enter  i  to Modify P(i) >                                                      
New Theory?                                                                     
Replot? y                                                                       
Plot Diff between Theory & Data?                                                
 Default range [Min,Max,Npts] =0.0070023, 0.011975, 99                          
 Enter range [Min,Max,Npts] of B                                                
 for plot:                                                                      
DOPLOT>                                                                         
Enter  i  to Modify P(i) >                                                      
...                                                                             
MINUIT> migr                                                                    
MINUIT> exit                                                                    
Want to PLOT?                                                                   
Finished Plotting? y                                                            
Write results to a MINUIT input file? y                                         
Enter file name > gaus3.ixy                                                     
DB>

6.8 DB:FRACERR

                                                                                
 DB> FRACERR INVAR OUTVAR                                                       
                                                                                
	Calculates the fractional error of the                                         
 data column invar and places the result in                                     
 in a new data column outvar.

6.9 DB:GENERATE

                                                                                
  One may Generate a new Data Variable (Column) from the                        
  values of all the existing Variables (Columns) with this                      
  command.  Any LOC_EVALuatable expression referring to the                     
  other Variables by their Names is allowed.  DB does                           
  the best it can (without calculating partial derivatives                      
  analytically) to generate Errors for the new Variable                         
  that include the Errors of the old Variables; but the                         
  result is necessarily symmetrical (Positive Error =                           
  Negative Error) and crude.  User beware!

6.10 DB:HESMAX

                                                                                
	The muSR Maxium Entropy program MaxErr saves its output P(b)                   
 in a DB file *.mdb, which has an extra DB command MaxHes (or HesMax),          
 which contains information about the hessian matrix, from which the            
 covariance matrix can be re-constructed. The covariance matrix                 
 may be used in place of the independent errors, when fitting                   
 (NOT IMPLIMENTED YET).                                                         
 The formats for MaxHes and HesMax differ slightly.                             
                                                                                
	It contains the entropy S(b) and grad grad chi^2 with respect to               
 the field b.                                                                   
                                                                                
	Use IMPORT to copy over the entropy and/or grad grad chi^2                     
 to the DATA array, so you can plot.

6.11 DB:IMPORT

                                                                                
	The command allows the vectors which are read by by HESMAX and MAXHES          
 (referred to as ENTROPY and GGCHI2) to be copied over to a new column of       
 data. Then you can plot it, or manipulate it as you wish.                      
                                                                                
	DB> IMPORT ENTROPY                                                             
	DB> IMPORT GGCHI2

6.12 DB:MAXHES

                                                                                
	The muSR Maxium Entropy program MaxErr saves its output P(b)                   
 in a DB file *.mdb, which has an extra DB command MaxHes (or HesMax),          
 which contains information about the hessian matrix, from which the            
 covariance matrix can be re-constructed. The covariance matrix                 
 may be used in place of the independent errors, when fitting                   
 (NOT IMPLIMENTED YET).                                                         
 The formats for MaxHes and HesMax differ slightly.                             
                                                                                
	It contains the entropy S(b) and grad grad chi^2 with respect to               
 the field b.                                                                   
                                                                                
	Use IMPORT to copy over the entropy and/or grad grad chi^2                     
 to the DATA array, so you can plot.

6.13 DB:LABELS

  This command can be used with or without arguments.                           
  With no arguments, it activates a search of subsequent                        
  input for at most nineteen Labels of 80 characters or less                    
  describing the meanings of the corresponding variables                        
  in the DATA array (which see).  DB automatically                              
  uses these Labels in any PLOTs of the data (which see).                       
  The input is terminated by a (COMPLETELY) blank line.                         
                                                                                
  With one of the existing DATA Variable Names as an argument,                  
  this command can be used to modify an existing label                          
  (namely, the one for that Variable).  E.g.,                                   
                                                                                
  DB>LABEL T                                                                    
  >Temperature [K]	gives the new Label "Temperature [K]" to                     
  			the existing Variable "T".

6.14 DB:LINE

  This command initiates entry of a succession of ordered pairs                 
  (one pair to a line, separated by commas) terminated by a                     
  completely blank line, describing a 2D curve to be drawn                      
  by DOPLOT.  Thus                                                              
                                                                                
    DB>LINE                                                                     
    >1,1                                                                        
    >2,4                                                                        
    >3,9                                                                        
    >4,16                                                                       
    >                                                                           
                                                                                
  will cause DOPLOT to draw a roughly parabolic line of                         
  connected points (1,1), (2,4), (3,9), (4,16).

6.15 DB:MODIFY

                                                                                
  One may Modify any Column of the Data array.  For example,                    
                                                                                
  DB>MODIFY FREQ                                                                
  ...(remarks by DB)...                                                         
  >FREQ = FREQ/(2*PI)                                                           
                                                                                
  will convert frequencies in radians/sec into Hz.                              
  One may also take square roots, logs, invert, etc....

6.16 DB:LOAD

                                                                                
  Restore DB database contents from a binary file (for whose name               
  you will be asked) previously generated by the SAVE command                   
  (which see).

6.17 DB:NORMALIZ

                                                                                
  One form of Modification which is special enough to have                      
  its own separate command is Normalization, the meaning                        
  of which should be obvious.

6.18 DB:PACK

                                                                                
	Not implimented.

6.19 DB:PLOT

  This command has arguments which will be prompted for if omitted.             
  The most general form is                                                      
                                                                                
  DB>PLOT T A [B] [IF Expression(s)]                                            
  Point type? [expression2]                                                     
                                                                                
  Here we are plotting Data Points with the Variable named "T"                  
  on the X axis, "A" on the Y axis, and [if specified] "B" on the               
  Z axis.  Note that the choice of 2-D or 3-D plot is determined                
  by context alone.  All error bars are drawn automatically.                    
  Note that no distinction is made between "dependent" and                      
  "independent" variables in the Data Points.                                   
                                                                                
	NOTE: 3D plots are NOT IMPLIMENTED for use with                                
 PGPLOT graphics library!

6.19.1 DB:PLOT:IF_Expression(s)

                                                                                
   The "IF Expression(s)" option allows one to display only                     
   that subset of the Points for which up to 4 "Expressions"                    
   are separately and individually satisfied; an Expression                     
   may contain an "==" sign, in which case the left and right                   
   sides must be equal to satisfy the condition, or not, in                     
   which case the expression must be GREATER THAN ZERO following                
   evaluation by LOC_EVAL.  Each "Expression" can refer to                      
   the current value (for this Point) of any of the Variables                   
   by Variable Name, but can be no more than 32 characters long                 
   and MUST NOT CONTAIN ANY EMBEDDED BLANKS!  (Blanks are used                  
   as delimiters between Expressions.)                                          
                                                                                
	See the ASK help, for more information about Expressions,                      
   Functions, and Operators.                                                    
                                                                                
	Plotting all the points, but with different symbols,                           
   is also possible using the choise of point type.                             
                                                                                
	See also PointType

6.19.2 DB:PLOT:PointType

                                                                                
	If a number is entered, then a symbol corresponding to the number              
 is plotted. If a variable or an expression is entered, the point type          
 (a.k.a. symbol) is then calculated for each point.                             
 See DOPLOT help for documentation on the symbols (and color) available.        
                                                                                
Point type? (carriage return)                                                   
			Defaults to type 0, squares.                                                 
                                                                                
Point type? 2                                                                   
			Circles                                                                      
                                                                                
Point type? 637                                                                 
			Hershey symbol lambda.                                                       
                                                                                
Point type? (1*(t.lt.30) + 2*(t.ge.30))                                         
			Circles if t < 30 and triangles if t >= 30                                   
	(Note: This can be done another way using PLOT [x] [y] IF [expression].)

6.19.3 DB:PLOT:Examples

                                                                                
    DB>PLOT T A		        will plot A(T) for all available Points.               
    DB>PLOT A B IF T==15	will plot B(A) for all Points having T=15.             
    DB>PLOT A B IF 10-T	        will plot B(A) for all Points having T<10.      
    DB>PLOT T A B IF 20-T T-10	will plot (T,A,B) Points in 3-D                  
    				for all Points having 10<T<20.                                          
    DB>PLOT T A IF 20-T T-10 B==1	will plot (T,A) Points in                     
    					2-D for all Points having                                              
    					10<T<20 and B=1.

6.20 DB:PRINT

                                                                                
  The current contents stored by the program (Title, Labels,                    
  Comment, Abstract and Data) can be written out to a new                       
  file in a reasonably aesthetic format for line-printer style printer.

6.21 DB:QUIT

                                                                                
	Exits the program.

6.22 DB:RENAME

                                                                                
   Variables, once entered, may be RENAMEd for aesthetic or                     
   mnemonic reasons.  E.g.,                                                     
                                                                                
    DB>RENAME T TEMP                                                            
                                                                                
   renames the variable "T" to "TEMP".

6.23 DB:SAVE

                                                                                
  This command causes the current contents of the DB database                   
  to be saved in a binary file (for whose name you will be asked).              
  The results can be restored later by the LOAD command (which see).            
                                                                                
  The only advantage over WRITE (which see) is that it is slightly              
  more compact for databases containing more numbers than text.                 
  The disadvantage is that you can't alter the result with any                  
  normal text editor.  (I suppose this might appeal to paranoids.)

6.24 DB:SHOW

                                                                                
  One often forgets just what Data etc. have been loaded.                       
  This command allows one to recall without reloading or                        
  plotting unnecessarily.  One can SHOW the following:                          
                                                                                
	TITLE ABSTRACT COMMENTS LABELS DATA                                            
                                                                                
  Of these, only DATA needs further explanation.

6.24.1 DB:SHOW:DATA

                                                                                
   For practical and aesthetic reasons one may only                             
   SHOW one Column of Data at a time; if the command                            
   line does not say which, e.g.,                                               
                                                                                
    DB>SHOW DATA T                                                              
                                                                                
   then you will be prompted to tell which Variable (Column)                    
   you want to see.

6.25 DB:SORT

                                                                                
	Not implimented.

6.26 DB:SPREAD

                                                                                
  The current contents stored by the program (Title, Labels,                    
  Comment, Abstract and Data) can be written out to a new                       
  spreadsheet-ready file (suggest ".SPR") in a reasonably aesthetic format.     
  The title is included, and the variable's names.                              
  Columns labled "ep" and "em" indicate the high and low errors, for            
  each variable.  Unfortunately, only three columns fit across,                 
  so the contents of the data are written in batches of three.

6.27 DB:STAT

                                                                                
  This command has arguments, the first of which will be                        
  prompted for if omitted.  The most general form is                            
                                                                                
  DB>STAT X [N] [Xmin] [Xmax]                                                   
                                                                                
  which gives the UNWEIGHTED Min, Max, Sum, Avg and StdDev                      
  of variable "X" and asks if you want a Histogram of the                       
  frequency spectrum from Xmin to Xmax broken into N bins.                      
  If you don't want a plot, the optional arguments are                          
  unnecessary and will be ignored; if you omit them but                         
  ask for a plot anyway, DB will use my judgement in                            
  choosing aesthetic binning.                                                   
                                                                                
	BUG report: STATS crashes DB if you try to bin the results.

6.28 DB:THEORY

                                                                                
  This command allows one to load theoretical curves to be plotted,             
  either superimposed on the data or independently.  I.e., if                   
  any Data has already been loaded for plotting (see PLOT)                      
  but has not yet been plotted (see blank_line), the Theory curve               
  will go onto the same plot; if the plot buffer is empty, the                  
  Theory curve will be plotted by itself (if no Data is loaded                  
  after the Theory and before plotting).

6.28.1 DB:THEORY:Variables

                                                                                
   For Theory curves, the variable names are the conventional names             
   of the coordinate axes, namely "X", "Y" and "Z".  One must first             
   specify which is the independent and which the dependent variable.           
   The choices are                                                              
                                                                                
	Y(X)	Z(X)	X(Y)	Z(Y)	X(Z)	Y(Z)                                                  
                                                                                
   Note that if either variable is "Z" then you imply a 3-D plot.  Then         
   you must specify TWO algorithms, one for each dependent variable as a        
   function of the independent variable.  This will define a SPACE CURVE        
   in three dimensions.  This is loads of fun but hard to visualize             
   satisfactorily.                                                              
                                                                                
	NOTE: 3D plots are NOT IMPLIMENTED for use with                                
 PGPLOT graphics library!

6.28.2 DB:THEORY:Algorithm

   You will be prompted to enter an algorithm for (e.g.) Y(X);                  
   this character string must be interpreted by LOC_EVAL                        
   (as in $CALC) which will have the current value of the                       
   independent variable (in this example, "X") defined when it                  
   tries to evaluate the answer for (in this case) "Y".  You may                
   use any global constants (e.g., "PI") that you have assigned,                
   but you are restricted to the function names that LOC_EVAL will              
   accept.  We hope this repertoire will grow with time.  For example,          
                                                                                
    > Y = EXP(-SQRT(X))*COS(2*PI*X)		should be OK.                              
                                                                                
   If there is Data to be plotted on the same graph, the Data Labels            
   and Title will override the Theory; if not, then the expression              
   entered will also be used as a Title for the plot.

6.29 DB:TITLE

                                                                                
  This command has no arguments; it merely signals that the                     
  following input line contains a Title of at most 80 characters                
  identifying the contents of the ".DB" file.  This Title                       
  will automatically be displayed on any plots generated from                   
  the associated data.

6.30 DB:WEED

                                                                                
	Not implimented.

6.31 DB:WRITE

                                                                                
  The current contents stored by the program (Title, Labels,                    
  Comment, Abstract and Data) can be written out to a new                       
  ".DB" file in a reasonably aesthetic format for long-term                     
  storage.  This may or may not be the best way to create                       
  such ".DB" files in the first place.

6.32 DB:ZERO

                                                                                
  This command deletes any Data arrays presently loaded.

6.33 DB:Abbreviations

                                                                                
  Both the commands and the variable names can be abbreviated                   
  to as little as a single letter.  This may sometimes lead to                  
  ambiguities, about which DB will NOT complain; instead, it                    
  will just take the FIRST on its list (of commands or variables)               
  -- which may not be the one you wanted!  So it is advisable                   
  to use long enough abbreviations (2-3 characters are often                    
  enough) to resolve such ambiguities.

6.34 DB:blank_line

                                                                                
  A blank line (COMPLETELY blank) is used to terminate                          
  an ABSTRACT, a COMMENT, a LABELS list or a DATA list.                         
                                                                                
  When you plot Data via the PLOT command or a Theory curve                     
  via the THEORY command, the results are not plotted                           
  immediately; you may wish to add more Points, curves,                         
  etc.  The actual plotting (with DOPLOT and DOPLOT_3D)                         
  is done when you enter a blank line to the 	DB>	prompt.

6.35 DB:Expressions

                                                                                
  Anywhere that DB wants a NUMBER as input, you may substitute                  
  an EXPRESSION, including named variables and/or any of the                    
  functions defined in LOC_EVAL.  This is because all DB I/O                    
  goes through the ASK subroutine, about which you can get                      
  more information by the command                                               
                                                                                
    DB>\h                                                                       
                                                                                
  anytime DB is waiting for your instructions.

6.36 DB:RatingsOfCommands



6.36.1 DB:RatingsOfCommands:Basic

TITLE     ABSTRACT  COMMENTS  LABELS    ZERO                                    
DATA      PLOT      QUIT      EXIT      QUIT

6.36.2 DB:RatingsOfCommands:Intermediate

MAXHES    HESMAX    MODIFY    GENERATE  DELETE                                  
SHOW      LINE      CURVE     RENAME    STATS                                   
SPREAD

6.36.3 DB:RatingsOfCommands:Advanced

FIT       THEORY    LINE      CURVE                                             
IMPORT

6.36.4 DB:RatingsOfCommands:QuestionableUse

SAVE      LOAD      WRITE     PRINT

6.36.5 DB:RatingsOfCommands:NotTested

SAVE      LOAD

6.36.6 DB:RatingsOfCommands:Buggy

                                                                                
	STATs crashes DB if you try to bin the results.

6.36.7 DB:RatingsOfCommands:NotImplimented

                                                                                
CURVE     SORT      PACK      WEED

6.36.8 DB:RatingsOfCommands:D



6.37 DB:Restrictions

                                                                                
   Variable Names can be no more than 8 characters long                         
   and must be acceptable as variable names in LOC_EVAL                         
   (as in $CALC).                                                               
                                                                                
   There can be (at the moment) no more than 19 Variables (columns).            
                                                                                
   The product of the number of Variables (columns) with the number             
   of Points (rows) cannot exceed 9000 without recompiling DB.

About this document ...

../doc/db.tex
created from help file
../help/db.hlp

This document was generated using the LaTeX2HTML translator Version 99.2beta6 (1.42)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html -split 0 -show_section_numbers db.tex

The translation was initiated by Dr TM Riseman on 2001-01-12


next_inactive up previous
Dr TM Riseman 2001-01-12