def tensor_compress_bond(T1, T2, **compress_opts):
    """Inplace compress between the two single tensors. It follows the
    following steps to minimize the size of SVD performed::

        a)|   |        b)|            |        c)|       |
        --1---2--  ->  --1L~~1R--2L~~2R--  ->  --1L~~M~~2R--
          |   |          |   ......   |          |       |
         <*> <*>              >  <                  <*>

                  d)|            |        e)|     |
              ->  --1L~~ML~~MR~~2R--  ->  --1C~~~2C--
                    |....    ....|          |     |
                     >  <    >  <              ^compressed bond
    """
    s_ix, t1_ix = T1.filter_bonds(T2)
    if not s_ix:
        raise ValueError("The tensors specified don't share an bond.")
    T1_L, T1_R = T1.split(left_inds=t1_ix, get='tensors', absorb='right',
        **compress_opts)
    T2_L, T2_R = T2.split(left_inds=s_ix, get='tensors', absorb='left', **
        compress_opts)
    M = T1_R @ T2_L
    M.drop_tags()
    M_L, M_R = M.split(left_inds=T1_L.bonds(M), get='tensors', absorb=
        'both', **compress_opts)
    ns_ix, = M_L.bonds(M_R)
    M_L.reindex_({ns_ix: s_ix[0]})
    M_R.reindex_({ns_ix: s_ix[0]})
    T1C = T1_L.contract(M_L, output_inds=T1.inds)
    T2C = M_R.contract(T2_R, output_inds=T2.inds)
    T1.modify(data=T1C.data)
    T2.modify(data=T2C.data)
