One possibility would be to wrap the call to .n() in a try-except block. David
On Sun, May 12, 2013 at 7:03 AM, <[email protected]> wrote: > I think there is a conceptual problem with function returning <float>s. > > Consider the following: > > def find_roots( func,l,r ): > tol = 1e-10 > try: > result = find_root( func,l,r ) ) > except RuntimeError: > return [] > return find_roots( func,l,result-tol )+[ result ]+find_roots( > func,result+tol,r ) > > Ignoring, for the moment, that find_root returns a <float>, too (and > therefore is a problem by itsself). > > If "func" is a function which does not automatically evaluate to a > number (where only evalf_func evaluates), we need to write > > [...] find_root( lambda x: func.n( x ),l,r ) > > instead, because otherwise find_root crashes. But then, this doesn't > work if func returns a <float>, because float has no .n( ). > > So what's the solution to this dilemma? I think this is only permanently > solved by making sure functions generally return a Sage-type > > -- > You received this message because you are subscribed to the Google Groups > "sage-devel" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/sage-devel?hl=en. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sage-devel?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
