Opened 11 years ago
Closed 6 years ago
#8626 closed defect (duplicate)
qqbar and SR
Reported by: | jason | Owned by: | AlexGhitza |
---|---|---|---|
Priority: | major | Milestone: | sage-duplicate/invalid/wontfix |
Component: | coercion | Keywords: | |
Cc: | cwitty | Merged in: | |
Authors: | Reviewers: | Marc Mezzarobba | |
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description (last modified by )
It would be nice if roots of quadratics printed using the quadratic formula in QQbar, i.e.,
sage: QQbar(sqrt(2)) sqrt(2)
Additionally, it would be nice if we could wrap qqbar elements as SR objects.
The first patch just affects printing of qqbar elements. The second lets you do more than just print (e.g., SR(QQbar(sqrt(2))) should give you sqrt(2), not just print sqrt(2))
Attachments (2)
Change History (17)
comment:1 Changed 11 years ago by
comment:2 Changed 11 years ago by
Another example with this patch:
sage: m=matrix(2,2,[0,1,1,1]);m [0 1] [1 1] sage: m.eigenvalues() [(--1-sqrt(5))/2, (--1+sqrt(5))/2]
comment:3 Changed 11 years ago by
That last patch corrects the double negative, so I get:
sage: m=matrix(2,2,[0,1,1,1]);m [0 1] [1 1] sage: m.eigenvalues() [(1-sqrt(5))/2, (1+sqrt(5))/2]
Changed 11 years ago by
comment:4 Changed 11 years ago by
I've attached a work-in-progress patch that allows qqbar elements to be converted to symbolics elements in a smart way, i.e., square roots become symbolic square roots, etc.
comment:5 Changed 11 years ago by
- Status changed from new to needs_work
comment:6 Changed 11 years ago by
- Cc cwitty added
- Priority changed from minor to major
Here is another problem that could probably be solved if qqbar elements could be converted to symbolics. The application for this example was trying to plot a line from the eigenvector of a matrix:
sage: A=matrix(QQ,2,2,[2,5,1,2]) sage: EV=A.right_eigenvectors() sage: EV [(-0.2360679774997897?, [(1, -0.4472135954999580?)], 1), (4.236067977499789?, [(1, 0.4472135954999580?)], 1)] sage: evec=EV[0][1][0] sage: var('t') t sage: evec.n()*t # works fine (t, -0.447213595499958*t) sage: t*evec Traceback (most recent call last): ... NotImplementedError: symbol
comment:7 Changed 11 years ago by
- Component changed from algebra to coercion
- Description modified (diff)
- Summary changed from qqbar quadratic elements to qqbar and SR
comment:8 Changed 11 years ago by
- Description modified (diff)
comment:9 Changed 8 years ago by
- Milestone changed from sage-5.11 to sage-5.12
comment:10 Changed 7 years ago by
Related: #14239
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
comment:14 Changed 6 years ago by
- Milestone changed from sage-6.4 to sage-duplicate/invalid/wontfix
- Reviewers set to Marc Mezzarobba
- Status changed from needs_work to positive_review
Duplicate of #14239
comment:15 Changed 6 years ago by
- Resolution set to duplicate
- Status changed from positive_review to closed
This patch almost certainly needs work, but does give some nice results:
Things are not simplified because I don't want to do any extra work in the printing.