Questions tagged [suitesparse]

SuiteSparse is a suite of sparse matrix algorithms, including UMFPACK, CHOLMOD, SPQR, KLU, BTF, ordering methods (AMD, CAMD, COLAMD, and CCOLAMD), CSparse, CXSparse, UFget, spqr_rank, Factorize, SSMULT, SFMULT, and many other packages.

SuiteSparse is a suite of sparse matrix algorithms, including:

  • UMFPACK: multifrontal LU factorization. Appears as LU and x=A\b in MATLAB.
  • CHOLMOD: supernodal Cholesky. Appears as CHOL and x=A\b in MATLAB. Used in Google Ceres. Now with CUDA acceleration, in collaboration with NVIDIA.
  • SPQR: multifrontal QR. Appears as QR and x=A\b in MATLAB. CUDA acceleration just released (October 10, 2014, SuiteSparse 4.4.0), and submitted to ACM Trans. Math. Software
  • KLU and BTF: sparse LU factorization, well-suited for circuit simulation. Appears in Xyce by Sandia, and many commercial circuit simulation packages.
  • Ordering methods (AMD, CAMD, COLAMD, and CCOLAMD). AMD and COLAMD appear in MATLAB.
  • CSparse and CXSparse: a concise sparse Cholesky factorization package for the book, "direct methods for sparse linear systems" from Tim Davis published by SIAM.
  • UFget: a MATLAB interface for the UF Sparse Matrix Collection
  • spqr_rank: a MATLAB package for reliable sparse rank detection, null set bases, pseudoinverse solutions, and basic solutions.
  • Factorize: an object-oriented solver for MATLAB (a reusable backslash).
  • SSMULT and SFMULT: sparse matrix multiplication. Appears as C=A*B in MATLAB.
  • ... and many other packages.
50 questions
17
votes
1 answer

How to call UMFPACK as MATLAB does?

The problem I wish to solve a general system of linear equations A*x=b. The m-by-m matrix is sparse, real, square, somewhat poorly-conditioned, non-symmetric, but it is singular (rank(A)==m-1) because x is known only up to an additive constant. I…
jvriesem
  • 1,859
  • 3
  • 18
  • 40
7
votes
1 answer

Best way of solving sparse linear systems in C++ - GPU Possible?

I am currently working on a project where we need to solve |Ax - b|^2. In this case, A is a very sparse matrix and A'A has at most 5 nonzero elements in each row. We are working with images and the dimension of A'A is NxN where N is the number of…
El_Loco
  • 1,716
  • 4
  • 20
  • 35
6
votes
1 answer

How to add elements to a triplet matrix using CHOLMOD?

Can anyone please give me a simple example of how to add elements to a triplet matrix using CHOLMOD. I have tried something like this: cholmod_triplet *A; int k; void add_A_entry(int r, int c, double x) { ((int*)A->i)[k] = r; …
asny
  • 63
  • 4
5
votes
3 answers

Creating a sparse matrix in CHOLMOD or SuiteSparseQR

In SparseSuiteQR, all of the examples I can find use stdin or a file read to create a sparse matrix. Could someone provide a simple example of how to create one directly in C++? Even better, in the CHOLMOD documentation, there is mention of a…
al0
  • 308
  • 1
  • 2
  • 13
4
votes
0 answers

Eigen::SPQR module complains about rows mismatch when solving using least-squares

I am using Eigen::SPQR module to solve a least-squares problem Ax = b, and I am getting an error complaining about rows mismatch at the solve step. In general my code consists of initializing A using triplets, b using bracket operators and then…
marios13
  • 41
  • 3
3
votes
1 answer

Any example of `cholmod_updown_solve()` (Updating in CHOLMOD)?

I'm working on a project using CHOLMOD in C++ to do Cholesky factorization updating. The only reference I can find is the User Guide. And cholmod_updown_solve() seems to be the right function for me. But there is no example on this function and I…
2
votes
0 answers

Low-memory QR factorization

I am trying to numerically determine the rank of large matrices (around 50000 x 50000 64-bit floating point) using QR factorization with column pivoting. Even when the matrix is somewhat sparse (density ~0.05), I am having trouble completing the…
Ying
  • 163
  • 4
2
votes
1 answer

Julia: converting CHOLMOD factor to sparse matrix and back again

I have a CHOLMOD factorization of a sparse matrix H, and I want to edit the sparse representation of the upper, lower, and block diagonal factors. How can I do this? When I run the below, the last line doesn't work. H = sprand(10,10,0.5) fac =…
jjjjjj
  • 1,152
  • 1
  • 14
  • 30
2
votes
1 answer

Matrix operations in R: parallelization, sparse operations, GPU computation

The basic aim of my question is how to achieve the best performance of matrix operations in R using Matrix package. In particular I want to parallelize operations (multiplication) and work with sparse matrices using computation on CUDA GPU.…
storaged
  • 1,837
  • 20
  • 34
2
votes
1 answer

CHOLMOD supernodal factorization fails when sparse matrix becomes too dense

I am using CHOLMOD in SuiteSparse to factor an N by N large band-diagonal matrix that is relatively sparse, ie, it contains only a few diagonals that are non-zero. The sparsity of the matrix is set by a covariance length parameter l. The larger l…
iczekala
  • 113
  • 8
1
vote
0 answers

sksparse.cholmod: How to limit number of cores/threads/processes?

I want to use sksparse.cholmod in a production environment which requires monitoring. Therefore, I need to limit the resources reserved for the following call: cholmod.analyze_AAt(A, mode=mode, use_long=use_long,…
Martin
  • 21
  • 3
1
vote
1 answer

Cholmod via Eigen fails when sparse matrix becomes too large (Int Overflow error)

I am trying to solve Ax=b with Cholmod supernodal solver in Eigen libary c++ based project (I am calling cholmod via Eigen) , A is a sparse matrix with dimensions 5Mx5M and I have these errors in runtime: CHOLMOD error: problem too large. file:…
Miguel
  • 21
  • 3
1
vote
0 answers

Superl LU MT Cant get the solution X

I was trying to implement the SuperLU MT lib in my project, but i dont understand how does it work. The Documentation says that the driver returns the solution in the Dense matrix "B" you gave through the arguments, but when i tried to print this…
1
vote
0 answers

how to convert UMFpack sparse matrix to Eigen sparse matrix?

I have a code that was written to use UMFpack sparse matrix solver but need to convert it to Eigen sparse matrix but I am running into memory problems. I have Ai (row pointers), Ap (column pointers) and Ax (array). Trying to solve Ax=b. How can I…
1
vote
1 answer

How to use CholmodSupport in Eigen3 under Ubuntu

I made such a tiny example: solver.h #pragma once #include #include #include typedef Eigen::SparseMatrix SpMat; class UseCholmodSolver { public: UseCholmodSolver() {} …
1
2 3 4