Thanks for the DiskCache pointer.
The exact expression that gives me the error (even after invoking
$PDL::BIGPDL=1) is

$c=$a==$b->dummy

where

$b is Double D [500]
$a is Double D [480000]


On Sun, Sep 14, 2008 at 3:41 PM, Craig DeForest
<[EMAIL PROTECTED]>wrote:

> Steve,
>
> Are you sure you sent us the exact expression you used below?  For example,
> if you masked
> your very large data set with something like:
>
>        $c = maximum( ($a==$b->dummy)->xchg(0,1)) != 0 &&
> (xvals($b->dim(0))<5000))
>
> to look at only the first 5000 rows, then the "&&" would throw the
> 'multielement' error, because && is a short-circuiting operation.  In
> general, you have to be in a branching logical construct to throw that
> error, because there's no way to evaluate the argument of the branch in
> anything but Perl's boolean context.  The branching logical constructs are
> the tests of the 'if', 'unless', 'elsif', 'for(;;)', 'while', and 'until'
> statements, and the '?:', '&&', and '||' operators.  The reason your error
> message is puzzling is that your example doesn't contain any of those, so if
> you are using that exact expression it indicates something extremely
> peculiar going on in the guts of PDL.
>
>
> On Sep 14, 2008, at 8:11 PM, Steve Cicala wrote:
>
>>
>>
>> (I am using this to collect indicies in a that correspond with elements in
>> b:
>> $d=which(maximum (($a==$b->dummy)->xchg(0,1))!=0)
>> ).
>>
>> Now, when I try to use this operation for large numbers (i.e. $a is
>> 480000x1
>> and $b is 500x1) I get:
>>
>> 'multielement piddle in a conditional expression'
>>
>> --And I get this error whether calculating $c on its own, or just sticking
>> the expression that generates $c into the one that generates $d.
>>
>
>
_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl

Reply via email to