<?xml version="1.0" encoding="utf-8" ?> <!-- for emacs: -*- coding: utf-8 -*- --> <!-- Apache may like this line in the file .htaccess: AddCharset utf-8 .html --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat.dtd" > <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head><title>printing and formatting for new classes</title> <link rel="stylesheet" type="text/css" href="../../../../Macaulay2/Style/doc.css"/> </head> <body> <table class="buttons"> <tr> <td><div><a href="_making_spa_spnew_spmethod_spfunction.html">next</a> | <a href="_new__Class.html">previous</a> | <a href="_making_spa_spnew_spmethod_spfunction.html">forward</a> | <a href="_new.html">backward</a> | <a href="___The_sp__Macaulay2_splanguage.html">up</a> | <a href="index.html">top</a> | <a href="master.html">index</a> | <a href="toc.html">toc</a> | <a href="http://www.math.uiuc.edu/Macaulay2/">Macaulay2 web site</a></div> </td> </tr> </table> <div><a href="index.html" title="">Macaulay2Doc</a> > <a href="___The_sp__Macaulay2_splanguage.html" title="">The Macaulay2 language</a> > <a href="_printing_spand_spformatting_spfor_spnew_spclasses.html" title="">printing and formatting for new classes</a></div> <hr/> <div><h1>printing and formatting for new classes</h1> <div>After making a new type, it's desirable to install methods for displaying the instances of the new type in various formats.<table class="examples"><tr><td><pre>i1 : Qu = new Type of List o1 = Qu o1 : Type</pre> </td></tr> <tr><td><pre>i2 : w = new Qu from {1,-2,0,4} o2 = {1, -2, 0, 4} o2 : Qu</pre> </td></tr> </table> For example, it's desirable to display the quaternion above so it looks like a quaternion. One way to achieve this is to install first a method for creating an <a href="___Expression.html" title="the class of all expressions">Expression</a> from a quaternion, since there are methods already installed for converting expressions to common forms of output, such as to nets, which are used most commonly.<table class="examples"><tr><td><pre>i3 : expression Qu := z -> ( expression z#0 + expression z#1 * expression "I" + expression z#2 * expression "J" + expression z#3 * expression "K");</pre> </td></tr> <tr><td><pre>i4 : net Qu := z -> net expression z;</pre> </td></tr> <tr><td><pre>i5 : toString Qu := z -> toString expression z;</pre> </td></tr> <tr><td><pre>i6 : tex Qu := z -> tex expression z;</pre> </td></tr> <tr><td><pre>i7 : html Qu := z -> html expression z;</pre> </td></tr> <tr><td><pre>i8 : w o8 = 1 - 2*I + 4*K o8 : Qu</pre> </td></tr> <tr><td><pre>i9 : toString w o9 = 1-2*I+4*K</pre> </td></tr> <tr><td><pre>i10 : tex w o10 = $1-2 I+4 K$</pre> </td></tr> <tr><td><pre>i11 : html w o11 = 1-2I+4K</pre> </td></tr> </table> Of course, now that we've decided that there should be certain quaternions called <tt>I</tt>, <tt>J</tt>, and <tt>K</tt>, perhaps we should install them, too.<table class="examples"><tr><td><pre>i12 : I = new Qu from {0,1,0,0} o12 = I o12 : Qu</pre> </td></tr> <tr><td><pre>i13 : J = new Qu from {0,0,1,0} o13 = J o13 : Qu</pre> </td></tr> <tr><td><pre>i14 : K = new Qu from {0,0,0,1} o14 = K o14 : Qu</pre> </td></tr> <tr><td><pre>i15 : 2*I + 5*J o15 = 2*I + 5*J o15 : Qu</pre> </td></tr> <tr><td><pre>i16 : peek oo o16 = {0, 2, 5, 0}</pre> </td></tr> </table> </div> </div> </body> </html>