(***********************************************************************
Mathematica-Compatible Notebook
This notebook can be used on any computer system with Mathematica 3.0,
MathReader 3.0, or any compatible application. The data for the notebook
starts with the line of stars above.
To get the notebook into a Mathematica-compatible application, do one of
the following:
* Save the data starting with the line of stars above into a file
with a name ending in .nb, then open the file inside the application;
* Copy the data starting with the line of stars above to the
clipboard, then use the Paste menu command inside the application.
Data for notebooks contains only printable 7-bit ASCII and can be
sent directly in email or through ftp in text mode. Newlines can be
CR, LF or CRLF (Unix, Macintosh or MS-DOS style).
NOTE: If you modify the data for this notebook not in a Mathematica-
compatible application, you must delete the line below containing the
word CacheID, otherwise Mathematica-compatible applications may try to
use invalid cache data.
For more information on notebooks and Mathematica-compatible
applications, contact Wolfram Research:
web: http://www.wolfram.com
email: info@wolfram.com
phone: +1-217-398-0700 (U.S.)
Notebook reader applications are available free of charge from
Wolfram Research.
***********************************************************************)
(*CacheID: 232*)
(*NotebookFileLineBreakTest
NotebookFileLineBreakTest*)
(*NotebookOptionsPosition[ 20305, 552]*)
(*NotebookOutlinePosition[ 21146, 581]*)
(* CellTagsIndexPosition[ 21102, 577]*)
(*WindowFrame->Normal*)
Notebook[{
Cell[CellGroupData[{
Cell["Interactive Graphics Everywhere", "Title"],
Cell["\<\
This article gives a short introduction to the use of LiveGraphics3D and \
highlights some of its real-world applications.\
\>", "Subsubtitle"],
Cell["by Martin Kraus", "Author"],
Cell[TextData[{
"There are several platform-dependent software solutions for the \
interactive presentation of three-dimensional ",
StyleBox["Mathematica",
FontSlant->"Italic"],
"\[Trademark] graphics. However, the non-commercial Java\[Trademark] 1.1 \
applet LiveGraphics3D can serve this purpose in any HTML page, and therefore \
may be viewed with any popular web browser on any platform, i.e., with the \
majority of modern personal computers. This article gives a short \
introduction to the use of LiveGraphics3D and highlights some of its \
real-world applications."
}], "Abstract"],
Cell[TextData[{
"Creating three-dimensional graphics and animations is one of the key \
features of ",
StyleBox["Mathematica",
FontSlant->"Italic"],
". Dozens of books, hundreds of notebooks and thousands of questions in \
MathGroup prove the great interest of ",
StyleBox["Mathematica",
FontSlant->"Italic"],
" users in the production of graphics. Still more impressive is the \
popularity of ",
StyleBox["Mathematica",
FontSlant->"Italic"],
" graphics in publications, presentations, on posters, clothes, web pages \
etc. Traditionally, most of these media are restricted to flat and static \
pictures. Nowadays, however, modern electronic media, e.g., graphics \
software, the WWW (World Wide Web), and multimedia CD-ROMs, offer new \
possibilities for the presentation of three-dimensional graphics. In fact, \
many specialized visualization tools now allow the user to rotate, color, \
enlighten, clip and modify graphics interactively in ways which were never \
before available. "
}], "Text"],
Cell[TextData[{
"Is it possible to use this kind of interactive presentation with ",
StyleBox["Mathematica",
FontSlant->"Italic"],
" graphics in the WWW, for multimedia CD-ROMs, and just for the fun of it? \
The answer is: Yes! It has been done already for more than thousand graphics \
on hundreds of HTML (HyperText Markup Language) pages with the help of a \
non-commercial tool called LiveGraphics3D. In this article, the author of \
LiveGraphics3D gives a short technical description, an introductory \
explanation of its usage, and an overview of existing applications."
}], "Text"],
Cell[CellGroupData[{
Cell["Using LiveGraphics3D", "Section"],
Cell[TextData[
"LiveGraphics3D is a small application (a so-called applet) programmed in \
Java\[Trademark] 1.1. It is free for non-commercial purposes and can be \
licensed from Wolfram Research, Inc. for commercial products. As opposed to \
VRML (Virtual Reality Modeling Language), this Java applet allows the \
seamless integration of interactive graphics into HTML pages and can be \
viewed with all popular web browsers supporting Java\[Trademark] 1.1 (namely \
Communicator 4.0 or higher, Internet Explorer 4.0 or higher, and others) \
without the use of plug-ins or other platform-dependent extensions."], "Text"],
Cell[TextData[{
"However, including really three-dimensional ",
StyleBox["Mathematica",
FontSlant->"Italic"],
" graphics on HTML pages is slightly more complicated than the procedure \
for pictures in the GIF (Graphics Interchange Format) or JPEG (Joint \
Photographic Experts Group) format. Therefore, a short (and in most cases \
sufficient) description is given below."
}], "Text"],
Cell[TextData[{
"The first step is to download the applet, which is distributed as a Java \
archive called \"live.jar\". (See the LiveGraphics3D homepage at ",
ButtonBox["http://theorie3.physik.uni-erlangen.de/~mkraus/Live.html",
ButtonData:>{
URL[ "http://theorie3.physik.uni-erlangen.de/~mkraus/Live.html"],
None},
ButtonStyle->"Hyperlink"],
" or the corresponding ",
StyleBox["MathSource ",
FontSlant->"Italic"],
"item at ",
ButtonBox[
"http://www.mathsource.com/cgi-bin/MathSource/Enhancements/Interfacing/Web/\
0209-281",
ButtonData:>{
URL[
"http://www.mathsource.com/cgi-bin/MathSource/Enhancements/Interfacing/\
Web/0209-281"], None},
ButtonStyle->"Hyperlink"],
". These links also point to the LiveGraphics3D documentation which is much \
more detailed than this introduction.)"
}], "Text"],
Cell[TextData[{
"A Graphics3D object must then be created. Here is a simple plot created \
with the built-in ",
StyleBox["Mathematica",
FontSlant->"Italic"],
" function ",
StyleBox["ParametricPlot3D",
FontFamily->"Courier"],
":"
}], "Text"],
Cell[BoxData[
\(paraplot =
ParametricPlot3D[{r\ Cos[\[Phi]], r\ Sin[\[Phi]],
Cos[r^2] Exp[\(-r^2\)/10]}, {r, 0, 3}, {\[Phi], 0, 2 \[Pi]}]\)],
"Input",
CellLabel->"In[5]:="],
Cell[TextData[{
"As illustrated above, ",
StyleBox["ParametricPlot3D",
FontFamily->"Courier"],
" returns a ",
StyleBox["Graphics3D",
FontFamily->"Courier"],
" object, which is assigned to the variable ",
StyleBox["paraplot",
FontFamily->"Courier"],
". "
}], "Text"],
Cell[TextData[{
"The second step is to create a file describing the ",
StyleBox["Graphics3D",
FontFamily->"Courier"],
" object. This can be done easily with a new function called ",
StyleBox["WriteLiveForm",
FontFamily->"Courier"],
":"
}], "Text"],
Cell[BoxData[
\(WriteLiveForm[filename_, \ g_]\ := \
\((WriteString[filename, ToString[NumberForm[InputForm[N[g]], \ 5]]];
Close[filename]; )\)\)], "Input",
CellLabel->"In[6]:="],
Cell[TextData[{
"With this definition, the following commands will write a textual \
description of the plot (its ",
StyleBox["InputForm",
FontFamily->"Courier"],
") into a file called \"paraplot.m\" in the directory (i.e. folder) \
\"~mkraus/public_html/\":"
}], "Text"],
Cell[BoxData[
\(SetDirectory["\<~mkraus/public_html/\>"]; \n
WriteLiveForm["\", \ paraplot]; \)], "Input",
CellLabel->"In[7]:="],
Cell["\<\
(Replace the name of the directory above with the one appropriate \
for you.)\
\>", "Text"],
Cell[TextData[{
"The new file \"paraplot.m\" should now contain a rather long list of \
graphics primitives contained in a ",
StyleBox["Graphics3D",
FontFamily->"Courier"],
" expression (which is a valid ",
StyleBox["Mathematica",
FontSlant->"Italic"],
" expression): "
}], "Text"],
Cell["\<\
Graphics3D[{Polygon[{{0., 0., 1.}, {0.15789, 0., 0.9972}, {0.14934, \
0.051268, 0.9972}, {0., 0., 1.}}], Polygon[{{0.15789, 0., 0.9972}, {0.31579, \
0., 0.98516}, {0.29868, 0.10254, 0.98516}, {0.14934, 0.051268, 0.9972}}], \
Polygon[{{0.31579, 0., 0.98516}, {0.47368, 0., 0.9533}, {0.44802, 0.15381, \
0.9533}, {0.29868, 0.10254, 0.98516}}], Polygon[{{0.47368, 0., 0.9533}, \
{0.63158, 0., 0.88546}, {0.59736, 0.20507, 0.88546}, {0.44802, 0.15381, \
0.9533}}], ...\
\>", "Program"],
Cell["\<\
With the Java archive \"live.jar\" and the graphics description in \
\"paraplot.m\", we are now ready to create an HTML page including a \
LiveGraphics3D applet. The simplest possibility is:\
\>", "Text"],
Cell["\<\
\
\>", "Program"],
Cell[TextData[{
"These HTML commands define a complete HTML page, which should be stored in \
a file with the ending \".htm\" or \".html\". This HTML file (which has to be \
located in the same directory as \"live.jar\" and \"paraplot.m\") can be \
viewed with any web browser supporting Java 1.1. (Do not forget to activate \
Java in the preferences or options menu of your web browser.) The web browser \
should display the plot in almost the same way that ",
StyleBox["Mathematica",
FontSlant->"Italic"],
" does. (Differences in colors are primarily due to a well-known bug in ",
StyleBox["Mathematica",
FontSlant->"Italic"],
".) However, it is now possible to rotate the plot by dragging with the \
left mouse button held down. In fact, it is also possible to zoom, strip \
polygons, let the graphics spin continuously, or switch to stereo graphics. \
For a detailed description of these features, see the LiveGraphics3D \
documentation."
}], "Text"],
Cell[TextData[{
"Until now, this introduction covered only parametric plots (and Graphics3D \
objects in general). Using the more popular ",
StyleBox["Plot3D",
FontFamily->"Courier"],
" command requires a bit more caution, since ",
StyleBox["Plot3D",
FontFamily->"Courier"],
" returns a ",
StyleBox["SurfaceGraphics",
FontFamily->"Courier"],
" object instead of the needed ",
StyleBox["Graphics3D",
FontFamily->"Courier"],
" object. The conversion, however, is simple, as we only have to wrap the ",
StyleBox["SurfaceGraphics",
FontFamily->"Courier"],
" inside a ",
StyleBox["Graphics3D",
FontFamily->"Courier"],
" object:"
}], "Text"],
Cell[BoxData[
\(surfplot1 =
Plot3D[Cos[x^2 + y^2] Exp[\(-\((x^2 + y^2)\)\)/10], {x, \(-3\), 3}, {y,
\(-3\), 3}]\)], "Input",
CellLabel->"In[8]:="],
Cell[BoxData[
\(surfplot2 = Graphics3D[surfplot1]\)], "Input",
CellLabel->"In[9]:="],
Cell[BoxData[
\(\(WriteLiveForm["\", surfplot2]; \)\)], "Input",
CellLabel->"In[11]:="],
Cell["\<\
In order to view the new graphics, of course, the HTML page has to \
be modified by replacing the filename \"paraplot.m\" by \"surfplot.m\".\
\>",
"Text"],
Cell[TextData[{
"With this technique, almost any three-dimensional ",
StyleBox["Mathematica",
FontSlant->"Italic"],
" graphic may be displayed by LiveGraphics3D. But LiveGraphics3D does not \
stop here. It also allows the display of animations, bitmap backgrounds, \
hyperlinks, etc. Again, the interested reader is refered to the documentation \
at ",
ButtonBox["http://theorie3.physik.uni-erlangen.de/~mkraus/Live.html",
ButtonData:>{
URL[ "http://theorie3.physik.uni-erlangen.de/~mkraus/Live.html"],
None},
ButtonStyle->"Hyperlink"],
" for additional details."
}], "Text"]
}, Open ]],
Cell[CellGroupData[{
Cell["Real-World Applications", "Section"],
Cell[TextData[{
"No list of technical features demonstrates the usefulness of \
LiveGraphics3D as well as existing applications do. Currently, the applet is \
used primarily within educational publications and to present scientific \
visualization on the WWW. Examples of the latter are the pages showing \
Zernike polynomials and Fraunhofer diffraction patterns by James C. Wyant at \
",
ButtonBox["http://www.optics.Arizona.EDU/jcwyant/math.htm",
ButtonData:>{
URL[ "http://www.optics.Arizona.EDU/jcwyant/math.htm"], None},
ButtonStyle->"Hyperlink"],
", visualizations of groups, Hopf algebras, pseudo-random numbers, tori \
coloring etc. by Rick Kreminski at ",
ButtonBox[
"http://www.tamu-commerce.edu/coas/math/FACULTY/KREMIN/kremin.html",
ButtonData:>{
URL[
"http://www.tamu-commerce.edu/coas/math/FACULTY/KREMIN/kremin.html"],
None},
ButtonStyle->"Hyperlink"],
", a presentation of geological research results by Xinglin Lei at ",
ButtonBox["http://www.gsj.go.jp/dER/bussei/aeloc.html",
ButtonData:>{
URL[ "http://www.gsj.go.jp/dER/bussei/aeloc.html"], None},
ButtonStyle->"Hyperlink"],
", or some three-dimensional color gamut representations by Patrick Herzog \
at ",
ButtonBox["http://www.ite.rwth-aachen.de/herzog/3D.html",
ButtonData:>{
URL[ "http://www.ite.rwth-aachen.de/herzog/3D.html"], None},
ButtonStyle->"Hyperlink"],
"."
}], "Text"],
Cell[TextData[{
"LiveGraphics3D is also frequently used for educational purposes. Examples \
in English include the chemistry and dynamics course of the METRIC \
(Mathematics Education Technology Research at Imperial College) project at ",
ButtonBox["http://metric.ma.ic.ac.uk/chem/",
ButtonData:>{
URL[ "http://metric.ma.ic.ac.uk/chem/"], None},
ButtonStyle->"Hyperlink"],
" and ",
ButtonBox["http://metric.ma.ic.ac.uk/dynamics/",
ButtonData:>{
URL[ "http://metric.ma.ic.ac.uk/dynamics/"], None},
ButtonStyle->"Hyperlink"],
", two surface plotting JavaScript applications by Christopher D. Sinclair \
at ",
ButtonBox["http://www.arlut.utexas.edu/~sinclair/plot3D.html",
ButtonData:>{
URL[ "http://www.arlut.utexas.edu/~sinclair/plot3D.html"], None},
ButtonStyle->"Hyperlink"],
" and ",
ButtonBox["http://www.arlut.utexas.edu/~sinclair/parametric.html",
ButtonData:>{
URL[ "http://www.arlut.utexas.edu/~sinclair/parametric.html"], None},
ButtonStyle->"Hyperlink"],
", and the WWW version of the \"CRC Concise Encyclopedia of Mathematics\" \
by Eric W. Weisstein at ",
ButtonBox["http://www.astro.virginia.edu/~eww6n/math/math.html",
ButtonData:>{
URL[ "http://www.astro.virginia.edu/~eww6n/math/math.html"], None},
ButtonStyle->"Hyperlink"],
"."
}], "Text"],
Cell[TextData[{
"The LiveGraphics3D hompage at ",
ButtonBox["http://theorie3.physik.uni-erlangen.de/~mkraus/Live.html",
ButtonData:>{
URL[ "http://theorie3.physik.uni-erlangen.de/~mkraus/Live.html"],
None},
ButtonStyle->"Hyperlink"],
" includes many more sample graphics and lists all WWW pages using \
LiveGraphics3D of which the author is aware."
}], "Text"],
Cell["\<\
The first commercial application of LiveGraphics3D is the \
forthcoming CD-ROM version of the \"CRC Concise Encyclopedia of Mathematics\" \
by Eric W. Weisstein which will include several hundred of three-dimensional \
graphics and animations. In this project, LiveGraphics3D allows the \
conversion of the book's contents into real multimedia presentations. \
\>",
"Text"]
}, Open ]],
Cell[CellGroupData[{
Cell["Limitations and Alternatives", "Section"],
Cell[TextData[{
"Certainly LiveGraphics3D is not the silver bullet to all visualization \
problems. Especially the extremely ambitious project of Eric W. Weisstein \
highlighted several limitations of LiveGraphics3D only been partly solved. \
Most of the remaining limitations are due to the limited performance of Java \
1.1, which allows neither state-of-the-art real-time rendering techniques nor \
an extensive preprocessing of the graphics. In particular, any intersections \
of graphics primitives cannot be displayed correctly. The same is true for \
lines lying on the surface of polygons. But even in figures without \
intersections, the implemented hidden-surface algorithm sometimes fails to \
produce correct results. In many cases, however, it is possible to compensate \
for these limitations by preprocessing the graphics with the help of several \
specialized ",
StyleBox["Mathematica",
FontSlant->"Italic"],
" functions (available at ",
ButtonBox[
"http://www.astro.virginia.edu/~eww6n/math/notebooks/LiveGraphics3D.m",
ButtonData:>{
URL[
"http://www.astro.virginia.edu/~eww6n/math/notebooks/LiveGraphics3D.m"],
None},
ButtonStyle->"Hyperlink"],
"). The LiveGraphics3D documentation offers a more complete list of \
limitations and differences between the ways graphics are displayed by \
LiveGraphics3D and ",
StyleBox["Mathematica",
FontSlant->"Italic"],
"."
}], "Text"],
Cell[TextData[{
"Due to the limited performance of Java, LiveGraphics3D will never be able \
to replace more sophisticated (but platform-dependent) visualization tools \
such as Dynamic Visualizer (Wolfram Research, Inc.), Conix 3D Explorer (Conix \
Enterprise, Inc.), and MathGL3d (Jens-Peer Kuska). However, there are no \
other tools currently available which offer a seamless and \
platform-independent integration of interactive ",
StyleBox["Mathematica",
FontSlant->"Italic"],
" graphics and animations into HTML pages. At present, the only serious \
competitor of LiveGraphics3D in this respect is VRML, which, however, is not \
yet as well supported by web browsers as is Java. Additionally, the \
convertion of ",
StyleBox["Mathematica",
FontSlant->"Italic"],
" graphics and animations to the VRML format is not yet solved completely. \
(One of the best converters is VRMLConvert by H. Edward Donley, see ",
ButtonBox["http://www.ma.iup.edu/MathDept/Projects/VRMLConvert/",
ButtonData:>{
URL[ "http://www.ma.iup.edu/MathDept/Projects/VRMLConvert/"], None},
ButtonStyle->"Hyperlink"],
"; though axes, arbitrary box ratios, and animations cannot be converted.) \
"
}], "Text"]
}, Open ]],
Cell[CellGroupData[{
Cell["What Next?", "Section"],
Cell[TextData[{
"LiveGraphics3D is constantly being improved. For example, the latest \
version includes the (platform-independent) option for using archives which \
have been compressed by the popular zip programs in order to accelerate \
downloading. Further improvements are already planned. Additionally, the \
preprocessing of graphics within ",
StyleBox["Mathematica",
FontSlant->"Italic"],
" will be one of the main directions for future developments."
}], "Text"],
Cell[TextData[{
"Surely interactive presentations of three-dimensional graphics will become \
still more popular as electronic media start to accompany and even replace \
traditional media. While ",
StyleBox["Mathematica",
FontSlant->"Italic"],
" is a great tool which allows three-dimensional illustrations, \
visualizations, and animations to be created easily, LiveGraphics3D is in \
many cases the perfect companion to display these graphics interactively \
without losing the platform-independence shared by ",
StyleBox["Mathematica",
FontSlant->"Italic"],
" and common two-dimensional picture formats. "
}], "Text"],
Cell["\<\
The success of technologies is usually unpredictable. However, \
given the enthusiastic reception and widespread use the applet already \
enjoys, there seems reason to be extremely optimistic.\
\>", "Text"],
Cell[CellGroupData[{
Cell["ABOUT THE AUTHOR", "Subsection"],
Cell["by Martin Kraus", "Author"],
Cell["E-mail: Martin_Kraus_Germany@yahoo.com", "Address"]
}, Open ]],
Cell[CellGroupData[{
Cell["ELECTRONIC SUBSCRIPTIONS", "Subsection"],
Cell[TextData[{
"Included in the distribution for each electronic subscription is the file \
",
StyleBox["InterGraph.nb", "Input"],
" containing ",
StyleBox["Mathematica",
FontSlant->"Italic"],
" code for the material described in this article."
}], "Text"]
}, Open ]]
}, Open ]]
}, Open ]]
},
FrontEndVersion->"NeXT 3.0",
ScreenRectangle->{{0, 1053}, {0, 832}},
WindowSize->{730, 658},
WindowMargins->{{Automatic, 122}, {Automatic, 8}},
PrintingPageRange->{Automatic, Automatic},
PrintingOptions->{"PaperSize"->{597.5625, 842.375},
"PaperOrientation"->"Portrait",
"Magnification"->1},
Magnification->1.25,
StyleDefinitions -> "Default.nb"
]
(***********************************************************************
Cached data follows. If you edit this Notebook file directly, not using
Mathematica, you must remove the line containing CacheID at the top of
the file. The cache data will then be recreated when you save this file
from within Mathematica.
***********************************************************************)
(*CellTagsOutline
CellTagsIndex->{}
*)
(*CellTagsIndex
CellTagsIndex->{}
*)
(*NotebookFileOutline
Notebook[{
Cell[CellGroupData[{
Cell[1731, 51, 48, 0, 169, "Title"],
Cell[1782, 53, 153, 3, 75, "Subsubtitle"],
Cell[1938, 58, 33, 0, 29, "Author"],
Cell[1974, 60, 599, 11, 105, "Abstract"],
Cell[2576, 73, 1025, 21, 185, "Text"],
Cell[3604, 96, 598, 10, 122, "Text"],
Cell[CellGroupData[{
Cell[4227, 110, 39, 0, 64, "Section"],
Cell[4269, 112, 621, 8, 143, "Text"],
Cell[4893, 122, 394, 8, 101, "Text"],
Cell[5290, 132, 860, 22, 122, "Text"],
Cell[6153, 156, 258, 9, 59, "Text"],
Cell[6414, 167, 200, 5, 48, "Input"],
Cell[6617, 174, 291, 11, 59, "Text"],
Cell[6911, 187, 265, 8, 59, "Text"],
Cell[7179, 197, 201, 4, 65, "Input"],
Cell[7383, 203, 281, 7, 59, "Text"],
Cell[7667, 212, 151, 3, 48, "Input"],
Cell[7821, 217, 101, 3, 38, "Text"],
Cell[7925, 222, 300, 9, 59, "Text"],
Cell[8228, 233, 491, 8, 105, "Program"],
Cell[8722, 243, 214, 4, 59, "Text"],
Cell[8939, 249, 167, 6, 105, "Program"],
Cell[9109, 257, 972, 17, 185, "Text"],
Cell[10084, 276, 688, 22, 101, "Text"],
Cell[10775, 300, 170, 4, 48, "Input"],
Cell[10948, 306, 90, 2, 31, "Input"],
Cell[11041, 310, 106, 2, 31, "Input"],
Cell[11150, 314, 167, 4, 59, "Text"],
Cell[11320, 320, 610, 14, 101, "Text"]
}, Open ]],
Cell[CellGroupData[{
Cell[11967, 339, 42, 0, 64, "Section"],
Cell[12012, 341, 1444, 32, 185, "Text"],
Cell[13459, 375, 1350, 31, 164, "Text"],
Cell[14812, 408, 387, 9, 59, "Text"],
Cell[15202, 419, 386, 7, 101, "Text"]
}, Open ]],
Cell[CellGroupData[{
Cell[15625, 431, 47, 0, 64, "Section"],
Cell[15675, 433, 1441, 29, 248, "Text"],
Cell[17119, 464, 1219, 23, 206, "Text"]
}, Open ]],
Cell[CellGroupData[{
Cell[18375, 492, 29, 0, 64, "Section"],
Cell[18407, 494, 481, 9, 101, "Text"],
Cell[18891, 505, 639, 13, 122, "Text"],
Cell[19533, 520, 216, 4, 59, "Text"],
Cell[CellGroupData[{
Cell[19774, 528, 38, 0, 54, "Subsection"],
Cell[19815, 530, 33, 0, 29, "Author"],
Cell[19851, 532, 57, 0, 29, "Address"]
}, Open ]],
Cell[CellGroupData[{
Cell[19945, 537, 46, 0, 54, "Subsection"],
Cell[19994, 539, 271, 8, 59, "Text"]
}, Open ]]
}, Open ]]
}, Open ]]
}
]
*)
(***********************************************************************
End of Mathematica Notebook file.
***********************************************************************)