       Re: Problems with easy simplifications

• To: mathgroup at smc.vnet.net
• Subject: [mg54162] Re: [mg54143] Problems with easy simplifications
• From: "David Park" <djmp at earthlink.net>
• Date: Sat, 12 Feb 2005 01:57:14 -0500 (EST)
• Sender: owner-wri-mathgroup at wolfram.com

```Antonio,

Check the Attributes of the If statement.

Attributes[If]
{HoldRest, Protected}

The second and third arguments are not evaluated. Why is this? Because
sometimes the not choosen branch might be an invalid expression that would
lead to an error message. Only the choosen branch is evaluated. In your
example Mathematica can't determine if x < a so it chooses none of the
branches and none of them are evaluated.

You could overcome this by changing your definition.

H[x_, a_, b_] := If[x < a, Evaluate[ a + b], Evaluate[a - b]]

H[x, 0, 0]
If[x < 0, 0, 0]

David Park

From: Antonio González [mailto:gonferh2o at esi.us.es]
To: mathgroup at smc.vnet.net

I have found some weird behaviors of Mathematica (5.0) related to the
simplifications of easy expressions.

Take, for instance the function

H[x_, a_, b_] = If[x < a, a + b, a - b]

If I try now to evaluate

H[x,0,0]

the result

If[x < 0, 0 + 0, 0 - 0]

(the values of a and b are irrelevat, a similar result is obtained, for
instance, with a=1, b= 2, or any integer, real or complex values). I
cannot force (at least in a simple way) Mathematica to make the addition
or the substraction. The action of Simplify or FullSimplify leaves the
expression unchanged while a Map of Simplify

MapAll[Simplify, H[x, 0, 0]]

produces

If[x < 0,
Simplify[Simplify + Simplify], Simplify[Simplify[
0] + Simplify[Simplify[-1] Simplify]]]

Something even worse happens if a use values already defined. For instance

c = 0; d = 0; H[x_] = If[x < c, c + d, c - d]

produces

If[x < 0, c + d, c - d]

In this case, the addition is not necessary.

c = 0; d = 0; H[x_] = If[x < c, c, d]

If[x < 0, c, d]

Similar problems arise using the function Which.

Any explanation or help with this malfunction would be welcome.

--

Antonio

(Eliminar el agua para responder por e-mail - Remove water to reply by
e-mail)

```

• Prev by Date: Re: Problems with easy simplifications
• Next by Date: Re: Problems with easy simplifications
• Previous by thread: Re: Problems with easy simplifications
• Next by thread: Re: Inverse error function for arguments close to 1