
    Hh                         d dl Z  e j                    d             Z e j                    d             Z e j                    d             Zd ZdS )    Nc                 x    t          j        | t          j        dg| j        t           j                            S )Nr   devicedtype)prepend)torchdifftensorr   long)offsets    V/data/cameron/tmprepos/clean_dreammesh/UniRig/src/model/pointcept/models/utils/misc.pyoffset2bincountr      s7    :aSejQQQ       c                     t          |           }t          j        t          |          | j        t          j                                      |          S )Nr   )r   r   arangelenr   r   repeat_interleave)r   bincounts     r   offset2batchr      sG    v&&H<Hfm5:  !!"r   c                 v    t          j        |                                 d                                          S )Nr   )dim)r   cumsumr   r   )batchs    r   batch2offsetr      s-    <((a00055777r   c                     | j         \  }}||k    sJ |                                 d d                             |dz
  |dz             d d dd f                                         S )N   )shapeflattenview)xnms      r   off_diagonalr$      sf    7DAq666699;;ss  QA..qqq!""u5==???r   )r   inference_moder   r   r   r$    r   r   <module>r'      s        " " " 8 8 8@ @ @ @ @r   