# Why doesn't Abs simplify further?

Why does this:

Simplify[Abs[x + I], Element[x, Reals]]

give me

Abs[x + i]

Is there a way to force Mathematica to give me the following answer?

$\sqrt{x^2+1}$

-
@Kuba Thanks for the tip. But I'll wait for someone to tell me why the above doesn't work –  Priyatham Mar 29 at 8:39
The fastes way is to use ComplexExpand which assumes that all constants are real: ComplexExpand@Abs[I + x]. Default ComplexityFunction is LeafCount which gives 6 for Abs form and 9 for Sqrt, that's why it is left. –  Kuba Mar 29 at 8:55
closely related –  Kuba Mar 29 at 9:00

If you steal the wizard's explanation an apply it to your case

cf[e_] := 100 Count[e, _Abs, {0, Infinity}] + LeafCount[e]

Then

FullSimplify[Abs[x + I], x \[Element] Reals, ComplexityFunction -> cf]

(* Sqrt[x^2+1] *)

but once again I just copied and vaguely adapted the link provided by kuba

-
I understand that LeafCount gives the number of trees in the expression tree. Is there a place where I can read more about it and the ComplexityFunction? –  Priyatham Mar 29 at 13:58
–  chris Mar 29 at 14:27
how about if you Count[..,I,..]? may be more general if it works (sorry cant try frm here) –  george2079 Mar 29 at 15:17
@george2079 cf[e_] := 100 Count[e, _Complex, {0, Infinity}] + LeafCount[e] works too –  chris Mar 29 at 15:33
You can also type ComplexityFunction in the find button on the left above in the menu bar... –  chris Mar 29 at 20:03

How about using ComplexExpand

ComplexExpand[Abs[x + I]]

Gives:

Sqrt[1 + x^2]
-