Documentation:Reference:TDI E1 - MdsWiki
Navigation
Personal tools

From MdsWiki

Jump to: navigation, search

ELBOUND (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, those of combined dimensions if signal.
Form.... Scalar if DIM present, otherwise, vector of size n.
Integer for an array; combined type of dimensions for a
signal.

Result.. ELBOUND(ARRAY,DIM) is equal to the lower bound
for subscript DIM of ARRAY. If no bounds were effective
it is 0. ELBOUND(ARRAY) is whose j-th component is equal
to ELBOUND(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.

Examples. ELBOUND(_A=SET_RANGE(2:3,7:10,0)) is [2,7] and
ELBOUND(_A,1) is 7.

See also UBOUND for upper bound, SHAPE for number of elements,
SIZE for total elements, and E... for signals.

ELEMENT (NUMBER,DELIMITER,STRING)

DCL Character Elemental. Extracts an element from a string in which the
elements are separated by a delimiter character.

Arguments
NUMBER integer. First item is NUMBER=0.
DELIMITER character, length one.
STRING character.

Signals. Same as STRING.
Units... Same as STRING.
Form.... Character of same length as STRING. Compatible shape.
>>>>>>>>>WARNING, the DCL function trims the result, not so here.
It may be trimmed, someday for scalars only.

Result.. The string from the NUMBER-th instance of the delimiter
to the next instance or the end of string. NUMBER=0 gets
the part of the string up to the first delimiter.
A blank string is returned if NUMBER-th not found.

Examples. ELEMENT(1,'/','A/B/C') is "B ".
ELEMENT(4,'/','12') is " ".

ELSE STMT

CC-style Operation. Alternative to IF.

elsewhere STMT

CC-style Operation. Alternative to WHERE.

encode (FMT|*,[X],...)

Miscellaneous. Format values to text.??

endfile (UNIT)

F90 IO. Mark end of file.??

END_OF (A,[N])

MDS Operation. Get the end field.

Arguments Optional: N.
A Descriptor as below.
N integer scalar, for slopes from 0 to the number of
segments less two. The last segment has no end if the
axis is infinite.

Result.. A is searched for these:
DSC$K_DTYPE_RANGE, the end field.
DSC$K_DTYPE_SLOPE, N-th segment's end field. !deprecated!
DSC$K_DTYPE_WINDOW, the endidx field.
Otherwise, an error.

Example. END_OF(1..10) is 10.

eoshift (ARRAY,SHIFT,[BOUNDARY],[DIM])

F90 Transformation. Perform an end-off shift on an array expression of
rank one or perform end-off shifts on all the complete rank-one
sections along a given dimension of an expression of rank two or
greater.

Arguments Optional: BOUNDARY, DIM.
ARRAY numeric or character array.
SHIFT integer scalar if ARRAY is rank 1; otherwise, an integer
array of rank n-1 array of shape like ARRAY with DIM
dimension omitted.
BOUNDARY same type as ARRAY and must be scalar if ARRAY is rank
one; otherwise, a scalar or rank n-1 array shaped like
ARRAY without dimension DIM. Default value is 0 for
numerics and blanks for text.
DIM integer scalar from 0 to n-1, where n is rank of ARRAY.

Signals. Same as ARRAY.
Units... Same as ARRAY.
Form.... Same as ARRAY.

Result.. Element [s0,s1,...sn-1] of the result is
ARRAY[s0,s1,...sDIM-1,sDIM + sh,sDIM+1,... sn-1]
provided sDIM + sh is bounded by LBOUND(ARRAY,DIM) and
UBOUND(ARRAY,DIM), else BOUNDARY or
BOUNDARY[s0,...sDIM-1,sDIM,...).

Examples.
(i) EOSHIFT(_V=[1,2,3,4,5,6],3) is [4,5,6,0,0,0].
EOSHIFT(_V,-2,99) is [99,99,1,2,3,4].
(ii) EOSHIFT(_M=[A B C],-1,'*',1) is [* A B].
[D E F] [* D E]
[G H I] [* G H]
EOSHIFT(_M,1,['*','/','?'],[-1,1,0]) is [* A B].
[E F /]
[G H I]

EPSILON (X)

F90 Inquiry. A positive model number that is almost negligible compared to unity in the model representing numbers of the same
type as the argument.

Argument. X must be real or complex, scalar or array.

Signals. Same as X.
Units... Same as X.
Form.... Scalar of same type as real part of X.

Result.. The result is b^(1-p), where b is the digit base and p
is the number of digits in model numbers like X.

Example. EPSILON(1.0) is 2^-23 on the VAX.

EQ (X,Y)

Logical Elemental. Tests for equality of two values.
Usual Forms X Y, X NE Y.
Function Form EQ(X,Y).

Arguments X and Y must both be numeric or character.

Signals. Single signal or smaller data.
Units... None unless both have units and they don't match.
Form.... Logical of same shape.

Result.. True if X and Y are the equal; otherwise, false.
$ROPRAND is not equal to any value.
>>>>>>>>>WARNING, floating point operations may not match an exact
calculation for nonterminating binary fractions. You
cannot predict that .1+.1==.2 is true. Integer values
may be truncated when matched to floating numbers.

Example. 2==2.0 is $TRUE.

EQUALS (NAME,X)

Variable Operation. Store in a name variable.
Usual Form NAME = X.
Function Form EQUALS(NAME,X).

Arguments
NAME variable name optionally preceded by PRIVATE or PUBLIC.
Begin name with underscore (_) for user variables.
Dollar sign ($) is used for system variables. A text
string but not an expression is acceptable.
X an expression of any type.

Result.. Same as X.

Side Effect. NAME now has value X.

Example. _A=[1,2,3].

EQUALS_FIRST (X)

Variable Elemental. Store in a name variable using variable in binary
operation. This saves writing the variable name twice.
Usual Forms NAME^=Y,
NAME*=Y, NAME/ =Y, NAME MOD=Y,
NAME+=Y, NAME-=Y,
NAME<<=Y, NAME>>=Y,
NAME//=Y, NAME IS_IN=Y,
NAME>==Y, NAME GE=Y, NAME> =Y, NAME GT=Y,
NAME<==Y, NAME LE=Y, NAME< =Y, NAME LT=Y,
NAME===Y, NAME EQ=Y, NAME!==Y, NAME/==Y,
NAME<>=Y, NAME NE=Y,
NAME&=Y, NAME|=Y, NAME EQV=Y, NAME NEQV=Y,
NAME&&=Y, NAME AND=Y, NAME AND_NOT=Y,
NAME NAND=Y, NAME NAND_NOT=Y,
NAME||=Y, NAME OR=Y, NAME OR_NOT=Y,
NAME NOR=Y, NAME NOR_NOT=Y,
NAME@=Y.

Arguments
X an expression with a binary (two-argument) operator. The
first argument must be a variable name, like in NAME+6.
Only those listed above are acceptable to the compiler.
>>>>>>>>>WARNING, special punctuation is required for /, >, and < because
they may be confused with single operators /=, >=, and <=.

Result.. Same as X.

Side Effect. NAME now has value X or X operated on by Y.

Example. For _A=[1,2,3], _A+=4 is [5,6,7].

EQV (L,M)

Logical Elemental. Test that logical values are equal.

Arguments L and M must be logical (lowest bit is 1 for true).

Signals. Single signal or smaller data.
Units... None unless both have units and they don't match.
Form.... Logical of compatible shape.

Result.. True if both are true or both are false;
otherwise, false.

Example. 2>3 EQV 3>4 is $TRUE.