A divide and conquer algorithm for computing singular values