Hi, It takes too long to check whether x is in a list in new symbolics
--------- sage: var('x,x1,x2,x3,x4') (x, x1, x2, x3, x4) sage: f = function('f') sage: mylist = [x1,x2,x3,x4,f(x1),f(x2),f(x3),f(x4)] sage: timeit('x in mylist') 5 loops, best of 3: 461 ms per loop -------- If your program needs to check it couple of more times ---------- sage: timeit('x in mylist') 5 loops, best of 3: 1.26 s per loop sage: timeit('x in mylist') 5 loops, best of 3: 3.4 s per loop ---------- For a comparison --------- sage: timeit('x1 in mylist') 625 loops, best of 3: 473 ns per loop --------- Reason for this huge discrepancy stems from the fact that except for last example, in all previous cases maxima is called to check the equality. Thus it seems, new symbolics depends on maxima for basic operations even now. I don't know the rationale behind this design given pynac has a method to compare two symbolic expression (ex1.is_equal(ex2)). In any case, this design ensures writing a program in new symbolics where some basic tests like "if x in list" needs to done, is no better than old symbolics. Cheers, Golam --~--~---------~--~----~------------~-------~--~----~ To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---