Skip to content

Piecewise ​

A conditional value: List of {value, condition} pairs, tried in order, plus a defaultdefault (0 when omitted) for when none holds. Provided by @enumeratio/analytic.

✓ checked against that system · ! checked, with disagreements (hover a chip)Wolfram LanguagePiecewise!
Piecewise(pairs)pairs is a List of two-element Lists {value, condition}; the default is 0.
Piecewise(pairs, default)same, with an explicit fallback value.
Typed signatures
TypePackageApplies
(list, expression?) -> expressionanalyticalways

Domain: Analytic

Details
  • Conditions are tried in list order via ce.verify (a three-valued check against the current assumptions). The first one known True wins, PROVIDED every condition before it is known False — a Piecewise with an undecided earlier condition stays symbolic rather than guessing which branch is really first.
  • A condition known False is dropped; if every condition is eliminated this way, the result is defaultdefault.
  • PiecewiseExpand produces this head from Abs, Sign, UnitStep, Clip, and 2-argument Max/Min.

Examples

1 more kept as data, checked against the oracles
Basic #

with xx still symbolic, both branches are undecided and the call stays as-is

live ↗
InPiecewise([[1,x<0],[2,x≥0]])\mathrm{Piecewise}(\bigl\lbrack\bigl\lbrack1, x\lt0\bigr\rbrack, \bigl\lbrack2, x≥0\bigr\rbrack\bigr\rbrack)OutPiecewise([[1,x<0],[2,0≤x]])\mathrm{Piecewise}(\bigl\lbrack\bigl\lbrack1, x\lt0\bigr\rbrack, \bigl\lbrack2, 0≤x\bigr\rbrack\bigr\rbrack)

at x=−5x = -5 the first condition is True

live ↗
InReplaceAll(Piecewise([[1,x<0],[2,x≥0]]),Rule(x,−5))\mathrm{ReplaceAll}(\mathrm{Piecewise}(\bigl\lbrack\bigl\lbrack1, x\lt0\bigr\rbrack, \bigl\lbrack2, x≥0\bigr\rbrack\bigr\rbrack), \mathrm{Rule}(x, -5))Out11

at x=5x = 5 the second condition is True

live ↗
InReplaceAll(Piecewise([[1,x<0],[2,x≥0]]),Rule(x,5))\mathrm{ReplaceAll}(\mathrm{Piecewise}(\bigl\lbrack\bigl\lbrack1, x\lt0\bigr\rbrack, \bigl\lbrack2, x≥0\bigr\rbrack\bigr\rbrack), \mathrm{Rule}(x, 5))Out22

symbolic xx again stays undecided, default kept as given

live ↗
InPiecewise([[x2,x<0]],99)\mathrm{Piecewise}(\bigl\lbrack\bigl\lbrack x^2, x\lt0\bigr\rbrack\bigr\rbrack, 99)OutPiecewise([[x2,x<0]],99)\mathrm{Piecewise}(\bigl\lbrack\bigl\lbrack x^2, x\lt0\bigr\rbrack\bigr\rbrack, 99)
Scope #

A double integral over the plane remains unevaluated

live ↗
In∫−∞∞∫−∞∞ ⁣Piecewise([[1,x2+y2<1]]) dxdy\int_{-∞}^{∞}\int_{-∞}^{∞}\!\mathrm{Piecewise}(\bigl\lbrack\bigl\lbrack1, x^2+y^2\lt1\bigr\rbrack\bigr\rbrack)\, \mathrm{d}x \mathrm{d}yOut∫−∞∞ ⁣∫−∞∞ ⁣Piecewise([[1,x2+y2<1]]) dy dx\int_{-∞}^{∞}\!\int_{-∞}^{∞}\!\mathrm{Piecewise}(\bigl\lbrack\bigl\lbrack1, x^2+y^2\lt1\bigr\rbrack\bigr\rbrack)\, \mathrm{d}y\, \mathrm{d}x
live ↗
InPiecewise([[e1,True],[e2,d2],[e3,d3]],k)\mathrm{Piecewise}(\bigl\lbrack\bigl\lbrack\mathrm{e1}, \mathrm{True}\bigr\rbrack, \bigl\lbrack\mathrm{e2}, \mathrm{d2}\bigr\rbrack, \bigl\lbrack\mathrm{e3}, \mathrm{d3}\bigr\rbrack\bigr\rbrack, k)Oute1\mathrm{e1}
live ↗
InPiecewise([[e1,d1],[e2,d2],[e3,True],[e4,d4],[e5,d5]],k)\mathrm{Piecewise}(\bigl\lbrack\bigl\lbrack\mathrm{e1}, \mathrm{d1}\bigr\rbrack, \bigl\lbrack\mathrm{e2}, \mathrm{d2}\bigr\rbrack, \bigl\lbrack\mathrm{e3}, \mathrm{True}\bigr\rbrack, \bigl\lbrack\mathrm{e4}, \mathrm{d4}\bigr\rbrack, \bigl\lbrack\mathrm{e5}, \mathrm{d5}\bigr\rbrack\bigr\rbrack, k)OutPiecewise([[e1,d1],[e2,d2],[e3,True]],k)\mathrm{Piecewise}(\bigl\lbrack\bigl\lbrack\mathrm{e1}, \mathrm{d1}\bigr\rbrack, \bigl\lbrack\mathrm{e2}, \mathrm{d2}\bigr\rbrack, \bigl\lbrack\mathrm{e3}, \mathrm{True}\bigr\rbrack\bigr\rbrack, k)
live ↗
InPiecewise([[e1,d1],[e2,d2],[e3,False],[e4,d4],[e5,d5]],k)\mathrm{Piecewise}(\bigl\lbrack\bigl\lbrack\mathrm{e1}, \mathrm{d1}\bigr\rbrack, \bigl\lbrack\mathrm{e2}, \mathrm{d2}\bigr\rbrack, \bigl\lbrack\mathrm{e3}, \mathrm{False}\bigr\rbrack, \bigl\lbrack\mathrm{e4}, \mathrm{d4}\bigr\rbrack, \bigl\lbrack\mathrm{e5}, \mathrm{d5}\bigr\rbrack\bigr\rbrack, k)OutPiecewise([[e1,d1],[e2,d2],[e4,d4],[e5,d5]],k)\mathrm{Piecewise}(\bigl\lbrack\bigl\lbrack\mathrm{e1}, \mathrm{d1}\bigr\rbrack, \bigl\lbrack\mathrm{e2}, \mathrm{d2}\bigr\rbrack, \bigl\lbrack\mathrm{e4}, \mathrm{d4}\bigr\rbrack, \bigl\lbrack\mathrm{e5}, \mathrm{d5}\bigr\rbrack\bigr\rbrack, k)
About
Examples9
Checked againstWolfram Language 5 agree2 differ
CrosswalkWolfram Language