public void decompose( DMatrixRMaj U , DMatrixRMaj S , DMatrixRMaj V ) {
		// this ensures the resulting rotation matrix will have a determinant of +1 and thus be a real rotation matrix
		if( CommonOps_DDRM.det(U) < 0 ) {
			CommonOps_DDRM.scale(-1,U);
			CommonOps_DDRM.scale(-1,S);
		}

		if( CommonOps_DDRM.det(V) < 0 ) {
			CommonOps_DDRM.scale(-1,V);
			CommonOps_DDRM.scale(-1,S);
		}

		// for possible solutions due to ambiguity in the sign of T and rotation
		extractTransform(U, V, S, solutions.get(0), true, true);
		extractTransform(U, V, S, solutions.get(1), true, false);
		extractTransform(U, V, S, solutions.get(2) , false,false);
		extractTransform(U, V, S, solutions.get(3), false, true);
	}
public void decompose ( DMatrixRMaj U , DMatrixRMaj S , DMatrixRMaj V ) { if ( CommonOps_DDRM . det ( U ) < 0 ) { CommonOps_DDRM . scale ( - 1 , U ) ; CommonOps_DDRM . scale ( - 1 , S ) ; } if ( CommonOps_DDRM . det ( V ) < 0 ) { CommonOps_DDRM . scale ( - 1 , V ) ; CommonOps_DDRM . scale ( - 1 , S ) ; } extractTransform ( U , V , S , solutions . get ( 0 ) , true , true ) ; extractTransform ( U , V , S , solutions . get ( 1 ) , true , false ) ; extractTransform ( U , V , S , solutions . get ( 2 ) , false , false ) ; extractTransform ( U , V , S , solutions . get ( 3 ) , false , true ) ; }
Compute the decomposition given the SVD of E=U*S*V<sup>T</sup>.

@param U Orthogonal matrix from SVD.
@param S Diagonal matrix containing singular values from SVD.
@param V Orthogonal matrix from SVD.