(*********************************************************************** 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[ 16444, 442]*) (*NotebookOutlinePosition[ 17498, 478]*) (* CellTagsIndexPosition[ 17454, 474]*) (*WindowFrame->Normal*) Notebook[{ Cell[TextData["SaveToRotaterFormat.m\nUsage Examples"], "Title", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{Cell[TextData["Introduction"], "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "This is an example notebook for using the pagkage SaveToRotaterFormat.m.\n\ The package is used for converting Mathematica Graphics to a format that can \ be used by Rotater or rotate.com.\n\nRotater v.3.5 by Craig Kloeden is a \ real-time 3D visualization program for the Macintosh. A DOS/Windows version \ is written by Marijke van Gans and called rotate.com. These programs reads a \ simple ASCII file of\ncoordinates, then you can rotate the 3D object in \ real-time using your mouse. Both program represents the 3D object by \ wireframe. Surface/polygon are not supported as of 1996/08. Both programs are \ fast and free.\nThe latest version of Rotater and rotate.com can be found at:\ \nhttp://raru.adelaide.edu.au/rotater/\n\ http://www.silicon-alley.com/cat/rotate.html"], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "The Mathematica package SaveToRotaterFormat.m is written by me. It is free. \ I reserve the copyright. I can be contact at\nXah Lee\n\ (74631.731@compuserve.com; xah@best.com)\n\ http://www.best.com/~xah/SpecialPlaneCurves_dir/specialPlaneCurves.html\n650 \ Alamo Court, Apt#1.\nMountain View, CA 94043\nUSA"], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "Other packages by me:\n\n\tPlaneCurveFormulas.m\n\tParaPlot.m. (MathSource \ #0207-986)\n\tPlaneCurveGenerator.m\n TrochoidShow.m\t(MathSource# 0207-997)\n\ TrochoidPlot.m (MathSource# 0207-234)\n Transform2DPlot.m\n \ RuledSurfacePlot.m (MathSource# 0207-975)\n\nThese packages can also be found \ on the Web (as of 1996/07/01) at\n\ http://www.best.com/~xah/SpecialPlaneCurves_dir/specialPlaneCurves.html"], "Text", Evaluatable->False, AspectRatioFixed->True]}, Open]], Cell[CellGroupData[{Cell[TextData["Loading the package & On-line Documentation"], "Subsubsection", Evaluatable->False, AspectRatioFixed->True], Cell[TextData["Needs[\"SaveToRotaterFormat`\"]"], "Input", InitializationCell->True, AspectRatioFixed->True], Cell[CellGroupData[{Cell[TextData["?SaveToRotaterFormat"], "Input", AspectRatioFixed->True], Cell[TextData[ "SaveToRotaterFormat[ \"fileName\", graphicsData, (options)]\n will convert \ a graphicsData to Rotater format and save\n the result as a text file named \ fileName. graphicsData\n can be any of SurfaceGraphics, ContourGraphics,\n \ DensityGraphics, or Graphics3D objects. Options include:\n BoxRatios, \ ClosePolygon, ColorCode, and ExportPrecision.\n Each is documented on-line. \ Type ?name for more\n information. For example, \n Plot3D[ Cos[x] Cos[y], \ {x,\n -Pi, Pi}, {y, -Pi, Pi}]\n SaveToRotaterFormat[\n \ \"myGraphics.txt\", %]"], "Print", Evaluatable->False, AspectRatioFixed->True]}, Open]]}, Open]], Cell[CellGroupData[{Cell[TextData["Examples"], "Section", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{Cell[TextData["Plot3D, ContourPlot, and DensityPlot"], "Subsubsection", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "Plot3D, ContourPlot, and DensityPlot return graphic data with head \ SurfaceGraphics, ContourGraphics, and DensityGraphics respectively. They all \ have identitical data structure, namely, they are two dimensional arrays. \ These will be converted to points in Rotater."], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData["Plot3D[ Cos@x Sin@y, {x, -Pi,Pi}, {y, -Pi, Pi}]"], "Input", AspectRatioFixed->True], Cell[TextData["SaveToRotaterFormat[\"myGra.rot\", %]"], "Input", AspectRatioFixed->True], Cell[TextData[ "The file is save in your current directory. To find out where is your \ current directory, use Directory[]. To set your current directory, use\n\ SetDirectory[]. You can have Mathematica automatically set the current \ directory to a disired place by putting the command \ SetDirectory[\"diseredDirectory\"] in the init.m file found in your \ Mathematica Directory. For more information about directories with \ Mathematica, see Mathematica by Stephen Wolfram 2nd ed. p.489."], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "To convert an SurfaceGraphics object to Rotater as wireframes, you need \ first wrap Graphics3D on the data to convert it to an Graphics3D object."], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{Cell[TextData["Graphics3D@ Plot3D[ Cos[x y], {x, 0,Pi}, {y, 0, Pi}]"], "Input", AspectRatioFixed->True], Cell[TextData[ "SaveToRotaterFormat[\"cosWave.rot\", %, ClosePolygon->True]"], "Input", AspectRatioFixed->True]}, Open]], Cell[TextData[ "SaveToRotaterFormat will handle graphics data with complex numbers or errors \ correctly. You can use BoxRatios option to control the export as well."], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "(*50 seconds*)\nPlot3D[ Log[x y +1], {x, -Pi,Pi}, {y, -Pi, Pi},\n\t\ PlotPoints->{25,25}, Mesh->False, ColorFunction->(Hue[0,#,1]&)]\n\n\ SaveToRotaterFormat[\"arch.rot\", %, BoxRatios->{1,1,1}]"], "Input", AspectRatioFixed->True], Cell[TextData[ "ContourGraphics data returned by ContourPlot will appear in Rotater as \ points."], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "ContourPlot[ Cos[x]-y^2, {x, -2 Pi, 2 Pi}, {y, -Pi, Pi}]\n\ SaveToRotaterFormat[ \"eyes.rot\", %]"], "Input", AspectRatioFixed->True], Cell[TextData[ "To export ContourGraphics as wireframes, you need to convert it to \ SurfaceGraphics data, then to Graphics3D data first."], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "Graphics3D@ SurfaceGraphics@ ContourPlot[ x y , {x,-5,5},{y,-5,5}]\n\n\ SaveToRotaterFormat[ \"hypePara.rot\", %,\n\tBoxRatios->{1,1,1}, \ ClosePolygon->True]"], "Input", AspectRatioFixed->True], Cell[TextData[ "DensityGraphics returned by DensityPlot can also be exported."], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "DensityPlot[ Cos@x Sin@y, {x, - Pi, Pi}, {y, -Pi, Pi}]\nSaveToRotaterFormat[ \ \"wave.rot\", %]"], "Input", AspectRatioFixed->True], Cell[TextData[ "Like ContourGraphics data, you can convert DensityGraphics to Graphics3D \ data by first converting it to SurfaceGraphics data."], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "(*30 seconds *)\nGraphics3D@ SurfaceGraphics@ DensityPlot[\n\tE^(Sin[x] \ Cos[y]), {x,-Pi, Pi},{y,-Pi, Pi},\n\tPlotPoints->{20,20}\n]\n\n\ SaveToRotaterFormat[ \"wave2.rot\", %, ClosePolygon->True]"], "Input", AspectRatioFixed->True], Cell[TextData[ "To see all the options of SaveToRotaterFormat, use Options[]."], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{Cell[TextData["Options[ SaveToRotaterFormat]"], "Input", AspectRatioFixed->True], Cell[OutputFormData["\<\ {BoxRatios -> Automatic, ClosePolygon -> False, ColorCode -> -1, ColorCode -> 1, ExportPrecision -> 5}\ \>", "\<\ {BoxRatios -> Automatic, ClosePolygon -> False, ColorCode -> -1, ColorCode -> 1, ExportPrecision -> 5}\ \>"], "Output", Evaluatable->False, AspectRatioFixed->True]}, Open]]}, Open]], Cell[CellGroupData[{Cell[TextData["ParametricPlot3D"], "Subsubsection", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "ParametricPlot3D returns Graphics3D object, which will be exported to \ Rotater as wireframes automatically."], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "ParametricPlot3D[\n\t{ Cos[t] Sin[x] , Sin[t] Cos[x] , t},\n\t{x,-Pi, Pi}, \ {t, -Pi, Pi}\n]\n\nSaveToRotaterFormat[ \"candy\", %, ColorCode->4]"], "Input",\ AspectRatioFixed->True], Cell[TextData[ "You can force it to export as dots by using ColorCode->n, where n is an \ integer and -6 <= n <= -1."], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "ParametricPlot3D[\n\t{Cos[t] (3+Cos[u]), Sin[t] (3+Cos[u]), Sin[u]},\n\t\ {t,0,2 Pi}, {u,0,2 Pi}\n]\n\nSaveToRotaterFormat[ \"torus\", %, \ ColorCode->-2]"], "Input", AspectRatioFixed->True], Cell[TextData[ "If ColorCode->n and n is a positive integer 1 <= n <= 6, a different color \ is used for the wireframe."], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[StyleBox[ "ParametricPlot3D[\n\t{ Log[x] Sin[t] , Cos[x] , t},\n\t{x,0.001, 2 Pi}, {t, \ 0.001, 2 Pi}\n]\n\nSaveToRotaterFormat[ \"sSlider\", %, ColorCode->3]", AspectRatioFixed->True, FontWeight->"Plain", FontColor->RGBColor[0.493706, 0.0450446, 0.0461433]]], "Input", AspectRatioFixed->True], Cell[TextData["Other examples."], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ StyleBox[ "ParametricPlot3D[\n\t{ Sin[i] + Cos[j], Cos[i]+Sin[j] , i},\n\t{i,0,2 \ Pi},{j, -Pi, Pi}\n]", AspectRatioFixed->True, FontWeight->"Plain"], StyleBox[ "\n\nSaveToRotaterFormat[ \"spring\", %, ColorCode->-5, \ BoxRatios->{1,1,2}]", AspectRatioFixed->True, FontWeight->"Plain", FontColor->RGBColor[0.493706, 0.0450446, 0.0461433]] }], "Input", AspectRatioFixed->True], Cell[TextData[StyleBox[ "(* award cup *)\nParametricPlot3D[\n\t{ Log[t] Sin[x] , Cos[x] , t},\n\t\ {x,0.001, 2 Pi}, {t, 0.001, 2 Pi}\n]\n\nSaveToRotaterFormat[ \"awardcup\", \ %, ColorCode->6]", AspectRatioFixed->True, FontWeight->"Plain", FontColor->RGBColor[0.493706, 0.0450446, 0.0461433]]], "Input", AspectRatioFixed->True]}, Open]], Cell[CellGroupData[{Cell[TextData["Arbitrary Graphics3D data"], "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{Cell[TextData["Polyhedra"], "Subsubsection", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "SaveToRotaterFormat will export arbitrary graphics data in Mathematica as \ long as they are legal Mathematica Graphic Primitives. Here are some examples \ using the package Polyhedra."], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData["Needs[\"Graphics`Polyhedra`\"]"], "Input", InitializationCell->True, AspectRatioFixed->True], Cell[CellGroupData[{Cell[TextData["?*Polyhedra`*"], "Input", AspectRatioFixed->True], Cell[TextData[ "Cube Octahedron\nDodecahedron \ OpenTruncate\nFaces Polyhedra\nGeodesate \ Polyhedron\nGreatDodecahedron SmallStellatedDodecahedron\n\ GreatIcosahedron Stellate\nGreatStellatedDodecahedron Tetrahedron\n\ Hexahedron Truncate\nIcosahedron Vertices"], "Print", Evaluatable->False, AspectRatioFixed->True]}, Open]], Cell[TextData[ "SaveToRotaterFormat[\"Icosahedron\", Graphics3D[Icosahedron[]]]"], "Input", AspectRatioFixed->True], Cell[TextData[ "SaveToRotaterFormat[\"stellatedDodeSphere\",\n\tGraphics3D[{ Stellate[ \ Dodecahedron[],4],\n\t\tGeodesate[Dodecahedron[],2]}\n\t]\n]"], "Input", AspectRatioFixed->True], Cell[TextData[ "SaveToRotaterFormat[\"GreatDodecahedron\",\n\t\ Graphics3D[GreatDodecahedron[]]\n]"], "Input", AspectRatioFixed->True], Cell[TextData[ "SaveToRotaterFormat[\"Geo2GreatDodecahedron\",\n\tGraphics3D[{Geodesate[ \ GreatDodecahedron[],2]}]\n]"], "Input", AspectRatioFixed->True], Cell[TextData[ "SaveToRotaterFormat[\"Geo4GreatDodecahedron\",\n\tGraphics3D[{Geodesate[ \ GreatDodecahedron[],4]}]\n]"], "Input", AspectRatioFixed->True]}, Open]], Cell[CellGroupData[{Cell[TextData["OrthoSculpture"], "Subsubsection", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "SaveToRotaterFormat can also export Cuboid graphic primitives. Let's use \ OrthoSculpture to demonstrate. (OrthoSculpture is a model that is to be \ looked through three perpendicular axis)"], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "modelData[ planeGrid1_List, planeGrid2_List, planeGrid3_List] :=\n\t\ Module[{universe, model1, model2, model3, x, y, z, i, n},\n\t\tn = \ Max[planeGrid1, planeGrid2, planeGrid3];\n\t\tmodel1 = Table[ planeGrid1 /. \ {x_,y_}->{i,x,y}, {i,0,n}];\n\t\tmodel2 = Table[ planeGrid2 /. \ {x_,y_}->{x,i,y}, {i,0,n}];\n\t\tmodel3 = Table[ planeGrid3 /. \ {x_,y_}->{x,y,i}, {i,0,n}];\n\t\tmodel1 = Partition[ Flatten[model1],3];\n\t\t\ model2 = Partition[ Flatten[model2],3];\n\t\tmodel3 = Partition[ \ Flatten[model3],3];\n\t\tIntersection[ model1, model2, model3]\n(*\t\t\ universe = Table[{x,y,z},{x,0,n},{y,0,n},{z,0,n}];*)\n(*\t\tuniverse = \ Partition[ Flatten[universe],3]; *)\n\t]"], "Input", AspectRatioFixed->True], Cell[TextData[ "Clear[ letterA, letterE, letterG, letterB , n ];\nn = 10;\n\nletterB =\n\t\ Union[\n\t\tTable[ {i,0}, {i, 0, n}],\n\t\tTable[ {i,n/2}, {i, 0, n}],\n\t\t\ Table[ {i,n}, {i ,0, n}],\n\t\tTable[ {0,i}, {i, 0, n}],\n\t\tTable[ {n,i}, \ {i, 0, n}]\n\t];\n\nletterE = \n\tUnion[\n\t\tTable[ {i,0}, {i, 0, n}],\n\t\t\ Table[ {i,n/2}, {i, 0, n}],\n\t\tTable[ {i,n}, {i ,0, n}],\n\t\tTable[ {0,i}, \ {i, 0, n}]\n\t];\n\nletterG =\n\tUnion[\n\t\tTable[ {i,0}, {i, 0, n}],\n\t\t\ Table[ {i,n/2}, {i, Floor[n/2], n}],\n\t\tTable[ {i,n}, {i ,0, n}],\n\t\t\ Table[ {0,i}, {i, 0, n}],\n\t\tTable[ {n,i}, {i, 0, Floor[n/2] }]\n\t];\n"], "Input", AspectRatioFixed->True], Cell[TextData[{ StyleBox["Show[ Graphics3D[ Cuboid/@ ", AspectRatioFixed->True, FontWeight->"Plain"], StyleBox["modelData[ letterE, letterG, letterB]", AspectRatioFixed->True, FontWeight->"Plain", FontColor->RGBColor[0.439445, 0.0170748, 0.0170748]], StyleBox[" ]]", AspectRatioFixed->True, FontWeight->"Plain"] }], "Input", AspectRatioFixed->True], Cell[TextData["SaveToRotaterFormat[\"Orthosculpture\", % ]"], "Input", AspectRatioFixed->True]}, Open]]}, Open]], Cell[CellGroupData[{Cell[TextData["Multi-Colors in Rotater"], "Subsubsection", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "Rotater support six colors. (see the readme file in Rotater)\nTo generate \ one graphics with multi-color, you may convert your graphics \nto different \ files with different color, then combine them using ConcatenateFiles."], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "Graphics3D@ Plot3D[ Sin[x] Cos[y], \n\t{x,-Pi .5, Pi .5},{y,-Pi .5, Pi .5} ]\ \n\nSaveToRotaterFormat[ \"waveRed.rot\", %, ColorCode->1]\n\n\nGraphics3D@ \ Plot3D[ Sin[y] Cos[x], \n\t{x,-Pi .5, Pi .5},{y,-Pi .5, Pi .5} ]\n\n\ SaveToRotaterFormat[ \"waveBlue.rot\", %, ColorCode->3]\n\n\n\ ConcatenateFiles[{\"waveRed.rot\", \"waveBlue.rot\"}, \"waveNew.rot\" ]"], "Input", AspectRatioFixed->True]}, Open]]}, Open]] }, FrontEndVersion->"Macintosh 3.0", ScreenRectangle->{{0, 640}, {0, 460}}, WindowToolbars->{}, CellGrouping->Manual, WindowSize->{520, 365}, WindowMargins->{{44, Automatic}, {Automatic, 1}}, PrivateNotebookOptions->{"ColorPalette"->{RGBColor, -1}}, ShowCellLabel->True, ShowCellTags->False, RenderingOptions->{"ObjectDithering"->True, "RasterDithering"->False}, MacintoshSystemPageSetup->"\<\ AVU/IFiQKFD000000VHFh09V7j0000000OlH809FV" ] (*********************************************************************** 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[1711, 51, 112, 2, 70, "Title", Evaluatable->False], Cell[CellGroupData[{ Cell[1846, 55, 92, 2, 70, "Subsection", Evaluatable->False], Cell[1941, 59, 852, 13, 70, "Text", Evaluatable->False], Cell[2796, 74, 382, 7, 70, "Text", Evaluatable->False], Cell[3181, 83, 485, 9, 70, "Text", Evaluatable->False] }, Closed]], Cell[CellGroupData[{ Cell[3698, 94, 126, 2, 70, "Subsubsection", Evaluatable->False], Cell[3827, 98, 112, 2, 70, "Input", InitializationCell->True], Cell[CellGroupData[{ Cell[3962, 102, 73, 1, 70, "Input"], Cell[4038, 105, 631, 10, 70, "Print", Evaluatable->False] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[4710, 117, 85, 2, 70, "Section", Evaluatable->False], Cell[CellGroupData[{ Cell[4818, 121, 119, 2, 70, "Subsubsection", Evaluatable->False], Cell[4940, 125, 344, 6, 70, "Text", Evaluatable->False], Cell[5287, 133, 100, 1, 70, "Input"], Cell[5390, 136, 90, 1, 70, "Input"], Cell[5483, 139, 549, 9, 70, "Text", Evaluatable->False], Cell[6035, 150, 224, 5, 70, "Text", Evaluatable->False], Cell[CellGroupData[{ Cell[6282, 157, 105, 1, 70, "Input"], Cell[6390, 160, 113, 2, 70, "Input"] }, Open ]], Cell[6515, 164, 227, 5, 70, "Text", Evaluatable->False], Cell[6745, 171, 248, 4, 70, "Input"], Cell[6996, 177, 155, 4, 70, "Text", Evaluatable->False], Cell[7154, 183, 151, 3, 70, "Input"], Cell[7308, 188, 196, 4, 70, "Text", Evaluatable->False], Cell[7507, 194, 212, 4, 70, "Input"], Cell[7722, 200, 136, 3, 70, "Text", Evaluatable->False], Cell[7861, 205, 149, 3, 70, "Input"], Cell[8013, 210, 202, 4, 70, "Text", Evaluatable->False], Cell[8218, 216, 251, 4, 70, "Input"], Cell[8472, 222, 136, 3, 70, "Text", Evaluatable->False], Cell[CellGroupData[{ Cell[8631, 227, 82, 1, 70, "Input"], Cell[8716, 230, 317, 11, 70, "Output", Evaluatable->False] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[9074, 243, 99, 2, 70, "Subsubsection", Evaluatable->False], Cell[9176, 247, 183, 4, 70, "Text", Evaluatable->False], Cell[9362, 253, 200, 4, 70, "Input"], Cell[9565, 259, 175, 4, 70, "Text", Evaluatable->False], Cell[9743, 265, 208, 4, 70, "Input"], Cell[9954, 271, 178, 4, 70, "Text", Evaluatable->False], Cell[10135, 277, 318, 6, 70, "Input"], Cell[10456, 285, 89, 2, 70, "Text", Evaluatable->False], Cell[10548, 289, 421, 13, 70, "Input"], Cell[10972, 304, 338, 7, 70, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[11342, 313, 105, 2, 70, "Subsection", Evaluatable->False], Cell[CellGroupData[{ Cell[11470, 317, 92, 2, 70, "Subsubsection", Evaluatable->False], Cell[11565, 321, 259, 5, 70, "Text", Evaluatable->False], Cell[11827, 328, 111, 2, 70, "Input", InitializationCell->True], Cell[CellGroupData[{ Cell[11961, 332, 66, 1, 70, "Input"], Cell[12030, 335, 448, 8, 70, "Print", Evaluatable->False] }, Open ]], Cell[12490, 345, 117, 2, 70, "Input"], Cell[12610, 349, 187, 3, 70, "Input"], Cell[12800, 354, 136, 3, 70, "Input"], Cell[12939, 359, 156, 3, 70, "Input"], Cell[13098, 364, 156, 3, 70, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[13286, 369, 97, 2, 70, "Subsubsection", Evaluatable->False], Cell[13386, 373, 264, 5, 70, "Text", Evaluatable->False], Cell[13653, 380, 736, 11, 70, "Input"], Cell[14392, 393, 674, 10, 70, "Input"], Cell[15069, 405, 384, 12, 70, "Input"], Cell[15456, 419, 96, 1, 70, "Input"] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell[15593, 422, 106, 2, 70, "Subsubsection", Evaluatable->False], Cell[15702, 426, 301, 6, 70, "Text", Evaluatable->False], Cell[16006, 434, 417, 7, 70, "Input"] }, Closed]] }, Open ]] } ] *) (*********************************************************************** End of Mathematica Notebook file. ***********************************************************************)