Ë
    ÏÍ:j8  ã                   ór   — d Z g ZddlZddl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é   )Úget_lapack_funcsc                   ó   — e Zd Zy)Ú
SqrtmErrorN)Ú__name__Ú
__module__Ú__qualname__© ó    úq/home/mcse/projects/srt_converter/srt-converter-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                  |«      «      }t        d|fd¬	«      }| 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 ]u  }||   \  }}| ||…||…f   }||z
  d
kD  r&||||…||…f   j'                  |||…||…f   «      z
  }|||…||…f   }|||…||…f   } ||||«      \  }}}||z  |||…||…f<   Œw Œ” |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   ÚtrsylÚ	preferred)Úilp64r   zinternal inconsistencyNéÿÿÿÿ)ÚnpÚdiagÚ	isrealobjÚminÚasarrayÚ
complex128Úfloat64Úsqrtr   ÚshapeÚmaxÚdivmodÚ	ExceptionÚrangeÚappendr   ÚRuntimeErrorr   ÚargsÚdot)ÚTÚ	blocksizeÚT_diagÚkeep_it_realÚRr   Ú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_triurD      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ä˜W q d°+Ô>€Eð �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‹^ò 6ˆØ(¨Ñ+‰ˆ�Ü�q˜‘s˜B Ó#ò 	6ˆ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Ù" 3¨¨QÓ/‰NˆAˆu�dØ,-°©IˆAˆf�Uˆl˜F 5˜LÐ(Ò)ñ	6ð6ð$ €Høô- ò )Ü˜!Ÿ&™&Ð! qÐ(ûð)ús   Æ'I É	I8É I3É3I8)é@   )Ú__doc__Ú__all__Únumpyr   Úlapackr   ÚlinalgÚLinAlgErrorr   Ú_matfuncs_sqrtm_triur   rD   r
   r   r   ú<module>rM      s:   ðñð €ã õ %ô	�—‘×&Ñ&ô 	õ 4ôVr   