Contents Previous Next Subchapters

Glossary

Call Back
A call back is a character row vector that specifies an O-Matrix command. Each call back is associated with a certain window event and the command is executed when this event occurs. In addition, the call back is associated with the file and line number where it is specified. Thus it can reference functions that are local to the file and related error messages refer to the file and line where the call back is defined.

Caption
A caption is a character row vector that specifies an O-Matrix window. This text appears along the top bar of the window. For example, the caption corresponding to the Command window is "Command". Trailing spaces in a caption are ignored.

Column Major Ordering
If x is a matrix with m rows and n columns, and v is a vector corresponding to column major ordering of the elements of x
     v(1)          = x(1, 1)
     v(2)          = x(2, 1)
      .               .
      .               .
      .               .

     v(m)          = x(m, 1)
     v(m + 1)      = x(1, 2)
      .               .
      .               .
      .               .

     v(m * n - 1) = x(m - 1, n)
     v(m * n)     = x(mn)

Conjugate Symmetric
A matrix is conjugate symmetric if it is equal to the complex conjugate of its transpose .

Control Handle
A control handle is a two element integer column vector that is returned by the addcontrol function when the control is created. This vector is used to reference the control in subsequent calls to the functions setcontrol and getcontrol.

Descending Polynomial
If v is an integer, real, double-precision or complex vector of length n, its corresponding descending polynomial v[x] is
                n-1       n-2       n-3
     v[x] = v  x   +  v  x    + v  x  + ... + v
             1         2         3             n
(see also Polynomial .)

Column Dimension
The column dimension of a matrix is the number of columns in the matrix. It is the return value of the coldim function.

Column Vector
A matrix is a column vector if its column dimension is equal to one.

Complex Element
Each complex element consists of a real and imaginary part stored in double-precision. The following functions can be used to extract the real and imaginary parts of a matrix:
real(x) single-precision version of real part of x
double(x) double-precision version of real part of x
imag(x) double-precision version of imaginary part of x
If a matrix is integer, real or double-precision, it is equal to its real part.

Current Working Directory
The O-Matrix program always has a current working directory that all local file names are relative to. The intrinsic function cwd can be used to determine or change the current working directory.

DEBUG>

Commands are entered in the command line at the top of the O-Matrix application. The command line prompt is either O> or DEBUG>. The prompt DEBUG> is referred to a the Debugger prompt. It signals that commands typed at the command line will be sent to the debugger.

Diagonal
The diagonal of a matrix is the vector with i-th element equal to the (i,i)-th element of the matrix. A matrix is a diagonal matrix if the only nonzero elements of the matrix are along its diagonal.

Directive
Directives are O-Matrix statements that begin with one of the following keywords: const, dll, global, include, label, load, or save. A function definition is a also a directive but a function assignment is not. For example,
     function f(x) begin
          return x^2
     end
is a directive but
     function h = f()
is not a directive.

Element-By-Element
A function f(x), or a unary operator, acts element-by-element if the value of element (i,j) of f(x) only depends on the value of x(i,j). The type and dimension for f(x) are the same as for x.

This notation extends to binary operators. Either one operand is a scalar or they have the same dimensions. If both operands are scalars, the return value is a scalar. Otherwise the dimension of the return value is the same as for the operand that is not a scalar. The type of the return value is the type that results from coercion between the operands.

This notation also extends to functions with more than one argument. Each argument must either be a scalar or have the same dimensions as the other arguments that are not scalars. If all the arguments are scalars, the return value is a scalar. Otherwise the dimension of the return value is the same as for the arguments that are not scalars. The type of the return value is the type that results from coercion between the arguments.

Empty Matrix
A matrix is empty if either its row or column dimension is zero. An empty row vector has row dimension one and column dimension zero. An empty column vector has column dimension one and row dimension zero.

File Name
An O-Matrix file name can be any sequences of characters that does not include a comma or new line character. Embedded white space is significant but leading and trailing white space is ignored. Upper and lower case letters are allowed but two file names that only differ by the case of their letters, refer to the same file.

Finite
Values other than the IEEE plus infinity, minus infinity and not a number are called finite values.

Function Types
There are five types of functions in O-Matrix. The intrinsic functions and keyword functions are part of the O-Matrix language. A constant function is one that is defined by its O-Matrix source code. A parameter function is one that is an argument another function. A variable function is one that is created by a another function using the function assignment statement.

Geometry
An object's geometry with in an O-Matrix window is a four element integer row vector in pixel units. The first (second) element is the number of pixels to the right (down) of the upper left corner of the object from the upper left corner of the window. The third (fourth) elements is the width (height) of the object.

Identifier
An O-Matrix identifier is a sequence of characters starting with a letter or underbar and containing only letters, underbars and the decimal digits 0 through 9. (Identifiers beginning with underbars are reserved for future system use.) An identifier is defined with in the program. It can use the same name as an intrinsic function (such as sin) in which case the intrinsic function is not available for use where the identifier is defined. It cannot use the same name as a keyword (such as while).

An identifier list is a set of identifiers separated by commas. For example,
     x, y1, z_2
is an identifier list.

IEEE Floating Point Values
Plus infinity, INF, is the result of 1./0.. It is greater than any finite value. Minus infinity, -INF, is less than any finite value. Not a number, NAN, is the result of 0./0.. It is also the result of any unary or binary operation in which one of the operands is not a number (for example 1 + NAN). It is not defined for any logical comparison operators (such as ==). You should use the function isnan to check if a value is not a number.

Imaginary Part
See complex element .

List Of Values
A list of values is a set of expressions separated by commas. For example
     1, x, x + y
is a list of three values.

Lower Triangular
A matrix X is lower triangular if all the elements above the diagonal of the matrix are zero; i.e. if X(ij) is zero whenever i < j. Thus the matrix has the form
     / X_11     0     0   ...     0 \
     | X_21  X_22     0   ...     . |
     | X_31  X_32  X_33   ...     . |
     |    .     .     .  .        . |
     |    .     .     .    .      0 |
     |                       .      |
     \ X_M1  X_M2  X_M3   ...  X_MN /

Monotone
A vector x is monotone increasing if x(i< x(i+1) for each i such that i and i+1 are valid indices of the vector. A vector is monotone decreasing if x(i> x(i+1). If the inequalities above are replaced by strict inequalities (equal not allowed), the vector is referred to as strictly monotone increasing and strictly monotone decreasing respectively.

O>

Commands are entered in the command line at the top of the O-Matrix application. The command line prompt is either O>, M>, or DEBUG>. The O> prompt is referred to as the O-Matrix prompt. O-Matrix language commands can be submitted at this prompt for execution.

Orthogonal Matrix
A matrix is orthogonal if it is square and its inverse is equal to the its transpose.

Permutation Matrix
An orthogonal matrix is a permutation matrix if each row and column is zero except for one element which is one. Multiplying a square matrix on the right by a permutation matrix, reorders the rows of the square matrix. Multiplying a square matrix on the left by a permutation matrix, reorders the columns of the square matrix.

Polynomial
If v is an integer, real, double-precision or complex column vector of length n, its corresponding polynomial v[x] is
                      1        2              n-1
     v[x] = v  +  v  x  +  v  x   + ... + v  x
             1     2        3              n
(see also Descending Polynomial .)

Real Part
See complex element .

Regular Expressions
Regular expressions (regex or regexp) provide a concise and flexible means for identifying text, such as particular characters, words, or patterns of characters. O-Matrix uses Perl-compatible regular expression patterns. See http://search.cpan.org/dist/perl/pod/perlre.pod for more details about Perl-compatible regular expressions.

Relative Coordinates
A vector of relative coordinates with in an object is a two element row vector with values between 0 and 1 that specifies a location with in the object. The first value specifies the horizontal position with 0 corresponding to the left border of the object and 1 corresponding to the right border of the object. The second value specifies the vertical position with 0 corresponding to the lower border of the object and 1 corresponding to the upper border of the object.

Row Dimension
The row dimension of a matrix is the number of rows in the matrix. It is the return value of the rowdim function.

Row Vector
A matrix is a row vector if its row dimension is equal to one.

Scalar
A matrix is a scalar if both its row and column dimensions are equal to one. Note a scalar is also a row or column vector.

Scope
The scope of a variable or function is the range in O-Matrix source code where the variable or function is defined. If more than one object is in scope and has the same identifier, the one with the smallest scope is used. There are four levels of scope for identifiers in O-Matrix.

The largest scope corresponds to intrinsic functions. These always have the same definition even after a clear command.

The next level of scope is global scope. and refers to all the source code between O-Matrix clear commands. A variable has global scope if it is created outside of any function by an assignment statement that does not begin with the local option. A function has global scope if its definition does not begin with the local option. The memory connected with such a variable or function is freed when a clear command is executed.

The next level of scope if file scope and refers to all of the source code in one O-Matrix file. A variable has file scope if it is created outside of any function by an assignment statement that begins with the local option. A function has file scope if its definition begins with the local option. The memory connected with such a variable current value is freed when the clear command is executed.

The smallest scope is function scope and refers to all of the source code within one function. A variable that is created within a function has this scope (functions cannot have this scope). The memory connected with such a variable is freed when the function returns; i.e., its value is not remembered between function calls.

Square Matrix
A matrix is square if it has the same number of rows as columns.

String
A character row vector is called a string.

Symmetric Matrix
A square matrix is symmetric if its (i,j)-th element is equal to its (j,i)-th element. A square matrix is conjugate symmetric if its (i,j)-th element is equal to the complex conjugate of its (j,i)-th element. (Note that if the imaginary part of a matrix is zero, symmetric and conjugate symmetric are equivalent.)

Unitary Matrix
A matrix is unitary if it is square and its inverse is equal to the complex conjugate of its transpose. If the matrix is integer, real, or double-precision, it is also referred to as orthogonal .

Upper Triangular
A matrix X is upper triangular if all the elements below the diagonal of the matrix are zero; i.e. if X(ij) is zero whenever i > j. Thus the matrix has the form
     / X_11  X_12  X_13   ...  X_1N \
     |    0  X_22  X_23   ...  X_2N |
     |    .     0  X_33   ...  X_3N |
     |    .     .     0  .      .   |
     |    .     .     .    .    .   |
     |                       .  .   |
     \    0     0     0   ...  X_MN /

Vector
A matrix is a vector if either its row or column dimension is equal to one.

Viewport
A viewport is a rectangular region with in a plotting window. Every plotting window initially contains one viewport that corresponds to the entire window. Additional viewports can be added with the gaddview command.

White Space
A white space character is a space, form feed, new-line, carriage return, horizontal tab, or vertical tab.