> I've done some work on a matrix implementation which
> is an array for storage plus stride and offset for each dimension
> and some other info such as a reference counter.
Sounds nice!
I'm curious; why do you need a reference count? That sounds difficult
to implement correctly, and I'd have thought that garbage collection
would take care of reclaiming the underlying object when no slices of
it refer to it any more -- assuming anonymous arrays. Or is that for
copy-on-write?
> The hardest part would be just to identify all the places
> in the code that look like (if (eq (caar e) '$matrix) ...) and
> replace them.
Yes, that and $list for the one-dimensional case. Fortunately, Maxima
doesn't supply setcdr -- that would have made things messy!
-s