code: public static TrifocalTensor createTrifocal( DMatrixRMaj P2 , DMatrixRMaj P3 ,
  												 @Nullable TrifocalTensor ret ) {
  		if( ret == null )
  			ret = new TrifocalTensor();
  
  		for( int i = 0; i < 3; i++ ) {
  			DMatrixRMaj T = ret.getT(i);
  
  			int index = 0;
  			for( int j = 0; j < 3; j++ ) {
  				double a_left = P2.get(j,i);
  				double a_right = P2.get(j,3);
  
  				for( int k = 0; k < 3; k++ ) {
  					T.data[index++] = a_left*P3.get(k,3) - a_right*P3.get(k,i);
  				}
  			}
  		}
  
  		return ret;
  	}
docs: <p>
  Creates a trifocal tensor from two camera matrices. T<sub>i</sub><sup>jk</sup> = a[j,i]*b[k,3] - a[j,3]*b[k,i],
  where a=P2 and b=P3.
  </p>
  
  <p>
  IMPORTANT: It is assumed that the first camera has the following camera matrix P1 = [I|0],
  where I is an identify matrix.
  </p>
  
  @param P2 Camera matrix for view 2. 3x4 matrix
  @param P3 Camera matrix for view 3. 3x4 matrix
  @param ret Storage for trifocal tensor.  If null a new instance will be created.
  @return The trifocal tensor