Hi
I am trying to write a function using thread_define that does some
conditional checks and creates a PDL with the output. I know I can use
PDL::PP to do this but that is not what I want here. I want to
auto-generate some PDL code at runtime to be used like apply()/sapply()
in R.
However, I am getting stuck at a trivial point and I keep getting an
error that says "multielement piddle in conditional expression".
Here is an example that reproduces the error:
use PDL;
use PDL::NiceSlice;
my $ohlc = ones(100, 4) + sequence(100, 4) * 0.05;
thread_define 'myfunc($o(n);$h(n);$l(n); $c(n); [o]$e(n))', over {
$_[4] .= ($_[1] - $_[2]) > ($_[3] - $_[0]) ? 1 : 0;
};
my $b = null;
myfunc($ohlc(,(0)), $ohlc(,(1)), $ohlc(,(2)), $ohlc(,(3)), $b);
print $b, "\n";
I am not able to understand why there is a multielement piddle problem.
Each piddle is of the same dimension except for the output $b which is
null() and hence can grow in size as needed.
Please advise.
Thanks
Vikas.
_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl