code: private void computeSpan( List<AssociatedPair> points ) {
  
  		Q.reshape(points.size(), 9);
  		int index = 0;
  
  		for( int i = 0; i < points.size(); i++ ) {
  			AssociatedPair p = points.get(i);
  
  			Point2D_F64 a = p.p2;
  			Point2D_F64 b = p.p1;
  
  			// The points are assumed to be in homogeneous coordinates.  This means z = 1
  			Q.data[index++] =  a.x*b.x;
  			Q.data[index++] =  a.x*b.y;
  			Q.data[index++] =  a.x;
  			Q.data[index++] =  a.y*b.x;
  			Q.data[index++] =  a.y*b.y;
  			Q.data[index++] =  a.y;
  			Q.data[index++] =      b.x;
  			Q.data[index++] =      b.y;
  			Q.data[index++] =  1;
  		}
  
  		if( !solverNull.process(Q,4,nullspace) )
  			throw new RuntimeException("Nullspace solver should never fail, probably bad input");
  
  		// extract the span of solutions for E from the null space
  		for( int i = 0; i < 9; i++ ) {
  			X[i] = nullspace.unsafe_get(i,0);
  			Y[i] = nullspace.unsafe_get(i,1);
  			Z[i] = nullspace.unsafe_get(i,2);
  			W[i] = nullspace.unsafe_get(i,3);
  		}
  	}
docs: From the epipolar constraint p2^T*E*p1 = 0 construct a linear system
  and find its null space.