def add_special_arithmetic_methods(cls):
_, _, arith_method, comp_method, bool_method = _get_method_wrappers(cls)<EOL>new_methods = _create_methods(cls, arith_method, comp_method, bool_method,<EOL>special=True)<EOL>def _wrap_inplace_method(method):<EOL><INDENT>"""<STR_LIT>"""<EOL>def f(self, other):<EOL><INDENT>result = method(self, other)<EOL>self._update_inplace(result.reindex_like(self, copy=False)._data,<EOL>verify_is_copy=False)<EOL>return self<EOL><DEDENT>f.__name__ = "<STR_LIT>".format(name=method.__name__.strip("<STR_LIT>"))<EOL>return f<EOL><DEDENT>new_methods.update(<EOL>dict(__iadd__=_wrap_inplace_method(new_methods["<STR_LIT>"]),<EOL>__isub__=_wrap_inplace_method(new_methods["<STR_LIT>"]),<EOL>__imul__=_wrap_inplace_method(new_methods["<STR_LIT>"]),<EOL>__itruediv__=_wrap_inplace_method(new_methods["<STR_LIT>"]),<EOL>__ifloordiv__=_wrap_inplace_method(new_methods["<STR_LIT>"]),<EOL>__imod__=_wrap_inplace_method(new_methods["<STR_LIT>"]),<EOL>__ipow__=_wrap_inplace_method(new_methods["<STR_LIT>"])))<EOL>new_methods.update(<EOL>dict(__iand__=_wrap_inplace_method(new_methods["<STR_LIT>"]),<EOL>__ior__=_wrap_inplace_method(new_methods["<STR_LIT>"]),<EOL>__ixor__=_wrap_inplace_method(new_methods["<STR_LIT>"])))<EOL>add_methods(cls, new_methods=new_methods)<EOL>
Adds the full suite of special arithmetic methods (``__add__``,
``__sub__``, etc.) to the class.

Parameters
----------
cls : class
    special methods will be defined and pinned to this class