# `linalg._matfuncs_sqrtm`¶

Matrix square root for general matrices and for upper triangular matrices.

This module exists to avoid cyclic imports.

## Module Contents¶

### Functions¶

 `_sqrtm_triu`(T,blocksize=64) Matrix square root of an upper triangular matrix. `sqrtm`(A,disp=True,blocksize=64) Matrix square root.
class `SqrtmError`
`_sqrtm_triu`(T, blocksize=64)

Matrix square root of an upper triangular matrix.

This is a helper function for sqrtm and logm.

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)
sqrtm : (N, N) ndarray
Value of the sqrt function at T
  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.
`sqrtm`(A, disp=True, blocksize=64)

Matrix square root.

A : (N, N) array_like
Matrix whose square root to evaluate
disp : bool, optional
Print warning if error in the result is estimated large instead of returning estimated error. (Default: True)
blocksize : integer, optional
If the blocksize is not degenerate with respect to the size of the input array, then use a blocked algorithm. (Default: 64)
sqrtm : (N, N) ndarray
Value of the sqrt function at A
errest : float

(if disp == False)

Frobenius norm of the estimated error, ||err||_F / ||A||_F

  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.
```>>> from scipy.linalg import sqrtm
>>> a = np.array([[1.0, 3.0], [1.0, 4.0]])
>>> r = sqrtm(a)
>>> r
array([[ 0.75592895,  1.13389342],
[ 0.37796447,  1.88982237]])
>>> r.dot(r)
array([[ 1.,  3.],
[ 1.,  4.]])
```