## Table and Matrix Size and the Speed of Computations

DADiSP organizes tables into multiple columns. A column of data always has some "overhead" associated with it to keep track of metadata such as column headers, column units, column sample rates, etc. The number of columns is limited at some point by the amount of memory available on your computer.

Data rows require no metadata and only use the memory space of the data itself. This space is automatically swapped to disk as it grows. Thus, the number of rows per column is essentially unlimited regardless of the amount of memory available.

Consider a table of ten thousand columns of ten rows each. Operating on this table (taking its square root, for example) is relatively slow and might be precluded by memory limitations. Operating on its transpose, which involves only ten columns, is significantly faster and takes advantage of disk resources rather than causing memory shortages. Use the SETBUFSIZE function to set the size of the number buffer and better utilize memory.

The following is a partial table of DADiSP functions provided explicitly for matrices. For more details, please refer to the DADiSP Function Reference Manual.

 Function Description CHOL Calculates the Cholesky factorization of a square matrix. DET Calculates the determinant of the matrix. DIAG Calculates the matrix diagonal EIG Calculates the Eigenvalues and Eigenvectors of a square matrix. HESS Calculates the Hessenberg form of the matrix. INNERPROD Calculates the matrix inner (or "dot") product. INVERSE Produces the inverse of the matrix. LU Calculates the LU decomposition of a square matrix. MDIV Divides two matrices. MMULT Multiplies two matrices. QR Calculates the QR decomposition of a square or rectangular matrix. SCHUR Calculates the Schur form of a matrix. SVD Calculates the Singular Value Decomposition of a matrix. USCHUR Calculates the Schur form of a matrix to produce a unitary matrix.