Source code for disropt.utils.utilities

import numpy as np


[docs]def is_pos_def(P: np.ndarray) -> bool: """check if a matrix is positive definite Args: P (numpy.ndarray): matrix Returns: bool: """ return np.all(np.linalg.eigvals(P) > 0)
[docs]def is_semi_pos_def(P: np.ndarray) -> bool: """check if a matrix is positive semi-definite Args: P (numpy.ndarray): matrix Returns: bool: """ return np.all(np.linalg.eigvals(P) >= 0)
[docs]def check_symmetric(A: np.ndarray, rtol: float=1e-05, atol: float=1e-08) -> bool: """check if a matrix is symetric Args: A (numpy.ndarray): matrix rtol (float): Defaults to 1e-05. atol (float): Defaults to 1e-08. Returns: bool: """ return np.allclose(A, A.transpose(), rtol=rtol, atol=atol)