Tree Data Interface ERRORLOGS_OF:EXT_FUNCTION
ERRORLOGS_OF (A)

      MDS Operation. 
      
      Get the errorlogs field. 
 
      Argument. Descriptor as below. 
 
      Result..  A is searched for this: 
                DSC$K_DTYPE_ACTION, the errorlogs field. 
                Otherwise, an error. 
 
ESHAPE (SOURCE,[DIM])

      Inquiry.  
      
      The shape of an array or a scalar or a signal. 
 
      Arguments Optional: DIM (To follow F90, use ESIZE with a DIM). 
        SOURCE  any type scalar, array, or signal. 
        DIM     integer scalar from 0 to n-1, where n is rank of SOURCE. 
 
      Signals.  None. 
      Units...  None if array, that of combined dimensions of signal. 
      Form....  Scalar if DIM present; otherwise, vector of size n. 
                Integer for an array, combined type of dimensions for 
                a signal. 
 
      Result..  The shape of SOURCE for subscript DIM of SOURCE. 
                If no bounds were effective 
                it is one less than the multiplier for subscript DIM of 
                SOURCE. ESHAPE(ARRAY) has value whose j-th component is 
                equal to ESHAPE(ARRAY,j) for each j, 0 to n-1. 
                For a signal, the extent of the dimension if it is 
                of DTYPE_DIMENSION, else as for an array. This does not 
                include both bounds for integers. 
 
      Examples. ESHAPE(_A[2:5,-1:1]) is [4,3]. ESHAPE(3) is [], a 
                zero-length vector. 
 
ESIZE (ARRAY,[DIM])

      Inquiry.  
      
      The extent an array or the total number of elements 
                in the array or signal. 
 
      Arguments Optional: DIM. 
        ARRAY   any type array or signal. 
        DIM     integer scalar from 0 to n-1, where n is rank of ARRAY. 
 
      Signals.  None. 
      Units...  None. 
      Form....  Scalar. Integer for array, 
                combined type of dimensions for signal. 
 
      Result..  Equal to the extent of dimension DIM of ARRAY 
                or, if DIM is absent, the total number of 
                elements of ARRAY. 
                For a signal, the extent of the dimension if it is 
                of DTYPE_DIMENSION, else as for an array. This does not 
                include both bounds for integers. The volume if no DIM. 
 
      Examples. ESIZE(_A[2:5,-1:1]),1) is 3. ESIZE(_A[2:5,-1:1]) is 12. 
 
EUBOUND (ARRAY,[DIM])

      Inquiry.  
      
      All the upper bounds of an array or signal or a specified 
                upper bound. 
 
      Arguments Optional: DIM. 
        ARRAY   any type array or signal. 
        DIM     integer scalar from 0 to n-1, where n is rank of ARRAY. 
 
      Signals.  None. 
      Units...  None if array, that of combined dimensions of signal. 
      Form....  Scalar if DIM present; otherwise, vector of size n. 
                Integer for an array, combined type of dimensions for 
                a signal. 
 
      Result..  EUBOUND(ARRAY,DIM) is equal to the upper bound 
                for subscript DIM of ARRAY. If no bounds were effective 
                it is one less than the multiplier for subscript DIM of 
                ARRAY. EUBOUND(ARRAY) has value whose j-th component is 
                equal to EUBOUND(ARRAY,j) for each j, 0 to n-1. 
                For a signal, the upper bound on the dimension if it is 
                of DTYPE_DIMENSION, else as for an array. 
 
      Example.  EUBOUND(_A=SET_RANGE(2:3,7:10,0)) is [3,10] and 
                EUBOUND(_A,1) is 10. 
 
EVALUATE (X)

      Compile Operation. 
      
      Remove descriptors and node (NID and PATH) pointers 
                and evaluate functions. 
      
      Common Usual Form. `expression or `statement for compile-time evaluation. 
      >>>>>>>>>WARNING, because of its low precedence, parentheses must be 
                outside the ` to constrain it unlike the other operators. 
 
      Argument. X is any MDS or VMS data description. VMS and most MDS 
                data types are passed. A NID or PATH is found in the 
                current tree and re-evaluated. FUNCTION data types are 
                executed and their result returned but not re-evaluated. 
 
      Signals.  None. 
      Units...  None. 
      Form....  A data descriptor. 
 
      Result..  Depends on the expression to be evaluated. 
 
      Examples. EVALUATE(2+3) is 5. 
                (`2+3)+4 compiles to 5+4, which will evaluate to 9. 
 
EXECUTE (STRING,[ARG],...)

      Compile Operation. 
      
      Convert a text string into a functional form of the 
                expression with the possibility of including other 
                descriptors. Comments (/* ... */) are removed and may be 
                nested. Then EVALUATE the expression. 
 
      Arguments Optional: ARG,... . 
        STRING  character scalar. 
        ARG,... other expressions that may be accessed as $k where k 
                runs from 1 to the number of additional arguments. 
                Successive arguments may be accessed by $ starting from 
                the first. Once $k appears, subsequent $'s designates 
                the arguments following it. The $k allows inputs to be 
                used several times but k must be less than the number of 
                arguments actual passed, maximum 253. $0 is STRING. 
 
      Signals.  None. 
      Units...  None. 
      Form....  An MDS expression in functional form. 
 
      Result..  The compiled and evaluated value of the string with the 
                current values of the arguments. 
 
      Example.  EXECUTE("2+\TOP.XRAY.CHAN01:DATA") is two more than the 
                data of a channel. 
 
EXP (X)

      F90 Mathematical Elemental. 
      
      xponential. 
 
      Argument. X must be real or complex, HC is converted to GC. 
 
      Signals.  Same as X. 
      Units...  None, bad if X has units. 
      Form....  Same as X. 
 
      Result..  Processor approximation to e^X. If X is complex, the 
                imaginary part is in radians. 
 
      Example.  EXP(1.0) is 2.7182818, approximately. 
 
EXPONENT (X)

      F90 Numeric Elemental. 
      
      The exponent part of the argument when 
                represented as a model number. 
 
      Argument. X must be real. Complex type is an error. 
 
      Signals.  Same as X. 
      Units...  None, bad if X has units. 
      Form....  Integer of same shape. 
 
      Result..  The exponent or the model representation with bias 
                removed, provided X is nonzero. For zero, result is zero. 
 
      Examples. Exponent(1.0) is 1 and EXPONENT(4.1) is 3 on the VAX. 
 
EXTEND (A,[DIM],[X])

      MDS Operation. 
      
      Removes values not in bounds. 
 
      Arguments Optional: DIM and X. 
        A       MDS signal or dimension or VMS array. 
        DIM     scalar integer from 0 to rank of A less one. 
                Must be 0 or absent for a signal. 
        X       non-complex scalar or array of numbers to check 
                if bounded. 
      Signals.  Same as X. 
      Units...  Same as specified dimension if a signal or dimension. 
      Form....  Shape of X and type from specified dimension. 
 
      Result..  X values that are out of range are replaced 
                by the nearer limit. 
        (i)     If A is an array, the bounds of the array are used. 
        (ii)    If A is a dimension or the specified dimension of a 
                signal, the extreme data value of the axis are used. 
 
      Examples. 
        (i)     EXTEND(1..5,,0..7) is [1,1,2,3,4,5,5,5]. 
        (ii)    EXTEND(BUILD_DIM(BUILD_WINDOW(2,5,1.1), 
                BUILD_RANGE(,,3)),0,5..8) is [7.1,7.1,8.] 
                because the limits are 7.1 and 16.1. 
 
      See also. CULL to eliminate bad values. 
 
EXTRACT (START,LENGTH,STRING)

      DCL Character Elemental. 
      
      Extracts an substring from a string starting 
                at an offset. 
 
      Arguments 
        START   integer. 
        LENGTH  integer. 
        STRING  character. 
 
      Signals.  Same as STRING. 
      Units...  Same as STRING. 
      Form....  Character of given length but not less than 0. 
                Compatible shape. 
      Result..  The string from the START-th character (counting from 0) 
                and of LENGTH count is returned. 
                A null string (length is zero) may be returned. 
 
      Examples. EXTRACT(1,2,'A/B/C') is "/B". 
                EXTRACT(4,1,'12') is " ". 
 
EXT_FUNCTION ([IMAGE],ROUTINE,[ARG],...)

      IO.       
      
      Do a FUN, do a routine in an image, or do a command file. 
      
      Usual Form        xxx->yyy(arg...) or _zzz(arg...) 
 
      Methods.  (1) no IMAGE and ROUTINE is a defined function. 
                (2) IMAGE and ROUTINE define an .EXE image with symbol 
                        table and an entry point routine. 
                (3) IMAGE with .FUN extension default and IMAGE filename 
                        define a file of TDISHR commands. 
 
      (1) Arguments     Optional: ARG,... 
        IMAGE   *, a missing argument. 
        ROUTINE Character scalar FUN name previously defined. 
        ARG     As needed by the routine. 
 
      Result..  As defined by the function. 
 
      (2) Arguments     Optional: IMAGE, ARG,... 
        IMAGE   Character scalar filename or *, default MDS$FUNCTIONS. 
        ROUTINE Character scalar entry point name. 
        ARG     As needed by the routine. The forms DESCR, REF, and VAL 
                force passing by descriptor, reference, or long value. 
                These force the DATA of the argument to be evaluated. 
                The default is to pass by whatever descriptor is generated. 
 
      Result..  Function is called like a TDISHR one, i.e., augmented by 
                the output descriptor function. 
      (3) Arguments     Optional: IMAGE, ARG,... 
        IMAGE   Character scalar directory name or *, default MDS$PATH. 
      >>>>>>>>>WARNING, usually MDS$PATH should point the local directory first. 
        ROUTINE Character scalar filename. 
        ARG     Allowed only for a defining FUN. As needed by the routine. 
      >>>>>>>>>WARNING, You must pick a non-conflicting name. The easiest way is 
                to begin both FUN and filename with an underscore (_). 
 
      Result..  The entire file is read (limit 16k bytes) and it is executed. 
                If the compilation was a FUN and IMAGE is missing, 
                the FUN is invoked with arguments. 
                NOTE, The second time around this will use method (1). 
                The result is the last expression evaluated or the returned 
                value of the function. 
 
      Examples  If MDS$PATH is [] and file _FTEST.FUN has: 
                FUN PUBLIC _FTEST(OPTIONAL IN _X) { 
                        IF (PRESENT(_X)) WRITE(*,'_x =',_X); 
                        ELSE WRITE(*,'no argument'); 
                } 
 
                _FTEST(123) returns 17 and prints on the terminal: 
                _x =          123 
 
                If file _OUTER.FUN has: 
                FUN PUBLIC _OUTER(IN _A, IN _B) { 
                RETURN (SPREAD(_A, 0, SIZE(_B)) * SPREAD(_B, 1, SIZE(_A))); 
                } 
 
                _OUTER([1,2,3],[4,5]) is the outer product: 
                [[4,5], [8,10], [12,15]].