Skip to content

Provide convenient Expression.convert_numeric() #24850

@rwst

Description

@rwst

From https://groups.google.com/forum/#!topic/sage-support/3eCHzmJ1MXY:

sage: cm = units.length.centimeter;
sage: x = 1e-6*cm;
sage: x
(1.00000000000000e-6)*centimeter
sage: x.n(digits=2)


---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-4-3595ea137553> in <module>()
----> 1 x.n(digits=Integer(2))


/home/Scratch/Install/Linux/SageMath/sage-8.1-Fedora_26-x86_64/SageMath/src/sage/structure/element.pyx in sage.structure.element.Element.n (build/cythonized/sage/structure/element.c:8063)()
    861             0.666666666666667
    862         """
--> 863         return self.numerical_approx(prec, digits, algorithm)
    864 
    865     N = deprecated_function_alias(13055, n)


/home/Scratch/Install/Linux/SageMath/sage-8.1-Fedora_26-x86_64/SageMath/src/sage/symbolic/expression.pyx in sage.symbolic.expression.Expression.numerical_approx (build/cythonized/sage/symbolic/expression.cpp:36128)()
   5782             res = x.pyobject()
   5783         else:
-> 5784             raise TypeError("cannot evaluate symbolic expression numerically")
   5785 
   5786         # Important -- the  we get might not be a valid output for numerical_approx in


TypeError: cannot evaluate symbolic expression numerically

Simply call _convert() with the parent keyword.

Component: symbolics

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions