I seem to be late to the discussion, but this is exactly what I do. I make heavy use of PMCode to condition and take care of any Stupid Index Tricks that are needed, then hand that in to a PP routine that does the work.
> On Feb 4, 2017, at 2:49 PM, Chris Marshall <[email protected]> wrote: > > I can't speak to the nuances of Inplace => 1 or whatever. > > However, for full control of Inplace processing, > you can use PMCode and the is_inplace() routine > to set things up before the call to the PP routine. > > See PDL::PP re the PMCode key for details. > > --Chris > > On 2/4/2017 16:32, Luis Mochan wrote: >> On Sat, Feb 04, 2017 at 01:50:12PM -0600, Luis Mochan wrote: >>> On Sat, Feb 04, 2017 at 02:17:44PM -0500, Chris Marshall wrote: >>>> I think $P(a) != $P(b) will work. >> It did work, in a way. >> >> What I now don't understand is the use of inplace. My routine has two >> outputs (one of them an integer pdl). If I now call it as >> ($y, $i)=f($x); >> it recognizes that $x is a different pdl than the output and >> copies the data before calling the fortran routine. >> >> I can also call the routine as >> f($x, $y=PDL->null, $i=PDL->null); >> with the same result. >> >> If I call it as >> $y=$x; f($y,$y, $i=PDL->null); >> it recognizes that the expected output $y and the input are the same pdl and >> calls the fortran routine without copying, producing the correct >> result. >> >> However, if I call it as >> $y=$x; $i=f($y->inplace); >> I get a segmentation fault, and if I call it as >> $y=$x; f($y->inplace, $i->PDL->null); >> I get a remainder the f expects three arguments, not two. >> >> I did have in my pp_def the line Inplace0>['x','y']. >> >> Is it that inplace is designed for one output routines only, or am I >> making something wrong? >> >> For the time being, I guess I'll pass only the input arguments >> (without using inplace) or all input and output arguments. >> >> Best regards, >> Luis >> >> >> >> >> >>>> It would probably work with $PDL(a) == $PDL(b) as well but I don't know. >>>> >>>> A quick test should answer the question. I'm hoping Craig or >>>> another PDL::PP expert can weigh in from their experience and >>>> expertise. >>> Thanks, I'll test these solutions. >>> Regards, >>> Luis >>> >>> ------------------------------------------------------------------------------ >>> Check out the vibrant tech community on one of the world's most >>> engaging tech sites, SlashDot.org! http://sdm.link/slashdot >>> _______________________________________________ >>> pdl-general mailing list >>> [email protected] >>> https://lists.sourceforge.net/lists/listinfo/pdl-general >>> > > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > _______________________________________________ > pdl-general mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/pdl-general > ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ pdl-general mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/pdl-general
