On Tuesday, October 16, 2012 1:44:59 PM UTC-4, Dan Drake wrote:
>
> This is strange: 
>
> sage: import mpmath 
> sage: exp(mpmath.mpf('-0.0712959029907420240935')) 
>
> raises "TypeError: 'int' object is not callable". I can, of course, use 
> mpmath.exp on the number, but I would expect automatic conversion. 
>
> This works, though: 
>
> sage: exp(-0.0712959029907420240935) 
> 0.93118631054266770709 
>
> And if I wrap the mpf in "N( )" to explicitly convert to a regular Sage 
> float, it works. 
>
>
This will call self.exp(), and apparently mpf numbers don't exponentiate 
with that function, but instead:
 
    def exp(self):
        """
        Returns the binary exponent of self ::

            sage: from mpmath import mpf
            sage: mpf(1/64.).exp
            -6
        """
        return self._mpf_[2]

So there is a name conflict that exp(a) calls a.exp() but in mpmath this 
does something totally different.

sage: a = mpmath.mpf('-0.0712959029907420240935')
sage: a.exp
-56
sage: type(a.exp)
<type 'int'>

Yup, can't call that.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To post to this group, send email to sage-support@googlegroups.com.
To unsubscribe from this group, send email to 
sage-support+unsubscr...@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-support?hl=en.


Reply via email to