[vsipl++] [patch] Matrix product 'backend' for CML
Don McCoy
don at codesourcery.com
Thu May 15 00:52:38 UTC 2008
Jules Bergmann wrote:
> Such a check might look like
>
> Is_split_block<Block0>::value == Is_split_block<Block1>::value &&
> Is_split_block<Block0>::value == Is_split_block<Block2>::value &&
>
> The danger of comparing Block_layout<BlockX>::complex_type directly is
> that scalar blocks actually have a complex format, but it doesn't mean
> anything. If two scalar blocks happened to have different complex
> formats, ct_valid would be false. It is an unlikely event, but using
> Is_split_block makes it an impossible event.
>
>
Such a check will work only if it is performed on an evaluator that only
handles complex types, or that otherwise has some condition excluding
the case of one of those blocks being a scalar type (float in this
case). If I only do the above and the format is interleaved, then
blocks having either scalar or complex values will return false,
allowing ct_valid to be true.
But I see what you mean. My method was no good either, due to what you
said about scalar blocks having an (invalid) complex type. I'd wondered
about this.
Thanks,
--
Don McCoy
don (at) CodeSourcery
(888) 776-0262 / (650) 331-3385, x712
More information about the vsipl++
mailing list