Charles R Harris wrote:
> On 10/31/07, Robert Kern <[EMAIL PROTECTED]> wrote:
>> Charles R Harris wrote:
>>> On 10/31/07, Alan G Isaac <[EMAIL PROTECTED]> wrote:
>>>>>>> 1.0**numpy.array([1,2,3])
>>>> array([ 1.,  1.,  1.])
>>>>>>> 1.0**numpy.mat([1,2,3])
>>>> Traceback (most recent call last):
>>>>   File "<stdin>", line 1, in <module>
>>>> TypeError: unsupported operand type(s) for ** or pow(): 'float' and 
>>>> 'matrix'
>>>>
>>>> Why the restriction for matrices?
>>> Looks like it just got overlooked. It works fine for 2D arrays.
>>>
>>> In [11]: 1.0**eye(3)
>>> Out[11]:
>>> array([[ 1.,  1.,  1.],
>>>        [ 1.,  1.,  1.],
>>>        [ 1.,  1.,  1.]])
>> For ndarrays, it does elementwise exponentiation, so it is neither here nor
>> there with respect to matrices. What is the definition of a scalar raised to 
>> a
>> matrix power? I don't ever recall seeing one.
> 
> I suppose the usual:
> 
> a**m = exp(ln(a)*m)
> 
> but that isn't the broadcast version.

Ah, yes. Of course. How silly of me.

That raises the question of how to calculate the bloody thing, though. We have
three implementations of expm() in scipy.linalg.matfuncs.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://projects.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to