MathGroup Archive 2007

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

Search the Archive

Re: Using Intermediate Variables in DynamicModules

  • To: mathgroup at smc.vnet.net
  • Subject: [mg80290] Re: Using Intermediate Variables in DynamicModules
  • From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
  • Date: Thu, 16 Aug 2007 07:23:23 -0400 (EDT)
  • Organization: Uni Leipzig
  • References: <fa130g$mt7$1@smc.vnet.net>
  • Reply-to: kuska at informatik.uni-leipzig.de

Hi,

try

f[x_] := x^2
DynamicModule[{a = 0.5, b = 0.5, work, fw},
  work = Dynamic[a + b];
  fw = f[work];
  Column[{
    Slider[Dynamic[a], {0, 2}],
    Slider[Dynamic[b], {0, 2}],
    {work, work /. w_NumericQ :> f[w]}
    }]
  ]

Regards
   Jens

David Park wrote:
> I am having a lot of trouble with a DynamicModule expression. I believe that 
> the following examples get to the heart of the matter.
> 
> Here is a DynamicModule that uses an external function f. It has two 
> internal variables a and b, which are controlled by sliders. The third 
> output line gives a+b and f[a+b].
> 
> f[x_] := x^2
> DynamicModule[
>  {a = 0.5, b = 0.5},
>  Column[{Slider[Dynamic[a], {0, 2}],
>    Slider[Dynamic[b], {0, 2}], {Dynamic[a + b], Dynamic[f[a + b]]}}]]
> 
> 
> Notice that f[a+b] is fully evaluated in the output. Now in my actual case I 
> have a long and complicated expression involving a and b that is used in a 
> number of different places. So to clarify the entire expression I would like 
> to define an intermediate expression that can then be used in the dynamic 
> output. Here is my attempt:
> 
> f[x_] := x^2
> DynamicModule[
>  {a = 0.5, b = 0.5, work},
>  work = Dynamic[a + b];
>  Column[{Slider[Dynamic[a], {0, 2}],
>    Slider[Dynamic[b], {0, 2}], {work, f[work]}}]]
> 
> Now, although the output is formally correct, the output, and in particular 
> f[work], is not fully evaluated. I think that may be the cause of my 
> problem. Why, in the first case does the f expression become fully evaluated 
> but not in the second case? Is there a simple way to force kernel evaluation 
> when intermediate expressions are used? (I.ve tried many combinations of 
> using Dynamic in the output expression and none of them changed the 
> behavior.)
> 
> Thanks in advanced. I've always gotten great help from this group.
> 


  • Prev by Date: Re: Evaluation question
  • Next by Date: Questions about InputField
  • Previous by thread: Using Intermediate Variables in DynamicModules
  • Next by thread: Re: Using Intermediate Variables in DynamicModules