What’s New in SAS/IML 14.1


Enhancements in SAS/IML 14.1

SAS/IML supports creating large matrices and using them in many computations. When previous releases of SAS/IML ran on the Windows operating system, an individual matrix was limited to 2GB. Within this limit, you could create square numerical matrices that had about 16,000 rows and columns. In SAS/IML 14.1, you can create matrices that have up to $2^{31}-1$ elements, provided that your system has enough RAM. (A numerical matrix that has $2^{31}-1$ elements requires 16 GB of RAM.) This size increase enables you to create square numerical matrices that have approximately 46,000 rows and columns. Equivalently, you can create matrices that have milions of rows and hundreds of columns. You can create these large matrices on all operating systems.

However, keep in mind that many matrix computations scale cubically with the number of elements in the matrix. That is, many computations on an $n \times n$ matrix require on the order of $n^3$ floating point operations. Consequently, although you might be able to create extremely large matrices, computing with large matrices can be very expensive.

In addition to supporting large matrices on Windows, SAS/IML 14.1 supports the following new statements and functions:

  • The PACKAGE statement enables you to install and use packages. A package consists of SAS/IML source code, documentation, data sets, and sample programs. Packages are a convenient way for programmers to download and install functions that extend the functionality of SAS/IML software. For SAS/IML 14.1, packages are supported only on Linux and Windows operating systems. For more information, see Chapter 9: Packages.

  • The EIGEN subroutine uses vendor-supplied eigenvalue routines such as the Intel Math Kernel Library (MKL), if they are available on your system. The EIGVAL and EIGVEC computations also use vendor-supplied libraries. Because eigenvectors are not unique, the results of eigenvector computations in SAS/IML 14.1 are not necessarily identical to the results from earlier releases. If you want to restore the algorithm that was used before SAS/IML 14.1, you can use the RESET EIGEN93 statement.

  • The RANDSEED subroutine uses a different initialization algorithm for certain seeds.

Lastly, the SAS/IML File Exchange now has a convenient shortcut: https://communities.sas.com/sas-iml-file-exchange. Recall that the SAS/IML File Exchange is a website where you can share SAS/IML programs and download programs that are written by others.