1 | initial version |

It seems to work for me:

```
sage: load "exp.spyx"
Compiling exp.spyx...
sage: time pollard_rho(next_prime(10**6)*previous_prime(10**7))
CPU times: user 0.23 s, sys: 0.01 s, total: 0.23 s
Wall time: 0.24 s
1000003
```

I'm a little puzzled, though, because the error message you show doesn't seem to correspond to the line in your source, namely that in the code you put up it says "`sage.all.mod(sage.all.mod(y,n)**2+1,n)**2+1"`

but the error message points to a line of code reading 2+1,n)**2+1", but the error message is pointing to `y = sage.all.mod(sage.mod(y,n)**2+1,n)**2+1`

, without an ".all." between sage and mod, so it seems to be looking in the module "sage" for the function mod.

For what it's worth, that's exactly the error message I get if I remove the ".all".

2 | No.2 Revision |

It seems to work for me:

```
sage: load "exp.spyx"
Compiling exp.spyx...
sage: time pollard_rho(next_prime(10**6)*previous_prime(10**7))
CPU times: user 0.23 s, sys: 0.01 s, total: 0.23 s
Wall time: 0.24 s
1000003
```

I'm a little puzzled, though, because the error message you show doesn't seem to correspond to the line in your source, namely that in the code you put up it says "`sage.all.mod(sage.all.mod(y,n)**2+1,n)**2+1"`

but the error message points to a line of code reading ~~ 2+1,n)**2+1", but the error message is pointing to ~~"`y = sage.all.mod(sage.mod(y,n)**2+1,n)**2+1`

~~, ~~", without an ".all." between sage and mod, so it seems to be looking in the module "sage" for the function mod.

For what it's worth, that's exactly the error message I get if I remove the ".all".

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.