docs: protected boolean projectOntoEssential( DMatrixRMaj E ) {
  		if( !svdConstraints.decompose(E) ) {
  			return false;
  		}
  		svdV = svdConstraints.getV(svdV,false);
  		svdU = svdConstraints.getU(svdU,false);
  		svdS = svdConstraints.getW(svdS);
  
  		SingularOps_DDRM.descendingOrder(svdU, false, svdS, svdV, false);
  
  		// project it into essential space
  		// the scale factor is arbitrary, but the first two singular values need
  		// to be the same.  so just set them to one
  		svdS.unsafe_set(0, 0, 1);
  		svdS.unsafe_set(1, 1, 1);
  		svdS.unsafe_set(2, 2, 0);
  
  		// recompute F
  		CommonOps_DDRM.mult(svdU, svdS, temp0);
  		CommonOps_DDRM.multTransB(temp0,svdV, E);
  
  		return true;
  	}