Any matrix B of order m by n can be partitioned as B = UQV', where U and V are orthogonal or suborthogonal. If m is larger than n then U is suborthogonal and V is orthogonal. If m is smaller than n, then it is the other way around. If B is square then both U and V are orthogonal. The matrix Q contains the singular values of B. Denoting U, Q and V by LEFT, MID and RIGHT, the following subroutine call will result in their computation,
call svd(left,mid,right,b); print left,mid,right;
18.119.133.160