Sparse sub access
by Bruno Luong
30 Mar 2009
(Updated 13 Nov 2010)
This package allows to retrieve and assign values of sparse matrix in one shot.
|
Watch this File
|
| File Information |
| Description |
The indexes must be provided in (row,column) form. Functions in this package are programmed with care so no overflow of linear index is used with large-size matrix. I try to design an engine of automatic selection algorithms so as to provide a good run time performance across various cases. I'm not sure it's worth the effort, but my experience shows that it is easy to mess with the performance when non-appropriate method is using in sparse manipulation. This package does not warranty for best performance, but it just has a modest pretension to prevent user to use bad algorithm. For a better customize solution, a calibration is required on the specific
computer by running this command: spcalib('auto') |
| Acknowledgements |
This submission has inspired the following:
Robust Sparse data types
|
| MATLAB release |
MATLAB 7.7 (R2008b)
|
|
Tags for This File
|
| Everyone's Tags |
|
| Tags I've Applied |
|
| Add New Tags |
Please login to tag files.
|
| Updates |
| 31 Mar 2009 |
Add a feature of bi-variate function-handle when assign values |
| 01 Apr 2009 |
Adjust the maximum of linear index allowed according to bug information communicated by The Mathworks (applicable only for 32-bit platform, v.2009A or previous) |
| 03 Apr 2009 |
A brand new mex implementation that overcome Matlab indexing Bug (32 bit platform) and improve the speed by approximately a factor of 4. |
| 06 Apr 2009 |
More comprehensive calibration
Correct mex-build command for 64-bit platform
Many small improvements and bug fixes |
| 11 Apr 2009 |
A new mex sparse assign engine is developped from scratch using quicksort. Finally, we beat adding routine by about 40% of speed. More comprehensive calibration routine is included. |
| 15 Apr 2009 |
Correct a bug in setspvalmex.c, which concerns 64-bit only |
| 17 Apr 2009 |
Correct bug when calling setspvalmex.c with empty indice.
This code is also ready to compiled using INTROSORT, however QUICKSORT is still retained as default engine. |
| 16 Dec 2009 |
Workaround for BUG of LCC (related to "|" operator in expression with int64) |
| 10 Jan 2010 |
switch the sort-engine of setsparse to introsort which is more stable than quicksort (previously used) in term of complexity |
| 13 Nov 2010 |
When passing scalar row or column, it will automatically expanded to match the other |
|
Contact us at files@mathworks.com