MathGroup Archive 1998

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

Search the Archive

Re: Sqrt and Listability

Andrzej Kozlowski wrote in message <7334kv$rqk at>...
>I have come across a mystery. Solving it is a matter of absolutely no
>importance, yet I would be grateful for any help in putting it to rest.
>A few days ago I was giving my introductory course in Mathematica
>programming and was about to explain the 'Listable' attribute of
>functions, when on the spur of the moment I did something one should
>never do and departed from my prepared plan. I just got the idea that a
>good way to introduce listability would be to start with some very well
>known function, remove the Listable attribute, and then demonstrate
>that it would be really desirable to have it back. Of course I could
>have defined my own function but at this point we had not yet got as
>far as defining functions so I wanted to choose something very well
>known. Without any tests my choice fall on Sqrt. Sqrt is of course
>{2, 3}
>One can check it's attributes explicitly: In[2]:=
>Now we remove Listable:
>Sqrt is no longer Listable:
>Or is it?
>This was a little embarrassing. I mumbled something to the effect that
>one should never trust a computer program and replaced Sqrt with Sin.
>Now everything worked as expected.
>My question is: why on earth is Listablity "hard wired" into Sqrt but
>not in other functions, like Sin. Log etc. Is this just a accidental
>quirk (I wouldn't even call it a bug) which just proves my point about
>"never trusting a computer program" or is there something "deep"
>involved in this?
>Andrzej Kozlowski
>Professor of Mathematics
>Toyama International University
>Toyama, JAPAN


Sqrt[x] is replaced by Power[x.1/2] which is computed; and Power is
Listable. Further, in output, Power[x.1/2] is changes to Sqrt[x].

With Sqrt Listable, the computation runs

Sqrt[{4,x}] -> {Sqrt[4],Sqrt[x]} -> {Power[4,1/2], Sqrt[x]} -> {2,
Sqrt[x]} -> {2, Power[x,1/2]} -> {2, Sqrt[x}

After ClearAttributes[Sqrt, Listable] we get

Sqrt[{4,x}] -> Power[{x,4},1/2} -> {Power[4,1/2], Power[x.1/2]} -> {2,
Power[x,1/2]} -> {2, Sqrt[x}


Allan Hayes
Mathematica Training and Consulting
hay at
Voice: +44 (0)116 271 4198
Fax: +44 (0)870 164 0565

  • Prev by Date: Announcement: QR Streams and MathDirect
  • Next by Date: RE: Re: Making a large matrix
  • Previous by thread: RE: Sqrt and Listability
  • Next by thread: Re: Sqrt and Listability