Does $b contain something special? I'm using
floor(random(500)*48000), but maybe you've got a less generic set of
values in there...
On Sep 14, 2008, at 8:53 PM, Steve Cicala wrote:
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