Ask Your Question

# Revision history [back]

### Why can Sage not compute this efficiently?

Consider this function:

 def A261042_list(len):
f = lambda k: x*2*(k+1)*(k+2)
g = [0]*len
g[len-1] = 1
for k in range(len-2,-1,-1):
g[k] = 1 - f(k)/(f(k)-1/g[k+1])
return taylor(g[0], x, 0, len-1).list()

A261042_list(6)


But taking larger arguments, for example A261042_list(16), it takes longer than I have patience to wait. In contrast Maple and Mathematica return immediately with small arguments like this.

Provided I have not made a mistake I do not ask for a workaround, I ask if this behavior is acknowledged as a bug.

 2 retagged tmonteil 25623 ●30 ●183 ●476 http://wiki.sagemath.o...

### Why can Sage not compute this efficiently?

Consider this function:

 def A261042_list(len):
f = lambda k: x*2*(k+1)*(k+2)
g = [0]*len
g[len-1] = 1
for k in range(len-2,-1,-1):
g[k] = 1 - f(k)/(f(k)-1/g[k+1])
return taylor(g[0], x, 0, len-1).list()

A261042_list(6)


But taking larger arguments, for example A261042_list(16), it takes longer than I have patience to wait. In contrast Maple and Mathematica return immediately with small arguments like this.

Provided I have not made a mistake I do not ask for a workaround, I ask if this behavior is acknowledged as a bug.

### Why can Sage not compute this efficiently?

Consider this function:

 def A261042_list(len):
f = lambda k: x*2*(k+1)*(k+2)
g = [0]*len
g[len-1] = 1
for k in range(len-2,-1,-1):
g[k] = 1 - f(k)/(f(k)-1/g[k+1])
return taylor(g[0], x, 0, len-1).list()

A261042_list(6)


But taking larger arguments, for example A261042_list(16), it takes longer than I have patience to wait. In contrast Maple and Mathematica return immediately with small arguments like this.

Provided I have not made a mistake I do not ask for a workaround, I ask if this behavior is acknowledged as a bug.

Edit: By the comments of vdelecroix we can write

def A261042_list(len):
f = lambda k: x*2*(k+1)*(k+2)
g = 1
for k in range(len-2,-1,-1):
g = (1-f(k)/(f(k)-1/g)).simplify_rational()
return taylor(g, x, 0, len-1).list()


On the other hand I am still not satisfied that we are forced to use 'simplify_rational' here.