code: public static DMatrixRMaj fundamentalToEssential( DMatrixRMaj F , DMatrixRMaj K , @Nullable DMatrixRMaj outputE ) {
  		if( outputE == null )
  			outputE = new DMatrixRMaj(3,3);
  
  		PerspectiveOps.multTranA(K,F,K,outputE);
  
  		// this is unlikely to be a perfect essential matrix. reduce the error by enforcing essential constraints
  		SingularValueDecomposition_F64<DMatrixRMaj> svd = DecompositionFactory_DDRM.svd(true,true,false);
  
  		svd.decompose(outputE);
  		DMatrixRMaj U = svd.getU(null,false);
  		DMatrixRMaj W = svd.getW(null);
  		DMatrixRMaj V = svd.getV(null,false);
  
  		// settings value of singular values to be [1,1,0].  The first two singular values just need to be equal
  		// for it to be an essential matrix
  		SingularOps_DDRM.descendingOrder(U,false,W,V,false);
  		W.set(0,0,1);
  		W.set(1,1,1);
  		W.set(2,2,0);
  
  		PerspectiveOps.multTranC(U,W,V,outputE);
  
  		return outputE;
  	}
docs: Given the calibration matrix, convert the fundamental matrix into an essential matrix. E = K'*F*k. The
  singular values of the resulting E matrix are forced to be [1,1,0]
  
  @param F (Input) Fundamental matrix. 3x3
  @param K (Input) Calibration matrix (3x3)
  @param outputE (Output) Found essential matrix
  @return Essential matrix