Re: New draft (#3) and last call for comments on SRFI 194: Random data generators
Bradley Lucier 18 Aug 2020 21:12 UTC
On 8/18/20 4:06 PM, Linas Vepstas wrote:
> By "sparse", I mean arrays that are 1million by 1million, (so
> one-tera-entries, clearly don't fit in RAM) but sparse, in that only
> maybe a few million non-zero entries (so very easily fits in RAM) .. and
> my tool collection for this is "basic" -- averages of rows/columns,
> standard deviations, sums, products, knock-out filters to eliminate
> rows/columns, matrix products, transpose, inner products, etc. I
> (really) dislike having to maintain my own library for this.
>
> So -- when I say "matrix library", it's clear that SRFIs 179 and 164
> fail to even begin to do this. First, because they don't have basic
> primitives like "add two vectors together", and second, because my
> vectors are maybe 1 million entries long, of which only 1K are non-zero,
> there is no way to use these srfi's to add together such things .
In support of a graduate class, I wrote a library for basic finite
element methods for PDEs; it's at
https://www.math.purdue.edu/~lucier/615-2016/software/
There are some basic linear algebra codes in
linear-algebra.scm
sparse-linear-algebra.scm
sparse-matrix-solver.scm
including linear operations on sparse matrices and an efficient sparse
matrix-vector multiply (it's limited by the speed of memory access to
the matrix coefficients). It uses the Meroon object system, but it
would be relatively easy to port to another CLOS-like system; if you're
interested you can find more information on the class page:
https://www.math.purdue.edu/~lucier/615-2016/
Brad