Cadabra
a field-theory motivated approach to computer algebra

distribute

Distribute factors over sums.
Rewrite a product of sums as a sum of products, as in \begin{equation*} a\,(b+c) \rightarrow a\,b + a\,c\, . \end{equation*} This would read
ex:=a (b+c); distribute(_);
\(\displaystyle{}a \left(b+c\right)\)
\(\displaystyle{}a b+a c\)
The algorithm in fact works on all objects which carry the Distributable property,
Op{#}::Distributable; ex:=Op(A+B); distribute(_);
\(\displaystyle{}\text{Attached property Distributable to }Op\left(\#\right).\)
\(\displaystyle{}Op\left(A+B\right)\)
\(\displaystyle{}Op\left(A\right)+Op\left(B\right)\)
The primary example of a property which inherits the Distributable property is PartialDerivative. The distribute algorithm thus also automatically writes out partial derivatives of sums as sums of partial derivatives,
\partial{#}::PartialDerivative; ex:=\partial_{m}{A + B + C}; distribute(_);
\(\displaystyle{}\text{Attached property PartialDerivative to }\partial{\#}.\)
\(\displaystyle{}\partial_{m}\left(A+B+C\right)\)
\(\displaystyle{}\partial_{m}{A}+\partial_{m}{B}+\partial_{m}{C}\)
Copyright © 2001-2024 Kasper Peeters
Questions? info@cadabra.science