Ask Your Question

Bizarre error

asked 2014-11-13 13:22:49 -0600

foliot gravatar image

updated 2015-01-13 14:26:44 -0600

FrédéricC gravatar image

I'm sorry that the function in question is rather messy, but the problem is rather specific. I'm setting a constant 'c' and evaluating the local maximum of a function like so:

c = 1E6
find_local_maximum(lambda f: abs(1000*(2*pi*f*i)/(0.1*(2*pi*f*i)^2+1000*(2*pi*f*i)+c)), 1000, 3000)

In this case, I get the expected output. If I set c = 1E7, or a nearby value, like c = 1.123E7 or c = 3E7, I get the following error:

RuntimeError: ECL says: THROW: The catch MACSYMA-QUIT is undefined.

Now, if I set c = 5E7or c = 1E8, I get no error.

It's also worth noting that find_local_minimum with the exact same set of values and function does not have this same issue. Finally, the type of c is sage.rings.real_mpfr.RealLiteral in each case.

What could be causing this problem? Is there a workaround or a potential bug fix?

edit retag flag offensive close merge delete

1 answer

Sort by » oldest newest most voted

answered 2014-11-14 16:58:44 -0600


I got the same problem (using sage-6.4).

At least, here is a workaround using fast_callable (which is also much faster)

sage: expr = abs(1000*(2*pi*f*i)/(0.1*(2*pi*f*i)^2+1000*(2*pi*f*i)+c))
sage: g = fast_callable(expr.subs(c=1E6), domain=CDF, vars=[f])
sage: find_local_maximum(g, 1000, 3000)
(1.0, (1591.549431507781+0j))
sage: g = fast_callable(expr.subs(c=1E7), domain=CDF, vars=[f])
sage: find_local_maximum(g, 1000, 3000)
(1.0, (1591.549431507781+0j))

fast_callable somehow tries to compile your expression in a fast function. If you intend to evaluate a lot an expression it is always a good idea.

One annoying thing is that you need to declare the function to be over complex because you use i in your formula.


edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2014-11-13 13:22:49 -0600

Seen: 159 times

Last updated: Nov 14 '14