public inbox for gsl-discuss@sourceware.org
 help / color / mirror / Atom feed
From: Patrick Alken <patrick.alken@Colorado.EDU>
To: "gsl-discuss@sourceware.org" <gsl-discuss@sourceware.org>
Subject: New GSL extension for sparse matrices
Date: Mon, 13 Jan 2014 03:24:00 -0000	[thread overview]
Message-ID: <52D35C53.80605@colorado.edu> (raw)

I have posted a new extension to the GSL webpage for sparse matrix
routines. I've added a new structure 'gsl_spmatrix' along with an API
similar to the gsl_matrix API for:

- setting/getting elements of a sparse matrix
- adding two sparse matrices
- dgemv and dgemm BLAS routines for sparse matrices
- transposing
- converting to/from a dense gsl_matrix object

I've tried to make the API as simple as possible and I think its pretty
easy to work with.

There is no linear solver for A x = b included here. This is a very
complex problem and there already exist many software libraries which
efficiently solve this problem. Many of these libraries however don't
have nice interfaces to construct a sparse matrix in compressed storage
formats.

This extension essentially makes it very easy to define a sparse matrix,
add elements to it, do basic operations like
add/transpose/matrix-vector/matrix-matrix, and then access the
compressed storage arrays so they can easily be passed to sophisticated
external linear solver libraries.

Many of the routines are based on the LGPL CSparse library, and
converted to GSL-like APIs.

Feel free to try it out - I've been using these routines with good
success in interfacing with linear solver libraries like Pastix and
MUMPS which require the compressed storage arrays as input.

The extension can be accessed on github at: https://github.com/pa345/gslsp

Patrick

                 reply	other threads:[~2014-01-13  3:24 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52D35C53.80605@colorado.edu \
    --to=patrick.alken@colorado.edu \
    --cc=gsl-discuss@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).