docs: 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;
  	}