signum() not in math?

Dinu Gherman gherman at darwin.in-berlin.de
Sat Oct 13 10:43:07 CEST 2001


Tim Peters wrote:
> 
> [Dinu Gherman]
> > The question is: why isn't sign() in the math module (or, may-
> > be built-in)? Is it too trivial? I'm inclined to claim no more
> > so than, say, abs().
> 
> It's certainly far less used than abs().
> 
> > ...
> > Nobody needing it? Surprising.
> 
> That too, I think:  in part of your msg I snipped, you confessed 
> <wink> to not finding a msg about it more recent than nearly 
> 3 years old.


Thanks, Tim!

I'm not quite convinced, though, this should be the ultimate 
reason! The more fundamental question behind these issues is: 
Can someone expect from the Python standard library, too, 'only' 
those 90% of functionality needed by 'the crowd' and be treated 
with regret when not belonging to it, especially when the matter 
is so trivial?

The reason for people not complaining about the absence of the
sign() function need not necessarily be that they use something
like tanh() more often (I doubt so), but simply because they 
can write sign() with far less difficulty than tanh().

One can argue if this is a good thing. Newbies might learn some-
thing by writing sign() themselves, but will probably wonder why 
they *have* to? (While nobody expects to find the Riemann Zeta 
function in the math module, that you get in Mathematica...) 

In math textbooks sign() is typically introduced just before or 
after abs(), which raises the question why Python has chosen to 
implement only abs() and not only sign(), especially as they can 
be expressed in terms of each other? Orthogonal design? Ok, but 
the same is true for sin() and cos() and still, both are there 
in the math module!

As the ActiveState Python cookbook comes closer to being printed
it would be sort of embarassing to see a recipe therein for wri-
ting a signum function, simply because you need it, wouldn't it?

Expecting-the-Spanish-Inquisition'ly,

Dinu

--
Dinu C. Gherman
................................................................
UN Resolution 42/159 on fighting international terrorism (1987),
adopted by 153-2 votes (US and Israel against):
       http://www.un.org/documents/ga/res/42/a42r159.htm



More information about the Python-list mailing list