#20312: parent of argument lost with Functions
-----------------------------+------------------------
Reporter: rws | Owner:
Type: defect | Status: new
Priority: major | Milestone: sage-7.2
Component: symbolics | Resolution:
Keywords: | Merged in:
Authors: | Reviewers:
Report Upstream: N/A | Work issues:
Branch: | Commit:
Dependencies: | Stopgaps:
-----------------------------+------------------------
Description changed by rws:
Old description:
> Except for some classes, Python objects as function arguments are coerced
> into SR, but with `GinacFunction`s the parent gets lost, i.e. the result
> is not converted back. Ths violates the rule that function input and
> output should be of the same type.
> {{{
> sage: S.<y> = PolynomialRing(RR)
> sage: ex = sin(asin(y)); ex
> y
> sage: type(ex)
> <type 'sage.symbolic.expression.Expression'>
> sage: ex.is_symbol()
> True
> }}}
> This also shows that the notion "SR encapsulates all Sage objects" is
> wrong because everything coerces into SR. SR only encapsulates certain
> "numeric" objects. Pynac can't be blamed as it only sees expressions. The
> problem is in `symbolic/function.pyx` where the parent of function
> arguments is lost.
>
> See also #18832
New description:
Except for some classes, Python objects as function arguments are coerced
into SR, but with `GinacFunction`s as well as with `BuiltinFunction`s the
parent gets lost, i.e. the result is not converted back. Ths violates the
rule that function input and output should be of the same type.
{{{
sage: S.<y> = PolynomialRing(RR)
sage: ex = sin(asin(y)); ex
y
sage: type(ex)
<type 'sage.symbolic.expression.Expression'>
sage: ex.is_symbol()
True
}}}
This also shows that the notion "SR encapsulates all Sage objects" is
wrong because everything coerces into SR. SR only encapsulates certain
"numeric" objects. Pynac can't be blamed as it only sees the coerced
expressions. The problem is in
`symbolic/function.pyx:BuiltinFunction.__call__` where the parent of
function arguments is lost.
See also #18832 and maybe #17790.
--
--
Ticket URL: <http://trac.sagemath.org/ticket/20312#comment:3>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.