RE: Domain of a function

• To: mathgroup at smc.vnet.net
• Subject: [mg8343] RE: [mg8225] Domain of a function
• Date: Tue, 26 Aug 1997 02:22:36 -0400
• Sender: owner-wri-mathgroup at wolfram.com

```John Jowett wrote:

| Hello, I would like to extract the set of values on which a function is
| defined.
|
|I would like something
|that returns just the list {1,2}, ie, the domain or set of values for
|which the function has been explicitly defined.
|

Lets make an example (a little more complicated than John's example):

In[1]:=  f[1]=Sin[1];
f[2]=Sin[2];
f[q_Rational] := Sin[Numerator[q]];
f[n_?Negative] := Sin[-n];

(*   Lets look at the FullForm of the first DownValue.    *)

In[2]:=  FullForm[ Part[ DownValues[f], 1 ]]

Out[2]//  FullForm=
RuleDelayed[ HoldPattern[ f[1] ], Sin[1] ]

(* It took a little tinkering, but I found that the code below works:  *)
(* The FullForm above helps explain why it works.  *)

In[3]:=  Domain[funct_]:=
DownValues[funct] /. RuleDelayed[x_,_] :> First[First[x]]

(*  Now we try it out.  *)

In[4]:=  Domain[f]

Out[4]=  {1, 2, q_Rational, n_?Negative}

(* I wanted to get rid of the Blanks and stuff.  *)
(* Unfortunately I couldn't find an concise implementation.  *)

In[5]:=  Domain[funct_]:=Module[{temp,patts, pattest},
temp=DownValues[funct]/.  RuleDelayed[x_,_]:>First[First[x]];

t1=Map[Part[#,2,1]&,t1];
t2=Map[Part[#,2]&, t2];
Join[t0,t1,t2]
]

In[6]:=  Domain[f]

Out[6]=  {1, 2, Rational, Negative}

(* Now that looks pretty good.  *)
(* Maybe some of the experts will find a better implementation.   *)

(***  Ted Ersek  ***)

```

• Prev by Date: Re: method used in NonlinearFit
• Next by Date: Sum[1/(n^2 +n+1)^2,{n,1,p}]
• Previous by thread: Front end quirks
• Next by thread: Sum[1/(n^2 +n+1)^2,{n,1,p}]