Boost logo

Boost :

From: Jeremy Siek (jsiek_at_[hidden])
Date: 2001-03-22 15:56:23

On Thu, 22 Mar 2001, Toon Knapen wrote:
toon> Wow, are'nt we going to drown in requirements/specifications here ?
toon> The discussion started at a multi-dim array, was extended to LA and
toon> know we're talking about numerics in general.
toon> All this stuff is super-interesting but let's take one step at a
toon> time.

Actually, I think it is really great that people have been posting
requirements/specs. Please keep them coming!! In the next week or so I
plan to collect and organize them.

However, I agree that we should get some of the basic components like
multi-dim arrays and matrix classes done first, since they will be needed
by most other components.

I've been working with Ron Garcia on the interface for multi-dim arrays
the last couple days... still have more work to do there. One of the
trickier parts is deciding on an interface for subarrays and slicing.
Blitz++ uses the following notation for specifying subarrays and slices:

A(0, Range(1,2), Range(2, 5)) // ranges are specified has closed intervals

However, this interface results in an interface explosion and has a fixed
limit on the number of dimensions that can be handled.

Blitz++ has an alternate way to specify subarrays using RectDomain, and
valarray has the gslice interface, however these approaches are not as
easy to use.

One possibility I'm looking at starts with the std::slice from valarray,
but allows them to be combined to specify slices for N dimensions.

A[slice(0)(1,2)(2,3)] // slices here are (start,size=1,stride=1)
                      // another sensible option would be to
                      // specify slices with half-open intervals
                      // (start,finish,stride)

If anyone has any good ideas on a nice interface for specifying subarrays,
feel free to chime in :)

toon> As mentioned by Andrew Lumsdaine and Jeremy Siek, the MTL that
toon> is going to contributed (I can't wait to see/download it;)
toon> is layered in a general matrix functionality with LA
toon> functionality on top of that. Maybe these two layers
toon> could be seperated in two boost libs. On top of the matrix lib,
toon> other numeric libs can then also be implemented.
toon> I also want to have all functionality as fast as possible but
toon> I'm convinced we get there faster starting small and with
toon> a quality implementation and go from there.

After the multi_array interface is hashed out, I'll get to work on pulling
together my prototype matrix code.


 Jeremy Siek www:
 Ph.D. Candidate email: jsiek_at_[hidden]
 Univ. of Notre Dame work phone: (219) 631-3906

Boost list run by bdawes at, gregod at, cpdaniel at, john at