docs: public void process( Point3D_F64 e2 , Point3D_F64 e3 , DMatrixRMaj A ) {
  		// construct the linear system that the solution which solves the unknown square
  		// matrices in the camera matrices
  		constructE(e2, e3);
  
  		// Computes U, which is used to map the 18 unknowns onto the 27 trifocal unknowns
  		svdU.decompose(E);
  		svdU.getU(U, false);
  
  		// Copy the parts of U which correspond to the non singular parts if the SVD
  		// since there are only really 18-nullity unknowns due to linear dependencies
  		SingularOps_DDRM.descendingOrder(U,false,svdU.getSingularValues(),svdU.numberOfSingularValues(),null,false);
  		int rank = SingularOps_DDRM.rank(svdU, 1e-13);
  		Up.reshape(U.numRows,rank);
  		CommonOps_DDRM.extract(U,0,U.numRows,0,Up.numCols,Up,0,0);
  
  		// project the linear constraint matrix into this subspace
  		AU.reshape(A.numRows,Up.numCols);
  		CommonOps_DDRM.mult(A,Up,AU);
  
  		// Extract the solution of ||A*U*x|| = 0 from the null space
  		svdV.decompose(AU);
  
  		xp.reshape(rank,1);
  		SingularOps_DDRM.nullVector(svdV,true,xp);
  
  		// Translate the solution from the subspace and into a valid trifocal tensor
  		CommonOps_DDRM.mult(Up,xp,vectorT);
  
  		// the sign of vectorT is arbitrary, but make it positive for consistency
  		if( vectorT.data[0] > 0 )
  			CommonOps_DDRM.changeSign(vectorT);
  	}