Ticket #10791: trac_10791-gram-schmidt-negative-zero.patch

File trac_10791-gram-schmidt-negative-zero.patch, 2.4 KB (added by rbeezer, 10 years ago)
  • sage/matrix/matrix2.pyx

    # HG changeset patch
    # User Rob Beezer <beezer@ups.edu>
    # Date 1314237739 25200
    # Node ID b2ae189109c9c12e7b030edf5bc89301122a953d
    # Parent  5a85b2c16e3e065118af6c9abff1f72684269644
    10791: Gram-Schmidt doctests to handle negative zeros
    
    diff --git a/sage/matrix/matrix2.pyx b/sage/matrix/matrix2.pyx
    a b  
    75937593            [-0.422243 - 0.490087*I  0.566698 - 0.097416*I -0.500882 + 0.002251*I]
    75947594            [-0.057002 - 0.495035*I  -0.35059 - 0.625323*I  0.255514 - 0.415284*I]
    75957595            [ 0.394105 - 0.421778*I -0.392266 - 0.039345*I  -0.352905 + 0.62195*I]
    7596             sage: M.round(6)
     7596            sage: M.round(6).zero_at(10^-6)
    75977597            [             -1.528503                      0                      0]
    75987598            [  0.459974 - 0.40061*I              -1.741233                      0]
    75997599            [-0.934304 + 0.148868*I   0.54833 + 0.073202*I              -0.550725]
     
    76127612            sage: A = matrix(RDF, [[-0.978325, -0.751994, 0.925305, -0.200512, 0.420458],
    76137613            ...                    [-0.474877, -0.983403, 0.089836,  0.132218, 0.672965]])
    76147614            sage: G, M = A.gram_schmidt(orthonormal=False)
    7615             sage: G.round(6)
     7615            sage: G.round(6).zero_at(10^-6)
    76167616            [-0.607223 -0.466745  0.574315 -0.124453  0.260968]
    76177617            [ 0.123203 -0.617909 -0.530578  0.289773  0.487368]
    7618             sage: M.round(6)
     7618            sage: M.round(6).zero_at(10^-6)
    76197619            [1.611147      0.0]
    76207620            [0.958116 0.867778]
    76217621            sage: (A-M*G).zero_at(10^-12)
    76227622            [0.0 0.0 0.0 0.0 0.0]
    76237623            [0.0 0.0 0.0 0.0 0.0]
    7624             sage: (G*G.transpose()).zero_at(10^-12)
     7624            sage: (G*G.transpose()).round(6).zero_at(10^-6)
    76257625            [1.0 0.0]
    76267626            [0.0 1.0]
    76277627
     
    76377637            2
    76387638            sage: B = matrix(RDF, entries)
    76397639            sage: G, M = B.gram_schmidt()
    7640             sage: G.round(6)
     7640            sage: G.round(6).zero_at(10^-6)
    76417641            [-0.408248 -0.408248 -0.816497]
    7642             [ 0.707107 -0.707107      -0.0]
     7642            [ 0.707107 -0.707107       0.0]
    76437643            [ -0.57735  -0.57735   0.57735]
    7644             sage: M.round(10)
     7644            sage: M.round(10).zero_at(10^-10)
    76457645            [-2.4494897428           0.0           0.0]
    76467646            [-3.6742346142  0.7071067812           0.0]
    76477647            [-4.8989794856  1.4142135624           0.0]