# Distribute

Distribute[f[x1,x2,]]

distributes f over Plus appearing in any of the xi.

Distribute[expr,g]

distributes over g.

Distribute[expr,g,f]

performs the distribution only if the head of expr is f.

# Details

• Distribute effectively implements the distributive law for operators f and g.
• Distribute explicitly constructs the complete result of a distribution; Expand, on the other hand, builds up results iteratively, simplifying at each stage.
• Distribute[expr,g,f,gp,fp] gives gp and fp in place of g and f respectively in the result of the distribution. »

# Examples

open allclose all

## Basic Examples(3)

Apply the distributive law:

Distribute f over Plus:

Distribute f over g:

## Scope(4)

By default, distribute over Plus:

Distribute only a product of sums:

Distributive laws for logical operators:

Apply the distributive law to arbitrary operators:

## Generalizations & Extensions(1)

Distribute f over g to give fp and gp:

## Applications(5)

Expand symbolic matrix and vector expressions:

Apply the distributive law with any operator:

Find the list of all possible combinations of elements:

Generate a powerset:

Find intermediate terms from a direct application of the distributive law:

## Properties & Relations(3)

For pure products, Distribute gives the same results as Expand:

PowerExpand corresponds to distribution over Times:

Outer forms the same combinations of all elements, but in a nested structure:

## Possible Issues(1)

This use of Distribute does not give the expected result:

The reason is that the argument is evaluated first and the product vanishes:

Prevent evaluation of the argument before Distribute sees it:

## Neat Examples(1)

Find all possible sums of sublists of a list:

Introduced in 1988
(1.0)