]> gitweb.michael.orlitzky.com - sage.d.git/blobdiff - mjo/cone/symmetric_psd.py
mjo/cone: drop is_symmetric_p{s,}d() methods.
[sage.d.git] / mjo / cone / symmetric_psd.py
index fd6f9508196942cd59a578fc208324e87b7f326d..89eba53c9687823a0882304a49d9ddefc1d009db 100644 (file)
@@ -6,75 +6,6 @@ all symmetric positive-semidefinite matrices (as a subset of
 
 from sage.all import *
 
-def is_symmetric_psd(A):
-    """
-    Determine whether or not the matrix ``A`` is symmetric
-    positive-semidefinite.
-
-    INPUT:
-
-    - ``A`` - The matrix in question
-
-    OUTPUT:
-
-    Either ``True`` if ``A`` is symmetric positive-semidefinite, or
-    ``False`` otherwise.
-
-    SETUP::
-
-        sage: from mjo.cone.symmetric_psd import is_symmetric_psd
-
-    EXAMPLES:
-
-    Every completely positive matrix is symmetric
-    positive-semidefinite::
-
-        sage: set_random_seed()
-        sage: v = vector(map(abs, random_vector(ZZ, 10)))
-        sage: A = v.column() * v.row()
-        sage: is_symmetric_psd(A)
-        True
-
-    The following matrix is symmetric but not positive semidefinite::
-
-        sage: A = matrix(ZZ, [[1, 2], [2, 1]])
-        sage: is_symmetric_psd(A)
-        False
-
-    This matrix isn't even symmetric::
-
-        sage: A = matrix(ZZ, [[1, 2], [3, 4]])
-        sage: is_symmetric_psd(A)
-        False
-
-    The trivial matrix in a trivial space is trivially symmetric and
-    positive-semidefinite::
-
-        sage: A = matrix(QQ, 0,0)
-        sage: is_symmetric_psd(A)
-        True
-
-    """
-
-    if A.base_ring() == SR:
-        msg = 'The matrix ``A`` cannot be symbolic.'
-        raise ValueError.new(msg)
-
-    # First make sure that ``A`` is symmetric.
-    if not A.is_symmetric():
-        return False
-
-    # If ``A`` is symmetric, we only need to check that it is positive
-    # semidefinite. For that we can consult its minimum eigenvalue,
-    # which should be zero or greater. Since ``A`` is symmetric, its
-    # eigenvalues are guaranteed to be real.
-    if A.is_zero():
-        # A is trivial... so trivially positive-semudefinite.
-        return True
-    else:
-        return min(A.eigenvalues()) >= 0
-
-
 def unit_eigenvectors(A):
     """
     Return the unit eigenvectors of a symmetric positive-definite matrix.
@@ -254,8 +185,7 @@ def random_symmetric_psd(V, accept_zero=True, rank=None):
 
     SETUP::
 
-        sage: from mjo.cone.symmetric_psd import (is_symmetric_psd,
-        ....:                                     random_symmetric_psd)
+        sage: from mjo.cone.symmetric_psd import random_symmetric_psd
 
     EXAMPLES:
 
@@ -266,7 +196,7 @@ def random_symmetric_psd(V, accept_zero=True, rank=None):
         sage: A = random_symmetric_psd(V)
         sage: A.matrix_space()
         Full MatrixSpace of 2 by 2 dense matrices over Rational Field
-        sage: is_symmetric_psd(A)
+        sage: A.is_positive_semidefinite()
         True
 
     A matrix with the desired rank is returned::