Ë
    qwj_  ã                   óv   — d Z g ZddlZddlmZmZ  G d„ dej                  j                  «      Z	ddl
mZ d	d„Zy)
zz
Matrix square root for general matrices and for upper triangular matrices.

This module exists to avoid cyclic imports.

é    Né   )ÚztrsylÚdtrsylc                   ó   — e Zd Zy)Ú
SqrtmErrorN)Ú__name__Ú
__module__Ú__qualname__© ó    úa/var/www/html/newmanjeet/manjet/venv/lib/python3.12/site-packages/scipy/linalg/_matfuncs_sqrtm.pyr   r      s   „ Ør   r   )Úwithin_block_loopc           	      ó  — t        j                  | «      }t        j                  | «      xr t        j                  |d¬«      dk\  }|sLt        j                  | t         j
                  d¬«      } t        j                  |t         j
                  ¬«      }nKt        j                  | t         j                  d¬«      } t        j                  |t         j                  ¬«      }t        j                  t        j                  |«      «      }| j                  \  }}t        ||z  d«      }t        ||«      \  }}|dz   }	||z
  }
|
|z  ||	z  z   |k7  rt        d«      ‚g }d}|
|f||	ffD ]0  \  }}t        |«      D ]  }|j                  |||z   f«       ||z  }Œ Œ2 	 t        || ||«       t        |«      D ]©  }||   \  }}t        |dz
  d
d
«      D ]Œ  }||   \  }}| ||…||…f   }||z
  dkD  r&||||…||…f   j%                  |||…||…f   «      z
  }|||…||…f   }|||…||…f   }|rt'        |||«      \  }}}nt)        |||«      \  }}}||z  |||…||…f<   ŒŽ Œ« |S # t        $ r}t!        |j"                  Ž |‚d	}~ww xY w)aÜ  
    Matrix square root of an upper triangular matrix.

    This is a helper function for `sqrtm` and `logm`.

    Parameters
    ----------
    T : (N, N) array_like upper triangular
        Matrix whose square root to evaluate
    blocksize : int, optional
        If the blocksize is not degenerate with respect to the
        size of the input array, then use a blocked algorithm. (Default: 64)

    Returns
    -------
    sqrtm : (N, N) ndarray
        Value of the sqrt function at `T`

    References
    ----------
    .. [1] Edvin Deadman, Nicholas J. Higham, Rui Ralha (2013)
           "Blocked Schur Algorithms for Computing the Matrix Square Root,
           Lecture Notes in Computer Science, 7782. pp. 171-182.

    g        )Úinitialr   ÚC)ÚdtypeÚorder)r   r   zinternal inconsistencyNéÿÿÿÿ)ÚnpÚdiagÚ	isrealobjÚminÚasarrayÚ
complex128Úfloat64ÚsqrtÚshapeÚmaxÚdivmodÚ	ExceptionÚrangeÚappendr   ÚRuntimeErrorr   ÚargsÚdotr   r   )ÚTÚ	blocksizeÚT_diagÚkeep_it_realÚRÚnÚnblocksÚbsmallÚnlargeÚblargeÚnsmallÚstart_stop_pairsÚstartÚcountÚsizeÚiÚeÚjÚjstartÚjstopÚistartÚistopÚSÚRiiÚRjjÚxÚscaleÚinfos                               r   Ú_sqrtm_triurB      s¾  € ô4 �W‰W�Q‹Z€FÜ—<‘< “?ÒF¤r§v¡v¨f¸bÔ'AÀQÑ'F€Lñ Ü�J‰J�q¤§¡°SÔ9ˆÜ—‘˜F¬"¯-©-Ô8‰ä�J‰J�q¤§
¡
°#Ô6ˆÜ—‘˜F¬"¯*©*Ô5ˆä
�‰”—‘˜“Ó €Að �7‰7�D€A€qÜ�!�y‘. !Ó$€Gô ˜A˜wÓ'�N€FˆFØ�a‰Z€FØ�vÑ€FØ��˜ &™Ñ(¨AÒ-ÜÐ0Ó1Ð1ð ÐØ€EØ Ð(¨6°6Ð*:Ó;‰ˆˆtÜ�u–ˆAØ×#Ñ# U¨E°D©LÐ$9Ô:Ø�T‰M‰Eñ ð <ð)Ü˜!˜QÐ 0°'Ô:ô
 �7Ž^ˆØ(¨Ñ+‰ˆ�Ü�q˜‘s˜B Ö#ˆAØ,¨QÑ/‰MˆF�EØ�&˜�,  u Ð,Ñ-ˆAØ�1‰u�qŠyØ˜˜& ˜,¨¨f¨Ð4Ñ5×9Ñ9¸!¸EÀ&¸LØ<BÀ5¸Lð=Iñ ;Jó Kñ K�ð �F˜5�L &¨ ,Ð.Ñ/ˆCØ�F˜5�L &¨ ,Ð.Ñ/ˆCÙÜ!'¨¨S°!Ó!4‘��5™$ä!'¨¨S°!Ó!4‘��5˜$Ø,-°©IˆAˆf�Uˆl˜F 5˜LÐ(Ò)ñ! $ð ð* €Høô3 ò )Ü˜!Ÿ&™&Ð! qÐ(ûð)ús   ÆI É	J É(I;É;J )é@   )Ú__doc__Ú__all__Únumpyr   Úlapackr   r   ÚlinalgÚLinAlgErrorr   Ú_matfuncs_sqrtm_triur   rB   r   r   r   Ú<module>rK      s:   ðñð €ã ÷ #ô	�—‘×&Ñ&ô 	õ 4ôWr   