Bell polynomials come up naturally in a variety of contexts: combinatorics, analysis, statistics, etc. Unfortunately, the variations on Bell polynomials are confusingly named.

## Analogy with differential equations

There are Bell polynomials of one variable and Bell polynomials of several variables. The latter are sometimes called “partial” Bell polynomials. In differential equations, “ordinary” means univariate (ODEs) and “partial” means multivariate (PDEs). So if “partial” Bell polynomials are the multivariate form, you might assume that “ordinary” Bell polynomials are the univariate form. Unfortunately that’s not the case.

It seems that the “partial” in the context of Bell polynomials was taken from differential equations, but the term “ordinary” was not. Ordinary and partial are not opposites in the context of Bell polynomials. A Bell polynomial can be ordinary *and* partial!

## Analogy with generating functions

“Ordinary” in this context is the opposite of “exponential,” not the opposite of “partial.” The analogy is with generating functions, not differential equations. The ordinary generating function of a sequence multiplies the *n*th term by *x*^{n} and sums. The exponential generating function of a sequence multiplies the *n*th term by *x*^{n}/*n*! and sums. For example, the ordinary generating function for the Fibonacci numbers is

while the exponential generating function is

where

The definitions of exponential and ordinary Bell polynomials are given below, but the difference between the two that I wish to point out is that the former divides the *k*th polynomial argument by *k*! while the latter does not. They also differ by a scaling factor. The exponential form of *B*_{n,k} has a factor of *n*! where the ordinary form has a factor of *k*!.

## “Ordinary” as a technical term

Based on the colloquial meaning of “ordinary” you might assume that it is the default. And indeed that is the case with generating functions. Without further qualification, generating function means ordinary generating function. You’ll primarily see explicit references to *ordinary* generating functions in a context where it’s necessary to distinguish them from some other kind of generating function. Usually the word “ordinary” will be written in parentheses to emphasize that an otherwise implicit assumption is being made explicit. In short, “ordinary” and “customary” correspond in the context of generating functions.

But in the context of Bell polynomials, it seems that the exponential form is more customary. At least in some sources, an unqualified reference to Bell polynomials refers to the exponential variety. That’s the case in SymPy where the function `bell()`

implements exponential Bell polynomials and there is no function to compute ordinary Bell polynomials.

## Definitions

Now for the actual definitions. We can make our definitions more concise if we first define multi-index notation. A **multi-index**

is a set of *n* non-negative integers. The **norm** of a multi-index is defined by

and the **factorial** of a multi-index is defined by

If *x* = (*x*_{1}, *x*_{2}, …, *x*_{n}) is an *n*-tuple of real numbers then *x* raised to the **power** of a multi-index α is defined by

The **ordinary Bell polynomial** *B*_{n,k} is

where *x* is a (*n* – *k* +1)-tuple and α ranges over all multi-indices subject to two constraints: the norm of α is *k* and

The **exponential Bell polynomials** can then be defined in terms of the ordinary bell polynomials by

This a very nice, grounded explanation after trawling through the web for ages to find something that explain Stirling numbers simply.