MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Strange bug

  • To: mathgroup at smc.vnet.net
  • Subject: [mg53281] Re: [mg53255] Strange bug
  • From: DrBob <drbob at bigfoot.com>
  • Date: Tue, 4 Jan 2005 03:13:11 -0500 (EST)
  • References: <200501030929.EAA10654@smc.vnet.net>
  • Reply-to: drbob at bigfoot.com
  • Sender: owner-wri-mathgroup at wolfram.com

I'm guessing you sent the version that works, and the one that doesn't omits this:

rx;(*Error unless some expression is here.??*)

But that means you have For[...]*matx[[rx]]=....

That Sets the result of a multiplication, and Times won't allow it.

It should be For[...];matx[[rx]]=...

If I knew what you're really trying to do, I could probably rewrite this in two or three lines of functional code.

Bobby

On Mon, 3 Jan 2005 04:29:31 -0500 (EST), Steve Gray <stevebg at adelphia.net> wrote:

> I have procedural function "ordermat." It works ok if the next-to-last (useless) line is there but
> if I remove that one line, I get error messages due to the last line,  at execution time:
>
> Set::write: Tag Times in Null\{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \[LeftSkeleton]1\
> \[RightSkeleton]} is Protected.
>
> ("intersect" returns a small integer and computes "tafr.")
>
> I've seen bugs like this before. I'm using 5.0.1.0 with Windows. Any clues? Thanks in advance.
>
> Steve Gray
>
>
>
> ordermat[gon_] := Module[{row, rx, cx},
>     gonl = Length[gon];
>     matx = Table[0, {i, 1, gonl}, {j, 1, gonl}];
>     gona = Join[gon, gon];
>     For [ rx = 1, rx <= gonl, rx++,
>       	row  = Table[0, {2*gonl}];
>       	row[[rx]] = 1;
>       	row[[rx + 1]] = 2;
>                ab = gona[[rx]];
>       	ae = gona[[rx + 1]];
>       	For [ cx = 1, cx <= gonl - 3, cx++,
>           	       bb = gona[[cx + rx + 1]];
>           	       be = gona[[cx + rx + 2]];
>           	       int = intersect[ab, ae, bb, be];
>           	       If [ int == 3, row[[cx + rx + 1]] = tafr + 1];
>           	   ]
>                rx;                  (*   Error unless some expression is here.?? *)
>                matx[[rx]] = Table[Max[row[[i]], row[[i + gonl]]], {i, gonl}];
>            ]
>     ]
>
>
>
>



-- 
DrBob at bigfoot.com
www.eclecticdreams.net


  • References:
  • Prev by Date: Re: Strange bug
  • Next by Date: Re: Strange bug
  • Previous by thread: Strange bug
  • Next by thread: Re: Strange bug