<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def inverse(self):
 """Operator that reshapes to original shape. Examples -------- uniform_discr([-1., -1.], [ 1., 1.], (2, 4)).element( [[ 1., 2., 3., 4.], [ 5., 6., 7., 8.]] ) uniform_discr([-1., -1.], [ 1., 1.], (2, 4)).element( [[ 1., 3., 5., 7.], [ 2., 4., 6., 8.]] ) True """

        op = self
        scaling = getattr(self.domain, 'cell_volume', 1.0)

        class FlatteningOperatorInverse(Operator):

            """Inverse of `FlatteningOperator`.

            This operator reshapes a flat vector back to original shape::

                FlatteningOperatorInverse(x) == reshape(x, orig_shape)
            """

            def __init__(self):
                """Initialize a new instance."""
                super(FlatteningOperatorInverse, self).__init__(
                    op.range, op.domain, linear=True)

            def _call(self, x):
                """Reshape ``x`` back to n-dim. shape."""
                return np.reshape(x.asarray(), self.range.shape,
                                  order=op.order)

            def adjoint(self):
                """Adjoint of this operator, a scaled `FlatteningOperator`."""
                return scaling * op

            def inverse(self):
                """Inverse of this operator."""
                return op

            def __repr__(self):
                """Return ``repr(self)``."""
                return '{!r}.inverse'.format(op)

            def __str__(self):
                """Return ``str(self)``."""
                return repr(self)

        return FlatteningOperatorInverse()