Todd polynomials $\mathrm{Td}_n(c_1,\dots,c_n)$
edit · history · discussion · files · long url · characteristic classes algebra polynomial
Polynomials
$n$ 
$\mathrm{Td}_n$
1:
1/2*c1
2:
1/12*c1^2 + 1/12*c2
3:
1/24*c1*c2
4:
-1/720*c1^4 + 1/180*c1^2*c2 + 1/240*c2^2 + 1/720*c1*c3 - 1/720*c4
5:
-1/1440*c1^3*c2 + 1/480*c1*c2^2 + 1/1440*c1^2*c3 - 1/1440*c1*c4
6:
1/30240*c1^6 - 1/5040*c1^4*c2 + 11/60480*c1^2*c2^2 + 1/12096*c1^3*c3 + 1/6048*c2^3 + 11/60480*c1*c2*c3 - 1/12096*c1^2*c4 - 1/60480*c3^2 - 1/6720*c2*c4 - 1/30240*c1*c5 + 1/30240*c6
7:
1/60480*c1^5*c2 - 1/12096*c1^3*c2^2 - 1/60480*c1^4*c3 + 1/12096*c1*c2^3 + 11/120960*c1^2*c2*c3 + 1/60480*c1^3*c4 - 1/120960*c1*c3^2 - 1/13440*c1*c2*c4 - 1/60480*c1^2*c5 + 1/60480*c1*c6
Definition
The entry is the homogeneous component $\mathrm{Td}_n(c_1,\dots,c_n)$ of the Todd class of a complex vector bundle, written as a polynomial in the Chern classes $c_i$ [1]. It is defined by the characteristic power series $Q(x)=x/(1-e^{-x})$ through Formula (1).
Parameters
$n$
—   degree ($n\geq 1$)
Formulas
(1)
$1+\sum_{n\geq1}\mathrm{Td}_n(c_1,c_2,\dots)=\prod_i Q(x_i)$, where the $x_i$ are the Chern roots and $c_j=e_j(x_1,x_2,\dots)$.
(2)
$Q(x)=\frac{x}{1-e^{-x}}=1+\frac{x}{2}+\frac{x^2}{12}-\frac{x^4}{720}+ \frac{x^6}{30240}+\cdots$ [2]. Equivalently $Q(x)=\sum_i B_i^+x^i/i!$, where $B_1^+=+\frac12$ and $B_i^+=B_i$ for $i\ne1$, using the Bernoulli numbers.
Comments
(3)
The table stores one homogeneous component per row, not the total Todd class $1+\mathrm{Td}_1+\mathrm{Td}_2+\cdots$ truncated at degree $n$.
(4)
The constant component $\mathrm{Td}_0=1$ is not stored as a row; the table begins at $n=1$.
(5)
The variables are Chern classes. Wikipedia writes the Todd class as $\operatorname{td}$ and its components as $\operatorname{td}_j$ [1]. Both sources cited here write the elementary symmetric functions as $p_i$ [1] [2]; [2] notes that the same notation is often used for Pontryagin classes. This table writes the class as $\mathrm{Td}$ and the variables as $c_i$.
(6)
The coefficient of $c_n$ in $\mathrm{Td}_n$ is $B_n^+/n!$, which vanishes for odd $n>1$; $\mathrm{Td}_7$ therefore has no $c_7$ term.
Programs
(P1)
Sage
import numberdb.sage as numberdb  # initialize Sage before named imports
from math import factorial, prod
from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
from sage.rings.rational_field import QQ

def bernoulli_plus(n):
    values = [QQ(0)] * (n + 1)
    for m in range(n + 1):
        values[m] = QQ(1) / QQ(m + 1)
        for j in range(m, 0, -1):
            values[j - 1] = QQ(j) * (values[j - 1] - values[j])
    return values[0]

def log_q_coefficient(m):
    if m == 1:
        return QQ(1) / QQ(2)
    if m % 2:
        return QQ(0)
    return -bernoulli_plus(m) / QQ(m * factorial(m))

def weight(exponents):
    return sum((i + 1) * exponent for i, exponent in enumerate(exponents))

def monomial(parent, variables, exponents):
    return parent(prod(variables[i] ** exponent
                       for i, exponent in enumerate(exponents)))

def weighted_terms(polynomial, degree, exact):
    parent = polynomial.parent()
    variables = parent.gens()
    total = parent(0)
    for exponents, coeff in polynomial.dict().items():
        term_weight = weight(exponents)
        if (exact and term_weight == degree) or (not exact and term_weight <= degree):
            total += coeff * monomial(parent, variables, exponents)
    return total

def todd_component(n):
    R = PolynomialRing(QQ, ["c%s" % i for i in range(1, n + 1)])
    c = R.gens()
    power_sums = {}
    for m in range(1, n + 1):
        p_m = sum(((-1) ** (i + 1) * c[i - 1] * power_sums[m - i]
                   for i in range(1, m)), R(0))
        power_sums[m] = p_m + (-1) ** (m + 1) * m * c[m - 1]

    exponent = sum((log_q_coefficient(m) * power_sums[m]
                    for m in range(1, n + 1)), R(0))
    total = R(1)
    term = R(1)
    for k in range(1, n + 1):
        term = weighted_terms(term * exponent / QQ(k), n, False)
        total = weighted_terms(total + term, n, False)
    return weighted_terms(total, n, True)

print(todd_component(8))
Links
Similar tables
Elementary symmetric polynomials —   give the elementary symmetric functions $e_j$ that are renamed as Chern classes here
Bernoulli numbers —   give the Bernoulli numbers appearing in the characteristic power series, except that the Todd convention takes $B_1=+1/2$
Data properties
Entries are of type: rational polynomial
Table is complete: no (it holds every entry with $1\leq n\leq 7$; $\mathrm{Td}_8$ is the first component needing more than six variables, which is the most a stored polynomial may have)
How they were obtained:

Every stored component was checked against the terms printed in [1] and [2], and by substituting the Chern classes of $T\mathbb P^m$ for $1\leq m\leq7$, which gives Todd genus $1$ [2].

more

The generator computes exact rational coefficients from Formula (1).