  Information on su(N) tensor product multiplicities is neatly encoded in
Berenstein-Zelevinsky triangles. Here we study a generalisation of these
triangles by allowing negative as well as non-negative integer entries. For a
fixed triple product of weights, these generalised Berenstein-Zelevinsky
triangles span a lattice in which one may move by adding integer linear
combinations of so-called virtual triangles. Inequalities satisfied by the
coefficients of the virtual triangles describe a polytope. The tensor product
multiplicities may be computed as the number of integer points in this convex
polytope. As our main result, we present an explicit formula for this
discretised volume as a multiple sum. As an application, we also address the
problem of determining when a tensor product multiplicity is non-vanishing. The
solution is represented by a set of inequalities in the Dynkin labels. We also
allude to the question of when a tensor product multiplicity is greater than a
given non-negative integer.
