We present a deterministic polynomial algorithm that computes the mixed discriminant of an n-tuple of positive semidefinite matrices to within a multiplicative factor of en. To this end we extend the notion of doubly stochastic matrix scaling to a larger class of n-tuples of positive semidefinite matrices, and provide a polynomial-time algorithm for this scaling. We obtain tight upper and lower bounds on the mixed discriminant of doubly stochasic n-tuples, proving a conjecture of Bapat, and generalizing the van der Waerden - Falikman - Egorychev theorem. As a corollary, we obtain a deterministic polynomial algorithm that computes the mixed volume of n convex bodies in Rn to within a multiplicative factor of nO(n). This answers a question of Dyer, Gritzmann and Hufnagel.