HDTenEightyP/NetNews huggingface dataset:
From: monagan@inf.ethz.ch (Michael)
Subject: Re: plots and eval
Summary: plot3d functionality in Maple
Organization: Dept. Informatik, Swiss Federal Institute of Technology (ETH), Zurich, CH
Date: Fri, 11 Sep 1992 13:51:37 GMT

In article <1992Sep10.164017.3507@magnus.acs.ohio-state.edu>, hmarvel@magnus.acs.ohio-state.edu (Howard P Marvel) writes:
> Consider the following series of statements in Maple:
> 
> c := proc (alpha,beta) if signum(alpha+beta)=1 then alpha+ beta else 0 fi en\
> d;
> c(a,b);
> a:=1;
> b:=1;
> c(a,b);
> plot3d(c(x,y),x=0..1,y=0..1);
> 
> The first sets up a proc that returns alpha + beta if alpha + beta is
> a positive real. However, if alpha and beta are variables, signum
> cannot evaluate the expression, and the proc returns 0. The first call
> c(a,b) returns 0 and the second returns 2. Now consider the plot
> statement. This should yield values from 0 to 2, right? Instead,
> signum fails and all plotted values are 0. My question is, is there a
> way to force Maple to evaluate c for the values in question and to
> plot the values?  
> 
> Thanks in advance for any suggestions.

Dear Howard,

The plot3d function has no special evaluation rules.  The arguments
get evaluated, then function is executed.  So what happens when you do

    plot3d( c(x,y), x=0..1, y=0..1 );

is that c(x,y) is executed on symbolic x and y, and this returns 0,
so it's just as if you had written  plot3d( 0, x=0..1, y=0..1 );
The plot3d command has two ways of being called.  You can plot either
a formula in x and y, or a function of two variables.  Consider

    plot3d( binomial(n,k), n=0..3, k=0..3 );

versus

    plot3d( binomial, 0..3, 0..3 );

The second way allows you to plot a function of two variables defined
by a Maple procedure or operator expression.  So the simple solution
to your problem is

    plot3d( c, -1..1, -1..1 );

The alternative is to use quotes to prevent c(x,y) being evaluated
before the plot routine gets the expression, i.e.

    plot3d( 'c(x,y)', x=-1..1, y=-1..1 );

Some more examples to clarify.

    plot3d( 'binomial(x,y)*c(x,y)', x=-3..3, y=-3..3 );
    plot3d( binomial*c, -3..3, -3..3 );

These are wrong

    plot3d( 'binomial(x,y)*c(x,y)', -3..3, -3..3 );
    plot3d( binomial*c, x=-3..3, y=-3..3 );

Mike Monagan
Newsgroups: sci.math.symbolic
From: dalef@whatnext.apl.washington.edu (dale funk)
Subject: Re: Student version of Mathematica
Keywords: mathematica student
Reply-To: dalef@whatnext.apl.washington.edu
Organization: University of Washington
Distribution: na
Date: Thu, 10 Sep 1992 22:03:44 GMT

In article <199209091533.AA03358@dec3100a> shiekh@ICTP.TRIESTE.IT (Andy  
Shiekh) writes:
> 
>   I understand that the student version of Matematica does not use the
> co-processor directly, has a soft cover manual and cannot be networked.
> 
>   Are there any other restrictions for the Mac and Windows student
> versions of Mathematica?
> 
> 
> Andy
> 
> _____________________________________________________________________
>
I have both the student version and the full blown version of mathematica
for windows.  The student version cost $180.00 and the full blown version  
cost $995.00.  Along with the restrictions you mentioned, the student  
version receives no technical support so you cannot call Wolfram with  
questions.  Also, I have V2.1 for both and I have found more bugs in the  
student version.  For example, when I plotted the AiryAi function from
-5 to +5 one region blew up.  This did not happen on the "expensive"  
version.  The student version was released first and the other was delayed  
so the student version may also be a semi-beta version. I don't know but
I no longer trust it for correct solutions.
Neither version is as simple to use as the NeXT version that I have had
for several years.
Dale
new email address: dalee@milton.u.washington.edu
From: carlson@math.purdue.edu (Neil N. Carlson)
Newsgroups: sci.math.symbolic
Subject: Thread question in Mathematica
Date: 7 Sep 92 14:37:39 GMT
Organization: Purdue University

Can some kind soul please explain the following Mathematica example
to me.  I'm baffled that the result of the final line isn't

    {{{x1, y11}, {x2, y21}}, {{x1, y12}, {x2, y22}}}

which is what I was after. (I'm running version 2.0.4 on a SPARC 2
if that matters.)

    In[3]:= f[x1,{y11,y12},x2,{y21,y22}]

    Out[3]= f[x1, {y11, y12}, x2, {y21, y22}]

    In[4]:= Thread[%]

    Out[4]= {f[x1, y11, x2, y21], f[x1, y12, x2, y22]}

    In[5]:= f[a_,b_,c_,d_] := {{a,b},{c,d}}

    In[6]:= Thread[%3]

    Out[6]= {{x1, x2}, {{y11, y12}, {y21, y22}}}

Thanks in advance, Neil Carlson (carlson@math.purdue.edu)
Newsgroups: sci.math.symbolic
From: whitmore@iastate.edu (Kurt D Whitmore)
Subject: Re: Mathematica plot
Organization: Iowa State University, Ames IA
Date: Mon, 7 Sep 1992 00:00:14 GMT

In <1992Sep6.221705.15226@wuecl.wustl.edu> ppc1@cec1.wustl.edu (Peter Pui Tak Chiu) writes:

>hi everyone,

>i have been trying to plot the direction field of y'=-xy for an hour
>using Mathematica.  i have the book by wolfram but still can't figure 
>out how.  can anyone please give me a hand?

>thanks in advance

>pete


<<Graphics`PlotField`

dx[x_,y_]=D[-x y,x]; (* NO COLON BEFORE THE EQUALS SIGN!! *)
dy[x_,y_]=D[-x y,y];

PlotVectorField[{dx[x,y],dy[x,y]},{x,-1,1},{y,-1,1}]


Hope this helps!

Kurt





-- 
_______________________________________________________________________
      Kurt D. Whitmore            |        Whitmore Technical Publications
   whitmore@iastate.edu           |                1003 N. Hyland
   Iowa State University          |                Ames, Ia 50010
From: neilfp@astro.ocis.temple.edu (Neil F. Palumbo)
Newsgroups: sci.math.symbolic
Subject: XAY+XB+CY+D=0, HELP
Date: 10 Sep 92 13:55:36 GMT
Organization: Temple University
X-Newsreader: Tin 1.1 PL5

I am trying to solve the matrix equation XAY+XB+CY+D=0 analytically for
the unknown matrices {X,Y}. Anyone have any ideas, suggestions, comments...?
Newsgroups: sci.math.symbolic
From: mc1586217@ntuvax.ntu.ac.sg
Subject: Maple Problem : Error, (in normal/doit) floats not handled
Organization: Nanyang Technological University - Singapore
Date: Sun, 13 Sep 1992 06:36:21 GMT

The following maple program was ran under DEC VMS and the last line gave the
following error :-

Error, (in normal/doit) floats not handled
****************************************************************************
with(linalg):
Q:=array(symmetric,1..3,1..3,[(1,1)=20.0,(1,2)=0.7,(1,3)=0.0,(2,2)=2.0,\
(2,3)=0.0,(3,3)=0.7]);
m:=cos(theta);
n:=sin(theta);
T:=array(1..3,1..3,[(1,1)=m^2,(1,2)=n^2,(1,3)=2*m*n,(2,1)=n^2\
,(2,2)=m^2,(2,3)=-(2*m*n),(3,1)=-(m*n),(3,2)=m*n,(3,3)=(m^2-n^2)]);
Qbar.k:=evalm(inverse(T) &* Q);
****************************************************************************

Does anyone know what's the problem. Thank you.

Newsgroups: sci.math.symbolic
From: katherle@daisy.uwaterloo.ca (Kate Atherley)
Subject: Re: MapleV: limit crashes... an old bug?
Organization: University of Waterloo
Date: Wed, 9 Sep 1992 13:45:37 GMT

In article <61830007@acf3.NYU.EDU> fanchiot@acf3.NYU.EDU (Sergio Fanchiotti) writes:
>
>> limit(ln(abs(x))*x,x=0) ;
>bytes used=1000436, alloc=786288, time=9.883
>/usr/bin/maple: 15422 Memory fault11.0u 2.3s 0:36elap 36%cpu (243t+820ds+1063avg+832max)kb (15i+13o)ev (10maj+66min)pf 0swaps
>
>If we try with the right condition: sometimes it works some it doesn't.
>
>> limit(ln(abs(x))*x,x=0,right) ;
>bytes used=1000008, alloc=786288, time=10.283
>/usr/bin/maple: 15448 Memory fault11.4u 2.1s 0:38elap 34%cpu (242t+817ds+1059avg+832max)kb (28i+12o)ev (10maj+66min)pf 0swaps
>
>From the left it also crashes...
>
>> limit(ln(abs(x))*x,x-=0,left) ;
>bytes used=1000004, alloc=786288, time=10.683
>/usr/bin/maple: 15474 Memory fault11.9u 2.8s 0:49elap 29%cpu (247t+809ds+1056avg+838max)kb (43i+13o)ev (11maj+66min)pf 0swaps
>
>
>	Does anyone know why this crashes Maple. Also, Mathematica won't
>	do it, but it does not crash..

This is a bug in Maple V.  As the session below shows,
this has been fixed in the development version of Maple.
You can expect to see this fix in the next release.

    |\^/|
._|\|   |/|_. Symbolic Computation Group, University of Waterloo
 \  MAPLE  /  Research Version --- Fri Sep 4 10:49:44 EDT 1992
 <____ ____>  Type ? for help.
      |
>  limit(ln(abs(x))*x,x=0) ;
                                       0

>  limit(ln(abs(x))*x,x=0,right) ;
                                       0

>  limit(ln(abs(x))*x,x=0,left) ;
                                       0

> quit
bytes used=520420, alloc=393144, time=1.22

Kate Atherley
Technical Support
Waterloo Maple Software
support@maplesoft.on.ca
Newsgroups: sci.math.symbolic,ba.seminars,ucb.seminars,ba.general,ucb.general
From: nb@Sunburn.Stanford.EDU (Nancy Blachman)
Subject: The BMUG Math SIG Meeting September 21
Organization: Computer Science Department,  Stanford University.
Distribution: ba
Date: Tue, 15 Sep 1992 20:42:44 GMT


                      Maple V versus Mathematica 2

                               talk by

                            Nancy Blachman
                        Variable Symbols, Inc.

   BMUG Math SIG Meeting at 7 pm on Monday, September 21, 1992


Maple and Mathematica are the two most popular computer algebra
systems on the market today.  Nancy Blachman will share with you
her experience and her opinions on the strengths and limitations 
of Maple and Mathematica. She will answer questions such as:  
How is Maple similar to Mathematica?  In what ways are the 
different? What does Maple offer and who are the primary users 
of Maple? What can Mathematica do and who is using it?  How 
should you decide which system to use/purchase?

Nancy Blachman has been using Mathematica for the past four years.
She is the author of the "Mathematica Quick Reference, Version 2"
(Addison-Wesley and Variable Symbols, 1992) and the tutorial book 
"Mathematica:  A Practical Approach" (Prentice-Hall, 1992).  Recently
she started to use Maple.  She is writing the "Maple V Quick Reference",
a compact guide to Maple V, Release 2.  

This presentation will be at the BMUG office at 2055 Center Street
in Berkeley.  The office is near the north west corner of Center Street
and Shattuck Ave. which is half a block from the Berkeley BART station.

Driving directions:
        Take the University exit off 80.
        Head east on University toward the UC Berkeley campus.
        Turn right at Shattuck (McDonalds will be at the corner.)
        Go 2 blocks.
        Turn right on Center and look for parking.
        I recommend the parking garage on the left, as the one on
                the right closes at 8 pm.

For more information on the Berkeley Macintosh Users Group (BMUG) 
Mathematics Special Interest Group (SIG), contact: 
        Nancy Blachman
        Variable Symbols, Inc
        2161 Shattuck Ave., Suite 202
        Berkeley, CA  94704-1313
        Email: nb@eris.berkeley.edu
        or     nb@cs.stanford.edu
        Fax: 510-843-8702
        Telephone: 510-843-8701
From: insong@park.bu.edu (Insong Koh)
Newsgroups: sci.math.symbolic
Subject: Mathematica 3D Plot
Date: 11 Sep 92 21:12:34 GMT
Distribution: ne
Organization: Information Technology, Boston University, Boston, MA, USA
Originator: insong@park.bu.edu

I am a novice user of Mathematica in a Unix environment.
I made a data file which has 3 columns, say x, y, z columns.
I want to plot a 3D graph with this file.
Will you please tell me how to do it?
Thanks in advance.

	InSong
Newsgroups: sci.math.symbolic
From: knapp@spot.Colorado.EDU (David Knapp)
Subject: Matlab. Compared to mma, mathcad?
Organization: University of Colorado, Boulder
Date: Mon, 14 Sep 1992 02:39:01 GMT


Can anyone fill my in on the pros and cons of matlab? I've used both 
Mathematica and Mathcad for windows. Can any users compare Matlab to these?



-- 
David Knapp                                      University of Colorado, Boulder
Perpetual Student                                   knapp@spot.colorado.edu
From: tgayley@cs.arizona.edu (Todd W. Gayley)
Newsgroups: sci.math.symbolic
Subject: Re: about Symbol
Summary: simple answer
Date: 15 Sep 92 04:53:56 GMT


In article <92257.145502NCKUT057@TWNMOE10.BITNET>, G.J. Cheng 
(NCKUT057@TWNMOE10.BITNET) writes:
 
>   I want define a function like that
>
>       f[x_] := Block [ body ... ]
>
>   and I want the first character of variable x must be "A" and
>   this function could test it automatically. Is any one know how
>   to do that?
 
Here's how:
 
f[x_ /; StringMatchQ[ToString[x],"A*"]] := Block[ body... ]
 
===============================================================
Todd Gayley
Department of Ecology and Evolutionary Biology
University of Arizona
tgayley@ccit.arizona.edu      -or-      tgayley@cs.arizona.edu
From: ags@seaman.cc.purdue.edu (Dave Seaman)
Newsgroups: sci.math.symbolic
Subject: Re: Thread question in Mathematica
Date: 8 Sep 92 14:59:01 GMT
Article-I.D.: mentor.Bu9LME.B0r
Organization: Purdue University

In article <Bu7u7x.Eq5@mentor.cc.purdue.edu> ags@mentor.cc.purdue.edu  
(Dave Seaman) writes:
> In article <Bu7pyr.734@mentor.cc.purdue.edu> carlson@math.purdue.edu  
(Neil N. Carlson) 
>  asks essentially why Thread[{{x1, {y11, y12}}, {x2, {y21, y22}}}]
> gives                 {{x1, x2}, {{y11, y12}, {y21, y22}}}
> and not               {{{x1, y11}, {x2, y21}}, {{x1, y12}, {x2, y22}}}

After I posted this I realized that probably was not exactly what Neil  
Carlson meant to ask. The situation he described was as follows

    In[3]:= f[x1,{y11,y12},x2,{y21,y22}]

    Out[3]= f[x1, {y11, y12}, x2, {y21, y22}]

    In[4]:= Thread[%]

    Out[4]= {f[x1, y11, x2, y21], f[x1, y12, x2, y22]}

    In[5]:= f[a_,b_,c_,d_] := {{a,b},{c,d}}

    In[6]:= Thread[%3]

    Out[6]= {{x1, x2}, {{y11, y12}, {y21, y22}}}

and the problem is that when he typed Thread[%3] in the In[6] line, %3 had  
a different value compared to when it was first printed, because of the  
intervening definition of f, which was applied first before Thread was  
called. In fact, if Neil had typed In[6] := %4, he would have obtained the  
answer he was looking for, with Thread evaluated before f.

--
Dave Seaman
ags@seaman.cc.purdue.edu
Newsgroups: sci.math.symbolic
From: hibrown@vidar.albany.edu (Herb Brown)
Subject: Re: plots and eval
Organization: State University of New York at Albany
Date: Fri, 11 Sep 92 17:09:03 GMT

In article <1992Sep10.164017.3507@magnus.acs.ohio-state.edu> hmarvel@magnus.acs.ohio-state.edu (Howard P Marvel) writes:
>Consider the following series of statements in Maple:
>
>c := proc (alpha,beta) if signum(alpha+beta)=1 then alpha+ beta else 0 fi en\
>d;
>c(a,b);
>a:=1;
>b:=1;
>c(a,b);
>plot3d(c(x,y),x=0..1,y=0..1);
>
>The first sets up a proc that returns alpha + beta if alpha + beta is
>a positive real. However, if alpha and beta are variables, signum
>cannot evaluate the expression, and the proc returns 0. The first call
>c(a,b) returns 0 and the second returns 2. Now consider the plot
>statement. This should yield values from 0 to 2, right? Instead,
>signum fails and all plotted values are 0. My question is, is there a
>way to force Maple to evaluate c for the values in question and to
>plot the values?  
>
>Thanks in advance for any suggestions.


Howard,

Try the following:
>  plot3d(c , 0..1, 0..1 );  # (c is a procedure)

Herb


-- 
---------------------------------------------------------------------------
Herb Brown  Math Dept  The Univ at Albany  Albany, NY 12222  (518) 442-4640
Director,                                          hibrown@math.albany.edu  
Computer Assisted Instruction in Mathematics       hibrown@thor.albany.edu
From: tequila@ccwf.cc.utexas.edu (Mario Garcia)
Newsgroups: sci.math.symbolic
Subject: Scaled Ticks in Mathematics
Date: 13 Sep 92 23:07:31 GMT
Reply-To: tequila@ccwf.cc.utexas.edu (Mario Garcia)
Organization: The University of Texas at Austin, Austin TX
Originator: tequila@dopey.cc.utexas.edu

Greetings,

I am doing ListDensityPlots in Mathematics and have the following problem.
I have a grid in which the values of x range from  10 to 2500 with 
increments of 5, and the values of y range from  -Pi/2 to Pi/2 in 
increments of Pi/36. I haven't ben able to label my axes correctly, since
the Ticks option takes the array indices literally i.e. increments of 1. 
Could anyone tell me how to get around this?

----------------------------------------------------------------------------
Mario L. Garcia                      E-mail mario@truth.asg.arlut.utexas.edu
Applied Research Laboratories
The University of Texas at Austin          --- NeXTmail welcomed ---
From: dek2@cec2.wustl.edu (Dean E Kassmann)
Newsgroups: sci.math.symbolic
Subject: mma -- creating a generic argument list
Date: 13 Sep 92 19:54:13 GMT
Distribution: na
Organization: Washington University, St. Louis MO

i am in the process of cleaning up a program that i had written earlier for a
new version.  I want to know if there is anyone out there on the net who
has dealt with the problem of creating an argument of arbitrary length, whose
variables appear as dummy arguments. (sounds confusing, I know)

let me explain.
the program i wrote creates functions whose argument lists are defined by an
Option that the user of the package can invoke.
example

In[1]: f[ blah, Argument -> {x,y,z}]

    will create some function, lets call it g, that is defined as 
 
       g[x_,y_,z_] := stuff

*Note* that in g the arguments appear as dummy variables

I am currently accomplishing this by using streams; however, it is awkward.

what i want is a method for taking a list and converting it to a similar list
in which to each member is appended the symbol _. ( i.e. {x,y} ---> {x_,y_} )

then to take that list and use it as a collection of ordered arguments for use
in a global function
                             g[x_,y_] := stuff


what i have now does this but i end up with
                             g[{x_,y_}] := stuff
( it uses streams and replacements on streams to do this )


Is there anyone out there who has dealt with this problem. If so how did
you do it. Or is there any one who has some new ideas that i may have missed.
I would appreciate any help on the subject. 
                                            Thanks in advance.


-- 
Dean Kassmann            | 
 dek2@wucec1.wustl.edu   |  
=====  The other night I was lying in bed, looking up at the stars, and  =====
             I wondered, "Where the FUCK is my ROOF ?!?"
Newsgroups: sci.math.symbolic
From: litow@csd4.csd.uwm.edu (Bruce E Litow)
Subject: Maple differntiation
Summary: Maple has a bug in differentation
Originator: litow@csd4.csd.uwm.edu
Organization: Computing Services Division, University of Wisconsin - Milwaukee
Date: Wed, 9 Sep 1992 12:31:45 GMT

Maple V does this

> diff(xy,y);
> 0


This is clearly a bug.
-- 
Bruce Litow
Computing Services Division
P.O.Box 413, University of Wisconsin-Milwaukee, 53201
414 229 6431    litow@csd4.csd.uwm.edu
From: ppc1@cec1.wustl.edu (Peter Pui Tak Chiu)
Newsgroups: sci.math.symbolic
Subject: Mathematica plot
Date: 6 Sep 92 22:17:05 GMT
Organization: Washington University, St. Louis MO

hi everyone,

i have been trying to plot the direction field of y'=-xy for an hour
using Mathematica.  i have the book by wolfram but still can't figure 
out how.  can anyone please give me a hand?

thanks in advance

pete
From: berg@i7.arc.umn.edu (Brian Berg)
Newsgroups: sci.math.symbolic
Subject: re: Mathematica Plot 3D
Date: 14 Sep 92 19:29:33 GMT
Reply-To: berg@a1.arc.umn.edu
Organization: AHPCRC, University of Minnesota

> insong@park.bu.edu writes:

>I am a novice user of Mathematica in a Unix environment.
>I made a data file which has 3 columns, say x, y, z columns.
>I want to plot a 3D graph with this file.
>Will you please tell me how to do it?

Heres one variety of solutions:
(* to get data in
a=ReadList["file",Number];
*)
(* or for the example *)
a={0,0,0, 1,1,1, 2,2,2, 3,3,3};


(* this will show the points *)
b=Partition[a,3];
c=Map[Point,b];
Show[Graphics3D[c] ]; 

(* this will show the lines connecting consecutive points *)
d=Partition[b,2,1];
e=Map[Line,d];
Show[Graphics3D[e] ];  

(* if your x y grid is rectangular, evenly spaced data *)
a={0,0,0, 0,1,10, 0,2,20,
   1,0,10, 1,1,20, 1,2,30} 

f=Partition[a,3];
g=Transpose[f][[3]]; (* take only the data in the third column *)
h=Partition[g,3];    (* partition by number of elements in a row *)
ListPlot3D[h];

Brian
berg@a1.arc.umn.edu
Newsgroups: sci.math.symbolic
From: dj7@cunixf.cc.columbia.edu (Dev Joneja)
Subject: maple and OpenWindows
Reply-To: dj7@cunixf.cc.columbia.edu (Dev Joneja)
Organization: Columbia University
Distribution: comp
Date: Sun, 13 Sep 1992 18:48:18 GMT

When using plot3d in maple with Sun's OpenWindows I get the error:
   X Error: BadName
   Request Major code 45 ()
   Request Minor code 0
   ResourceID 0x1400039
   Error Serial #102
   Current Serial #103

I have SunOS 4.1.1 on a SparcStation IPC, running OpenWindows version
3, XNeWS server.

Regular (2d) plot windows show up with no problems. 
Has anyone seen anything like this, has any ideas .... ?
Any help in this context will be appreciated very much.

Thanks.
Dev Joneja, dj@shiva.gsb.columbia.edu
From: tgayley@cs.arizona.edu (Todd W. Gayley)
Newsgroups: sci.math.symbolic
Subject: Re: mma -- creating a generic argument list
Date: 15 Sep 92 05:55:07 GMT
Distribution: na


In article <1992Sep13.195413.27402@wuecl.wustl.edu>, Dean Kassman
(dek2@cec2.wustl.edu) writes:
 
> i am in the process of cleaning up a program that i had written earlier for a
> new version.  I want to know if there is anyone out there on the net who
> has dealt with the problem of creating an argument of arbitrary length, whose
> variables appear as dummy arguments. (sounds confusing, I know)
> 
> let me explain.
> the program i wrote creates functions whose argument lists are defined by an
> Option that the user of the package can invoke.
> example
> 
> In[1]: f[ blah, Argument -> {x,y,z}]
> 
>     will create some function, lets call it g, that is defined as
> 
>        g[x_,y_,z_] := stuff
> 
> *Note* that in g the arguments appear as dummy variables
> 
> I am currently accomplishing this by using streams; however, it is awkward.
> 
> what i want is a method for taking a list and converting it to a similar list
> in which to each member is appended the symbol _. ( i.e. {x,y} ---> {x_,y_} )
> 
> then to take that list and use it as a collection of ordered arguments for use
> in a global function
>                              g[x_,y_] := stuff
> 
> what i have now does this but i end up with
>                              g[{x_,y_}] := stuff
> ( it uses streams and replacements on streams to do this )
 

You can perform this operation much more simply using transformation rules. 
The basic idea is that you want to transform
 
            x ----> Pattern[x,Blank[]]
 
In the spirit of your f, here is a function that creates another function:
 
  CreateFunc[ func_, Argument -> {args___}, rhs_ ] :=
         Evaluate[func @@ ( {args} /. z_Symbol :> Pattern[z,Blank[]] )] := rhs
 
Thus, CreateFunc[ f, Argument->{arg1, arg2}, rhs ] will create the function
 
            f[arg1_, arg2_] := rhs
 
exactly as if you had typed it in as such. Note that you will get a warning
message because Mma thinks you are probably making a mistake by putting a
pattern variable (i.e., a Blank[]) on the RHS of a rule. However, you can just
ignore the warning (or switch it off if you don't want to see it). As written,
CreateFunc will not work correctly if one of the elemnts of args___ is itself a
list, but it should not be difficult to modify if this is needed.
 
Here is an example:
 
In[] := CreateFunc[h, Argument->{x,y,z}, x^2 + y^2 + z^2]
 
In[] := ?h

       Global`h
 
       h[x_, y_, z_] := x^2 + y^2 + z^2
 
In[] := h[a,b,c]
Out[] = a^2 + b^2 + c^2
 
Hope this helps.
 
===============================================================
Todd Gayley
Department of Ecology and Evolutionary Biology
University of Arizona
tgayley@ccit.arizona.edu      -or-      tgayley@cs.arizona.edu