The Interactive Matrix Language is an interpretive language executor that can be characterized as follows:
efficient and inexpensive to compile
inefficient and expensive for the number of operations executed
efficient and inexpensive within each operation
Therefore, you should try to substitute matrix operations for iterative loops. There is a high overhead involved in executing each instruction; however, within the instruction IML runs very efficiently.
Consider the following four methods of summing the elements of a matrix:
s = 0; /* method 1 */ do i = 1 to m; do j = 1 to n; s = s + x[i,j]; end; end; s = j[1,m] * x * j[n,1]; /* method 2 */ s = x[+,+]; /* method 3 */ s = sum(x); /* method 4 */
Method 1 is the least efficient, method 2 is more efficient, method 3 is more efficient yet, and method 4 is the most efficient. The greatest advantage of using IML is reducing human programming labor.