[Matrix-SIG] Power of trigs

Andrey Kaliazin KaliazinA@cardiff.ac.uk
Thu, 19 Mar 1998 15:32:25 -0000


-----Original Message-----
From: Dave Stinchcombe <dars@soton.ac.uk>
To: matrix-sig@python.org <matrix-sig@python.org>
Date: 19 March 1998 11:49
Subject: [Matrix-SIG] Power of trigs


>Hi again,
>This morning I needed to write a quick and easy root finder, so obviously I
>grabbed Numeric Python.
>
>I have a problem though. I wrote the line:
>Numeric.power(Numeric.cos(phi),1-2*nus)
>
>where nus is a constant of 0.3. phi is an array holding a list of values
>I'm searching through. The problem comes that this line fails when phi is
>greater than pi/2.
>
>Now obviously this is due to the fact I'm trying to calculate a complex (or
>at the very least an imaginary) number. But I want to. Can any one give
>some suggestions as to how to cope, or in some way make python also believe
>in complex numbers.
>
Decision seems to be simple in this case -
just convert explicitly first argument to a complex number format:
>>> pow(-1,  1.0)
Traceback (innermost last):
  File "<stdin>", line 1, in ?
ValueError: negative number to float power

while:
>>> pow(complex(-1),1.0)
(-1+0j)
or
>>> pow(-2+0j,0.5)
(8.65927457072e-017+1.41421356237j)

But I am glad to rise again the question of weak argument's checking  in
pow().
I do not want always to check validity of all possible combinations of input
arguments.
I just want pow() to return most suitable and valid result.


Andy K.