diff --git a/symengine/__init__.py b/symengine/__init__.py index 5085641d..d2643602 100644 --- a/symengine/__init__.py +++ b/symengine/__init__.py @@ -29,7 +29,8 @@ FunctionSymbol as AppliedUndef, golden_ratio as GoldenRatio, catalan as Catalan, - eulergamma as EulerGamma + eulergamma as EulerGamma, + unicode ) from .utilities import var, symbols from .functions import * diff --git a/symengine/lib/symengine.pxd b/symengine/lib/symengine.pxd index 10a3b33c..14576130 100644 --- a/symengine/lib/symengine.pxd +++ b/symengine/lib/symengine.pxd @@ -1103,6 +1103,7 @@ cdef extern from "" namespace "SymEngine": string ccode(const Basic &x) nogil except + string latex(const Basic &x) nogil except + string latex(const DenseMatrix &x, unsigned max_rows, unsigned max_cols) nogil except + + string unicode(const Basic &x) nogil except + ## Defined in 'symengine/cwrapper.cpp' cdef struct CRCPBasic: diff --git a/symengine/lib/symengine_wrapper.pyx b/symengine/lib/symengine_wrapper.pyx index 4bba5f5f..61fbef34 100644 --- a/symengine/lib/symengine_wrapper.pyx +++ b/symengine/lib/symengine_wrapper.pyx @@ -5471,6 +5471,11 @@ def latex(expr): basic_expr = sympify(expr) return symengine.latex(deref(basic_expr.thisptr)).decode("utf-8") +def unicode(expr): + cdef Basic basic_expr + basic_expr = sympify(expr) + return symengine.unicode(deref(basic_expr.thisptr)).decode("utf-8") + cdef _flattened_vec(symengine.vec_basic &vec, exprs): cdef Basic b if is_sequence(exprs): diff --git a/symengine/tests/test_printing.py b/symengine/tests/test_printing.py index feea3650..6c5ec730 100644 --- a/symengine/tests/test_printing.py +++ b/symengine/tests/test_printing.py @@ -1,4 +1,4 @@ -from symengine import (ccode, Symbol, sqrt, Pow, Max, sin, Integer, MutableDenseMatrix) +from symengine import (ccode, unicode, Symbol, sqrt, Pow, Max, sin, Integer, MutableDenseMatrix) from symengine.utilities import raises from symengine.printing import CCodePrinter, init_printing @@ -30,3 +30,9 @@ def test_init_printing(): assert x._repr_latex_() is None init_printing() assert x._repr_latex_() == '$x$' + + +def test_unicode(): + x = Symbol("x") + y = Integer(2) + assert unicode(x / 2) == "x\n―\n2" diff --git a/symengine_version.txt b/symengine_version.txt index 37b09f41..f979adec 100644 --- a/symengine_version.txt +++ b/symengine_version.txt @@ -1 +1 @@ -36ac51d06e248657d828bfa4859cff32ab5f03ba +v0.9.0