o
    EbW
                     @   s    d Z ddlZdd Zdd ZdS )z
Pythran implementation of columns grouping for finite difference Jacobian
estimation. Used by ._numdiff.group_columns and based on the Cython version.
    Nc                 C   s   |j }tj|tjd }d}tj| tjd}t|D ][}|| dkr#q|||< d}|| |d d < t|jd D ]3}	||	 dk rCd}nq8d}
t| D ]}|| dkr^||	|f dkr^d}
 nqJ|
sk|||	 7 }|||	< q8|rq |S |d7 }q|S )NZdtyper   TF   )Tnponesintpemptyrangeshape)mnABgroupscurrent_groupunioniall_groupedj	intersectk r   ?/usr/lib/python3/dist-packages/scipy/optimize/_group_columns.pygroup_dense
   s:   
r   c                 C   s*  t j|t jd }d}t j| t jd}t|D ]{}|| dkr q|||< d}|d t|| ||d  D ]}	d|||	 < q6t|jd D ]B}
||
 dk rQd}nqFd}t||
 ||
d  D ]}	|||	  dkrmd} nq_|st||
 ||
d  D ]}	d|||	 < q{|||
< qF|r |S |d7 }q|S )Nr   r   Tr   F)r   r   r   r   r	   fillr
   )r   r   indicesZindptrr   r   r   r   r   r   r   r   r   r   r   group_sparse;   s>   

r   )__doc__Znumpyr   r   r   r   r   r   r   <module>   s    1