code: public Matrix3d invert(Matrix3d dest) {
          double s = 1.0 / determinant();
          double nm00 = (m11 * m22 - m21 * m12) * s;
          double nm01 = (m21 * m02 - m01 * m22) * s;
          double nm02 = (m01 * m12 - m11 * m02) * s;
          double nm10 = (m20 * m12 - m10 * m22) * s;
          double nm11 = (m00 * m22 - m20 * m02) * s;
          double nm12 = (m10 * m02 - m00 * m12) * s;
          double nm20 = (m10 * m21 - m20 * m11) * s;
          double nm21 = (m20 * m01 - m00 * m21) * s;
          double nm22 = (m00 * m11 - m10 * m01) * s;
          dest.m00 = nm00;
          dest.m01 = nm01;
          dest.m02 = nm02;
          dest.m10 = nm10;
          dest.m11 = nm11;
          dest.m12 = nm12;
          dest.m20 = nm20;
          dest.m21 = nm21;
          dest.m22 = nm22;
          return dest;
      }
docs: /* (non-Javadoc)
  @see org.joml.Matrix3dc#invert(org.joml.Matrix3d)