Re: Set::setraw error
- To: mathgroup at smc.vnet.net
- Subject: [mg90357] Re: Set::setraw error
- From: dh <dh at metrohm.ch>
- Date: Mon, 7 Jul 2008 05:06:27 -0400 (EDT)
- References: <g4q9kl$e6o$1@smc.vnet.net>
Hi Steven, consider the statement: {a,b,r,s,x,y}={b,c,x-q*r,y-q*s,r,s}]; If we call xgcd[1,2],"a" is a parameter is replaced by one, giving: {1,2,r,s,x,y}=....;. As you can not assigne to 1 or 2 you get the error. The same is true for all statement where you assigne to function parameters. hope this helps, Daniel Steven Siew wrote: > I have encountered this Set:setraw error for the code below. > > I'm stumped. Does anyone have any idea what went wrong? > > xgcd[a_,b_]:=Module[{xsign=1,ysign=1,x=1,y=0,r=0,s=1,c,q}, > If[a == 0 && b == 0,Return[{0,0,1}]]; > If[a == 0,Return[{Abs[b],0,b/Abs[b]}] ]; > If[b == 0,Return[{Abs[a],a/Abs[a],0}]]; > If[a<0,a=-a; xsign=-1]; > If[b<0,b=-b; ysign=-1]; > While[b\[NotEqual]0, > {c,q}={Mod[a,b],Quotient[a,b]}; > {a,b,r,s,x,y}={b,c,x-q*r,y-q*s,r,s} > ]; > Return[{a,x*xsign,y*ysign}] > ] > > xgcd[2, 3] > > \!\(\* > RowBox[{\(Set::"setraw"\), \(\(:\)\(\ \)\), "\<\"Cannot assign to > raw \ > object \\!\\(2\\). \\!\\(\\*ButtonBox[\\\"More\[Ellipsis]\\\", \ > ButtonStyle->\\\"RefGuideLinkText\\\", ButtonFrame->None, \ > ButtonData:>\\\"Set::setraw\\\"]\\)\"\>"}]\) > -- Daniel Huber Metrohm Ltd. Oberdorfstr. 68 CH-9100 Herisau Tel. +41 71 353 8585, Fax +41 71 353 8907 E-Mail:<mailto:dh at metrohm.com> Internet:<http://www.metrohm.com>