'Inverse transformation.
Raises `~astropy.modeling.InputParameterError` if the transformation cannot be inverted.'

@property
def inverse(self):

    det = np.linalg.det(self.matrix.value)
    if (det == 0):
        raise InputParameterError(u'Transformation    matrix    is    singular;    {0}    model    does    not    have    an    inverse'.format(self.__class__.__name__))
    matrix = np.linalg.inv(self.matrix.value)
    translation = (- np.dot(matrix, self.translation.value))
    return self.__class__(matrix=matrix, translation=translation)
