code: public static Vector3D_F64 constraint(TrifocalTensor tensor,
  										  Point2D_F64 p1, Vector3D_F64 l2, Point2D_F64 p3,
  										  Vector3D_F64 ret)
  	{
  		if( ret == null )
  			ret = new Vector3D_F64();
  
  		DMatrixRMaj sum = new DMatrixRMaj(3,3);
  
  		CommonOps_DDRM.add(p1.x,tensor.T1,sum,sum);
  		CommonOps_DDRM.add(p1.y,tensor.T2,sum,sum);
  		CommonOps_DDRM.add(tensor.T3,sum,sum);
  
  		Vector3D_F64 tempV = new Vector3D_F64();
  		GeometryMath_F64.multTran(sum, l2, tempV);
  
  		GeometryMath_F64.cross(tempV, new Vector3D_F64(p3.x, p3.y, 1), ret);
  
  		return ret;
  	}
docs: <p>
  Trifocal tensor with point-line-point correspondence:<br>
  (l2<sup>T</sup>(sum p1<sup>i</sup>*T<sub>i</sub>)[p3]<sub>x</sub> = 0
  </p>
  
  @param tensor Trifocal tensor
  @param p1 A point in the first view.
  @param l2 A line in the second view.
  @param p3 A point in the third view.
  @return Result of applying the constraint.  With perfect inputs will be zero.