Skip to content

coercing a vector to symbolic entries doesn't work when the vector's parent has a user-defined basis #3058

@jasongrout

Description

@jasongrout

The title is what I think is the real issue here:

sage: a=(QQ3).subspace([[1,0,1]])
sage: b=a.basis()[0]
sage: b/b.norm()
---------------------------------------------------------------------------
<type 'exceptions.TypeError'>             Traceback (most recent call last)

/home/grout/<ipython console> in <module>()

/home/grout/element.pyx in sage.structure.element.Vector.__div__ 
(sage/structure/element.c:10962)()

/home/grout/element.pyx in sage.structure.element.Vector.__mul__ 
(sage/structure/element.c:10413)()

/home/grout/coerce.pyx in 
sage.structure.coerce.CoercionModel_cache_maps.bin_op_c 
(sage/structure/coerce.c:5292)()

<type 'exceptions.TypeError'>: unsupported operand parent(s) for '*': 
'Vector space of degree 3 and dimension 1 over Rational Field
Basis matrix:
[1 0 1]' and 'Symbolic Ring'

Note that the following does work:

sage: b=vector(QQ,[1,0,1])
sage: b/b.norm()
(1/sqrt(2), 0, 1/sqrt(2))

Component: coercion

Issue created by migration from https://trac.sagemath.org/ticket/3058

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions