1 | initial version |

It seems that the units end up in `sqrt()`

expressions. Even if you have something like `sqrt(second^2)`

, Sage does not simplify this automatically. This is a bug caused by the fact that `second`

is a symbolic variable and unless you explicitly state the domain for a variable it is assumed to be complex. For a complex variable `x`

, we can't say that `sqrt(x^2) = x`

. But if `x > 0`

, we can:

```
sage: var('y', domain='positive')
y
sage: sqrt(y^2)
y
sage: sqrt(x^2)
sqrt(x^2)
```

There is also the fact that `sqrt()`

only performs trivial simplifications automatically. This is not simplified for instance:

```
sage: sqrt(y^2/(x+1))
sqrt(y^2/(x + 1))
```

Because of another bug, even though we already declared `y > 0`

, we need to state this to Maxima before we can simplify further:

```
sage: t = sqrt(y^2/(x+1))
sage: t.simplify_radical()
abs(y)/sqrt(x + 1)
sage: assume(y > 0)
sage: t.simplify_radical()
y/sqrt(x + 1)
```

You might be able to work around your problems by combining some of the tricks above. It would be great if someone files a ticket to declare units as positive.

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.