If you haven't seen it yet, the set module (clojure.set) provides a
basic implementation of set relational algebra. May be useful for this
work?

See clojure.org data structures and the source for clojure/set.clj in
the clojure source.

Rgds, Adrian.

On Wed, May 6, 2009 at 7:05 PM, Anand Patil
<anand.prabhakar.pa...@gmail.com> wrote:
> On Sat, May 2, 2009 at 11:19 PM, aperotte <apero...@gmail.com> wrote:
>>
>> Hello everyone,
>>
>> I just uploaded some of my work on a new datatype for clojure to a git
>> repository.
>>
>> http://github.com/aperotte/persistentmatrix
>>
>> A bit of the rationale and motivation for the datatype is described on
>> the github page.  I basically wanted to create a datastructure for
>> manipulating large amounts of data efficiently and in a human friendly
>> way in clojure.
>>
>> Its main features are:
>>
>>   1. Immutability
>>   2. Primitive Support
>>   3. N-Dimensional – Arbitrary number and size of dimensions (ie.
>> ability to create a 4×3×5x6 datastructure)
>>   4. N-Dimensional units (ie. ability to create a 10×10 matrix with
>> 2×1 units to represent complex numbers)
>>   5. Fast submatrix views via structural sharing (ie. constant time
>> slicing, transposing, and other data manipulations)
>>   6. Maintenance of both deep and superficial dimensionality (ie.
>> slicing a 4×3×5x6 along the 3rd dimension will yield a datastructure
>> with a superficial dimensionality of 3 and a deep dimensionality of 4)
>>   7. Axis and element labeling and label indexing (ie. ability to
>> label axes and elements of an axis with strings or any arbitrary
>> object)
>>   8. Implementing many of the clojure interfaces and thereby
>> automatically inheriting much of the functionality of the standard
>> library for data structures.
>>
>> I would welcome any feedback.  Also, if anyone is interested in
>> working together to accelerate its development, that would be welcome
>> too!
>
> Great work! I'm glad to see some numerical advances in Clojure.
> I've got a couple of suggestions: first, you might want to follow numpy and
> call n-dimensional arrays 'arrays', and reserve 'matrix' for 2d arrays. Or
> not...
> Second, immutability is definitely the right default, but it would be nice
> to be able to create nonstandard arrays from Clojure somehow. For example,
> say I wanted to compute the matrix (f (- x y)) over the Cartesian product of
> vectors x and y.
> Anand
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to 
clojure+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to