
    h
                         S SK Jr  S SKr\R                  R                  S 5        S SKJr  S SKJ	r	  S SK
JrJrJr  S SKJr  SS jrSS jrSS	 jr SS
 jr       SS jrSS jrSS jrS rS rg)    )print_functionN)assert_allclose)assume)tuplesintegersfloats)arraysc                     [        XS9$ )N)	min_value	max_value)r   lohis     K/home/james-whalen/.local/lib/python3.13/site-packages/blis/tests/common.pylengthsr      s    b//    c                 6    [        [        XS9[        X#S95      $ )Nr   )r   r   min_rowsmax_rowsmin_colsmax_colss       r   shapesr      s    'X3W5VWWr   c           
      :    US:X  a  SOSn[        X0[        XUS9S9$ )Nfloat64@       )r   r   width)shapeelements)r	   r   )r   r   r   dtyper   s        r   ndarrays_of_shaper"      s)    9$B"EVbe%T r   c                 D   ^^^ [        XS9R                  UUU4S j5      $ )Nr   c                    > [        U TTTS9$ N)r   r   r!   r"   )nr!   max_valmin_vals    r   <lambda>ndarrays.<locals>.<lambda>!   s    #A'gUKr   )r   flatmapmin_lenmax_lenr)   r(   r!   s     ```r   ndarraysr0      s      g*22K r   c                 F   ^^^ [        XX#S9R                  UUU4S j5      $ )Nr   c                    > [        U TTTS9$ r%   r&   )mnr!   r   r   s    r   r*   matrices.<locals>.<lambda>0   s    *2)	QVWr   )r   r,   )r   r   r   r   r   r   r!   s       ```r   matricesr5   %   s#     xgWXYr   c                     [        XSX#S9$ )Nr   r-   r0   )r.   r/   r(   r!   s       r   positive_ndarraysr8   3   s    !W r   c                     [        XUSUS9$ )Ng|۽r-   r7   )r.   r/   r)   r!   s       r   negative_ndarraysr:   9   s    '6QV r   c                 B   U SSS 24   n[         R                  " U SS 2S4   SS9nU SS 2SS 24   nUR                  S:X  d   eUR                  S:X  d   eUR                  S   UR                  S   :X  d   eUR                  S   UR                  S   :X  d   e[	        [         R
                  " UR                  5       5      (       + 5        [	        [         R
                  " UR                  5       5      (       + 5        [	        [         R
                  " UR                  5       5      (       + 5        [	        [        S UR                  5        5       5      (       + 5        [	        [        S U 5       5      (       + 5        [	        [        S U 5       5      (       + 5        XU4$ )Nr      r   )r!   c              3   N   #    U  H  n[         R                  " U5      v   M     g 7fNnpisinf.0vals     r   	<genexpr>parse_layer.<locals>.<genexpr>N   s     8KS288C==K   #%c              3   N   #    U  H  n[         R                  " U5      v   M     g 7fr>   r?   rB   s     r   rE   rF   O        .AS288C==ArG   c              3   N   #    U  H  n[         R                  " U5      v   M     g 7fr>   r?   rB   s     r   rE   rF   P   rI   rG   )	r@   ascontiguousarrayndimr   r   isnansumanyflatten)
layer_dataxbWs       r   parse_layerrU   ?   s>   1ab5A 	ZA.i@A12qr6A66Q;;66Q;;771:###771:###
rxx  !
rxx  !
rxx  !
s8AIIK8889
s.A.../
s.A.../7Nr   c                 *    U SS S 24   U S S 2S S 24   4$ )Nr    )rQ   s    r   	split_rowrX   T   s    q!tjA.//r   )r<   
   )r<   d   r<   rZ   )g     @g     @@r   )r   rY       c    .Ar   )r<   rY   r<   rY   r[   r\   r   )r   rY   g     j@r   )r   rY   g     jr   )
__future__r   numpyr@   randomseednumpy.testingr   
hypothesisr   hypothesis.strategiesr   r   r   hypothesis.extra.numpyr	   r   r   r"   r0   r5   r8   r:   rU   rX   rW   r   r   <module>re      sw    %  		q  )  : : )0X JS 
Y*0r   