code: public Matrix3x2f span(Vector2f corner, Vector2f xDir, Vector2f yDir) {
          float s = 1.0f / (m00 * m11 - m01 * m10);
          float nm00 =  m11 * s, nm01 = -m01 * s, nm10 = -m10 * s, nm11 =  m00 * s;
          corner.x = -nm00 - nm10 + (m10 * m21 - m20 * m11) * s;
          corner.y = -nm01 - nm11 + (m20 * m01 - m00 * m21) * s;
          xDir.x = 2.0f * nm00; xDir.y = 2.0f * nm01;
          yDir.x = 2.0f * nm10; yDir.y = 2.0f * nm11;
          return this;
      }
docs: Compute the extents of the coordinate system before this transformation was applied and store the resulting
  corner coordinates in <code>corner</code> and the span vectors in <code>xDir</code> and <code>yDir</code>.
  <p>
  That means, given the maximum extents of the coordinate system between <code>[-1..+1]</code> in all dimensions,
  this method returns one corner and the length and direction of the two base axis vectors in the coordinate
  system before this transformation is applied, which transforms into the corner coordinates <code>[-1, +1]</code>.
  
  @param corner
  will hold one corner of the span
  @param xDir
  will hold the direction and length of the span along the positive X axis
  @param yDir
  will hold the direction and length of the span along the positive Y axis
  @return this