code: public static Point3D_F64 transfer_1_to_2(TrifocalTensor T , Point2D_F64 x1 , Vector3D_F64 l3 ,
  											  @Nullable Point3D_F64 x2 ) {
  		if (x2 == null)
  			x2 = new Point3D_F64();
  
  		GeometryMath_F64.mult(T.T1, l3, x2);
  		// storage solution here to avoid the need to declare a temporary variable
  		double xx = x2.x * x1.x;
  		double yy = x2.y * x1.x;
  		double zz = x2.z * x1.x;
  		GeometryMath_F64.mult(T.T2, l3, x2);
  		xx += x2.x * x1.y;
  		yy += x2.y * x1.y;
  		zz += x2.z * x1.y;
  		GeometryMath_F64.mult(T.T3, l3, x2);
  		x2.x = xx + x2.x;
  		x2.y = yy + x2.y;
  		x2.z = zz + x2.z;
  
  		return x2;
  	}
docs: Transfers a point from the first view to the second view using a plane induced by
  a line in the third view.
  @param x1 (Input) point (pixel) in first view
  @param l3 (Input) line in third view
  @param T (Input) Trifocal tensor
  @param x2 (Output) Induced point (pixel) in second view. Homogenous coordinates.
  @return induced point.