# Generic and Non-Generic Cases

This gives a result for the integral of

that is valid for almost all values of

.

Out[1]= | |

For the special case of

, however, the correct result is different.

Out[2]= | |

The overall goal of symbolic computation is typically to get formulas that are valid for many possible values of the variables that appear in them. It is however often not practical to try to get formulas that are valid for absolutely every possible value of each variable.

*Mathematica* always replaces

by

.

Out[3]= | |

If

is equal to 0, however, then the true result is not 0.

This construct treats both cases, but would be quite unwieldy to use.

Out[5]= | |

If *Mathematica* did not automatically replace by 0, then few symbolic computations would get very far. But you should realize that the practical necessity of making such replacements can cause misleading results to be obtained when exceptional values of parameters are used.

The basic operations of *Mathematica* are nevertheless carefully set up so that whenever possible the results obtained will be valid for almost all values of each variable.

is not automatically replaced by

.

Out[6]= | |

If it were, then the result here would be

, which is incorrect.

Out[7]= | |

This makes the assumption that

is a positive real variable, and does the replacement.

Out[8]= | |