docs: @Override
  	public void invert(Matrix3d matrix) {
  		assert matrix != null : AssertMessages.notNullParameter();
  		final double det = matrix.getM00() * matrix.getM11() - matrix.getM01() * matrix.getM10();
  		if (MathUtil.isEpsilonZero(det)) {
  			throw new SingularMatrixException(Locale.getString("E1", det)); //$NON-NLS-1$
  		}
  		set(
  				matrix.getM11() / det,
  				-matrix.getM01() / det,
  				(matrix.getM01() * matrix.getM12() - matrix.getM11() * matrix.getM02()) / det,
  				-matrix.getM10() / det,
  				matrix.getM00() / det,
  				(matrix.getM10() * matrix.getM02() - matrix.getM00() * matrix.getM12()) / det);
  	}