Opened 10 years ago
Closed 7 years ago
#8969 closed defect (fixed)
problems with maxima inequalities
Reported by: | dsm | Owned by: | burcin |
---|---|---|---|
Priority: | minor | Milestone: | sage-5.1 |
Component: | symbolics | Keywords: | sd40.5 |
Cc: | Merged in: | sage-5.1.beta5 | |
Authors: | Douglas McNeil | Reviewers: | Karl-Dieter Crisman |
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description (last modified by )
'Sage Version 4.4.1, Release Date: 2010-05-02'
mac 10.4 32 bit running on 10.5.8.
sage: solve([2*x==3, x < 10], x) [[x == (3/2)]] sage: solve([2*x==3, x > 10], x) [] sage: solve([2*x==3, x == 10], x) [] sage: solve([2*x==3, x == 3/2], x) [[x == (3/2)]] sage: solve([2*x==3, x < 4, x > 4], x) []
all work as expected, but:
sage: solve([2*x==3, x != 5], x) ----------------------------------------------------------- !TypeError Traceback (most recent call last) /Applications/sage/devel/sage-main/build/sage/<ipython console> in <module>() /Applications/sage/local/lib/python2.6/site-packages/sage/symbolic/relation.pyc in solve(f, *args, **kwds) 670 s = [] 671 --> 672 sol_list = string_to_list_of_solutions(repr(s)) 673 if 'solution_dict' in kwds and kwds!['solution_dict']==True: 674 if isinstance(sol_list![0], list): ]/Applications/sage/local/lib/python2.6/site-packages/sage/symbolic/relation.pyc in string_to_list_of_solutions(s) 455 from sage.structure.sequence import Sequence 456 from sage.calculus.calculus import symbolic_expression_from_maxima_string --> 457 v = symbolic_expression_from_maxima_string(s, equals_sub=True) 458 return Sequence(v, universe=Objects(), cr_str=True) 459 /Applications/sage/local/lib/python2.6/site-packages/sage/calculus/calculus.py in symbolic_expression_from_maxima_string(x, equals_sub, maxima) 1527 return symbolic_expression_from_string(s, syms, accept_sequence=True) 1528 except !!!!SyntaxError: -> 1529 raise !TypeError, "unable to make sense of Maxima expression '%s' in Sage"%s 1530 finally: 1531 is_simplified = False !TypeError: unable to make sense of Maxima expression '[[x==3/2,-7/2!==0]]' in Sage
--
The !==
which is causing trouble is due to the
if equals_sub: s = s.replace('=','==')
lines in symbolic_expression_from_maxima_string
. This could be fixed by changing the replace to a regexp, or adding a hack s = s.replace('!==', '!=')
afterwards.
Attachments (1)
Change History (10)
comment:1 Changed 10 years ago by
- Description modified (diff)
comment:2 Changed 9 years ago by
- Description modified (diff)
comment:3 Changed 8 years ago by
- Description modified (diff)
- Keywords sd40.5 added
- Status changed from new to needs_review
comment:4 Changed 8 years ago by
It was all one ticket in my head, but maybe it makes more sense to separate them. Might as well address the low-hanging fruit.
comment:5 Changed 8 years ago by
The problem wasn't really our translation of Maxima's inequality (#
, which we finally fixed a while ago) but rather that we then had this little hack already.
But all of your tests already work in Sage 5.0, because of the #
replacement. It really has to test the original bug report example, otherwise this is trivial. I suggest
sage: from sage.calculus.calculus import symbolic_expression_from_maxima_string as sefms sage: sefms("x != 3") == SR(x != 3) True sage: sefms("x # 3") == SR(x != 3) True sage: solve([2*x==3, x != 5], x) [[x == (3/2), (-7/2) != 0]]
comment:6 Changed 8 years ago by
Oy, you're right that I truncated the original bug test (!). But we do need to fix !==
to round-trip neq, so I think it's worth doing.
comment:7 Changed 8 years ago by
- Reviewers set to Karl-Dieter Crisman
- Status changed from needs_review to positive_review
Positive review.
comment:8 Changed 8 years ago by
- Milestone set to sage-5.1
comment:9 Changed 7 years ago by
- Merged in set to sage-5.1.beta5
- Resolution set to fixed
- Status changed from positive_review to closed
DSM, is this really all one ticket? It's kind of confusing.