 
 
 
 
 
 
Re: Different Methods inside one package
- To: mathgroup at smc.vnet.net
- Subject: [mg33702] Re: Different Methods inside one package
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Tue, 9 Apr 2002 01:02:24 -0400 (EDT)
- Organization: Universitaet Leipzig
- References: <a8rh77$b6a$1@smc.vnet.net>
- Reply-to: kuska at informatik.uni-leipzig.de
- Sender: owner-wri-mathgroup at wolfram.com
Hi,
set up the code:
methodTest[Automatic,matrixA_?MatrixQ, incond_, opts___?OptionQ]:=
something
methodTest[LT,       matrixA_?MatrixQ, incond_, opts___?OptionQ]:=
somethingelse
methodTest[EV,       matrixA_?MatrixQ, incond_, opts___?OptionQ]:=
somethingdifferent
methodTest[matrixA_?MatrixQ, incond_, opts___?OptionQ]:=
  Module[{meth},
    meth=Method /. {opts} /. Options[methodTest];
    methodTest[method,matrixA,incond,opts]
   ]
Regards
  Jens 
"J. Guillermo Sanchez" wrote:
> 
> (* Dear friends, I wish build a package where the user, as one option,
> can be choose one of three methods of evaluation, i.e: Automatic, LT or
> EV. Some thing like this silly example *)
> 
> BeginPackage["test`test`"]
> 
> methodTest::usage="methodTest. This is an example"
> 
> Options[methodTest]={Method\[Rule]Automatic};
> 
> Begin["`Private`"]
> 
> methodTest[matrixA_, incond_, opts___]:=
>   If[Automatic == Method/.{opts}/.Options[methodTest],
>     Module[{a, b, r},(a = matrixA; b = incond; r = a b)]]
> 
> methodTest[matrixA_, incond_, opts___]:=
>   If[LT == Method/.{opts}/.Options[methodTest],
>     Module[{a, b, r},(a = matrixA; b = incond; r = a /b)]]
> 
> methodTest[matrixA_, incond_, opts___]:=
>   If[EV == Method/.{opts}/.Options[methodTest],
>     Module[{a, b, r},(a = matrixA; b = incond; r = a + b)]]
> 
> End[]
> 
> Protect[methodTest];
> 
> EndPackage[]
> 
> list1 ={{a11, a12 },{a21,a22}}
> 
> methodTest[list1,list2]
> 
> methodTest[list1,list2, Method\[Rule]EV]
> 
> methodTest[list1,list2, Method\[Rule]LT]
> 
> (*How can I get that this example work?*)

