From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9443 invoked by alias); 13 Jan 2014 03:24:06 -0000 Mailing-List: contact gsl-discuss-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gsl-discuss-owner@sourceware.org Received: (qmail 9431 invoked by uid 89); 13 Jan 2014 03:24:05 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 X-HELO: ipmx5.colorado.edu Received: from ipmx5.colorado.edu (HELO ipmx5.colorado.edu) (128.138.128.235) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 13 Jan 2014 03:24:04 +0000 From: Patrick Alken Received: from 71-33-172-96.hlrn.qwest.net (HELO [192.168.0.226]) ([71.33.172.96]) by smtp.colorado.edu with ESMTP/TLS/DHE-RSA-CAMELLIA256-SHA; 12 Jan 2014 20:24:02 -0700 Message-ID: <52D35C53.80605@colorado.edu> Date: Mon, 13 Jan 2014 03:24:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 MIME-Version: 1.0 To: "gsl-discuss@sourceware.org" Subject: New GSL extension for sparse matrices Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-SW-Source: 2014-q1/txt/msg00012.txt.bz2 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