public inbox for gsl-discuss@sourceware.org
 help / color / mirror / Atom feed
From: Alexis Tantet <alexis.tantet@gmail.com>
To: gsl-discuss@sourceware.org
Subject: Re: Sparse matrix extension
Date: Tue, 19 Jan 2016 16:43:00 -0000	[thread overview]
Message-ID: <CAMWWPT3Y=x-vYphaV+2gHPb9WZqEfYdDxs4T0KqBq987VjvDQA@mail.gmail.com> (raw)
In-Reply-To: <CAMWWPT3uJj4Vrn7ut6+F18gY===zd6+1r1UJhz0hcCj--zwtdg@mail.gmail.com>

Dear GSLers,

As a scientist rather than a developer, I have developed an extension
of the sparse matrix module (CRS, I/O, manipulation, see below), which
I have tested. These modifications conserve the structure of the
original module and be useful for a large number of sparse matrices
users.

I'm not familiar with the contributing process here. My repository can
be found there:
https://github.com/atantet/gslsp
Unfortunately, I did not know of the gsl.git repository and I forked it froml:
https://github.com/drjerry/gslsp ,
which seems to be a bit older than gsl.git.

How can I push/merge to gsl.git ? Should it be as an update or another
extension? Is it necessary to adapt to the newest version of the code
?

Best regards,
Alexis Tantet

CHANGES.md:

Extension of the sparse matrix module of GSL

===================================

Introduction
------------

Usages of sparse matrices are numerous in scientific computing.
When numerical linear algebra problems become large, sparse
matrices become necessary to avoid memory overload and unnecessary
computations, at the cost of element access and matrix construction.
As a result, most large scale linear solvers or eigen solvers perform
on sparse matrices.

Fortunately, a very useful sparse matrix module has recently been
introduced to GSL.
However, important features are still lacking, such has
Compressed Row Storage (CRS) matrices, input/output functions and
other matrix properties and manipulation functions.
This new version attempts to address this, conserving the original
structure of the module and conventions.

Major changes
-------------

* Add CRS format and update functions manipulating compressed matrices :
     - additional flag GSL_SPMATRIX_CRS and macro GSLSP_ISMATRIX (
gsl_spmatrix.h )
     - additional members innerSize and outerSize used to iterate
matrix elements ( gsl_spmatrix.h )
     - rename some variables for coherence ( gsl_spmatrix.h , *.c )
     - update all functions on compressed matrices ( *.c )
* Allow to sum duplicate elements when compressing ( spcompress.c ) :
     - modify gsl_spmatrix_compress
     - add    gsl_spmatrix_sum_duplicate
* CCS <-> CRS and fast transpose inplace in spswap.c :
     - add gsl_spmatrix_switch_major
     - add gsl_spmatrix_transpose
* Add printing and scanning functions in spio.c :
     - add gsl_spmatrix_fprintf
     - add gsl_spmatrix_fscanf
* Add manipulation functions in spmanip.c (particularly useful for
Markov chain transition matrices) :
     - add gsl_spmatrix_get_rowsum : get vector of sum over row elements
     - add gsl_spmatrix_get_colsum : get vector of sum over column elements
     - add gsl_spmatrix_div_rows   : divide all elements of each row
by a vector element
     - add gsl_spmatrix_div_cols   : divide all elements of each
column by a vector element
* Add test functions in atprop.c :
     - add gsl_spmatrix_gt_elements : greater than test for each matrix element
     - add gsl_spmatrix_ge_elements : greater or equal than test for
each matrix element
     - add gsl_spmatrix_lt_elements : lower than test for each matrix element
     - add gsl_spmatrix_le_elements : lower or equal than test for
each matrix element
     - add gsl_spmatrix_any         : test if any non-zero element in matrix

Other minor changes have been made, such as error tests.
test.c has also been updated to test new features.

       reply	other threads:[~2016-01-19 16:43 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CAMWWPT3uJj4Vrn7ut6+F18gY===zd6+1r1UJhz0hcCj--zwtdg@mail.gmail.com>
2016-01-19 16:43 ` Alexis Tantet [this message]
2016-01-19 17:02   ` Patrick Alken
2016-01-19 19:55     ` Alexis Tantet
2016-01-19 20:50       ` Patrick Alken
2016-01-20 18:31         ` Alexis Tantet
2016-02-07  0:03           ` Patrick Alken
2016-02-07  1:03             ` Alexis Tantet
2016-02-07 17:25               ` Patrick Alken
2016-02-07 19:32                 ` Alexis Tantet
2016-02-07 20:14                   ` Patrick Alken
2016-02-07 20:31                     ` Alexis Tantet
2016-02-07 21:34                       ` Patrick Alken
2016-02-08  0:59                         ` Alexis Tantet
2016-02-10 13:16                           ` Alexis Tantet
2016-02-10 13:48                             ` Alexis Tantet
2016-02-10 15:56                             ` Patrick Alken
2016-02-12 10:43                               ` Alexis Tantet
2016-02-13 19:42                                 ` Patrick Alken
2016-02-14 11:06                                   ` Alexis Tantet
2016-02-14 18:11                                     ` Patrick Alken
2016-02-14 18:25                                       ` Brian Gladman
2016-02-15  5:10                                         ` Patrick Alken
2016-02-15 11:09                                           ` Brian Gladman
     [not found]                                             ` <CAMWWPT0J9ENRZjJHLO=cxot4DGdSLer+n2HkBVnhFnO0oiVV8g@mail.gmail.com>
2016-02-15 13:56                                               ` Alexis Tantet
2016-02-15 17:17                                                 ` Patrick Alken

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='CAMWWPT3Y=x-vYphaV+2gHPb9WZqEfYdDxs4T0KqBq987VjvDQA@mail.gmail.com' \
    --to=alexis.tantet@gmail.com \
    --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).