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