[pooma-dev] template idiom in the Blitz stencils; TList as a Domain simplification
Scott Haney
scotth at proximation.com
Fri Jun 15 21:43:49 UTC 2001
On Thursday, June 7, 2001, at 07:31 AM, Allan Stokes wrote:
> There might be a case for adopting a TList mechanism to handle vararg
> constructs in Pooma. The TList itself contains all the nasty code
> replication. There would no longer be a need for Pooma components to
> replicate member functions on rank.
>
> I don't know to what extend vararg constructs are currently exposed in
> user
> level contexts, or how much of an imposition it would be to require
> users to
> package their varargs.
>
> A possible compromise would be to retain the functions for 1 to 3
> dimensions, and only require packaging for extended ranks. Is having
> three
> versions any better than having seven?
>
> I'm tossing this construct out first, because it's the least "C++
> compliant"
> of all the conveniences which Domain presently offers. Allowing
> integers to
> act as a domain type is also a hassle, but at least it's a hassle the
> language endorses.
Hi Allan,
Having one function would be wonderful from an implementation
perspective; however, I believe that asking the users to package their
domains would be viewed as ugly and onerous. Providing 7 versions of
some functions really isn't all that big of a deal, certainly not
significantly harder than providing 3.
I thought that our approach was C++-compliant. Could you explain where
it falls short here?
As for integers appearing in a mix of domains, one could legitimately
argue that this adds a lot of complexity that might better be handled in
other ways: for example, having slices require a specific syntax and
doing indexing with a separate set of member functions.
I do like Todd's approach of defining the stencils. It probably wouldn't
be horribly hard to try a similar thing with POOMA . Are you interested
in pursuing a prototype of, say, a cell->cell divergence for comparison
purposes?
Scott
More information about the pooma-dev
mailing list