An algorithm is presented in this paper for computing state space balancing transformations directly from a state space realization. The algorithm requires no "squaring up." Various algorithmic aspects are discussed in detail. Applications to numerous other closely-related problems are also mentioned. The key idea throughout involves determining a contragredient transformation through computing the singular value decomposition of a certain product of matrices without explicitly forming the product.