Integrate with If and Which

*To*: mathgroup at smc.vnet.net*Subject*: [mg20167] Integrate with If and Which*From*: "L. Dwynn Lafleur" <lafleur at usl.edu>*Date*: Sun, 3 Oct 1999 21:07:36 -0400*Organization*: University of Louisiana at Lafayette*Sender*: owner-wri-mathgroup at wolfram.com

It has been pointed out before in this newsgroup that Mathematica integrates some conditional functions but not others. For example, consider the following text translation of a notebook from version 4: In[1]:= f[u_] := If[u < 0, u, u^2]; g[u_] := Which[u < 0, u, u >= 0, u^2]; In[3]:= Integrate[f[u], {u, -1, 1}] Out[3]= -(1/6) In[4]:= Integrate[g[u], {u, -1, 1}] Out[4]= Integrate[Which[u < 0, u, u >= 0, u^2], {u, -1, 1}] Functions f[u] and g[u] are mathematically identical integrands, but Mathematica integrates only the former. You can force numerical evaluation of the latter by wrapping it in N[]. My question is, "What is the fundamental difference between If and Which that makes Mathematica treat them differently?" As I said above, this Mathematica "feature" has been pointed out before and ways to avoid it have been described, but I don't recall a post giving the reason for the behavior. I guess I am just curious to know if there is a logical principle involved. Dwynn -- ========================================== L. Dwynn Lafleur Professor of Physics University of Louisiana at Lafayette lafleur at usl.edu ==========================================