
    PhX#                         d dl Zd dlZd dlmZ d dlmZmZ d dl	m
Z
mZmZmZ 	 d dlmZ dZdZd
Z G d de
      Z G d de
      Zy# e$ r dZd	ZY $w xY w)    N)
csc_matrix)projectionsorthogonality)TestCaseassert_array_almost_equalassert_equalassert_allclose)cholesky_AAtT)NormalEquationAugmentedSystemF)r   )QRFactorizationSVDFactorizationc                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
TestProjectionsc                    t        j                  g dg dg dg      }|j                  }t        |      }g dg dg df}t        D ]  }t        ||      \  }}}|D ]  }	|j                  |	      }
t        |j                  |
      d       t        t        ||
      d       |j                  |	      }
t        j                  j                  ||	      d   }t        |
|         y N            r      r      r      r   r   r   r   	   r   r   r   r   r   r   r   r   r   r   r   r   r   r      r   r   r   
   r   r   r   r   r   r   Q?r!   r   r   i r   gffffff?r   r   )nparrayTr   available_sparse_methodsr   matvecr   dotr   scipylinalglstsq)selfA_denseAt_denseAtest_pointsmethodZLS_zxx2s               C:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\scipy/optimize/_trustregion_constr/tests/test_projections.py'test_nullspace_and_least_squares_sparsez7TestProjections.test_nullspace_and_least_squares_sparse   s    ((4446 7 99w/0:< /F"1f-HAr1 HHQK)!%%(A6)-1*=qAIIaL\\''!4Q7)!R0 ! /    c                    t        j                  g dg dg dg      }t        |      }g dg dg dg df}t        D ]~  }t	        ||dd	
      \  }}}|D ]d  }|j                  |      }	dt        |	      j                         z  }
t        |j                  |	      d|
       t        t        ||	      dd       f  y )Nr   r   r   r   r    r"   r   r   r   r   r   r   r   go   @C]r2<d   orth_tol	max_refingvIh%<=r   )atol)r$   r%   r   r'   r   r(   absmaxr	   r)   r   )r-   r.   r0   r1   r2   r3   r4   r5   r6   r7   rC   s              r9   !test_iterative_refinements_sparsez1TestProjections.test_iterative_refinements_sparse,   s    ((4446 7 w/0:57
 /F"1fuLHAr1 HHQKs1vzz|+a!$7a 3QUC ! /r;   c                    t        j                  g dg dg dg      }t        |      }g dg dg df}t        D ]  }t	        ||      \  }}}|D ]  }|j                  |      }t        |j                  |      |       t        j                  ||f      }	t        t         j                  j                  |      t         j                  j                  |	               y Nr   r   r   )r   r   r   )r   r!   r   )r#   r!   r   )r$   r%   r   r'   r   r(   r   r)   vstackr   r+   matrix_rank)
r-   r.   r0   r1   r2   r5   Yr6   r7   A_exts
             r9   test_rowspace_sparsez$TestProjections.test_rowspace_sparse@   s    ((4446 7 w !$& /F!!V,GAq! HHQK)!%%(A6		7A,/RYY227;YY2259; ! /r;   c                    t        j                  g dg dg dg      }|j                  }g dg dg df}t        D ]  }t	        ||      \  }}}|D ]  }|j                  |      }	t        |j                  |	      d       t        t        ||	      d       |j                  |      }	t        j                  j                  ||      d   }
t        |	|
         y r   )r$   r%   r&   available_dense_methodsr   r(   r   r)   r   r*   r+   r,   )r-   r0   Atr1   r2   r3   r4   r5   r6   r7   r8   s              r9   &test_nullspace_and_least_squares_densez6TestProjections.test_nullspace_and_least_squares_denseT   s    HH...0 1 SS/0:< .F"1f-HAr1 HHQK)!%%(A6)-1*=qAIIaL\\''A.q1)!R0 ! .r;   c                    t        j                  t        dd            }t        j                  ||||g      }t	        |      }t         j
                  j                  d       t        |      \  }}}t        |      \  }}}	t        d      D ]  }
t         j
                  j                  d      }t        |j                  |      |j                  |             t        |j                  |      |j                  |             t         j
                  j                  d      }t        |j                  |      |	j                  |              y )Nr   e   r      )i  size)r?   )r$   diagrangehstackr   randomseedr   normalr   r)   )r-   Dr0   A_sparser3   r4   rK   Z_sparse	LS_sparseY_sparsekr6   r7   s                r9   test_compare_dense_and_sparsez-TestProjections.test_compare_dense_and_sparsej   s    GGE!SM"IIq!Ql#a=
		qq>2q(3H(=%)XrA		  f -A%aeeAhQ@%bffQiq1AB		  f -A%aeeAhQ@ r;   c                    t        j                  g d      }t        j                  g d      }t        j                  g d      }t        j                  |||g      }t        |      }t         j                  j                  d       t        |      \  }}}t        |      \  }	}
}t        d      D ]  }t         j                  j                  d      }t        |j                  |      |	j                  |             t        |j                  |      |
j                  |             t         j                  j                  d      }t        |j                  |      |j                  |              y )	N)g333333r   g      ?)r   g333333333333ӿ)re   g      r   r   r   )r   rU   )r   )r$   rW   rY   r   rZ   r[   r   rX   r\   r   r)   )r-   D1D2D3r0   r^   r3   r4   rK   r_   r`   ra   rb   r6   r7   s                  r9   test_compare_dense_and_sparse2z.TestProjections.test_compare_dense_and_sparse2y   s   WW^$WW_%WW_%IIr2rl#a=
		qq>2q(3H(=%)XqA		  d +A%aeeAhQ@%bffQiq1AB		  d +A%aeeAhQ@ r;   c                 0   t        j                  g dg dg dg      }g dg dg df}t        D ]d  }t        ||dd	      \  }}}|D ]J  }|j	                  |      }t        |j                  |      d
d
d       t        t        ||      d
d
d       L f y )Nr   r   r   r   r    r=   r>   r!   r@   r   gvIh%=)rtolrC   gV瞯<)r$   r%   rO   r   r(   r	   r)   r   )	r-   r0   r1   r2   r3   r4   r5   r6   r7   s	            r9    test_iterative_refinements_densez0TestProjections.test_iterative_refinements_dense   s    HH.446 7 0057 .F"1fuKHAr1 HHQKa!!'Ba 3QQUK ! .r;   c                    t        j                  g dg dg dg      }g dg dg df}t        D ]  }t        ||      \  }}}|D ]  }|j	                  |      }t        |j                  |      |       t        j                  ||f      }t        t         j                  j                  |      t         j                  j                  |               y rH   )r$   r%   rO   r   r(   r   r)   rI   r   r+   rJ   )	r-   r0   r1   r2   r5   rK   r6   r7   rL   s	            r9   test_rowspace_densez#TestProjections.test_rowspace_dense   s    HH...0 1 !!$& .F!!V,GAq! HHQK)!%%(A6		1a&)RYY2215YY2259; ! .r;   N)__name__
__module____qualname__r:   rF   rM   rQ   rc   ri   rl   rn    r;   r9   r   r      s.    1.D(;(1,AA"L";r;   r   c                       e Zd Zd Zd Zy)TestOrthogonalityc                     t        j                  g dg dg dg      }g dg df}d}t        t        |            D ]"  }||   }||   }t	        t        ||      |       $ y Nr   r   r   )g;8gyGg	vgJ@g]7e@g6PƷ?g70?gA%hҿ)g}	llυ@gn;bMg;ݨg5&@gn"ԯF@g>ޒg7gLp@)r   r   )r$   r%   rX   lenr   r   r-   r0   test_vectorstest_expected_orthir7   orths          r9   test_dense_matrixz#TestOrthogonality.test_dense_matrix   so    HH...0 128	9 $s<()AQA%a(D%mAq&94@ *r;   c                     t        j                  g dg dg dg      }t        |      }g dg df}d}t        t	        |            D ]"  }||   }||   }t        t        ||      |       $ y rv   )r$   r%   r   rX   rw   r   r   rx   s          r9   test_sparse_matrixz$TestOrthogonality.test_sparse_matrix   sz    HH...0 1 qM28	9 $s<()AQA%a(D%mAq&94@ *r;   N)ro   rp   rq   r}   r   rr   r;   r9   rt   rt      s    A&Ar;   rt   )numpyr$   scipy.linalgr*   scipy.sparser   .scipy.optimize._trustregion_constr.projectionsr   r   numpy.testingr   r   r   r	   sksparse.cholmodr
   sksparse_availabler'   ImportErrorrO   r   rt   rr   r;   r9   <module>r      su      #&: :4-D B Y;h Y;x'A 'AE  434s   
A 	AA