Publisher review:SSMULT - multiplies two sparse matrices SSMULT multiplies two sparse matrices:C = ssmult (A,B)computes C=A*B where A and B are sparse. This function is typically faster than C=A*B in MATLAB 7.4 (up to twice as fast, or more), and always uses less memory. Either A or B, or both, can be complex. Only matrices of class "double" are supported. Both 32-bit and 64-bit MATLAB are supported (untested on Windows 64, however, but it should work - if it doesn't please let me know).You will get poor performance if you use the built-in "lcc" compiler that ships with MATLAB for Windows. Use another compiler. Instructions are included for obtaining a free copy of Microsoft Visual C 2005 Express Edition and using it with the "mex" command in Windows.In the screenshot, speedup is the time for MATLAB C=A*B divided by the time for C=ssmult(A,B). The X-axis is n, the dimension of the square matrices A and B. A is a sparse random matrix with 1% nonzero values (yes, I am fully aware that random matrices can lead to misleading performance results ... see sstest2.m for a test with matrices from real applications). B is diagonal in the first row of plots, a permutation in the 2nd row, and tridiagonal in the third.
C=A*B is in blue, C=B*A is in red. A and B are both real in the first column of plots, B is complex in the 2nd, A in the 3rd, and both are complex in the 4th column of plots. The screenshot contains the results on an Intel Core Duo laptop, with Windows, VC 2005 Express Edition, and MATLAB 7.4.This function has been tested on MATLAB 6.1, 6.5, 7.0.1, 7.0.2, 7.1, 7.2, and 7.3, both 32-bit and 64-bit Linux, and 32-bit Windows.To install and test, type "ssmult_install" in the MATLAB command window. Requirements: ยท MATLAB Release: R2007a
SSMULT is a Matlab script for Mathematics scripts design by Tim Davis.
It runs on following operating system: Windows / Linux / Mac OS / BSD / Solaris.
Operating system:Windows / Linux / Mac OS / BSD / Solaris