Ticket #11897: trac_11897-fix_noisy_zeroes_in_eigenvalues.reviewer.patch

File trac_11897-fix_noisy_zeroes_in_eigenvalues.reviewer.patch, 1.7 KB (added by leif, 10 years ago)

Sage library patch. Apply on top of Rob's (rebased) patch.

  • sage/matrix/matrix2.pyx

    # HG changeset patch
    # User Leif Leonhardy <not.really@online.de>
    # Date 1317918037 -7200
    # Node ID c2d634237f927447c7c7a57b32638805392d977f
    # Parent  a4beb80e6740686de73b22c6e1b56144c98aec43
    #11897 Reviewer patch: Fix noisy zeroes in eigenvalues.
    
    diff --git a/sage/matrix/matrix2.pyx b/sage/matrix/matrix2.pyx
    a b  
    52795279       
    52805280            sage: A = matrix(QQ, 3, 3, range(9))
    52815281            sage: em = A.change_ring(RDF).eigenmatrix_left()
    5282             sage: evalues = em[0]; evalues
     5282            sage: evalues = em[0]; evalues.dense_matrix().zero_at(2e-15)
    52835283            [    13.3484692...                 0                 0]
    52845284            [                0    -1.34846922...                 0]
    5285             [                0                 0 -6.2265089...e-16]
     5285            [                0                 0                 0]
    52865286            sage: evectors = em[1];
    52875287            sage: for i in range(3):
    52885288            ...       scale = evectors[i,0].sign()
     
    53685368       
    53695369            sage: B = matrix(QQ, 3, 3, range(9))
    53705370            sage: em = B.change_ring(RDF).eigenmatrix_right()
    5371             sage: evalues = em[0]; evalues
     5371            sage: evalues = em[0]; evalues.dense_matrix().zero_at(2e-15)
    53725372            [     13.3484692...                  0                  0]
    53735373            [                 0     -1.34846922...                  0]
    5374             [                 0                  0 -8.86256604...e-16]
     5374            [                 0                  0                  0]
    53755375            sage: evectors = em[1];
    53765376            sage: for i in range(3):
    53775377            ...       scale = evectors[0,i].sign()