Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 7ebd25ac536d248d499a3ce2acda963a > files > 4931

Macaulay2-1.3.1-8.fc15.i686.rpm

<?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>