MathGroup Archive 2011

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

Search the Archive

Re: Patterns with conditions

  • To: mathgroup at smc.vnet.net
  • Subject: [mg116923] Re: Patterns with conditions
  • From: Bill Rowe <readnews at sbcglobal.net>
  • Date: Fri, 4 Mar 2011 03:41:32 -0500 (EST)

On 3/3/11 at 5:58 AM, Serych at panska.cz wrote:

>Dear Mathematica group, I'm playing with function definitions and
>patterns based multiple definition of the function. I have defined
>this function:

>sinc[x_ /; x == 0] := 1;
>sinc[x_] := Sin[\[Pi] x]/(\[Pi] x);

>It works fine for let's say sinc[\[Pi]], even for sinc[0]. But if I
>define the table:

>tab = {0, \[Pi]/3, \[Pi]/2, \[Pi] 2/3, \[Pi], \[Pi] 4/3, \[Pi]
>5/3, 2 \[Pi]};

>and I let my function evaluate the results sinc[tab], it returns
>error messages:

<snip>

>I can understand, that "tab" doesn't fit to pattern condition /;
>x==0, also I know, that it is possible to Map my function to table
>Map[sinc, tab] and it works fine.

This is a big hint. Use SetAttributes to give your function the
attribute listable, i.e.,

sinc[x_ /; x == 0] := 1;
sinc[x_] := Sin[Pi*x]/(Pi*x);
SetAttributes[sinc, Listable]

tab = {0, Pi/3, Pi*(2/3), Pi, Pi*(4/3), Pi*(5/3), 2*Pi};
sinc[tab]

And you will find you will get the result you want with no error message



  • Prev by Date: Printing Environment is clipping all my tables
  • Next by Date: Re: player pro and notebooks
  • Previous by thread: Patterns with conditions
  • Next by thread: Re: Patterns with conditions