Opened 10 years ago
Last modified 7 years ago
#11596 needs_work defect
Cached eigenstuff is mutable
Reported by: | rbeezer | Owned by: | jason, was |
---|---|---|---|
Priority: | major | Milestone: | sage-6.4 |
Component: | linear algebra | Keywords: | |
Cc: | jason, simonking | Merged in: | |
Authors: | Reviewers: | ||
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description
Ooops.
sage: A = matrix(QQ, 2, 2, range(4)) sage: ev = A.eigenvalues() sage: ev [-0.5615528128088302?, 3.561552812808830?] sage: ev[0]=300 sage: A.eigenvalues() [300, 3.561552812808830?]
I suspect eigenspaces and eigenmatrices might also need a look.
Attachments (2)
Change History (15)
comment:1 Changed 10 years ago by
- Cc jason added
comment:2 Changed 10 years ago by
comment:3 Changed 10 years ago by
(that's in matrix/matrix2.pyx)
comment:4 Changed 10 years ago by
And also change at the bottom of the function to return a copy of V
comment:5 Changed 10 years ago by
- Status changed from new to needs_review
comment:6 Changed 10 years ago by
- Status changed from needs_review to needs_work
comment:7 Changed 10 years ago by
I just noticed this ticket, too. Here's my version of a patch. Maybe we can combine the best of the two of them to get a single patch.
comment:8 Changed 10 years ago by
(I searched for cached information in matrix2.pyx
and tried to fix anything which was not already immutable.)
comment:9 Changed 10 years ago by
- Cc simonking added
Ah, I forgot that you can have an immutable sequence. Nice.
Also, I wonder if we can use Simon King's work on cached methods? CCing him to get his thoughts.
comment:10 Changed 8 years ago by
- Milestone changed from sage-5.11 to sage-5.12
comment:11 Changed 7 years ago by
- Milestone changed from sage-6.1 to sage-6.2
comment:12 Changed 7 years ago by
- Milestone changed from sage-6.2 to sage-6.3
comment:13 Changed 7 years ago by
- Milestone changed from sage-6.3 to sage-6.4
Note: See
TracTickets for help on using
tickets.
Change this in the def eigenvalues():
to this (add an else...)