Documentation:Reference:TDI E2 - MdsWiki
Navigation
Personal tools

From MdsWiki

Jump to: navigation, search

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 lower bounds of an array or signal or a specified
lower 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 lower 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 lower 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. Exponential.

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, provide 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]].