Logical and Piecewise Functions
Nested logical and piecewise functions can be expanded out much like nested arithmetic functions. You can do this using
LogicalExpand and
PiecewiseExpand.
Expanding out logical and piecewise functions.
LogicalExpand puts logical expressions into a standard
disjunctive normal form (DNF), consisting of an OR of ANDs.
By default, Mathematica leaves this expression unchanged.
| Out[1]= |  |
|
| Out[2]= |  |
|
LogicalExpand works on all logical functions, always converting them into a standard OR of ANDs form. Sometimes the results are inevitably quite large.
Xor can be expressed as an OR of ANDs.
| Out[3]= |  |
|
Any collection of nested conditionals can always in effect be flattened into a
piecewise normal form consisting of a single
Piecewise object. You can do this in
Mathematica using
PiecewiseExpand.
By default, Mathematica leaves this expression unchanged.
| Out[4]= |  |
|
| Out[5]= |  |
|
Functions like
Max and
Abs, as well as
Clip and
UnitStep, implicitly involve conditionals, and combinations of them can again be reduced to a single
Piecewise object using
PiecewiseExpand.
This gives a result as a single Piecewise object.
| Out[6]= |  |
|
With x assumed real, this can also be written as a Piecewise object.
| Out[7]= |  |
|
Functions like
Floor,
Mod and
FractionalPart can also be expressed in terms of
Piecewise objects, though in principle they can involve an infinite number of cases.
Without a bound on x, this would yield an infinite number of cases.
| Out[8]= |  |
|
Mathematica by default limits the number of cases that
Mathematica will explicitly generate in the expansion of any single piecewise function such as
Floor at any stage in a computation. You can change this limit by resetting the value of
$MaxPiecewiseCases.