MathGroup Archive 1997

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

Search the Archive

Re: Want to use Module

  • To: mathgroup at smc.vnet.net
  • Subject: [mg9826] Re: [mg9773] Want to use Module
  • From: Wouter Meeussen <vdmcc at vandemoortele.be>
  • Date: Fri, 28 Nov 1997 05:35:39 -0500
  • Sender: owner-wri-mathgroup at wolfram.com

hi Ted,

are you in for a "pas-de deux" ?

In[1]:=y[x_]:=x Exp[x]+2

In[2000987]:=foo[x_/;((temp=N at y[x])<100)]:= Module[{it
=temp},Clear[temp];	2/(3+it)]	

but maybe I "bent the rules" by using Clear[temp]?

It took me some time to find out I had to convert y[x] into a number (N[
..]) if I wanted the condition "/;( stuff < 100)"  to evaluate to
either False or True.

Maybe check with Xah's notebooks to see wether 

foo[x_/;(condition)]:= ...
works faster than
foo[x_]/;(condition):= ...

A slight variation:

In[2000993]:=foo[x_/;(N@(temp=y[x])<100)]:= Module[{it
=temp},Clear[temp];	2/(3+it)]	

now, temp is left symbolic, only the condition is forced to numeric.
This allows you to evaluate stuff like :

NestList[foo,1,7]
as being different from 
NestList[foo,1.,7]

have fun,

wouter.


At 12:07  25.11.97 -0500, Ersek_Ted%PAX1A at mr.nawcad.navy.mil wrote:
>
>I need to write a function like  foo[x]  below.
>
>In[1]:=
>y[x_]:=x Exp[x]+2;
>
>In[2]:=
>foo[x_]/;(temp=y[x]; temp<100):= 2/(3+temp)
>
>In[3]:=
>foo[2]
>
>Out[3]=
>2/(5 + 2*E^2)
>
>In[4]:=
>foo[20]
>
>Out[4]=
>foo[20]
>
>In[5]:=
>Clear[s];
>foo[s]
>
>Out[5]=
>foo[s]
>
>Notice foo[x] is only defined when (y[x]<100). (y[20]<100)->False,  so
>foo[20] is returned unevaluated. (y[s]<100)  is not defined,  so foo[s]
>is returned unevaluated.
>
>I used (temp=y[x]) so I wouldn't have to evaluate y[x] twice. How can I
>do this with (temp) inside a Module, so it is local to (foo[x])?
>
>     Thanks
>
>     Ted Ersek
>     ersek_ted%pax1a at mr.nawcad.navy.mil
>
>
>

NV Vandemoortele Coordination Center Oils & Fats Applied Research
Prins Albertlaan 79
Postbus 40
B-8870 Izegem (Belgium)
Tel: +/32/51/33 21 11
Fax: +/32/51/33 21 75
vdmcc at vandemoortele.be



  • Prev by Date: ReadSoundfile problems on NT?
  • Next by Date: Re: subscripted variables
  • Previous by thread: Want to use Module
  • Next by thread: Re: Re: Want to use Module