MathGroup Archive 1999

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

Search the Archive

RE: RE: "f[x_]:= 2 x" vs. "f = 2 #&"

  • To: mathgroup at smc.vnet.net
  • Subject: [mg16531] RE: [mg16467] RE: [mg16365] "f[x_]:= 2 x" vs. "f = 2 #&"
  • From: "Ersek, Ted R" <ErsekTR at navair.navy.mil>
  • Date: Tue, 16 Mar 1999 04:00:08 -0500
  • Sender: owner-wri-mathgroup at wolfram.com

I will update the discussion and demonstrations in my MathSource item to
take into account the remarks from Andrzej Kozlowski, Jurgen Tisher, and
Allan Hayes.

(1) Contrary to what I thought, it is legal to use patterns on the right
side of a definition.

(2) Early in my notebook I give an example where I claim Plot would make an
erratic graph.  My Pentium makes an erratic graph when I use Plot for this
example.  Using a Mac Plot makes a smooth graph for the same example.

Thanks,
Ted

---------------------------

Ted,
how about the following?

PrecisionPlot[f_,{x_,xmin_,xmax_}]:=Module[{g,h},
		g[y_]:=(f/.x->y);
		h[y_]:=g[SetPrecision[y,100]];
		Plot[h[x],{x,xmin,xmax}]]

Jurgen

"Ersek, Ted R" wrote:
> 
................
> -------------------------------
> Suppose you are writing a program with the form
>   func[x_]:= (*****algorithm*****)
> and (algorithm) has to make a function that will be used at later stages
of
> (algorithm).
> 
> It's illegal to use patterns on the right side of a definition.
> So (algorithm) can't make the function with the approach
>   f[x_]:= 2 x
> It also can't make the function with the approach
>   f[x_]= 2 x
> Instead (algorithm) must make the function with one of the following
>   f=2#&
>   f=Function[2#]
>   f=Function[x,2x]
> 
> So when would you need to do this?
> One such case is the function below.  This function will plot a function
> using arbitrary precision arithmetic to sample the function.  This is
useful
> in special cases when a function must be sampled using arbitrary precision
> arithmetic.
> 
> (***********)
> PrecisionPlot[f_,{x_,xmin_,xmax_},opts___?OptionQ]:=
>  Module[{g,h},
>   (g=Function[f/.x->#];
>      h=(g[SetPrecision[#,17]]&);
>      Plot[h[x],{x,xmin,xmax},opts]
>    )
>  ]
> (***********)
> 
> As far as I can tell there was no way to get PrecisionPlot working without
> using a pure function as I do with   g=Function[f/.x->#]
> 
..................


  • Prev by Date: Re: Q: extracting list of arguments of function
  • Next by Date: Mathematica symbols
  • Previous by thread: Re: RE: "f[x_]:= 2 x" vs. "f = 2 #&"
  • Next by thread: Re: "f[x_]:= 2 x" vs. "f = 2 #&"