
    wg(                        d dl mZ d dlZd dl ej
                  j                  Zej                  Zej                  Z	ej                  Z
ej                  Zej                  Z eg dg dg dg      Zg dZ eg dg d	g d
g dg      Zg dZ eg dg dg dg dg dg      Zg dZ eg dg dg dg dg dg      Zg dZ eg dg dg dg      Z eg dg dg dg      Zg dZ ed d!gd"d gd#d$gg      Zg d%Z eg d&g d'g d(g d)g      Zg d*Z eg d+g d,g d-g      Zg d.Z eg d/g d0g d1g      Zg d2Z d3 Z!d4 Z"d5 Z#d6 Z$d7 Z%d8 Z&d9 Z'd: Z(d; Z)d< Z* e+d=      d>        Z,d? Z-d@ Z.dA Z/dB Z0dC Z1y)D    )divisionN)*)         )   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   r   r   )r
   r   r   r   )r   r   r   	   i)r      r   r      )r   r   r   r   2   )gQx$@g=
ףp=g        gQ롿gGz@)gNbX9gRQ?g(\@g(\B!gHzG?)gRQgQ?g rпgp=
ף"@gE)g)\#@g(\@g     @1g;On?g\(8@)gQ"g33333sA@gp=
ףS@gQ?g33333sP@)gfffff!@g
ףp=4@gGz@ffffff@gףp=
7M@)r   r   r   )r   r   r   )r   r   i)g	?gZB>@gr3܀o@)gsFZ*o@g#GGge,i9@)g}.AgR#@g(~Ƅ.)g     7@gQ/gQ@r   g      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   g      @)
      g      /)      ?      ?       @r   )g      @g      @g      @)g      @g       @g      "@)      ?r   r   c                  "   t         j                         } t        }t        |       \  } }t	        | ||      }t        | |      }|g dk(  sJ |D cg c]  }t        |d       c}g dk(  sJ t        j                         } t        }t        |       \  } }t	        | ||      }t        | |      }|g dk(  sJ |D cg c]  }t        |d       c}g dk(  sJ t        d      } | j                         }t        | d       | |k7  sJ y c c}w c c}w )	N)r   r   r   r      )g-P@grhA@g(mUg^ \^v@g+6CV@)r   r   r
   r   )gw]@g_DP@gIϘ}X?gRxgE9r   r   )	overwrite)
A3copyb3	LU_decompL_solveU_solveroundA4b4
randmatrix)Abpyxibaks          ]/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/mpmath/tests/test_linalg.pytest_LU_decompr/   H   s   
	A
AQ<DAq1aA1A"#$QE!RL$ )K K K K
	A
AQ<DAq1aA1A"#$QE!RL$ )K K K K1A
&&(Ca18O8 % %s   D:Dc                      t         t        t        fD ]7  } t        |       }t	        | |z  t        | j                        z
  d      dk  r7J  y )Nr   g+=)A1A2A5inversemnormeyerows)r'   invs     r.   test_inverser9   ^   sF    "b\ 6ajQsUS[(!,v5556    c                  *   dt         _        t        t        }} t	        t        | |            \  }}}}|t        t        d      t        d      t        d      dgdt        d      t        d      t        d	      gdt        d
      t        d      t        d      gdt        d      t        d      t        d      gg      k(  sJ |ddt        d      gk(  sJ t        t        |d      d      dk(  sJ g d}d }g }g }	t        dd      D ]{  }
 ||
      } t	        t        | |            \  }}}}t        |      }t        |      }|j                  t        |d             |	j                  t        t        | ||      d             } |D cg c]  }t        |d       c}g dk(  sJ t        t        |      t        |	      z
  t              dk  sJ d }g }g }t        dd      D ]  }
 ||
      } t	        | j                               \  }}}}|j                  t        |d             |j                  t        t        | d d d |
dz
  f   || d d |
dz
  f         d              t        t        |      t        |      z
  t              dk  sJ y c c}w )N   z3.0z-2.0z-1.0r   g      z3.333333333333333z-2.9999999999999991z2.0z-0.66666666666666674z2.8142135623730948z-2.8284271247461898r   z-1.3333333333333333z-0.20000000000000018z4.2426406871192857r   z-1.4142135623730949r   r   gv@)gJ+Y@gy&1,M@g%C;B@g(\O8@g1Z1@gn(@gMb"@g(\@gq=
ףp@gʡE@gy&1,@g/$@c           	          g }t        dd      D ]7  }|j                  t        d| dz         D cg c]  }d||z   dz
  z   c}       9 t        |      S c c}w )Nr      r   )rangeappendmatrix)nr'   r,   js       r.   coeffztest_householder.<locals>.coefft   s\    q" 	BAHHaQ@1bAEAI&@A	Bay As   A
r	   )gRmX.@g8hi\?g5Żڌ^?g?g A8C?vIh%<=c                     t        d| z  |       }t        d| z  ddd      }|j                  d       }t        |d d df         |z  t        |d | df         z  }|S )Nr   r   r   minmaxc                 4    t        dt               z  | z        S )Ny              ?)exppir+   s    r.   <lambda>z9test_householder.<locals>.hilbert_cmplx.<locals>.<lambda>   s    c"RT'!)n r:   r   )hilbertr&   applydiag)rB   r'   vs      r.   hilbert_cmplxz'test_householder.<locals>.hilbert_cmplx   sc    AaCNqsA21-GG,-1Q3LN4"1"Q$=(r:   r   )mpdpsA8b8householderextendrA   mpfr#   normr?   r@   residualinfr   )r'   r(   Hr)   r+   rr*   rD   	residualsrefresrB   resrS   residuals_cmplxrefres_cmplxs                  r.   test_householderre   c   s   BFrqAVAq\*JAq!Q	%j#f+s6{A.
3"#C(=$>s5zJ
C&',@(A	
 "	3$%c*@&A	
!	"# # # # R234444aR $6666	A IF1a[ 2!H 1.
1a1I1Ia$d8Aq!,a012 '00sE#rN0 5# # # # y!F6N2C86AAA OL1b\ G! *
1atAqz*D!AdqsdF)Q!AaC%!A1EF	G
 '&*>>DvMMM) 1s   	Jc                  l    t        d      } t        |       \  }}}t        || z  ||z  z
  d      dk  sJ y )Nr   r   gV瞯<)r&   lur5   )r'   PLUs       r.   test_factorizationrk      s;    1AeGAq!1qsA'''r:   c            	         t        t        t        t        t        t              t              t
              dk  sJ t        t        t        t        t        t              t              t
              dk  sJ t        t        t        t        t        t              t              t
              dk  sJ t        t        t        t        t        t              d   t              t
              dk  sJ t        t        t        t        t        t              d   t              t
              dk  sJ t        t        t        t        t        t              d   t              d      dk  sJ t        t        t        t        t        t              t              d      dk  sJ t        t        t        t        t        t              d   t              d      dk  sJ y )Ng|=      ?go   @r   r   g333333@)r[   r\   A6lu_solveb6r]   A7b7rV   rW   qr_solveA10b10 r:   r.   
test_solverw      s>   Xb"-r2C86AAAXb"-r2C83>>>Xb"-r2C8JFFFXb"-a0"5s;fDDDXb"-a0"5s;cAAAXb"-a0"5q9S@@@hsC0#6:VCCChsC03S91=FFFr:   c            	          t        ddgddgddgg      } t        dt        z   dt         g      }t        t        | t	        | |      |            dk  sJ y )	Nr   y               @r   y              @r   r   r   g|a2U?)rA   rC   r[   r\   ro   )r'   r(   s     r.   test_solve_overdet_complexry      sW    B!R1a&)*AAq1"~AHQNA./&888r:   c                      dt         _        ddgddgg} t        t        d            }ddg}d| d	|d
d|d	|d
d| d	|d
d|d	|d
fD ]%  t	        j
                  t        t        ffd       ' y )Nr<   r   g333333?g?g?r   r   z	lu_solve(z, )z	qr_solve(c                      t               S N)eval)r,   s   r.   rN   ztest_singular.<locals>.<lambda>   s    tAw r:   )rT   rU   reprzerospytestraisesZeroDivisionError
ValueError)r'   Br(   r,   s      @r.   test_singularr      sx    BF
seR[!AU1XA	
AA$%q)A+F$%q)A+FH H(*5GHr:   c                  f   t         j                  t         j                  t                    t         j                  g dg dg dg      k(  sJ t         j	                  t        t
              } t         j                  t         j                  t        | t
              t         j                        dk(  sJ y )N)r   r   r   )r   r   r   )r   g      rm   r   )	fpcholeskyrA   A9cholesky_solveb9r[   r\   r]   rM   s    r.   test_choleskyr      sm    ;;ryy}%Iy/3Z)[[[[
"b!A772;;r1b)2662a777r:   c                  p   t        t              dk(  sJ t        t        t              d      dk(  sJ t        t        t                    dk(  sJ t        t        t
                    dk(  sJ t        t              dk(  sJ t        t        t                    dk(  sJ t        t        d            dk(  sJ y )	Nr   r      i*  iC ir   r   )	detr1   r#   r2   r   r$   r3   rn   r   rv   r:   r.   test_detr      s    r7a<<R""""R>T!!!R>W$$$r7a<<R>X%%%uQx=Ar:   c                      dt         _        t        ddgddgg      } t        | d       t	        d      k(  sJ t        | d       t	        d      k(  sJ t        | d	       t	        d
      k(  sJ y )Nr<   g6?gꕲq?ga2U0*?gBiq?c                     t        | d      S )Nr   r5   rM   s    r.   rN   ztest_cond.<locals>.<lambda>   s    U1QZ r:   z327065209.73817754c                 "    t        | t              S r}   )r5   r]   rM   s    r.   rN   ztest_cond.<locals>.<lambda>   s    U1S\ r:   c                     t        | d      S )NFr   rM   s    r.   rN   ztest_cond.<locals>.<lambda>   s    U1S\ r:   z249729266.80008656)rT   rU   rA   condrZ   r'   s    r.   	test_condr      sv    BF 66"234A'(C0D,EEEE)*c2F.GGGG)*c2F.GGGGr:   r   c                  h    t        dd      } t        t        t        |             | z
  d      dk  sJ y )Nr   r   gj7֖6)r&   r5   r4   r   s    r.   test_precisionr      s1    2rA$q(!,v555r:   c                  t   dt         _        dt        _        t        j                  g dg dg dg      } t        j                  g d      }t        j	                  | |      }|d   j
                  dk  sJ |d   j
                  dk  sJ |d	   j
                  dk  sJ d
|d   v sJ d|d   v sJ d|d	   v sJ y )Nr<   )z0.1z0.3z1.0)z7.1z5.5z4.8)z3.2z4.4z5.6)4z0.6z0.5r   rE   r   r   giE'n@gFxlbO*g'ɮ@)rT   rU   ivrA   ro   delta)ar(   cs      r.   test_interval_matrixr      s    BFBF
		&':;NOPA
		#$A
AqAQ4::Q4::Q4::$!,,,$!,,,$!,,,r:   c                      t        d      } t        |       }| j                  t        |       k(  sJ d| d<   | j                  J y )Nr   )r   r   )r&   r    _LU)r'   LUs     r.   test_LU_cacher      sA    1A	1B55IaL   AcF55==r:   c                      t        ddd      } t        dddd      }t        | |      t        dddd	      z   }t        | ||      }t        t	        | ||      d
      t        t	        | ||      d
      k  sJ y )Nr   g#B;g@xDrG   r   r   i  gh㈵gh㈵>r   )r&   ro   improve_solutionr[   r\   )r'   r(   x1x2s       r.   test_improve_solutionr      sw    1%T*A1aU-A	!Q*Qu%@	@B	!R	#BB"A&hq"a.@!)DDDDr:   c            	      2   t        d      D ]  } d}d}||z   t        _        d}d}t        d|dz         }t        |      }t        |D cg c]  }t	        |       c}      }t        |      dk  r%t        |      }	t        |	      }t        |      dk  r%	|z  }	|	dz  |z  |	z  }
|	dz  |z  |	z  }|t        _        t        |
d      }||z   t        _        ||z
  }|t        _        t        |t              j                  d      rJ  dt        _        y c c}w )	Nr   r<   r   r   g{Gz?r   pade)method)r?   rT   rU   rQ   rK   absr&   r   expmr[   r]   ae)r,   rU   extradmNdgr   r+   expama1e2e1ds                 r.   test_exp_pader      s   1X "u1QqS\HR(SV() "gn1AQB "gn bDUQY]UT\A"V$uGAs|q!!!1"2 BF# )s   D
c            	         dt         _        d} d}d}d}t        d      }t        dd      D ]M  }d}d	}t	        |d
z        }t        |t               z        }t        |t               z        }	t        t        ||	            }
t        t        ||	            }t         j                  |
|      }|rpd}d}t        d|      D ]\  }t        d|
      D ]K  }t        | || z
  t               z  z         }t        | || z
  t               z  z         }t        ||      |||f<   M ^ nRd}d}t        d|      D ]?  }t        d|
      D ].  }t        | || z
  t               z  z         }t        |      |||f<   0 A t        |||      \  }}t        d      }t        |||z  z
        }||k  sJ |dk(  rVt        t        |
      |j                  |z  z
        }||k  sJ t        t        |
      ||j                  z  z
        }||k  sJ |dk(  st        t        |
      |j                  |j!                         z  z
        }||k  sJ t        t        |
      |j!                         |j                  z  z
        }||k  rNJ  y )Nr<   ir   r
   Fz0.0r   r   fullr   complexTreal)edpsz1.0E-11)rT   rU   rZ   xrangeboolnintrandintrI   rH   rA   mpcqrr[   r6   T	conjugate)lowlimituplimitmaxmflgzerokexdpsmodenum1num2r   rB   r'   dtyperC   r,   valval2QRmaxnormn1s                         r.   test_qrr     s   BFHGD
Cu:DAb\ <!1q5k DK DK D$ D$  IIaN CEAa[ ,! ,Ax78+;TV*CCDCGH,<df+D DED d^AacF,, CEAa[ &! &Ax78+;TV*CCDC XAacF&& !T%(1 i.!a!e)_W}}F?c!fqssQw&'B= =c!fq133w&'B= =Ic!fqssQ[[]223B= =c!fq{{}qss223B= =y<!r:   )2
__future__r   r   mpmathlibmpbackendr   rT   r    r!   r"   rX   r   rA   r1   b1r2   b2r   r   r$   r%   r3   rn   rp   rq   rr   rV   rW   r   r   rt   ru   r/   r9   re   rk   rw   ry   r   r   r   r   extradpsr   r   r   r   r   r   rv   r:   r.   <module>r      s      			 LL	
**
**nn&& Y     !!!!!	# $
 33333	5 6
 &\  //9; < 'aYV!W  Y  \  $  ,6
5Nn(
G9
H8
H 
"6 6-E8D!r:   