o
    Yi                     @   s   d dl Zd dlmZmZmZ d dlZd dlZd dl	Zd dl	m
Z
 dZeeZejjZejjZedD ]!ZeedZeej Zeeej d 7 Zeeedeed 7 Zq3eedZdZd	Zd
ZdZdZdd Zdd Zdd Zdd Z dd Z!dS )    N)assert_allcloseassert_array_equalassert_equal)lsqr#      )sizeg      ?g|=g|=g:0yU>Fc               	   C   s   t  } ttt ttttd^}}t| t  tj	
tt }t||ttd d}ttt |ttttd^}}tjt|ttjd  f }tjt ttjd f }tj	j||d d^}}t||ttd d S )Nshowatolbtoliter_lim)r   rtolg      ?)dampr
   r   r   r      )rcond)bcopyr   Gr
   tolmaxitr   nplinalgsolver   	atol_test	rtol_testr_eyeshapezeroslstsq)b_copyxo_svxr   Gextbext r'   R/tmp/pip-target-1s0edx8b/lib/python/scipy/sparse/linalg/_isolve/tests/test_lsqr.pytest_lsqr_basic    s   

r)   c                  C   s\   t ddg} t ddg}t ddg}tjj|| |ffdd}t dg}t|| d S )Nr   r   )r      )r      )r   arrayscipysparse	coo_arrayasarrayr   )rowcolvalAr   r'   r'   r(   test_gh_24666   s   r6   c            
      C   s   d} t j| | }| }tjddS tdD ]E}tj|d }|	| }d||dk< ||d d tj
f  }t||td}t|d d |d }t|| tj|| }	t||	 qW d    d S 1 siw   Y  d S )	N
   raise)invalid   gh㈵>r   )r
   r   )r.   r/   	eye_arraytoarrayr   errstaterangerandomRandomStaterandnewaxisr   r
   r   r   r   r   ravel)
nA_sparseA_denseseedrngbetar   outputsolutionreference_solutionr'   r'   r(   test_well_conditioned_problems?   s"   

"rM   c                  C   s   t ddgg} d}t| |d }t| || tdks!J t d} t d}t| |d }t| ||	  tdksDJ d S )Ng      ?g       @g      @r   r7   )r7   r   )
r   r-   r   normdotpytestapproxr   onesrC   )r5   r   xr'   r'   r(   test_b_shapes]   s    

(rT   c               	   C   s   t  } ttt ttttd}t|d j	}ttt tttt|d}t
| t  t|d |d  ttt tttddd }ttt tttt|d}t|d |d  t
| t  d S )Nr	   r   )r
   r   r   r   x0r   )r   r   r   r   r
   r   r   r   r   r   r   r   )r!   x_refrU   rS   r'   r'   r(   test_initializationk   s   
rW   )"numpyr   numpy.testingr   r   r   rP   scipy.sparser.   scipy.sparse.linalgr   rD   r   r   r?   normalr   rN   r>   jjggThhr   r   r   r   r
   r   r)   r6   rM   rT   rW   r'   r'   r'   r(   <module>   s4    



	