##// END OF EJS Templates
Merge pull request #1399 from asmeurer/sympyprinting...
Merge pull request #1399 from asmeurer/sympyprinting Use LaTeX to display, on output, various built-in types with the SymPy printing extension. SymPy's latex() function supports printing lists, tuples, and dicts using latex notation (it uses bmatrix, pmatrix, and Bmatrix, respectively). This provides a more unified experience with SymPy functions that return these types (such as solve()). Also display ints, longs, and floats using LaTeX, to get a more unified printing experience (so that, e.g., x/x will print the same as just 1). The string form can always be obtained by manually calling the actual print function, or 2d unicode printing using pprint(). SymPy's latex() function doesn't treat set() or frosenset() correctly presently (see http://code.google.com/p/sympy/issues /detail?id=3062), so for the present, we leave those alone.

File last commit:

r2267:928c921b
r6482:ba882bf7 merge
Show More
numeric_formats.py
43 lines | 1.2 KiB | text/x-python | PythonLexer
# -*- coding: utf-8 -*-
"""
Extension for printing Numeric Arrays in flexible ways.
"""
from Numeric import ArrayType
def num_display(self,arg):
"""Display method for printing which treats Numeric arrays specially.
"""
# Non-numpy variables are printed using the system default
if type(arg) != ArrayType:
self._display(arg)
return
# Otherwise, we do work.
format = __IPYTHON__.runtime_rc.numarray_print_format
print 'NumPy array, format:',format
# Here is where all the printing logic needs to be implemented
print arg # nothing yet :)
def magic_format(self,parameter_s=''):
"""Specifies format of numerical output.
This command is similar to Ocave's format command.
"""
valid_formats = ['long','short']
if parameter_s in valid_formats:
self.runtime_rc.numarray_print_format = parameter_s
print 'Numeric output format is now:',parameter_s
else:
print 'Invalid format:',parameter_s
print 'Valid formats:',valid_formats
# setup default format
__IPYTHON__.runtime_rc.numarray_print_format = 'long'
# Bind our new functions to the interpreter
__IPYTHON__.__class__.magic_format = magic_format
__IPYTHON__.hooks.display = num_display