code: public Matrix3x2d invert(Matrix3x2d dest) {
          // client must make sure that matrix is invertible
          double s = 1.0 / (m00 * m11 - m01 * m10);
          double nm00 =  m11 * s;
          double nm01 = -m01 * s;
          double nm10 = -m10 * s;
          double nm11 =  m00 * s;
          double nm20 = (m10 * m21 - m20 * m11) * s;
          double nm21 = (m20 * m01 - m00 * m21) * s;
          dest.m00 = nm00;
          dest.m01 = nm01;
          dest.m10 = nm10;
          dest.m11 = nm11;
          dest.m20 = nm20;
          dest.m21 = nm21;
          return dest;
      }
docs: Invert the <code>this</code> matrix by assuming a third row in this matrix of <code>(0, 0, 1)</code>
  and store the result in <code>dest</code>.
  
  @param dest
  will hold the result
  @return dest