Re: Manipulating list of functions

• To: mathgroup at smc.vnet.net
• Subject: [mg96309] Re: Manipulating list of functions
• From: "Sjoerd C. de Vries" <sjoerd.c.devries at gmail.com>
• Date: Wed, 11 Feb 2009 05:21:29 -0500 (EST)
• References: <gmrmek\$9vj\$1@smc.vnet.net>

```Hi Istvan,

why didn't you just move these definition to outside the Manipulate?
They don't belong inside. You may consider Manipulate as an infinite
looping construct, so your code is redefining the same functions over
and over again.
And, since one of the definitions visually depends on the other,
Manipulate thinks it might have changed during one iteration and
therefore a new iteration is necessary to reflect the changes (ad
infinitum).

Just moving the definitions outside Manipulate won't work, though,
because they are the only places with explicit references to the
Manipulate variables a and b. Manipulate needs to see these, otherwise
it won't do anything. The following will work:

DynamicModule[{funcB, funcC, funcList, funcA},
funcA[z_, a_] := Sin[z + a];
funcB[z_, b_] := Cos[z + b];
funcC[z_] := 0;
funcList[z_, a_, b_] := {funcA[z, a], funcB[z, b], funcC[z]};

Manipulate[
Plot[funcList[x, a, b], {x, 1, 10}, Axes -> False,
Frame -> True], {a, 0, 1}, {b, 0, 1}]
]

or

DynamicModule[{funcB, funcC, funcList, funcA},
funcA[z_, a_] := Sin[z + a];
funcB[z_, b_] := Cos[z + b];
funcC[z_] := 0;

Manipulate[
Plot[{funcA[x, a], funcB[x, b], funcC[x]}, {x, 1, 10},
Axes -> False, Frame -> True], {a, 0, 1}, {b, 0, 1}]
]

Cheers -- Sjoerd

On Feb 10, 12:55 pm, replicator... at gmail.com wrote:
> Dear Group,
>
> I have the following code:
>
> Manipulate[
>  funcA[z_] := Sin[z + a];
>  funcB[z_] := Cos[z + b];
>  funcC[z_] := 0;
>  funcList = #[x] & /@ {funcA, funcB, funcC};
>  Plot[funcList, {x, 1, 10}, Axes -> False, Frame -> True],
>  {a, 0, 1},
>  {b, 0, 1}
>  ]
>
> It returns the Manipulate panel correctly. What annoys me is the cell
> bracket of it that is constantly highlighted, probably because there
> is some calculation going on even when I do not move any of the
> sliders, due to some function-definitions. I'm afraid I do not fully
> understand the cause of it. Nor do I know how to overcome it. Also
> what should I do, if I want to move the funcA, funcB, funcC
> definitions outside of Manipulate?
>