1 | initial version |

First, it seems that the solutions provided by Sage are correct:

```
sage: S = [s.rhs() for s in h(x).solve(x)]
sage: S
[-1/2*sqrt(-2*sqrt(5) + 10) - 1,
1/2*sqrt(-2*sqrt(5) + 10) - 1,
-1/2*sqrt(2*sqrt(5) + 6) + 1,
1/2*sqrt(2*sqrt(5) + 6) + 1]
sage: [h(s).full_simplify() for s in S]
[0, 0, 0, 0]
```

Then it seems that the numerical values are the same as the one provided by wolfram:

```
sage: [RR(s) for s in S]
[-2.17557050458495, 0.175570504584946, -0.618033988749895, 2.61803398874989]
```

Actually, they are not written the same way but they are equal:

```
sage: bool(-1/2*sqrt(-2*sqrt(5) + 10) - 1 == (-2 - sqrt(2*(5 - sqrt(5))))/2)
True
sage: bool(1/2*sqrt(-2*sqrt(5) + 10) - 1 == (-2 + sqrt(2*(5 - sqrt(5))))/2)
True
sage: bool(-1/2*sqrt(2*sqrt(5) + 6) + 1 == (1 - sqrt(5))/2)
True
sage: bool(1/2*sqrt(2*sqrt(5) + 6) + 1 == (3 + sqrt(5))/2)
True
```

2 | No.2 Revision |

First, it seems that the solutions provided by Sage are correct:

```
sage: S = [s.rhs() for s in h(x).solve(x)]
sage: S
[-1/2*sqrt(-2*sqrt(5) + 10) - 1,
1/2*sqrt(-2*sqrt(5) + 10) - 1,
-1/2*sqrt(2*sqrt(5) + 6) + 1,
1/2*sqrt(2*sqrt(5) + 6) + 1]
sage: [h(s).full_simplify() for s in S]
[0, 0, 0, 0]
```

~~Then ~~Then, it seems that the numerical values are the same as the ~~one ~~ones provided by wolfram:

```
sage: [RR(s) for s in S]
[-2.17557050458495, 0.175570504584946, -0.618033988749895, 2.61803398874989]
```

Actually, they are not written the same way but they are equal:

```
sage: bool(-1/2*sqrt(-2*sqrt(5) + 10) - 1 == (-2 - sqrt(2*(5 - sqrt(5))))/2)
True
sage: bool(1/2*sqrt(-2*sqrt(5) + 10) - 1 == (-2 + sqrt(2*(5 - sqrt(5))))/2)
True
sage: bool(-1/2*sqrt(2*sqrt(5) + 6) + 1 == (1 - sqrt(5))/2)
True
sage: bool(1/2*sqrt(2*sqrt(5) + 6) + 1 == (3 + sqrt(5))/2)
True
```

3 | No.3 Revision |

First, it seems that the solutions provided by Sage are correct:

```
sage: S = [s.rhs() for s in h(x).solve(x)]
sage: S
[-1/2*sqrt(-2*sqrt(5) + 10) - 1,
1/2*sqrt(-2*sqrt(5) + 10) - 1,
-1/2*sqrt(2*sqrt(5) + 6) + 1,
1/2*sqrt(2*sqrt(5) + 6) + 1]
sage: [h(s).full_simplify() for s in S]
[0, 0, 0, 0]
```

Then, it seems that the numerical values are the same as the ones provided by wolfram:

```
sage: [RR(s) for s in S]
[-2.17557050458495, 0.175570504584946, -0.618033988749895, 2.61803398874989]
```

Actually, they are not written the same way but they are equal:

```
sage: bool(-1/2*sqrt(-2*sqrt(5) + 10) - 1 == (-2 - sqrt(2*(5 - sqrt(5))))/2)
True
sage: bool(1/2*sqrt(-2*sqrt(5) + 10) - 1 == (-2 + sqrt(2*(5 - sqrt(5))))/2)
True
sage: bool(-1/2*sqrt(2*sqrt(5) + 6) + 1 == (1 - sqrt(5))/2)
True
sage: bool(1/2*sqrt(2*sqrt(5) + 6) + 1 == (3 + sqrt(5))/2)
True
```

So, without having to dig into its closed source code, we can see that wolfram is not completely wrong in that case :D That said, it is not advised to use alpha releases for production :P

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.