MathGroup Archive 2011

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

Search the Archive

Re: Patterns with conditions

  • To: mathgroup at smc.vnet.net
  • Subject: [mg116903] Re: Patterns with conditions
  • From: DrMajorBob <btreat1 at austin.rr.com>
  • Date: Fri, 4 Mar 2011 03:37:55 -0500 (EST)

Here are a couple of improvements:

ClearAll[sinc]
SetAttributes[sinc, Listable]
sinc[0 | 0.] = 1;
sinc[x_] := Sin[\[Pi] x]/(\[Pi] x);
tab = {0,
    0., \[Pi]/3, \[Pi]/2, \[Pi] 2/3, \[Pi], \[Pi] 4/3, \[Pi] 5/3,
    2 \[Pi]};
sinc@tab

or

ClearAll[sinc]
sinc[0 | 0.] = 1;
sinc[x_List] := sinc /@ x
sinc[x_] := Sin[\[Pi] x]/(\[Pi] x);
tab = {0,
    0., \[Pi]/3, \[Pi]/2, \[Pi] 2/3, \[Pi], \[Pi] 4/3, \[Pi] 5/3,
    2 \[Pi]};
sinc@tab

Bobby

On Thu, 03 Mar 2011 04:58:30 -0600, =A6er=FDch Jakub <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);
>
> (I know, that Mathematica has Sinc function defined, it's just the test.)
>
> 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:
> Power::infy: Infinite expression 1/0 encountered. >> and
> Infinity::indet: Indeterminate expression 0 ComplexInfinity encountered. 
> >>
>
> 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.
>
> I can imagine solution with IF[x==0,1, Sin[\[Pi] x]/(\[Pi] x), but my 
> question is: Is it possible to make my function fully Listable using 
> just pattern conditions?
>
> Thanks for responses
>
> Jakub
>
> P.S. Code in one block for easy copying:
>
> sinc[x_ /; x == 0] := 1;
> sinc[x_] := Sin[\[Pi] x]/(\[Pi] x);
> tab = {0, \[Pi]/3, \[Pi] 2/3, \[Pi], \[Pi] 4/3, \[Pi] 5/3, 2 \[Pi]};
> sinc[\[Pi]]
> sinc[0]
> sinc[tab]
> Map[sinc, tab]
>


--
DrMajorBob at yahoo.com


  • Prev by Date: Re: Patterns with conditions
  • Next by Date: Re: Filtering data from numerical minimization
  • Previous by thread: Re: Patterns with conditions
  • Next by thread: Re: Patterns with conditions