(*********************************************************************** 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[ 19252, 480]*) (*NotebookOutlinePosition[ 20332, 515]*) (* CellTagsIndexPosition[ 20288, 511]*) (*WindowFrame->Normal*) Notebook[{ Cell[CellGroupData[{ Cell[TextData[ "Convert Uniform Polyhedra To POV-Ray\n Spheres, Cylinders, and Triangles"], "Title", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ by Russell Towle July, 1997\ \>", "Subsubtitle", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{ Cell[TextData["Discussion"], "Section", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ StyleBox[ "This notebook is very limited in its scope: it reads in Roman Maeder's \ UniformPolyhedra.m and PolyhedraExamples.m, and then defines a function ", Evaluatable->False, AspectRatioFixed->True], StyleBox["ToPOV[filename_String, n_Integer]", Evaluatable->False, AspectRatioFixed->True, FontWeight->"Bold"], StyleBox[". ", Evaluatable->False, AspectRatioFixed->True], StyleBox["ToPOV", Evaluatable->False, AspectRatioFixed->True, FontWeight->"Bold"], StyleBox[ " creates a file containing POV-Ray (Persistence of Vision Ray Tracer) \ directives for spheres of radius R1 (upon each vertex of the nth uniform \ polyhedron), cylinders of radius R2 (upon each edge of the nth uniform \ polyhedron) and triangles (each face of the nth uniform polyhedron is divided \ into co-planar triangles). Within POV, this file is then read into a scene \ file which declares the values of R1 and R2, the radii of the spheres and \ cyclinders, respectively.\n\nWithin POV it is at the user's d", Evaluatable->False, AspectRatioFixed->True], "iscretion", StyleBox[ " whether to actually render the group of spheres, or the group of \ cylinders, or the group of triangles, and what colors and textures to assign \ to them. The example POV scene file below is merely a point of beginning.\n\n\ Several of the uniform polyhedra may not be rendered at all within ", Evaluatable->False, AspectRatioFixed->True], StyleBox["Mathematica", Evaluatable->False, AspectRatioFixed->True, FontSlant->"Italic"], StyleBox[ ", except on special machines. PolyhedraExamples.m contains this caveat:\n\ \n", Evaluatable->False, AspectRatioFixed->True], StyleBox[ "(* :Limitations: the polyhedra Nos. 69, 72, 74, and 75 cannot be shown \ with Display[] (usually used implicitly from within Show[]) because of \ limitations in the built-in renderer. They can be shown with Live[] on \ machines with suitable graphics hardware.*)\n\n", Evaluatable->False, AspectRatioFixed->True, FontFamily->"Courier", FontWeight->"Bold"], StyleBox[ "However, POV handles these easily.\n\nSeveral functions used in this \ notebook were copied from Maeder's POVray.m package (available at ", Evaluatable->False, AspectRatioFixed->True], "http://www.mathconsult.ch/showroom/ray/index.html", StyleBox[ ".), and of course the uniform polyhedra themselves also depend upon \ Maeder's work. ", Evaluatable->False, AspectRatioFixed->True] }], "Text", Evaluatable->False, AspectRatioFixed->True] }, Closed]], Cell[CellGroupData[{ Cell["Initialization", "Section", Evaluatable->False, AspectRatioFixed->True], Cell[TextData["<True, AspectRatioFixed->True], Cell[CellGroupData[{ Cell[TextData[ "protected = Unprotect[Infix];\nInfix[_[e_], h_:Null] := e;\nProtect[ \ Evaluate[protected] ];\n\n(* optional text followed by numbers, FortranForm \ with 5 digits *)\n\nndig = 5;\nnForm[r_] := NumberForm[FortranForm[r], ndig];\ \n\nwriteNums[file_, txt_:\"\", r_?NumberQ] :=\n Write[file, txt, \" \", \ nForm[r]]\nwriteNums[file_, txt_:\"\", r_List] :=\n Write[file, txt, \" \ \", Infix[nForm /@ r, \" \"]]\n\n(* turn n-gon into list of triangles *)\n\n\ toTriangles[vlist_List] /; Length[vlist] == 3 := {vlist}\n\n(* treat 4gons \ specially for efficiency *)\n\ntoTriangles[vlist_List] /; Length[vlist] == 4 \ :=\n\t{vlist[[{1, 2, 3}]], vlist[[{3, 4, 1}]]}\n\n(* general case: use center \ of gravity as additional vertex *)\n(* in this way, some nonconvex polygons \ can also be rendered correctly *)\n\ntoTriangles[vlist_List] :=\n \ Module[{bary = (Plus @@ vlist)/Length[vlist], circ},\n circ = \ Partition[ Append[vlist, First[vlist]], 2, 1 ];\n Apply[ {#1, #2, \ bary}&, circ, {1} ]\n ]\n \nBall[x_List,r_]:={x,r}\n\n\ Rod[x_List,r_]:={x,r}\n\ncyllmake[txt_:\"\", r_List] /; Length[r] == 2 :=\n \ SequenceForm[txt,\"{\", \"<\", Infix[nForm /@ r[[1,1]], \", \"], \">\",\n \ \",\", \"<\", Infix[nForm /@ r[[1,2]], \", \"], \">\",\" \",r[[2]],\"}\" ]\n \ \nballmake[txt_:\"\", r_List] /; Length[r] == 2 :=\n \ SequenceForm[txt,\"{\", \"<\", Infix[nForm /@ r[[1]], \", \"], \">\",\n \" \ \",r[[2]],\"}\" ]\n \nfacemake[txt_:\"\", r_List] /; Length[r] == 3 :=\n \ SequenceForm[txt,\"{\", \"<\", Infix[nForm /@ r[[1]], \", \"], \">\",\n \ \",\", \"<\", Infix[nForm /@ r[[2]], \", \"], \">\",\n \",\", \"<\", \ Infix[nForm /@ r[[3]], \", \"], \">\",\"}\" ]"], "Input", InitializationCell->True, AspectRatioFixed->True], Cell["\<\ General::spell1: Possible spelling error: new symbol name \"protected\" is similar to existing symbol \"Protected\".\ \>", "Message", Evaluatable->False, AspectRatioFixed->True] }, Open ]], Cell[TextData[ "ToPOV[filename_String,n_Integer]:=\n\ Block[{a,b,c,f,h,q1,q2,v,balls,sticks,faces,obj,zaq},\n\n\ obj=NumberedPolyhedron[n];\nv=VertexCoordinates[obj];\n\n(*find face indices \ and make edge indices*)\na=FaceList[obj];\nb=Map[Join[#,{First[#]}]&, a ];\n\ h=Map[Partition[#,2,1]&,b];\nh=Flatten[h,1];\n\n(*find all edges remove \ duplicates*)\nc=Table[\nPosition[h,x_ /; x == h[[i]] || x == Reverse[h[[i]]] \ ],{i,Length[h]}];\nf=Map[Take[#,1]&, Union[c]];\nf=Flatten[f,2];\nzaq=Table[ \ v[[ h[[ f[[i]] ]] ]],{i,Length[f]}];\n\n(*create faces and divide into \ triangles*)\npoly=Map[v[[ #]]&,a];\npoly=Map[toTriangles[#]&,poly];\n\n\ q1=Map[Ball[#,R1]&,Chop[v]];\nq2=Map[Rod[#,R2]&,Chop[zaq]];\n\ balls=ColumnForm[Map[ballmake[\"sphere\",# ]&,q1],Left];\n\ sticks=ColumnForm[Map[cyllmake[\"cylinder\",# ]&,q2],Left];\n\ faces=ColumnForm[Map[facemake[\"triangle\",# ]&,Chop[Flatten[poly,1]]],Left];\ \n\nstrm=OpenWrite[filename,\nFormatType->OutputForm,\nPageWidth->Infinity];\n\ Write[strm,\"#declare RODS = union{\"];\nWrite[strm,sticks];\n\ Write[strm,\"}\"];\nWrite[strm,\"#declare BALLS = union{\"];\n\ Write[strm,balls];\nWrite[strm,\"}\"];\nWrite[strm,\"#declare FACES = \ union{\"];\nWrite[strm,faces];\nWrite[strm,\"}\"];\nClose[strm]\n]"], "Input",\ InitializationCell->True, AspectRatioFixed->True] }, Closed]], Cell[CellGroupData[{ Cell[TextData["List of Uniform Polyhedra"], "Section", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{ Cell[TextData[ "ColumnForm[Table[{i,standard[[i]]},{i,Length[standard]}]]"], "Input", AspectRatioFixed->True], Cell[OutputFormData["\<\ {1, {\"tetrahedron\", w1[3, 2, 3]}} {2, {\"truncated tetrahedron\", w2[2, 3, 3]}} {3, {\"octahemioctahedron\", w2[3/2, 3, 3]}} {4, {\"tetrahemihexahedron\", w2[3/2, 3, 2]}} {5, {\"octahedron\", w1[4, 2, 3]}} {6, {\"cube\", w1[3, 2, 4]}} {7, {\"cuboctahedron\", w1[2, 3, 4]}} {8, {\"truncated octahedron\", w2[2, 4, 3]}} {9, {\"truncated cube\", w2[2, 3, 4]}} {10, {\"rhombicuboctahedron\", w2[3, 4, 2]}} {11, {\"truncated cuboctahedron\", w3[2, 3, 4]}} {12, {\"snub cube\", w0[2, 3, 4]}} {13, {\"small cubicuboctahedron\", w2[3/2, 4, 4]}} {14, {\"great cubicuboctahedron\", w2[3, 4, 4/3]}} {15, {\"cubohemioctahedron\", w2[4/3, 4, 3]}} {16, {\"cubitruncated cuboctahedron\", w3[4/3, 3, 4]}} {17, {\"great rhombicuboctahedron\", w2[3/2, 4, 2]}} {18, {\"small rhombihexahedron\", w3[3/2, 2, 4]}} {19, {\"stellated truncated hexahedron\", w2[2, 3, 4/3]}} {20, {\"great truncated cuboctahedron\", w3[4/3, 2, 3]}} {21, {\"great rhombihexahedron\", w3[4/3, 3/2, 2]}} {22, {\"icosahedron\", w1[5, 2, 3]}} {23, {\"dodecahedron\", w1[3, 2, 5]}} {24, {\"icosidodecahedron\", w1[2, 3, 5]}} {25, {\"truncated icosahedron\", w2[2, 5, 3]}} {26, {\"truncated dodecahedron\", w2[2, 3, 5]}} {27, {\"rhombicosidodecahedron\", w2[3, 5, 2]}} {28, {\"truncated icosidodechedon\", w3[2, 3, 5]}} {29, {\"snub dodecahedron\", w0[2, 3, 5]}} {30, {\"small ditrigonal icosidodecahedron\", w1[3, 5/2, 3]}} {31, {\"small icosicosidodecahedron\", w2[5/2, 3, 3]}} {32, {\"small snub icosicosidodecahedron\", w0[5/2, 3, 3]}} {33, {\"small dodecicosidodecahedron\", w2[3/2, 5, 5]}} {34, {\"small stellated dodecahedron\", w1[5, 2, 5/2]}} {35, {\"great dodecahedron\", w1[5/2, 2, 5]}} {36, {\"dodecadodecahedron\", w1[2, 5/2, 5]}} {37, {\"truncated great dodecahedron\", w2[2, 5/2, 5]}} {38, {\"rhombidodecadodecahedron\", w2[5/2, 5, 2]}} {39, {\"small rhombidodecahedron\", w3[2, 5/2, 5]}} {40, {\"snub dodecadodecahedron\", w0[2, 5/2, 5]}} {41, {\"ditrigonal dodecadodecahedron\", w1[3, 5/3, 5]}} {42, {\"great ditrigonal dodecicosidodecahedron\", w2[3, 5, 5/3]}} {43, {\"small ditrigonal dodecicosidodecahedron\", w2[5/3, 3, 5]}} {44, {\"icosidodecadodecahedron\", w2[5/3, 5, 3]}} {45, {\"icositruncated dodecadodecahedron\", w3[5/3, 3, 5]}} {46, {\"snub icosidodecadodecahedron\", w0[5/3, 3, 5]}} {47, {\"great ditrigonal icosidodecahedron\", w1[3/2, 3, 5]}} {48, {\"great icosicosidodecahedron\", w2[3/2, 5, 3]}} {49, {\"small icosihemidodecahedron\", w2[3/2, 3, 5]}} {50, {\"small dodecicosahedron\", w3[3/2, 3, 5]}} {51, {\"small dodecahemidodecahedron\", w2[5/4, 5, 5]}} {52, {\"great stellated dodecahedron\", w1[3, 2, 5/2]}} {53, {\"great icosahedron\", w1[5/2, 2, 3]}} {54, {\"great icosidodecahedron\", w1[2, 5/2, 3]}} {55, {\"great truncated icosahedron\", w2[2, 5/2, 3]}} {56, {\"rhombicosahedron\", w3[2, 5/2, 3]}} {57, {\"great snub icosidodecahedron\", w0[2, 5/2, 3]}} {58, {\"small stellated truncated dodecahedron\", w2[2, 5, 5/3]}} {59, {\"truncated dodecadodecahedron\", w3[5/3, 2, 5]}} {60, {\"inverted snub dodecadodecahedron\", w0[5/3, 2, 5]}} {61, {\"great dodecicosidodecahedron\", w2[5/2, 3, 5/3]}} {62, {\"small dodecahemicosahedron\", w2[5/3, 5/2, 3]}} {63, {\"great dodecicosahedron\", w3[5/3, 5/2, 3]}} {64, {\"great snub dodecicosidodecahedron\", w0[5/3, 5/2, 3]}} {65, {\"great dodecahemicosahedron\", w2[5/4, 5, 3]}} {66, {\"great stellated truncated dodecahedron\", w2[2, 3, 5/3]}} {67, {\"great rhombicosidodecahedron\", w2[5/3, 3, 2]}} {68, {\"great truncated icosidodecahedron\", w3[5/3, 2, 3]}} {69, {\"great inverted snub icosidodecahedron\", w0[5/3, 2, 3]}} {70, {\"great dodecahemidodecahedron\", w2[5/3, 5/2, 5/3]}} {71, {\"great icosihemidodecahedron\", w2[3/2, 3, 5/3]}} {72, {\"small retrosnub icosicosidodecahedron\", w0[3/2, 3/2, 5/2]}} {73, {\"great rhombidodecahedron\", w3[3/2, 5/3, 2]}} {74, {\"great retrosnub icosidodecahedron\", w0[3/2, 5/3, 2]}} {75, {\"great dirhombicosidodecahedron\", w0[3/2, 5/3, 3, 5/2]}} {76, {\"pentagonal prism\", w2[2, 5, 2]}} {77, {\"pentagonal antiprism\", w0[2, 2, 5]}} {78, {\"pentagrammic prism\", w2[2, 5/2, 2]}} {79, {\"pentagrammic antiprism\", w0[2, 2, 5/2]}} {80, {\"pentagrammic crossed antiprism\", w0[2, 2, 5/3]}}\ \>", "\<\ {1, {tetrahedron, 3|2 3}} {2, {truncated tetrahedron, 2 3|3}} {3, {octahemioctahedron, 3/2 3|3}} {4, {tetrahemihexahedron, 3/2 3|2}} {5, {octahedron, 4|2 3}} {6, {cube, 3|2 4}} {7, {cuboctahedron, 2|3 4}} {8, {truncated octahedron, 2 4|3}} {9, {truncated cube, 2 3|4}} {10, {rhombicuboctahedron, 3 4|2}} {11, {truncated cuboctahedron, 2 3 4|}} {12, {snub cube, |2 3 4}} {13, {small cubicuboctahedron, 3/2 4|4}} {14, {great cubicuboctahedron, 3 4|4/3}} {15, {cubohemioctahedron, 4/3 4|3}} {16, {cubitruncated cuboctahedron, 4/3 3 4|}} {17, {great rhombicuboctahedron, 3/2 4|2}} {18, {small rhombihexahedron, 3/2 2 4|}} {19, {stellated truncated hexahedron, 2 3|4/3}} {20, {great truncated cuboctahedron, 4/3 2 3|}} {21, {great rhombihexahedron, 4/3 3/2 2|}} {22, {icosahedron, 5|2 3}} {23, {dodecahedron, 3|2 5}} {24, {icosidodecahedron, 2|3 5}} {25, {truncated icosahedron, 2 5|3}} {26, {truncated dodecahedron, 2 3|5}} {27, {rhombicosidodecahedron, 3 5|2}} {28, {truncated icosidodechedon, 2 3 5|}} {29, {snub dodecahedron, |2 3 5}} {30, {small ditrigonal icosidodecahedron, 3|5/2 3}} {31, {small icosicosidodecahedron, 5/2 3|3}} {32, {small snub icosicosidodecahedron, |5/2 3 3}} {33, {small dodecicosidodecahedron, 3/2 5|5}} {34, {small stellated dodecahedron, 5|2 5/2}} {35, {great dodecahedron, 5/2|2 5}} {36, {dodecadodecahedron, 2|5/2 5}} {37, {truncated great dodecahedron, 2 5/2|5}} {38, {rhombidodecadodecahedron, 5/2 5|2}} {39, {small rhombidodecahedron, 2 5/2 5|}} {40, {snub dodecadodecahedron, |2 5/2 5}} {41, {ditrigonal dodecadodecahedron, 3|5/3 5}} {42, {great ditrigonal dodecicosidodecahedron, 3 5|5/3}} {43, {small ditrigonal dodecicosidodecahedron, 5/3 3|5}} {44, {icosidodecadodecahedron, 5/3 5|3}} {45, {icositruncated dodecadodecahedron, 5/3 3 5|}} {46, {snub icosidodecadodecahedron, |5/3 3 5}} {47, {great ditrigonal icosidodecahedron, 3/2|3 5}} {48, {great icosicosidodecahedron, 3/2 5|3}} {49, {small icosihemidodecahedron, 3/2 3|5}} {50, {small dodecicosahedron, 3/2 3 5|}} {51, {small dodecahemidodecahedron, 5/4 5|5}} {52, {great stellated dodecahedron, 3|2 5/2}} {53, {great icosahedron, 5/2|2 3}} {54, {great icosidodecahedron, 2|5/2 3}} {55, {great truncated icosahedron, 2 5/2|3}} {56, {rhombicosahedron, 2 5/2 3|}} {57, {great snub icosidodecahedron, |2 5/2 3}} {58, {small stellated truncated dodecahedron, 2 5|5/3}} {59, {truncated dodecadodecahedron, 5/3 2 5|}} {60, {inverted snub dodecadodecahedron, |5/3 2 5}} {61, {great dodecicosidodecahedron, 5/2 3|5/3}} {62, {small dodecahemicosahedron, 5/3 5/2|3}} {63, {great dodecicosahedron, 5/3 5/2 3|}} {64, {great snub dodecicosidodecahedron, |5/3 5/2 3}} {65, {great dodecahemicosahedron, 5/4 5|3}} {66, {great stellated truncated dodecahedron, 2 3|5/3}} {67, {great rhombicosidodecahedron, 5/3 3|2}} {68, {great truncated icosidodecahedron, 5/3 2 3|}} {69, {great inverted snub icosidodecahedron, |5/3 2 3}} {70, {great dodecahemidodecahedron, 5/3 5/2|5/3}} {71, {great icosihemidodecahedron, 3/2 3|5/3}} {72, {small retrosnub icosicosidodecahedron, |3/2 3/2 5/2}} {73, {great rhombidodecahedron, 3/2 5/3 2|}} {74, {great retrosnub icosidodecahedron, |3/2 5/3 2}} {75, {great dirhombicosidodecahedron, |3/2 5/3 3 5/2}} {76, {pentagonal prism, 2 5|2}} {77, {pentagonal antiprism, |2 2 5}} {78, {pentagrammic prism, 2 5/2|2}} {79, {pentagrammic antiprism, |2 2 5/2}} {80, {pentagrammic crossed antiprism, |2 2 5/3}}\ \>"], "Output", Evaluatable->False, LineSpacing->{1, 0}, AspectRatioFixed->True] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell[TextData["Example"], "Section", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "(*Preview the uniform polyhedron.*)\n(*Do not attempt nos. 69, 72, 74, or \ 75.*)\nShowPolyhedron[41];"], "Input", AspectRatioFixed->True], Cell[CellGroupData[{ Cell[TextData[ "(*Set the directory to which the file will be written.*)\n\ SetDirectory[\"Starlight:POV-Ray 3.0:\"]"], "Input", AspectRatioFixed->True], Cell[OutputFormData["\<\ \"Starlight:POV-Ray 3.0\"\ \>", "\<\ Starlight:POV-Ray 3.0\ \>"], "Output", Evaluatable->False, AspectRatioFixed->True] }, Open ]], Cell[CellGroupData[{ Cell[TextData[ "(*Write the POV file named \"ditrigonal\" for polyhedron 41.*)\n\ ToPOV[\"ditrigonal\",41]"], "Input", AspectRatioFixed->True], Cell[OutputFormData["\<\ \"ditrigonal\"\ \>", "\<\ ditrigonal\ \>"], "Output", Evaluatable->False, AspectRatioFixed->True] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[TextData["Sample POV scene file"], "Section", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "In this example, POV version 3.0 syntax is invoked, but version 2.x will \ also work, if the first line is removed altogether. The uniform polyhedron \ file is called with an #include statement below, after the radii of the \ spheres and cylinders have been #declare-d. In this example the file is \ called \"shub-niggurath,\" which is the name assigned to uniform polyhedron \ #69 in Maeder's list by George Olschevsky and Bruce Chilton, who tired of the \ \"small retrosnub ditrigonal icosidodecahedron\" terminology, and turned to \ the stories of H.P Lovecraft for an alternative. The text below may be \ copied to your Clipboard and pasted directly into an empty POV scene file. \ Note: the actual sizes of the uniform polyhedra vary, and either the camera \ position or its lens length (the magnitude of its \"direction\" vector) may \ need adjustment."], "Text", Evaluatable->False, AspectRatioFixed->True, FontSize->14], Cell[TextData[ "\n#version 3.0 // use POV-Ray 3.0 syntax\n#include \"colors.inc\"\n#include \ \"shapes.inc\"\n#include \"textures.inc\"\n#include \"metals.inc\"\n\n\ #default { texture { pigment {color rgb <1,1,1>} finish {phong 0.1 ambient \ 0.2 diffuse .6} }}\n\ncamera {\n\tlocation <0, -3.5, 7>\n\tdirection <0, 3, \ 0>\n\tup <0, 0, 1.>\n\tright <4/3, 0, 0> // 4 to3 aspect ratio (i.e., \ 320X240, 640X480, etc.)\n\tsky <0., 0., 1.>\n\tlook_at <0, 0, 0.>\n\t\ rotate<0,5,0>\n}\n\nlight_source { <0, 0, 44>\ncolor rgb <1, 1, 1>}\n\n\ plane{z,-3\n pigment{\n\tchecker\n color rgb <1,.5,.5>\n color rgb \ <.5,.5,1>\n\t}\n}\n\n#declare R1 = .075 //Balls\n#declare R2 = .0375 \ //Sticks\n\n#include \"shub-niggurath\"\n\nobject{ RODS\ntexture{T_Silver_1A}\ \n}\n\nobject{ BALLS\ntexture{Gold_Metal}\n}\n\nobject{FACES}"], "Text", Evaluatable->False, AspectRatioFixed->True, FontSize->14] }, Closed]] }, Open ]] }, FrontEndVersion->"Macintosh 3.0", ScreenRectangle->{{0, 800}, {0, 580}}, AutoGeneratedPackage->None, WindowToolbars->{}, CellGrouping->Manual, WindowSize->{672, 537}, WindowMargins->{{12, Automatic}, {8, Automatic}}, PrivateNotebookOptions->{"ColorPalette"->{RGBColor, -1}}, ShowCellLabel->True, ShowCellTags->False, RenderingOptions->{"ObjectDithering"->True, "RasterDithering"->False}, MacintoshSystemPageSetup->"\<\ 00<0001804P000000]P2:?oQon82n@960dL5:0?l0080001804P000000]P2:001 0000I00000400`<300000BL?00400@00000000000000060001T1T00000000000 00000000000000000000000000000000\>" ] (*********************************************************************** 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, 151, 4, 174, "Title", Evaluatable->False], Cell[1885, 57, 106, 6, 89, "Subsubtitle", Evaluatable->False], Cell[CellGroupData[{ Cell[2016, 67, 87, 2, 50, "Section", Evaluatable->False], Cell[2106, 71, 2611, 66, 391, "Text", Evaluatable->False] }, Closed]], Cell[CellGroupData[{ Cell[4754, 142, 81, 2, 30, "Section", Evaluatable->False], Cell[4838, 146, 102, 2, 27, "Input", InitializationCell->True], Cell[CellGroupData[{ Cell[4965, 152, 1793, 25, 747, "Input", InitializationCell->True], Cell[6761, 179, 200, 6, 50, "Message", Evaluatable->False] }, Open ]], Cell[6976, 188, 1327, 21, 672, "Input", InitializationCell->True] }, Closed]], Cell[CellGroupData[{ Cell[8340, 214, 102, 2, 30, "Section", Evaluatable->False], Cell[CellGroupData[{ Cell[8467, 220, 111, 2, 27, "Input"], Cell[8581, 224, 7702, 166, 972, "Output", Evaluatable->False] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell[16332, 396, 84, 2, 30, "Section", Evaluatable->False], Cell[16419, 400, 156, 3, 57, "Input"], Cell[CellGroupData[{ Cell[16600, 407, 154, 3, 42, "Input"], Cell[16757, 412, 149, 7, 24, "Output", Evaluatable->False] }, Open ]], Cell[CellGroupData[{ Cell[16943, 424, 144, 3, 42, "Input"], Cell[17090, 429, 126, 6, 24, "Output", Evaluatable->False] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[17265, 441, 98, 2, 30, "Section", Evaluatable->False], Cell[17366, 445, 954, 15, 185, "Text", Evaluatable->False], Cell[18323, 462, 901, 14, 850, "Text", Evaluatable->False] }, Closed]] }, Open ]] } ] *) (*********************************************************************** End of Mathematica Notebook file. ***********************************************************************)