Other software assets resulting from my team’s research projects and papers can be found either inside the paper or through clicking the CODE button in the publications page.
| ScalaGAUSS (C++, Matlab) |
| ScalaGAUSS is a suite of scalable tools for analyzing large-scale spatiotemporal data modeled as a Gaussian process/random field. The project addresses the computational challenges in statistical data modeling and analysis of the data in a very large scale. A number of publications arose from this project. For more information please see the project website. |
| Download: http://press3.mcs.anl.gov/scala-gauss/software |
| Block Preconditioned Conjugate Gradient (Matlab) |
| This is a Matlab implementation of the block preconditioned conjugate gradient algorithm for solving linear systems. This program is useful for prototyping and proof of concepts. |
| Download: bpcg.tar.gz (version: 2011.04.08) |
| Computing $f(A)b$ via Least Squares Polynomial Approximations (Matlab) |
| This is a Matlab program for computing a function of a large sparse matrix times a vector. The underlying technique is a least squares polynomial approximation to the function, and the method can be applied to a general arbitrary function. For more information, see the SISC paper Computing $f(A)b$ via Least Squares Polynomial Approximations. |
| Download: fAb.tar.gz (version: 2010.11.10) |
| Sparse Matrix SVD (Matlab) |
| This toolkit provides a Matlab function that has a similar functionality to the standard svds() function, but consumes much less memory and runs significantly faster than svds() for sparse matrices and large dense matrices. The computation of the SVD is based on the Lanczos algorithm. The toolkit also provides a similar function for those low-rank-modified matrices. The provided functions are not meant to replace the standard svds() for two reasons: (1) The provided functions can only compute the largest/smallest singular values/vectors, but not other ones (although modifications to meet such requirements are easy); (2) The provided functions have almost no error checks so one has to use them at caution. |
| Known issues: The codes were originally developed for large scale data analysis tasks (such as dimensionality reduction), where the largest singular components are in concern. The underlying algorithm is known to be less effective for computing the smallest components. |
| Download: sparseSVD.tar.gz (version: 2008.12.10) |
| Convex Quadratic Program with Box Constraints (Matlab) |
| This is a handy Matlab function that solves the quadratic program with box constraints $$\min \,\, \frac{1}{2} x^T H x + f^T x \,\, \text{ s.t. } \,\, \text{lb} \leq x \leq \text{ub}$$ where $H$ is positive definite. The function is implemented based on the two-metric projection method, specifically tailored for the positive definite Hessian. This function outperforms the general purpose Matlab function quadprog(). By duality, it may also solve convex quadratic programs with linear constraints $$\min \,\, \frac{1}{2} x^T H x + f^T x \,\, \text{ s.t. } \,\, Ax \leq b.$$ This code was the prototype implementation in the paper Y. Sheng, T. Yapo, and B. Cutler. Global Illumination Compensation for Spatially Augmented Reality. Eurographics 2010. |
| Download: qppdbox.tar.gz (version: 2011.07.08) |