Weierstrass gives a product; Hadamard makes it precise
On the products rung you met a remarkable promise: the Weierstrass factorization theorem says that any entire function f can be written as a product spread over its zeros, just like a polynomial — one factor per zero, with the right multiplicities. The shape is f(z) = z^m e^(g(z)) times an infinite product of elementary factors, where z^m absorbs any zero at the origin, the product carries all the other zeros, and e^(g(z)) is an exponential of some entire function g that never vanishes and so can hide any zero-free wobble. It is a beautiful existence theorem — but it is loose. Weierstrass lets each elementary factor carry as many correction terms as it likes, and lets g be ANY entire function. Two very different-looking products can both be legitimate Weierstrass factorizations of the same f.
Hadamard's theorem is the tightening. It asks a sharper question: if we already know how FAST f grows — its order rho, the finite number from guide 1 measuring how |f| swells like e^(r^rho) — what is the LEANEST factorization the growth forces? The answer is startlingly rigid. Finite order pins down two things at once: exactly how many correction terms each factor must carry (no more, no less), and the fact that the mysterious g can only be a polynomial, of bounded degree. The free-for-all collapses into a blueprint. That collapse is the whole content of Hadamard's factorization theorem, and it is the bridge from 'f has growth rho' to 'f looks like this explicit product'.
Why naive factors fail, and the elementary-factor fix
To see why corrections are needed at all, try the naive thing. Given zeros z_1, z_2, ... going off to infinity, you would love to write the product of (1 - z/z_n), one honest factor vanishing at each z_n. But recall the safe-harbour rule from the products rung: a product of (1 + a_n) converges nicely only when sum |a_n| is finite. Here a_n = -z/z_n, so convergence needs sum 1/|z_n| to be finite — the zeros must thin out fast. For many entire functions they do NOT: the zeros of sin(pi z) sit at every integer, and sum 1/|n| is the harmonic series, which diverges. The naive product simply does not converge.
Weierstrass's repair is the elementary factor E_p. Instead of the bare 1 - z/z_n, you multiply it by an exponential of a short Taylor polynomial chosen to cancel the dangerous low-order terms. Concretely E_p(w) = (1 - w) times exp(w + w^2/2 + ... + w^p/p), where you feed in w = z/z_n. The exponential is engineered so that, after taking a logarithm, log E_p(w) starts only at the w^(p+1) term — its expansion is about -w^(p+1)/(p+1), a much smaller deviation than the original -w. The integer p is the genus of the factor, the number of correction terms you spent. By choosing p large enough, you shrink the deviations until sum of their moduli converges, and the product is rescued.
naive factor: 1 - z/z_n log ~ -(z/z_n) deviation ~ 1/|z_n| (may diverge)
elementary factor E_p(z/z_n):
E_p(w) = (1 - w) * exp( w + w^2/2 + ... + w^p/p )
log E_p(w) = -w^(p+1)/(p+1) - w^(p+2)/(p+2) - ... starts at power p+1
so |1 - E_p(z/z_n)| ~ |z/z_n|^(p+1) deviation ~ 1/|z_n|^(p+1) (converges for p large enough)The canonical product and its genus
Weierstrass let you pick a possibly different genus p_n for every single factor, which is wasteful and ugly. Hadamard's first economy is to pick ONE genus p that works for all factors at once — the smallest integer p such that sum 1/|z_n|^(p+1) is finite. With that single p, the product of E_p(z/z_n) over all the zeros converges, and it is called the canonical product attached to the zeros. It is the leanest honest product that vanishes exactly where f does, and that uniform genus p is the genus of the canonical product. No factor wears more correction terms than it needs.
Here is the deep link, and it is exactly what guide 2 set up. The genus p depends only on how densely the zeros pack toward infinity, and guide 2's Jensen's formula turned that packing density into a growth statement: the order rho of f controls the convergence of sum 1/|z_n|^s — the zeros of an order-rho function satisfy sum 1/|z_n|^s < infinity for every s strictly bigger than rho. So the genus is essentially the integer part of rho. Concretely, p is either the floor of rho or one less, and the inequality p <= rho < p + 1 (give or take the boundary) ties the smallest legal genus directly to the growth. Growth dictates how many corrections the zeros demand.
The theorem itself: zeros plus a polynomial
Now we can state the prize. Let f be entire of finite order rho. Then f factors as f(z) = z^m e^(P(z)) times the canonical product over its nonzero zeros, where z^m handles a zero of multiplicity m at the origin, the canonical product has genus p, and — this is the second and most surprising economy — P is a genuine polynomial, of degree at most rho. Weierstrass's wild zero-free factor e^(g(z)), which a priori could be the exponential of any entire function whatsoever, is forced down to a polynomial the moment f has finite order. That is the entire force of Hadamard's theorem: finite growth simultaneously bounds the genus of the product AND the degree of the leftover polynomial.
From these two bounds comes a number worth naming. Define the genus of f as the larger of the canonical product's genus p and the degree of P. Hadamard's content can then be compressed to a single inequality relating it to the order: the genus and the order differ by less than 1, so genus <= rho <= genus + 1. The whole rigid skeleton of a finite-order entire function — how its zeros may cluster, and how much exponential freedom remains — is squeezed between two consecutive integers determined by how fast it grows. That is an astonishing amount of structure to extract from the single real number rho.
Reading it on real examples, and the payoff
Watch the machine run on e^z. It has order rho = 1, and crucially it has NO zeros — exp is never zero. So the canonical product is empty (it equals 1), z^m is absent, and the entire content of the factorization lives in e^(P(z)). The theorem promises P has degree at most 1, and indeed P(z) = z does the job: e^z = e^(P(z)) with P(z) = z. Everything checks. The zero-free factor is allowed to be exactly as big as the order permits, and here it carries the whole function on its back.
Now sin(pi z). It also has order 1, but it is riddled with zeros — one at every integer. With rho = 1 the genus is 1, so we need genus-1 elementary factors E_1(w) = (1 - w) e^w to make the product over the integers converge, and the polynomial P turns out to be constant. Pairing the factor at n with the factor at -n lets the e^w pieces cancel in pairs, and the canonical product collapses to the famous sine product formula sin(pi z) = pi z times the product of (1 - z^2/n^2). Hadamard does not merely allow this beautiful identity — it explains WHY it must have exactly this shape: the genus-1 factors are forced by the order, and the absence of a higher polynomial is forced by it too.
- Find the order rho of f, using the growth tools from guide 1 (max-modulus, or the Taylor-coefficient formula).
- Set the genus p of the canonical product to the integer part of rho — the smallest p with sum 1/|z_n|^(p+1) finite.
- Build the canonical product from the genus-p elementary factors E_p(z/z_n), one per nonzero zero, and prepend z^m for any zero at the origin.
- The remaining factor is e^(P(z)) with deg P <= rho; pin down P by matching f at a few points or by comparing logarithmic derivatives.