perldl> $a=sequence(5) perldl> p$a [0 1 2 3 4] perldl> $b=pdl(1) perldl> $c=$a->shiftleft($b,0); perldl> p$c [0 2 4 6 8]
Looks like the syntax is OK and it's being interpreted by perldl. Pete said that the shift command works bitwise and I haven't invested the mental energy to comprehend what that means yet. --Art On Thu, Apr 10, 2008 at 3:03 PM, Judd Taylor <[EMAIL PROTECTED]> wrote: > I'm glad someone was able to help you out. > > Does anyone know why his code didn't work, though? He got docs on a > shiftleft function, so it's supposed to work, right? > > It looks to me like perl is picking another shiftleft sub, rather than > the PDL one when he uses the () in the call. If he leaves it out, he > gets the PDL usage doc. > > If that is the problem, then this should also work (and if it does, then > we'll know what the real problem is): > > perldl> $c = $a->shiftleft($b, 0); > > Please give it a shot and let me know if that works or not. > > Thanks, > Judd > > > On Wed, 2008-04-09 at 15:22 -0400, Art Davis wrote: > > Excellent. Problem solved (and education furthered). Thanks for the > > rapid answers! > > > > --Art > > > > On Wed, Apr 9, 2008 at 3:11 PM, Craig DeForest > > <[EMAIL PROTECTED]> wrote: > > Sorry, am stealing minutes from a meeting. That is a roll- > > left operation. For a shift-left, you would just want a > > different boundary condition: > > > > $cs = $a->range($b,[$a->dims],'t'); > > > > > > > > On Apr 9, 2008, at 3:06 PM, Craig DeForest wrote: > > You can use range for that: > > $a = sequence(5) > > $b = pdl(1); > > $c = $a->range($b,[$a->dims],'p'); > > > > > > > > On Apr 9, 2008, at 3:00 PM, Art Davis wrote: > > > > I haven't been able to make shiftleft work the > > way I want it. It may not even be the right > > command, I can't understand the POD > > documentation for it. > > > > What I want: > > perldl> $a=sequence(5); p$a; > > [ 0 1 2 3 4 ] > > perldl> $c=<some PerlDL syntax on $a>; p$c; > > [ 1 2 3 4 0 ] > > > > What I've tried: > > perldl> $a=sequence(5); $b=pdl(1); > > perldl> $c=shiftleft($a,$b,0); > > Undefined subroutine &main::shiftleft called > > perldl> $c = shiftleft $a, $b, 0; > > Usage: PDL::shiftleft(a,b,c,swap) (you may > > leave temporaries or output variables out of > > list) > > perldl> $c = $a << $b; p$c; > > [0 2 4 6 8] > > perldl> $a->inplace->shiftleft($b,0); p$a; > > [0 2 4 6 8] > > > > Making $b a Perl scalar doesn't seem to help. > > > > Can someone explain and/or provide a full > > example of the usage of shiftleft and/or > > provide a tip for shifting an array? > > > > ActivePerl 5.10 > > PDL 2.4.3 > > > > > > Thanks! > > --Art > > _______________________________________________ > > Perldl mailing list > > [email protected] > > > http://mailman.jach.hawaii.edu/mailman/listinfo/perldl > > > > > > > > > > _______________________________________________ > > Perldl mailing list > > [email protected] > > http://mailman.jach.hawaii.edu/mailman/listinfo/perldl > -- > ____________________________ > Judd Taylor > Software Engineer > > Orbital Systems, Ltd. > 3807 Carbon Rd. > Irving, TX 75038-3415 > > [EMAIL PROTECTED] > (972) 915-3669 x127 >
_______________________________________________ Perldl mailing list [email protected] http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
