§
    fŠtj_  ã                   ój   — 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dS )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dS )Ú
SqrtmErrorN)Ú__name__Ú
__module__Ú__qualname__© ó    úZ/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/linalg/_matfuncs_sqrtm.pyr   r      s   € € € € € Ø€Dr   r   )Úwithin_block_loopé@   c           	      ó:  — t          j        | ¦  «        }t          j        | ¦  «        ot          j        |d¬¦  «        dk    }|sBt          j        | t           j        d¬¦  «        } t          j        |t           j        ¬¦  «        }nAt          j        | t           j        d¬¦  «        } t          j        |t           j        ¬¦  «        }t          j        t          j        |¦  «        ¦  «        }| j        \  }}t          ||z  d¦  «        }t          ||¦  «        \  }}|dz   }	||z
  }
|
|z  ||	z  z   |k    rt          d¦  «        ‚g }d}|
|f||	ffD ]6\  }}t          |¦  «        D ]!}|                     |||z   f¦  «         ||z  }Œ"Œ7	 t          || ||¦  «         n!# t          $ r}t!          |j        Ž |‚d	}~ww xY wt          |¦  «        D ]Í}||         \  }}t          |dz
  d
d
¦  «        D ]«}||         \  }}| ||…||…f         }||z
  dk    r0||||…||…f                              |||…||…f         ¦  «        z
  }|||…||…f         }|||…||…f         }|rt'          |||¦  «        \  }}}nt)          |||¦  «        \  }}}||z  |||…||…f<   Œ¬ŒÎ|S )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_triurC      s5  € õ4 ŒW�Q‰ZŒZ€FÝ”< ‘?”?ÐF¥r¤v¨f¸bÐ'AÑ'AÔ'AÀQÒ'F€Lð ð 6ÝŒJ�q¥¤°SÐ9Ñ9Ô9ˆÝ”˜F­"¬-Ð8Ñ8Ô8ˆˆåŒJ�q¥¤
°#Ð6Ñ6Ô6ˆÝ”˜F­"¬*Ð5Ñ5Ô5ˆå
Œ•”˜‘”Ñ Ô €Að Œ7�D€A€qÝ�!�y‘. !Ñ$Ô$€Gõ ˜A˜wÑ'Ô'�N€FˆFØ�a‰Z€FØ�vÑ€FØ��˜ &™Ñ(¨AÒ-Ð-ÝÐ0Ñ1Ô1Ð1ð ÐØ€EØ Ð(¨6°6Ð*:Ð;ð ð ‰ˆˆtÝ�u‘”ð 	ð 	ˆAØ×#Ò# U¨E°D©LÐ$9Ñ:Ô:Ð:Ø�T‰MˆEˆEð	ð
)Ý˜!˜QÐ 0°'Ñ:Ô:Ð:Ð:øÝð )ð )ð )Ý˜!œ&Ð! qÐ(øøøøð)øøøõ �7‰^Œ^ð 6ð 6ˆØ(¨Ô+‰ˆ�Ý�q˜‘s˜B Ñ#Ô#ð 	6ð 	6ˆAØ,¨QÔ/‰MˆF�EØ�&˜�,  u Ð,Ô-ˆAØ�1‰u�qŠyˆyØ˜˜& ˜,¨¨f¨Ð4Ô5×9Ò9¸!¸EÀ&¸LØ<BÀ5¸Lð=Iô ;Jñ Kô Kñ K�ð �F˜5�L &¨ ,Ð.Ô/ˆCØ�F˜5�L &¨ ,Ð.Ô/ˆCØð 5Ý!'¨¨S°!Ñ!4Ô!4‘��5˜$˜$å!'¨¨S°!Ñ!4Ô!4‘��5˜$Ø,-°©IˆAˆf�Uˆl˜F 5˜LÐ(Ñ)Ð)ð!	6ð& €Hs   Æ
F Æ
F;Æ'F6Æ6F;)r   )Ú__doc__Ú__all__Únumpyr   Úlapackr   r   ÚlinalgÚLinAlgErrorr   Ú_matfuncs_sqrtm_triur   rC   r   r   r   ú<module>rK      s£   ððð ð €à Ð Ð Ð ð #Ð "Ð "Ð "Ð "Ð "Ð "Ð "ð	ð 	ð 	ð 	ð 	�”Ô&ñ 	ô 	ð 	ð 4Ð 3Ð 3Ð 3Ð 3Ð 3ðWð Wð Wð Wð Wð Wr   