# PiecewiseExpand

PiecewiseExpand[expr]

expands nested piecewise functions in expr to give a single piecewise function.

PiecewiseExpand[expr,assum]

expands piecewise functions using assumptions.

PiecewiseExpand[expr,assum,dom]

does the expansion over the domain dom.

# Details and Options • The result from PiecewiseExpand[expr] is normally Piecewise[{e1,e2,}] where none of the ei contain Piecewise.
• PiecewiseExpand converts such functions as If, Which, Abs, Max, UnitStep, and Floor to Piecewise.
• PiecewiseExpand[expr,assum,dom] assumes that both the input and output of every function appearing in expr are in the domain dom.
• Common choices for dom are Reals and Complexes.
• PiecewiseExpand attempts to simplify combinations of conditions that appear in Piecewise.
• The following options can be given:
•  Assumptions \$Assumptions default assumptions to append to assum Method Automatic method to use TimeConstraint 30 for how many seconds to try simplifying each set of conditions

# Examples

open allclose all

## Basic Examples(1)

Expand a nested piecewise expression to a single piecewise function:

Convert a composition of special piecewise functions to a single Piecewise object:

## Scope(5)

Expand a piecewise function with piecewise values and piecewise conditions:

Convert Max to Piecewise:

Expand functions with infinite numbers of pieces over a finite region:

Expand a Boolean expression that implies a finite number of possible cases:

Expand assuming real parameters:

## Options(11)

### Assumptions(3)

Assumptions can be given both as an argument and as an option value:

The default value of Assumptions option is \$Assumptions:

When assumptions are given as an argument, \$Assumptions is used as well:

Specifying assumptions as an option value prevents using \$Assumptions:

### Method(6)

The Method option allows local setting of system options related to piecewise functions:

With the default condition simplifier, some conditions may not be simplified:

This uses Reduce to simplify conditions:

By default, PiecewiseExpand uses Together to simplify values:

Trigonometric identities are not recognized:

This uses Simplify to simplify values:

By default, conditions produced by PiecewiseExpand are not disjoint and cannot be reordered:

This makes the conditions disjoint:

By default, all special piecewise functions are converted to Piecewise:

This converts If and UnitStep, but not Max:

By default, explicitly Boolean valued piecewise functions are given as Boolean expressions:

With "BooleanResult"->False, the expression is represented using Piecewise:

With "BooleanResult"->True, all values are assumed to be Boolean:

### TimeConstraint(2)

Simplification of a piecewise function can take a long time:

If neither of the cases can be eliminated, checking this may still take a long time:

This restricts the time used for a single condition check; the result may be less simplified:

## Properties & Relations(11)

PiecewiseExpand returns a single Piecewise object:

Min, Max, UnitStep, and Clip are piecewise functions of real arguments:

Abs, Sign, and Arg are piecewise functions when their arguments are assumed to be real:

KroneckerDelta and DiscreteDelta are piecewise functions of complex arguments:

Boole is a piecewise function of a Boolean argument:

If, Which, and Switch can be interpreted as piecewise functions:

Convert Floor, Ceiling, Round, IntegerPart, and FractionalPart for finite ranges:

Convert Mod and Quotient when the number of cases is finite:

UnitBox and UnitTriangle are piecewise functions of real arguments:

Convert SquareWave, TriangleWave, and SawtoothWave for finite ranges:

BernsteinBasis and BSplineBasis are piecewise functions of real arguments:

## Possible Issues(1)

The number of cases in the expanded form may grow exponentially:

The  element of sums is a sum of piecewise functions with two cases each:

The number of cases in the expanded form of the  element of sums is :

This shows graphs of summands in the fourth element of sums; their sum is shown in red: