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?*)